FabLab Aachen Help

Blogs > FabLab Aachen > Intel Galileo First Impressions (in German)
By borchers on 2014-01-21 01:41

Intel Galileo First Impressions (in German)

Heute kamen am Lehrstuhl unsere 40 Gratis-Galileo-Boards an. Auf diesen Intel-Boards läuft Linux, das nebenher ein Arduino simuliert und pinkompatible Header für Arduino-Shields, aber auch Ethernet und viele andere Anschlüsse bietet. Also Zeit für ein erstes kleines Hands-On. Hier meine Gedanken dazu:

Die Verpackung macht viel her. Das Board selbst wirkt auch sehr professionell, passt zu Intel — bis auf den komischen grünen unverputzten Chip in der Mitte (das ist der Quark-Prozessor — noch kleiner als Atom, get it? — der das Arduino in SW emuliert und nebenher das Linux betreibt). Das Board ist auch deutlich größer als ein Arduino Uno. Das wird spannend bei der Kompatibilität mit Gehäusen etc. Aber man erkennt schnell die Arduino-kompatiblen Steckerleisten, prima. Ein Netzteil ist mit in der Box, aha... braucht man das immer?? Es kommt mit Steckern aus aller Welt - nett, wenn auch im Prinzip überflüssig, hat aber sicher das weltweite Shipping vereinfacht.

Das beliegende Heftchen sieht aus wie ein kleiner Mini-User-Guide... aber weit gefehlt: nur Sicherheitswarnungen in 3000 Sprachen. Schade. Der einzige spannende Hinweis darin ist auf die Real-Time Clock. Cool! Das braucht man wirklich häufig. Wo ist denn die Batterie?... Oh, keine dabei. Also rasch eine Knopfzelle eingelegt, falls man die passende hat... auch Fehlanzeige, denn selbst ein Batteriehalter ist nicht an Bord, nur zwei Pinheader. Oh well. Das kriegt SparkFun selbst bei seinen einfachen RTC-Modulen besser hin.

Also auf die URL, die innen auf dem eingeklebten Schildchen wie ein Afterthought in der Verpackung im Deckel steht. Nicht draußen, nicht auf dem Board, nicht in dem Heftchen. maker.intel.com — "galileo" kommt nicht vor im Namen. Wollte Intel die Adresse unbedingt geheimhalten?

Auf der Webseite angekommen, kommt man auf keine "So-geht’s-direkt los"-Seite, sondern erstmal kommt etwas Marketing-Maker-sind-toll-wir-auch-Blabla, durch das man sich zum "Learning Center" durchklickt, dort dann auf Tutorial 0, und dort dann... der erste echte Showstopper: “Nur mit Netzteil verwenden, sonst bei Einstecken von USB SCHADEN am Board möglich!”. Wie bitte soll sich das für irgendeinen Klassenraum eignen?

Ein USB-Kabel ist übrigens nicht dabei. Wäre nett für “sofort starten” gewesen, und in der Verpackung war noch locker Platz. Aber vermutlich waren die Anwälte dagegen, weil man dann ja erst das USB-Kabel einstecken könnte… Das rasch hervorgeholte USB-Kabel: noch ein Showstopper. Der Port ist nämlich nicht das anfängerrobuste Fullsize-USB wie bei allen Boards bis zum Uno, an dem man das Arduino auch mal für einen Prototyp *aufhängen* kann (von dem Kabeltyp habe ich noch rund ein Dutzend rumliegen), sondern das modernere, aber mechanisch empfindlichere Micro-USB. Nach einer Viertelstunde Wühlen in meinen Kisten habe ich mehrere Mini-USB- und schließlich auch ein Micro-USB-Kabel gefunden. Wo? In meinem 7€(!)-Leonardo-kompatiblen KickStarter-Kit von Borderless Electronics! Das ist schon skurril.

Es dauert übrigens geschlagene 7s Boot-Time, bis die “USB ready”-LED angeht und man das USB-Kabel einstecken darf. Wer sich daran wohl hält? Was, wenn ich mal kurz den Strom kille, um das Board zu resetten? Immer alles aus- und einstecken?

