In meinem letzten Beitrag habe ich beschrieben, wie man seine Sketche auf einen ATtiny85 (oder 84, 45, 44, 25, 24) hochlädt. Dazu muss man seinen Arduino als Programmer einrichten oder sich einen anderen Programmer, wie z.B. den USBtinyISP zulegen. Eine in mancher Hinsicht bequemere Alternative, die ich hier vorstellen möchte, ist der Digispark, der original von der Firma Digistump stammt.
Dabei handelt es sich um ein Modul welches auf einem ATtiny85 basiert und direkt über den USB Anschluss programmiert werden kann. Es ist also keine SPI – Verkabelung für das Hochladen notwendig und auch kein Programmer. Da zudem die Stromversorgung über den USB Anschluss bereitgestellt werden kann, werden die Schaltungen sehr übersichtlich.
Ein weiterer Vorteil des Digispark gegenüber dem ATtiny85 ist, dass er I2C mit der Wire Bibliothek beherrscht. Dann sei noch erwähnt, dass man bei dem (echten!) Digispark sechs Pins als I/O Pins nutzen kann. Beim ATtiny85 sind es nur fünf. Dazu weiter unten mehr.
Preislich gibt es keinen großen Unterschied zum ATtiny85. Je nach Quelle und Abnahmemenge ist man zwischen knapp zwei und vier, manchmal fünf Euro dabei.
Nachteilig am Digispark ist der größere Platzbedarf und ein etwas kleinerer Speicher. Von den 8k Flash Speicher werden ca. 2k für den Bootloader verwendet. Hinzu kommt eine für Microcontroller sehr lange Bootzeit von mehreren Sekunden.
Der Digispark ist hier auf den Digistump Seiten sehr gut beschrieben. Wozu dann noch dieser Beitrag? Zum einen soll er als Schritt-für-Schritt Einführung und Überblick dienen, zum anderen möchte ich meine durchaus positive Erfahrung mit dem Modul teilen. Darüber hinaus gibt es noch ein paar speziellere Informationen zu den weitverbreiteten Klonen, die naturgemäß vom Hersteller nicht dokumentiert werden.
Pinout des Digispark
-
P0: I2C SDA, PWM („ohne Rev“: verbunden mit On-Board LED)
-
P1: PWM (Rev2, 3, 4: verbunden mit On-Board LED)
-
P2: I2C SCK, Analog In
-
P3: Analog In, USB+
-
P4: PWM, Analog In, USB-
-
P5: Analog In (dieser Pin liefert 3V, wenn er HIGH ist!)
Das ist dem ATtiny85 Pinout sehr ähnlich, was nicht verwundert, da der Digispark schließlich auf diesem basiert.

Verschiedene Versionen des Digispark
Es gibt verschiedene Versionen des Digispark. Revision 2, 3 und 4 haben eine entsprechende Kennzeichnung am USB Stecker (revx). Bei diesen Versionen ist die On-Board LED mit P1 verbunden, d.h. sie leuchtet, wenn P1 HIGH ist. Bei den Boards ohne Revisionsnummer ist P0 mit der On-Board LED verbunden. Habt ihr diese Version, dann müsst ihr die LED auslöten oder die Verbindung zu der LED kappen, wenn ihr mit I2C arbeiten wollt. Weitere Details dazu gibt es hier.
Revision 3 ist laut Digistump eine Fälschung, die man deswegen eigentlich nicht kaufen sollte, auch wenn sie prinzipiell funktioniert. Andererseits ist die Revision 3 so weit verbreitet, dass man kaum eine andere bekommt. Und so habe ich selbst auch diese Version gekauft. Sie hat nur einen Nachteil: P5 ist bei diesem Modell als Reset Pin konfiguriert und deshalb nicht ohne Weiteres als I/O Pin nutzbar. Probiert es mal aus, wenn ihr einen „rev3“ habt. Startet einen Sketch und legt P5 kurz an GND – der Digispark startet neu. Entsprechend wird auch der Blink Sketch weiter unten mit P5 nicht funktionieren. Im letzten Abschitt des Beitrages erkläre ich wie man den Mangel beheben kann und den P5 zum I/O Pin macht.
Um die Verwirrung komplett zu machen, gibt es auch Versionen ohne Revisionsnummer, die nicht original von Digistump stammen. Auch so ein Vertreter ist mir untergekommen und er funktionierte wie „rev3“.
Einrichtung der Arduino IDE für den Digispark
Auch wenn das Arbeiten mit dem Digispark sehr einfach ist, muss man doch zunächst ein paar Vorbereitungen treffen. Das ist aber in wenigen Minuten erledigt. Ich setze dabei voraus, dass ihr eine Arduino IDE mit der Version >= 1.6.6 verwendet.
Schritt 1: Treiberinstallation
Das Treiberinstallationsprogramm könnt ihr hier herunterladen. Wenn ihr, so wie ich, Windows benutzt, dann wählt auf der Seite den markierten Link:

