ESP8266 mit Frankenstein Firmware

Die Frankenstein Firmware ist eine weitere Firmware, die mit einem ESP8266 zum Einsatz kommen kann. Mit Hilfe von einfachen Textbefehlen kann das Modul konfiguriert und verschiedene Aktionen ausgelöst werden.

Der Entwickler schreibt, dass die Firmware aus verschiedenen Komponenten zusammengesetzt wurde und deswegen auch den Namen Frankenstein bekommen hat. Die Quellcode steht auf GitHub im ESP8266-Frankenstein Repository zur Verfügung. Wer die Firmware nicht selber bauen möchte, der findet in dem Repository auch eine relativ neue Version der Firmware im binary Verzeichnis.

Wie bereits im Artikel "ESP8266 AT-Firmware aktualisieren" kann auch hier für das Überspielen der Firmware das Tool esptool zum Einsatz kommen. Dazu muss zunächst die Datei antares.rom aus dem binary Verzeichnis aus dem Repository heruntergeladen oder selbst compiliert werden. Anschließend sollte sich die Firmware wie folgt übertragen lassen.

$ sudo ./esptool.py --port /dev/ttyUSB0 write_flash 0x00000 antares.rom

Nach einem Neustart des Moduls steht für eine Verbindung zum Einen ein eigenständiges W-LAN oder die serielle Schnittstelle bereit.

Besteht während dem Start eine serielle Verbindung wird darüber folgende Information ausgegeben.

=== Current environment ===
sta-mode    dhcp
default-mode  APSTA
sta-ip      192.168.0.123
sta-mask    255.255.255.0
sta-gw      192.168.0.1
ap-ip       192.168.1.1
ap-mask     255.255.255.0
ap-gw       192.168.1.1
hostname    frankenstein
bootdelay   5
dhcps-enable  1
telnet-port  23
telnet-autostart  1
telnet-drop  60
tftp-server  192.168.1.215
tftp-dir    /
tftp-file   antares.com
=== 311/4092 bytes used ===



Frankenstein ESP8266 Firmware
Powered by Antares 0.2-rc1, Insane Mushroom
(c) Andrew 'Necromant' Andrianov 2014 <andrew@ncrmnt.org>
This is free software (where possible), published under the terms of GPLv2

Memory Layout:
data  : 0x3ffe8000 ~ 0x3ffe8f90, len: 3984
rodata: 0x3ffe8f90 ~ 0x3ffebaf0, len: 11104
bss   : 0x3ffebaf0 ~ 0x3fff4808, len: 36120
heap  : 0x3fff4808 ~ 0x3fffc000, len: 30712

 Flash layout:
Firmware size is     228 KiB (0x390d4)
Filesystem starts at 232 KiB (0x3a000)

Available services:
DHCP server
Telnet server
dhcpserver: started
telnet: server accepting connections on port 23

 === Press enter to activate this console ===

Um eine Verbindung über das Netzwerk mit dem Modul herzustellen muss sich in das bereitgestellte W-LAN eingebucht und anschließend eine Verbindung mit telnet zur IP-Adress 192.168.1.1 hergestellt werden.

Hinweis: Manchmal scheint es etwas länger zu dauern, bis eine Ausgabe erscheint und Befehle eingegeben werden können.

$ telnet 192.168.1.1

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Welcome to frankenstein!
Press enter to activate this console

frankenstein >

Folgende Befehle stehen in der vorliegenden Firmware zur Verfügung. Diese Ausgabe wird angezeigt, wenn der Befehl help ausgeführt wird.

help       - Show this message
telnet     - start/stop telnet server
             telnet start - start service
             telnet stop  - stop service
             telnet quit  - drop current client
argtest    - Print out argc/argv
deepsleep  - Enter deep sleep for some microseconds
             deepsleep 10000
reset      - Soft-reboot the device
chipinfo   - Display chip information
meminfo    - Display memory information
hname      - Set dhcp hostname
envreset   - Reset environment to defaults
             resetenv
saveenv    - Write environment to flash
             setenv var value
getenv     - Get an environment variable
             getenv var
setenv     - Set an environment variable
             setenv var value
printenv   - Print all environment variables
apconfig   - Setup Access Point.
             apconfig name OPEN/WEP/WPA_PSK/WPA2_PSK/WPA_WPA2_PSK [password]
iwconnect  - Join a network/Display connection status.
             iwconnect ssid password
iwmode     - Get/set wireless mode. Available modes: NONE, STA, AP, APSTA
             iwmode STA
iwscan     - Scan for available stations
baud       - Configure serial port speed
             baudrate {port:0/1} {speed}
             baudrate 0 57600
ifconfig   - Show network interfaces and their status
             ifconfig [iface]
             ifconfig sta0
gpio       - Control gpio lines. gpio mode line [value]
             gpio in 0
             gpio out 0 1
flash_scan - Scan the upper portion of FLASH for dirty blocks
             Used to find out where the blobs store config
             flash_scan
spi_dump   - Hexdump flash contents
             spi_dump start len
wipeparams - Wipe blob configuration section of flash
             wipeparams any three arguments
spi_wipe   - Wipe the whole spi flash blank
             wipe any three arguments
listen     - Listen for incoming data ona port
             listen 8080
send       - Send data to a remote host.
             send hostname port [data]
ds18b20    - Read temperature from DS18B20 chip.
             ds18b20 <gpio> [all]
dht11      - Read temperature and humidity from DHT11 sensor module. Presently hard-coded on GPIO #2. Warning: will reset MCU if no device present!
             dht11
dht22      - DHT22 humidity sensor
             dht22 init <gpio> [11|22]
             dht22 [read]
tftp       - Update firmware over tftp
             tftp
AT         - says OK
adc        - Reads system ADC value
i2c        - I2C bus config. Default SDA and SCL is GPIO0 and 2
             i2c init [SDA] [SCL]
             i2c scan
i2c_bmp180 - I2C pressure sensor BMP180
             i2c_bmp180 init
             i2c_bmp180 [read]
i2c_ina219 - I2C current sensor INA219
             i2c_ina219 init
             i2c_ina219 [read]
i2c_sht21  - I2C humidity sensor SHT21
             i2c_sht21 init
             i2c_sht21 [read]
i2c_bh1750 - I2C light sensor BH1750
             i2c_bh1750 init
             i2c_bh1750 [read]
i2c_pcf8591 - I2C 8-bit ADC DAC PCF8591
             i2c_pcf8591 init
             i2c_pcf8591 [read]
             i2c_pcf8591 write <value>
i2c_hmc5883 - I2C 3-Axis Digital Compass HMC5883
             i2c_hmc5883 init
             i2c_hmc5883 [read]
i2c_tcs3414 - I2C Digital Color Sensor TCS3414
             i2c_tcs3414 init
             i2c_tcs3414 [read]
i2c_mlx90614 - I2C non-contact thermopile sensor
             i2c_mlx90614 init
             i2c_mlx90614 [read]

Fazit

Aufgrund der interaktiven Textschnittstelle eignet sich die Firmware für erste Versuche mit dem ESP8266. Es können schnell verschiedene Konfigurationen ausprobiert, die GPIOs angesteuert, verschiedene Sensoren ausgelesen und die Netzwerkverbindung getestet werden.

Verwandte Artikel