Den Pentabug programmieren

von rhoio

Neulich habe ich, als mein zweites größeres Lötprojekt, einen Pentabug zusammengelötet. Nachdem zwar der Zusammenbau wunderbar mit einem Video dokumentiert ist, aber nur recht spärlich beschrieben ist, wie man das possierliche Elektroniktierchen nachher programmiert, gibt es hier eine kleine Anleitung für Linux.

Man benötigt: einen ISP-Programmer (wir haben diesen hier verwendet) mit einem 6-poligen Anschluß.

Die Software avrdude zum Flashen des Mikrocontrollers. Diese installiert ihr unter Debian/Ubuntu etc. im Terminal mit

sudo apt-get install avrdude

Die Pentabug-Software. Diese könnt ihr auf Github als Zip-File herunterladen, bequemer geht es aber, wenn man die Versionsverwaltung git installiert hat (sudo apt-get install git). Wechselt dazu im Terminal mit cd Verzeichnis in das Verzeichnis, in dem ihr die Software haben wollt. Mit dem Befehl

git clone https://github.com/c3d2/pentabug.git

legt Git ein Verzeichnis pentabug an und lädt den kompletten Inhalt des Repositories herunter. Dort liegen dann mehrere Verzeichnisse. Zum Programmieren interessiert uns eigentlich nur das Verzeichnis firmware. Mit dem Befehl ls liste ich den Inhalt auf:

ls firmware/
rhoio:~/projects/pentabug$ apps  doc  include  lib  main.c  main.lst  main.o  Makefile pentabug.elf  pentabug.hex  README.md

Das Verzeichnis apps enthält Beispiel-Programme. main.c ist das Hauptprogramm. include enthält die Header-Dateien für die Library-Funktionen, deren kompletten Programm-Code ihr in lib findet.

Im nächsten Schritt muss man den avr-dude-Aufruf im Makefile für den verwendeten ISP-Programmer anpassen. Eine schöne Erklärung der ganzen avrdude-Parameter findet sich auf LadyAda. Wir haben dazu unten vor der Zeile flash: noch ergänzt:

isp: $(PROJECT).hex Makefile
        $(AVRDUDE) -p m88 -F -c stk500v2 -P /dev/ttyACM0 -B 1 -U flash:w:$(PROJECT).hex

m88 ist das Kürzel für ATMEGA88, den Mikrokontroller des Pentabugs, stk500v2 ist das Übertragungsprotokoll und /dev/ttyACM0 das Device, an dem der Programmer hängt (zum Rausfinden anstecken und in die System-Logfiles gucken).

Bei unserem ISP-Programmer kann man Stromversorgung für angeschlossene Geräte an- und abschalten, wir haben das abgeschaltet und den Pentabug mit eingelegten Batterien an den Programmer gehängt (so muss man den Jumper nicht umstecken).

Der Aufruf make isp im Verzeichnis firmware kompiliert Hauptprogramm und die in der Zeile APPS = aufgelisteten Beispielapps und überträgt das Kompilat als .hex-Datei auf den Pentabug.

Ein längerer Tastendruck schaltet den Pentabug jetzt von einem Beispielprogramm zum nächsten. Und wer sich an „Alle meine Entchen“ sattgehört hat, kann ja gleich mal ein anderes Lied einprogrammieren…

Advertisements