HOWTO

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.

not a robot, 2021 #phoneonly

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:

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:

  1. unter Arduino/Settings/Additional Board Manager diese URL hinzufügen hinzufügen (und die Original URL http://digistump.com/package_digistump_index.json entfernen, so man diese - wie ich - fälschlicherweise verwendete)

  2. via Tools/Boards Manager... die Digistump AVR Boards installieren bzw. updaten

  3. unter Tools/Board/Digistum AVR Boards/ den Digispark auswählen

  4. unter Programmer den micronucleusauswä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

TEENSY TINY ARDUINO BOARD WITH AN ATTINY85 (hackaday,2012)

Ein Arduino so groß wie eine Euro-Münze (golem, 2012)

Digistump Wiki

Arduino IDE crashes immediately upon opening - Mac OS 11.2.1 #11267

bad CPU type in executable #105

Improved version of Digistump avr core for Arduino