Tobias Scheible
Web-Entwickler, Ingenieur & Dozent
DigiSpark - Mini Arduino

Datum: Samstag, 14. April 2018

Autor: Tobias Scheible

Kommentar(e): 0 Kommentare

Kategorie: Cyber Security

Tags: DigiSpark, BadUSB, Arduino

DigiSpark USB Development Board

DigiSpark ist ein Attiny85-basiertes Mikrocontroller-Entwicklungsboard ähnlich der Arduino-Linie, nur deutlich billiger, kleiner und direkt mit einem USB-Anschluss ausgestattet. Da der USB-Controller des DigiSpark auch als Tastatur fungieren kann, kann mit diesem Arduino kompatiblen Board das Bad-USB-Angriffszenario nachgestellt werden.

Der DigiSpark kostet je nach Händler und je nachdem, wie viele Module abgenommen werden, zwischen 2 und 8 Euro. Erhältlich ist er bei vielen Online-Händlern – darunter auch Amazon und Ebay. Durch die kleine Größe besitzt er nur wenige Pins, allerdings können darüber erstaunlich viele verschiedene Schnittstellen (z.B. I2C, SPI, USI, PWM, ADV) abgebildet werden. Eine eigebaute LED zeigt den Status bei einer Stromverbindung an und eine zweite LED kann frei programmiert werden und dient zum Beispiel dazu, ein Feedback zu erhalten.

DigiSpark Anleitung

Mit der nachfolgenden Anleitung kann die Arduino IDE eingerichtet werden, um den DigiSpark zu programmieren.

1. Schritt: Download und Installation der Arduino IDE

Gehen Sie auf die offizielle Website und laden Sie dort die für das eingesetzte Betriebssystem passende Version herunter. In diesem Beispiel arbeite ich mit einem Windows-System und wähle daher die Version „Windows Installer for Windows XP and up“ aus. Auf der nächsten Seite kann der Download mit einem Klick auf den Link „Just Download“ gestartet werden.

Arduino IDE - DigiSpark
Download der Arduino IDE – Betriebssystem wählen
Installation Arduino IDE Download der Arduino IDE – Betriebssystem wählen
Installation Arduino IDE
Download der Arduino IDE – „JUST DOWNLOAD“ bestätigen
Arduino IDE - DigiSpark Download der Arduino IDE – „JUST DOWNLOAD“ bestätigen

2. Digistump Treiber installieren

Als Nächstes müssen Sie den USB-Treiber installieren, damit Ihr Rechner die Scripte auf Ihren Digispark übertragen kann. Den „gepackten“ Treiber können Sie bei GitHub herunterladen. Entpacken Sie die Datei und führen dann die Setup-Datei DPinst.exe (32Bit Windows) oder DPinst64.exe (64Bit Windows) aus. Daraufhin wird der Treiber „Sigistump LLC Anschlüsse“ installiert.

DigiSpark Windows Treiber
Installation des Treibers
DigiSpark Treiberinstallation Installation des Treibers

3. DigitSpark Board hinzufügen

Starten Sie anschließend die Arduinio IDE. Öffnen Sie dort im Menü „Datei“ den Dialog „Voreinstellungen“ und fügen Sie im Feld „Zusätzliche Boardverwalter-URLS:“ die URL http://digistump.com/package_digistump_index.json hinzu. Bestätigen Sie anschließend den Dialog mit einem Klick auf den Button „OK“. Gehen Sie nun in den nächsten Dialog in dem im Menü „Werkzeuge“ auf das Untermenü „Board: #“ und wählen Sie die Option „Boardverwalter…“. Geben Sie nun im Dialog „Boardverwalter“ in die Suchleiste den Suchbegriff „Digistump AVR Boards“ ein und klicken im gefundenen Eintrag auf „installieren“. Danach können Sie diesen Dialog wieder schließen. Gehen Sie nun wieder in das Menü „Werkzeuge“ und in das Untermenü „Board: #“. Wählen Sie dort nun die neu hinzugekommene Option „Digispark (Default – 16.5mhz)“ aus.

Arduino IDE Eisntellungen
Zusätzliche Boardverwalter-URLS
Zusätzliche Boardverwalter-URLS Zusätzliche Boardverwalter-URLS
Digistump AVR Boards Installation
Digistump AVR Boards Installation
Arduino IDE Eisntellungen Digistump AVR Boards Installation
DigiSpark auswählen
Digispark (Default – 16.5mhz)
Arduino IDE Eisntellungen Digispark (Default – 16.5mhz)

4. Deutsches Tastaturlayout