Entpackt die Zip-Datei und führt „Install Drivers.exe“ für ein 32-Bit System aus oder „DPInst64.exe“ für ein 64-Bit System:

Schritt 2: Boardverwalter URL eintragen
Dann geht ihr in die Arduino IDE und tragt die Boardverwalter URL
„http://digistump.com/package_digistump_index.json“
in den Voreinstellungen ein:

Schritt 3: Digistump Paket installieren
Dann geht ihr in
Werkzeuge -> Board: xxxx -> Boardverwalter

… und sucht dort nach „digistump“, installiert das Paket und startet die Arduino IDE neu. Das war’s auch schon.

Den ersten Sketch hochladen
Zum Testen nehme ich einen einfachen Blink Sketch. Er unterscheidet sich nicht von einem Blink Sketch für Arduino Boards. Die Pins werden bei Verwendung von digitalWrite entsprechend ihrer „P-Nummer“ angesprochen. Das heißt: 0 ist P0, 1 ist P1, 2 ist P2, usw. Klingt trivial an dieser Stelle, ist aber bei analogRead anders.
int ledPin = 1; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }
Was die Schaltung angeht: einfacher geht es nicht. Die LED kommt an GND bzw. P1. Der Digispark wird per USB an den PC angeschlossen, allerdings erst nach Aufforderung beim Hochladen (wird gleich klarer).

In der Arduino IDE wählt ihr „Digispark (Default – 16.5mhz)“. Die Varianten mit „no USB“ und anderem Takt funktionieren aber auch. „Port“ ist ausgegraut. Keine Sorge, das gehört so, selbst wenn der Digispark eingestöpselt ist.

Wenn ihr den Sketch jetzt hochladet, bekommt ihr folgende Meldung:

Jetzt schließt ihr den Digispark per USB an und bekommt – wenn alles gut geht – folgende Meldung:

Die LED sollte nun auch blinken. Wenn ihr ein Digispark Modell der Revision 2, 3 oder 4 habt, blinkt auch die On-Board LED, da wir ja P1 als ledPin gewählt haben.
Genauso könnt ihr die fünf anderen Pins für diesen Sketch benutzen, mit der Einschränkung, dass P5 drei Volt anstelle fünf Volt liefert oder gar nicht funktioniert, weil ihr die Revision 3 oder andere Klone habt.
Langsames Booten
Erstaunlich ist, dass der Digispark nach Einschalten der Spannungsversorgung gute fünf Sekunden braucht, bis er den Sketch startet. Da ist ein ATtiny85 mit dem Standard Bootloader schneller. In meinem Beitrag über Funksteckdosen und Handsender hatte ich einen Selbstbauhandsender auf Basis eines ATtiny85 vorgestellt. Die Funktaste war dabei ein Taster der den ATtiny85 mit Strom versorgt hat und so den Funksketch gestartet hat. Würde ich dasselbe mit dem Digispark bauen, müsste ich mindestens fünf Sekunden auf meine Funktaste drücken, was nicht besonders anwenderfreundlich wäre. Zugegebenermaßen ist so eine Anwendung aber eher die Ausnahme, sodass in den meisten Fällen diese Bootzeit nicht weiter störend sein dürfte.
Analog Read mit dem Digispark
Analog Read ist an den Pins 2, 3, 4 und 5 möglich. Verwirrend ist jedoch, dass hier im Gegensatz zum Digital Read die physikalische Pinnummer nicht mit der Analog Read Nummer übereinstimmt. Diese Eigenschaft hat der Digispark vom ATtiny85 geerbt bei dem es sich genauso verhält. Die Zuordnung ist:
- P2: analogRead(1)
- P3: analogRead(3)
- P4: analogRead(2)
- P5: analogRead(0)
In meinem kleinen Beispiel dazu wird die Spannung an P2 überprüft. Überschreitet sie einen bestimmten Wert, leuchtet eine LED an P4. Der Sketch dazu sieht dann so aus:
int ledPin = 4; int analogInPin2 = 1; // analogRead(1) erfolgt an P2 void setup() { pinMode(ledPin, OUTPUT); } void loop() { if(analogRead(analogInPin2)>100){ digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } }
Und hier eine einfache Testschaltung dazu:

