THiNX ESP8266 Vanilla Firmware for NodeMCU (Lua)
NodeMCU firmware with following modules:
ESPlorer or any other compatible IDE
NodeMCU Firmware Builder - customize your NodeMCU Lua firmware
ESPTool - upload your firmware, erase flash, de-brick
ESPlorer - edit/upload your Lua code to device
MQTT.fx - subscribe/post to the message queue
NodeMCU DevKit - explore original devkit
Create your own THiNX Account
After validating your account, go to API Keys page and create new API Key for this device (it will be shown only once to you, make sure you have a copy in your clipboard).
Insert this API Key as
THINX_API_KEYalong with your owner-id as
THiNX_OWNER_IDinto the config.lua file. You should also adjust your
wifi_passwordcredentials, until those are injected using THiNX Environment Variables or captive portal will be supported (you're free to submit a PR).
init.luato your ESP8266 (e.g. using ESPTool) and reboot.
The device should now connect to WiFi, check-in to the THiNX server and acquire its own unique device identifier (unless already registered).
As a next step it will connect to the MQTT Message Broker on its own channel
/devices/[owner_id]/[device_id]and publish its status. It may receive response from the THiNX Messenger about available firmware update.
In case the device has
auto_updateenabled and source code update from attached attached repository is available, it should perform self-update and reboot.
THiNX now supports building whole NodeMCU firmware using the dockerized builder. In near future, it will allow for module customization.
You can build your own custom firmware using nodemcu-docker-build.
thinx.yml file used to remote-configure the builder:
- Build type can be either
firmware(build firmware) or
lua(application files only).
- If you need to build firmware with integer support, set
nodemcu: build: type: firmware float: true modules: c: - coap - crypto - dhtlib - driver - esp-gdbstub - fatfs - http - include - libc - lua - lwip - mapfile - mbedtls - misc - modules - mqtt - net - pcm - platform - pm - sjson - smart - spiffs - swTimer - task - tsl2561 - u8glib - ucglib - user - websocket - wofs lua: - bh1750 - bmp085 - dht_lib - ds18b20 - ds3231 - email - hdc1000 - http - lm92 - mcp23008 - redis - si7021 - thinx - tsl2561 - yeelink