Nordic Thingy:91 X
Nordic Semiconductor Thingy:91 X celular IoT razvojni sistem inicijalno objednjuje celularne komunikacije i Wi-Fi i GNSS lociranje. Može se promenom firmvera "otključati" i Bluetooth LE i Wi-Fi 6 modul i u potpunosti izmeniti osnovna aplikativna ideja ovog uređaja - koji sa fabričkim firmverom igra ulogu lokatora sopstvenog položaja.
Pros
- Izuzetna softverska podrška i naročito kvalitetni obrazovni materijali i za inženjere, ali i za mejkere i entuzijaste
- Svi čipovi su iz istog Nordic Semiconducter ekosistema, što garantuje hardversku usaglašenost
- Pametno izabrani senzori na ploči, kao i ugrađen Qwiic odnosno STEMMA QT port za dalja povezivanja na I2C magistralu
- Postoje tri interne antene za svaki od radija
- Dolazi sa dve sim kartice dovoljne za inicijalni rad i demonstraciju
Cons
- Nema integrisan SAGGER J-Link dibager ili bar dodatni dibager sa najosnovnijim funkcijama
Čipovi Nordic Semiconductor su prepoznati po implementaciji savremenih tehnologija bežičnih komunikacija bilo da je to celularni prenos, Wi-Fi protokol, Bluetooth standard ili neki od novijih tehnologija poput DECT NR+, Thread ili Zigbee. U zajednici su poznati po svom kvalitetu, ali i po teškom – neugodnom inicijalnom podešavanju toolchain-a koga u principu čine kompajler, linker, biblioteke i dibager neophodni za razvoj aplikacije. Gotovo da nismo čuli korisnika koji se nije požalio na postupak setapa koji je pravilu trajao … satima i danima uz veliku neizvesnost postizanja krajnjeg cilja. Svesna tog problema, kompanija sve vreme razvija nrf Connect for Desktop aplikaciju i ekstenzije za VS Code bez kojih, naše je mišljenje, rad sa ovim izvrsnim „silicijumom“ ne bi bio moguć van tima u samom Nordic Semiconductor-u. I ovim rečima bi se završio uvod da smo ga pisali pre pola godine, ali situacija sa podrškom i obukom je u ovom trenutku u potpunosti izmenjena. Nordic Semiconductor je, što je za pohvalu vrednu prvog pasusa ovog teksta, korisnicima ponudio čak šest kurseva kroz DevAcademy. Prvi je osnovni kurs za nRF54L seriju koji nam za ovaj Thingy:91 X nije bio interesantan. Sledeći je „nRF Connect SDK osnove“ koji kroz osam lekcija, od kojih se svaka sastoji od teoretskog dela, konkretnog programskog primera i testa na kraju objašnjava podešavanje toolchain-a i provodi polaznika kroz tipičnu programersku praksu. Ovaj kurs je pogodan gotovo za same početnike, jer bez obzira na krajnji nivo informacija koje pruža, ne zaboravlja da učeniku preda i sva osnovna znanja i uputstva za korišćenje Visual Studio Code, Zephyr RTOS-a, podešavanja toolchain-a. Krajnji test je odmeren i fokusiran na najbitnija pitanja. Čak, nije na odmet i ponoviti testiranje par puta dok se ne iscrpe sva pitanja, budući da smo videli da predviđenih pitanja ima više od ograničenih 5 ili 8 – u zavisnosti od lekcije koja zadovoljavaju prolazak sa 100% na testu. Ovaj kurs se može proći i sa Thingy:91 X, ali i sa drugim razvojnim sistemima koje nudi Nordic Semiconducter, pa generalno čak i sistemima drugih proizvođača koji imaju neki od nRF5x ili nRF9x čipova na sebi. Nakon završetka kursa dobija se sertifikat.

