Digispark-Arduino - erste Schritte       

von Ralf Beesner                
Elektronik-Labor   Projekte   AVR 




Digistump-IDE installieren

Ein (englischsprachiges) Wiki findet man unter http://digistump.com/wiki/digispark. Die neueste Version der von Digistump erweiterten Arduino-Software gibt es unter https://github.com/digistump/DigistumpArduino/releases. Im Moment findet gerade der Wechsel von Version 1.0.4 auf Version 1.5.8 statt und ein paar Digistump-Libraries sind noch buggy, aber es wird heftig dran gearbeitet und die Software sollte sich in ein paar Tagen stabilisieren. Im Moment ist noch Version 1.5.8B aktuell, Version 1.5.8C sollte weitgehend fehlerfrei sein.

Der Arduino-Code wurde unmodifiziert übernommen, es sind lediglich Digistump-Ergänzungen hinzugekommen. Man kann also damit auch herkömmliche Arduino-Boards ganz normal programmieren. Die Menüs unter "Sketch - Library importieren" und "Werkzeuge - Board" sind aber schon in der unmodifizierten Arduino-Version ziemlich überladen, und in der Digispark-Version wird es noch schlimmer.

Es ist aber auch möglich, die originale Arduino-Version und die Digistump-Version in unterschiedliche Ordner zu installieren und mit etwas Umsicht parallel zu betreiben. Dann bleibt die Arduino-Version "sauber", und die Digispark-Version lässt sich entschlacken - dazu weiter unten mehr. Man muss nur wissen, dass immer die zuletzt zurückgeschriebene Konfiguration gilt. Nach einem Wechsel zwischen beiden IDEs muss man also unter "Werkzeuge - Board" das Arduino- bzw. Digispark-Board erneut auswählen (ggf. auch den Programmer unter "Werkzeuge - Programmer").

Arduino-1.0.x und Digistump-Arduino-1.5.x sollten sich bei einer Parallelinstallation überhaupt nicht in die Quere kommen, da sie ihre Konfigurationen in unterschiedliche Ordner speichern.

Unter Linux installiert man die Digistump-Version am besten in seinen Home-Ordner statt nach /usr/local. Sie speichert ihre Konfiguration im Unterverzeichnis ~/.arduino15 des Home-Ordners und die Sketches standardmässig in den Ordner ~/Arduino; man kann das aber unter "Datei - Voreinstellungen" in den klassischen Speicherort ~/sketchbook ändern.

Treiberinstallation entfällt unter Linux; damit man beim Zugriff auf die Hardware keine Rootrechte benötigt, muss man aber die Datei 90-digispark.rules in den Ordner "/etc/udev/rules.d" kopieren (hierzu sind Rootrechte erforderlich). Die Datei wird im Moment nicht mit dem Linux-Installationspaket mitgeliefert, man muss sie sich hier herauskopieren.

Unter Windows 7 werden mit den Digistump-1.5.x-Versionen alle erforderlichen Treiber komfortabel mitinstalliert. Die (echten) Speicherorte unter Windows sind etwas verstreut; unter Windows 7 gelten z.B. folgende Pfade:

Sketches:      C:\Users\ralf\Documents\Arduino
Einstellungen der IDE:      C:\Users\ralf\AppData\Roaming\Arduino15\preferences.txt
Temporäre Dateien:      C:\Users\ralf\AppData\Local\Temp

Ich weiss aber nicht, ob man die Ordner als Windows-"Durchschnittsnutzer" überhaupt zu sehen bekommt - eine der ersten Änderungen, die ich auf einer Windowskiste mache, ist das Freischalten der Ansicht auf Systemordner bzw. -dateien und versteckte Ordner bzw. Dateien.

Die Arduino-IDE legt übrigens zahlreiche temporäre Dateien an und räumt sie nicht selber wieder weg. Falls das Betriebssystem den Temp-Ordner nicht automatisch aufräumt, sollte man das von Zeit zu Zeit "händisch" vornehmen.


