Sebastian Fnordlicht Doku

From Lochraster

Jump to: navigation, search

Contents

[edit] Fnordlicht Doku

[edit] Vorhandene Infos zum Fnordlicht

und natürlich

  • google: fnordlicht

[edit] Allgemeine Infos

[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

[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)

[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.