ftDuino Bedienungsanleitung (PDF-Version)

2 Installation

Die Installation der Software zur Benutzung des ftDuino erfolgt in mehreren Schritten. Zu allererst muss der Computer mit dem ftDuino bekannt gemacht werden, in dem ein passender Treiber dafür sorgt, dass der Computer erfährt wie er mit dem ftDuino zu kommunizieren hat.

Im zweiten Schritt wird dann die sogenannte Arduino-IDE installiert, also die eigentliche Programmierumgebung sowie die Arduino-IDE mit dem ftDuino verbunden.

Für die Installation und auch für die im Kapitel 3 folgenden ersten Schritte reicht es, den ftDuino per USB mit dem PC zu verbinden. Eine zusätzliche Stromversorgung per Netzteil oder Batterie ist erst nötig, wenn die Ausgänge des ftDuino verwendet werden sollen.

2.1 Treiber

Unter den meisten Betriebssystemen wird der ftDuino vom Computer direkt erkannt, sobald er angesteckt wird. Das trifft unter anderem auf Linux, MacOS X und Windows 10 zu, aber nicht für Windows 7.

2.1.1 Windows 10

Die Verwendung des ftDuinos unter Windows 10 erfordert keine Treiberinstallation durch den Anwender.

Sobald der ftDuino an einen PC unter Windows 10 angesteckt wird werden die passenden Treiber automatisch installiert. Windows 10 zeigt dies beim ersten Anschließen des ftDuino durch eine entsprechende Meldung am unteren rechten Bildschirmrand an. Nach einigen Sekunden ist die Installation abgeschlossen und der ftDuino benutzbar.

Weiteres An- und Abstecken erzeugt keine weiteren Meldungen, allerdings ist die erfolgreiche Erkennung des ftDuino unter Windows 10 jederzeit an der typischen Melodie zu erkennen, die ein Windows-PC beim Erkennen von Hardware ausgibt.

2.1.2 Windows 8.0 und Windows 8.1

Die Treiberinstallation unter Windows 8 ist recht undankbar. Und falls möglich sollte auf Windows 10 ausgewichen werden.

Das Problem unter Windows 8 ist die Tatsache, dass die .inf-Datei unter https://harbaum.github.io/ftduino/ftduino/driver/ftduino.inf nicht von Microsoft signiert wurde und Windows 8 es dem Benutzer deutlich schwerer als z.B. Windows 7 macht, einen nicht-signierten Treiber zu installieren. Das ist in diesem Fall besonders ärgerlich, da es sich beim eigentlichen Treiber über eine bereits von Microsoft mitgelieferte Komponente handelt und die .inf-Datei Windows 8 lediglich auffordert, diese auch zu benutzen. Der eigentliche Treiber kommt von Microsoft und ist entsprechend signiert.

Beim Download der .inf-Datei ist darauf zu achte, dass sie nicht als .txt-Datei gespeichert wird. Einige Windows- und Browserversionen hängen beim Download der Datei oft unsichtbar die .txt-Endung an.

Diverse Anleitungen im Internet zur Installation nicht-signierter Treiber sind unter dem Suchbegriff ``windows 8 nicht signierte treiber installieren'' leicht zu finden. Im folgenden sind die wesentlichen Schritte kurz zusammengefasst:

  1. Öffnen des Einstellungsbereich des Charms-Menüs mit Windows-Taste + Taste 'I'. Klick auf Ausschalten.
  2. Shift-Taste gedrückt halten und Neustart auswählen. Danach erscheint ein Menü, in dem nacheinander Problembehandlung, dann Erweiterte Optionen, Starteinstellungen und schließlich Neustart gewählt werden muss.
  3. Nach dem Bootvorgang erscheint ein neues Menü, in dem man mit Eingabe der Taste '7' (F7 oder 7 auf Ziffernblock) die Treibersignierung ausschalten kann, um so den unsignierten Treiber zulassen zu können.

2.1.3 Windows 7 und Windows Vista

Windows 7 und Windows Vista bringen den passenden Treiber ebenfalls bereits mit. Allerdings muss eine passende .inf-Datei geladen werden, um dafür zu sorgen, dass Windows diesen Treiber für den ftDuino nutzt.

Dass kein Treiber geladen ist erkennt man u.a. daran, dass der ftDuino im Gerätemanager unter ``Andere Geräte'' aufgeführt wird.

Abbildung 2.1: ftDuino ohne passenden Treiber unter Windows 7

