====== Dali NodeMCU ====== {{tag>project software hardware electronics}} Eine custom ESP8266 firmware basierend auf NodeMCU. Es wird ein zusätzlicher DALI-Treiber implementiert. https://github.com/shackspace/nodemcu-firmware-dali ==== Funktionen des Dali-Moduls: ==== Dali.setup(tx_pin, rx_pin) - Definiere Anschluss TX und RX Dali.arc(address_mode, address, brightness) - Helligkeit der Lampe direct einstellen. Address_Mode kann folgende Werte annehmen Dali.BROADCAST (Adresse ist beliebig), Dali.SLAVE (Adresse 0 bis 63) und Dali.GROUP (Adresse 0 bis 15). ---- ==== Entwicklung der NodeMCU-Firmware ==== === Firmware compilieren === Eine gute Anleitung wie man die NodeMCU Firmware compiliert, ist hier zu finden: http://www.allaboutcircuits.com/projects/guts-of-the-iot-part-1-building-nodemcu-from-source-for-the-esp8266/ Anstatt der originalen Firmware muss man natürlich die NodeMCU-Dali Variante compilieren: https://github.com/shackspace/nodemcu-firmware-dali ---- === Debugger === Der ESP8266 lässt sich über JTAG programmieren/debuggen. Aktuell wird eine spezielle Version von OpenOCD benötigt: ''git clone [[https://github.com/saeugetier/openocd]]'' ''cd openocd'' ''./bootstrap.sh'' ''./configure --enable-maintainer-mode --disable-werror --enable-buspirate'' ''make'' ''sudo make install'' Damit JTAG auf dem Buspirate funktioniert, muss eine aktuelle Firmware auf der Hardware installiert sein. Weitere Infos siehe: [[http://cybermashup.com/2014/05/01/jtag-debugging-made-easy-with-bus-pirate-and-openocd/]] [[http://dangerousprototypes.com/docs/JTAG]] Wie man einen ESP8266 an einen Debugger anschließt, sieht man hier: http://visualgdb.com/tutorials/esp8266/ ---- === Einstellungen xtensa-lx106-elf-gdb === Datei .gdbinit ''file app/.output/eagle/debug/image/eagle.app.v6.out'' ''set remote interrupt-sequence BREAK'' ''target extended-remote localhost:3333'' ''add-symbol-file ../esp-elf-rom/bootrom.elf 0x40000000'' Die BOOTROM gibt es hier: https://github.com/jcmvbkbc/esp-elf-rom ---- === Debugger nutzen === Nun lässt sich der Debugger im Projekt verzeichnis von NodeMCU-Dali nutzen. Befehle: break //setzt einen Breakpoint (Hardware-Breakpoint/Software-Breakpoint je nach Verfügbarkeit) backtrace //zeigt den stack monitor halt //stoppt die Ausführung des programms monitor reset //setzt das Programm zurück monitor reg //zeigt die aktuellen Register an