Im Video letzte Woche zeigten wir, wie die kleine USB-Platine „DigiSpark“ in der Arduino IDE programmiert werden kann. Das kleine Gerät ist äußerst günstig und eignet sich als etwas weniger komfortable Alternative zu professionellen Lösungen wie dem Malduino oder dem RubberDucky. Darüber hinaus kann es auch dazu verwendet werden, um Mitarbeitern in einer Sicherheitsschulung live zu zeigen, warum man unbekannte USB-Sticks nicht einfach anstecken soll.
Da im Video die Installation übersprungen wurde, möchte ich den Ablauf in diesem Beitrag noch anhand von Kubuntu 18.04 zeigen. Wer jedoch Windows verwendet, kann die Arduino IDE und die DigiSpark Treiber für Windows installieren und der Anleitung hier dennoch folgen.
Unter Ubuntu kann die IDE zwar ganz bequem über den Befehl sudo apt install arduino
installiert werden, dabei handelt es sich jedoch um eine stark veraltete Version.
Besser ist es, die IDE über Ubuntu umake
oder manuell über das tar.gz
Archiv von der Webseite zu installieren.
# Befehle
sudo apt install ubuntu-make
sudo umake ide arduino
sudo ln -s /home/USERNAME/.local/share/umake/ide/arduino/arduino /usr/bin/
Achtung: da Arduino nicht über
apt
installiert wurde, wird es auch nicht durch System-Updates aktualisiert. Um die IDE zu aktualisieren, muss derumake
-Befehl erneut ausgeführt werden.
Nach der Installation kann die IDE über die Konsole oder den Launcher ([Alt]
+[F2]
, bzw. [Alt]
+[Leer]
) mit arduino
gestartet werden. Beim ersten Start begrüßt uns das Programm unter Linux mit der folgenden Meldung.
Die benötigten Gruppenmitgliedschaft können wir einfach hinzufügen, benötigen dafür aber unser Sudo-Kennwort.
Nach wenigen Schritten startet ist die IDE einsatzbereit und zeigt das Standard-Dokument.
Für die Verwendung mit DigiSpark sind jedoch noch ein paar weitere Schritte notwendig. Dafür müssen die Einstellungen unter Datei (File) -> Einstellungen (Preferences)
angepasst werden.
Als erstes stelle ich die Sprache der IDE auf Deutsch um, lege fest, wo meine Sketches (Skripte) abgelegt werden und füge die Board-Manager-URL für DigiSpark hinzu. Der letzte Schritt ist notwendig, damit wir das benötigte DigiSpark-Board installieren können, welche Arduino braucht, um mit dem DigiSpark kommunizieren zu können.
Wer verschiedene Board-Manager-URLs hat, kann diese über den Button rechts neben der URL-Zeile verwalten.
Für das DigiSpark muss der folgende Board-Manager hinzugefügt werden.
http://digistump.com/package_digistump_index.json
Als nächstes muss das DigiSpark-AVR-Board installiert werden. Dazu rufen wir den Board-Manager über Werkzeuge (Tools) -> Board:... -> Boardverwalter (Board Manager)
auf.
Im Boardverwalter kann über die Suchfunktion nach dem Stichwort Digi
gefiltert werden. Dort sollte DigiSpark AVR Boards
auftauchen, welches installiert werden muss.
Nach der Installation ist alles bereit, um das DigiSpark Board auszuwählen und mit dem Programmieren anzufangen.
Ein Code-Beispiel von der offiziellen Wiki-Seite ist das folgende Skript, welches eine LED des DigiSparks in regelmäßigen Abständen blinken lässt. Weitere Beispiele sind unter Datei -> Beispiele
zu finden.
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(0, OUTPUT); //LED on Model B
pinMode(1, OUTPUT); //LED on Model A
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(1, HIGH);
delay(1000); // wait for a second
digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
digitalWrite(1, LOW);
delay(1000); // wait for a second
}
Das Script muss lediglich in der IDE geöffnet und über den Upload Button (→)
auf das DigiSpark geladen werden. In der Konsole wird angezeigt, zu welchem Zeitpunkt das DigiSpark am Rechner angesteckt werden muss.
Mehr zur Nutzung von DigiSpark und der Arduino IDE gibts im Video von letzter Woche zu sehen.
Klicken Sie auf den unteren Button, um den Inhalt von lastbreach.tv zu laden.
Probleme mit der Installation? Hier geht’s zum Troubleshooting Guide (englisch).