Genuino 101 – Intelov izlet u svijet developera početnika

Datum objave 26.02.2016 - Bruno Banelli

Malo o Arduinu

Genuino-86duino-002

Često stariji ljudi znaju izvlačiti floskule o starim vremenima, u kojima je sve bilo u najmanju ruku bolje. Gotovo uvijek, doduše, zaboravljaju da su tada prvenstveno oni bili mladi, pa je sve izgledalo bolje, jer svi znamo da sve je lako kad si mlad. Ipak, oni koji su rođeni unutar zadnjih 100 godina zaista svjedoče svakodnevnoj mijeni iz nezamislivog u zamislivo. Tako su i pioniri digitalne elektronike, pogotovo s ovih prostora, gotovo s nevjericom dočekali to da za ridikulozne novce mogu počinjati prototipe svojih interesa i ideja. Tome za vjerojatno najzaslužniji danas planetarno popularni Arduino, inicijativa šačice talijanskih studenata-entuzijasta na „Interaction Design“ Institutu (kojeg je tada okupljao Olivetti i Telecom Italia)) u stanovitoj Iver na sjeverozapadu Italije. Arduino je omogućio dvije ključne stvari koje su tada bile nedostupne – jeftini hardver i jednostavan programski jezik. I danas tržište ozbiljnih razvojnih pločica za razvijanje prototipova drži svoju cijenu i kvalitetu dok razvojni alati poput Raisonanceovih, Keilovih i IARovih i dalje imaju primat na pijedestalu IDE i kompajler tržišta za mikrokontrolere. No, Arduino unutar svega par godina svojeg tržišnog nastupa omogućio i početnicima i profesionalcima da unutar 100$ dođu do razvojne pločice i pripadajućeg softverskog alata za rapidni razvoj prototipova. Koncept „shielda“, kako ga Arduino naziva, eliminirao je potrebu za eksperimentalnim pločicama (breadboard) a USB napajanje potrebu za kupovanjem ili integriranjem i tog dijela. Drugim riječima, od raspakiravanja proizvoda do prve „upali-ugasi“ igre s ugrađenom LE diodom nije potrebno dulje od 90 sekundi. Pitate li one stare gunđavce s početka ovog teksta, pa… Vjerojatno će vam reći da su nekada hodali 5 kilometara uzbrdo po razvojnu pločicu. I onda opet 5 kilometara uzbrdo natrag. O Arduinu kao konceptu, obzirom da nije nepoznat čak i široj publici, nećemo trošiti puno riječi obzirom da kvalitetne literature postoji čak i na hrvatskom jeziku i od hrvatskih autora. Nećete vjerovati što se dogodilo dalje Autor ovih redaka zaboravio je da ste već kliknuli na ovaj link da pročitate članak pa je click-bait podnaslov deplasiran, no otvorimo početak konkretnog o proizvodu sa malo pikanterija. Iskusnom oku kojeg je učiteljica uvijek hvalila da je dobro usvojio tekst s razumijevanjem jasno je da smo na test dobili Genuino a pričamo o Arduinu. Valja na početku reći da je Arduino licenciran kao projekt pod GLP2 i Creative Commons Attribution – ShareAlike licencama, što pojednostavljeno znači da ga svatko može koristiti na bilo koji komercijalan ili nekomercijalan način dok god zajedno s razvojnom pločicom omogući krajnjem korisniku pristup shemama i izvornom kodu. To je iznjedrilo mnoštvo iteracija Arduina pod raznim marketinškim imenima i, što je još bitnije, različitim mikrokontrolerima, o čemu ćete čitati nešto kasnije u tekstu. No bilo kako bilo, vesela družina razgaljenih mladih talijanskih lavova par godina kasnije tužaka se međusobno pokušavajući zadržati brand jer je to jedini komercijalno oportuni segment GPL licencirane priče. Detalji su dostupni širom interneta kao i intervjui s akterima, pa je to upravo razlog zašto ne želimo dodatno komplicirati priču potencijalno stavljajući čitatelja u nekoj opciji skloniju varijantu. Bilo kako bilo, Arduino brand van Amerike se sada zove Genuino, a radi se o identičnom hardveru s drugim imenom.

