From 84503f3a2489268cf5038f15097ab215ed11b10c Mon Sep 17 00:00:00 2001 From: eddy Date: Thu, 30 Jul 2026 23:38:32 +0200 Subject: [PATCH 1/4] fix: revert SDK 36 bump, fix NimBLE setMTU crash, add --no-stub for OPI flash --- AGENTS.md | 3 +- android/app/build.gradle | 4 +- .../app/src/main/assets/firmware/firmware.bin | Bin 539248 -> 539248 bytes .../java/nl/eddydevink/sylda/MainActivity.kt | 2 +- .../nl/eddydevink/sylda/SettingsActivity.kt | 2 +- .../app/src/main/res/layout/activity_main.xml | 106 ++++--- .../src/main/res/layout/activity_settings.xml | 261 +++++++++--------- platformio.ini | 3 +- src/main.cpp | 4 +- 9 files changed, 185 insertions(+), 200 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index dfba093..128ce01 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,8 @@ ESP32-S3-PICO-1-N8R8 (Atom S3R Voice), 2 relais, 2 touch sensors (JR223B), BLE, - PlatformIO, `platform = espressif32@6.7.0`, board `esp32-s3-devkitc-1` - CDC USB serial (`ARDUINO_USB_CDC_ON_BOOT=1`), QIO OPI flash -- Upload laptop: `pio run -t upload`, port `/dev/ttyACM0`, 115200 baud +- **Upload:** `pio run -t upload` (via `--no-stub`, OPI flash vereist dit). Poort: **NOOIT `/dev/ttyACM0`** (dat is het Atreus toetsenbord). ESP32 herkennen via `ls /dev/serial/by-id/ | grep -i espressif` en die poort gebruiken. PlatformIO: pas `upload_port` in `platformio.ini` aan naar de gevonden poort. +- **Direct flashen (handmatig):** `~/.platformio/packages/tool-esptoolpy/esptool.py --no-stub --chip esp32s3 --port /dev/ttyACM1 --baud 115200 --before default_reset --after hard_reset write_flash --flash_mode keep --flash_size keep 0x0 .pio/build/m5stack-atoms3r/bootloader.bin 0x8000 .pio/build/m5stack-atoms3r/partitions.bin 0xE000 ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x10000 .pio/build/m5stack-atoms3r/firmware.bin` - NVS: namespace "hmac", key "key" (32 bytes HMAC) - BLE advertising "SylDa_Server", HMAC-verified relay commands diff --git a/android/app/build.gradle b/android/app/build.gradle index 3e3b80c..4331f86 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -11,7 +11,7 @@ android { // compileSdk/targetSdk stays on 34 (Android 14) by deliberate choice. The target audience // consists of physically disabled users who are very reluctant to update their phones. Staying // on API 34 maximises device compatibility. Re-evaluate when the user base has migrated. - compileSdk 36 + compileSdk 34 if (hasSigningConfig) { def props = new Properties() @@ -30,7 +30,7 @@ android { defaultConfig { applicationId "nl.eddydevink.sylda" minSdk 26 - targetSdk 36 + targetSdk 34 versionCode 1 versionName "1.0" buildConfigField "String", "BUILD_NUMBER", "\"${new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date())}\"" diff --git a/android/app/src/main/assets/firmware/firmware.bin b/android/app/src/main/assets/firmware/firmware.bin index 9c849f5b467bf46a8f14b7c8d306d2e4654a9fab..b8d28b7439be720d7a36b8c042a93cd9ef509b92 100644 GIT binary patch delta 121 zcmV-<0EYkY^dRu`Ads*i8}+!qzNWzXbfmghZ(4>!H~!9LFh}UV+V%}>@b*fklY!V! zgCGI7AOQjJ{{j{DhY|q-hY|q;hY|qhY|q?w-NyeJvkvI^kgG}mL`k; bX$|gP{bKhLOA~Gp&M}>ZqIc)#DwIKknU^#< delta 121 zcmV-<0EYkY^dRu`Ads*i?z8*V)mI_DWMuI3bG7>-X2LlY!V! zgCGI7AOQjJ{{rdwhY|q-hY|q;hY|qhY|q?w-NyeJvkxLI83pq#h1yP by3o~W04cS7n^cXdK06{w7LIBWwk{_puXQ!| diff --git a/android/app/src/main/java/nl/eddydevink/sylda/MainActivity.kt b/android/app/src/main/java/nl/eddydevink/sylda/MainActivity.kt index 23e4f4e..87cb207 100644 --- a/android/app/src/main/java/nl/eddydevink/sylda/MainActivity.kt +++ b/android/app/src/main/java/nl/eddydevink/sylda/MainActivity.kt @@ -23,7 +23,7 @@ class MainActivity : AppCompatActivity(), BleCallbacks { private const val REQUEST_SETTINGS = 1 private const val POST_SETTINGS_RESCAN_MS = 500L private const val ON_RESUME_SCAN_DELAY_MS = 300L - private const val BUNDLED_FIRMWARE_VERSION = "5" + private const val BUNDLED_FIRMWARE_VERSION = "6" } private lateinit var manager: BleRelayManager diff --git a/android/app/src/main/java/nl/eddydevink/sylda/SettingsActivity.kt b/android/app/src/main/java/nl/eddydevink/sylda/SettingsActivity.kt index 10d810d..59ea230 100644 --- a/android/app/src/main/java/nl/eddydevink/sylda/SettingsActivity.kt +++ b/android/app/src/main/java/nl/eddydevink/sylda/SettingsActivity.kt @@ -64,7 +64,7 @@ class SettingsActivity : AppCompatActivity() { private const val REBOOT_WAIT_MS = 5000L private const val REBOOT_POLL_MS = 500L private const val REBOOT_MAX_WAIT_MS = 15000L - private const val EXPECTED_FIRMWARE_VERSION = "5" + private const val EXPECTED_FIRMWARE_VERSION = "6" } private enum class UsbAction { NONE, EXCHANGE_KEY, FLASH } diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml index 730ca59..1219dc9 100644 --- a/android/app/src/main/res/layout/activity_main.xml +++ b/android/app/src/main/res/layout/activity_main.xml @@ -2,77 +2,69 @@ - - + android:padding="16dp"> - - - - - - - -