RFM69 driver and web interface for the ESP8266. Note - this is fairly dated (old SDK), but should still work with 1.5.x.
- RFM69 driver for ESP8266
- NGINX-style HTTP server, serving files from SPIFFS
- RFM webapp for sending basic text, viewing received messages
- RFM69 OTA update utility, Moteino compatible
- SPIFFFS webapp:
- Drag-and-drop file uploader based on websockets
- Styled file viewer
- Download files
- Delete files
- SPIFFY-based ROM creator with gzip, html, css, js compression
- Web interface for WiFi
- Built with Espressif's NONOS SDK v1.5.2 and NONOS lwip 1.5.2 module
- Have not tested anything other than 66-byte encrypted packet mode. YMMV
- File System uploader crashes on occasion. Probably not too difficult to fix but I haven't had time.
- Static Javascript is a bit messy and probably a bit buggy. Still getting the hang of web development.
- WiFi change and event monitor needs to be fixed or perhaps re-written
- This is not compatible with esp-arduino, but others have said that the RFM69 driver at lowpowerlab.com now works flawlessly.
Any and all contributers to/authors of the various modules used in this project (see list below/LICENSE file). But particularly:
- Felix Rusu at LowPowerLab.com for creating the Moteino framework, RFM69 driver, and in particular all the work he has put in to Wireless Programming.
- Spritetm for his contribution of esp-httpd, and Israel Lot for his NGINX-flavor rework of esp-httpd.
- SPIFFS author pellepl for creating SPIFFS and making himself more than available for help and support.
- Espressif for the awesome, cheap chip and English documentation
- Max Filippov and Paul Sokolovsky (pfalcon) for open-sourcing this bad boy.
See Wiki.
Default baud rate is 74880. After user_init is called, it goes to 115200. If platformIO is installed, serial monitor can be invoked as such (replace /dev/ftdi_esp with your com port):
platformio serialports monitor -b 115200 -p /dev/ftdi_esp
See Moteino_OTA
See MQTT. This is a very ugly, hard-coded implementation, sorry.
The flash chips packaged with esp-xx modules can be of various sizes and come from various manufacturers. To get flash ID (as hex):
uint32 flash_id = spi_flash_get_id();
NODE_DBG("Flash_ID = %x", flash_id);
Layout:
0x000000 - 0x010000
: 64KB - Bootloader, SDK0x010000 - 0x080000
: 448KB - Rom00x080000 - 0x090000
: 64KB - Static FS (HTML, initial config)0x090000 - 0x1DC000
: 1328KB - Dynamic FS (All other files)0x1FC000 - 0x200000
: Unused (SDK config)
The address to flash SPIFFS must (I think) be on a proper multiple of the logical block size, and must not overlap with irom at all.
Bold == for flashing only
RFM69HW | ESP-12E |
---|---|
MISO | GPIO12 |
MOSI | GPIO13 |
SCK | GPIO14 |
CS/SS | GPIO15 |
DIO0 | GPIO5 |
I/O | ESP-12E |
---|---|
10K PULLUP | CH_PD/EN |
10K PULLDOWN | GPIO15 |
10K PULLDOWN | GPIO0 |
BUTTON-GND | RST |