Matt
34c7264b70
Add zoom on scroll-wheel. Tidy up index.js
2025-12-15 21:53:32 +00:00
Matt
728097cc27
Update README.md
2025-12-15 11:39:26 +00:00
Matt
d93febedfa
Update README.md
2025-12-15 11:38:53 +00:00
Matt
3567574786
Typo in README.md
2025-12-15 00:57:38 +00:00
Matt
999472b6d6
Update README.md
2025-12-15 00:47:22 +00:00
Matt
5a7f7b716a
Update README.md
2025-12-15 00:46:46 +00:00
Matt
501220d828
Update README.md
2025-12-15 00:44:12 +00:00
Matt
2b9b8810f9
Add iimages to README
2025-12-15 00:33:43 +00:00
Matt
78a155e20a
Update README.md
2025-12-15 00:28:01 +00:00
Matt
40630a2123
Actualy log the SSID when retrying
2025-12-15 00:05:00 +00:00
Matt
f3f6b96bc9
Show SSID in logs
2025-12-14 23:52:29 +00:00
Matt
7e16498788
Update 3D design
2025-12-14 23:35:06 +00:00
Matt
bc97c96f2a
Update UI icons & show more wifi status via LED
2025-12-14 18:47:03 +00:00
Matt
9b534de1ec
Remove unecessary wake & Kconfig board-speicifc init
2025-12-14 17:55:48 +00:00
Matt
46514b5c76
Add soft-ap mode, remove wifi config.
...
Device defaukts to soft-ap mode. User can use the "WIFI" button to set wifi credentials. Pressing "boot" for 1 second resets to soft-ap mode.
Re-work UI to fill screen.
2025-12-14 11:23:18 +00:00
Matt
855d287e1d
Correct downsampling
2025-12-14 09:59:33 +00:00
Matt
1c29d37c6f
Replace form with div to avoid default button handling
2025-12-14 08:23:32 +00:00
Matt
2e36b44c7d
Really fix /poweroff
2025-12-14 00:17:11 +00:00
Matt
bc537c158a
Stop /poweroff reloading. Update 3D files
2025-12-13 23:53:34 +00:00
Matt
00c3c85c67
Add poweroff function & status LED. Include 3D files for Seeed XIAO
2025-12-13 17:38:18 +00:00
Matt
c762e0d632
CSS tweak
2025-12-13 11:27:31 +00:00
Matt
33f3360a4b
Choose buffer size/count to maintain packet rate to WS client at different sample rates
2025-12-13 11:21:09 +00:00
Matt
74dd3646b5
Performance tweaks
...
Optimization Walkthrough: 83kHz ADC Streaming
Achievement
Maximized the ESP32-C6 ADC continuous mode performance, achieving 83kHz stable streaming (hardware max) with 0 dropped packets.
Key Optimizations
1. Architecture: Zero-Copy Streaming
Change: Removed ws_sender_task and RingBuffer.
Mechanism:
adc_read_task
sends binary WebSocket frames directly.
Benefit: Reduced context switching and memory copies (approx +25% throughput).
2. Frontend: Decoupled Rendering
Change: Replaced onmessage -> draw() with requestAnimationFrame loop.
Mechanism: ws.onmessage only updates the data buffer. The browser draws at 60Hz.
Benefit: Eliminated UI jitter caused by drawing >60 times per second.
3. Latency: Power Save Disabled
Change: esp_wifi_set_ps(WIFI_PS_NONE)
Mechanism: Keeps the Wi-Fi radio active 100% of the time, preventing ~100ms sleep cycles.
Benefit: Eliminated periodic latency spikes which caused buffer overflows.
4. Buffering: Throughput Tuning
Change: ADC_READ_LEN increased 1024 -> 4096 bytes.
Change: Driver buffer max_store_buf_size increased 1024 -> 16384 bytes.
Benefit: Provided ~30ms of safety margin for Wi-Fi blocking operations, preventing driver-level overflows.
Final Configuration
Sample Rate: Up to 83kHz.
Packet Size: 4096 bytes (batched).
Latency: <50ms end-to-end.
Drops: 0.
2025-12-13 10:32:40 +00:00
Matt
d3dd05edc5
Increase buffer sizes to enable higher sample rates with less jitter
2025-12-13 00:26:46 +00:00
Matt
f77e4ae39a
Switch to binary websocket messages
2025-12-12 23:14:49 +00:00
Matt
5bc3940129
Fix typo
2025-12-12 22:18:48 +00:00
Matt
0e215331d1
Add README
2025-12-12 22:17:33 +00:00
Matt
af9630bc8c
Create sdkconfig.defaults for Wifi ssid/pwd
2025-12-12 22:06:39 +00:00
Matt
f6553d8e41
Inital commit
2025-12-12 21:55:13 +00:00