Genuino-86duino-001

U početku se Arduino bazirao na 8 bitnim Atmelovim kontrolerima, da bi tokom godina iskusio razne varijacije mikrokontrolera, što unutar same Atmelove game, što preko raznih ARM varijanti pa sve do naše današnje poslastice – živ i zdrav x86 procesor na Arduino formatu. Holistički gledano, Arduino je vjerojatno prva jedinstvena platforma koja je developerima omogućila da kusaju čari ne samo raznih proizvođača i njihovih vizija procesora, nego i kompletno različitih računalskih arhitektura u smislu Harvarda i von Neummanna. Sigurno se pitate odakle Intel u ovim vodama? Dobri poslovni rezultati i diversifikacija posla dovela je Intel u poziciju da se nalazi na „svemu što diše“, osim segmenta pametnih telefona i tableta gdje je zastupljen u vrlo maloj mjeri. No, da Intel nikako ne planira (pro)pustiti x86 ni u kojem segmentu, jasno govori činjenica bliskog partnerstva s Microsoftom (koji de facto živi od x86 arhitekture) te oko 16 milijardi dolara teška akvizicija velikog igrača na FPGA, SoC i CPLD tržištu – Altere. Pa gdje onda naći bolji marketing nego u širokim narodnim masama – Arduino je gotovo izmišljena platforma za takav sales pitch. Ali to nije sve, čitajte dalje i dogodit će se nešto nevjerojatno! Svečano obećavam da neću više raditi ovo, no na stolu nije samo Genuino 101, nego i na ovim prostorima vjerojatno u potpunosti nepoznat 86duino, i to u svojoj ZERO izvedbi. Smjestite se udobno jer članak zaista donosi dva vrlo neobična komada hardvera koji s punim pravom mogu stajati na PCEkspert portalu! Oba su bazirana na Arduino Leonardo/Uno formatu, što ih čini kompatibilno s ostalim hardverom kojeg podržava ta platforma. Radi se o tako reći „početničkim“ modelima Arduina namijenjenim za upoznavanje sa svijetom mikroelektronike. Valja napomenuti da ovo nije prvi Intelov izlet, jer je njegova Galileo pločica već vidjela svjetlo dana. Formatom ne pretjerano drugačija od danas testiranog Genuina 101, Galileo je bio blago rečeni fijasko, gdje je do izlaska revizije Galileo 2 to bio praktički neispravan hardver, cijenom daleko više od konkurencije bez pravog smisla i koristi. Intel Edison, s druge strane, predstavljam ozbiljnu Atom baziranu „pilu“ koja ima pripadajući Arduino kit, no cijenom daleko iskače od onoga što bi Genuino 101 trebao predstavljati.

Genuino 101 & 86duino ZERO - opis

Genuino 101 – Intelov izlet već poznatim putešestvijima

Genuino-003

Kao prirodni tehnološki nastavak Arduino Una, Genuino 101 donosi zaista veliki napredak. 32 MHz 32 bitne Quark x86 jezgre naspram 8 bitnog ATmega328P mikrokontrolera, 196kb flash memorije naspram 32 – 0.5 kb kod ATMega te 24 kb SRAM-a naspram 2kb kod ATMega. Kako ne bi sve ostalo na sirovoj snazi, osim prijeko potrebnog osvježenja po pitanju mikrokontrolera, novi Genuino 101 donosi i LE Bluetooth modul s jasno vidljivom antenom na PCB-u te 6-osni akcelerometar/žiroskop. Sve to upakirano je u takozvani Intel Curie (Quark SE, bivši Clanton, mikrokontroler), navodno dual core SoC sa 86x Quark jezgrom te ARC (Argonaut RISC core). Navodno je s razlogom jer tu sljeduje prva mrlja Intelu – u toku pisanja ovog članka ne postoji javno dostupan datasheet za dotični SoC jer je za pristup istom potreban Intel EDC (Intel Embedded Design Center) račun, pa je samim time bilo kakva diskusija oko toga što se zaista nalazi unutra bazirana samo na dostupnoj dokumentaciji na Arduino.cc stranici. Genuino-004 Činjenica jest da je toliko malo toga dostupno od tehničke dokumentacije da je nemoguće „ući u dubinu“, no Intelova stranica koja uspoređuje Quark procesore navodi pod „Number of cores“ (broj jezgara) samo jednu za Quark SE. Intel najavljuje publikaciju RTOS izvornog koda i tehničkih detalja tokom ožujka ove godine, pa živi bili… Jedini stvarno dostupan dokument temeljem pretrage u odnosu na fizički napisano na samom SoC-u je PCN dokument gdje se navodi sSpec broj SR2NW pod imenom marketinškim imenom „JHCURIE“. Nažalost, taj sSpec ne odgovara niti D1000 (SLKMJ) ili D2000 (SR2KF) SoC-u pa tapkamo u mraku.