Die .inf-Datei ist unter https://harbaum.github.io/ftduino/ftduino/driver/ftduino.inf zu finden.

Beim Download der .inf-Datei ist darauf zu achte, dass sie nicht als .txt-Datei gespeichert wird. Einige Windows- und Browserversionen hängen beim Download der Datei oft unsichtbar die .txt-Endung an.

Nach dem Download reicht ein Rechtsklick auf die Datei und die Auswahl von ``Installieren'' im folgenden Menü.

Abbildung 2.2: Rechtsklick auf ftduino.inf

Windows bietet daraufhin an, den Treiber zu installieren.

(a) Bestätigungsabfrage
(b) Ggf. folgende Sicherheitsabfrage
Abbildung 2.3: Installation des Treibers

Ggf. erfolgt noch eine Sicherheitsabfrage. Dieser Frage kann man getrost zustimmen, da der eigentliche Treiber bereits Teil von Windows 7 bzw. Windows Vista ist. Die ftduino.inf-Datei fordert Windows lediglich auf, ihn zu verwenden.

Sobald die Installation erfolgreich war wird der ftDuino als sogenannter COM:-Port eingebunden.

(a) Anwendungsmodus
(b) Bootloader
Abbildung 2.4: ftDuino mit passendem Treiber unter Windows 7

Je nach Betriebsmodus des ftDuino und je nach installierter Anwendung auf dem ftDuino befindet er sich im Anwendungsmodus oder im Bootloader. Windows unterscheidet zwischen beiden Zuständen und weist zwei unterschiedliche COM:-Ports zu. Das ist so gewollt und soll nicht weiter irritieren. In den meisten Fällen wird der Benutzer nur den Anwendungsmodus zu sehen bekommen.

2.1.4 Linux

Der ftDuino wird von einem handelsüblichen Linux-PC ohne weitere manuelle Eingriffe erkannt. Da er das sogenannte ``Abstract Control Model'' (ACM) implementiert taucht er im Linux-System unter /dev/ttyACMX auf, wobei X eine fortlaufende Nummer ist. Sind keine weiteren ACM-Geräte verbunden, so wird der ftDuino als /dev/ttyACM0 eingebunden.

Mehr Details erfährt man z.B. direkt nach dem Anstecken des ftDuino mit dem dmesg-Kommando:

     $ dmesg
     ...
     [15822.397956] usb 3-1: new full-speed USB device number 9 using xhci_hcd
     [15822.540331] usb 3-1: New USB device found, idVendor=1c40, idProduct=0538
     [15822.540334] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
     [15822.540336] usb 3-1: Product: ftDuino
     [15822.540337] usb 3-1: Manufacturer: Till Harbaum
     [15822.541084] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
Die genauen Meldungen variieren von System zu System, aber der generelle Inhalt wird vergleichbar sein.

Weitere Details zum erkannten USB-Gerät liefert das lsusb-Kommando:

     $ lsusb -vd 1c40:0538
     Bus 003 Device 009: ID 1c40:0538 EZPrototypes 
     Device Descriptor:
       bLength                18
       bDescriptorType         1
       bcdUSB               2.00
       bDeviceClass          239 Miscellaneous Device
       bDeviceSubClass         2 ?
       bDeviceProtocol         1 Interface Association
       bMaxPacketSize0        64
       idVendor           0x1c40 EZPrototypes
       idProduct          0x0538 
     ...
Diese Ausgaben sind besonders interessant, wenn man wie in Abschnitt 6.10 oder 6.16 beschrieben die erweiterten USB-Möglichkeiten des ftDuino nutzt.

Uploadfehler oder ``Device or resource busy''

Auch wenn Linux bereits den eigentlichen Gerätetreiber mitbringt kann es trotzdem nötig sein, die Systemkonfiguration anzupassen. Das Symptom ist, dass es beim Versuch, auf den ftDuino zuzugreifen, in der Arduino-IDE zu der folgenden Fehlermeldung kommt.

Abbildung 2.5: Fehlermeldung bei installiertem ModemManager

Mögliche Ursache: Der Modemmanager

In diesem Fall ist eine wahrscheinlichste Ursache, dass der ModemManager, ein Programm zur Bedienung von Modems, installiert ist und sich mit dem ftDuino verbunden hat. Um zu verhindern, dass der ModemManager versucht, sich mit dem ftDuino zu verbinden, ist die Eingabe des folgenden Kommandos nötig:

       sudo wget -P /etc/udev/rules.d https://raw.githubusercontent.com/harbaum/ftduino/master/ftduino/driver/99-ftduino.rules

