Skip to content

someburner/esp-rfm69

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP-RFM69

Overview

RFM69 driver and web interface for the ESP8266. Note - this is fairly dated (old SDK), but should still work with 1.5.x.

Features:

  • 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

Bugs & Limitations:

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

Credits:

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.

Installation

See Wiki.

Serial Monitor:

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

Moteino OTA:

See Moteino_OTA

MQTT

See MQTT. This is a very ugly, hard-coded implementation, sorry.

SPI Flash Info

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, SDK
  • 0x010000 - 0x080000: 448KB - Rom0
  • 0x080000 - 0x090000: 64KB - Static FS (HTML, initial config)
  • 0x090000 - 0x1DC000: 1328KB - Dynamic FS (All other files)
  • 0x1FC000 - 0x200000: Unused (SDK config)

SPIFFS:

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.

TECH SPEC

Pin Configurations

Bold == for flashing only

RFM69

RFM69HW ESP-12E
MISO GPIO12
MOSI GPIO13
SCK GPIO14
CS/SS GPIO15
DIO0 GPIO5

GPIO

I/O ESP-12E
10K PULLUP CH_PD/EN
10K PULLDOWN GPIO15
10K PULLDOWN GPIO0
BUTTON-GND RST

Debug Tools

Module List

Preview

Console

Console

File System

File System

Uploader

Uploader

OTA Updater

OTA Updater