From 75f9d3091960a9aa871d9f667e3ce8e9129e3711 Mon Sep 17 00:00:00 2001 From: Ryan Powell Date: Mon, 10 Nov 2025 06:36:09 -0700 Subject: [PATCH] [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 * 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 Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 16 +++-- .github/workflows/build_and_docs_to_dev.yml | 14 ++-- .github/workflows/release.yml | 10 ++- docs/upload/builds.md | 2 + docs/upload/portal.md | 1 + environments.ini | 78 +++++++++++++-------- main/blufi.cpp | 2 +- platformio.ini | 52 +++++++------- prod_env.ini.example | 4 ++ scripts/add_c_flags.py | 8 +++ 10 files changed, 118 insertions(+), 69 deletions(-) create mode 100644 scripts/add_c_flags.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7827abbd..7ad46d4e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,17 +93,23 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" - - name: Install platformio + python-version: '3.13' + - name: Install uv + uses: astral-sh/setup-uv@v6 + with: + version: "latest" + enable-cache: false + - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install platformio - pip install setuptools + uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.18.zip - name: Extract ESP32 platform version from platformio.ini run: | ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV - name: Run PlatformIO + env: + PYTHONIOENCODING: utf-8 + PYTHONUTF8: '1' run: platformio run -e ${{ matrix.environments }} - name: Upload Assets uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build_and_docs_to_dev.yml b/.github/workflows/build_and_docs_to_dev.yml index b166160b..553b6546 100644 --- a/.github/workflows/build_and_docs_to_dev.yml +++ b/.github/workflows/build_and_docs_to_dev.yml @@ -17,12 +17,15 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@v6 + with: + version: "latest" + enable-cache: false - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install platformio requests shutils - npm install + uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.18.zip - name: Set sha tag run: | sed -i "s/version_tag/${{ steps.short-sha.outputs.sha }}/g" main/User_config.h scripts/latest_version_dev.json @@ -33,6 +36,9 @@ jobs: ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV - name: Run PlatformIO + env: + PYTHONIOENCODING: utf-8 + PYTHONUTF8: '1' run: | export PLATFORMIO_BUILD_FLAGS="'-DDEVELOPMENTOTA=true'" platformio run diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f35be8a5..31b2d31a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,11 +13,15 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@v6 + with: + version: "latest" + enable-cache: false - name: Install platformio run: | - python -m pip install --upgrade pip - pip install platformio + uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.18.zip - name: Set version tag from git run: sed -i "s/version_tag/${GITHUB_REF#refs/tags/}/g" main/User_config.h scripts/latest_version.json - name: Extract ESP32 platform version from platformio.ini diff --git a/docs/upload/builds.md b/docs/upload/builds.md index f97c6ce6..8d2ffa7a 100644 --- a/docs/upload/builds.md +++ b/docs/upload/builds.md @@ -151,6 +151,7 @@ Example to add IR to `esp32dev-rf` add the `build_flags` below to the env defini ``` ini [env:esp32dev-rf] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev lib_deps = ${com-esp.lib_deps} @@ -187,6 +188,7 @@ With PIO you can also upload the firmware through Over the Air, so as to do that ``` ini [env:esp32-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = diff --git a/docs/upload/portal.md b/docs/upload/portal.md index 1e9140e5..d9b31002 100644 --- a/docs/upload/portal.md +++ b/docs/upload/portal.md @@ -61,6 +61,7 @@ You can configure your MQTT server credentials and network configuration before ``` ini [env:esp32-olimex-gtw-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-gateway board_build.partitions = min_spiffs.csv lib_deps = diff --git a/environments.ini b/environments.ini index 37da16ec..0485c81d 100644 --- a/environments.ini +++ b/environments.ini @@ -51,8 +51,8 @@ custom_hardware = RFBridge v1 [env:theengs-bridge] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -89,8 +89,8 @@ custom_hardware = Theengs Bridge gateway ethernet [env:theengs-bridge-v11] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -134,9 +134,9 @@ custom_hardware = Theengs Bridge gateway ethernet ; safety-critical parameters. Doing so may lead to fire hazards or damage to the device. [env:theengs-plug] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv -extra_scripts = ${com-esp32.extra_scripts} lib_deps = ${com-esp32.lib_deps} ${libraries.ble} @@ -186,8 +186,8 @@ custom_hardware = Theengs Plug [env:esp32dev-all-test] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/alltest_large.csv lib_deps = ${com-esp32.lib_deps} @@ -270,6 +270,7 @@ build_flags = [env:esp32dev-rf] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -284,6 +285,7 @@ custom_description = RF gateway using RCSwitch library [env:esp32dev-pilight] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -297,6 +299,8 @@ custom_description = RF gateway using ESPilight library [env:esp32dev-pilight-cc1101] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} +extra_scripts = pre:scripts/add_c_flags.py board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -312,6 +316,7 @@ custom_description = Gateway using ESPilight library only, need CC1101 [env:esp32dev-somfy-cc1101] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -327,6 +332,8 @@ custom_description = Gateway using Somfy Remote library, need CC1101 [env:esp32dev-pilight-somfy-cc1101] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} +extra_scripts = pre:scripts/add_c_flags.py board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -344,6 +351,7 @@ custom_description = Gateway using Somfy Remote and ESPilight library, need CC11 [env:esp32dev-weatherstation] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -357,6 +365,7 @@ custom_description = Gateway to retrieve weather station data Ventus W174/W132 ( [env:esp32dev-gf-sun-inverter] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -371,6 +380,7 @@ custom_description = RS232 reading of GridFree Sun Inverter [env:esp32dev-ir] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -384,8 +394,8 @@ custom_description = Infrared (Emitting and receiving) using IRremoteESP8266 [env:esp32dev-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -401,8 +411,8 @@ custom_description = Regular BLE gateway with adaptive scanning activated, autom [env:esp32dev-ble-broker] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -419,8 +429,8 @@ custom_description = MQTT Broker with BLE gateway with adaptive scanning activat [env:esp32dev-ble-mqtt-undecoded] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -437,8 +447,8 @@ custom_description = BLE gateway with the decoding offloaded to Theengs Gateway [env:esp32dev-ble-aws] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -463,8 +473,8 @@ custom_description = BLE gateway with AWS integration capability [env:esp32feather-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = featheresp32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -481,8 +491,8 @@ custom_hardware = ESP32 Feather Adafruit [env:esp32-lolin32lite-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = lolin32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -511,8 +521,8 @@ custom_hardware = LOLIN 32 Lite [env:esp32-olimex-gtw-ble-eth] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-gateway -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -531,8 +541,8 @@ custom_hardware = OLIMEX ESP32 Gateway [env:esp32-olimex-gtw-ble-poe] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-poe -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -548,8 +558,8 @@ custom_hardware = OLIMEX ESP32 Gateway with POE [env:esp32-olimex-gtw-ble-poe-iso] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-poe-iso -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -565,8 +575,8 @@ custom_hardware = OLIMEX ESP32 Gateway with POE and ISO [env:esp32-wt32-eth01-ble-eth] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-gateway -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -585,8 +595,8 @@ custom_hardware = WT32 [env:esp32-olimex-gtw-ble-wifi] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-gateway -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -605,7 +615,6 @@ custom_hardware = OLIMEX ESP32 Gateway [env:esp32-m5stick-ble] platform = espressif32@6.1.0 board = m5stack-core-esp32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/no_coredump.csv lib_deps = ${com-esp32.lib_deps} @@ -629,7 +638,6 @@ custom_hardware = M5Stick Grey [env:esp32-m5stack-ble] platform = espressif32@6.1.0 board = m5stack-core-esp32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -654,7 +662,6 @@ custom_hardware = M5Stack Core [env:esp32-m5tough-ble] platform = espressif32@6.1.0 board = m5stack-core-esp32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -673,7 +680,6 @@ custom_hardware = M5Tough rugged [env:esp32-m5stick-c-ble] platform = espressif32@6.1.0 board = m5stick-c -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -704,7 +710,6 @@ custom_hardware = M5Stick C [env:esp32-m5stick-cp-ble] platform = espressif32@6.1.0 board = pico32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/no_coredump.csv lib_deps = ${com-esp32.lib_deps} @@ -734,8 +739,8 @@ custom_hardware = M5Stick CP [env:esp32-m5atom-matrix] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = pico32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/no_coredump.csv lib_deps = ${com-esp32.lib_deps} @@ -765,8 +770,8 @@ custom_hardware = M5 ATOM Matrix [env:esp32-m5atom-lite] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = pico32 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/no_coredump.csv lib_deps = ${com-esp32.lib_deps} @@ -1016,8 +1021,8 @@ custom_hardware = ESP32 HELTEC LORA32 V2 [env:heltec-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = heltec_wifi_lora_32_V2 -extra_scripts = ${com-esp32.extra_scripts} ; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h board_build.partitions = min_spiffs.csv lib_deps = @@ -1199,8 +1204,8 @@ custom_hardware = ESP32 LILYGO T3-S3 SX1276 v1.0 [env:lilygo-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = ttgo-lora32-v21 -extra_scripts = ${com-esp32.extra_scripts} ; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h board_build.partitions = min_spiffs.csv lib_deps = @@ -1250,6 +1255,8 @@ custom_description = Multi RF library with the possibility to switch between RTL [env:esp32dev-multi_receiver-pilight] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} +extra_scripts = pre:scripts/add_c_flags.py board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -1276,8 +1283,8 @@ custom_description = Multi RF library with the possibility to switch between ESP [env:tinypico-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = tinypico -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -1293,6 +1300,7 @@ custom_hardware = ESP32 TinyPICO [env:ttgo-lora32-v1] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = ttgo-lora32-v1 board_build.partitions = min_spiffs.csv lib_deps = @@ -1314,6 +1322,7 @@ custom_hardware= ESP32 TTGO LORA V1 [env:ttgo-lora32-v21] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = ttgo-lora32-v21 board_build.partitions = min_spiffs.csv lib_deps = @@ -1342,8 +1351,8 @@ custom_hardware = ESP32 LILYGO LoRa32 V2.1 # See version pinout differences here # https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436 platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = ttgo-t-beam -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -1372,6 +1381,7 @@ custom_hardware = TTGO T BEAM [env:heltec-wifi-lora-32] ; Heltec ESP32 Board with SSD1306 display platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = heltec_wifi_lora_32 board_build.partitions = min_spiffs.csv lib_deps = @@ -1402,7 +1412,6 @@ custom_hardware = ESP32 HELTEC LORA32 [env:shelly-plus1] platform = ${com.esp32_solo_platform} board = esp32-solo1 -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -1768,8 +1777,8 @@ custom_hardware = Sonoff Basic RFR3, [tutorial](https://1technophile.blogspot.co [env:esp32dev-ble-datatest] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -1789,6 +1798,7 @@ custom_description = Default BLE gateway with additional servicedata, manufactur [env:esp32s3-dev-c1-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-s3-devkitc-1 lib_deps = ${com-esp32.lib_deps} @@ -1807,6 +1817,7 @@ custom_description = BLE gateway on the S3 [env:esp32s3-m5stack-stamps3] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-s3-devkitc-1 lib_deps = ${com-esp32.lib_deps} @@ -1825,6 +1836,7 @@ custom_description = BLE gateway on the M5Stack StampS3 [env:esp32s3-atomS3U] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = m5stack-atoms3 lib_deps = ${com-esp32.lib_deps} @@ -1849,6 +1861,7 @@ custom_hardware = AtomS3U ESP32S3 [env:esp32c3-dev-m1-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-c3-devkitm-1 board_build.partitions = min_spiffs.csv lib_deps = @@ -1868,6 +1881,7 @@ custom_description = BLE gateway on the C3 [env:airm2m_core_esp32c3] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = airm2m_core_esp32c3 board_build.partitions = min_spiffs.csv lib_deps = @@ -1887,6 +1901,7 @@ custom_hardware = AirM2M ESP32C3-CORE ; Espressiv ESP32-C3-DevKitC-02 [env:esp32c3-dev-c2-ble] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-c3-devkitm-1 board_build.partitions = min_spiffs.csv lib_deps = @@ -1918,6 +1933,7 @@ custom_description = BLE gateway on Espressiv ESP32-C3-DevKitC-02 without loggin ; Wemos Lolin C3 mini v2.1.0 [env:esp32c3_lolin_mini] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = lolin_c3_mini board_build.partitions = min_spiffs.csv monitor_speed = 115200 @@ -1958,6 +1974,7 @@ build_flags = [env:esp32c3-m5stamp] ; https://docs.m5stack.com/en/core/stamp_c3 platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-c3-devkitm-1 board_build.partitions = min_spiffs.csv lib_deps = @@ -1981,6 +1998,7 @@ custom_hardware = M5Stamp C3 [env:esp32c3u-m5stamp] ; https://docs.m5stack.com/en/core/stamp_c3u platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32-c3-devkitm-1 board_build.partitions = min_spiffs.csv lib_deps = @@ -2003,8 +2021,8 @@ custom_hardware = M5Stamp C3U [env:thingpulse-espgateway] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = min_spiffs.csv lib_deps = ${com-esp32.lib_deps} @@ -2037,9 +2055,9 @@ custom_hardware = ThingPulse gateway single ESP32 [env:esp32dev-ble-idf] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} framework = arduino, espidf board = esp32dev -extra_scripts = ${com-esp32.extra_scripts} board_build.partitions = partitions/min_spiffs.csv board_build.embed_txtfiles = managed_components/espressif__esp_insights/server_certs/https_server.crt diff --git a/main/blufi.cpp b/main/blufi.cpp index 198e5374..669129c7 100644 --- a/main/blufi.cpp +++ b/main/blufi.cpp @@ -217,7 +217,7 @@ void set_blufi_mfg_data () { fields.uuids16 = &blufi_uuid; fields.num_uuids16 = 1; fields.uuids16_is_complete = true; - uint8_t omg_blufi_mfg_data[] = {BLUFI_MFG_ID, BLUFI_MFG_ID >> 8, 'O', gatewayState}; + uint8_t omg_blufi_mfg_data[] = {BLUFI_MFG_ID & 0xFF, (BLUFI_MFG_ID >> 8) & 0xFF, 'O', gatewayState}; fields.mfg_data = omg_blufi_mfg_data; fields.mfg_data_len = sizeof(omg_blufi_mfg_data); auto rc = ble_gap_adv_set_fields(&fields); diff --git a/platformio.ini b/platformio.ini index 8fcd0ab5..20da5ebe 100644 --- a/platformio.ini +++ b/platformio.ini @@ -118,51 +118,51 @@ extra_configs = [libraries] arduinojson = ArduinoJson@6.18.5 -arduinolog = https://github.com/1technophile/Arduino-Log.git#6d1f14a +arduinolog = https://github.com/1technophile/Arduino-Log/archive/6d1f14a.zip picomqtt = PicoMQTT@1.1.1 -rc-switch = https://github.com/1technophile/rc-switch.git#98537e9 -newremoteswitch = https://github.com/1technophile/NewRemoteSwitch.git#8eb980e -ble = https://github.com/h2zero/NimBLE-Arduino.git#2.3.2 -irremoteesp = https://github.com/theengs/IRremoteESP8266#arduinov3 -lora = https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 -esppilight = https://github.com/theengs/ESPiLight#b9dd7a1 +rc-switch = https://github.com/1technophile/rc-switch/archive/98537e9.zip +newremoteswitch = https://github.com/1technophile/NewRemoteSwitch/archive/8eb980e.zip +ble = https://github.com/h2zero/NimBLE-Arduino/archive/2.3.2.zip +irremoteesp = https://github.com/theengs/IRremoteESP8266/archive/arduinov3.zip +lora = https://github.com/sandeepmistry/arduino-LoRa/archive/f4a1d27.zip +esppilight = https://github.com/theengs/ESPiLight/archive/b9dd7a1.zip rfWeatherStation = WeatherStationDataRx@0.3.1 -rfm69 = https://github.com/LowPowerLab/RFM69.git#2e915ea -rfm69spi = https://github.com/lowpowerlab/spiflash.git#9c0c2b9 +rfm69 = https://github.com/LowPowerLab/RFM69/archive/2e915ea.zip +rfm69spi = https://github.com/lowpowerlab/spiflash/archive/9c0c2b9.zip rfm69_low-power = Low-Power@1.6 dht = DHT sensor library@1.3.2 unifiedsensor = Adafruit Unified Sensor@1.1.4 tsl2561 = Adafruit TSL2561@1.0.3 bme280 = SparkFun BME280@2.0.4 -bmp180 = BMP180#efac46bd8d +bmp180 = https://github.com/xelarep/SFE_BMP180/archive/efac46b.zip htu21 = SparkFun HTU21D Humidity and Temperature Sensor Breakout@1.1.3 ahtx0 = Adafruit AHTX0 -ina226 = https://github.com/jarzebski/Arduino-INA226.git#968a684 -a6lib = https://github.com/h2zero/A6lib -wifimanager32 = https://github.com/h2zero/WiFiManager.git#1ac24f4 -wifimanager8266 = https://github.com/tzapu/WiFiManager.git#2.0.5-beta +ina226 = https://github.com/jarzebski/Arduino-INA226/archive/968a684.zip +a6lib = https://github.com/h2zero/A6lib/archive/fe873c9.zip +wifimanager32 = https://github.com/h2zero/WiFiManager/archive/1ac24f4.zip +wifimanager8266 = https://github.com/tzapu/WiFiManager/archive/2.0.5-beta.zip ethernet = Ethernet esp8266_mdns = esp8266_mdns wire = Wire fastled = fastled/FastLED@3.9.15 adafruit_neopixel = adafruit/Adafruit NeoPixel@^1.11.0 -onewire = https://github.com/h2zero/OneWire#GPIO-fix +onewire = https://github.com/h2zero/OneWire/archive/GPIO-fix.zip dallastemperature = DallasTemperature m5stickc = M5StickC@0.2.5 -m5stickcp = https://github.com/m5stack/M5StickC-Plus.git#0.1.1 +m5stickcp = https://github.com/m5stack/M5StickC-Plus/archive/0.1.1.zip m5stack = M5Stack@0.4.6 -m5tough = https://github.com/m5stack/M5Tough.git#ccf49e1 +m5tough = https://github.com/m5stack/M5Tough/archive/ccf49e1.zip smartrc-cc1101-driver-lib = SmartRC-CC1101-Driver-Lib@2.5.7 -stl = https://github.com/mike-matera/ArduinoSTL.git#7411816 -shtc3 = https://github.com/sparkfun/SparkFun_SHTC3_Arduino_Library +stl = https://github.com/mike-matera/ArduinoSTL/archive/7411816.zip +shtc3 = https://github.com/sparkfun/SparkFun_SHTC3_Arduino_Library/archive/671ef7e.zip somfy_remote=Somfy_Remote_Lib@0.3.0 -rtl_433_ESP = https://github.com/NorthernMan54/rtl_433_ESP.git#v0.4.0 +rtl_433_ESP = https://github.com/NorthernMan54/rtl_433_ESP/archive/v0.4.0.zip emodbus = miq19/eModbus@1.0.0 -gfSunInverter = https://github.com/BlackSmith/GFSunInverter.git#v1.0.1 -decoder = https://github.com/theengs/decoder.git#development -ssd1306 = https://github.com/ThingPulse/esp8266-oled-ssd1306.git#f96fd6a +gfSunInverter = https://github.com/BlackSmith/GFSunInverter/archive/v1.0.1.zip +decoder = https://github.com/theengs/decoder/archive/development.zip +ssd1306 = https://github.com/ThingPulse/esp8266-oled-ssd1306/archive/f96fd6a.zip lm75 = jeremycole/I2C Temperature Sensors derived from the LM75@^1.0.3 -rn8209 = https://github.com/theengs/RN8209C-SDK.git#arduino +rn8209 = https://github.com/theengs/RN8209C-SDK/archive/arduino.zip [env] framework = arduino @@ -179,7 +179,8 @@ monitor_speed = 115200 [com] esp8266_platform = espressif8266@4.2.1 -esp32_platform = https://github.com/pioarduino/platform-espressif32#53.03.11 +esp32_platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.33/platform-espressif32.zip +esp32_platform_packages = framework-arduinoespressif32-libs @ https://github.com/theengs/esp32-arduino-lib-builder/releases/download/0.1.0/esp32-arduino-libs.tar.gz esp32_solo_platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip atmelavr_platform = atmelavr@3.3.0 @@ -195,7 +196,6 @@ build_flags = ;'-DCORE_DEBUG_LEVEL=4' [com-esp32] ; Used by all ESP32 based builds -extra_scripts = pre:scripts/replace_lib.py lib_deps = ${env.lib_deps} ${libraries.wifimanager32} diff --git a/prod_env.ini.example b/prod_env.ini.example index 78a651a0..62dabcc4 100644 --- a/prod_env.ini.example +++ b/prod_env.ini.example @@ -7,6 +7,7 @@ default_envs = ;esp32 1 [env:esp32dev-ble-1] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -26,6 +27,7 @@ monitor_speed = 115200 ;esp32 2 [env:esp32dev-ble-2] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = esp32dev board_build.partitions = min_spiffs.csv lib_deps = @@ -60,6 +62,7 @@ board_build.flash_mode = dout [env:esp32-lolin32lite-ble-lp] platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = lolin32 board_build.partitions = min_spiffs.csv lib_deps = @@ -201,6 +204,7 @@ custom_hardware = Pool temp sensor first version [env:wemos-d1-uno32-HM-RD-deepsleep-waterleak] ;C-37, YL-83, HM-RD leak detector powered by battery using ESP32 Deepsleep and EXT0 wake by sensor state platform = ${com.esp32_platform} +platform_packages = ${com.esp32_platform_packages} board = wemos_d1_uno32 board_build.partitions = min_spiffs.csv lib_deps = diff --git a/scripts/add_c_flags.py b/scripts/add_c_flags.py new file mode 100644 index 00000000..902a95d4 --- /dev/null +++ b/scripts/add_c_flags.py @@ -0,0 +1,8 @@ +Import("env") + + +# General options that are passed to the C++ compiler +env.Append(CXXFLAGS=["-Wno-volatile"]) + +# General options that are passed to the C compiler (C only; not C++). +env.Append(CFLAGS=["-Wno-implicit-function-declaration"])