Mal einen Blick auf die Beschriftung auf dem Board werfen… die Pins (in die man beim Arduino ständig Kabel steckt und umsteckt) sind schlecht lesbar beschriftet - zuwenig Platz drumrum, deutlich kleinere Schrift als auf dem Uno, teilweise unter Komponenten verschwindend, und einige Pins sind sogar nur über eine Linie mit mehreren Ecken mit ihrer Beschriftung verbunden. Anfängerunfreundlich; das Drama im Workshop ist sozusagen vorprogrammiert. Man bekommt den Eindruck, dass hier keine Lehrer mit im Team waren.

Gut gefallen mir die großen, weit isolierten Bohrungen, um das Brett auf einem Untergrund zu verschrauben. Sollte Intel tatsächlich… nein, so ernst nimmt man “ROW” (Abkürzung für "Rest of World” bei Intel, ehrlich) dann doch noch nicht; die Abstände sind Zoll-Maße. Eine SD-Karte soll man auch einlegen können. In einen “optional on-board MicroSD card reader”. Ja was denn nun? Einen Kartenhalter finde ich aber zum Glück auf dem Board. Prima!

Aber nun Showstopper #3: Ohne eingelegte SD-Karte speichert das Board beim Ausschalten keine Sketches! WTF? Man braucht also für den sinnvollen Betrieb auch noch eine MicroSD-Karte - die natürlich ebensowenig beiliegt wie das MicroUSB-Kabel. Anscheinend durfte nix mit der Vorsilbe “Micro” in die Schachtel, nichtmal ein Microcontroller mit integriertem Flashspeicher. Die 8MB Flash auf dem Board laut Datenblatt sind sich dafür wohl zu fein.

Einen Ethernet-Port gibt’s. Nett. Schöner für ein Embedded-Board wäre natürlich ein WLAN-Adapter gewesen, denn mobil und überall einsetzbar ist ja ein bisschen “the point of it”, aber gut.

Weiter im Tutorial… als nächstes folgt der Hinweis: “Bitte Arduino deinstallieren, wir brauchen eine spezielle Version”. Nicht sehr hilfreich… kann ich nicht die alte Version daneben liegenlassen? Ist das nur bei Windows ein Problem? Ich benenne meine vorhandene Arduino-Version einfach mal um. Und dann heißt es da “Install Drivers”… der Download ist aber nur eine offensichtlich gepatchte Version der Arduino-1.5.3-IDE. Was denn nun?

Ich starte die gepatchte IDE. Dank Mavericks muss dafür nun erstmal Java installiert werden - dafür kann Intel mal nix, das ist Apples Schuld, Java nicht mehr mitzuliefern.

Board und Port auswählen, das kennt man… Moment: Beim Galileo muss man den cu-Port, nicht den tty-Port nehmen! Und alle anderen Arduino-Boards sind bei dieser IDE scheinbar nicht nutzbar. Etwas seltsam. Muss man also bei jedem Wechsel zwischen Galileo und anderen Arduinoboards die eine IDE de- und die andere wieder installieren? Sicher nicht, aber wer der Doku glaubt, dem wird das so suggeriert.

Nun heisst es Board-Firmware upgraden… von 732 auf 782 oder sowas. Sehr beruhigend der Warnhinweis derweil:

image

Ist ja OK, aber wie wäre es dann mal mit einem vernünftigen Fortschrittsbalken? Das kann doch so schwer nicht abzuschätzen sein. Zu beachten auch: der Dialog verschwindet nach einer Weile für 1 Sekunde - aber man ist dann nicht fertig! Wer da vorschnell das Kabel zieht, hat verloren, denn der Warndialog erscheint anschließend wieder. Das passiert ein paar Mal.

5 min sind ganz schön lange… aber die Anleitung stellt das Upgrade nicht als optional dar. Also updaten und warten.

Kurz weigert sich das IDE-File-Menü, mir etwas anderes als ausgegraute Einträge zu zeigen (ein Hänger wegen blockierender Treiber?), dann geht’s. Muss ich mal ein Auge drauf haben.

Nun folgt eine etwas unausgegorene Arduino-IDE-Standard-Kurzeinführung. Muss man nicht lesen, wenn man Arduino kennt. Die Intel-Jungs bekommen wieder etwas Street Cred von mir dafür, dass ihr Screenshot im “Tutorial 0 Step 4” tatsächlich mal von einem Mac stammt.

OK, kurz vor dem Ziel… Blink-Sketch öffnen, hochladen… WTF?! Die Pin-13-LED ist auf dem Galileo meterweit von diesem Pin entfernt. Als wäre nahe Pin 13 kein Platz für so eine Fitzel-SMD-LED gewesen. Ehrlich, Jungs… schon mal vom Gestaltgesetz der Nähe gehört? Bei Uno & Co. sind es gerade mal 7 mm. Noch schlimmer: Für TX/RX-LEDs scheint’s nicht mehr gereicht zu haben; am Board ist der Upload-Vorgang nicht zu erkennen. Aber immerhin: die LED blinkt, ein kleiner Erfolg.

Das Tutorial 1 macht Sound-I/O - cool, allerdings erscheint mir ein $6.85-Soundsensor (Electretmikro+OpAmp auf Platine) etwas teuer dafür. Ein einfaches Mikro oder ein anderes Tutorial wäre vielleicht Anfänger-geeigneter? Außerdem kommt hier der Linux-Core gar nicht zum Einsatz, es ist reine Arduino-Programmierung. Warum dafür nicht auf eines der vielen guten Tutorials andernorts verweisen?


Nun aber zur Linux-Seite: … Hmmm, wo gibt’s denn dazu überhaupt Informationen? Ich finde auf der Intel-Seite nichts im Learning Center. Ich lade mal den Getting Started Guide runter. Ist ganz ähnlich wie das Online-Tutorial, mit einigen interessanten Differenzen. So wird der Firmware-Upgrade hier optional genannt, erst bei genauerem Lesen sieht man, dass damit das manuelle Updaten gemeint ist (ohne die IDE-Funktion dafür, die das inzwischen ersetzt hat). Warum steht das hier noch?

Dafür gibt’s ein Bild des Boards mit ein paar Erklärungen. Der Arduino-RESET-Button ist übrigens maximal weit von den Arduino-Pinheadern entfernt. Der Reboot-Button direkt bei den Arduino-Headern ist für den Quark-Prozessor. Logisch. :)

