26. heinäkuuta 2026
Viivakoodiunelmia
Keräiltävien taskuhirviöiden aikakauden käydessä kuumimmillaan vuosituhannen vaihteessa, kiinalaisella elektronisia leluja valmistavalla Radicalla pohdittiin, kuinka tästä pystyisi lohkaisemaan oman tuottavan siivunsa. Mietiskelyn tuloksena syntyi vanhaa ajatusta kierrättäen idea laitteesta, jolla tavallisista viivakoodeista pystyisi nappaamaan kaikenkarvaisia hirviöitä, jotka sitten usuttettaisiin toistensa kimppuun käsikähmään. Tämän idean pohjalta syntyi harvojen tuntema Skannerz, joka myös itselleni päätyi pukinkontissa vuonna 2001, tuolloin ollessani itse kymmenen vanha.
Skannerzissa oli vain jotain aivan käsittämättömän siistiä. Skannerzeja oli tuohon aikaan kolme, yksi väri jokaista Kaos-planeetan heimoa kohti. Jokaiseen heimoon kuului 42 hirviötä, jotka saattoivat lymytä missä tahansa keittiökaapin jauhopussien tai DVD-koteloiden viivakoodeista. Kun hirviöitä sitten oli koossa mieluisa tiimi, taisteltiin niillä joko muiden viivakoodien hirviöitä vastaan tai Skannerzit yhdistämällä kaverin kanssa. Varmasti koskaan en saanut jokaista hirviötä napattua, mutta yrityksen puutteesta se ei ainakaan jäänyt kiinni.
Lopulta aika ja ikä ajoivat Skannerzista ohi ja se jäi laatikon pohjalle, mutta tästäkin huolimatta Skannerzia tuli silloin tällöin hypisteltyä ja tarkasteltua, että vieläkö se vanha tiimi on tallella. Jossain kohdin pattereista kuitenkin loppui virta ja hirviöni siirtyivät bittitaivaaseen, mutta ajatus Skannerzista jäi kytemään takaraivoon. Se oli tehnyt pysyvän vaikutuksen eikä se sieltä hevin ollut poistumassa.
Joskus yli 15 vuotta ensimmäisten kokemusten jälkeen kaivoin Skannerzin takaisin naftaliinista. Muistan löytäneeni tuohon aikaan netistä alkuperäiset Skannerzin mukana tulleet hirviökortit, jotka joku oli skannannut ja jakanut muille. Luulin, että tähän mennessä joku olisi myös kaapannut itse Skannerzin ruudulla näkyvät pikselitaideversiot hirviöistä, mutta jouduin pettymään ja toteamaan, että kiinnostus koko Skannerzia kohtaan tuntui olevan aika minimaalista. Tämä vääryys täytyisi siis korjata ihan itse.
Ohjelmointi- ja hakkerointitaitoa oli kertynyt jo matkan varrella sen verran, että totesin tämän olevan helppo nakki. Sen kuin vain kuvaisin ruudulla näkyvät hirviöt kameralla ja taltioisin ne pikseli pikseliltä. Kuten arvata saattaa, eihän tästä tullut yhtään mitään. Tajusin jo tuolloin, että kuvien siirtäminen oikeasti pikseli pikseliltä jäljittäen veisi iän ja terveyden. Muistan kokeilleeni jotain ohjelmallista ratkaisua ongelman selättämiseen, mutta yritykset jäivät aika vähäisiksi. Tyydyin toteamaan, että eihän tästä tule yhtään mitään, ja sain vielä paremman ajatuksen: lähetin Skannerzin tuolloin omistaneelle Mattelille kirjeen ja pyysin, pääsisikö Skannerzin alkuperäistä lähdekoodia ihmettelemään näin puhtaasti kuriositeetin näkökulmasta.
Kirje Amerikkaan maksoi mitä maksoi, eikä vastausta koskaan kuulunut. Hautasin Skannerz-haaveet toistaiseksi, vaikkakin vanha kipinä jäi yhä kytemään. Tähän palattaisiin vielä.
Paluu viivakoodien pariin tapahtui vuosia myöhemmin, tarkalleen ottaen marraskuussa 2023. Muistan kaivanneeni tuolloin jotain projektia, ja kuinka ollakaan, Skannerz palasi jälleen mieleeni. Vastaan tulivat ensin aikaisemman yritykseni kuvat ja pian löysin itseni kaivamasta laatikosta vanhan kunnon punaisen Ujalu-Skannerzin ja ryhdyin pohtimaan taistelusuunnitelmaa.
Ongelma Skannerzin kanssa oli ollut aikaisemminkin se, että sen pienellä, 32 x 30 -pikselin ruudulla jokaisesta hirviöstä näkyi kerrallaan vain pieni palanen. Laitteen PAN-nappia painamalla kuvaa kuitenkin pystyi vierittämään, ja kokonainen, vähintään tuplasti isompi kuva paljastui sen alta. Sinänsä simppeliä, mutta jos jokaisen hirviön kohdalla kuvaa olisi vieritettävä eri nappeja painamalla, laite liikkuisi liikaa ja kuvan keskittäminen myöhempää käsittelyä varten olisi jokseenkin hankalaa. Skannerz piti siis saada pysymään paikallaan.
Kokemuksen taas kartuttua ajatus uudesta hyökkäysvektorista lähti hahmottumaan suhteellisen kivuttomasti. Ajatuksenani oli rakentaa Arduinosta Skannerziin liitettävä lisäosa, joka mahdollistaisi Skannerzin nappien etäohjaamisen ja näin paikallaan pitämisen, kun napsisin hirviöistä kuvia. Ajattelin, että voisin tietokoneelta sarjaportin kautta ohjata Arduinoa ja myös skriptata valokuvien ottamisen OBS-nauhoitussovellusta käyttäen. Idea vaikutti alkuunsa niin hyvältä, että lähdin sitä jo samaisena marraskuisena iltana toteuttamaan.
Kolvailin aluksi kasaan lisäkortin, joka käytännössä oli piirilevyllä kasa johtoja ja 4N25-optoerottimia, joiden ainoa tehtävä oli simuloida näppäinpainalluksia ilman, että lisäkortti ja Skannerz olisivat samaa sähköpiiriä. Tuumin, että olisin voinut kyllä mieluummin suunnitella ihan oikean piirilevyn ja tilata sen jostain niitä kuluttajille valmistavista palveluista. Malttamattomuus saada homma valmiiksi oli tässä kohdin kuitenkin ainoa tekijä, joka painoi liikaa vaakakupissa.
Selvittelin tämän jälkeen, mitkä padit Skannerzin piirilevyllä tulee vetää maihin, jotta tietyt näppäimet aktivoituvat. Alkuperäinen ajatukseni oli kajota itse Skannerziin mahdollisimman vähän, koska tässä kohdin pidin niitä hyvinkin arvokkaina ja harvinaisina laitteina. Niinpä teippasin johdonpätkät kiinni piirilevylle ja kasasin sen kasaan. Tästähän ei tullut yhtään mitään, kun johdot irtoilivat hyvinkin helposti teippien pettäessä ja yhteys nappeihin katosi. Aika nopeasti tulin siihen tulokseen, että tästä ei selviä ilman Skannerzin kolvaamista, ja liitin johdot uudestaan kolvaamalla, vaikkakin tässäkin kovasti varoen, ettei tina täysin tärvelisi laitteen piirilevyä.
Lopuksi koodailin Arduinoon pienen, käytännössä orjana sarjaportista komentoja ottavan softanpätkän ja JavaScriptillä siihen ohjaussoftan, josta pystyin antamaan yksittäisiä näppäinkäskyjä tai pidempiä sarjoja. Harmaita hiuksia aiheutti lähinnä se, että en ihan ymmärtänyt, miten Arduinon sarjaportti toimii, mutta taottuani seinää hieman otsallani tämäkin lopulta ratkesi. Selvittelin myös, miten OBS:ää saisi skriptattua, ja tähän tarkoitukseen taisin löytää oikein valmiin kirjastonkin. Naiivi ajatukseni oli, että lopputulos olisi sellainen, että pystyisin istumaan kädet niskan takana ihmettelemässä, kun robottini liikuttelisi Skannerzia ja nappailisi siitä kuvia. Kuinka väärässä olinkaan siitä, miten tämäkin lopulta ratkesi.
Kohtalon hetki koitti: olin valmistellut kaappaamiseen oikeat olosuhteet ja valmis käynnistämään rakkaudella työstämäni prosessin. Kuinka ollakaan, kun aloitin Skannerzin lataamisen täyteen hirviöitä skannaamalla, sen viivakoodiskanneri ei enää toiminutkaan. Pahimmat pelkoni olivat käyneet toteen, ja olin rikkonut laitteen. Kauhuissani purin kolvaukseni ja toivoin, etten ollut aiheuttanut peruuttamatonta vahinkoa, kunnes tajusin, mistä koko hommassa oli kyse. Kun paristojen jännite putoaa tarpeeksi alas, Skannerzin ensimmäinen oire on se, että sen viivakoodiskanneri lakkaa toimimasta. Kaikkea sitä oppii.
Olin kuitenkin jo tässä kohdin niin läpeensä kyllästynyt projektin fyysiseen puoleen, joka valtasi viikkotolkulla arvokasta pöytätilaani, joten päätin tavalla tai toisella viimeisteleväni sen nyt ja tässä ja jättäväni kuvien käsittelyn myöhemmäksi ongelmaksi. Teippasin Skannerzin ilmastointiteipillä seinään kiinni ja ryhdyin käsin hirviö hirviöltä kuvaamaan joka ikisen nurkan jokaisesta kuvasta. Joka 42. hirviön kohdalla irrotin Skannerzin ja aikaisemmin löytämäni tempun avulla vaihdoin sen heimoa kolvaamalla sen piirilevyllä jumpperin toiseen asentoon. Ja sama jatkui, kunnes 128 perushirviötä ja 12 salahirviötä oli kuvattu.
Fyysisen puolen valmistuttua käänsin katseeni kuvien käsittelyyn. Kuten saattoi arvata, tarkastellessani totesin, että kuvat eivät olleet täysin linjassa, eli kuvaamani laitteen ruutu vaihtoi hienoisesti paikkaa jokaisessa kuvassa ja varsinkin sen jälkeen, kun jouduin irrottamaan Skannerzin teipeistä heimon vaihtoa varten. Käytännön tasolla tämä hankaloittaisi kuvien ohjelmallista käsittelyä, ellen pystyisi luottamaan siihen, että ruudun pikselit löytyisivät aina samasta paikasta. Löysin tähän jokseenkin helposti ratkaisun tähtitieteen puolelta, jossa käytännössä sama ongelma oli jo kertaalleen ratkaistu tähtitaivaskuvista. Sama pinon tasausalgoritmi (Linear Stack Alignment with SIFT) löytyi ImageJ-ohjelmasta, ja sain kuin sainkin kuvat takaisin linjaan.
Seuraavaksi ajatukseni oli rakentaa tällä kertaa .NET:iä hyödyntäen sovellus, joka lukisi määritellystä ruudukosta kuvasta pikseleitä ja takaisinmallintaisi niistä bittikartan, jossa pikselit olisivat oikeissa kohdissa. Koska kuvani eivät olleet edelleenkään täysin täydellisiä, päätin, että tarvitsen konfiguroitavan ruudukon, jonka voisin piirtää varsinaisten kuvien päälle ja näin määritellä lennosta, mistä pikselit tulisi lukea. Teknologiavalinnaksi päätyi tässä kohdin SVG-vektorikuva, johon pystyin piirtämään ruudukon kaappaamani kuvan päälle Inkscapea hyödyntäen. .NET:in puolella pystyin parsimaan suoraan SVG:n XML:stä koordinaatit, joiden ympäriltä pystyin samplamaan pisteelle väriarvojen perusteella tiedon siitä, kuuluisiko koordinaatissa olla pikseliä vai ei.
Ja kuinka ollakaan, ajatukseni toimi varsin mainiosti. Koska Skannerz näytti näytöllään aina vain pienen palasen koko kuvasta, jouduin jokaisen hirviön kohdalla toistamaan tämän noin neljä kertaa. Lopulta työkseni jäi palapelin kokoaminen eli nurkkien yhdistäminen toisiinsa, mikä oli työlästä, mutta lopulta melko yksinkertaista. Lopputuloksena minulla oli lähes alkuperäistä vastaavat bittikarttakuvat jokaisesta hirviöstä. Olin siis viimein kaikkien näiden vuosien jälkeen onnistunut tehtävässäni.
Nälkä kasvoi syödessä, ja päätin, että perustaisin kokonaisen nettisivun löydöksieni dokumentoimiseksi jälkipolville. Näin syntyi Skannerz Archive, jonka täytin kaikella tähän asti tietämälläni informaatiolla. Loin jokaiselle hirviölle oman sivun, johon sain ladattua kaappaamani hirviökuvat skannattujen hirviökorttien kylkiäisenä, todennäköisesti ensimmäisenä koskaan.
Olin tähän asti luottanut valmiiksi kerättyihin viivakoodeihin, joista pystyin tarvittaessa kaappaamaan jokaisen hirviön ja esineen, jotka jo nyt varsin hyvin tunnettiin. Koska tiedonhaluni oli sammumaton, halusin itse selvittää, mistä viivakoodit rakentuvat, ja ymmärtää sen, miksi mikäkin viivakoodi tuottaa tietyn tuloksen. Tästä alkoi kokonaan uusi polku, jonka aikana tulostin kymmeniä erilaisia viivakoodeja ja selvittelin niiden toimintaa. Ymmärsin vaiheittain, että koko Skannerzin viivakoodiavaruus oli 1 000 yksikköä, joka oli tasaisesti jaettu eri hirviöiden kesken. Tavarat toimivat samalla tavalla, mutta koska niitä oli vähemmän, useammat viivakoodit tuottivat niiden taakse kätketyn esineen. Olin varsin ylpeä löydöksistäni, ja koko homman ratkaiseminen tuntui pulmapelin päihittämiseltä. Hauskintahan tässä oli se, että paljon myöhemmin, kun olin itse tutkimukseni tehnyt opin, opin Radican aikoinaan hakeneen Skannerzille patenttia, jossa varsin tarkasti selitetään viivakoodien toimintaperiaate. Hyvä kuitenkin, että sain näin vain vahvistusta sille, että olin osunut oikeaan.
Hankin lisää Skannerzeja pitkin Suomea ja rikoin jossain kohdin niiden hintamarkkinat, kun tyhjensin Tori.fi:n halvoista Skannerzeista ja tilalle tuli myöhemmin vain ylihinnoiteltuja yksilöitä, jotka jo valmiiksi määrittelivät niiden jälkeen tulleiden hinnat. Jossain kohdin käsiini päätyi alkuperäisten Skannerzien ”jatko-osa” eli Commander. Olin jossain kohdin vetänyt viivan siihen, että nostalgioissani keskittyisin pelkästään lapsuudesta tuttuihin malleihin, mutta viiva siirtyi kauemmaksi. Siirtyihän se monta kertaa tämän jälkeenkin, mutta nyt se on vedetty viimein sinne, missä sen haluankin olevan (aivan takuulla). Commanderista löytyikin vain lisää haasteita, ja sen saloista oli internetin kätköissä vielä vähemmän tietoa. Selvittelin samalla tavalla sen viivakoodien toimintaperiaatteen, ja suurin onnistumisen elämykseni tähän mennessä on ollut se, että onnistuin löytämään kauan kadoksissa olleet viivakoodit Commanderin salaisille Exiles-hirviöille.
Commanderissa olivat vuosikausia pysyneet salassa myös laitteen mukana tulleet hirviökortit, joista ei toistaiseksi kukaan ollut ladannut nettiin kuvia varsinaisista etupuolen hirviöistä eikä myöskään toisella puolella esitetyistä hirviöiden tiedoista. Kaivelin ja kaivelin näitä tuloksetta ja yritin epätoivoisesti pohtia, mistä kyseiset skannaukset saisin haltuuni. Jonain päivänä vastaani tuli kuitenkin YouTubessa Tales & Treasures-kanavan video, jossa esiteltiin huumorin keinoin Skannerzeja. Aksentissa oli jotain tuttua, ja hokasin kaverin olevan suomalainen. Otin häneen yhteyttä sen toivossa, että saisin korteista skannaukset. Kuinka ollakaan, mukavan jutustelun jälkeen ostin hänen Commanderinsa hirviökortit, ja ne vihdoin päätyivät itselleni taltioitavaksi. Sainpahan vielä kutsun osallistua Skannerz-aiheisen videon tekoon, mutta tämä kutsu on toistaiseksi vielä lunastamatta. Ehkä jonain päivänä.
Jossain kohdin selailtuani jälleen kerran Fandomin Skannerz Wikiä bongasin jo siinä kohdin vuosia sitten kirjoitetun blogipostauksen, jossa muita Skannerz-faneja houkuteltiin liittymään Discordiin perustettuun yhteisöön. Hieman epäillen liityin kanavalle ja kerroin, kuka olin ja mitä olin viimeisen puolen vuoden aikana puuhaillut. Vastaanotto, jonka sain niiltä muutamilta, jotka olivat vuosia uskollisina odottelleet serverillä Skannerzin uutta tulemista, oli nöyrälle miehelle uusi ja vain kerran elämässä koettava kokemus. Alkuperäisen Skannerzin oheismateriaalina tuli sarjakuva, jossa nuori Flux-poika saa korkeammalta taholta ohjeet Skannerzin rakentamiseen ja värvää muut mukaan nappaamaan hirviöitä. Muille oli selvää, että minä olin itse lihaksi muuttunut Flux, ja vastaanotto oli sen mukainen.
Olin lopulta löytänyt kaltaiseni ja oman pienen niche-yhteisöni, enkä voisi sen suhteen olla onnellisempi. Vuosien varrella siellä pyörineistä ihmisistä on tullut tuttuja, ja parhaimmillaan keskustelu Skannerzista on päivittäistä. Puhumme menneistä ajoista kaiholla kaivaten ja nostalgisoiden, mutta katsomme myös tulevaisuuteen. Fantasioissamme on tavalla tai toisella Skannerzin toinen tuleminen, ja ajatuksia laajemmasta maailmanrakennuksesta ja jopa kokonaan uudesta laitteesta on väläytelty ilmoille. Aika näyttää, realisoituvatko suunnitelmat koskaan, vaikkakin olen kyllä jo vaivihkaa tilannut nykyaikaisen viivakoodilukijan ja ESP32-kehityslautoja.
Olen sittemmin jatkanut selvittelyjä erilaisten Skannerziin liittyvien polkujen varrella, ja tuntuu, että opittavaa ja dokumentoitavaa on edelleenkin. Viimeisimpänä puolivahingossa selvittelin tekoälyn kanssa muutamia puutteita Skannerz TV:nä tunnetun laitteen emuloinnissa ja onnistuin saamaan kyseisen harvinaisuuden pelattavaan muotoon. Ajatuksissani on siintänyt Commanderin pirun hankalien taistelumekaniikkojen selvittäminen ja esimerkiksi Skannerzin eri kommunikaatioprotokollien takaisinmallintaminen. Olisihan ne hirviökuvatkin saatava Commanderista talteen alkuperäisten Skannerzien tapaan.
Joku kutsuisi tätä varmaan pakkomielteeksi. Minä kutsun sitä rakkaaksi harrastukseksi. Skannerz hivelee mieltä monella tapaa: sen parissa saa käyttää aivojaan, jakaa löydöksiään muille tiedonjanoisille sekä tietenkin ihan vain retroilla kadonnutta 2000-luvun alun kulttuuria. Kauan eläköön Skannerz, ja tuokoon se vielä monia onnellisia hetkiä niin minulle kuin muillekin nostalgiannälkäisille hirviönmetsästäjille.