Skip to content

A small Arduino library for setting up WiFi and OTA (Over The Air)

License

Notifications You must be signed in to change notification settings

Johboh/ConnectionHelper

Repository files navigation

ConnectionHelper

PlatformIO CI ESP-IDF GitHub release Clang-format

Arduino (using Arduino IDE or PlatformIO) and ESP-IDF (using Espressif IoT Development Framework or PlatformIO) compatible library for setting up WiFi and OTA (Over The Air)

OTA support

  • ArduinoOTA (using the Arduino IDE, PlatformIO and using upload_protocol = espota or using the esp IDF command line options, espota)
  • Upload via Web UI
    • via HTTP interface in browser
    • Via command line. Example: curl -X POST -H "X-Flash-Mode: firmware" -H "Content-Type: application/octet-stream" --data-binary "@/path/to/firmware.bin" http://<device-ip>:<port-number>/
    • Or use the included upload.py script: python ./upload.py -u http://192.168.1.10:81 ./build/firmware.bin
  • Upload from URI (client driven).

Installation

PlatformIO (Arduino or ESP-IDF):

Add the following to libs_deps for ESP32:

   Johboh/ConnectionHelper@^3.0.0

For ESP8266, use the legacy 2.x version:

   Johboh/ConnectionHelper@^2.0.5

Espressif IoT Development Framework:

In your existing idf_component.yml or in a new idf_component.yml next to your main component:

dependencies:
  johboh/ConnectionHelper:
    version: ">=3.0.0"

Example

Parition table

You need to have two app partitions in your parition table to be able to swap between otas, as well as the otadata section. This is an example for a 4MB flash:

# Name,   Type,  SubType, Offset,          Size, Flags
nvs,      data,      nvs,       ,           16K
otadata,  data,      ota,       ,            8K
phy_init, data,      phy,       ,            4K
coredump, data, coredump,       ,           64K
ota_0,     app,    ota_0,       ,         1500K
ota_1,     app,    ota_1,       ,         1500K
spiffs,   data,   spiffs,       ,          800K

To set partition table, save above in a file called partitions_with_ota.csv. For ESP-IDF, specify to use this one using menuconfig. For platform I/O, add the following to your platformio.ini: board_build.partitions = partitions_with_ota.csv

Functionallity verified on the following platforms and frameworks

Newer version most probably work too, but they have not been verified.

Dependencies

  • None

About

A small Arduino library for setting up WiFi and OTA (Over The Air)

Resources

License

Stars

Watchers

Forks

Packages

No packages published