In der Standardkonfiguration nutzt der DigiSpark das englischsprachige Tastaturlayout. Dadurch kann es zu Problemen bei der Verwendung von Sonderzeichen kommen, da bei einer Programmierung mit einer deutschen Tastatur das englische Äquivalent der Zeichen verwendet wird. Auf GitHub gibt es einen Fork des DigiStump AddOns „DigistumpArduino – Germanized Keyboard Library“. Hier kann dann die Header-Datei „DigiKeyboardDe.h“ genutzt werden und im selben Ordner wie die „.ino“ Arduino-Datei abgelegt werden. Einzige Einschränkung sind die deutschen Umlaute.

DigiSpark Beispiele

Um Ihnen den ersten Einstieg zu erleichtern, habe ich hier drei Beispiele erstellt.

1. Blinkende LED

Im ersten Beispiel lassen wir die vorhandene LED blinken. Nachdem eine setup()-Funktion erstellt wurde, die die Anfangswerte initialisiert und setzt, führt die loop()-Funktion genau das aus, was ihr Name vermuten lässt, nämlich eine Endlosschleife. Um nun die LED blinken zu lassen, muss in der setup()-Funktion der Pin der LED als Ausgabe (Output) gesetzt werden. In der loop()-Funktion wird die Ausgabe auf HIGH gesetzt, also stromleitend. Nach einer Wartezeit von 500 Millisekunden wird mit dem delay-Befehl der Strom mit LOW wieder ausgeschaltet. Danach erfolgt wieder eine Pause von 500 Millisekunden, da ansonsten die LED gleich wieder angehen würde. Sie können ein bisschen mit den Werten experimentieren und die LED schneller oder langsamer blinken lassen.

void setup() {                
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(500);
digitalWrite(1, LOW); 
delay(500);
}

2. Hallo Welt Ausgabe mit Sonderzeichen

Als Nächstes erstellen wir eine Ausgabe mit einer virtualisierten Tastatur. Um die deutsche Tastaturausgabe zu nutzen, muss am Anfang die Header-Datei „DigiKeyboardDe.h“ eingebunden werden. Dadurch steht uns der Funktionsaufruf „DigiKeyboardDe.println“ zur Verfügung. Wird das nachfolgende Beispiel auf den DigiSpark geladen, gibt die virtuelle Tastatur alle 2 Sekunden den Text „Hello World XYZ !\“§$%&/()=? [] {}<>!” aus.

 #include "DigiKeyboardDe.h"
void setup() {
}
void loop() {
DigiKeyboardDe.println("Hello World XYZ !\"§$%&/()=? [] {}<>!");
DigiKeyboard.delay(2000);
}

3. Taschenrechner unter Windows öffnen

Im letzten Beispiel wollen wir den Taschenrechner mit dem Digispark starten. Da wir die Aktion nur einmal ausführen möchten, schreiben wir die Befehle in die setup()-Funktion. Die Grundlagen zum Ausführen von Programmen stellt der Ausführen-Dialog dar. Dieser kann mit der Tastenkombination Windowstaste und R-Taste aufgerufen werden. Um eine Tastenkombination mit dem DigiSpark auszuführen, wird der Befehl DigiKeyboardDe.sendKeyStroke() verwendet. Welche Tasten möglich sind, kann direkt in der Datei „DigiKeyboardDe.h“ nachgelesen werden.

#include "DigiKeyboardDe.h"
void setup() {
DigiKeyboardDe.sendKeyStroke(0);
DigiKeyboardDe.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 
DigiKeyboardDe.println("calc");
}
void loop() {
}

Weitere Beispiele sind direkt in der Arduino IDE verfügbar. Sie finden sie unter „Datei“ > „Beispiele“. Dort gibt es dann eine spezielle Kategorie mit allen Beispiel-Codes für den DigiSpark. Viel Spaß beim Experimentieren 😉

Weitere Ressourcen

+ Offizielle Anleitung „Connecting and Programming Your Digispark“

+ Ix Artikel „IT-Sicherheit: Das Gefährdungspotenzial der Digispark-USB-Platine“

+ Digispark – die USB Rubber Ducky Alternative (Teil1)

+ Digispark – die USB Rubber Ducky Alternative (Teil2)

  • Artikel teilen:

Über Tobias Scheible

Tobias Scheible

Tobias Scheible arbeitet als wissenschaftlicher Mitarbeiter an der Hochschule Albstadt-Sigmaringen. Dort ist er als Autor und e-Tutor im Masterstudiengang Digitale Forensik tätig und leite im Bachelorstudiengang IT Security Praktika rund um das Thema Informationssicherheit. Darüber hinaus ist er Mitinitiator des Kompetenzzentrums Cyber Security Lab, welches Forschungsprojekte auf dem Gebiet der IT-Sicherheit koordiniert. Zusätzlich hält er Vorträge und Workshops zu aktuellen Themen der IT-Sicherheit.

Alle Blog-Artikel Website Facebook Twitter Xing

Kommentare

Es wurde noch kein Kommentar abgegeben.

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

nach oben