Što se softverske strane tiče, ni ovdje stvar nije ništa bolja – Genuino 101 se ponaša kao i „svaki drugi“ Arduino pa je sve što bi trebalo biti dostupno „ispod haube“ za sada svedeno na nulu. Valja napomenuti da se Genuino 101 gotovo uopće ne grije, a i pri najvećem opterećenju nije postizao vršnu snagu iznad 0.25W! U suštini, u „originalnom“ Arduino ekosustavu 101 je vrlo dobar napredak naspram Una i to za razumni porast cijene koji je praktički neosjetljiv. Također, valja se nadati kako će Intel uskoro objaviti ostatak softverske priče za 101 kako bi se vidio njegov puni potencijal. Arduino zajednica je velika i nesumnjivo će biti raznih benefita i za postojeće 101 korisnike, kao i za ona koji to tek odluče postati. Ipak, nismo još gotovi, obzirom da predstavljamo novu pločicu, a nakon toga možete provjeriti head-to-head usporedbu. 86duino ZERO – brutalan i anoniman

86duino-003

Fizičkih dimenzija gotovo jednak Genuinu 101, 86duino ZERO je Arduino Uno kompatibilna pločica bazirana na Vortex86EX jezgri tajvanskog DM&P. Sama pločica ima implementirane i spremne za rad Ethernet, USB 2.0 host, micro SD i PCI-E guest sučelje kao i bateriju za RTC, zaokruženo sa, za takav hardver „golemih“, 128 MB DDR3 memorije. DM&P-ov Vortex86EX je Pentium kompatibilna x86 procesor sa 16kb 4-way L1 cachea, 128kb 4-way L2 cachea, CrossBar sučeljem, (X-)ISA, I2C, SPI, IPC (DMA), UARTA, SD/SATA i CAN sučeljima. Moguće je koristiti i PS2 tipkovnicu i miša (kompatibilno s 8042 kontrolerom), 10 UART-a portova kao i MCI (kontrola motora). Takt u ovoj konkretnoj izvedbi iznosi mu 300 MHz (maksimalno 400MHz), što mu je ujedno i nedostatak obzirom na povećano grijanje. Naravno, problem je rješiv ili spuštanjem takta, ili korištenjem aktivnog hlađenja ili unaprjeđenjem postojećeg pasivnog hlađenja. O ozbiljnosti ovog procesora govori činjenica o branch prediction bufferu kao i 32 I/D TLB-a. Sam procesor podržava maksimalno do 2GB DDR3 RAM-a, pa je moguće očekivati razvojne pločice s više RAM-a ili pak pretpostaviti da bi u produkciji s tim procesorom korisnik na raspolaganju imao mogućnost znatno veće količine.

86duino-004