I2C mit dem Digispark
Wie schon erwähnt funktioniert die Ansteuerung von I2C Bausteinen direkt mit der Wire Bibliothek, was einen Vorteil gegenüber dem ATtiny85 darstellt. Als Beispiel habe ich die Steuerung des Portexpanders MCP23017 gewählt. Die gelbe Leitung an P0 ist SDA, die grüne Leitung an P2 ist SCL. Diese sind mit den entsprechenden SDA / SCL Pins am MCP23017 verbunden. Wichtig sind die 4.7 kOhm Pull-Up Widerstände an den I2C Leitungen.

Der Vollständigkeit halber hier noch ein Beispielsketch dazu (wer mehr über den MCP23017 lesen möchte, kann dazu einen Beitrag von mir hier finden).
#define MCP_ADDRESS 0x20 // (A2/A1/A0 = LOW) #include <Wire.h> #include <MCP23017.h> // meine MCP23017 Bibliothek MCP23017 myMCP(MCP_ADDRESS,5); // 5: Reset - brauchen wir hier nicht int wT = 1000; // wT = waiting time void setup(){ Wire.begin(); myMCP.Init(); myMCP.setPortMode(B11111111, A); delay(wT); } void loop(){ myMCP.setAllPins(A, ON); delay(wT); myMCP.setAllPins(A, OFF); delay(wT); myMCP.setPin(0, A, ON); delay(wT); myMCP.setPin(4, A, ON); delay(wT); myMCP.setPin(7, A, ON); delay(wT); }
P5 zum I/O Pin umfunktionieren
Beim ATtiny85 lassen sich grundsätzlich nur 5 Pins als I/O Pins nutzen. Pin 1 (PB5, RESET) des ATtiny85 ist nur über Umwege als I/O Pin einsetzbar. Das Problem ist, dass man dabei die Resetfunktion verliert und der ATtiny85 damit nicht mehr ohne Weiteres neu programmiert werden kann. Man sperrt sich sozusagen aus. Auch das lässt sich wieder beheben, aber nur mit Programmern, die über eine Hochspannungsfunktion verfügen.
Beim Digispark braucht man die Resetfunktion am P5 nicht, da die Programmierung über USB erfolgt. Somit hat man 6 I/O Pins zur Verfügung. Die Produzenten der Revision 3 und anderer Klone hingegen haben die Resetfunktion an P5 beibehalten. Wenn ihr nur 5 Pins braucht oder vielleicht die Resetfunktion nutzen wollt, dann lasst alles wie es ist. Wenn ihr hingegen alle Pins als I/O Pins nutzen wollt, dann könnt ihr das mit dieser Anleitung ändern.
Für die Aktivierung des P5 als I/O Pin bzw. die Deaktivierung der Resetfunktion muss das entsprechende Fuse-Bit (RSTDISBL) „eingeschaltet“ werden. Ich möchte hier zwei Möglichkeiten vorstellen, wie man das bewerkstelligt.
Option 1: Mit WinAVR und Arduino UNO
Das Schöne an dieser Methode ist, dass die meisten einen Arduino UNO (Nano, Pro Mini, usw. gehen auch) haben und das benötigte Programm WinAVR nichts kostet.
Als Erstes ladet ihr das Programm WinAVR z.B. hier herunter und installiert es.
Im nächsten Schritt ladet ihr den ArduinoISP Sketch aus den Beispielen auf den Arduino. Durch diese Maßnahme wird der Arduino zum Programmer.

Dann verbindet ihr den Digispark mit dem Arduino wie folgt:
- P0 –> 11
- P1 –> 12
- P2 –> 13
- P5 –> 10
Schließlich verbindet ihr noch GND mit GND, 5V mit 5V und setzt einen 10 µF Kondensator zwischen den Arduino Reset und GND (Polarität beachten: Minus des Kondensators an GND).

Dann öffnet ihr im PC ein Eingabeaufforderungsfenster. Je nachdem, ob ihr Pfade gesetzt habt oder nicht, müsst ihr vielleicht in das Verzeichnis wechseln, in dem ihr WinAVR installiert habt. Ihr gebt Folgendes ein, wobei ihr COM14 durch den Port ersetzt an dem euer Arduino hängt:
avrdude -P COM14 -b 19200 -c avrisp -p attiny85 -n
Ihr bestätigt mit Enter, gebt die nächste Zeile ein und bestätigt wieder mit Enter:
avrdude -P COM14 -b 19200 -p attiny85 -c avrisp -U hfuse:w:0x5F:m
Wenn alles gut geht, solltet ihr Meldungen ähnlich wie diese hier bekommen:

Jetzt könnt ihr den Blink Sketch von vorhin auch mit P5 als ledPin hochladen – nun blinkt die LED. Nur eben etwas weniger hell als an den anderen Pins, da P5 nur 3 Volt liefert.
Option 2: mit Atmel (Microchip) Studio und geeignetem Programmer
Was man braucht
Diese Methode ist weniger kryptisch, sie erfordert aber die Installation des recht großen, dennoch kostenlosen Softwarepaketes Atmel (Microchip) Studio (derzeit Version 7). Zusätzlich benötigt ihr noch einen kompatiblen Programmer. Atmel Studio 7 bekommt man hier. Wer tiefer in die Programmierung von Atmel Microcontrollern auf Registerebene und in „C“ einsteigen möchte, sollte sich sowieso mit diesem Programm beschäftigen. Um nur mal ein Fuse-Bit zu ändern, ist es schon ein wenig übertrieben sich dieses mächtige Werkzeug auf die Festplatte zu beamen. In einem späteren Beitrag werde ich noch einmal detaillierter auf Atmel Studio eingehen.
Die Programmer für Atmel Studio sind relativ teuer. Einer der günstigeren ist der USB ISP-Programmer von Tremex/Diamex, den ihr für ca. 20 Euro bei z.B. hier bei Amazon bekommt. Ich habe ihn ausprobiert und er funktioniert absolut problemlos mit Atmel Studio. Bei Verwendung von Windows 10 muss nicht einmal ein Treiber installiert werden.
Besser, aber auch teurer sind der AVR Dragon oder der Atmel-ICE. Ersterer ist für 50-80 Euro zu haben, letzterer ab 120 Euro. Mit diesen beiden Modellen ist auch Debugging möglich. Darüber hinaus beherrscht der Dragon HVSP (High Voltage Serial Programming) womit man den Eingriff am P5 auch wieder rückgängig machen kann. Der Atmel-ICE kann das nicht, wird dafür aber im schicken Gehäuse geliefert.
Wenn ihr in einen Programmer investiert, dann empfehle ich euch auch gleich einen Breadboardapter wie diesen hier zu besorgen:
Es erleichtert einem die Arbeit und vermeidet Fehler bei der Schaltung. Kaufen kann man so ein Teil z.B. hier oder mit 2 x 3 Pinleiste hier.
Die Schaltung
Das Anschlussschema von Programmer und Digispark sieht folgendermaßen aus:
Zu beachten ist, dass der AVR Dragon den Digispark nicht mit Strom versorgen kann. Man benötigt eine separate Stromquelle. Der günstige USB ISP-Programmer hingegen kann das, sofern die Dipschalter 1 und 2 auf „ON“ sind.
Atmel Studio 7 verwenden
Wenn ihr einen Dragon oder Atmel-ICE verwendet, sollten diese von Atmel Studio automatisch erkannt werden. Den USB ISP-Programmer von Tremex/Diamex müsst ihr zunächst integrieren. Dazu geht ihr im Menü auf
Tools –> Add Target… –> Select Tool
Wählt STK500 und den Port, dann bestätigt mit „Apply“.
In der Menüleiste findet ihr ein kleines Symbol für „Device Programming“. Klickt darauf.