Sketches schreiben und uploaden

Die Digital-Eingänge werden NICHT umgemappt. Sie sind mit 0 bis 4 bezeichnet und entsprechen den Attiny-Ports B0 bis B4. Gleiches gilt für die Analog-Eingänge 0 bis 3, sie liegen an den Attiny-Ports B5, B2, B3 und B4.

Die meisten Arduino-Libraries funktionieren nicht, aber knapp dreissig Digispark-Libraries sind ja bereits vorinstalliert.

Unter "Tools - Board" konnte man bei den Versionen 1.0.x wählen, mit welcher Taktrate der Sketch laufen soll. Der Takt stammt immer aus der PLL, aber der Vorteiler wird im Hintergrund passend gesetzt und die Delays ensprechend berechnet. Bei der neuen Version 1.5.8 ist diese Wahlmöglichkeit entfallen, möglicherweise findet sie durch ein Update ihren Weg auch in die neue Version.

Beim Uploaden des Sketches ist die Vorgehensweise etwas anders als gewohnt: Digispark vom USB abstecken, Upload-Icon anclicken, Digispark einstecken und das "Kleingedruckte" im unteren schwarzen Fenster lesen - die Arduino-IDE meldet manchmal eine erfolgreiche Übertragung, obwohl im "Kleingedruckten" eine Fehlermeldung steht (das hängt wohl damit zusammen, dass der micronucleus-Bootloader nicht direkt mit der Arduino-IDE kommunizieren kann und Digistump sich einen workaround ausgedacht hat).

Das Ein und Ausstecken des Boards ist nervig und USB-Stecker sind meines Wissens nur für ein paar hundert Steckvorgänge spezifiziert. Daher finde ich es besser, den Reset-Pin nicht "wegzufusen", sondern den Atiny per Resettaster in den Bootloader zu schicken, statt die USB-Buchsen zu quälen (Olimex sieht das offenbar auch so).


Feinarbeiten:

Einige Einstellungen der Arduino-IDE sind nicht über den Voreinstellungen-Dialog zugänglich, sondern nur durch Editieren der Datei "preferences.txt" (der Speicherort wurde weiter oben bereits erwähnt). Ich habe z.B. die TABsize von 2 auf 4 geändert, damit die Einrückungen im Code besser erkennbar werden, ausserdem die Anfangsgröße des Arduino-Fensters und die Höhe des Meldungsfensters:

console.length=1000
console.lines=9
editor.tabs.size=4 (funktioniert leider in Version 1.5.8 nicht mehr)
editor.window.height.default=1000
editor.window.width.default=1000


Die Digispark-Arduino-IDE ist durch die neu hinzugekommenen Menüeinträge sehr unübersichtlich. Ich habe daher eine Parallelinstallation Arduino-IDE und Digistump-IDE vorgenommen und in der Digistump-Version die Hardwareunterstützung und die Libraries für die Arduino-Boards und das Digistump DigiX entfernt, indem ich folgende Ordner gelöscht habe:

arduino-1.5.8-32bit/hardware/arduino
arduino-1.5.8-32bit/hardware/digistump/sam (das ist die Unterstützung für das ARM-basierte DigiX-Board)

Unter arduino-1.5.8-32bit/libraries habe ich auch fast alle Libraries entfernt.

Auch der Ordner arduino-1.5.8-32bit/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1 musste dran glauben (dort liegt der Compiler für die ARM-basierten Boards).

Löscht man den gesamten Ordner arduino-1.5.8-32bit/examples, startet die IDE nicht mehr. Man kann aber alle Beispielordner bis auf arduino-1.5.8-32bit/examples/01.Basics löschen.

Durch die Löschaktion verschwinden die Menüeinträge für die entfernten Komponenten und die IDE sieht deutlich übersichtlicher aus.




Elektronik-Labor   Projekte   AVR