Die Datei /etc/udev/rules.d/99-ftduino.rules muss danach exakt folgenden Inhalt haben:

     ATTRS{idVendor}=="1c40" ATTRS{idProduct}=="0537", ENV{ID_MM_DEVICE_IGNORE}="1"
     ATTRS{idVendor}=="1c40" ATTRS{idProduct}=="0538", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666"
Danach muss der ftDuino einmal kurz vom PC getrennt und wieder angesteckt werden und sollte in der Folge ohne Probleme zu verwenden sein.

Das Kommando legt eine Datei namens /etc/udev/rules.d/99-ftduino.rules an. Diese Datei enthält Regeln, wie der Linux-Kernel mit bestimmten Ereignissen umgehen soll. In diesem Fall soll beim Einstecken eines USB-Gerätes mit der Hersteller-Identifikation 1c40 und den Geräteidentifikationen 0537 und 0538 dieses vom ModemManager ignoriert werden. Zusätzlich werden die Zugriffsrechte auf das USB-Gerät etwas ausgeweitet, so dass der in Abschnitt 6.18.1 beschriebene Zugriff aus dem Web-Browser funktioniert.

In einigen Linux-Setups reicht die Installation der Datei nicht, um den ModemManager von seinen Störungen abzuhalten. In dem Fall hilft es, den ModemManager zu deaktivieren, auf den in der Regel problemlos verzichtet werden kann. Das folgende Kommando stoppt den ModemManager auf vielen gängigen Linux-Installationen bis zu nächsten Systemstart:

       sudo systemctl stop ModemManager.service
Bringt das Kommando den erwünschten Effekt, dann kann die Einstellung mit dem folgenden Kommando dauerhaft gemacht werden:
       sudo systemctl disable ModemManager.service
Der ModemManager wird dann auch nach einem Systemstart nicht wieder gestartet.

Mögliche Ursache: Fehlende Gruppenmitgliedschaft

Eine weitere verbreitet Hürde unter Linux sind die Zugriffsrechte auf die Hardware, die zum Zugriff auf die USB-Schnittstelle des ftDuino nötig sind.

Ist der ftDuino an den Linux-PC angechlossen, so wird ihm wie in Abschnitt 2.1.4 erwähnt ein Device ttyACM zugewiesen. Ist dies z.B. ttyACM0 so erhält man mit dem ls-Kommando mehr Informationen:

     $ ls -l /dev/ttyACM0
     crw-rw---- 1 root dialout 166, 0 Jul 27 23:06 /dev/ttyACM0
Wichtig ist hier das Wort dialout, denn das ist der Name der Gruppe, die Zugriff auf diese Schnittstelle hat. Ob man selbst dazu gehört sagt einem das groups-Kommando:
     $ groups
     harbaum adm dialout cdrom sudo dip plugdev lpadmin sambashare
In diesem Fall taucht dialout in der Liste auf und der Nutzer hat die damit entsprechenden Rechte. Taucht dialout nicht auf, so kann z.B. der Benutzer harbaum der Gruppe beitreten mit dem Kommando:
     $ sudo adduser harbaum dialout
Danach muss man sich einmal vom System ab- und wieder anmelden, um die neuen Rechte nutzen zu können.

2.2 Arduino-IDE

Die integrierte Entwicklungsumgebung (IDE) für den Arduino bekommt man kostenlos für die gängigsten Betriebssysteme unter https://www.arduino.cc/en/Main/Software. Die Windows-Version mit eigenem Installer ist dort z.B. direkt unter dem Link https://www.arduino.cc/download_handler.php erreichbar. Diese Arduino-IDE wird zunächst installiert.

2.2.1 Arduino-IDE für Linux aus dem Ubuntu-Software-Store

Unter Linux hat man neben dem Download der IDE von http://arduino.cc oft auch die Möglichkeit, die IDE direkt aus einem Repository oder Store der entsprechenden Linux-Distribution zu beziehen. Das hat theoretisch den Vorteil einer einfachen und schnellen Installation. Der Ubuntu-Store bietet zum Beispiel die in Abbildung 2.6 dargestellte Version an. Das Benutzerrating von nur drei Sternen oben rechts im Bild hat dabei allerdings einen guten Grund.

Abbildung 2.6: Die Arduino-IDE aus dem Ubuntu-Software-Store hat ihre Tücken