Nakon impresivnog hardvera, slijedi i softver – podrška za Windowse (doduše, operativno i relativno jednostavno izvedivo samo na ONE verziji), DOS, Linux, Windows CE kao i Linux s Xenomai RT kernelom te puna IgH EtherCAT Master podrška. Tehnička dokumentacija odlično je napisana iako zahtijeva ogromno znanje i razumijevanje materije, jer se radi o „kompletnom“ PC računalu. Korisniku je, ukoliko se odluči koristiti samo Arduino razvojno sučelje, dostupno 2MB flash memorije za spremanje programa. Zaista bi bilo za očekivati da po svemu napisanom, 86duino stoji barem duplo više novaca od Genuina 101, no to nije tako – 86duino ZERO je po preporučenoj cijeni svega 8 eura skuplji nego 101!

Rezultati testova i zaključak

Svi već iz iskustva vrlo dobro znamo da je navoditi specifikacije najlakši dio posla, no kako se taj posao operativno odradi, već je drugi par rukava. Pa, pogledajmo testove a kao podsjetnik ćemo ostaviti tablicu usporedbe specifikacija na vrhu:
  Genuino Due Genuino 101 86duino ZERO
CPU AT91SAM3X8E Quark SE Vortex86EX
Frekvencija 84 MHz 32 MHz 300 MHz
RAM 96KB 24KB 128MB
Flash 512KB 196KB 2MB
Preporučena cijena € 36 € 28,65 € 36 €
  Newton pi approximation [ichart headers="ID,°C" title="Newton pi approximation" htitle="Time (ms, manje je bolje)" labels="86duino ZERO,Arduino Due,Genuino 101" values="75,821,6985" colors="blue,orange,red" height="200" min="0" max="7000"]   N-body benchmark [ichart headers="ID,ms" title="N-body benchmark (float)" htitle="Time (ms, manje je bolje)" labels="86duino ZERO,Arduino Due,Genuino 101" values="2197,27729,197213" colors="blue,orange,red" height="200" min="0" max="260000"] [ichart headers="ID,ms" title="N-body benchmark (double)" htitle="Time (ms, manje je bolje)" labels="86duino ZERO,Arduino Due,Genuino 101" values="2194,38788,255632" colors="blue,orange,red" height="200" min="0" max="260000"]   Komunikacija – USB virtual RS232 brzina zaprimanja [ichart headers="ID,KB/s" title="Standard Recieve Test" htitle="Bandwidth (KB/s, više je bolje)" labels="Arduino Due,86duino ZERO,Genuino 101" values="130.07,126.32,63.98" colors="orange,blue,red" height="200" min="0" max="140"] [ichart headers="ID,KB/s" title="ReadBytes Recieve Test" htitle="Bandwidth (KB/s, više je bolje)" labels="Arduino Due,86duino ZERO,Genuino 101" values="129.64,123.96,63.94" colors="orange,blue,red" height="200" min="0" max="130"] [ichart headers="ID,KB/s" title="ReadBytes with Overhead Test" htitle="Bandwidth (KB/s, više je bolje)" labels="Arduino Due,86duino ZERO,Genuino 101" values="110.33,108.41,60.21" colors="orange,blue,red" height="200" min="0" max="120"]   Zaključak U ovom trenutku, na papiru Genuino 101 donosi zaista golemi napredak naspram Genuina Uno. Nažalost, kako je iskustvo pokazalo s Galileo razvojnim pločicama, performanse jednostavno nisu na razini. Do danas, kako stvari stoje, nitko zapravo nije uspio otkriti zašto, obzirom da papirnato to nikako nema smisla. Ipak, ukoliko bude moguće omogućiti puni potencijal Genuina 101, uz njegovu minimalnu potrošnju te zanimljive ugrađene module pogodne za IoT, mogao bi imati uspjeh na tržištu. Činjenica da stoji iza Arduino/Genuino branda pa samim time golemu korisničku bazu i „odgovornost“ te mizerna potrošnja i zagrijavanje kao i nezamjetno niža cijena od 86duina čine 101 potencijalom za budućnost. S druge strane, oni koji traže vrlo ozbiljan x86 kompatibilan razvojni sustav za malo novaca zaista ne trebaju gledati dalje od 86duina – vrhunske performanse i širok spektar mogućnosti čine ga poželjnom udavačom za stol mikrokontrolerskog entuzijasta.