CUNO unter OSX flashen
Vorausetzung
- Mac OS X (10.8.3)
- CUNO Firmware (culfw)
- CrossPack AVR
- USB Treiber für Atmel
- wenigstens rudimentäre Kenntnisse, sich mittels Terminal zurecht zu finden (cd / ls )
Download der aktuellen CUNO Firmware
http://culfw.svn.sourceforge.net/viewvc/culfw/trunk/culfw/Devices/CUNO2/
Auf "Download GNU tarball" klicken. Noch nicht auspacken, machen wir weiter unten.
CrossPack for AVR installieren
http://www.obdev.at/products/crosspack/download-de.html
Paket installieren, für die Installation sind Administratorrechte erforderlich.
Wer schon mal Software unter OS X installiert hat kennt das Prozedere:-)
Atmel USB Treiber
Damit das USB Gerät (CUNO2) unter OSX erkannt wird, USB Treiber herunterladen und installieren
http://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip
Geht nur mit Administratorrechten und einem Neustart. Neustart ist wichtig!
Nicht alle sind mit Gerätetreibern per "Du". Daher ist es vielleicht ganz gut sich vor der Installation des Treibers das Verzeichnis /dev/ anzuschauen und es mit dem Zustand nach der Installation des Treibers zu vergleichen. Dann weiss man schon mal welche sog. Devices hinzugekommen sind und gegen welche man sich nachher verbinden kann.
CUNO Firmware kompilieren
Ein Terminal öffnen:
In Spotlight (Lupe oben rechts) den Begriff "Terminal" eintippen und einfach "Enter" drücken.
Im Terminal in das Dokumentenverzeichnis des angemeldeten Benutzers wechseln:
cd "/Users/<Benutzername>/Documents/"
Das Verzeichnis AVR erstellen:
mkdir AVR
Dort hineinwechseln:
cd AVR
Nun die aktuelle Firmware dort hin kopieren: (Liegt im Downloadverzeichnis von Punkt 1)
cp "/Users/<Benutzername>/Downloads/culfw-CUNO2.tar.gz" "/Users/<Benutzername>/Documents/AVR"
Das Paket dort entkomprimieren:
gunzip culfw-CUNO2.tar.gz
Und auspacken:
tar xv culfw-culfw.tar.
Nun in das Verzeichnis culfw/Devices wechseln:
cd culfw/Devices.
Das neue Image (Firmware) bauen: (Und die Warnungen tapfer ignorieren)
make -C CUNO2 clean make -C CUNO2 all
Ausgabe:
bash-3.2# '''make -C CUNO2 clean'''make: Entering directory `/Users/sascha/Documents/AVR/culfw/Devices/CUNO2' Cleaning project: make: Leaving directory `/Users/sascha/Documents/AVR/culfw/Devices/CUNO2' bash-3.2# '''make -C CUNO2 all'''make: Entering directory `/Users/sascha/Documents/AVR/culfw/Devices/CUNO2' Compiling C: CUNO2.c Compiling C: ../../clib/cc1100.c Compiling C: ../../clib/clock.c Compiling C: ../../clib/delay.c Compiling C: ../../clib/display.c Compiling C: ../../clib/stringfunc.c Compiling C: ../../clib/fncollection.c Compiling C: ../../clib/ringbuffer.c Compiling C: ../../clib/rf_send.c Compiling C: ../../clib/rf_asksin.c Compiling C: ../../clib/rf_receive.c Compiling C: ../../clib/rf_router.c Compiling C: ../../clib/rf_moritz.c Compiling C: ../../clib/fht.c Compiling C: ../../clib/fastrf.c Compiling C: ../../clib/memory.c Compiling C: ../../clib/serial.c Compiling C: ../../clib/vz.c Compiling C: ../../clib/ttydata.c Compiling C: ../../clib/ethernet.c Compiling C: ../../clib/tcplink.c Compiling C: ../../avr-uip/drivers/ethersex/enc28j60.c Compiling C: ../../avr-uip/drivers/ethersex/network.c Compiling C: ../../avr-uip/uip/uip.c Compiling C: ../../avr-uip/uip/uip_arp.c ../../avr-uip/uip/uip_arp.c: In function 'uip_arp_arpin': ../../avr-uip/uip/uip_arp.c:287:10: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ... Viele Warnungen... Compiling C: ../../avr-uip/uip/uiplib.c Compiling C: ../../avr-uip/uip/psock.c Compiling C: ../../avr-uip/uip/timer.c Compiling C: ../../avr-uip/uip/uip-neighbor.c Compiling C: ../../avr-uip/apps/dhcpc/dhcpc.c Compiling C: ../../clib/ntp.c Compiling C: ../../clib/mdns_sd.c Compiling C: ../../clib/spi.c Compiling C: ../../clib/twimaster.c Compiling C: ../../clib/ir.c Compiling C: ../../clib/irmp.c Compiling C: ../../clib/irsnd.c Compiling C: ../../clib/onewire.c Compiling C: ../../clib/dmx.c Compiling C: ../../clib/intertechno.c Compiling C: ../../clib/hm485.c Linking: CUNO2.elf Creating load file for Flash: CUNO2.hex Creating load file for EEPROM: CUNO2.eep Creating Extended Listing: CUNO2.lss Creating Symbol Table: CUNO2.sym Size after: text data bss dec hex filename 34752 404 6914 42070 a456 CUNO2.elf make: Leaving directory `/Users/sascha/Documents/AVR/culfw/Devices/CUNO2'
Damit ist die neue Firmware erstellt. Als nächstes geht es darum die Firmware auf den CUNO zu bekommen und zu testen.
Als root einloggen
Hierzu zuerst Administrator einloggen:
su - <Administratorbenutzername>.
Das Passwort des Administratorbenutzers eingeben.
Über sudo kann der Administrator Rootrechte erlangen:
sudo -i
eingeben und das vorherige Login Passwort noch einmal eingeben.
CUNO anschliessen
CUNO bei gedrücktem Programmiertaster mit einem direkten USB Port des Mac's verbinden (NICHT über USB-HUB, Tastatur, etc. Direkt. Einfach direkt. ohne Umweg)
Die LED in der Mitte der CUNO Platine sollte nun dauerhaft leuchten. Wenn sie blinkt ist etwas schiefgegangen (z.B. Knopf losgelassen), dann einfach noch mal einstecken bei gedrücktem Programmierknopf.
Firmware in den CUNO2 laden
Erstmal als Benutzer root in das richtige Verzeichnis wechseln:
/Users/<Benutzername>/Documents/AVR/culfw/
Das upload Programm starten:
make usbprogram
Ausgabe:
avrdude -p atmega1284p -P /dev/tty.SLAB_USBtoUART -b 38400 -c avr109 -U flash:w:CUNO2.hex Connecting to programmer: . Found programmer: Id = "AVRBOOT"; type = S Software Version = 0.8; No Hardware Version given. Programmer supports auto addr increment. Programmer supports buffered memory access with buffersize=128 bytes. Programmer supports the following devices: Device code: 0x46 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9705 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: reading input file "CUNO2.hex" avrdude: input file CUNO2.hex auto detected as Intel Hex avrdude: writing flash (35156 bytes): Writing | ################################################## | 100% 11.20s avrdude: 35156 bytes of flash written avrdude: verifying flash memory against CUNO2.hex: avrdude: load data flash data from input file CUNO2.hex: avrdude: input file CUNO2.hex auto detected as Intel Hex avrdude: input file CUNO2.hex contains 35156 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 9.89s avrdude: verifying ... avrdude: 35156 bytes of flash verified avrdude done. Thank you.
Test
Weiter als root eingeloggt bleiben. Um zu überprüfen, ob auf dem CUNO nun ein Betriebssystem installiert ist (und es funktioniert), kann man sich über die serielle Schnittstelle zum CUNO verbinden. Das Programm hierzu heisst "screen", die Übertragungsgeschwindigkeit beträgt 38400 Baud. Folgendes eingeben:
screen /dev/tty.SLAB_USBtoUART 38400
Jetzt erscheint das Fenster ohne Cursor.
Einfach ein großes "V" eintippen.
Die Ausgabe dazu sollte so in der Art aussehen:
V 1.54 CUNO868
Wenn CUNO sich schon erfolgreich mit einer IP Adresse von eurem DHCP Server versorgt hat, kann man die IP Adresse gleich mit prüfen:
Ria eingeben
Als Ausgabe sollte dann die IP Adresse erscheinen:
192.168.3.21
Verlassen der Shell mit "Control Groß A Doppelpunkt:quit": <CTRL>A :quit Jetzt solle man sich auch schon per telnet verbinden können:
telnet <CUNO's IP Adresse> 2323 (Zwei mal return drücken)
Wenn man sich hier nun auskennt: prima, für alle Anderen: ich kann das hier empfehlen http://culfw.de/culfw.html Wenn's langweilig wird ausloggen:
<CTRL><ALT>6
gleichzeitig drücken und dann im telnet prompt
quit
eingeben.
CUNO in FHEM definieren
Weiter im Terminal bleiben und auf eurem FHEM Hobel einloggen:
telnet <FHEM IP Adresse> 7072
Jetzt den CUNO definieren:
define MY_CUNO CUL <CUNO's IP Adresse>:2323 0000
Fertig. Jetzt geht's in FHEM weiter: http://fhem.de/commandref.html