Diese Version der Arduino-IDE wurde auf die relativ neue auf dem sogenannten SNAP-Format basierende Paketverwaltung aufgebaut. Neu in SNAP ist, dass die Rechte der Programme verwaltet werden wie man es auch von Smartphone-Apps kennt. Nun benötigt die Arduino-IDE für eine korrekte Funktion Zugriff aud die USB-Aschlüsse, an denen der ftDuino angeschlossen ist. Eben solche Rechte zu vergeben unterstützt Ubuntu-Linux aber zur Zeit (Stand 28.7.2019) nicht. Daher lässt sie sich die Arduino-IDE zwar aus dem Store installieren, aber der Zugriff auf den ftDuino (sowie jeden anderen Arduino) ist nicht möglich. Es gibt zwei Lösungen dieses Problems:

  1. Man installiert das Programm aus dem Store nicht in der grafischen Oberfläche sondern in der Kommandozeile durch Eingabe von snap install --devmode arduino-mhall119. Mehr Infos dazu finden sich z.B. unter 1 .
  2. Man installiert die Arduino-IDE aus dem Archiv auf https://www.arduino.cc/en/main/software

In beiden Fällen muss man unter Ubuntu die Rechte anpassen wie in Abschnitt 2.1.4 beschrieben und den Modemmanger deinstalliern wie in Abschnitt 2.1.4 beschrieben.

2.2.2 Installation mit dem Boardverwalter

Um den ftDuino unter der Arduino-IDE nutzen zu können muss eine entsprechende Konfiguration vorgenommen werden. Die Arduino-IDE erlaubt es, diesen Vorgang weitgehend zu automatisieren.

Für die einfache Installation zusätzlicher Boards bringt die Arduino-IDE den sogenannten Boardverwalter mit. Zunächst muss dem Boardverwalter in den Arduino-Voreinstellungen mitgeteilt werden, wo die ftDuino-Konfiguration zu finden ist.

Dazu trägt man https://harbaum.github.io/ftduino/package_ftduino_index.json in den Voreinstellungen wie folgt ein. Beim Eintragen der entsprechende Zeile ist darauf zu achten, dass die URL Unterstriche (_) enthält, die ggf. beim Kopieren (Copy'n Paste) der URL aus diesem PDF-Dokument verloren gehen. In diesem Fall sollte die URL manuell eingegeben werden.

Abbildung 2.7: URL der ftDuino-Konfiguration in den Arduino-Voreinstellungen

Den eigentlichen Boardverwalter erreicht man danach direkt über das Menü der IDE unter WerkzeugeBoard: ...Boardverwalter....

Abbildung 2.8: Den Boardverwalter startet man aus dem Menü

Nachdem die JSON-Datei in den Voreinstellungen eingetragen wurde bietet der Boardverwalter automatisch die ftDuino-Konfiguration an.

Abbildung 2.9: Im Boardverwalter kann das ftDuino-Board installiert werden

Durch Klick auf Installieren... werden alle für den ftDuino nötigen Dateien automatisch heruntergeladen und installiert.

Nach erfolgreicher Installation kann der ftDuino unter den Boards ausgewählt werden.

Abbildung 2.10: Auswahl des ftDuino-Boards

Achtung: In neueren Installationen kann man zwischen den Boards ``ftDuino'' und ``ftDuino (WebUSB)'' wählen. Bitte wählen Sie für die normale Arbeit die Einstellung ``ftDuino''. Die Einstellung ``ftDuino (WebUSB)'' ist für spezielle WebUSB-Sketches gedacht wie in Abschnitt 6.18 beschrieben. Diese Einstellung sollte nur genutzt werden, wenn auch tatsächlich ein WebUSB-Sketch geladen werden soll.

Ist bereits ein ftDuino angeschlossen und wurde der nötige Treiber installiert, so lässt sich der ftDuino nun unter Port auswählen.

Abbildung 2.11: Auswahl des Ports unter MacOS

Die Installation ist damit abgeschlossen. Während der Installation wurden bereits einige Beispielprogramme installiert. Diese finden sich im Menü unter DateiBeispieleExamples for ftDuino.

Abbildung 2.12: Beispiele zum ftDuino-Board

Diese Beispiele können direkt geladen und auf den ftDuino hinuntergeladen werden.

2.2.3 Updates

Die Arduino-IDE benachrichtigt automatisch über Softwareupdates der ftDuino-Konfiguration. Mit wenig Aufwand bleibt man so immer auf dem aktuellen Stand.


1) Ankündigung ``Snap package for Arduino IDE'': https://groups.google.com/a/arduino.cc/forum/#!topic/developers/Qp-G910Mt9c