Skip to content

Thermometer prepared send v0 - #9

Merged
dmitriyk-aethernet merged 52 commits into
mainfrom
thermometer-prepared-send-v0
Sep 25, 2026
Merged

dmitriyk-aethernet merged 52 commits into
mainfrom
thermometer-prepared-send-v0

Conversation

@BartolomeyKant

@BartolomeyKant BartolomeyKant commented Aug 27, 2026 •

Copy link
Copy Markdown
Collaborator

Adds the battery thermometer's prepared-send path: full startup exports a prepared message block, subsequent wakeups send the temperature using that block, and failures fall back to full Aether startup. Includes the thermometer's sensor, ULP, sleep, and peripheral power changes.

The PR contains only thermometer functionality and its regression tests. Benchmark firmware, experiment runners, reports, captured results, diagnostic receivers, and experiment-specific SDK configuration overlays have been removed. Both CMake files now select the thermometer sources directly and expose only its runtime configuration settings; prepared_send no longer depends on benchmark payloads or diagnostic APIs.

Validation: ESP32-C6 firmware configured, compiled, linked, and passed the partition size check in the local ESP-IDF 6.1 environment. The STCC4 host regression test passed. Hardware behavior has not been retested for this cleanup.

NikolayChirkov and others added 11 commits August 28, 2026 09:27
Harness measures init_to_release_ms; control run keeps SPIFFS state
and proves Connect(nullopt) restores ~3.5s cycles on ESP32-C6.

Co-authored-by: Cursor <cursoragent@cursor.com>
Hardware median ~3.6s for 10 FULL cycles without SPIFFS erase;
reboot 3 cycles stay in the same band.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract SendPreparedOnce for shared hot-path encoding, add ESP harness (AE_EXP_PREPARED_MESSAGE_E2E), desktop receiver, and document the ESP32-C6 coordinated run with timings in experiments/.
Split runtime Wi-Fi cleanup from cache invalidation, use BSSID/channel/static-IP fast connect, and measure 5 FULL + 100 prepared sends via binary Æther payloads with no UART.
Export Wi-Fi/IP/gateway-MAC from the live FULL connection so first prepared sends stay fast; install static ARP before sendto. Hardware 5x20 still shows poor delivery (29/100); hold=600 control did not help.

Co-authored-by: Cursor <cursoragent@cursor.com>
Prove losses track per-message Wi-Fi teardown/reassociation, not prepared packet path.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fix harness hang (4MB flash, deferred work after Update, no nested Write)
so B1 smoke and the full silent one-factor table can complete.

Co-authored-by: Cursor <cursoragent@cursor.com>
Measures ESP32-C6 reconnect cycles (channel+static IP+ARP baseline), finds WPA2 SAE-off + PRE/POST 200/300 as the most reliable long-run path (198/200 at 710ms vs ~850ms), and documents callback/auth/delay results without changing production SendPreparedOnce.

Co-authored-by: Cursor <cursoragent@cursor.com>
Register esp_wifi_set_tx_done_cb immediately before sendto, wait first
callback (no fingerprint), drop fixed POST=300; PRE=25 shortest screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
PRE=10/0 fail delivery on N50; keep late TX-done callback and PRE=25 winner.

Co-authored-by: Cursor <cursoragent@cursor.com>
NikolayChirkov and others added 15 commits August 29, 2026 14:07
AE_EXP_PREPARED_TX_DONE_DIAG builds skipped ExperimentEarlyAppEntry, so every wake looked like a non-deepsleep reset and forced FULL. Add FullReason/boot snapshots, clamp hot_index on Final, and document the loop diagnosis.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
One-flash MRT1 deep-sleep run calls esp_wifi_internal_set_retry_counter on the hot path only; CONTROL leaves it unset. Results do not confirm that RF/tx_done tails are driven by that counter.

Co-authored-by: Cursor <cursoragent@cursor.com>
Measure D/G/H/E runtime knobs (30 HOT each) plus combined winners validation without changing TX power or MAC retry policy.

Co-authored-by: Cursor <cursoragent@cursor.com>
Wire AE_EXP_PREPARED_AP_AETHERNETIO_3X10 bench (D1 path, 1 s deep sleep), extend DsPayload with association fields, and add orchestrator plus report from the first hardware run on SSID aethernetio.

Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop RX prints RUN/seq/recv/lost/loss%/dup with reset detection; ESP
FULL path uses monotonic uint32 sequence and silent tele/sdkconfig.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dmitriyk-aethernet
dmitriyk-aethernet merged commit fe3c7d9 into main Sep 25, 2026
3 checks passed
@dmitriyk-aethernet
dmitriyk-aethernet deleted the thermometer-prepared-send-v0 branch September 25, 2026 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants