Freitag, 24. April 2020

Adafruit Feather 32u4 mit MacOS Catalina

Wenn man versucht das Feather 32u4 von Adafruit mit seiner Arduino IDE (1.8.12) zu verwenden, läuft man auf diesen Fehler auf:

 Bad CPU type in executable

Das liegt daran, das seit MacOS 10.15 nur noch 64Bit executables ausgeführt werden können. Unglücklicherweise liefert das Boardpackage (1.4.13) von Adafruit noch 32 Bit Executables für die Ansteuerung des Boards aus.  Glücklicherweise liefert die IDE alle Tools, die man benötigt in 64 Bit mit.

En möglichst wenig invasiver Eingriff, und as Problem zu fixen sieht so aus:

  1. cd ~/Library/Arduino15/packages/arduino/tools/avr-gcc
    An dieser Stelle liegen die 32 Bit Executables.
  2. mv 4.9.2-atmel3.5.4-arduino2/ 4.9.2-atmel3.5.4-arduino2-orig
    Damit werden die 32Bit Executables verschoben.
  3. ln -s /Applications/Arduino.app/Contents/Java/hardware/tools/avr/ 4.9.2-atmel3.5.4-arduino2
    Mit diesem Kommando stellen wir die Verbindung zum den neuen 64Bit executables her, die mit der IDE geliefert werden.
Damit wurde der Compiler angepasst und man kann den Sketch übersetzen. Als nächstes muss die Kommunikation mit dem Board hergestellt werden. Dies wird mit dem Programm avrdude bewerkstelligt, was in der Auslieferung des Adafruit Packages ebenfalls nur in 32Bit verfügbar ist. Um den avrdude gegen die neue version zu tauschen kann man wie folgt vorgehen:
  1. cd ~/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin
    An dieser Stelle liegen der 32 Bit avrdude.
  2. mv avrdude avrdude-orig
    Das 32Bit Executable wird verschoben.
  3. ln -s /Applications/Arduino.app/Contents/Java//hardware/tools/avr/bin/avrdude avrdude
    Mit diesem Kommando stellen wir die Verbindung zum den neuen 64Bit avrdude her.
Jetzt sollte alles wie gewohnt in der Arduino IDE funktionieren.