Live UI connects, packets flow, but pose does not move correctly with 6 ESP32-S3 nodes on Windows
This issue describes a reproducible live-demo failure on April 13, 2026 using RuView v0.7.0 on Windows with 6 ESP32-S3 boards.
The setup reaches the point where:
- all 6 nodes are flashed and provisioned
- packets are transmitted over WiFi
- the local sensing server starts
- the UI loads successfully
- WebSocket clients connect
But the live pose in the UI still does not move correctly i.e it do not move at all.
Version and date
- RuView version:
v0.7.0
- Reproduced on: April 12, 2026
Host setup
- OS: Windows
- Host IP:
192.168.1.132
Hardware setup
6 x ESP32-S3 boards connected over USB and provisioned as:
- node
0 -> COM11
- node
1 -> COM15
- node
2 -> COM14
- node
3 -> COM16
- node
4 -> COM17
- node
5 -> COM18
All boards were detected by esptool as ESP32-S3 with 16MB flash.
WiFi / target config
- target host IP:
192.168.1.132
- original device UDP target:
5005
Important firmware bug reproduced first
Before UI testing, I reproduced the known packet identity bug:
- NVS provisioning uses unique
node-id values
- all 6 physical boards transmit from distinct IP addresses
- but every raw UDP packet arrives with
node_id = 1
That matches the known symptom where NVS reads correctly but the packet header still uses node 1.
Host-side workaround used
To get around the packet identity bug, I used a host-side relay that:
- listens on
5005
- rewrites packet byte
4 (node_id) based on source IP
- forwards patched packets to
127.0.0.1:5007
Recovered mapping:
192.168.1.61 -> node 0
192.168.1.101 -> node 1
192.168.1.77 -> node 2
192.168.1.37 -> node 3
192.168.1.142 -> node 4
192.168.1.49 -> node 5
This workaround is confirmed to work at the transport layer:
- patched capture on
5007 shows node IDs 0..5
/api/v1/sensing/latest shows six distinct node entries
Reproduction steps
- Flash all 6 ESP32-S3 boards with the release binaries.
- Provision each board with unique
node-id, tdm-slot, and tdm-total=6.
- Start the relay workaround:
cd C:\Projects\RuView_scripts
.\start_live_demo.ps1
This starts:
- relay
5005 -> 5007
- sensing server on HTTP
3000, WS 3001, UDP 5007
- Open the UI:
http://localhost:3000/ui/index.html
- or
http://localhost:3000/ui/pose-fusion.html
- In
pose-fusion.html, switch to:
and connect to:
ws://localhost:3000/ws/sensing
Observed behavior
- UI page loads
- sensing and pose WebSocket clients connect
- REST endpoints respond
- server logs show active WebSocket clients
- transport is live and multi-node IDs are restored by relay
But the live pose still does not move at all.
Symptoms:
- pose appears static or barely updates
- movement does not correspond well to real motion in front of the nodes
- the UI looks connected, but the visual result is not usable as live pose estimation
Server log excerpt
Example:
INFO sensing_server: UDP listening on 0.0.0.0:5007 for ESP32 CSI frames
INFO sensing_server: HTTP server listening on 127.0.0.1:3000
INFO sensing_server: WebSocket client connected (sensing)
INFO sensing_server: WebSocket client connected (pose)
Why this is notable
This repro is past the obvious transport failures:
- not a flash failure
- not a WiFi join failure
- not a missing UI path
- not a raw
node_id collision anymore, because relay restores 0..5
The remaining bug appears to be in the live pose/UI pipeline itself, or in how the sensing output is turned into live pose updates.
Logs available
I have logs for:
- probe
- flash
- provision
- serial capture
- raw UDP capture showing all packets as
node_id=1
- relay logs showing patched node IDs
0..5
- patched UDP capture on
5007
- sensing server stdout
/api/v1/sensing/latest
/api/v1/pose/current
Relevant run directories:
logs/20260412-221618-probe
logs/20260412-221642-flash
logs/20260412-221741-provision
logs/20260412-221757-serial-capture
logs/20260412-221905-udp-capture
logs/20260412-231229-udp-relay
logs/20260412-231229-udp-capture
logs/20260412-231321-relay-server-check
Question
Given that:
- the UI connects,
- the server has live data,
- and the relay restores distinct node IDs,
what is the expected supported path for live pose visualization in v0.7.0 for a real multi-node ESP32-S3 deployment on Windows?
Is the intended live UI currently:
index.html Live Demo,
pose-fusion.html in CSI-only mode,
- or only the REST output at
/api/v1/pose/current with no fully supported real-time visual UI yet?
Live UI connects, packets flow, but pose does not move correctly with 6 ESP32-S3 nodes on Windows
This issue describes a reproducible live-demo failure on April 13, 2026 using RuView v0.7.0 on Windows with 6 ESP32-S3 boards.
The setup reaches the point where:
But the live pose in the UI still does not move correctly i.e it do not move at all.
Version and date
v0.7.0Host setup
192.168.1.132Hardware setup
6 x ESP32-S3 boards connected over USB and provisioned as:
0->COM111->COM152->COM143->COM164->COM175->COM18All boards were detected by
esptoolas ESP32-S3 with16MBflash.WiFi / target config
192.168.1.1325005Important firmware bug reproduced first
Before UI testing, I reproduced the known packet identity bug:
node-idvaluesnode_id = 1That matches the known symptom where NVS reads correctly but the packet header still uses node
1.Host-side workaround used
To get around the packet identity bug, I used a host-side relay that:
50054(node_id) based on source IP127.0.0.1:5007Recovered mapping:
192.168.1.61-> node0192.168.1.101-> node1192.168.1.77-> node2192.168.1.37-> node3192.168.1.142-> node4192.168.1.49-> node5This workaround is confirmed to work at the transport layer:
5007shows node IDs0..5/api/v1/sensing/latestshows six distinct node entriesReproduction steps
node-id,tdm-slot, andtdm-total=6.This starts:
5005 -> 50073000, WS3001, UDP5007http://localhost:3000/ui/index.htmlhttp://localhost:3000/ui/pose-fusion.htmlpose-fusion.html, switch to:CSI Only (WiFi)and connect to:
ws://localhost:3000/ws/sensingObserved behavior
But the live pose still does not move at all.
Symptoms:
Server log excerpt
Example:
Why this is notable
This repro is past the obvious transport failures:
node_idcollision anymore, because relay restores0..5The remaining bug appears to be in the live pose/UI pipeline itself, or in how the sensing output is turned into live pose updates.
Logs available
I have logs for:
node_id=10..55007/api/v1/sensing/latest/api/v1/pose/currentRelevant run directories:
logs/20260412-221618-probelogs/20260412-221642-flashlogs/20260412-221741-provisionlogs/20260412-221757-serial-capturelogs/20260412-221905-udp-capturelogs/20260412-231229-udp-relaylogs/20260412-231229-udp-capturelogs/20260412-231321-relay-server-checkQuestion
Given that:
what is the expected supported path for live pose visualization in
v0.7.0for a real multi-node ESP32-S3 deployment on Windows?Is the intended live UI currently:
index.htmlLive Demo,pose-fusion.htmlin CSI-only mode,/api/v1/pose/currentwith no fully supported real-time visual UI yet?