Christians Bastel-Laden

Hilfe beim Firmwareupload

Arduino-IDE

Für den Upload der Firmware benötigt man auf jeden Fall die Arduino-IDE. Diese sollte immer in der aktuellsten Version installiert sein.
Generell muß der ATMEGA328 einen Bootloader (UNO, Duemilanove etc.) installiert haben, sonst funktioniert der Firmware-Upload nicht.

Zum Arduino-Projekt

Achtung!

Die aktuellen Treiber von FTDI für Windows legen billige FTDI-BUBs aus China-Importen lahm!

Artikel bei Heise

Hilfe beim Firmware-Upload

Vorbereitende Arbeiten

Ein oft auftretendes Problem ist das Aufspielen der Firmware auf den ATMEGA328-Chip. Hier ein paar Hinweise, damit es klappt.

Zunächst einmal ist die Uhr-Hardware kompatibel zu der Arduino-Welt. Das bedeutet, die Firmware wird mit der Arduino-IDE über ein FTDI-Kabel aufgespielt. Wenn man also Probleme hat, kann man auch eine der ungefähr fünf Fastallionen Stellen im Netz aufsuchen, die das Thema Upload Sketch Arduino behandeln.

Man benötigt also zunächst: die Arduino-IDE in der neuesten Version (http://arduino.cc/en/Main/Software).

Außerdem ein FTDI-Kabel, auch FTDI-BUB oder USB-BUB genannt, mit 5 Volt...

Achtung! FTDI-Kabel/-Adapter vom Chinesen nebenan machen Probleme! Ich habe Dich gewarnt! (http://www.heise.de/make/meldung/FTDI-Proaktive-Fake-Chip-Abwehr-2430780.html)

Bevor man jetzt versucht, die ganze, große, komplizierte Firmware aufzuspielen, testet man erst einmal ein kleines Probeprogramm. In der Arduino-Welt heißen diese Programme übrigens Sketch. Also...

  • IDE starten
  • Beispiel öffnen (→Datei→Beispiele→01.Basics→Blink)

Es öffnet sich ein Fenster mit dem Blink-Sketch, der den Pin Nummer 13 im Sekundentakt ein- und ausschaltet.

Um das Programm auf den Chip zu spielen, muß man den Computer über das FTDI-Kabel mit dem Board verbinden. Wie herum? Auf dem Adapter ist eine Seite des Steckers mit GND bezeichnet. An einem FTDI-Kabel hat der Stecker farbige Käbelchen, dort ist GND das schwarze Kabel. Auf den Boards ist diese Seite mit GND, BK (für Black = Schwarz) oder einem Pfeil markiert. Bevor man den FTDI-Stecker einsteckt, zieht man natürlich andere Stromversorgungen ab! Bei manchen Boards, wie dem NachBau_V03, muß man den Jumper bei dem Hohlstecker von Wall (= Wand, externe Stromversorgung) auf USB umstecken.

Jetzt kann man den Sketch kompilieren (Knopf mit Häkchen) und hochladen (Knopf mit Pfeil). Leider gibt es dabei eine kleine Hürde: man muß der Arduino-IDE sagen, auf welchem seriellen Port (Windows: COM-Port) der FTDI-Stecker hängt. Außerdem muß man das Board und den Prozessor wählen.

  • Der Prozessor ist einfach: ATMEGA328.
  • Das Board ist eigentlich der Bootloader. Bei den ATMEGAs aus Christians-Bastel-Laden ist das immer Arduino Duemilanove, bei Elmotex Arduino UNO und bei anderen muß man probieren oder auf der Seite des Verkäufers nachlesen, was auf dem Chip ist.
  • Beim seriellen Port hilft nur probieren, oder man startet die IDE mal ohne eingesteckten FDTI-Stecker und schaut nach, was in der Liste steht. Dann steckt man den Stecker ein und schaut, welcher Port neu dazu gekommen ist.

Wenn man den Blink-Sketch erfolgreich hochladen kann, ist die erste Hürde genommen! Die Verbindung vom PC zum Board steht! Vorher lohnt es sich aber auch gar nicht weiter zu machen!

Die Uhr-Firmware

Jetzt kann man anfangen, sich um die echte Firmware zu kümmern.

Dazu braucht man...

Wenn man die Libraries von Github herunterlädt, haben sie ein -master am Dateinamen hängen. Dieses -master muß aus dem Dateinamen des ZIP-Files bzw. des entpackten Ordners gelöscht werden.

Die Firmware entpackt man und benennt den Ordner gegebenenfalls nach Qlockthree um. In ihm muß sich direkt der Qlockthree.ino-Sketch und andere Dateien befinden. Diesen Ordner verschiebt man dann in den Sketchbook-Ordner. Wo dieser Ordner ist, kann man in der Arduino-IDE unter Arduino→Einstellungen nachsehen.

Die Libraries importiert man, in dem man sie in der Arduino-IDE unter Sketch→Bibliothek importieren...→Bibliothek hinzufügen aufnimmt.

Am Ende muß der Inhalt des Sketchbook-Folders wie folgt aussehen.

Diese Struktur ist wichtig! Es dürfen keine gleichlautenden Unterodner in den einzelnen Library-Ordner sein! Als Beispiel: Im Ordner LedControl muß direkt LedControl.h liegen, nicht noch mal ein Unterordner LedControl!

Sketchbook-Folder

Jetzt kann man die Firmware öffnen, kompilieren und hochladen. Nicht vergessen: in der Configuration.h kann man einstellen, welche Hardware man hat.

Viel Erfolg!

P.S.: Der LPD8806-Library-Fix

Leider hat die LPD8806-Library von Adafruit einen Bug, der das erfolgreiche Kompilieren im Moment verhindert. Ich habe den Bug gemeldet, weiß aber nicht, wann er gefixt wird. Solange muß man es halt selber tun. Dazu...

... öffnet man die Datei LPD8806.h aus dem Ordner Sketchbook-Folder→libraries→LPD8806 und fügt vor der Zeile

class LPD8806 {

die beiden Zeilen

#ifndef __LPD8806__H__
#define __LPD8806__H__

ein. Am Ende fügt man die Zeile

#endif

ein. Die Klasse sieht dann etwas eingedampft so aus:

[... Anfangscode...]
#ifndef __LPD8806__H__
#define __LPD8806__H__

class LPD8806 {
[... weiterer Code...]
};

#endif

Kompliziert? Ja, aber hey - jetzt bist Du schon fast ein echter Hacker!