Aha.. hier steht, den tty-Port darf man nicht benutzen. Also wirklich genau umgekehrt wie bei normalen Arduinos.

Angeblich muss ich ein weiteres Archiv runterladen, um das auf die SD-Karte zu packen… aber gehen Linux-Aufrufe nicht auch schon so? Ich lade einfach mal die Linux-Examples runter, und siehe da, sie funktionieren: Im Beispiel Linux_SystemTime ruft Arduino-Code Linux-Systemfunktionen für die Uhrzeit und das Lesen von Dateien auf. Das war ja mal einfach, wenn man sich traut.

Derart ermutigt, schiebe ich eine leere FAT-formatierte 2GB-MicroSD-Karte aus einem Kensington Presenter in den Slot auf dem Board und uploade erneut. Leider ist nach Aus-Einstecken (USB raus, Strom raus, Strom rein, Waaaarten, USB rein - mal sehen, wie lange ich das durchhalte) das Programm nicht wieder da. Also braucht es da doch noch etwas mehr Magic.

Ich schmökere noch etwas im Datenblatt - geschickt finde ich, dass man die Arduino-Pins auf dem Board über einen DC/DC-Wandler auf der Platine kompatibel zu 3,3V- und 5V-Shields schalten kann. Auch der 5V-Netzteileingang ist im USB-Netzteilzeitalter praktischer als der alte 9V-Eingang bei Arduino-Boards, die man nie regelkonform über eine 5V-Schiene mitversorgen kann, ohne ihren Onboard-Regler zu gefährden. Da könnte sich Arduino.cc hier mal was abkucken.