Po završenom osnovnom kursu koji pokriva izradu firmvera, možete nastaviti dalje kroz tri tematska: „Wi-Fi osnove“, „Bluetooth LE osnove“ i „Cellular IoT osnove“. Kao kruna koja objedinjuje sve do tada naučeno tu je i poslednja ponuđena obuka: „nRF Connect srednji kurs“. Prelazići ovih pet, potencijalno i šest seminara – ako vas interesuje nRF54L, steći ćete dovoljno iskustva kroz teoriju i primere da bi samostalno mogli da razvijate aplikacije.
Kome kursevi nisu dovoljni, mogu posetiti i video Nordic Semiconducter webinar-e koji na očigledan način dodatno pojašnjavaju rad sa ovim čipovima. Dakle, podrške, nikako ne nedostaje.
Naravno, iskustvo u praktičnim zadacima doći će vremenom kroz rešavanje realnih problema. A Nordic Thingy:91 X bi mogao biti odlična hardverska osnova za taj put.
Hardver koji čini Thingy:91 X alatom za izradu Cellular IoT prototipa
U neku ruku i Nordic-ov Thingy:91 X, koji je poboljšana i hardverski osavremenjena verzija Thingy:91, je dizajniran i izrađen da lakoćom rada sa njim privuče što veći broj ljudi koji razvijaju hardver sa bežičnim komunikacijama, posebno lokatore. Nordic Thingy:91 X je na prvom mestu platforma za izradu prototipa uređaja koji se oslanja na celularni IoT, ali može koristiti i druge vrste bežičnih komunikacija. U isto vreme je i samostalni uređaj – treker koji, budući da podržava LTE-M, NB-IoT, GNSS i DICT NR+ ima „gotovo“ globalnu pokrivenost, a konkurentnim korišćenjem celulara, Wi-Fi i GNSS obezbeđuje neprekidno praćenje položaja od strane vlasnika. Uređaj dolazi već programiran demo firmverom koji za to praćenje koristi internet platformu nRF Cloud Location Services.
U kompletu se pored simpatičnog razvojnog sistema dobija i pločica za dibagovanje i merenje struje PCA64165, kao i dve aktivirane SIM kartice koje je dovoljno ubaciti u uređaj pre uključivanja. Fabrički je flešovan firmver koji uspostavlja vezu sa lokalnim operaterom. Na sajtu https://hello.nrfcloud.com potrebno je registrovati primerak uređaja koji posedujete, unošenjem jedinstvenog „otiska prsta“ – koji se inače nalazi odštampan na nalepnici na PCB ploči i Thingy:91 X će se povezati sa oblakom.

Glavna čip na ploči je SiP Nordic Semiconductor nRF9151 – low power SiP sa integrisanim GNSS-om i LTE-M/NB-IoT/NTN i DECT NR+ modemom. Ovaj SiC je u ovom trenutku preporučen za ugradnju u nove projekte i trebao bi da zameni prethodne nRF9160 i nRF9161 modele. Digresije radi, Nordic Semiconductor nRF9160 smo imali na recenziji u Conexio Stratus razvojnom sistemu, dok je noviji nRF9161 predstavljen u Connexio Stratus Pro-u. Za ljubitelje Conexio razvojnih sistema, samo kratka napomena, da je trenutno u ponudi novi Conexio Pro sa ovim nRF9151 SiP-om.

