Sebastian Fnordlicht Doku
From Lochraster
[edit] Fnordlicht Doku
[edit] Vorhandene Infos zum Fnordlicht
- Die Homepage: http://www.lochraster.org/fnordlicht/
- Das Wiki nebenan: http://wiki.lochraster.org/wiki/Fnordlicht
- http://koeln.ccc.de/ablage/fnordlicht/ - Hier gibts einen Artikel und ganz unten auch noch Fotos!
- Die Aufbautipps vom U23: http://wiki.koeln.ccc.de/index.php?title=U23_2005/fnordlichtAufbauTips bzw. alles auf http://wiki.koeln.ccc.de/index.php?title=Category:U23_2005
- Die Mailingliste: http://mail.koeln.ccc.de/pipermail/fnordlicht/
und natürlich
- google: fnordlicht
[edit] Allgemeine Infos
- Ein kleiner Lötkurs (inhaltiche Qualität bedarf Bewertung eines Experten): http://www.elexs.de/loet1.htm
[edit] Bestellung
Ich habe am 21.11.07 folgendes bestellt (http://ws.lochraster.org/ws/index.htm Lochraster Shop):
Bestellnummer | Titel | Preis (EUR) |
SN1-FL1 | Einfaches Steckernetzteil für das Fnordlicht | 6,50 |
FL1-BAUSATZ | Fnordlicht Bausatz | 49 |
G1-FL1 | Blumentopf als Gehäuse für des Fnordlicht | 2 |
SLC1-BAUSATZ | Seriell Pegelwandler 0-5V nach RS232. Komplettbausatz | 12 |
Versandkosten | 6 | |
Summe | = 75,50 |
Ein paar Tage später ist alles gut verpackt angekommen.
[edit] Was man nicht im Shop bekommt
- Verbindung PC <-> Atmel: ISP-Kabel
- Verbindung PC <-> Pegelkonverter: RS232->RS232, USB->RS232
- http://ws.lochraster.org/ws/index.htm SLC1-BAUSATZ
- Verbindung Pegelkonverter <-> Fnordlicht: 4 adrig, einfach selbst "herzustellen", siehe Bilder
- Buchse/Stecker zur Stromversorgung seitens des Fnordlichts. Lösungen: 1. Kabel abkneifen und direkt anlöten. 2. passende Buchse/Stecker besorgen, siehe Bilder.
[edit] Aufbau
Ich hatte keine Probleme damit, das Fnordlicht zusammenzubauen. Eine Dauer kann ich nicht angeben, da ich immer nur mal wieder ein bisschen gemacht habe. Die Bauteile sind alle relativ einfach zu verlöten, auch wenn ich mir manchmal größere Lötaugen gewünscht hätte. Der Tesa-Trick hat gut funktioniert. Wenn man sich nach den Bildern richtet, hat man wirklich keine Probleme.
[edit] Tipps
Einbau der LEDs: Damit die LEDs schön flach auf der Platine aufliegen, habe ich die Platine in die Hand genommen und mit dem Zeigefinger die LED festgehalten. Da sie laut Liste hitzeempfindliche Teile sind, wollte ich sie schonen. Ich habe daher in aller schlechtester Lötmanier Lot auf den Lötkolben aufgebracht und dann frei schwebend jeweils ein Beinchen fixiert. Nachdem das geschehen war, habe ich die Platine in meine helfende Hand eingespannt und konnte nun die anderen Beinchen ordentlich verlöten. Dann habe ich mir nochmal die nur mäßig verlöteten ersten Beinchen vorgenommen. Ich bin mit dem Ergebnis ganz zufrieden. Keine LED ist kaput gegangen und alle sitzen schön flach.
[edit] Erstes Einschalten
Auf fnordlicht control stecke man den Jumper PGM in die Position 1-2. Dann verbindet man alle Platinen, wobei man darauf achten muss, dass fnordlicht display richtig herum sitzt, DSIGNAL auf DSIGNAL und DPOWER auf DPOWER. Diese 180-Grad-Symmetrie ist verführerisch. Ich habe mir einen kleinen Punkt mit Edding als Hilfe gemacht. Wenn man nun die Stromversorgung herstellt, sollte ein sehr schönes Demo-Programm starten. Die Farben wechseln von Rot nach Grün nach Blau. So kann man gut sehen, ob alle LEDs richtig eingebaut sind.
[edit] Probleme
Ich hatte das Problem, dass die roten LEDs immer an sind. Um herauszufinden, wo das Problem liegt, habe ich die Spannung auf fnordlicht control zwischen DPOWER 2 (GND) und DSIGNAL 3 (Rot) gemessen. Tatsächlich lag hier immer eine konstante Spannung an. Das Problem lag also nicht bei fnordlicht display. Dann habe ich die Spannung zwischen DPOWER 2 und der Basis der drei Transistoren T1, T2, T3 überprüft. Bei den beiden für Grün und Blau war alles in Ordnung, nur bei Rot lag eine zu hohe Spannung an, so dass der Transistor immer durchließ. Bei genauer Betrachtung stellte ich fest, dass eine Lötstelle von R13 verdächtig aussah. Kurzes Nachlöten brachte den gewünschten Erfolg. Das Fnordlicht wechselte nun wirklich zwischen allen drei Farben.
[edit] Betrieb
[edit] Ansteuerung
[edit] Erste Tests
Als erstes kann man versuchen das vorinstallierte Programm per Hand anzustossen. Dazu muss die Verbindung über den Pegelkonverter hergestellt werden. Man setze den Jumper PWSEL des Pegelkonverters auf 1-2 und Verbinde ihn mit dem fnordlicht. Die grüne LED sollte leuchten, wenn man dem fnordlicht Strom gibt. Setzt man den Jumper PGM von fnordlicht control auf 2-3, sollte nichts geschehen, das fnordlicht wartet auf Programmierung.
Mit
$ screen /dev/ttyUSB0 19200 8N1
kann man sich nun mit dem fnordlicht verbinden.
Gibt man ein großes "X" ein, so sollte das vorinstallierte Programm starten. Ein
$ echo "X" > /dev/ttyS0
sollte das gleiche bewirken (Port anpassen).
[edit] Backup
Ein Backup ist immer ein gute Sache. Hier wird erklärt wie man vorgehen muss:
[edit] Installation der Software
Da der Bootloader schon installiert ist, muss man sich nur noch um die Firmware kümmern. Dazu braucht man:
- avra
- avrdude, am besten die neueste Version. Version 5.0 (bei Ubuntu Dapper z. Bsp. dabei) macht Probleme beim Hochladen.
- gcc-avr
- avr-libc Version >= 1.4.2 benötigt
Die Schritte "Prozessor für die Hardware einrichten" und "Bootloader installieren" von http://wiki.koeln.ccc.de/index.php?title=U23_2005/Fnordlicht_quickstart_howto entfallen.
Nun sollte man, http://wiki.koeln.ccc.de/index.php?title=Atmel_Mikrocontroller_Kickstart folgend, eigene Assembler-Programme installieren können.
Doch uns interessiert natürlich auch die fnordlicht Firmware.
Damit die von Hand installierte neuere Version von avr-libc richtig eingebunden wird, musste ich im Makefile folgende Änderungen vornehmen:
LDFLAGS += -L/usr/local/avr/avr/lib -> LDFLAGS += -L/usr/local/avr/lib
CFLAGS += -I/usr/local/avr/include kommt neu hinzu
In avr.mk ist SERIAL_DEV anzupassen.
Ausserdem muss im Unterverzeichnis
fnordlicht-ng-0.2/bootloader/launcher
das Programm launch-bootloader compiliert und, z. Bsp. nach ~/bin, installiert werden.
Ist alles installiert kann man mittels
$ make install
die fnordlicht Firmware installieren.
Das Demo-Programm liegt in testscript.h als:
static const uint8_t colorchange_red[] PROGMEM
Es wird in fnordlicht.c durch
script_threads[0].handler.position = (uint16_t) &colorchange_red;
gestartet.
[edit] Erstellen von statischen Skripten (momentan nur für die Assembler-Version der Firmware)
- http://wiki.koeln.ccc.de/index.php?title=U23_2005/Gui
- http://wiki.koeln.ccc.de/index.php?title=U23_2005/Scripteditor
[edit] Interaktives Fnordlicht (1) - RS232 out-of-the-box
Um das Fnordlicht "live" zu steuern, deaktviert man die statischen Skripte in config.h:
#define STATIC_SCRIPTS 0
und ändert in fnordlicht.c in der Zeile 82
82: #if 0 -> if 1
Bringt man nun den Jumper PGM wieder in die Position 1-2 und schaltet es an, sollten die roten LEDs leuchten. Jetzt kann man das fnordlicht einfach steuern:
echo 0 > /dev/ttyS0
Alle LEDs ausschalten.
while true ; do echo 4 > /dev/ttyS0 ; echo 5 > /dev/ttyS0 ; echo 6 > /dev/ttyS0 ; done
Alle LEDs heller werden lassen.
[edit] Interaktives Fnordlicht (2) - RS232 per Hand
Da die Ansteuerung über RS232 in der aktuellen Firmware nur sehr eingeschränkt möglich ist, habe ich sie ein bisschen erweitert. Ohne große Änderungen kann man nun Kommandos ala
$ ./serial-control 120 30 60
senden, um Rot auf 120, etc., zu setzen.
eine genaue Beschreibung gibt es unter Fnordlicht/Fernsteuern - RS232
Die Steuerung des fnordlichts ist so ohne weiteren Hardware-Aufwand bequem möglich.
[edit] Interaktives Fnordlicht (3) - ADC
Ich habe mit der einfachst moeglichen (http://www.kreatives-chaos.com/artikel/avr-grundschaltungen) ADC-Schaltung mit Hilfe eines Potentiometers das Fnordlicht analog steuerbar gemacht.
[edit] Interaktives Fnordlicht (4) - IR
Die Datenleitung eines TSOP1738 kann direkt an INT0 angeschlossen werden. Gerne schicke ich euch Code-Beispiele, aber ein bisschen selber rumprobieren ist doch auch sehr schoen.
[edit] Alternativen zum Blumentopf
Das Glas des Groenoe eignet sich gut.
http://www.ikea.com/de/de/catalog/products/90029221
[edit] Firmware/Bootloader selber installieren
Wenn man einen Atmega8 ohne vorinstallierte Firmware hat kann man wie in https://wiki.koeln.ccc.de/index.php/U23_2005/Fnordlicht_quickstart_howto#Erstprogrammierung beschrieben den bootloader installieren.
Aufgepasst: Die richtige Programming Methods waehlen. Fuer das Kabel von embedded projects z. Bsp. stk200.
Die aktuelle foodloader Version benutzt avrdude statt uisp. Da ich das stk200 kompatible Kabel benutze musste ich auch hier in avr.mk ISP_PROG = dapa durch ISP_PROG = stk200 ersetzen.
Ausserdem gab es noch zwei kleine Probleme. Dump:
bzgl. missing terminating ' character
bootloader/uart.h: -#error this cpu isn't supported by uart.h yet! +#error "this cpu isn't supported by uart.h yet!"
bzgl. error: comparison with string literal results in unspecified behavior
bootloader/launcher/Makefile: -CFLAGS += -DBOOT_SECTION_START=$(BOOT_SECTION_START) +CFLAGS += -DBOOT_SECTION_START=$(BOOT_SECTION_START) -Wno-address
[edit] Schlussbemerkungen
Mir ist klar, dass diese Doku alles andere als vollstaendig ist, aber ich habe gemerkt, dass sobald ich mein Fnordlicht zum laufen bekommen hatte, alles andere fuer mich kaum ein Problem war; und das Fnordlicht ist mein erstes Mikrocontroller-Projekt. Also, nur zu! Es motiviert sehr, etwas huebsch leuchtendes zu erweiterten und seinen Wuenschen anzupassen.