Digispark ATtiny85 unter macOS programmieren
Für die Programmierung von und mit Microcontrollern (MCUs) gibt es mittlerweile unzählige
leistungsfähige Development-Boards.
Die beliebten ESP3266 Boards und unzähligen Arduino-Derivate sind für ein paar EUR
erhältlich. Sie eignen sich hervorragend für viele Hardware-Projekte und stecken
z.B. hinter dem “Internet of Things” (IoT) aber auch in vielen 3D-Druckern,
Robotern, Drohnen, Wetterstationen und elektronischen Gadgets jeglicher Sinnhaftigkeit
lassen sie sich gut einsetzen.
Neu in meiner “Graffelkiste” ist das Open Source Digispark ATtiny85 Development Board, dessen Entwicklung 2012 über die Crowd-Funding-Platform Kickstarter mit mehr als 300 000 US Dollar (bei angestrebten 5000 US Dollar) finanziert wurde.
Es ist schön klein (ungefähr so groß wie eine 1 EUR Münze), verfügt dennoch über 6 I/O Pins, verbraucht wenig Strom und ist kompatibel mit der Arduino-Platform.
Das Digispark gibt es in diversen Ausführungen, momentan z.B. für zwischen 2-4 EUR bei Amazon:
- Digispark Kickstarter Attiny85 Module Micro USB Development Board for UNO
- AZDelivery 5 x Digispark Rev.3 Kickstarter mit ATTiny85
Klingt gut? Dachte ich mir auch :) und habe mir daher 3 dieser Boards besorgt - davon ausgehend man kann eigene Programme problemlos via Arduino IDE darauf flashen. Kann man wohl auch - unter Linux wie Windows, aber nicht unter einem aktuellen macOS?
Unter MacOSX Catalina 10.15.6 wurde das Digispark am USB-Port zwar erkannt, aber der Upload eines Programms in der Arduino IDE schlug fehl :-/ :
arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-g++: bad CPU type in executable
Error compiling for board Digispark (Default - 16.5mhz)
Was daran liegt, dass das offizielle Digispark board’s package mittlerweile anscheinend unmaintained ist und macOS natürlich den Support für 32bit executables aus seinem Betriebssystem entfernt hat.
Glücklicherweise gibt es aber einen modernisierten Community-Fork, welcher dieses Problem löst.
Um den Digispark unter MacOS Catalina mit der Arduino IDE zu flashen braucht es folgende Schritte in der IDE:
unter
Arduino/Settings/Additional Board Manager
diese URL hinzufügen hinzufügen (und die Original URLhttp://digistump.com/package_digistump_index.json
entfernen, so man diese - wie ich - fälschlicherweise verwendete)via
Tools/Boards Manager...
dieDigistump AVR Boards
installieren bzw. updatenunter
Tools/Board/Digistum AVR Boards/
denDigispark
auswählenunter
Programmer
denmicronucleus
auswählen
Jetzt kann man testen ob alles wie gewünscht funktioniert.
Zum Beispiel in dem man folgendes “Hello World”-Programm auf das Board flasht (Upload
):
// Blinkyplant ;)
int ledPin = 1;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Wichtig: Den Digispark erst nach dem Compilieren bzw. der Aufforderung “Please plug in the Device” an den USB-Port stöpseln (alternativ: einmal aus- und wieder einstecken)! Im Unterschied zu normalen Arduino-Boards connected der Digispark für ca. 5 Sekunden im “Bootloader”-Mode (als “Vendor-Specific-Device” auf dem USB-Bus sichtbar) - dies ist die Zeit in der man flashen kann - und disconnected danach um das momentan aufgeflashte Programm laufen zu lassen.
Happy hacking! (:
- Literatur & weiterführende Links
Arduino IDE crashes immediately upon opening - Mac OS 11.2.1 #11267