Luckfox Pico je ekonomična 32 bitna hibridna platforma bazirana na jednom ARM Cortex-A7 jezgru u SoC-u pod imenom RV1103, odnosno RV1106. Na oba ova procesora je moguće je pokrenuti Ubuntu 22.04 u takozvanoj server verziji, budući da izvršavaju kompletan ARM v7-A set instrukcija. RV1103/RV1106 SoC nema video izlaz te desktop verzija OS nije prigodna za upotrebu. SoC ima integrisani vision procesor sa implementiranom NEON tehnologijom koja uz prisutni FPU ubrzava audio i video enkodovanje i dekodovanje, što omogućava obradu video signala. Video enkoder u procesoru podržava H.265/H.264, kao i multi-stream enkodovanje čime je omogućeno da se video signal sa kamere u visokoj rezoluciji čuva u lokalnoj memoriji, ali i istovremeno prosleđuje u nižoj rezoluciji video strimom preko mreže na oblak ili drugi povezani uređaj. U sve modele postoji POR (Power on Reset) kolo koje obezbeđuje predvidiv i regulisan napon na čipu. Ovako nabrojane karakteristike otkrivaju nam dva ishodišta upotrebe ovih minijaturnih SBC-ova. Prva je pametna AI mrežna kamera, veoma niske cene sa elementarnim mogućnostima prepoznavanja objekata na njoj. Druga ideja je iskoristiti ovaj hardver za kontrolu signala u maniru mikrokontrolerskog razvojnog sistema, ali uz svu podršku standardnih Ubuntu razvojnih alata.
Hardver Luckfox Pico serije
RV1103 u sebi ima integrisan 4 MP ISP (image signal processor), dok RV1106 ima ISP koji može prihvatiti 5 MP video signal sa priključene kamere preko MIPI CSI ulaza. Obrada signala je ubrzana algoritmima za HDR, 3A LSC, 3DNR, 2DNR, sharpening, dehaze i korekciju game slike. Obrada video signala je ubrzana dodatnim hardverskim video endžinom sa 22 kalkulacione jedinice i može postići maksimalno 30 fps pri najvišoj rezoluciji.
Luckfox u svojoj ponudi ima i MIPI CS kameru sa oznakom SC3336, a zašto je izabrana baš kamera od 3 MP za SoC koji može da obrađuje 4 odnosno 5 MP ostaće misterija. U njoj je istoimeni CMOS senzor kompanije SmartSens Technology, formata 1/2.8″ i sa osetljivošću od 4947 mV/lu. Kamera može snimiti maksimalnu sliku od približno 2300 x 1300 piksela pri 30 fps. Napisali smo približno jer se podaci na Luckfox sajtu i sajtu proizvođača senzora razlikuju u nekoliko piksela. Kvalitet dobijene slike je zadovoljavajući za aplikacije generalnog nadgledanja prostora i za praćenje situacije kamerama u vozilu. Širokougaono sočivo objektiva potpuno je uronjeno u plastično telo i obezbeđuje vidljivi ugao od 98.3°.
16-bitna DDR2 memorija je integrisana u SoC i u zavisnosti od modela procesora može je biti 64 MB kod RV1103G1, 128 MB kod RV1106G2 ili 256 MB kod RV1106G3.
Integrisani 0,5 TOPs NPU, a jedino je kod RV1106G3 to 1 TOPs NPU, koristi standardan RKNN model karakterističan za većinu modernih Rockchip procesora serije RK35xx sa AI mogućnostima. Povrh svega, kako bi AI učinio pristupačan korisnicima, Rokchip je izdao besplatan RKNN-Toolkit2 softver koji im služi za razvoj AI apalikacija omogućavajući konverziju opšteprihvaćenih AI modela poput: TensorFlow, MXNet, PyTorch i Caffe-a u RKNN model, kao i procenu performansi NPU-a i za tu svrhu koristi i Rockchip NPU platformu, ali i x86/AMD64 PC sa Ubuntu OS na sebi.
RK1103/RK1106 ima pristojan set GPIO linija: PWM, I2C, UART, SAR ADC, SPI, ali nema ni jedan I2S port. Šteta za modele sa RV1106 SoC-om, jer i G2 i G3 pored audio codec-a imaju I2S izvedene linije i to bi otvorilo niz dodatnih primena ove platforme u audio projektima. Softverski pristup pinovima je detaljno objašnjen na wiki sajtu korišćenjem C i Python biblioteka koje su u zvaničnim imidžima Luckfox Pico ploča. Kako je u pitanju standardni Ubuntu 22.04 sa linux kernelom 5.10.110 moguća je kontrola stanja GPIO pinova i korišćenjem fajl sistema, odnosno upisom vrednosti u sistemski direktorijum /sys/class/gpio/. I to uputstvo je detaljno dato na Wiki Quick Start sajtu.
Ne samo da je objašnjena kontrola GPIO-a, već su dati i C/Python primeri upotrebe nekoliko tipova Pico displeja, OLED modula i DHT11 senzora temperature i vlage. Trenutni spisak kompatibilnih periferija podržanih softverskim primerima dat je na ovoj lokaciji.
Primere treba preuzeti na PC računaru i kroskompajlirati, pa tek onda startovati na ovom SBC-u. Za svaki od modula urađen je DTS fajl koji je najlakše implementirati startovanjem luckfox-config alata. Njime se podešavaju i drugi parametri GPIO linija.
Modeli Luckfox Pico
Luckfox Pico se izrađuje u pet verzija, sa time da se opciono može naručiti sa i bez montiranih hedera na GPIO portovima.
Luckfox Pico
Osnovni model po ceni od $6.99, ako smemo da sudimo po dužini imena je Luckfox Pico veličine 21 x 51 mm. Na njemu je RV1103G1 SoC na 1.2 GHz i sa 64 MB RAM-a. Sa gornje strane nalazi se MIPI CSI konektor za kameru, kao i push-pull ležište za SD karticu. Kartica se nadvija nad prostorom za monatžu flash memorije iako ona nije montirana, niti postoji model u ovom formatu na kome se ona nalazi.
Sa donje strane pločice nalazi se nekoliko test padova, ali i pet Ethernet linija. Ovaj model nema RJ45 konektor, ali sam RV1103G1 SoC ima u sebi Ethernet 100M kontroler. Na ivicama su rasporešene 24 GPIO linije direktno povezane sa pinovima SoC-a.
Luckfox Pico Plus
Drugi model je Luckfox Pico Plus sa cenom od $9,99 je dopuna osnovnog modela RJ45 portom na samom kraju. Stoga je dimenzija nešto veća i sada je 21 x 72 mm. Broj izvedenih GPIO pinova je za jedan veći i iznosi 25. Ima ugrađenih 128 MB SPI NAND flash-a za smeštanjem OS-a. Postoji i ležište za SD karticu koja se motira paralelno sa SPI NAND-om. pored je BOOT dugme, koje kod ovog modela ima smisla jer prebacuje pločicu u mod za flešovanje OS-a na SPI NAND.
Sa donje strane pločice sem oznaka pinova nema dodatnih korisnih elemenata, što omogućava laku embedovanu ugradnju priljubljivanjem te strane na nosač.
Luckfox Pico Mini
Najmanji od svih, sa cenom od $6,99 kao i standardni, je Luckfox Pico Mini. Dimenzije su mi svega 21 x 28 mm, što je veličina uporediva sa poštanskom markicom. Izrađuje se u dva modela: bez (A) i sa (B) 128 MB SPI NAND flašom. Sa gornje strane je kao i kod svih modela MIPI CSI konektor, kao i BOOT dugme.
Donja strana ovog modela je nešto „interesantnija“, budući da je zbog kompaktnosti jedan broj komponenata morao da bude preraspodeljen na poleđinu. Sam Rockchip RV1103G1 je zauzeo gotovo polovinu površine, dok se u preostalom delu nalazi nosaš za SD karticu. Pinovi kod ovog modela nisu označeni, sem Ethernet linija, usled nedostatka prostora. Minijaturizacija je uzela danak i sada je tu samo 17 GPIO linija. UART, I2C i SAR ADC linije nisu patile, ali je broj PWM linija pao sa 14 na 6.
Luckfox Pico Max
Najjača verzija Luckfox Pico Max po ceni od $12,99 je dimenzija 21 x 72 mm i realizovana je sa RV1106G3 SoC-om, koji se razlikuje u nekoliko ne baš nebitnih detalja od RV1103G1. Prvo je količina memorije koja je ovde „čak“ selih 256 MB, posledično tome povećana je i AI moć na 1 TOPs. RV1106G3 ima RTC, pa je i sa gornje strane ploče postavljen konektor za RTC bateriju. Pored već viđenog BOOT dugmeta tu je i RESET dugme. Najzad sam video procesor može obrađivati sliku od 5 MP pri 30 fps. Ethernet port je kao i kod drugih modela 100 M.
Sa druge strane je 256 MB SPI NAND flash-a, pa se OS može pokrenuti ili sa njega ili sa SD kartice. Nažalost linije GPIO hedera nije obeležen, ali uvidom u dokumentaciju vidimo da je ovo konekcijama najbogatiji model, tu je čak 26 GPIO pinova. Broj pinova ne otkriva sve detalje. Kako većina njih može imati i neku od „specijalnih“ funkcija, kao što je SPI, UART, SAR ADC ili PWM vidimo da je i u tom smislu ovaj sistem najbogatiji. Luckfox Pico Max ima pet UART veza, sa tim da tri imaju i CTS/RTS linije, za razliku od standardne verzije koja ima tri UART-a, od kojih samo jedan ima i CTS/RTS linije. Max ima i tri I2C kanala, dok standardni model ima samo jedan. Nažalost, ni Luckfox Pico Max nema izveden I2S, iako ga sam RV1106G3 poseduje.
Napomena 1: Postoji i model Luckfox Pico Pro koji je identičan po izgledu kao i Max model, ali se na njemu nalazi RV1106G2 SoC. Razlika je u količini memorije, koja je kod njega 128 MB i sposoban je za 0,5 TOPs INT8.
Napomena 2: Nakon što smo dobili Luckfox Pico primerke od kompanije Luckfox/Waveshare za potrebe ove recenzije, pojavila se i serija Luckfox Pico Ultra koji ima DDRL3 memoriju, 8 GB eMMC-a, PoE interfejs i opcioni Wi-Fi modul. Nismo imali prilike da isprobamo taj model.
Softver
Glavna moć ovih kompaktnih i cenovno ekonomičnih ploča je sposobnost da pokrenu punu verziju Ubuntu OS-a. Luckfox je dao kompletan SDK kao i detaljno uputstvo za građenje imidža za svaku od platformi, čime je omogućio korisnicima da samostalno naprave imidže po sopstvenoj potrebi. Postupak je zasnovan na Buildroot alatu, a imidž se pravi na zasebnom PC računaru na kome je najbolje da bude instaliran Ubuntu 22.04.
Za one koji ne žele da se upuštaju u lepo dokumentovan postupak gradnje OS-a ili nemaju zaseban Ubuntu računar, moguće je preuzeti već gotove imidže sa Luckfox sajta. Za svaku ploču dali su dva imidža, jedan Ubuntu 22.04 u server verziji i jedan koji nazivaju Buildroot. Prvi je potpuno funkcionalna verzija sa svim drajverima osim onog za MIPI CSI kameru. Tu su sve potrebne biblioteke za upravljanje GPIO signalima i za tu ga namenu i treba koristiti. Buildroot verzija je daleko manja, daleko manje zahtevna i njena glavna odlika je što podržava rad MIPI CSI kamere.
Vratimo se na sam proces pokretanja Luckfox Pico ploča. Kao disk sa OS-om na svima se može koristiti SD kartica, a kod onih sa SPI NAND flash-om sistem se može pokrenuti i sa njega. Za flešovanje i u jednom i u drugom slučaju koristi se Rockchip Soc ToolKit. Iako je sve podrobno opisano na Wiki sajtu, obratite pažnju da se koriste svi imidži osim update.img.
Pristup terminalu, pa time i SBC-u će sigurno zbuniti većinu korisnika. UART pinovi nisu izvedeni i taj put nije bio na umu Luckfox timu. Neke od ploča imaju Ethernet i to bi mogao biti dobar način nakon što otkrijete na kojoj se IP adresi (192.168.0.x) u mreži vaš Luckfox Pico nalazi. Naravno, ostaje pitanje kako do onih ploča koje nemaju RJ45 port. Pravi način je neobičan – kroz USB-C port. Iako se nalazi na svakoj ploči, mi smo samo ovlaš pomenuli da je to port za napajanje, ali on ima i još jednu, mnogo bitniju funkciju. Priključite Luckfox Pico na vaš računar i videćete da se na Windows PC-u pojavila novi mrežni uređaj. Luckfox Pico Ubuntu imidži su podešeni da sistem ima fiksnu adresu na 172.32.0.70, dok je Buildroot imidž postavlja na 172.32.0.93. Potrebno je da omogućite komunikaciju kroz Windows firewall i da podesite IPv4 podešavanja za tu vezu u skladu sa opisom na Luckfox Wiki sajtu. Nakon toga, preko terminala možete ostvariti ssh pristup.
Međutim, ukoliko koristite Ubuntu, Luckfox je prevideo sve one korisnike koji ne umeju da povežu uređaj koji se sam ne prijavljuje na lokalnu mrežu. Manje Ubuntuu vični korisnici, ostaće zaglavljeni na ovom koraku. A rešenje je relativno jednostavno. Priključite Luckfox Pico USB kablom, sačekajte minut da bi bili sigurni da je sistem „primetio“ SBC i u terminalu otkucajte: sudo dmesg
U našem slučaju videli smo da je priključen novi USB uređaj koji je RNDIS host sa imenom encefb507b4a56. Sve što sada treba raditi je povezivanje uređaja komandom:
sudo ip addr add 172.32.0.1/16 dev encefb507b4a56
Sada će Luckfox Pico biti na 172.32.0.70 ukoliko je Ubuntu OS, odnosno 172.32.0.93 ukoliko je Buildroot. Dalji pristup je preko terminala ssh konekcijom.
Zaključak
Serija Luckfox Pico minijaturnih SBC-ova po ceni od $6,99 pa sve do $12,99 je veoma interesantna ponuda između SBC računara i mikrokontrolerskog razvojnog sistema. Dobijate platformu na kojoj se pokreće „punokrvni“ Ubuntu 22.04, doduše bez desktop okruženja. S obzirom na jedno ARM Cortex-A7 jezgro bilo bi i neumesno da očekujete išta više.
I ne samo to, ugrađeni video procesor omogućava obradu slike sa priključene kamere, a NPU će prepoznati lica ili predmete koristeći standardan RKNN model. Doduše neće to biti u realnom vremenu, leg je oko sekunde, ali u ovom cenovnom rangu to ćemo oprostiti.
Na sve to, ploča se može mrežno povezati ili preko USB-C porta ili 100 M Ethernet vezom i slika sa kamere se može preneti na udaljeni uređaj ili oblak. Nažalost nema bežičnih niti PoE mogućnosti.
Za razvoj aplikacija u C-u neophodan vam je dodatni računar, jer snaga procesora nije dovoljna da iskompajlira kod. Sa druge strane Python u verziji 3.10.12 će raditi besprekorno. Kad smo kod snage procesora, Geekbench 5 je dao skor od 52 u single core-u, multi core naravno ovde ne postoji. Sysbench je postigao 18,26 operacija u sekundi. Poređenja radi sa Raspberry Pi Zero 2W to je tačno deset puta slabije, a Zero 2 W ima i multi core na kome postiže 721 operaciju po sekundi.
Nema ni jednog razloga da ne preporučimo Luckfox Pico SBC platformu svima kojima je razvoj aplikacija u Ubuntu OS-u prirodan i onima koji nisu ljubitelji stila razvoja rešenja sa mikrokontrolerima. To što ćete aplikacije razvijati, Ai modele konvertovati, imidže OS-a graditi na PC računaru i kasnije ih samo pokretati na Luckfox Pico-u zaista podseća na rad sa MCU-ovima. Sama činjenica da poznajete alate za razvoj ili već imate kod napisan za Ubuntu OS platforme dovoljan je razlog da se odlučite za Luckfox Pico. O ceni da ne govorimo.