Pentabugs
Der Pentabug ist ein kleiner Bausatz für junge Hacker, der vom C3D2 erfunden wurde. Projektseite: https://github.com/c3d2/pentabug
Diese Seite dient primär der Dokumentation des Flash-Vorgangs für das Chaos macht Schule Team.
Firmware selbst kompilieren (optional)
Schritt 0 - Installation der Software
Um die neuste Version des Quellcodes herunterzuladen und zu kompilieren, brauchen wir einen Git-Client und einen AVR-Crosscompiler.
Die bekommen wir je nach System mit folgenden Kommandos:
Linux: sudo apt-get install git-core avr-libc binutils-avr gcc-avr build-essential
OS X (MacPorts): sudo port install git avr-binutils avr-gcc avr-libc
Hinweis: Ggf. muss für OS X die kostenlose Applikation XCode aus dem App-Store installiert sein.
Schritt 1 - Code herunterladen
Als erstes laden wir uns mit folgendem Kommando die neuste Version des Codes herunter:
git clone https://github.com/c3d2/pentabug.git
... und wechseln danach in das entsprechende Firmware-Verzeichnis:
cd firmware
Schritt 2 - Code kompilieren
Jetzt müssen wir nur noch unser fertiges Firmware-File "pentabug.hex" zusammenbauen:
make pentabug.hex
Mikrocontroller flashen
Benötigt werden:
- Ein zu flashender Mikrocontroller (wer hätte das gedacht :O)
- Im Falle der Pentabugs sollte auf diesem irgendwas mit "ATMEGA88" stehen
- Ein Atmel Evaluationsboard
- Einen USB-ISP (USB-In System Programmer => ein USB-Gerät, dass es ermöglicht, die Firmware in einem Mikrocontroller zu überschreiben) wie z.B. MiniProg oder Usbasp
Die letzten beiden Sachen befinden sich in einer kleinen Kartonbox in Stean's Kiste.
Schritt 0 - Installation der Software
Falls noch nicht geschehen, muss noch die Software "avrdude" installiert werden, die das Flashen ermöglicht.
Linux: sudo apt-get install avrdude
OS X:
- MacPorts:
sudo port install avrdude
- Homebrew:
brew install avrdude
Schritt 1 - Anschließen der Komponenten
Als erstes Mikrocontroller in den entsprechenden IC-Sockel auf dem Evaluationsboard stecken.
Wichtig: Darauf achten, dass die Einkerbung des Chips mit der Zeichnung auf dem Board übereinstimmt!
Danach auch noch das Kabel des USB-ISPs in den "ISP"-Anschluss auf dem Board stecken.
Schritt 2 - Flashen des Mikrocontrollers
Wenn du nun den USB-ISP in den USB-Anschluss deines Computers steckst, sollte zunächst nur die rote "Netz"-LED auf dem Board leuchten. Nun geht es an die Software-Seite.
Nun brauchen wir die Firmware-Datei "pentabug.hex", die auf den Chip übertragen werden soll. Die hast du entweder durch den vorherigen Abschnitt selbst kompiliert oder alternativ hier heruntergeladen.
Den Flashvorgang startest du durch Aufruf der folgenden Kommandozeile:
avrdude -p m88 -F -c usbasp -v -v -U flash:w:pentabug.hex
Dabei sollte nach kurzer Zeit die LEDs auf dem USB-ISP anfangen zu blinken und im Erfolgsfall folgende Ausgabe produziert werden:
avrdude: auto set sck period (because given equals null) avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e930a (probably m88) avrdude: safemode: hfuse reads as DF avrdude: safemode: efuse reads as F9 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: auto set sck period (because given equals null) avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: reading input file "pentabug.hex" avrdude: input file pentabug.hex auto detected as Intel Hex avrdude: writing flash (6418 bytes): Writing | ################################################## | 100% 3.70s avrdude: 6418 bytes of flash written avrdude: verifying flash memory against pentabug.hex: avrdude: load data flash data from input file pentabug.hex: avrdude: input file pentabug.hex auto detected as Intel Hex avrdude: input file pentabug.hex contains 6418 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 1.92s avrdude: verifying ... avrdude: 6418 bytes of flash verified avrdude: safemode: hfuse reads as DF avrdude: safemode: efuse reads as F9 avrdude: safemode: Fuses OK (E:F9, H:DF, L:62) avrdude done. Thank you.
Zum Schluss sollten auch die beiden LEDs 1 und 2 auf dem Board leuchten. Das ist das Zeichen, dass alles geklappt hat und die Pentabug-Firmware aktiv ist.