Falls das Tool im nächsten Fenster noch nicht ausgewählt ist, wählt es hier im Drop-Down Menü. Als Device wählt ihr den ATtiny85. Interface ist ISP. Dann klickt auf „Apply“.
Ihr könnt dann die Versorgungsspannung überprüfen und ob die richtige Signatur vorhanden ist. Es sollte 0x1E930B sein. Geht nun auf den Menüpunkt „Fuses“.

Macht einen Haken hinter „HIGH.RSTDISBL“, klickt auf „Program“ und auf „Continue“ im aufpoppenden Warnfenster. Wenn alles geklappt hat, sollte unten in den Meldungen „Verify Registers …. OK“ stehen.

P5 sollte jetzt als I/O Pin einsatzfähig sein.
Wenn ihr Lust habt mehr über Atmel Studio 7 zu erfahren, dann haltet die Augen offen – in einem der nächsten Beiträge werde ich eine Einführung geben.
Hallo Wolfgang, erstmal großen Dank für die ausführliche Beschreibung.
Leider hänge ich jetzt ein bisschen fest. Ich bin bis zu dem Punkt mit dem Blinksketch hochladen gekommen, funktioniert auch. Doch jetzt läßt sich nichts mehr ändern, kein anderer PIN, keine andere DelayZeit. Das heißt ändern schon, doch es wird im Digispark nicht aktualisiert. Es läuft auch beim zweiten Digispark nur der ersthochgelandene Sketch. Woran könnte das liegen?
Grüße Frank Stange
Hallo Wolgang, ich habe mir die Frage eben selbst beantwortet.
Ich muß den Digispark erst kurz vorm hochladen in den USB-Anschluß stecken, da er nur ein kleines Zeitfenster zur erneuten Progammaufnahme hat.
Grüße Frank Stange
Gut, dass es jetzt geht!
Gibt es für den Digispark die möglichkeit Pins als RS232 Schnittstelle zu verwenden?
Das Board wäre Prädestiniert als RS232 Adapter mit „filter“?
Gibt es eine USB HID interface ähnlich dem Leonardo? So könnte man Knopfe als Keyboard Button Senden
Hallo Eugen, da bin ich nicht unbedingt Fachmann. Der Digispark basiert auf dem ATtiny85 und der hat kein UART, sondern nur ein USI Schnittstelle. Um seriell kommunizieren zu können, muss man da erstmal drauf aufbauen. Also ist es zumindest nicht ganz trivial. Das könnte zumindest als Startpunkt dienen:
http://www.fadstoobsessions.com/Learning-Electronics/ATTINY-Microcontrollers/ATtiny85-RS232.php
https://marcelmg.github.io/software_uart/
VG, Wolfgang
Hallo,
ich möchte den ATTINY für MIDI einsetzen, ist serielle Kommunikation mit 31250 Baud.
Dazu habe ich das gefunden: https://goetzmd.de/diy-sustain-pedal-mit-midi/
Vielleicht hilft es an der Stelle weiter. Serielle Library mit RX / TX.
Gruß,
Stefan
Vielen Dank!
Hallo Wolfgang Ewald,
nochmal Danke für die Anleitung, kurz Status, ich hab es zum laufen gebracht.
Aber ein kleiner Hinweis, es wäre ,möglich, dass das Programm avrdude wohl bei der Installation von WinAVR nicht mehr unter Win10 installiert wird, bei mir war es nicht auf der Platte. Oder es unter dem Download-Link nicht mehr dabei…
Aber egal, das Tool kurz aus dem Netz nachgeladen, und unter WinAVR abgelegt, und es ging.
Gruß
Martin
Also eigentlich kann WinAVR ohne avrdude nicht funktionieren. Es ist unter WinAVR/bin zu finden. Ich habe auch Windows 10.
Hallo Wolfgang,
danke für den Artikel. Kann man auch den Arduino-Bootloader flashen und den eigentlichen USB-Stecker zu Flashen eines Sketches nutzen?
Grüße
Peter
Meinst du den „normalen“ Bootloader für den Arduino UNO? Und dann Sketche hochladen wie beim UNO? Wäre schön wenn man sich so das Gestöpsel bei jedem Flashen sparen könnte. Das Ganze geht aber schon allein deswegen nicht, weil der Arduino (UNO) Bootloader einen ATmega328P erwartet.
Guten Morgen,
danke für die Antwort.
OK, ich dachte mit der installation von WinAVR wird das Programm avrdude mit installiert?
OK, muss ich mich beizeiten nochmals auf die Suche machen…
Gruß
Martin
Ja, avrdude wird mit installiert. Nur weiß ich nicht ob bei der Installation auch ein Pfad in den Systemvariablen gesetzt wird. Wenn nicht, dann muss man avrdude aus dem Verzeichnis aufrufen, in dem es installiert ist. Sonst kann Windows nichts damit anfangen.
Hallo und erstmal Danke für die Anleitung,
aber ich hätte da eine Frage zur Option 1.
Wenn ich das ArduionISP Sktech in meine Nano geladen habe, und dann mit der Eingabeaufforderung den Befehl „avrdude -P COM7 -b 19200 -c avrisp -p attiny85 -n“ eingebe bekomme ich die Meldung Der Befehl „avrdude“ ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
was könnte ich flasch gemacht haben?
Gruß
Martin
Hallo Martin, das heißt, dass Windows das Programm avrdude nicht findet. Du musst es entweder aus dem Verzeichnis aufrufen, in dem sich avrdude.exe befindet oder einen Pfad in den Systemumgebungsvariablen anlegen. VG, Wolfgang
Hallo, toller ausführlicher Beitrag. Ich hatte auch massive Probleme beim Upload (Win10 & IDE 1.8.13), mal klappte es mal nicht. Geholfen hat bei mir der Tipp => USB Hub mit externer Stromversorgung zwischenschalten. Jetzt klappt jeder Upload.
Wenn die Platine keinen Port kennt, funktioniert dann die serielle Schnittstelle mit USB?
Wie denn?
Du brauchst in der Arduino IDE nur den Digispark als Board auszuwählen. Es wird dann über das Betriebssystem gefunden.
Hallo Wolfgang, das ist wirklih eine sehr verständliche Anleitung. Ich versuche gerade mit WINAVR den Pin 5 neu zu konfigurieren. Leider bekomme ich ständig die folgende Fehlermeldung:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Kannst Du mir weiterhelfen? Was Mache ich falsch?
Danke
Hallo Michael, Fehlersuche kann sowieso schon schwierig sein, auf die Ferne umso mehr. Ich gehe davon aus du hast die Option 1 probiert? Ich würde erstmal nach den naheliegenden Dingen suchen: 1) Alle Kabel überprüfen (ich habe auch schon mal stundenlang einen Fehler gesucht und dann war es schlicht ein defektes Steckbrückenkabel) 2) Ist der ArduinoISP Sketch auf dem Arduino? 3) Hast du den richtigen COM Port ausgewählt (die 14 in meinem Beispiel muss man ja ersetzen) 4) Hast du den Kondensator zwischen Rest und GND (richtig herum) angeschlossen? 5) Ist die Verkabelung hinsichtlich der Anschlüsse korrekt? So sehr viel mehr kann man eigentlich nicht verkehrt machen. Viel Glück bei der Suche.
Liebe Gruppe vielleicht kann mir wer weiterhelfen.
Ich würde gerne am PIN 1 oder Pin 2 die serielle Info von einem RF433MHZ Empfänger abfragen und dann einen bestimmten Key über HID USB ausgeben.
DigiKeyboard.h funktioniert, aber geht auch gleichzeitig die serielle Abfrage ?
Danke
Hallo Wolfgang,
danke für diese Anleitung.
Habe IDE 1.8.2 unter WIN10
Microluneus als Programmer, Driver installiert usw.
Er kompiliert und geht sofort auf Hochladen fertig
Das Board am USB wird ignoriert, die Zeitschleife wird nicht runter gezählt
Hast Du einen Tipp
Grüße Jörg
Erstmal eine Frage, die dich hoffentlich nicht beleidigt: hast du den Digispark richtig herum reingesteckt? Leuchtet die LED auf dem Teil? Das wäre das einfachste.
Was passiert, wenn du den Digispark einfach so in den USB steckst, also ohne einen Sketch hochzuladen? Taucht er im Gerätemanager auf? Du solltest ihn unter „libusb-win32 Usb Devices“ als „Digispark Bootloader“ sehen. Wenn das nicht der Fall ist, dann hat schon die Treiberinstallation nicht geklappt. Das ist dann schwierig aus der Ferne zu diagnostizieren, wo das Problem liegt. Aber immerhin ist es auf den Teil eingegrenzt. Dann würde ich die Installation nochmal wiederholen.
Hallo,
eine kurze Frage zum P5 des Digisparks. Wenn der P5 als reset funktioniert, kann man dann auch die analogRead() Funktion nicht nutzen?
Grüße
Frank
Hallo Frank, analogRead geht nicht, allein schon aus einem Grund. Stelle dir vor du hast 0V an P5 – woher sollte der Digispark dann wissen ob du die 0V auslesen oder resetten möchtest? Grüße, Wolfgang
Hallo Wolfgang,
zuerst möchte ich ein großes Lob loswerden, Kaum eine Anleitung die
man im Netz über dieses Thema findet, ist so gut beschrieben. *****
Ich versuche schon seit einigen Stunden das Digispark USB- Platinchen
ansprechen zu können.
Kann es sein, dass dies unter Windows 10 nicht funktioniert oder was muss
da beachtet werden.
Grüße
Micha
Hallo Micha,
bei mir ging es unter Windows 10. Fehlersuche auf die Entfernung ist natürlich schwierig. Die Treiber hast du sicherlich wie beschrieben installiert!? Vielleicht mal den Rechner neu starten (Standard Tipp aller IT Experten). Manchmal arbeiten Treiber erst nach Neustart richtig. Was anderes fällt mir spontan nicht ein.
Viel Glück, Wolfgang
Ich dachte auch bis vor kurzem: Windows & DigiSpark => geht nicht.
Bei mir war der Fehler, dass ich auf die „Meldungen“ geachtet habe, die Windows macht („Klingeln“ beim Einstecken und Abziehen von USB-Geräten): Die sind in dem Zusammenhang einfach irreführend! Ein DigiSpark ist auch (normalerweise) *überhaupt kein* USB-Gerät.
Ich vermute bei mir folgende „Fehlerquellen“:
1) Windows-USB-„Meldungen“
(Standardmäßig „bimmelt“ Windows, wenn ein USB-Gerät eingesteckt oder abgemeldet wird) Grob gesagt: Beim DigiSpark sind die irreführend/irrelevant.
Am besten ignoriert man sie.
2) USB-Treiber-Installation
Bei Windows macht es einen Unterschied, in welchem Port ein Gerät eingesteckt wird. Genau kenne ich es auch nicht, aber im Zweifelsfall sollte man im Gerätemanager (ohne Admin-Rechte) „prüfen“, ob beim Einstecken desDigiSpark vorübergehend ein Zweig „libusb-Devices“ o.ä., darunter ein Gerät „Digispark Bootloader“ erscheint. Wenn das nach wenigen Sekunden verschwindet: Gut!
3) Sketch-Upload
Früher hat die Arduino-IDE sogar noch einen COM-Port angegeben (totaler Blödsinn). Wichtig ist die – für „normale“ Arduinos ziemlich unsinnige Reihenfolge:
IDE zum Upload anweisen, während der DigiSpark *nicht* eingesteckt ist. Erst, wenn im Meldungs-Fenster gebeten wird, den DigiSpark einzustecken, das auch tun. Nach der Abschlussmeldung „>> Micronucleus done. Thank you!“ kann man den DigiSpark abziehen – oder auf Neustart warten.
Wann Windows währenddessen neue/verscheindende USB-Geräte meldet, ist egal.
Hallo Monte, stimmt, da war ein Fehler. Ich habe ihn korrigiert. Vielen Dank für den Hinweis!
Schöne Grüße, Wolle
hi danke für die Anleitung.
Im Text ist ein Fehler 😉
Und zwar steht bei dem Abschnitt zum aktivieren des P5 als I/O mit Arduino UNO:
„Dann verbindet ihr den Digispark mit dem Arduino wie folgt:
P0 –> 11
P1 –> 12
P2 –> 13
P3 –> 10“
Aber P5 auf 10 wäre richtig im Bild vom Arduino ist es dann richtig.
Trotzdem Danke für die Tolle Arbeit
Schöne Grüße