eddy
6a07505d02
ci: add version consistency check and fully automate release pipeline
...
CI / firmware (push) Successful in 1m13s
CI / android (push) Failing after 13s
- New tools/check_versions.sh: verifies version.txt, version.h, SylDaVersions.kt match
- release.yml: 'Verify version consistency' step after build, aborts release if mismatch
- ci.yml: same check after debug APK build
- scripts/release.sh: now runs full pipeline (pio run -> copy firmware -> gradle -> check)
and refuses dirty working tree
- Untrack version.h, SylDaVersions.kt, release/ — always regenerated fresh from version.txt
Prevents the v1.1 bug where stale generated files caused version mismatch
and infinite re-flash loop.
2026-08-03 15:28:00 +02:00
eddy
1d94f088fd
chore: update v1.1 release AAB and checksums
CI / firmware (push) Successful in 1m36s
Release / build (push) Failing after 1m33s
CI / android (push) Successful in 11s
v1.1
2026-08-03 15:20:33 +02:00
eddy
07a2d22f76
fix: sync firmware version.h (16->17) and SylDaVersions.kt (18->17) with version.txt
...
CI / firmware (push) Has been cancelled
CI / android (push) Has been cancelled
Release / build (push) Has been cancelled
Root cause: version.h and SylDaVersions.kt were stale, causing
app to expect BUILD_NR:18 while firmware reports BUILD_NR:16.
This triggered infinite re-flash loop on every 'Module bijwerken'.
Rebuilt firmware and APK so all versions agree on server=17/client=3.
Replace v1.1 release with corrected builds.
2026-08-03 15:19:12 +02:00
eddy
d952730566
fix(workflow): match signing.properties keys with build.gradle
CI / firmware (push) Successful in 1m24s
CI / android (push) Successful in 14s
Release / build (push) Successful in 1m44s
2026-08-03 14:47:16 +02:00
eddy
edd391620a
fix(workflow): create keystore dir before decoding
CI / firmware (push) Successful in 1m32s
Release / build (push) Failing after 1m24s
CI / android (push) Successful in 21s
2026-08-03 14:43:00 +02:00
eddy
e4c80d4955
fix(release): replace missing forgejo-release action with direct Forgejo API calls
...
CI / firmware (push) Successful in 58s
CI / android (push) Successful in 51s
Release / build (push) Failing after 1m17s
The forgejo-release@v1 action was never published to the Forgejo
packages registry, causing the release workflow to fail with a 404
when cloning the action. Replace it with curl calls to the Forgejo
API: POST /releases to create the release, then POST /assets for
each artifact file.
2026-08-03 14:24:21 +02:00
eddy
8b2dfcbfd0
Add app icon from icon.png (all densities)
CI / firmware (push) Successful in 1m16s
CI / android (push) Successful in 5s
2026-08-02 21:37:05 +02:00
eddy
d0cf506fbe
Release v1.1: server=17 client=3
CI / firmware (push) Successful in 1m23s
CI / android (push) Successful in 5s
Release / build (push) Failing after 1s
2026-08-02 21:31:25 +02:00
68aec28fe2
Merge pull request 'Scan on service UUID instead of device name (issue #10 )' ( #14 ) from fix/issue-10-ble-scan-service-uuid into main
CI / firmware (push) Successful in 1m11s
CI / android (push) Successful in 5s
2026-08-02 21:28:00 +02:00
eddy
7bdd50b16e
Scan on service UUID instead of device name (issue #10 )
...
CI / firmware (pull_request) Successful in 1m16s
CI / android (pull_request) Successful in 5s
- Replace name-based scan filter (getName() == 'SylDa_Server') with
isAdvertisingService(SERVICE_UUID) to prevent BLE name spoofing
- Post-connect UUID verification via UUID_CHAR_UUID was already in place
- Update log messages to reflect service-UUID-based scanning
2026-08-02 21:27:19 +02:00
eddy
faa4011fd1
Skip auto-detect when UPLOAD_PORT already set via CLI or config
CI / firmware (push) Successful in 1m11s
CI / android (push) Successful in 5s
2026-08-02 21:23:44 +02:00
87eefe4a3c
Merge pull request 'Auto-detect upload port via ID? serial query (issue #11 )' ( #13 ) from fix/issue-11-portable-upload-port into main
CI / firmware (push) Successful in 1m27s
CI / android (push) Successful in 6s
2026-08-02 21:19:04 +02:00
eddy
bf6619aa54
Auto-detect upload port via ID? serial query (issue #11 )
...
CI / firmware (pull_request) Successful in 1m22s
CI / android (pull_request) Successful in 7s
- Add ID? command to firmware: server responds 'SylDa_Server', client 'SylDa_Client'
- Add tools/pio_upload_port.py POST-script that queries connected ESP32s
- Remove hardcoded upload_port from platformio.ini
- Script logic: 1 ESP32 → use directly, 2+ → ID? query, no match → prompt user
- Requires pyserial for serial queries (graceful fallback if missing)
2026-08-02 21:18:26 +02:00
f8d4e96241
Merge pull request 'Replace Serial.* logging with ESP_LOG* macros (issue #8 )' ( #12 ) from fix/issue-8-cleanup-logging into main
CI / firmware (push) Successful in 1m12s
CI / android (push) Successful in 7s
2026-08-02 20:57:40 +02:00
eddy
4aa2a750d9
Review fixes: Serial ERROR→ESP_LOGE, heartbeat→ESP_LOGD
...
CI / firmware (pull_request) Successful in 1m26s
CI / android (pull_request) Successful in 5s
- Replace remaining Serial.println("ERROR:...") with ESP_LOGE in client.cpp
- Add Serial.println("ERROR") for protocol response where needed
- Downgrade heartbeat from ESP_LOGI to ESP_LOGD (not needed in production)
2026-08-02 20:56:37 +02:00
eddy
32489fbabb
Replace Serial.* logging with ESP_LOG* macros (issue #8 )
...
CI / firmware (pull_request) Successful in 1m21s
CI / android (pull_request) Successful in 7s
- Convert all Serial.println/printf debug logging to ESP_LOGE/W/I/D
- Add TAG-based log identification (server/client)
- Lower CORE_DEBUG_LEVEL from 5 to 3 for production
- Keep Serial.printf for USB serial protocol commands (KEY?, VERSION?, etc.)
2026-08-02 20:51:21 +02:00
eddy
0261c73746
docs: update README — LED signaling, dual-target, BLE spoofing issue, version.txt
CI / firmware (push) Successful in 1m4s
CI / android (push) Successful in 6s
2026-08-02 20:34:42 +02:00
eddy
1d4991f77f
Merge PR #9 : LED uniforme signalering, uit na 60s stabiele verbinding ( fixes #4 )
CI / firmware (push) Successful in 1m5s
CI / android (push) Successful in 9s
2026-08-02 20:20:50 +02:00
eddy
95f440eec8
fix: relay buttons always enabled, touch sensor inversion, version bump
...
CI / firmware (pull_request) Successful in 1m19s
CI / android (pull_request) Successful in 9s
- MainActivity: remove isServer check — relay buttons always enabled when
connected, regardless of device mode (fixes silently broken buttons when
device mode accidentally set to 'client')
- client.cpp: invert HS-S43A touch sensor readings (!tActive) — sensors
are active LOW
- build.gradle: bump versionCode 2, versionName 1.1
- platformio.ini: use stable by-id port for server ESP32
- firmware/*.bin: rebuilt with LED signaling and touch fixes
2026-08-02 20:12:07 +02:00
eddy
84e6ca8100
fix(server): defer 0xFF OTA confirm to fix race condition
CI / firmware (pull_request) Successful in 1m4s
CI / android (pull_request) Successful in 8s
2026-08-02 18:42:07 +02:00
eddy
5fe5879873
docs: document version.txt as single source of truth for firmware versions
CI / firmware (pull_request) Successful in 1m4s
CI / android (pull_request) Successful in 11s
2026-08-02 18:30:22 +02:00
eddy
b233ba0ac4
chore: bump versions to server v16, client v2
2026-08-02 18:29:10 +02:00
eddy
6d027fd35b
chore: bump server v16, client v2
CI / firmware (pull_request) Successful in 1m1s
CI / android (pull_request) Successful in 48s
2026-08-02 18:21:05 +02:00
eddy
ebaaa8cc4b
feat(client): uniform LED signaling — off after 60s stable connection
2026-08-02 18:20:55 +02:00
eddy
d9ac8a578b
feat(server): uniform LED signaling — off after 60s stable connection
2026-08-02 18:20:30 +02:00
eddy
ff99fe0a90
docs: LED stable connection implementation plan ( #4 )
2026-08-02 18:19:20 +02:00
eddy
bb9701dac5
docs: LED stable connection design spec ( #4 )
2026-08-02 18:15:09 +02:00
eddy
0bf2dcd00f
Merge fix/issue-5-hs-s43a-s3r-cleanup: HS-S43A touch migration + S3R cleanup ( closes #5 )
CI / firmware (push) Successful in 1m18s
CI / android (push) Successful in 14s
2026-08-02 00:54:12 +02:00
eddy
109088cf52
Merge branch 'fix/issue-5-hs-s43a-s3r-cleanup'
2026-08-02 00:53:03 +02:00
eddy
b192c26ff6
Merge fix/issue-1-ota-ack: OTA confirm protocol, version 15
CI / firmware (push) Failing after 58s
CI / android (push) Has been skipped
2026-08-02 00:48:32 +02:00
eddy
516a938c7b
fix: OTA wait for 0xFF confirm before reboot, version bump to 15, improved logging
2026-08-02 00:48:28 +02:00
eddy
f74a4a5420
fix: Android send 0xFF reboot confirmation after OTA COMPLETE ( closes #1 )
CI / firmware (pull_request) Failing after 1m13s
CI / android (pull_request) Has been skipped
2026-08-01 23:14:29 +02:00
eddy
e5bb09e96e
docs: purge remaining S3R references from historical docs and handleiding
CI / firmware (pull_request) Successful in 1m20s
CI / android (pull_request) Successful in 13s
2026-08-01 22:57:40 +02:00
eddy
81779b6834
docs: purge S3R references from historical design docs and plans
2026-08-01 22:56:18 +02:00
eddy
23562352f6
fix: update build paths m5stack-atoms3r → s3lite-server
2026-08-01 22:55:30 +02:00
eddy
0860be0e2b
docs: update README for S3 Lite + HS-S43A, remove S3R references
2026-08-01 22:55:19 +02:00
eddy
165822735c
docs: update AGENTS.md for S3 Lite + HS-S43A touch sensors
2026-08-01 22:54:54 +02:00
eddy
5bb87ed4a4
fix: remove pullups, invert touch logic for HS-S43A sensors
2026-08-01 22:54:31 +02:00
eddy
a84727abdc
fix: relay pins G1/G2, OTA CCCD+retry, single version source
...
CI / firmware (push) Failing after 57s
CI / android (push) Has been skipped
- Relay pins: G39→G1, G38→G2
- BUNDLED_FIRMWARE_VERSION → SylDaVersions.SERVER (version.txt)
- OTA: explicit CCCD descriptor write for Android 13+
- OTA: start packet retry (previously no retry, blocked by pending CCCD)
- OTA: firmware path device-mode-aware (server/client subdirs)
- Removed stale root firmware.bin, flashMethodGroup, dialog_overwrite_confirm
- PrefsHelper: serverUUID/clientUUID persistence
2026-08-01 03:11:43 +02:00
eddy
45f8f38e81
chore: cleanup — .gitignore, track design docs
2026-08-01 00:52:03 +02:00
eddy
92c79ac93f
feat: MainActivity device mode — disable relay controls for client mode
2026-08-01 00:38:32 +02:00
eddy
ccfd7cb693
feat: EspFlasher split assets server/client based on deviceMode
2026-08-01 00:38:19 +02:00
eddy
793c8f190c
feat: Android — device/transport radio buttons, PrefsHelper keys
2026-08-01 00:37:52 +02:00
eddy
bce5fc4107
fix: client — spec compliance, memory leak, LED order
2026-08-01 00:35:15 +02:00
eddy
97c79b9f4c
feat: client firmware — touch/button, BLE scan, HMAC, server UUID verify, USB CDC provisioning
2026-08-01 00:32:23 +02:00
eddy
1e47fc3de7
fix: button toggle logic for relay1
2026-08-01 00:26:50 +02:00
eddy
a371e29058
chore: branch setup — version.txt, platformio.ini envs, qio_qspi
2026-08-01 00:19:42 +02:00
eddy
7b583c4a67
CI: fix ANDROID_HOME path for self-hosted runner
CI / firmware (push) Successful in 18s
CI / android (push) Successful in 16s
2026-07-31 00:10:05 +02:00
eddy
f87443148f
CI: replace unsupported upload/download-artifact@v4 with shared host dir
...
CI / firmware (push) Successful in 22s
CI / android (push) Failing after 4s
Forgejo does not support @actions/artifact v2 (GHES limitation).
Self-hosted jobs share /tmp/ci-artifacts between jobs.
2026-07-31 00:08:02 +02:00
eddy
7c0d817018
CI: remove pip install platformio (already in PATH via linuxbrew)
CI / firmware (push) Failing after 21s
CI / android (push) Has been skipped
2026-07-31 00:06:19 +02:00