Ako bi uporedili Nordic Semiconductor nRF9151 sa starijim nRF9161, videli bi da je funkcionalno gotovo identičan. Fizički je za oko 20% manji i nešto je manje energetski zahtevan. Prvi je SiP u ovoj seriji koji je uveo Power Class 5 (20 dBm) 3PPP energetsku klasu NB-IoT i LTE-M prenosa. Prethodni SiP-ovi su podržavali samo Power Class 3 (23 dBm), te im je generalno za rad bilo potrebno više energije.
nRF9151 SiP je dizajniran oko jednog ARM Cortex-M33 jezgra na 64 MHz i ima integrisan 1 MB Flash i 256 KB RAM memorije. Jezgro obezbeđuje izvršavanje programa, kontrolu I/O portova, manipulaciju interaptima, ali i upravljanje integrisanim LTE-M, NB-IoT, NB-NTN, DECT NR+ i GNSS modemom.
Na Thingy:91 X se odmah uz pomenuti nRF9151 nalazi Nordic Semiconducter N7002 čip. To je čip pratilac nRF52840 i nRF5340 SoC-eva, kao i svih SiP-ova iz nRF91 serije i dodaje im, u načelu, 2.4 i 5 GHz Wi-Fi 6 povezivost i sposobnost lociranja pozicije korišćenjem Wi-Fi mreže. Wi-Fi lociranje koje on nudi je moguće integrisati sa GPS i celularnim lociranjem kako bi se obezbedilo precizno pozicioniranje unutar objekata – budući da je prisustvo Wi-Fi mreža u zatvorenim prostorima današnji standard. Na ovaj način se i vrši korekcija nedostataka koje ima GPS, kao i celularno lociranje u zatvorenim ili prostorima sa lošom pokrivenošću celularnom mrežom – na primer ispod nivoa zemlje.
Kod Thingy:91 X čip N7002 je preko deljene SPI magistrale povezan i sa nRF9151 SiP-om i nRF5340 SoC-em. Ovde mu je osnovna namena da nRF9151 SiP-u doda Wi-Fi praćenje lokacije bazirano na SSID-u. U tom slučaju, kada mu je nRF9151 host, N7002 može samo da skenira Wi-Fi mrežu. Kada mu je nRF5340 host, nRF5340 omogućava koegzistiranje sopstvenog Bluetooth LE radija i 2.4/5 GHz Wi-Fi radija na N7002.

Treći „komunikacioni“ čip koji se nalazi na ovom Thingy:91 X sistemu je Nordic Semiconductor nRF5340. Kao što smo već napomenuli i njemu je N7002 čip pratilac. nRF5340 ima dva ARM Cortex-M33 jezgra koja mogu raditi na 128 ili 64 MHz. Ovaj čip može realizovati Bluetooth LE, Bluetooth Mesh, NFC, Thread i Zigbee (802.15.4 protokoli), ali i USB komunikaciju. Ovde je iskorišćen kao kontroler rada ploče (board controller), prvenstveno zbog svojih USB komunikacionih sposobnosti i otvara dva UART porta. Uz firmver koji je na njemu, on povezuje glavni nRF9151 SiP i USB interfejs na ploči i preko tog kanala se vrši flešovanje firmvera, logovanje i dibagovanje koda na nRF9151. Promenom firmvera na nRF5340, ovaj SoC se može iskoristiti i za Bluetooth LE i 802.15.4 komunikacije, a u tom slučaju može biti i host N7002 čipu, te sistem time dobija i Wi-Fi 6 komunikacije.
Na ploči se nalaze tri crvene antene: 2.4/5 GHz Wi-Fi antena, GNSS antena i najveća od svih – LTE-M, NB-IoT, NR+ antena. Thingy:91 X nema konektora za eksterne antene, što je i logično, budući da je on po dizajnu prenosni uređaj koja mora biti kompaktan i minimalnih dimenzija.
Zanimljivo je da je na ploči i 256 Mbit-a eksternog Flash-a kome preko deljene SPI magistrale mogu pristupati i nRF9151 i nRF5340.
Ovaj razvojni sistem, za razliku od nRF9151 DK razvojnog kita za nRF9151 nema na sebi on-board SEGGER J-Link preko koga bi se vršilo programiranje i dibagovanje. Ipak, postoji konektor za povezivanje eksternog SEGGER J-Link-a ili povezivanje on-board SEGGER J-Link-a na nRF9151 DK razvojnom sistemu – ukoliko ga posedujete. Iako, postoje značajne upotrebne vrednosti i svakako je preporuka da u daljem radu koristite ovaj dibager. Ipak ponavljamo, programiranje, kao i sve primere i kurseve koji su vam dostupni, možete izvesti i bez njega, samo korišćenjem USB-C porta na Thingy:91 X koga kontroliše ugrađeni nRF5340 ukoliko je u njemu fabrički firmver. Naravno, ovaj firmver se može menjati, a na slici ispod vidi se oznaka SWD i prekidač sa donje strane ploče, kojim se bira da li se flešuje nRF5340 ili nRF9151.

