Commit Graph
245 Commits
Author SHA1 Message Date
FlorianandClaude Opus 4.8 b493dddb97 [SYS] esp32-arduino-libs: bump 0.1.6 -> 0.1.7 for no-PSRAM TLS (MBEDTLS_DYNAMIC_BUFFER) (#2335)
The 0.1.7 bundle enables MBEDTLS_DYNAMIC_BUFFER (dynamic TX/RX TLS record
buffers) by disabling the unused DTLS proto that was gating it. mbedTLS now
sizes the ~32 KB record buffers per-record and frees them between records
instead of holding them for the whole session lifetime.

On no-PSRAM ESP32 (e.g. the Theengs Plug) this is the difference between MQTT
TLS (8883) being viable or not: steady-state free heap goes from ~36 KB to
~71 KB (minmem ~18 KB -> ~30 KB), the boot HTTPS update-check and the HA
discovery burst no longer OOM/crash-loop, and flash drops ~19 KB from removing
the DTLS code. Boards with PSRAM (Theengs Bridge) are unaffected.

Bundle: theengs/esp32-arduino-lib-builder 0.1.6 -> 0.1.7 (libs-only rebuild,
same IDF v5.5.4 / arduino-esp32 pin; no platform-espressif32 bump).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 03:53:33 -05:00
FlorianandClaude Opus 4.8 268b879239 [BT] Bump NimBLE-Arduino 2.3.2 -> 2.5.0 to fix BLE scan regression on Arduino core 3.3.7+ (#2333)
The esp32_platform 55.03.39 bump (#2329) ships Arduino-ESP32 core >=3.3.7,
whose NimBLE integration enables mesh scan-filtering. NimBLE-Arduino 2.3.2
(pinned since 2025-06-28) handles this incorrectly and stops reporting
advertisements on scan restart, so continuously-scanning gateways (e.g. the
Theengs Bridge) decode nothing.

Upstream fix: h2zero/NimBLE-Arduino 98548470f "[Bugfix] Scan duplicate filter
not resetting on scan restart" (released in 2.3.9). Bumping to the latest 2.5.0
also picks up the Arduino 3.3.7 "controller invalid state" init fix (2.3.8/2.3.9)
and a scan-response timer for long-duration scans.

HIL-validated on a Theengs Bridge v11 with esp32_platform 55.03.39:
  - NimBLE 2.3.2: BLE decode 0/3
  - NimBLE 2.5.0: BLE decode 3/3, reachability 2/2, builds clean

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:22:53 -05:00
0bbc00cfa0 [SYS] esp32_platform: update to 55.03.39 (#2329)
* esp32_platform: update to 55.03.39

## Summary

- Add support for Python 3.14
- Improve ESP32 platform and framework compatibility.
- Update board support and toolchain integrations.
- Fix stability and hardware-specific issues across supported ESP32 targets.
- Release notes:
    - [55.03.39](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.39)
    - [55.03.38](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.38)
    - [55.03.37](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.37)
    - [55.03.36](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.36)
    - [55.03.35](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.35)
    - [55.03.34](https://github.com/pioarduino/platform-espressif32/releases/tag/55.03.34)

* update build to use python 3.14 with platformio 6.1.19

* Update esp32-arduino-lib-builder to v1.5

* [CI] Fix call8 link overflow on large Xtensa builds (IDF 5.5.4)

The 55.03.39 / IDF 5.5.4 bump enlarges the precompiled libs enough that
large Xtensa images (esp32 / esp32s3) overflow the call8 reach and fail to
link with "dangerous relocation: call8: call target out of range".
-mlongcalls (which makes calls linker-relaxable) is injected by
esp32-arduino-libs into the framework compile but NOT into lib_deps
(NimBLE-Arduino, ArduinoJson) or project sources.

Add a project pre: extra_script (scripts/add_mlongcalls.py) that applies
-mlongcalls to CCFLAGS/ASFLAGS, gated on the Xtensa MCUs (RISC-V c3 has no
call8 and rejects the flag). Wired into [env]; the four esp32dev-*pilight*
envs that set their own extra_scripts list it explicitly too, since
PlatformIO replaces rather than merges extra_scripts.

Also bump esp32-arduino-libs 0.1.5 -> 0.1.6, which restores the
framework-side -mdisable-hardware-atomics / -fno-builtin-* flags that 0.1.5
dropped under IDF 5.5.4 (separate from the lib_deps call8 issue).

Verified clean (0 call8): esp32dev-all-test, esp32dev-ble, theengs-bridge,
theengs-plug, esp32dev-pilight (+cc1101); esp32c3 unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Florian <florian@theengs.io>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 09:38:12 -05:00
FlorianandClaude 4b7d3f6589 [RTL_433] Update rtl_433_ESP library to v0.5.1 (#2328)
Updates the NorthernMan54/rtl_433_ESP dependency from v0.5.0 to v0.5.1,
which guards vdata_make() against strdup(NULL) for DATA_FORMAT.


Co-authored-by: Claude <noreply@anthropic.com>
2026-06-20 20:27:14 -05:00
FlorianandClaude Opus 4.8 94aa6ae443 [SYS] Update esp32-arduino-libs to 0.1.4 (BLE-only controller) (#2327)
Bumps the precompiled framework-arduinoespressif32-libs bundle from 0.1.3
to 0.1.4, which builds the esp32 BT controller in BLE-only mode (classic
BR/EDR + A2DP/SPP/HFP dropped). OMG's BT stack is NimBLE (a BLE-only host)
and never uses classic Bluetooth, so it was unreachable dead weight.

Measured on a no-PSRAM Theengs Plug (esp32, NimBLE, MQTT over TLS):
- flash 89.5% -> 86.7% (-54 KB)
- runtime freemem +~10 KB: the dual-mode controller reserved heap for the
  classic BR/EDR baseband + 2 classic ACL connections at
  esp_bt_controller_init(); BLE-only skips it
- BLE scan/decode and GATT connect (BM2/BM6 battery reads, SwitchBot
  control) validated working

esp32-arduino-lib-builder change: theengs/esp32-arduino-lib-builder
mem/esp32-ble-only-controller (in 0.1.4).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 20:18:55 -05:00
ddd05ebe50 [CI] Pin SmartRC-CC1101-Driver-Lib via GitHub URL (#2304)
The PlatformIO library registry can no longer resolve
SmartRC-CC1101-Driver-Lib@2.5.7:

  Library Manager: Installing SmartRC-CC1101-Driver-Lib @ 2.5.7
  Warning! Could not find the package with 'SmartRC-CC1101-Driver-Lib @ 2.5.7'
    requirements for your system 'linux_x86_64'

This breaks every CC1101-based environment in the nightly build:
esp32dev-rtl_433, esp32dev-pilight-cc1101, esp32dev-multi_receiver,
esp32dev-somfy-cc1101, nodemcuv2-rf2-cc1101, and others fail with:

  main/commonRF.cpp:30:14: fatal error: ELECHOUSE_CC1101_SRC_DRV.h: No such file

Switch to the upstream GitHub release URL, matching how other
removed-from-registry libs in this file are pinned (m5tough, stl,
shtc3, etc). The v2.5.7 tag still exists in the upstream repo.

Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 06:20:50 -05:00
7551ed9e22 [MEM] Enable PSRAM on Theengs Bridge v1.1 (ESP32-WROVER-IE) (#2303)
- Switch Ethernet RMII clock from GPIO16 to GPIO0 output mode,
  freeing GPIO16 for PSRAM chip select (SPICS1) on WROVER-IE
- Enable PSRAM with QIO flash mode and cache workaround flags
- Add PHY pre-power support for ETH_CLOCK_GPIO0_IN mode
- Report PSRAM status and free memory in SYS MQTT topic

Requires Theengs lib-builder update: remove LIBTIME from IRAM
cache workaround (CONFIG_SPIRAM_CACHE_LIBTIME_IN_IRAM=n) to
free ~3.5KB IRAM for the -mfix-esp32-psram-cache-issue flag.

Tested on Theengs Bridge v1.1: 4MB PSRAM detected, Ethernet
100Mbps on GPIO0, BLE scanning nominal.

Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 15:59:12 -05:00
Northern Man 50ff9f535f [RF] Update to rtl_433_ESP 0.5.0 2025-12-07 10:16:22 -06:00
75f9d30919 [SYS] Update to Arduino 3.3.3 and use custom libs (#2248)
* Update Arduino core to v3.3.2 and use custom Arduino libs

* Update Python version and install uv in build.yml (#2247)

Updated Python version and added uv installation step.

---------

Co-authored-by: Ryan Powell <ryan@nable-embedded.io>

* fix builds

* Update scripts/add_c_flags.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fetch archives instead of cloning libraries

* Update to Arduino 3.3.3

---------

Co-authored-by: h2zero <powellperalata@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-10 07:36:09 -06:00
FlorianandFlorian e495b61216 [SYS] Fix ESP8266 local builds (#2234)
Following #2232

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2025-08-20 06:16:47 -05:00
Tom Roush b8b427555a [BOARD] Support lilygo-t3-s3 (#2160)
* Support lilygo-t3-s3

* Add to CI list

* Use espressif32@6.10.0 platform
2025-06-28 14:42:12 -05:00
Ryan Powell 3f569b9de3 [BLE] Update NimBLE-Arduino to 2.3.2 (#2201) 2025-06-28 14:40:10 -05:00
PLCHome 9b6e835afb [RF] An FSK version for esp32dev-rtl_433 has been added (#2195)
* An FSK version for esp32dev-rtl_433 has been added to handle the Bresser 5-in-1 weather station with a standard 868 MHz c1101

* Change platform and DGateway_Name
2025-05-23 19:29:14 -05:00
Ryan Powell 585df9a420 [SYS] Update arduino core to 3.1.1 + refactor ino to cpp (#2177)
* Update arduino core to 3.1.1

* Fix Blufi build

* Update arduinojson, fix build errors with idf

* Fix narrowing

* fix RF builds

* WIP-Convert ino files to cpp

* Fix pilight build

* Fix Somfy actuator build.

* Update esp32dev-rf partition

* Fix Weatherstation build

* Fix GFSunInverter build

* Fix esp32dev-ir build

* Fix ble-aws build

* Fix eth builds

* Fix m5Stack missing pins_arduino.h

* Fix build errors for M5 stack/tough, others are upstream issues.

* Fix RTL 433 build - remaining errors are from radolib

* Fix nodemcu build

* fix 2g builds

* Fix serial build

* Fix actuator on off builds

* Fix SSD1306 build - remaining errors are from radiolib

* Fix multiple definition of OTAserver_cert

* Fix nodemcu rf2 build

* Fix ADC builds

* Fix sensor builds

* Fix LORA builds

* Fix multi-receiver builds - remaining errors are in radiolib

* Fix fastled builds

* Fix theegns board builds

* Fix broker builds

* Update fastled - old version failed all-test build

* Fix RN8209 builds

* Fix max temp actuator builds

* Fix PWM builds

* Fix C37 sensor builds

* Fix HTU21 builds

* Fix INA266 builds

* Fix undefined variables in mqtt discovery

* Fix webui build

* Fix fastled invalid pin error

* Fix wifi manual setup builds

* Fix onewire/all-test build - bin too big error remaining

* Fix theengs plug build

* Fix rfbridge builds

* Fix blufi builds

* Fix undefined functions in serial

* Fix preprocessor definition checks

* Set IDF log level to erre

* Add delay in loop to prevent watchdog timeout

* Use xTaskCreateUniveral to support single core processors

* Remove old HTTPUpdate files - upsteam fixed.

* Cleanup and move common declarations to header file

* Use custom partiton table to fix builds where bin is too large

* Update M5StickC - fixs esp32-m5stick-c-ble build

* Revert to Arduino core 2.x for builds with incompatible libs

* Remove "Z" from file names and rename omg_common to TheengsCommon

* Fix gateway name when using MAC with new Arduino core

* Update IDF config to reduce loop task stack use

* Update esp-nimble-cpp version, corrects BLE uppercase ID's

* Update wifi manager to fix watchdog timeout error
2025-05-06 19:35:50 -05:00
Ryan Powell d03795d0bf [BT] Update NimBLE-Arduino to 2.2.1 (#2140)
* Update NimBLE-Arduino to 2.2.1

* Add BLE OTA update capability.
2025-02-01 12:21:40 -06:00
Northern Man 3db54b4266 Update to rtl_433_esp - for testing of the integrated package (#2125) 2024-12-18 07:55:14 -06:00
DigiH 9bb7751b8d [BT] Decoder development link (#2120) 2024-11-24 13:13:57 +01:00
FlorianandFlorian 8bad846d94 [BT] Update Theengs decoder to v1.8.0 (#2113)
Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-11-15 09:47:38 -06:00
FlorianandFlorian 87228b5f29 [SYS] Bump ESP8266 framework version to 4.2.1 (#2102)
Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-11-10 08:24:31 -06:00
Michael HaberlerandMichael Haberler f86d89db85 [BOARD] add esp32s3-m5stack-stamps3 (#2088)
* [BOARD] add esp32s3-m5stack-stamps3

https://docs.m5stack.com/en/core/StampS3

* [BOARD] add esp32c3u-m5stamp

button long-press reset verified to work

* add build environments for addional M5Stack targets

esp32s3-m5stack-stamps3
esp32c3u-m5stamp

---------

Co-authored-by: Michael Haberler <git@mah.priv.at>
2024-10-15 06:42:58 -05:00
puterboy 4f26d39b93 [RF] Bumped rtl_433_ESP to v0.3.3 to increases rtl_433_Decoder_Stack size to prevent OOM crash (#2082) 2024-10-06 18:19:46 -05:00
Florian 8a28bb2cf8 [SERIAL][BREAKING] RS232 change to SERIAL GATEWAY (#2008)
Make the RS232 more generic by converting it to a Serial Gateway
Add the capability to decode BLE data coming through Serial
2024-08-16 11:23:39 -05:00
James Coleman ada83bf227 [IR] Fix errors noticed when sending IR codes (#1991) 2024-07-17 10:26:41 -05:00
Michał Leśniewski 9257433a50 [SYS] Use PicoMQTT for MQTT communication (#1954)
* Update Arduino core for selected configurations

* Use PicoMQTT for MQTT communication
2024-07-03 11:39:58 -05:00
Florian f98474bed0 [SYS] Multiple connections management (#1947)
Enable the management of different connections at runtime with a set of certs for each.
Add parameters to the WiFi Manager onboarding, client certificates, and certificate validation
2024-05-20 09:30:49 -05:00
Florian 2065d57e11 [BOARDS] Remove Arduino boards (#1929) 2024-04-10 15:48:05 -05:00
h2zeroandh2zero ffe88feddc [SYS] Add Blufi support (#1913)
* First build with IDF, tested with esp32dev-ble only.

* Fix frameworks for non-esp32 boards

* Add blufi support.

* Adds an environment to use esp-idf and Arduino as a component to facilitate incorporating blufi for onboarding and configuration.

---------

Co-authored-by: h2zero <powellperalata@gmail.com>
2024-03-15 07:53:13 -05:00
Florian ef07a339ab [SYS] Avoid logging sensitive information on serial (#1879)
WiFi Manager log level to Notify
Remove MQTT information to serial
Remove system information to serial when changing with WebUI
2024-01-27 17:32:29 -06:00
Florian 4e44874149 [BT] Timeout for MUE4094RT (#1871) 2024-01-18 09:57:56 -06:00
Florian e0723c40df [WEB] Fix web serial console (#1863) 2024-01-11 10:58:40 -06:00
Florian f1f27cc83e [DEV] Add automatic BT lib replacement for BLE environments (#1860)
So that the replacement is done locally on the development environments but also with the CI
2024-01-09 12:52:59 -06:00
DigiH f2d3239350 [BT] Bump Theengs Decoder to 1.6.7 & prmac conversion to RMAC (#1844)
• Bump Theengs Decoder to 1.6.7
• Conversion of prmac decoders to RMAC, for RMAC filtering of random MAC devices, until and if OpenMQTTGateway gets Identity MAC/IRK functionality.
•HA discovery lock class added
2023-12-22 13:18:14 +01:00
Florian e4446407f1 [RTL_433] Bump ESP RTL_433 library (#1842) 2023-12-18 09:50:19 -06:00
DigiH 4c633da151 [BT] Bump Theengs Decoder to 1.6.4 & NUTALE added as presence tracker (#1818)
• Bump Theengs Decoder to 1.6.4
• NUTALE added as presence tracker
• Small doc changes
2023-12-06 10:56:47 -06:00
Florian 7db2e93c28 [RTL_433][BREAKING] Beta support for FSK modulation, webUI frequency and active receiver change (#1812)
* [FSK] Add Lilygo Heltec environment with FSK modulation

Enable RTL_433 frequency and active receiver change with WebUI
Add FSK environment for Heltec and Lilygo
2023-12-01 13:16:03 -06:00
Florian 87b26c867f [BT] Bump Theengs Decoder to 1.6.3 (#1811) 2023-11-20 15:56:27 -06:00
Florian cf21aed90c [BOARD] Add Theengs Bridge (#1799) 2023-11-13 17:14:58 -06:00
Florian 5a36034a2f [BT] - Bump decoder to v1.6.2 (#1797)
* [BT] Bump decoder to v1.6.2

* Replace separators / by commas for consistency with Theengs
2023-11-12 13:00:28 -06:00
Florian 5e01f40829 [BOARD] Differentiate Pilight from multi receiver environment (#1785) 2023-10-28 14:28:38 -05:00
Florian dd5e565788 [SYS] Configuration portal for Ethernet board and HA link to config (#1761)
* [SYS] Configuration portal for Ethernet board

Enable Wifi Manager as a configuration portal for Ethernet boards, also leverage the Wifi Access point as a fallback connectivity method

Add link to the WebUI from HA and reduce key length

* Remove unnecessary environment

Now that one environment cans support wifi and ethernet, merge the 2
2023-10-03 07:33:47 -05:00
Florian 246423a8a8 [LORA] Improvements, change frequency, webUI, Oled support, add boards (#1742)
* [LORA] Capability to change LORA frequency and Add OLED

Merge of the 2 environments for TTGO V1

* Merge messages keys with upper level json

* Id as a sub topic

* Add display and state measures

* Add frequency configuration through WebUI

* Add parameters

* Add auto discovery

* Add node example for ttgo lora32 v1

* Add environments and fix scope

* Support for sync word as a byte

* Fix TX Power setting

* Add LoRa gateway description

* Add onlyknown filter
2023-09-27 11:12:55 -05:00
DigiH 592dcd3be6 BM2 name extension (#1750) (#1754)
BM2 name extension for connection
2023-09-22 18:23:33 +02:00
Florian f974f24411 [BOARD] Add M5Stack AtomS3U (#1740) 2023-09-21 20:53:44 -05:00
DigiH 9d8a96a5af Bump decoder to 1.5.7 (#1707) 2023-07-02 18:14:45 +02:00
Florian 4ff05d5ac4 Bump decoder to 1.5.5 (#1699)
Filter the new attribute mac to avoid creating discovery sensor for it
2023-06-27 08:03:46 -05:00
Florian b6df2006bf [BT] Bump decoder to v1.5.0 (#1672) 2023-06-08 19:52:48 -05:00
Northern Man 7f7eed8812 [RF] rtl_433_ESP to version 0.3.0 (#1668)
Update to rtl_433_ESP 0.3.0
Resolves issue with sx127x chipset and receiving higher frequencies
Includes support for receiving FSK signals, requires compiler directive OOK_MODULATION=false to switch to FSK mode
Adds unit of measure for rtl_433/battery_ok devices RTL_433_ESP Battery Auto Discovery Missing Unit of Measurement #1644
Updates value template for rtl_433/battery_ok in openHab mode
Resolves out of stack space crash lilygo-rtl_433 crash after chacon remote control button pressed #1655
2023-06-08 08:40:38 -05:00
Florian 6e23ca029b [DISC] Add runtime configuration for OpenHAB (#1658)
* [DISC] Add runtime configuration for OpenHAB

Add an MQTT configurable system key "ohdiscovery" for OpenHAB auto discovery

* Docs and environments update
2023-05-31 11:35:35 -05:00
Northern Man 8d5c2c4d58 [WebUI] Final Changes Pre Release (#1613)
Description:
1 - Fix nextDisplayPage/nextWebUIPage sync with SSD1306
2 - Discovery message name is SS1306
3 - Stack size tuning - ARDUINO_LOOP_STACK_SIZE=9600

With this change, in your personal ESP32 platformio environments you need to change ${com-esp.build_flags} to ${com-esp32.build_flags} and ${com-esp.lib_deps} to ${com-esp32.lib_deps}
4 - On information page, fix module display
5 - Set OTA URL to String systemUrl = RELEASE_LINK + latestVersion + "/" + ENV_NAME + "-firmware.bin";
6 - Allow back level espressif32 framework support
2023-04-24 07:46:30 -05:00
Northern Man 04d7a205d1 Update to version to RTL_433_ESP version 0.2.1 (#1612)
* Update to version 0.2.1

* Lint
2023-04-19 10:58:33 -05:00