Adafruit
Srce Adafruit Feather M0 Express ploče je ATSAMD21G18 @ 48MHz sa 256KB FLASH + 32KB RAM, 20 pinova i svega šest analognih ulaza i jednim analognim izlazom (DAC). Na pločici nema StemmaQT konektora, mada postoji mali proto board i konektor za LiPoly bateriju.
Adafruit je u svoje vreme izbacio ovu pločicu kao svoj Feather prvenac za Python okruženje i omogućio CircuitPython za ovu platformu. Mikrokontroler oko koga je bazirana, ATSAMD21G18 je identičan onome koji se nalazi na Arduino Zero ploči, pa je jasno da je time praktično obezbeđena i podrška za programiranje u Arduino IDE-u.
S obzirom na cenu, koja je praktično identična sa mnogo jačim pločama sa recimo M4 čipom, nabavka je u današnje vreme više stvar želje da se u kolekciji ima jedna od legendarnih zvezda u razvoju razvojnih sistema, ploča koja je praktično otvorila Feather familiju.
Ipak, daleko da je neupotrebljiva i to smo pokazali jednim jednostavim projektom koji je baziran na DHT11 senzoru temperature i vlažnosti, povezanom na portu 9 i LCD 16×2 ekranu sa oznakom hd44780, koga čine sam 1602LCD i I2C modul. Tako da se povezivanje svodi na povezivanje 4 žice (VCC, GND, SCL i SDA) na odgovarajuće pinove pločice. Za programiranje smo koristili CircuitPython i tri biblioteke. Dve su standardne i nalaze se u Adafruit CircuitPython Bundle-u: adafruit_dht i adafruit_bus_device
Uvek je interesantan spoj dve velike ideje. Adafruit je spojio svoj Feather ekosistem sa Pico RP2040 SoC. Nešto slično smo već videli u BPI pico W gde du se susreli ESP32 mikrokontroler i RPi Pico format.
Ono što o ovom spoju treba reći je da je integracija RP2040 u Feather ekosistem veoma dobro osmišljena. Dodat je StemmaQT I2C port za povezivanje sa mnoštvom StemmaQT periferija. Tu je i 3.7/4.2V LiPoly Battery USB punjenje, koje omogućava nezavisnost projekta od mrežnog napajanja. Oblik ploče je u Feather standardnu, što omogućava direktno povezivanje svih FeatherWing dodataka, ali u isto vreme onemogućava direktno plug-in povezivanje u proizvode namenjene za PR Pico ploče. Posledica ove geometrije je i smanjen broj pinova u odnosu na pravu RPi Pico RP2040 ploču, ali se to nije pokazalo kao bitan problem u ovom slučaju.
Postoji odlična podrška za CircuitPython i Arduino, kao i korektna podrška za MicroPython, sa tim da u nekim slučajevima nema namenski napisanih „drajvera“ za FeatherWing ploče.
U primeru koji smo mi uradili u MicroPython-u. da bi demonstrirali sam Feather RP2040, mali problem je bila sh1107.py biblioteka za ispis na FeatherWing Oled sh1107 monohromatski ekran rezolucije 128×64 pixela. Komunikacija sa ekranom je I2C. Posebno se pokazala problematična GFX.py biblioteka, koju Adafruit održava samo za CircuitPython, dok je namensku MicroPython verziju ostavio u stanju od pre par godina. Naša preporuka je da se u Adafruit ekosistemu ipak koristi CicuitPython verzija Pythona za koju Adafruit brine o svim potrebnim bibliotekama.
Kada je Raspberry Pi predstavio svog Pico-a baziranog na RP2040 (32 bit Cortex M0+ dual core, 125MHz, bez hardverskog floatpointa i DSP-a), bilo je samo pitanje trenutka kada će Adafruit u svojo Feather seriji iskoristiti isti čip. U približno istom formatu pločice kao i Raspberry, Adafruit je spakovao RP2040, dodavši mu i jednu NEOPIXEL diodu na GPIO16.
Interesatno je da je na ploči za sebe našao mesto i jedan STEMMA QT konektor, pa je time omogućena upotreba i direktno vezivanje ogromne baze Qwiic, STEMMA QT i Grove I2C urežaja bez lemljenja.
Bez obzira što se gotovo svi pinovi mogu koristiti za I2C, UART ili SPI komunikaciju, imajte na umu da se ujednom trenutku mogu povezati samo dve periferije – što je ogranišenje RP2040.
Posebni začin RP2040 su state mašine i način na koji je realizovan PWM na svim pinovima. Da se ne bi ponavljali, preporučujemo da pročitate detaljno uputstvo na Adafruit sajtu.