Pentabugs

Aus C3MAWiki
Zur Navigation springenZur Suche springen

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.