Elektronik- und Computermodule für Konstruktionsbaukästen gibt es seit den Anfängen der privat genutzten Heimcomputer der 80er Jahre. Diese Module verfügten über wenig eigene Intelligenz und waren vor allem für die Signalanpassung zwischen dem Heimcomputer und den Motoren und Schaltern der Baukastensysteme zuständig, weshalb diese Module in der Regel als ``Interfaces'' bezeichnet wurden, also als Schnittstelle zwischen Computer und Modell.
Über die Jahre stieg die Leistungsfähigkeit der Heimcomputer und auch die Elektronik-Module lernten dazu. Vor allem wurden aus ``Interfaces'' über die Zeit ``Controller''. Aus den weitgehend passiven Schnittstellen wurden Bausteine mit eigener Intelligenz, die den Heimcomputer bzw. später den PC nur noch zur Programmierung benötigten. Einmal programmiert konnten diese Controller das Modell auch eigenständig bedienen. Dazu wurden die auf dem PC entwickelten Programmdaten auf den Controller geladen und dort gespeichert.
Die heutigen Controller von Lego oder fischertechnik sind selbst leistungsfähige Computer. Um deren Komplexität für den Endanwender benutzbar zu machen verbergen die Hersteller die Details der elektronischen Komponenten sowie der auf den Geräten laufenden Software hinter gefälligen Benutzeroberflächen. Leider verpassen solche Systeme auf diese Weise die Chance, Wissen über Aufbau und Funktion derartiger Controller zu vermitteln. Während sich die Hersteller gegenseitig darin übertreffen, komplexe mechanische Getriebe im Wortsinne begreifbar zu machen stellen sich die dazugehörigen Controller für den Anwender als undurchsichtige Bausteine dar.
Parallel hat sich seit der Jahrtausendwende die sogenannte Maker-Bewegung entwickelt, die den ``Selbstmach''-Gedanken in den Bereich der Elektronikentwicklung trägt. Systeme wie der Raspberry-Pi und der Arduino laden dazu ein, alle technischen Details dieser komplett zugänglichen und dokumentierten Controller zu erforschen und eigene Entwicklungen zu betreiben. Große Communities bieten umfangreiches Know-How und stellen Plattformen zum Wissensaustausch zur Verfügung. Im Gegensatz zu den Controllern von fischertechnik und Lego steht hier das Innere des Controllers im Vordergrund. Allerdings erfordert der Einsatz dieser Controller oft einiges an handwerklichem Geschick beim Aufbau der Elektronik selbst sowie speziell bei Robotik-Projekten bei der Umsetzung von mechanischen Komponenten.
Die Idee hinter dem ftDuino ist es, die Brücke zwischen zwei Welten zu schlagen. Auf der einen Seite integriert er sich mechanisch und elektrisch nahtlos in die Robotics-Serie der fischertechnik-Konstruktionsbaukästen. Auf der anderen Seite fügt er sich perfekt in das Arduino-Ökosystem zur Software-Entwicklung von eingebetteten Systemen ein.
Fischertechnik ist ein technikorientiertes Konstruktionsspielzeug. Der Schwerpunkt liegt auf Mechanik, Elektromechanik, Elektronik und zunehmend auch Robotik und der dafür nötigen Integration von informationsverarbeitenden Komponenten.
Fischertechnik selbst entwickelt und vertreibt seit den frühen 80er Jahren Elektronik-Module, die eine Verbindung zwischen Computer und mechanischem Modell ermöglichen bzw. über eigene Intelligenz verfügen. Die dabei zum Einsatz kommenden Steckverbinder sowie die Sensoren (Taster, Schalter, Lichtsensoren, ...) und Aktoren (Lampen, Motoren, Ventile, ...) sind über die Jahre zueinander kompatibel geblieben und lassen sich nach wie vor beliebig miteinander kombinieren.
Die letzten zwei Controller-Generationen (fischertechnik TX- und TXT-Controller) haben eine vergleichbare mechanische Größe und verfügen über eine vergleichbare Anzahl und Art von Anschlüssen zur Verbindung mit dem Modell. Die Modelle aller aktuellen Robotics-Baukästen sind auf diese Anschlüsse ausgelegt und untereinander kombinierbar.
Beide Original-Controller verfügen über acht analoge Eingänge, acht analoge Ausgänge, vier schnelle Zählereingänge und einen I²C-Erweiterungsanschluss.
Fischertechnik selbst vertreibt die PC-Software RoboPro zur visuellen Softwareentwicklung für die hauseigenen Controller. Der Einstieg in RoboPro ist relativ einfach und spricht bereits Kinder an. Die Grenzen von RoboPro sind aber schnell erreicht, wenn es um praxisnahe und inhaltlich anspruchsvolle Projekte in weiterführenden Schulen, Universitäten und der Berufsausbildung geht. In diesen Bereichen haben sich Systeme wie die Arduino-Plattform etabliert.
Das Arduino-Ökosystem hat sich in den letzten Jahren zum
De-Facto-Standard für den Einstieg und die semiprofessionelle
Entwicklung und Programmierung von eingebetteten Systemen
etabliert. Eingebettete Systeme sind in der Regel mechanisch kleine
Computer und informationsverarbeitende Module, die innerhalb einer
Maschine Steuer- und Regelaufgaben übernehmen und immer häufiger auch
mit der Außenwelt kommunizieren.
Die Arduino-IDE ist eine übersichtliche und leicht zu bedienende Programmieroberfläche, die sich auf Windows-, Linux- und Apple-PCs nutzen lässt. Die zu programmierenden Zielgeräte wie zum Beispiel der Arduino-Leonardo sind kleine und kostengünstige Platinen, die per USB mit dem PC verbunden werden. Sie kommen üblicherweise ohne Gehäuse und stellen über Steckverbinder eine Vielzahl von Signalleitungen zum Anschluss von Sensoren und Aktoren zur Verfügung. Typische mit der Arduino-Plattform zu erledigende Aufgaben sind einfache Messwerterfassungen (Temperatur-logging, ...) und Steueraufgaben (Jalousiesteuerungen, ...).
Programme, die mit der Arduino-IDE geschrieben wurden, werden in der Arduino-Welt als sogenannte ``Sketches'' bezeichnet. Mit Hilfe der Arduino-IDE können passende Sketches für den ftDuino geschrieben und über das USB-Kabel direkt auf das Gerät hinuntergeladen werden.
Auch für einfache Robotik-Experimente ist die Arduino-Plattform bestens geeignet. Schwieriger ist oft eine mechanisch befriedigende Umsetzung selbst einfachster Robotik-Projekte. Diese Lücke kann das fischertechnik-System schließen.
Der ftDuino-Controller wurde bewusst mechanisch und elektrisch an
den TX- und den TXT-Controller angelehnt, um ihn ebenfalls direkt mit
den aktuellen Robotics-Kästen kombinieren zu können. Gleichzeitig
wurde er softwareseitig mit dem Arduino-System kompatibel gehalten.
Das Herz des ftDuino ist ein Mikrocontroller des Typs
ATmega32u4. Dieser Mikrocontroller wird von Microchip (ehemals Atmel)
hergestellt und findet auch im Arduino-Leonardo Verwendung. Sketches,
die für den Leonardo übersetzt wurden, sind oft direkt auf dem
ftDuino lauffähig.
Der ATmega32u4-Controller ist ein Mitglied der sogenannten AVR-Familie, auf der die meisten Arduino-Bords basieren. Die AVR-Controller sind klein, günstig und benötigen zum Betrieb nur wenig weitere Bauteile. Ihr Speicher und ihre Rechenleistung reicht für den Betrieb sämtlicher fischertechnik-Modelle der Roboticsreihe deutlich aus.
Der ATmega32u4 verfügt über 32 Kilobytes nicht-flüchtigem Flash-Speicher, der als Sketch-Programmspeicher verwendet wird sowie 2,5 Kilobytes internem RAM-Speicher zur Datenspeicherung. Der Prozessortakt beträgt 16 Megahertz. Jeweils ein Sketch kann im Flash-Speicher permanent gespeichert werden und bleibt auch erhalten wenn der ftDuino von der Spannungsversorgung getrennt wird.
Der ATmega32u4 ist eines der wenigen Mitglieder der AVR-Familie, das direkte USB-Unterstützung bereits auf dem Chip mitbringt. Auf diese Weise ist der ftDuino sehr flexibel als USB-Gerät am PC einsetzbar.
Der ftDuino wird mit einem im ATmega32u4 vorinstallierten sogenannten Caterina-Bootloader ausgeliefert. Dieses Programm belegt permanent vier der 32 Kilobytes Flash-Speicher des ATmega32u4 und kann nicht ohne weiteres gelöscht oder verändert werden.
Der Bootloader ermöglicht die Kommunikation mit dem PC und erlaubt es, dass der PC Programmdaten in den verliebenden 28 Kilobytes Flash-Speicher ablegen bzw. austauschen kann. Der Bootloader ermöglicht auf diese Weise das Hinunterladen von Sketches in den ftDuino.
Dass der Bootloader aktiv ist und nicht etwa gerade ein Sketch ausgeführt wird, ist am Zustand der internen LEDs erkennbar (siehe 1.2.4).
Die Verbindung zum PC zur Programmierung und Datenübertragung wird
über USB hergestellt. Der ftDuino verfügt über eine sogenannte
Mini-USB-Buchse und wird über ein handelsübliches Mini-USB-Kabel mit
dem PC verbunden.
Normalerweise kann die Arduino-IDE durch entsprechende Kommandos über den USB-Anschluss den Bootloader des ftDuino aktivieren, um einen neuen Sketch hinunterzuladen. Enthält ein hinuntergeladener Sketch aber Fehler, die eine normale Programmausführung verhindern, dann kann es passieren, dass die USB-Kommunikation während der normalen Programmausführung nicht funktioniert und die Arduino-IDE den ftDuino von sich aus nicht mehr ansprechen kann.
Für diesen Fall verfügt der ftDuino über einen Reset-Taster. Wird dieser gedrückt, dann wird der Bootloader zwangsweise aktiviert und die LEDs zeigen entsprechend den Start des Bootloaders an.
Ein mit einem fehlerhaften Sketch versehener ftDuino kann daher problemlos mit einem korrigierten Sketch versehen werden, indem kurz vor dem Hinunterladen der Reset-Taster kurz gedrückt wird. Mehr Details dazu finden sich im Abschnitt 1.3.
Der ftDuino verfügt über je eine grüne und rote interne Leuchtdiode (LED). Die grüne Spannungsversorungs-LED zeigt an, dass der interne 5-Volt-Zweig mit Spannung versorgt ist und der Mikrocontroller des ftDuino versorgt wird.
Die rote LED steht für eigene Verwendung zur Verfügung und kann vom Anwender aus eigenen Sketches heraus unter der Bezeichnung LED_BUILTIN angesprochen werden (siehe Abschnitt 3.1).
Die rote LED wird auch vom Caterina-Bootloader des ftDuino verwendet. Ist der Bootloader aktiv, so leuchtet die LED im Sekundentakt sanft heller und dunkler (``fading'').
Der ftDuino kann auf vier Arten mit Spannung versorgt werden:
Vorsicht ist bei der Verwendung unbekannter oder sehr
alter Spannungsquellen geboten. Oftmals weichen die aufgedruckten
Nennspannungen weit von der Realität ab. Das in Abbildung
1.9 abgebildete Netzteil liefert am 6,8-Volt-Ausgang
eine Leerlaufspannung von über 27 Volt. Ein einfaches Multimeter zeigt
noch moderate 9,4 Volt an und könnte den Eindruck erwecken, dass sich
dieses Netzteil zum Betrieb des ftDuino eignet. Erst das
Oszilloskop bringt den genauen Spannungsverlauf zu Tage und zeigt,
dass die Spannung kurzfristig sogar 27,2 Volt erreicht. Während Ein-
und Ausschaltvorgängen können noch wesentlich höhere Spannungen
auftreten und den ftDuino beschädigen.
Aus diesem Grund sollte man bei Einsatz solcher alten oder unbekannten
Spannungsquellen sehr vorsichtig sein und im Zweifelsfall auf den
Einsatz verzichten.
Im Zweifel sollte unbedingt eine aktuelle Spannungsversorung von
fischertechnik eingesetzt werden. Das aktuelle Fischertechnik Power
Netzgerät 9V 5052875 ist bestens geeignet, ebenso wie der Akku
aus dem Akku-Set 349696 oder ein 9-Volt-Block im Batteriehalter.
Soll es unbedingt ein Fremdgerät sein, so ist auf eine stabilisierte 9Volt-Spannung zu achten. Die Stromstärke sollte 1,5 Ampere nicht unterschreiten, um auch kräftige Motoren betreiben zu können. Ein Beispiel das in Abbildung 1.11 dargestellte Universal-Schaltnetzteil aus dem Reichelt-Onlineversand7 .
Die Anschlüsse des ftDuino teilen sich in die fischertechnik-kompatiblen Ein- und Ausgänge auf, die für die üblichen 2,6mm-Einzelstecker geeignet sind, sowie die üblichen Steckverbinder aus dem Computerbereich. Die fischertechnik-kompatiblen Ein- und Ausgänge sind identisch zum fischertechnik-TXT-Controller angeordnet. Verdrahtungsschemata für den TXT können daher in der Regel direkt übernommen werden.
Der ftDuino verfügt über acht analoge Eingänge I1 bis I8, über die Spannungen von 0 bis 10 Volt sowie Widerstände von 0 bis über 10 Kiloohm erfasst werden können.
Die Eingänge sind über hochohmige Serienwiderstände gegen Kurzschlüsse sowie Über- und Unterspannung abgesichert.
Jeder Eingang ist mit einem eigenen Analogeingang des ATmega32u4-Mikrocontrollers verbunden. Die Analogwerterfassung kann mit bis zu 10 Bit Auflösung erfolgen (entsprechend einem Wertebereich 0 bis 1023) und wird direkt in der Hardware des Mikrocontrollers durchgeführt.
Ein Spannungsteiler erweitert den Eingangsspannungsbereich des Mikrocontrollers von 0 bis 5 Volt auf den bei fischertechnik genutzten Bereich von 0 bis 10 Volt. Alle an fischertechnik-Modellen auftretenden Spannungen können damit erfasst werden.
Zur Widerstandsmessung kann kann jeder Eingang ftDuino-intern mit einem Widerstand gegen 5 Volt verschaltet werden. Dieser Widerstand wirkt mit einem externen Widerstand als Spannungsteiler und aus der am Mikrocontroller gemessenen Spannung kann der Wert des extern angeschlossenen Widerstands gemessen werden. Alle von fischertechnik-Modellen üblicherweise verwendeten Widerstände können so erfasst werden.
Die analogen Eingänge sind nicht auf eine externe 9-Volt-Versorgung angewiesen, sondern funktionieren auch bei der Stromversorgung über den USB-Anschluss des PC. Allerdings sinkt in diesem Fall die Genauigkeit der Widerstandsmessung signifikant.
Der ftDuino verfügt über acht analoge Ausgänge O1 bis O8. Diese Ausgänge werden über zwei spezielle Treiberbausteine im ftDuino angesteuert. Die Treiberbausteine können jeden der acht Ausgänge unabhängig steuern. Sie sind identisch zu denen, die fischertechnik in den TX- und TXT-Controllern einsetzt. Die Ausgänge sind daher kompatibel zu allen fischertechnik-Motoren und -Aktoren, die auch am TX- und TXT-Controller betrieben werden können. Der maximal pro Ausgang verfügbare Strom beträgt 600mA bis 1,2A.
Die Ausgänge sind bei einer reinen USB-Stromversorgung des ftDuino nicht verfügbar.
Der verwendete Treiberbaustein MC33879 ist kurzschlussfest und robust gegen Über- und Unterspannung an den Ausgängen.
Alle acht Ausgänge können unabhängig voneinander gegen Masse oder Eingangsspannung sowie hochohmig geschaltet werden. Je zwei Einzelausgänge können zu einem Motorausgang kombiniert werden. Die Einzelausgänge O1 und O2 bilden dabei den Motorausgang M1, O3 und O4 bilden M2 und so weiter.
Die Analogwerte an den Ausgängen werden durch eine sogenannte Pulsweitenmodulation (PWM) erzeugt. Dabei werden die Ausgänge kontinuierlich schnell ein- und ausgeschaltet, so dass Motoren, Lampen und andere träge Verbraucher dem Signal nicht folgen können, sondern sich entsprechend des Mittelwerts verhalten. Dieses Verfahren wird in gleicher Weise auch im TX- und TXT-Controller angewendet.
Beide MC33879 werden vom Mikrocontroller des ftDuino intern über dessen sogenannte SPI-Schnittstelle angeschlossen. Da dadurch die speziellen PWM-Ausgänge des Mikrocontrollers nicht zur Erzeugung der der Pulsweitenmodulation herangezogen werden können muss das PWM-Signal durch den Sketch bzw. die verwendeten Software-Bibliotheken (siehe Kapitel 9) selbst erzeugt werden. Die sogenannte PWM-Frequenz wird dabei durch den verwendeten Sketch bestimmt und kann beliebig variiert werden.
Mehr Informationen zum Thema PWM finden sich in Abschnitt 6.3.
Der ftDuino verfügt über vier spezielle Zählereingänge C1 bis C4. Diese Eingänge können rein digitale Signale erfassen und mit hoher Geschwindigkeit Ereignisse auswerten. Die maximal erfassbare Signalrate liegt je nach Sketch bei mehreren 10.000 Ereignissen pro Sekunde.
Die Zählereingänge sind kompatibel zu den Encodern der fischertechnik-Encoder-Motoren und können unter anderem zur Drehwinkelauswertung sowie zur Drehzahlbestimmung herangezogen werden.
Zählereingang C1 verfügt zusätzlich über die Möglichkeit, einen fischertechnik ROBO TX Ultraschall-Distanzsensor 1330098 auszuwerten.
Hinweis: Es gibt zusätzlich zum dem hier beschriebenen
Ultraschallsensor mit dreiaddrigem Anschliusskabel einen sehr alten
Sensor mit vierpoligem Kabel. Dieser sehr alte Sensor seit langem
nicht mehr erhältliche Sensor ist zum ftDuino nicht kompatibel (und
auch zu keinem der aktuellen Original-fischertechnik-Controller).
Der I²C-Anschluss ist elektrisch und mechanisch zu dem des
fischertechnik-TX-Controllers kompatibel. Der dort aus dem Gerät
herausgeführte sogenannte I²C-Bus findet auch im Arduino-Umfeld
häufige Verwendung und erlaubt den Anschluss passender
Elektronikkomponenten wie Sensoren, Analog-Digital-Wandler, Displays
und ähnlich. Außerdem ist über den I²C-Bus eine Kopplung mehrerer
ftDuinos möglich sowie die Kopplung des ftDuino mit dem
TX-Controller und dem TXT-Controller wie in Abschnitt 6.13
beschrieben.
Die Signale auf dem I²C-Anschluss nutzen wie am TX-Controller einen
5-Volt-Pegel. Zusätzlich werden aus der Spannungsversorgung des
ftDuino 5 Volt zur Versorgung angeschlossener Komponenten
bereitgestellt. Aus dem 5 Volt-Ausgang dürfen maximal 100mA entnommen
werden, um die ftDuino-interne Spannungsversorgung nicht zu
überlasten
Achtung! Der fischertechnik-TXT-Controller sowie für den Betrieb am TXT vorgesehene Komponenten sind aufgrund dessen 3,3 Volt-Signal-Pegel nicht direkt mit dem ftDuino kompatibel. Eine direkte Verbindung zwischen TXT und ftDuino kann den TXT beschädigen. Sollen der TXT oder für den Betrieb am TXT vorgesehene Komponenten am ftDuino verwendet werden, so sind unbedingt passende I²C-Pegelanpassung zwischenzuschalten wie in Abschnitt 6.13.5 beschrieben.
Achtung! Die auf dem I²C-Anschluss liegenden Signale sind direkt und ungeschützt mit dem Mikrocontroller des ftDuino bzw. mit dessen Spannungsversorgung verbunden. Werden an diesem Anschluss Kurzschlüsse verursacht oder Spannungen über 5V angelegt, dann kann der ftDuino zerstört werden. Der I²C-Anschluss sollte daher nur von erfahrenen Anwendern verwendet werden. Aus diesem Grund wird der ftDuino mit einer Schutzkappe auf dem I²C-Anschluss vertrieben. Diese Kappe ist bei Bedarf vorsichtig mit einem flachen Schraubendreher zu entfernen.
Es gibt Varianten des ftDuino, die bereits über ein eingebautes
OLED-Display verfügen. Das Display hat eine Auflösung von 128 * 32
Pixel und ist intern am I²C-Bus angeschlossen.
Der OLED-ftDuino verfügt über einen angepassten Bootloader, der
direkt nach dem Einschalten das Display initialisiert und einen
ftDuino-Schriftzug einblendet. Da der Bootloader das Display aktiv
anspricht bildet der OLED-ftDuino immer einen I²C-Busmaster. Ein
ftDuino mit eingebautem Display eignet sich daher nur sehr
eingeschränkt dafür, selbst als I²C-Client zu arbeiten und selbst
von einem anderen I²C-Master angesprochen zu werden. Er kann jedoch
selbst uneigeschränkt als Master arbeiten und z.B. einen weiteren
Display-losen ftDuino am I²C ansprechen. Zusätzliche externe
I²C-Geräte lassen sich wie gehabt anschließen.
Die ftDuino-Installation bringt unter Datei ► Beispiele ► Ftduino ► InternalOLED mehrere Beispiele mit, die jeweils über eigene Varianten der FtduinoDisplay.cpp-Bibliothek verfügen. Alle Beispiele benötigen zusätzlich die über den Bibliotheks-Manager der Arduino-IDE mit wenigen Klicks zu installierende ``Adafruit GFX Library''.
Das Beispiel Datei ► Beispiele ► Ftduino ► InternalOLED ► Ship3D bringt eine einfache und schnelle Variante dieser Bibliothek mit. Sie sollte immer dann verwendet werden, wenn keine weiteren I²C-Geräte am ftDuino betrieben werden und es auf einen schnellen Bildaufbau ankommt.
Das Beispiel Datei ► Beispiele ► Ftduino ► InternalOLED ► Ship3DWire dagegen basiert auf der Arduino-Wire-Bibliothek und der Bildaufbau ist hier deutlich langsamer. Dafür wird zum Zugriff auf den I²C-Bus die Wire-Bibliothek verwendet und ein Betrieb zusammen mit anderen ebenfalls durch die Wire-Bibliothek angesteuerten I²C-Sensoren ist möglich. Diese Variante der FtduinoDisplay.cpp-Bibliothek kommt auch dann zum Einsatz, wenn am OLED-ftDuino weitere ftDuinos über I²C zur Bereitstellung zusätzlicher Ein- und Ausgänge angeschlossen sind.
Das interne OLED-Display belegt die Adresse 0x3C (dezimal 60) und kann daher nicht ohne weiteres parallel mit anderen OLED-Displays unter dieser Adresse betrieben werden.
Es gibt ein paar fundamentale Unterschiede zwischen dem klassischen Arduino und dem ftDuino. In erster Linie sind dies die Schutz- und Treiberschaltungen, die beim ftDuino für die fischertechnik-Kompatibilität der Anschlüsse sorgt. Diese Schaltungen sind der Grund, warum man die Ein- und Ausgänge des ftDuino nicht mit den Arduino-üblichen pinMode() und digitalWrite()-Funktionen ansprechend kann. Diese Funktionen sind darauf ausgelegt, direkt Anschlüsse des ATmega32u4-Mikrocontrollers zu steuern und berücksichtigen nicht, dass der ftDuino zusätzliche Schaltungen beinhaltet.
Aus diesem Grund werden die fischertechnik-kompatiblen Ein- und Ausgänge des ftDuino über eigene Bibliotheken angesteuert, wie in Kapitel 9 beschrieben.
Erfahrene Nutzer können unter Umgehung dieser Bibliotheken nach wie vor auch direkt mit der Hardware des ftDuino kommunizieren. Die Schaltpläne im Anhang A liefern alle dafür nötige Information.
Zunächst sollte der ftDuino von allen Verbindungen getrennt und ausschließlich über den USB-Anschluss mit dem PC verbunden werden. Die grüne Leuchtdiode im ftDuino muss sofort aufleuchten. Tut sie das nicht, dann sollte ein anderer PC bzw. ein anderer USB-Anschluss probiert werden.
Hilft das nicht, dann ist zunächst das USB-Kabel zu prüfen. Funktionieren andere Geräte an diesem Kabel? Gegebenenfalls muss das Kabel ausgetauscht werden.
Der ftDuino wird nicht mehr vom PC erkannt und es wird kein COM:-Port angelegt.
Leuchtet die grüne Leuchtdiode am ftDuino? Falls nicht sollte wie unter 1.3.1 verfahren werden.
Leuchtet die grüne Leuchtdiode, dann sollte ein kurzer Druck auf den Reset-Taster (siehe 1.2.3) den Bootloader des ftDuino für einige Sekunden aktivieren. Erkennbar ist dies am langsamen Ein- und Ausblenden der roten Leuchtdiode wie in Abschnitt 1.2.4 beschrieben. In dieser Zeit sollte der ftDuino vom PC erkannt werden. Dies wird u.a. unter Windows im Gerätemanager wie im Abschnitt 2.1.3 beschrieben angezeigt.
Wird der ftDuino nach einem Reset erkannt, aber verschwindet nach ein paar Sekunden aus der Ansicht des Gerätemanagers oder wird als unbekanntes Gerät angezeigt, dann wurde wahrscheinlich ein fehlerhafter Sketch auf den ftDuino geladen und die Arduino-IDE ist nicht in der Lage, sich eigenständig mit dem ftDuino zu verbinden. In diesem Fall sollte man das Blink-Beispiel (siehe Abschnitt 3.1) in der Arduino-IDE öffnen, den ftDuino per kurzem Druck auf den Reset-Taster in den Bootloader-Modus versetzen und direkt danach die Download-Schaltfläche in der Arduino-IDE drücken. Sobald der funktionierende Sketch geladen wurde wird der ftDuino auch ohne manuelle Druck auf den Reset-Taster wieder von PC erkannt und der entsprechende COM:-Port taucht wieder auf.
Der ftDuino bleibt nur wenige Sekunden im Bootloader und kehrt danach in den normalen Sketch-Betrieb zurück. Zwischen dem Druck auf den Reset-Knopf und dem Start des Downloads aus der Arduino-IDE sollte daher möglichst wenig Zeit vergehen.
Um die Ausgänge zu benutzen muss der ftDuino mit einer 9-Volt-Spannungsquelle entweder über den Hohlstecker-Anschluss oder über die üblichen fischertechnik-Stecker verbunden sein. Verfügt der ftDuino über keine ausreichende 9-Volt-Versorgung, so können die Ausgänge nicht betrieben werden. Da der ftDuino selbst schon mit geringerer Spannung läuft ist dessen Funktion kein sicheres Indiz dafür, dass eine ausreichende 9-Volt-Versorgung vorhanden ist.
Ist der ftDuino über USB mit dem PC verbunden, dann versorgt er sich bei mangelhafter oder fehlender 9-Volt-Versorgung von dort. Geht der ftDuino ganz aus, sobald man die USB-Verbindung trennt, dann ist keine 9-Volt-Versorgung gegeben und es muss sichergestellt werden, dass Polarität und Spannung korrekt bzw. ausreichend sind. Gegebenenfalls muss die Batterie ausgetauscht oder der verwendete Akku geladen werden.
Es kommt vor, dass der ftDuino zwar vom PC (zeitweise) erkannt wird, sich aber einfach nicht flashen lässt. Die Ursachen dafür können vielfältig sein, in der Regel ist es aber eine der folgenden zwei Ursachen:
Mechanisch oder elektrisch instabile Verbindungen werden in der Regel von lose sitzenden USB-Kabeln verursacht. Meistens reicht es in diesem Fall, leicht am USB-Kabel zu wacheln, um den ftDuino kurz die Spannung verlieren und neu starten zu lassen. Passiert das während des Sketch-Uploads, so ist der Sketch nicht lauffähig und der ftDuino wird wie in Abschnitt 1.3.2 beschrieben nur noch nach Druck auf den Reset-Taster vom PC erkannt.
In der Regel flackert dabei auch die Power-LED etwas. In Abbildung
1.17 wurde der entsprechende Fehler provoziert, indem
während des Flashens der USB-Stecker abgezogen wurde. Die Verwendung
eines anderen USB-Kabels schafft dann in der Regel Abhilfe.
Liegt kein Wackelkontakt am USB-Port vor, dann geben die ``ausführlichen
Ausgaben'' beim Upload ggf. zusätzliche Informationen. Diese Ausgaben
werden in den Voreinstellungen aktiviert.
Eine mögliche Ausgabe sieht danach so aus:
Writing | #####################avrdude: error: programmer did not respond to command: set addr avrdude: error: programmer did not respond to command: write block ## ***failed; ***failed; ***failed; ***failed; ***failed; ***failed; ***failed; ***failed; ***failed; ***failed; avrdude: Error: butterfly programmer uses avr_write_page() but does not provide a cmd() method. *** page 127 (addresses 0x0000 - 0x007f) failed to write ***failed; ***failed; ***failed; ***failed;Hier treten mitten in der Datenübertragung Fehler auf. Am häufigsten tritt dies auf Linux-PCs auf. Ursache ist in der Regel der sogenannte Modem-Manager, eine Software, die zur Verwaltung von Modems verwendet wird und sich mit dem ftDuino verbindet, um festzustellen, ob es sich bei ihm um ein Modem handelt. Einige Tipps dazu finden sich bereits in Abschnitt 2.1.4.
Neben der dort beschriebenen Installation der Datei /etc/udev/rules.d/99-ftduino.rules hilft es oft, den Modem-Manager-Dienst per systemctrl-Kommando zunächst testweise zu stoppen:
sudo systemctl stop ModemManager.servicebzw. bei Erfolg dauerhaft:
sudo systemctl disable ModemManager.serviceDieses Problem ist nicht ftDuino-spezifisch, sondern betrifft z.B. auch den Arduino-Leonardo. Entsprechende Lösungen im Internet bei Leonardo-Problemen lassen sich daher oft auch auf den ftDuino übertragen.
Es ist möglich, dass der ftDuino sich seiner Identität nicht so ganz
sicher zu sein scheint und in der IDE statt als ftDuino
als Leonardo angeszeigt wird wie in Abbildung 1.19 beispielhaft
auf einem Linux-System zu sehen.
Das passiert, wenn man vor dem Upload eines Sketches in der IDE nicht den ftDuino als Board ausgewählt hatte sondern den Arduino Leonardo.
Dieser Zustand ist völlig unkritisch. Sobald man das Board wie unter anderem in Abschnitt 2.2.2 beschrieben auf ftDuino einstellt wird dieser nach dem nächsten erfolgreichen Sketch-Upload wieder als ftDuino erkannt.