Ako pogledamo zatvoren Thingy:91 X sa strane gde su portovi, uz pomenuti dibag port koji je lociran u gornjem desnom uglu, u drugom redu vidimo tri otvora. U prvom, krajnje levom je Power On/Off prekidač, sledeći je USB-C port kroz koga su realizovana dva UART porta, dok se kao poslednji u nizu u srednjem redu nalazi port za eksterne dodatke koji je povezan na deljenu I2C magistralu. Na istoj su i svi on-board I2C senzori. Ovo je Qwiic odnosno STEMMA QT port, a kao što znamo on je potpuno kompatibilan što se signala tiče i sa STEMMA, Grove i DFRobotGravity sistemima, sa tim da je neophodno nabaviti konvertor sa 1 mm na 2 mm razmaka između pinova.
Za merenje struja svakog od čipova na ploči, dakle nRF9151, nRF5340 i N7002 i profilisanje potrošnje u aplikacijama, u kitu se nalazi i Thingy:91 X current measurement and debug board PCA61465. Koristi se tako što se utakne u odgovarajući port za proširenja na Thingy:91 X-u.

Za dibagovanje, trejsovanje i analizu potrošnje sa ovim dodatkom potreban je i Nordic Semiconductor Power Profiler Kit II. To je samostalan uređaj koji se može naći po ceni od oko $100 i nezaobilazan je pri razvoju korisničkih prenosnih uređaja. PCA61465 na otvore sa strane, kao i na pinove konektora na dnu ploče, dovodi pored napojnih i sedam GPIO linija, koje se mogu koristiti za direktno povezivanje sa nekim eksternim uređajem. Četiri od njih se mogu prenameniti i koristiti kao TRACEDATA linije za softversko dibagovanje.

Rekli smo da je PCA61465 nezaobilazan, jer je jedna od bitnih odlika uređaja koji se razvijaju ovim sistemom da budu prenosni, odnosno baterijski napajani. Nordic Semiconducter sve čipove ovde upotrebljene je i realizovao sa idejom baterijskog napajanja, odnosno optimizacije potrošnje energije. Thingy:91 X je u isto vreme i razvojni sistem, i platforma za razvoj prototipa, ali i prenosni treker sopstvene lokacije. On u sebi već ima ugrađenu punjivu Li-Po bateriju, kapaciteta 1350 mAh. Kontrola punjenja baterije i upravljanje potrošnjom svih čipova povereni su, kao i sve, Norton Semiconducter proizvodu – nPM1300 PMIC-u. Baterija je povezana preko tropinskog konektora i zamenjiva je.
Sa donje strane ploče je i ležište za SIM karticu, dok se sa gornje strane, odmah uz nRF9151 nalazi mesto na kome se po potrebi može zalemiti eSIM IC.

Kako je ovo i platforma za razvoj celular IoT prototipa, a uz Nordic akademiju mogli bi reći i odlično STEM učilo, na njemu se nalazi i jedan broj izabranih senzora, povezanih za I2C ili SPI komunikacione magistrale koje dele nRF9151 SiP i nRF5340 SoC.
Za detekciju pomeranja i orijentacije zadužena su tri senzora: low-power tro-osni MEMS akcelerometar ADXL367, šesto-osna jedinica za merenje inercije za žiroskopom (IMU) BMI270 i tro-osni magnetometar BMM350. Low-power tro-osni akcelerometar, vezan na I2C magistralu je aktivan, odnosno napaja se preko nPM1300 PMIC-a i kada je Power On/Off prekidač Thingy:91 X prebačen u Off položaj. IMU je vezan na SPI, a BMM350 na I2C magistralu. Sva tri senzora su povezana sa jednom interapt linijom za GPIO ulaze i na nRF9151, a i na nRF5340, te mogu generisati interapt na oba čipa.
Dodatni Bosch BME688 senzor stanja okruženja – temperature, vlažnosti, kvaliteta vazduha i pritiska – povezan je za deljenu I2C magistralu, ali on za razliku od prethodno opisanih senzora nije unapred vezan neku zajedničku interapt liniju.
Najzad, na ploči su i dva dugmeta. Jedno je u sredini odmah pored nRF9151 i moguće ga je aktivirati i bez otvaranja kućišta, jačim pritiskom u sredini poklopca – na mestu označenom krugom. Drugo dugme se nalazi sa bočne strane, služi za reset nRF9151 u specifičnim slučajevima i da bi mu se prišlo, potrebno je otvoriti kutiju.
Na ploči su i tri programabilna RGB LED-a, svaki povezan sa njemu odgovarajućim čipom. LED1 povezan za tri pina nRF9151 i LED2 povezan za nRF5340 su idealni za vizuelizaciju povratnih informacija sa ova dava čipa, dok je treći LED3 – vezan za N7002 i pogodan je za signalizaciju stanja napajanja sistema i punjenja baterije.
Dodatne detalje o hardveru možete naći u dokumentaciji na sajtu, a na istom mestu možete preuzeti i User Guide pdf sa istim ovim sadržajem kao off-line referencu.

Softver i podrška
Osnova za rozvoj aplikacija na svim Nordic Semiconductor SiP-ovima je nRF Connect SDK. On se direktno oslanja na Zephyr RTOS i koristi Visual Studio Code kao IDE. Za Visual Studio Code IDE postoji ekstenzija nRF Connect for VS Code Extension Pack, koja će uz sebe instalirati i nekoliko dodatnih nRF ekstenzija. Nakon završenog postupka IDE je spreman za rad sa nRF9151 SiP-om u Thingy:91 X-u. Iako je postupak podešavanja i instalacije kompletnog toolchaina dat u dokumentaciji na sajtu, mi „mandatorno preporučujemo“ da prođete bar osnovni nRF Connect SDK kurs o kome smo govorili na samom početku. Daleko je detaljniji i sa mnogo vitalnih informacija, posebno ukoliko se do sada niste dobro upoznali sa nRF toolchain-om.

Instalirana ekstenzija nRF DeviceTree, u sklopu inicijalnog nRF paketa, omogućiće i grafički pristup inicijalizaciji čipa, kao i svih portova i registara, pa će time i olakšati rekonfiguraciju devicetree fajlova. Ona će se pojaviti kao zasebna ekstenzija u desnoj traci, ispod nRF ekstenzije. Da bi radila, potrebno je uraditi prvi build i odabrati aplikaciju na kojoj radite u nRF Connect meniju, a onda se prebaciti u nRF DeviceTree i nastavit sa radom. Nakon izmena, potrebno je opet uraditi build, što je i logično.


Uz instalaciju nRF ekstenzija, ili ukoliko instalirate nRF Connect SDK kao zasebnu aplikaciju onda pre toga, biće potrebno da se instaliraju i J-Link drajveri. Ukoliko ne posedujete J-Link dibager ili neki od Nordic Semiconducter DK razvojnih sistema sa njim na ploči, vaš USB-C ćete koristiti i za flešovanje, ali i sa serijsku UART komunikaciju. Zajedno sa nRF Connect-om biće instaliran i nrfutil neophodan za flešovanje ovog uređaja.
Gneralna preporuka pri izradi aplikacije je da se krene od nekog funkcionalnog primera, koji je najbliži onome što želite da napravite i da njegovom modifikacijom dođete do željenog proizvoda. U pomenutom kursu, jedna od vežbi je i da se izradi projekat od nule i tu ćete videti koliko je „nepotrebnih i podrazumevanih“ podešavanja potrebno uraditi ako se krene na taj način, a što se izbegava kada se krene od nekog od primera. Iako su uputstva veoma jasna, jedina potencijalno zbunjujuća stvar je u okviru samog postupka flešovanja. Naime, nakon bilda, u poddirektorijumu build u okviru direktorijuma projekta nalazi se fajl dfu_application.zip. Ovaj faj treba flešovati na Thingy:91 X komandom:
nrfutil device program --firmware dfu_application.zip --serial-number <serial number>
Gde je <serial number> serijski broj vašeg uređaja, koji se ne menja i možete ga pročitati komandom:
nrfutil device list
Kao odgovor, dobićete serijski broj oblika: THINGY91X_########### i ceo taj zapis treba ubaciti, a ne samo jedanaestocifreni broj na kraju. Ako pogledate sliku ispod, videćete da su vraćene i informacije o portovima koje, kada je vezan preko USB-C, ovaj uređaj koristi.
Međutim, da bi pokrenuli ovu komandu potrebno je da na lokaciji otvorite terminal preko nRF Connect SDK-a, a ne direktno preko terminala računara. To ćete uraditi tako što ćete prvo odabrati nRF Connect ikonicu na levoj traci izbornika, pa uraditi build – ako već niste. Nakon toga, pozicionirajte strelicu miša iznad natpisa buld koja se nalazi unutar vašeg projekta u delu APPLICATIONS (vidite sliku ispod) i iz padajućeg menija koji se pojavljuje nakon desnog klika treba da odaberete „Start New Terminal“. Otvoriće se terminal, koji će biti označen kao nRF, a ne bash, a nije ni serijski port, što se takođe vidi na slici ispod.

Nordic Semiconductor je razvio i nRF Connect for Desktop aplikaciju, koja je dostupna za Linux, MacOS i Windows – kao što su i VS Code ekstenzije. Obratite pažnju da toolchain zahteva Intel CPU na Linux-u i ne može raditi na ARM ili RISC-V arhitekturi procesora. Na Linux-u može da se, u nekim distribucijama, pojavi problem sa sandbox-om, pa je u tom slučaju potrebno pokrenuti aplikaciju (naša je u verziji 5.2.1) iz terminala:
./nrfconnect-5.2.1-x86_64.AppImage --no-sandbox
nRF Connect for Desktop je pre „agregator nRF aplikacija“ iz koga se pokreću specijalizovane aplikacije namenjene razvoju na nRF čipovima. Možemo započeti sa Quick Start-om, Toolchain Manager-om, nastaviti sa Serial Terminal-om. Za dalje ili nam je potreban eksterni dibager, ili Power Profiler Kit II i naravno funkcionalna kartica u lokalnoj celularnoj mreži. U drugom delu recenzije ćemo se baviti upravo problemima povezivosti.

Zaključak
Nordic Semiconductor Thingy:91 X zaslužuje svu pažnju i poštovanje, ne samo svojim hardverom, već i izuzetnom podrškom kroz besplatne pisane on-line materijale, video klipove i kurseve koji su dostupni razvojnim inženjerima i mejkerima na zvaničnom sajtu. Ovako koncipiran Cellular IoT razvojni sistem, za cenu od oko $100 je odlična kupovina. Vredno isticanja je i da su svi vitalni čipovi na njemu Nordic Semiconducter-a, čak i nPM6001 koji napaja N7002, a koga nismo pomenuli ranije. Time je obezbeđena izuzetna hardverska funkcionalna usaglašenost i maksimalna optimizacija mogućih performansi i karakteristika.

Podrška razvojnim inženjerima, ali i mejkerima se graniči sa detaljnošću i pristupom koji se viđa u STEM edukaciji i omogućava čak i entuzijastima da otpočnu sa radom u ovom nRF ekosistemu. Ovime je najčešća primedba koju je zajednica upućivala proizvođaču ovih odličnih čipova deplasirana.
Ono što preostaje da uradimo u drugom delu recenzije, a to je pregled LTE-M,NB-IoT,NB-NTN mogućnosti i da najzad isprobamo lokalnu mrežu, ako ništa odličnim demo firmverom koji dolazi na Thingy:91 X. Sve to čim rešimo manje probleme sa provajderima celularnih komunikacija u Srbiji.