Zum Schluss sehe ich mir noch das Hardware Overview Video auf der Startseite an, das eigentlich als erstes empfohlen wird. Mir fallen die Ohren ab. Ein Megadeth-artig übersteuerter kleiner Junge erzählt uns, was seiner Vermutung nach die Komponenten auf dem Board sind. Putzig, aber mit einigen Mutmaßungen, und eine erfolgreiche Zeitverschwendung, die sich nur wenige bis zu Ende anhören werden. Das erste Introvideo sollte doch statt eines Kiddie-Marketing-Gags vielleicht eher kompakt und kompetent (und vernünftig ausgesteuert, ausgeleuchtet und produziert) erzählen, was das Board kann…

Fazit soweit:

Einige Design-Entscheidungen signalisieren, dass Intel die Maker-Community zwar toll findet, aber doch noch nicht so ganz verstanden hat. Netzteilzwang mit Zerstörungsgefahr bei Nichtbeachtung, ein Amnesie-Arduino mit MicroSD-Karten-Zwang und schlecht lesbare Beschriftungen machen das Board sicher geeignet für kommandzeilengestählte Hardwaretüftler, aber nicht für moderne Maker, die sich ihr Wissen modular und in Nullkommanix aus verschiedensten Onlinequellen zusammensuchen und ohne unnütze Hürden ihr Projekt zum Laufen bringen wollen. Und zahllose Newbies werden sich ihre achtlos in die 3,5mm-Buchse gesteckten iPhone-Kopfhörer zerschmelzen, bevor sie merken, dass das in Wirklichkeit kein Audio, sondern ein RS232-Ausgang ist.

Die Integration in die Mainstream-Arduino-IDE ist sicher bald dran, aber bis dahin zu empfehlen, die original IDE zu löschen, ist nicht hilfreich und erscheint unnötig. Das “Auspacken, installieren, einstecken, uploaden, BLINK!” von Arduino ist hier noch nicht ganz erreicht.

Seinen eigentlichen Glanz wird das Board aber ja auch erst entwickeln, wenn der Linux-Kern angeschmissen wird, sonst hätte man sich ja auch ein Uno kaufen können. Also noch keine voreiligen Schlüsse ziehen. Erste Versuche zeigen, dass der Zugriff auf die Linuxfunktionalität recht schmerzfrei funktioniert - Linux ist sozusagen für umsonst bei Bedarf gleich vorhanden.

Ein MicroUSB-Kabel und eine kleine MicroSD-Karte hätte die Kosten nicht wirklich signifikant beeinflusst und wäre gerade bei einem Erstkontakt-Starterkit eine gute Investition gewesen. Ich sehe schon die Foreneinträge, welche MicroSD-Karten denn nun funktionieren, welche nicht, welche man kaufen sollte - hätte man Anfängern alles ersparen können.

Ganz zum Schluss bleibt noch die Frage: braucht man das? Zweifellos gibt es zahllose Anwendungen, die mit Computer Vision und anderen schweren Geschützen ganz neue Embedded-Maker-Anwendungen ermöglichen. Aber diese Leistung wird auch beim Galileo teuer erkauft: durch Komplexität, die sich nur schwer verhindern lässt (immerhin ist hier ein Betriebssystem im Spiel) - und durch unnötige Designfehler eines Engineeringteams mit etwas zu wenig Didaktik- und Designbackground, die die Usability verschlechtern. Hinzu kommt, dass natürlich Kompatibilitätsprobleme mit den zahllosen Bibliotheken und Codeschnipseln da draußen ins Haus stehen, die man dann erstmal lösen muss, bevor man zu seinem Projekt kommt. So funktioniert der AREF-Eingang einfach nicht; das Intel-Forum zum Board gibt weitere Beispiele. Wie schon beim Pi gilt daher: Für viele einfache Maker-Projekte bleibt das betriebssystemfreie Arduino in seinen vielen Formfaktoren die bessere, weil weniger komplexe und für schnelle Erfolge optimierte Wahl.

—Jan Borchers
Media Computing Group at RWTH Aachen

Search

in: