Program napišite sami!
Pametni ure, zapestnice in telefoni niso le miniaturni računalniki, ampak poleg zmogljivega grafičnega prikazovalnika z zaslonom na dotik skrivajo še množico različnih tipal. Z lastno vgrajeno programsko opremo lahko postanejo pravi elektronski »švicarski« noži. Katere in kako lahko programiramo? Je razvojno okolje Arduino edino ali le najbolj priljubljeno?
Čeprav večina proizvajalcev majhnih in nosljivih računalniških naprav ne želi, da bi uporabniki sami spreminjali njihovo vgrajeno programsko opremo, nekateri prav v tem vidijo svojo poslovno priložnost. Raspberry Pi je že leta 2012 z odprtokodnima arhitekturo in programsko premo raziskovalcem in ljubiteljskim razvijalcem omogočil enostavnejšo gradnjo robotov ter namenskih naprav, kot je internetni radio, a je bil za uporabo v nosljivih napravah prevelik in energetsko prepožrešen.
Pametne naprave, ki jih sami programiramo, lahko poganjajo poljubno programsko opremo.
Revolucijo je sprožil šele veliko manjši modul ESP8266 s Tensilicinim procesorskim jedrom xtensa L106 z majhno porabo energije, ki je bil sprva mišljen zgolj kot modem za komunikacijo enostavnih (predvsem doma narejenih) naprav IoT prek omrežij Wi-Fi. Ko pa so pri kitajskem Espressif Systems prisluhnili željam številnih samograditeljev in pripravili zastonjsko razvojno okolje, nato pa še vtičnik za njegovo programiranje v razvojnem okolju Arduino, je na spletu sledila prava eksplozija načrtov: od internetnih radiev, predvajalnikov zvokovnih datotek, vremenskih postaj do vsakovrstnih krmilnikov, ki so omogočili tudi upravljanje obstoječih naprav prek IoT ter poenostavili gradnjo dronov in drugih daljinsko krmiljenih naprav. Zaradi pomanjkanja vhodno-izhodnih priključkov in potrebe po večji zmogljivosti je ESP8266 že kmalu dobil tudi zmogljivejšega brata ESP32 s precej bogatejšo notranjo arhitekturo in vsaj dvakrat večjim številom prostih priključkov, ki ga danes najdemo predvsem v komercialnih izdelkih z odprto arhitekturo, med katerimi prednjačijo pametne ure in zapestnice. Precej manj nosljivih naprav z odprto arhitekturo deluje na osnovi Armovih mikrokrmilnikov Cortex-M, za katere je prav tako na voljo podpora za programiranje v razvojnem okolju Arduino.
Ravno nasprotno imajo pametne ure z zaprtima arhitekturo in vgrajeno programsko opremo večinoma procesorska jedra z arhitekturo ARM. Večina sicer uporablja odprtokodni operacijski sistem Android, vendar vanj vgradi gonilnike, katerih zgradba je, skupaj s strojno arhitekturo telefonov, pogosto strogo varovana skrivnost njihovih proizvajalcev.
Od pametnih telefonov z odprto programsko opremo …
Kljub poplavi pametnih telefonov za zdaj ne najdemo prav veliko uporabnih izdelkov z odprto arhitekturo. Na Wikipediji je objavljena zgolj razpredelnica mobilnih telefonov, vključuje tudi pametne telefone (en.wikipedia.org/wiki/List_of_open-source_mobile_phones), za katere je na voljo celotna izvorna koda operacijskega sistema, vključno z gonilniki, medtem ko so za vgrajeno programsko opremo na voljo zgolj že prevedene datoteke tipa HEX, namesto katerih bi pričakovali vsaj datoteke v zbirnem jeziku (angl. assembler) in ustrezen prevajalnik. Za odprto arhitekturo bi morali proizvajalci objaviti tudi električno shemo, ki je prav tako ne najdemo pri nobenem od aktualnih modelov na seznamu Wikipedije.
Pametni telefon z operacijskim sistemom Ubuntu touch.
Razočarajo tudi možnosti nakupa tovrstnih telefonov, saj je le redke mogoče naročiti prek spleta, druge je mogoče kupiti le v specializiranih trgovinah v omejenem številu držav v Aziji, tretje lahko kupijo samo razvijalci, četrte pa še razvijajo, vendar lahko zanje plačamo vnaprej in s tem pomagamo k vzpostavitvi serijske proizvodnje. Še največ je takih, ki jih ne moremo več kupiti ali pa moramo oddati naročilo in počakati na morebitno novo serijo, ko se bo nabralo dovolj naročil. Dodajmo še, da je med omenjenimi telefoni precej takih, ki so preveliki in nepraktični za vsakdanjo uporabo.
Med pametnimi telefoni z odprto programsko premo so F(x)tec XDA Developes Pro-1 X in Hall Welt Systeme UG Volla Phone, ki ju lahko naročimo vnaprej, Open Pandora, DragonBox Pyra Mobile Edition z nekoliko nenavadnim ohišjem z izvlečno tipkovnico, Purism Libhem 5, Pine64 PinePhone, Necuno Solutions Necunos NC 1 in XFone Mobile XFM-XF-GPX3A. Večino poganja odprtokodni operacijski sistem Ubuntu Touch, nekateri pa podpirajo (tudi) druge različice Linuxa, kot so Debian in razne namenske izpeljanke odprtokodnega operacijskega sistema Android, denimo Volla Phonov Volla OS.
Odprtokodni pametni telefon F(x)tec PRO1-X z inovativno tipkovnico, ki jo izvlečemo izpod prikazovalnika.
Ali imajo telefoni z odprtimi programskimi opremami kakšne bistvene prednosti od tistih, za katere lahko s spleta prenesemo izvorno kodo operacijskega sistema Android z že prevedenimi objektnimi kodami gonilnikov, presodite sami. Res pa je, da se moramo pri ostalih nekoliko bolj potruditi, da na spletu poiščemo navodila, odklenemo zagonski nalagalnik in namestimo poljubno, zanje prilagojeno različico operacijskega sistema; lahko tudi tako (npr. Android ali Ubuntu Touch), ki jo sami prevedemo iz izvorne kode in vanjo iz slike originalnega operacijskega sistema prenesemo gonilnike proizvajalca.
Povejmo še, da le redkih pametnih telefonov (še) ni mogoče odkleniti. Več preberite v članku Popolni nadzor nad pametnim telefonom, ki je izšel leta 2019 v posebni poletni številki Monitorja z naslovom Hekanje.
… zamisli o nosljivih napravah z odprto arhitekturo …
Nosljiva elektronika mora biti dovolj majhna, da jo lahko pripnemo na svoje telo, ne da nas bi ovirala pri gibanju ali motila pri delu. Za njeno izdelavo potrebujemo proizvodno linijo, ki najprej naredi miniaturno večplastno tiskano vezje, nato pa nanj položi in prispajka vse elektronske komponente. Večji problem je primerno (plastično) ohišje, za katero potrebujemo drugačne stroje. Za manjše serije lahko uporabimo tudi tiskalnik 3D.
Električno je končni izdelek funkcionalno povsem enak, kot če bi ga sestavili na plošči za prototipiranje iz osnovnih modulov, združljivih z razvojnim okoljem Arduino ali manj znanim Espruino (v katerem lahko namesto v programskem jeziku C/C++ razvijamo v Java scriptu), le da je veliko manjši in lažji …
Anatomija pametne ure LILYGO & pauls_3d_things Open-Smartwatch.
Ko sem se pred leti lotil samogradnje prve vremenske postaje z uro in s tipali za temperaturo, zračni tlak in relativno vlažnost zraka na osnovi takrat popularnega Microchipovega mikrokrmilnika PIC18, sta se mi zdeli strojna arhitektura in vgrajena programska oprema sorazmerno enostavni, saj gradnja ne vsebuje časovno kritičnih komponent, kot so zajemanje, procesiranje ter predvajanje živih zvoka in slike pri pametnih telefonih. Kljub temu je bilo programiranje mikrokrmilnikov vremenske postaje v Microchipovih razvojnih okoljih MPLAB in MPLAB X precej zahtevnejše kot v okolju Arduino, ki sem ga pri kasnejših projektih uporabil za programiranje modulov ESP8266 in ESP32.
Ne preseneča torej, da danes večino naprav z odprto strojno arhitekturo programiramo prav v zadnjem, čeprav ima večina proizvajalcev mikrokrmilnikov in drugih čipov za zahtevnejše aplikacije na voljo tudi lastna razvojna okolja. A to ne pomeni, da Arduino ne omogoča zahtevnejših programskih struktur za večnitno izvajanje in uporabo krmilnika za neposredne pomnilniške prenose (DMAC – angl. direct memory access controller), vseeno pa so manj izkušenemu porabniku dobro skrite v številnih programskih knjižnicah, katerih izvorno kodo lahko navadno prenesemo z GitHuba.
Boj mikroarhitektur: ARM, Tensilica, RISC-V in x86-64
Čeprav so med graditelji odprtokodnih nosljivih naprav z odprto arhitekturo trenutno najbolj priljubljeni moduli ESP s Tensilicino procesorsko arhitekturo, se z novimi cenenimi razvojnimi ploščicami, kot je Raspberry Pi Pico z Armovo arhitekturo, v igro vračajo tudi pomanjšani mini peceji, ki se med samograditelji nosljive elektronike hitro približujejo popularnosti modulov ESP8266 in ESP32.
Raspberry Pi Pico s kopico vhodno-izhodnih priključkov temelji na Armovem mikrokrmilniku RF2040 in omogoča programiranje prek vrat USB v razvojnem okolju Arduino. Čeprav gre za velik odmik od prvotne zamisli o splošnonamenskem računalniku z odprto arhitekturo, lahko novi modul ponudi več zmogljivosti od modulov ESP, obenem pa ga lahko programiramo ne le v C in C++, temveč tudi v drugih programskih jezikih (še posebej v več različicah Pythona), ki jih uporabljamo pri večjih Raspberry Pi s priključki za monitor, tipkovnico in miško ter z režo za kartico mikro SD.
Modul Wi-Fi IoT Intel Edison je v začetku veliko obetal, a žal ni izpolnil Intelovih pričakovanj, zato so ga že pred leti prenehali proizvajati.
Pri Espressif Systems ponujajo tudi ESP32C, ki temelji na enem samem procesorskem jedru 160 MHz RISC-V z odprto arhitekturo in manjšo porabo energije, a s primerljivo procesorsko močjo kot ESP32 z dvema Tensilicinima procesorskima jedroma. Zadnji je sicer pri najvišji frekvenci procesorske ure 240 MHz nesporni zmagovalec hitrostnega testa, ki so ga izvedli na spletnem portalu Hackaday.com. Razlog, da se niso raje odločili za katero od mikrokrmilniških procesorskih jeder ARM Cortex-M, gre verjetno iskati v tem, da se je ARM šele nedavno odločil odpreti nabor strojnih ukazov procesorskih jeder razreda C-33, do katerega so imeli prej dostop le plačniki licenc za izdelovanje tovrstnih mikrokrmišniških čipov. Ukazi zmogljivejših procesorskih jeder razreda A obenem ostajajo dostopni le plačnikom licenc.
Po drugi strani vse manjše procesorje s 64-bitno pecejevsko arhitekturo x86-64 z majhno porabo energije izdelujejo tudi pri Intelu in AMD. Za pisarniško delo je tako danes dovolj že mini PC s procesorjem Intel Atom s pasivnim hlajenjem in povsem tihim delovanjem, ki ga iz električne vtičnice napajamo z majhnim vtičnim električnim pretvornikom in ni dosti večji od Raspberry Pi. Obenem se v segmentu mobilnih naprav po neslavnem propadu Intelove arhitekture Edison, ki so jo zasenčili moduli z Armovimi in s Tensilicinimi arhitekturami, ponovno odpira tudi možnost razvoja nosljivih naprav z arhitekturami x86-64.
... do pametnih ur in drugih naprav, ki jih programiramo sami
Če so nekatere pametne ure z odprto arhitekturo še nerodne, nezaščitene pred udarci in brez pravih vodoodpornih ohišij, naprednejše na zunaj že težko ločimo od klasičnih z zaprtima arhitekturo in programsko opremo. Zadnje imajo nekatere priboljške, kot je digitalna kamera, zato pa lahko na tiste z odprto arhitekturo naložimo celo preproste računalniške igrice, podobne tistim, ki jih poznamo iz časa prvih hišnih računalnikov ZX Spectrum in Commodore.
Ura watchX (watchx.io) je med vsemi pametnimi urami gotovo najosnovnejša, saj prve različice (na slikah) niso imele niti pravega ohišja. Sestavljena je iz majhnega tiskanega vezja, na katerega pritrdimo črno-beli grafični prikazovalnik in barvni trak s sponkami, s katerimi uro pripnemo na roko. Novejšim serijam izdelka je priloženo tudi priročno plastično ohišje, ki varuje elektronske komponente pa tudi uporabnika, da se ob morebitnem padcu ne bi poškodoval s steklom prikazovalnika.
Funkcionalnosti pametne ure watchX.
Srce watchX je mikrokrmilnik ATmega32U4 (združljiv z ATmeda328P), ki so mu dodali še črno-beli prikazovalnik OLED z ločljivostjo 128 x 64 pik, merilnika temperature in zračnega tlaka, giroskop z merilnikom pospeška, komunikacijski vmesnik bluetooth, piskač, dve splošnonamenski svetleči diodi, tri splošnonamenske mikro tipke, modul z uro realnega časa, polnilnik vgrajene litijeve baterije ter vmesnik za RS-232-USB za povezavo s PC in programiranje.
Uro lahko programiramo v razvojih okoljih Arduino (arduino.cc) in watchX Blocks, ki je namenjeno predvsem spoznavanju otrok s tehnikami programiranja računalnikov in je izpeljanka Scratcha. Pogrešamo le povezljivost prek Wi-Fi, ki jo ima večina programirljivih pametnih ur.
Programiranje pametne ure watchX iz razvojnega okolja Arduino.
Omenimo še, da je watchX v času nastajanja tega članka pošel in ga ni bilo mogoče kupiti niti na ameriškem Amazonu (amazon.com).
Bangle.js (espruino.com), za katerega bomo v Veliki Britaniji odšteli okoli 59 funtov, poganja procesorsko jedro ARM Cortex-M4, ki je vgrajeno tudi v njegovega naslednika, Bangle.js 2. Ta je v Espruinovi trgovini (shop.espruino.com/banglejs2-dev) za zdaj na voljo samo kot razvojna različica. Čeprav ta obeta dvakrat večji RAM ter dvakrat večja notranji (1 MB namesto 512 kB) in zunanji bliskovni pomnilnik (8 MB namesto 4 MB), ima manj zmogljiv prikazovalnik, ki namesto 240 x 240 pik pri 16-bitni barvni ločljivosti prikaže le 176 x 176 pik pri tribitni barvni ločljivosti in zato spominja na čase hišnih računalnikov iz 80. let preteklega stoletja.
Zmoti še, da se z novo različico lahko potopimo največ meter globoko in še to samo za 30 minut (vendar opozorimo, da razvojna različica ni vodoodporna), metem ko se lahko s staro različico potopimo do 10 metrov. Manj zmogljiva je tudi baterija, ki namesto 350 mAh zmore le 200 mAh, a lahko Bangle.js 2 zaradi več kot dvakrat manjše porabe energije zdrži v pripravljenosti brez polnjenja tudi do dva tedna, kar je teden dlje od njegovega starejšega brata. Ostale komponente so bolj ali manj enake: sprejemnik GPS/Glonass, merilnik srčnega utripa, triosna merilnik pospeška in magnetometer ter vibracijski motor za opozarjanje. Povejmo še, da je nova različica hkrati precej manjša od prve, meri 3,6 x 4,3 x 1,2 cm, medtem ko stara kar 5 x 5 x 1,7 cm.
Programerska dokumentacije Bangle.js je dostopna na spletnem portalu espruino.com.
Na spletni strani epspruino.com najdemo tudi s tem razvojnim okoljem združljive razvojne plošče, ki jih lahko integriramo v lastne rešitve. Espruino obsega programske prevajalnike in povezovalnike, programske knjižnice, izvorne kode za vseh izdelkov Espruino, grafične vmesnike za programiranje v Java scriptu in enostavne primere za učenje pisanja lastnih aplikacij.
Cena ponujene strojne opreme se vseeno zdi visoka, saj za miniaturno splošnonamensko razvojno ploščico (ki ni večja od podatkovnega ključka) s procesorskim jedrom ARM Cortex-M3 in z obilico splošnonamenskih robnih vhodno-izhodnih priključkov, ki s pecejem komunicira prek priključka USB, zahtevajo kar 36 funtov.
DSTIKE Deauther Watch (dstike.com) gotovo ni nekaj posebnega, ker temelji na starejšem modulu Wi-Fi, ESP8266, in tudi ne zato, ker nima dodelanega ohišja, hitro izprazni litijevo polnilno baterijo (prva različica v treh do štirih urah, druga in tretja pa v sedmih do osmih urah) in je namenjena razvijalcem novih naprav, temveč zato, ker zna poiskati šibke točke brezžičnih omrežij: odklapljanje iz omrežja, ustvarjanje lažnih omrežij, motenje sledilcev, prikazovanje prometa, prilagajanje merjenja realnega časa. Ura ima priloženo keramično anteno2,4 GHz, ki jo nalepimo v notranjost ohišja. Črno-beli grafični prikazovalnik SH1106 ima le 128 x 64 pik, merjenje realnega časa pa izvaja čip DS3231, zato ga ni treba ponovno nastavljati, če ESP8266 ponovno zaženemo.
DSTIKE Deauther Watch je morda prva hekerska pametna ura.
Pametna ura, ki jo lahko programiramo v okolju Arduino, stane okoli 50 EUR. Omenimo še, da je za vse željne hekanja za okoli 15 EUR v spletni trgovini aliexpress.com na voljo tudi razvojna ploščica Wi-Fi Deauther mini, ki je namenjena le testiranju omrežij Wi-Fi, vendar je brez baterije in napetostnega regulatorja/polnilnika.
LILYGO & pauls_3d_things Open-Smartwatch (lilygo.cn, open-smartwatch.github.io) je sorazmerno dobro integrirana okrogla pametna ura s premerom 3,7 cm, katere dizajn so izdelali pri podjetju pauls_3d_things, proizvaja pa jo kitajski LILYGO. Na voljo sta izvedbi brez sprejemnika signala GPS (lite edition, ki stane okoli 40 EUR) in z njim (GPS edition, ki stane okoli 80 EUR). Temelji na modulu Wi-Fi TTGO T-micro32 s 4 MB bliskovnega pomnilnika, ki so ga zasnovali na osnovi modulov ESP32. 1,3-palčni prikazovalnik LCD ima ločljivost 240 x 240 pik, vgrajena pa sta tudi merilnik pospeška in čip za merjenje realnega časa DS3231MZ, ki je nekoliko zmogljivejši od funkcijske enote RTC v Tensilicinem procesorskem čipu.
Uro programiramo iz peceja v razvojih okoljih Arduino, IDF (Espressif Systemsovo razvojno okolje) in MicroPython prek povezave USB 2.0. Za nalaganje nove programske opreme skrbi integrirani most iz TTL RS-232 na USB 2.0 oziroma čip CH340. Signala EN (gumb RST) in GPIO0 (gumb BOT) pri programiranju ročno upravljamo prek gumbov na ohišju ure. Prav zadnje nekoliko zmoti, saj nehoten pritisk na tipko EN resetira uro. A nič ne de, saj DS3231MZ čas nemoteno meri naprej. Če želimo naložiti novo programsko opremo, moramo pred RST pritisniti gumb BOT, s katerim T-micro32 zaženemo v načinu za programiranje. Pomen gumbov Menu1 in Menu2 je odvisen od aplikacije, ki jo naložimo. Osnovno aplikacijo lahko prenesemo s spletnih strani lilygo.cn, uro pa lahko kupimo na spletnem portalu aliexpress.com.
LILYGO T-Watch 2020 (lilygo.cn) v pravokotnem ohišju je v primerjavi s pravkar opisano pametno uro istega proizvajalca precej izpopolnjena, saj je ohišje trdnejše in odpornejše na udarce, priključek USB 2.0 pa zaščiten s plastičnim pokrovčkom, ima tudi tipko za vklop in izklop, vibracijski motor, zvočnik, mikrofon, zaslon, občutljiv na dotik pa tudi infrardeči sprejemnik, s katerim lahko zazna signale daljinskih upravljalnikov. 520 kB RAM z vzporednim dostopom in še 8 MB RAM z zaporednim dostopom, ki ga uporablja pri snemanju in predvajanju zvoka, je dovolj, da se ura po funkcionalnosti skoraj povsem približa izdelkom drugih proizvajalcev, ki jih ne moremo programirati. Pametna ura je združljiva z moduli ESP32-WROVER, programiramo pa jo lahko v Adruinu, IDF in MicroPythonu.
Programirljiva odprtokodna pametna ura LILYGO T-Watch 2020.
Doslej so pri LILYGO izdelali že dve posodobljeni različici ure LILYGO T-Watch 2020 v2 in LILYGO T-Watch 2020 v3, katerih cena je podobna tisti prvotne različice. Cena se razlikuje tudi po prodajalcih. Kupimo jo lahko v večjih spletnih trgovinah, med katerimi so amazon.com, banggood.com in aliexpress.com. V spletni trgovini aliexpress.com stane med 40 in 50 evri.
LILYGO TTGO T-Wristband (lilygo.cn), ki ga poganja modul Wi-Fi ESP32-PICO-D4, deluje pri 240 MHz. Po videzu je podoben večini pametnih zapestnic, ki so vsaj dvakrat ožje od pametnih ur. Barvni prikazovalnik je ločljivosti 160 x 80 pik. Na voljo sta različici LILYGO TTGO T-Wristband s 55 mAh in 105 mAh litijevo polnilno baterijo (Battery Plus). Zmogljivejša baterija zagotavlja skoraj dvakrat daljši čas neodvisnosti. Zapestnico programiramo prek Wi-Fi (protokol OTA) ali prek zunanjega vmesnika, za kar moramo elektroniko izvleči iz ohišja in jo povezati s trakastim kablom. Miniaturni most iz TTL RS-232 na USB 2.0 moramo kupiti posebej ali pa izbrati dražji komplet, v katerega je že vključen. Za polnjenje baterije uporabljamo namenski kabel USB, pri čemer moramo uro sneti z zapestnice in povezati z namenskim vtičem na kablu. Omenimo še, da omogoča zapestnica tudi povezljivost prek bluetooth. Stane okoli 40 evrov.
Programirljiva odprtokodna pametna zapestnica LILYGO TTGO T-Wristband.
Digitalna »suha roba«
Medtem ko postaja odprtokodna strojna oprema z odprto arhitekturo med računalniškimi znalci, zanesenjaki, hekerji in razvijalci vse bolj priljubljena, večina v vsakdanu, natrpanem z obveznostmi, le upa, da bodo njihove nosljive naprave varne ter da bodo z rednimi posodobitvami vgrajene programske opreme proizvajalcev pravilno in zanesljivo delovale še vsaj naslednjih deset let … Podobno, kot danes večina suhorobarski izdelek kupi v trgovini in ne razmišlja, kako bi ga naredila ali popravila sama, čeprav mojstrskega znanja na spletu ne manjka, pravih mojstrov pa je vseeno iz leta v leto manj.
Za varne brezžične komunikacije: komunikacijski vmesnik Wi-Fi s priključkom USB 2.0 z odprtokodnimi gonilniki
Med odprtokodno strojno opremo, ki jo lahko z ustrezno programsko opremo uporabljamo celo z nekaterimi nosljivimi napravami s priključki USB, sodijo tudi popularni miniaturni komunikacijski vmesniki Wi-Fi/bluetooth s priključki USB 2.0 z RealTechovim čipom RTL8821CU različnih proizvajalcev. Čeprav potrebujejo napajanje 3,3 V, lahko podatkovna signala D+ in D- ter maso neposredno povežemo s pecejem prek vrat USB 2.0. Za napajanje modula prek vtičnice USB moramo sami zgraditi napetostni regulator 3,3 V, za katerega lahko uporabimo tudi čip LM317T, ki mu dodamo še nekaj uporov in kondenzatorjev, ali pa namenski regulator 3,3 V, kot je AMS1117CD-3.3. Potrebujemo še anteno ali anteni za 2,4 GHz in 5 GHz , ki jo/ju kupimo posebej, lahko pa namesto tega na spletu poiščemo modul z vgrajeno anteno. Izvorne kode gonilnikov za Linux različnih avtorjev lahko prenesemo z GitHubs, na RealTechovi spletni strani pa najdemo tudi že izdelane gonilnike za vse različice Microsoftovih Windows in druge operacijske sisteme.
Doma narejeni modul Wi-Fi za osebni računalnik na osnovi RealTechovega čipa RTL8821CU v izpraznjeni škatlici zobne nitke, s priključkom USB 2.0 in 2,4 GHz anteno.
Kako sem se lotil gradnje? Modula nisem kupil v trgovini (naprodaj je na spletnem portalu alibaba.com), temveč sem ga odspajkal z osnovne plošče nekega mini peceja, na kateri ga nisem želel uporabljati, saj se Wi-Fi in bluetooth v nastavitvah BIOS ne dasta izklopiti. Če tega ne bi storil, bi bila vrata do morebitne neželene aktivacije modula zaradi stalnih samodejnih popravkov programske opreme v Microsoftovih Windows na široko odprta. Po drugi strani me je zanimalo, ali ga bom lahko uporabil kot vtični modul za poljuben PC ali celo Raspberry Pi.
Čeprav lahko oznako čipa vmesnika preberemo le pod lupo, je Google ob vnosu iskalnega gesla »RTL8821CU« izpisal kopico zanimivih zadetkov, med katerimi so bila navodila za uporabo modulov s tem čipom različnih proizvajalcev, poleg tega pa tudi več spletnih strani na GitHubu z izvornimi kodami gonilnikov.
Modul sem prispajkal na majhno razvojno vezje, na katerem sem zgradil še napetostni regulator ter dodal vtič USB in anteno 2,4 GHz. Delovati je začel takoj, ko sem v Windows namestil gonilnike, pri čemer se je predstavil kot dve napravi: omrežna kartica Wi-Fi in vmesnik bluetooth. Več na: sites.google.com/site/pcudbprojects.