Često pitanje je zašto koristiti CM (compute module), a ne standardne SBC ploče, kada je njihova cena veoma približna, a modulima nedostaje standardna povezivost preko konektora ili GPIO pinova. Ako pogledamo industrijsku i namensku primenu, CM moduli se koriste mnogo češće nego SBC pandani iste platforme. Razlog tome leži upravo u malim dimenzijama i standardizovanom obliku ploče, nižoj ceni ukoliko se govori o velikom broju komada, lakoj hardverskoj zameni starog CM modula novim koji može imati i više memorije, i eMMC-a, ali i moćniji procesor bez menjanja sopstvenog proizvoda u koji se ugrađuje. Na ovaj način se optimizuje razvoj i kasnija nadogradnja namenskog proizvoda, i omogućava se laka promena procesorske arhitekture. Neke primere takvih uređaja smo imali na recenziji, recimo Edatec CM4 Industrial industrijski računar ili ClockPi devTerm konzola koji u sebi imaju Raspberry Pi CM4. devTerm pri tome, kao što smo upravo napomenuli, ima mogućnost da jednostavnom zamenom CM4 modula radi i na drugim ARM ili RISC-V procesorima. Za razvoj takvih uređaja koriste se uz odgovarajući CM i CM IO ploče, pa tako na recenziji imamo Radxa Rock3 Compute Module modul sa RK3566 SoC-om i njemu odgovarajuću Radxa Rock3 Compute Module IO Board razvojnu ploču.
Osnovi SoM modul, zbog koga i postoji CM3 IO Board je odgovor kompanije Radxa na Raspberry Pi Compute Module, ali na Rockchip platformi. Kod CM3 modela to je četvorojezgarni RK3566. U njemu su sva jezgra ista i to ARM Cortex-A55 na 1,8 GHz. Primetimo da je takt kod RK3566 za 0,2 GHz niži nego kod RK3568, iako su jezgra praktično identična. Na Sysbench CPU testu očekivali smo da RK3566 bude po performansama između Raspberry Pi 3 i Raspberry Pi 4, ali nismo očekivali da bude brži od RK3568, čak ni za ovako malo.
RK3566 ima ugrađene hardverske kriptografske funkcije i po tome je Rockchip poznat u mejkerskom svetu. Mi po pravilu proveravamo: CBC, GCM, SHA1 i SHA256 i zaista vidimo da je CM3 modul daleko ispred Raspberry Pi modela, ali se pokazao i sposobniji od uporednih Rockchip rešenja.
Pored CPU jezgara u SoC-u je i ARM Mali-G52 MP1 GPU sa 2 EE, i NPU sposoban za 1 TOPS (INT8), u nekim dokumentima 0.8 TOPS, što je u svakom slučaju za nas neproveriva dilema. RK3566 smo već sretali u odličnom Orange Pi 3B-u i u recenziji tog SBC-a smo testirali njegove NPU mogućnosti.
Naš primerak CM3 modula došao je sa 2 GB LPDDRX4 RAM-a. Sa iste strane modula je i RK817-5 kolo za upravljanje napajanjem (PMIC). Po testovima koje smo uradili vezano za RAM, možemo reći da su u samom vrhu, te da je očigledno tim uspešno izveo i hardverski, ali i softverski komunikaciju SoC-a i RAM-a.
Za Ethernet je zadužen Realtek-ov RTL8211F 1GB Ethernet transiver, dok je 2.4/5 GHz Wi-Fi 5/Bluetooth 4.2 u rukama AW-CM256SM modula. Nama do sada nepoznatog. Uz modul je i ul.f konektor za eksternu antenu. Na poleđini modula nalazi se eMMC od 16 GB, kao i tri 100-pinska konektora za povezivanje sa CM3 IO pločom. Sama ova činjenica da ima tri, a ne dva 100-pinska konektora kao Raspberry Pi CM4 jasno ukazuje da je korišćenje Raspberry Pi CM4 IO ploče moguće, ali sa limitiranim mogućnostima. Naravno, to je moguće jer je modul identičnih dimenzija 55 x 40 mm i dva od tri konektora su na istom mestu kao i kod Raspberry Pi CM4 modula. Kako na Raspberry Pi CM4 IO Board-u nedostaje srednji konektor – Connector 3, te time postaju nedostupni EDP, dva USB 2.0, jedan USB 3.0, MIPI DSI i PDM linija RK3566 – svi oni idu kroz taj konektor. Stoga za svaki projekat preporučujemo Radxa/Okdo IO ploču. Jedini scenario u kome bi mogli da preporučimo ploču Raspberry Pi CM4 je ukoliko se Radxa Rock3 Compute Module koristi kao pick&place zamena za modul Raspberry Pi CM4 u nekom uređaju. Pored CM3 modula, postoji i CM3 industrial sa RK3566J SoC-om i sopstvenom pločom sa četiri konektora. Pazite pri kupovini da ne pogrešite između CM3 i CM3I. Postoji i CM5 modul i odgovarajuća ploča, no on je sa RK3588S2, odnosno RK3582 SoC-ovima sa ARM Cortex A76 + ARM Cortex A55 jezgrima.
Ovako sagledan modul predstavlja jezgro svakog SBC-a jer na sebi ima SoC, memoriju, eMMC, žične i bežične komunikacije, kao i kola za kontrolu napajanja, te predstavlja praktično samostalan računar bez izvedenih portova, ali sa svim potrebnim linijama povezanim za, u ovom slučaju tri 100-pinska konektora. Bez obzira koji je vaš projekat, ono što je na CM modulu je neophodni minimum za konkretnu platformu – ovde RK3566. Pri razvoju sopstvenog rešenja vi bi se stoga bavili samo perifernim linijama od tri konektora do vama potrebnih standardnih konektora: RJ45, MIPI CSI, MIPI DSI, 40 pinski heder, HDMI, USB-A, 3,5 mm audio ili nekih od heder pinova. U toku razvoja, dizajner mora imati slobodu da implementira neki dodatni port ili da ga ne koristi više, pa su ovakve ploče dobrodošle pri inicijalnom dizajnu. Tu promenjivost hardvera je ekonomski nepovoljno izvesti tako što bi se svakog puta dizajnirala i izrađivala nova ploča uređaja, već je daleko bolje imati ploču sa svim mogući interfejsima i na njoj uraditi prototip uz proveru njegove funkcionalnosti. Upravo tome i služi Radxa Rock3 Compute Module IO Board, koga smo uz modul dobili za potrebe ove recenzije od kompanije Okdo.
Okdo / Radxa ROCK3 Compute Module IO Board
Dobijeni IO Board je dimenzija 160 x 90 mm, pa je time veća od većine SBC-ova. No, njena funkcija i nije da bude deo nekog projekta, već da se na njoj razvijaju aplikacije za CM3 modul, iskoristi određeni broj dostupnih konektora, a kasnije na osnovu tog razvoja izradi konkretna PCB ploča uređaja i u nju utakne Radxa Rock3 Compute Module modul. Stoga ovakve IO ploče treba da imaju što više različitih konektora kako bi se iskoristile sve mogućnosti nekog SoC-a.
U skladu sa tim sa prednje strane imamo izveden HDMI kroz koji može da se dobija slika maksimalne rezolucije 4K. Pored je USB-A 3.0 na kome smo dobili brzine čitanja od 420 MB/s, pa 1 Gb Ethernet RJ45 konektor, dva USB-A 2.0 konektora za povezivanje sporih periferija sa brzinom čitanja od svega 31 MB/s. MicroUSB je na ploči zbog potrebe da se OS flešuje na CM3 modul, međutim on se po potrebi može prenameniti u standardan USB port primenom overlay-a. Kada već spominjemo USB povezivost, na ploči postoje još tri USB 2.0 četvoropinska hedera povezana na USB 2.0 HUB čip na CM3 IO Board-u. Na kraju, tu je i 3,5 mm audio in/out konektor, kao i heder za napajanje SATA diskova.
Dva SATA 3.0 konektora su uz desnu ivicu, a onda do njih PCIe 2.0 konektor i 12 VDC 2.1 mm džek za napajanje. SATA deli linije sa Ethernet portom i PCIe, te u projektu morate odlučiti koji od njih koristite. Ovo, ali i sva druga ograničenje u I/O smislu dolaze iz samog RK566 modela, koji je daleko manje opremljen komunikacijama od RK3568 ili još bolje RK3588(pazite on se tek zagreva).
Sa zadnje strane tu je četvoropinski konektor za kontrolu rada ventilatora CPU-a. Iako ARM Cortex-A55 jezgra važe za efikasna i u radu uspevaju da održe temperaturu ispod 80 ºC, ipak se pokazalo da kod zadataka kada rade sva četiri jezgra u punoj snazi dolazi do pregrevanja i trotlovanja ukoliko se ne postavi barem pasivni hladnjak. Ipak, ako želimo rad u punom deklarisanom opsegu radnih temperatura, onda je montaža aktivnog kulera obavezna kako bi se izbeglo usporenje rada SoC-a.
Sa desne strane ove ivice nalazi se konektor za Li-Ion bateriju, dva MIPI DSI konektora za povezivanje Radxa MIPI displeja, kao i TP konektor za signal dodira na panelu. Interesantno je postojanje zasebnih MIC i SPK hedera za mikrofon i zvučnike, kao i ležište za CR2032 RTC bateriju.
Na levoj strani nalazi se eDP konektor i dva MIPI CSI konektora za kamere. Podržane su sopstvene Radxa kamere, ali i Raspberry pi kamere V1.3 i V2 uz upotrebu overleja, o čemu ćemo kasnije u delu o softveru.
Ono što svaku IO ploču čini interesantnom je GPIO heder sa IO signalima sa procesora. Ovde imamo standardan 40 pinski GPIO heder kod koga je raspored grupa napojnih i signalnih pinova u skladu sa standardnom Raspberry Pi šemom. Iako se napojni signali potpuno poklapaju do tančina, apsolutno poklapanje funkcija IO signala nije moguće, s obzirom da imamo različite SoC-ove. Kako su IO linije po pravilu multipleksirane i softverski možemo menjati tip signala na njihovim pinovima, pri radu možemo prilagoditi njihovu funkcionalnost onome što nam je potrebno, te se u tom smislu može postići visok nivo kompatibilnosti između dostupnih HAT-ova ili nekog našeg rešenja.
Sistem se može napajati i preko Radxa PoE HAT-a model V1.0. Treba obratiti pažnju da je Radxa za svoj model Radxa X4 napravio i Radxa PoE HAT for X4 koji je gotovo identičan, ali ima heder sa dva pina koji bi se pri montaži na CM3 IO Board našla tačno iznad HDMI konektora i time onemogućila pravilno naleganje PoE HAT-a na ploču.
Softver
Radxa Rock3 Compute Module Compute Modul i CM3 IO Board treba posmatrati kao razvojni sistem, a ne kao gotov proizvod, čak ni u smislu SBC računara. Tom logikom vođeni ne bismo mu zamerili i da je dato sam par osnovnih uputstava za Low-level razvoj. Međutim, Radxa ima dobru reputaciju što se tiče podrške, te je na svom sajtu sa dokumentacijom dao mnoga detaljna pojašnjenja i uputstva za korišćenje i samostalni rad korisnika ove platforme.
Dodatno je tim prilagodio i Radxa OS, Debian 11 Linux sa KDE desktopom i 5.10.160 kernelom. Dat je i imidž Androida, ali se mi njime zaista nismo bavili, iako bi on potencijalno mogao biti interesantan pri izradi infopultova.
Pored lepe kolekcije preinstaliranog softvera, koji nam u ovom slučaju, iako potpuno funkcionalni, više znače kao neki demo mogućnosti RK3566 i CM3 modula. Vratimo se na CM3 modul kojeg smo dobili da bi to i pojasnili. Modul na sebi ima 2 GB memorije uparen sa RK3566 SoC-om, to je zaista donja granica prihvatljivosti i memorije i snage procesora za desktop rad na RK35xx SoC-evima, te je to dominantan razlog zašto za ovaj CM3 modul smatramo da je rad u terminalu pravi izbor. Znamo iz iskustva da sve platforme sa Geekbench 5 rezultatima sličnim Radxa Rock3 Compute Module nemaju dovoljno snage da desktop rad učine ugodim u skladu sa današnjim očekivanjima koje postavlja recimo Raspberry Pi 5.
Preporučujemo stoga pristup dibug sondom preko pinova GPIO hedera ili SSH-om preko Wi-Fi mreže ili Ethernet-a, potencijalno uz korišćenje PoE HAT-a. Tako dobijate odličan razvojni sistem za CM3 module sa RK3566 SoC-om na njemu.
Veoma bitan komad softvera je rsetup koga inače pokrećete iz terminala i koji služi za softversko podešavanje funkcionalnosti modula. Uz podešavanje mrežnih parametara i lokalizacije, ono što je takođe veoma važno je aktiviranje i deaktiviranje slojeva (overlays) koji omogućavaju pravilno korišćenje portova preko kojih se povezuju periferni uređaji poput kamera i displeja. Tim je napisao veći broj ovih definicija i to zaista ubrzava razvoj ukoliko se držite standardnih IO dodataka. Ako imate specifičan zahtev, moraćete sami da napišete ili nabavite potreban overlay.
Za kontrolu signala na pinovima u Radxa OS-u su implementiran libgpiod sa svojim API-jem i to je daleko bolje rešenje nego zastareli pristup preko GPIO sysfs interfejsa koji najčešće srećemo kod SBC-ova koji dolaze iz Kine. Tu je i Eclipse Mraa (Libmraa) C/C++ biblioteka kao drugi pristup kontroli GPIO-a.
U dokumentaciji su data i uputstva za QT kroskompajliranje, osnove za rad sa RKNN alatima za korišćenje AI mogućnosti Rockchip SoC-eva, kao i demonstracija YOLOv8 detekcije objekata. Za početak je to dovoljno materijala, a jasno je da je za svaki ozbiljan projekat potrebno daleko više informacija i iskustva koja će tim koji je odredio CM3 modul kao osnovu svog proizvoda svakako morati da dosegne.
Zaključak
Radxa Rock3 Compute Module Compute Modul sa njemu odgovarajućim Radxa Rock3 Compute Module IO Board-om je odlična kombinacija za razvoj sopstvenog proizvoda baziranog na RK3566 SoC-u. Komplet ne treba posmatrati kao gotov proizvod za drugu namenu sem za razvoj, mada potencijalno može služiti, već je u tom slučaju bolje koristiti neki od SBC-ova na istom čipu popuz Orange Pi 3B ili Geniatech XPI-3566 Zero, pa čak i odličan FriendlyElec NanoPi R3S koji nema video izlaz.
Budući da na sebi ima AI koji se kroz RKNN-alate može iskoristiti za prepoznavanje objekata i lica. Kako poseduje dovoljno snažan GPU, kao i 4K H.265/H.264/VP9 video dekoder i 1080p pri 60Hz H.265/H.264 video enkoder može se izgraditi sofisticiran uređaj ove namene. Teoretski je tako, ali u praksi se suočavamo sa problemima upravo u ovoj oblasti, kako sa kvalitetnim video drajverima, tako i sa implementacijom enkodovanja i dekodovanja na raznim Debian verzijama i različitim kernelima, jer neki od neophodnih programa nisu mežusobno kompatibilni. U tom smislu ne očekujte laka rešenja.
Daleko je jednostavnije rešiti pristup GPIO i drugim komunikacionim portovima i fokus bi, posebno kada su ova ARM Cortex-A55 jezgra u pitanju ipak bio na serversku upotrebu sa pristupom iz terminala. Nažalost i ovde zbog komunikacione ograničenosti RK3566, što je umnogome rešeno na RK3568, nećete imati vrhunske performanse u prenosu podataka koje bi pratile mogućnosti obrade podataka CPU jezgara. Naravno, ne znači da bi u vašem konkretnom slučaju taj protok informacija uopšte i bio potreban, pa će to svakako opravdati upotrebu ovog CM3 modula i njegova cena od $25/$30/$55 će biti prihvatljiva za module sa 1/2/4 GB RAM-a i Wi-Fi modulom. Cena Radxa Rock3 Compute Module IO Board-a je samo $25, što nam se čini veoma preihvatljivo.
- Faulhaber: Pogled iza korner zastavice - 13/12/2024
- Seeed Studio Grove Smart IR Gesture Sensor PAJ7660 recenzija - 12/12/2024
- ELECTRIX AI: Prvi ECAD softver sa veštačkom inteligencijom - 11/12/2024