velxio/test
David Montero 173cc3ea36 feat(picow): IoT gateway — proxy browser HTTP into the chip's server
ESP32 web-server examples are reachable from the browser via
/api/gateway/<client_id>/ (QEMU slirp hostfwd). The Pico W server lives
in the browser-side lwIP, so there was no inbound path: visiting the
chip's IP did nothing.

Add the mirror of tcp_nat.py: tcp_inbound.TcpInbound originates a TCP
connection INTO the chip over the WebSocket bridge (SYN -> SYN+ACK ->
ACK -> request -> response -> FIN), so the backend can fetch a page the
sketch serves on 10.13.37.42:80 and hand it back to the browser.

- bridge.py routes chip TCP segments addressed to a gateway-opened
  connection to TcpInbound (before the chip-initiated NAT, which would
  RST them); exposes http_into_chip() + ensure_chip_mac() (primes the
  chip's gateway ARP).
- iot_gateway.py: same /api/gateway/<client_id>/ route now falls through
  to the Pico W bridge when there's no ESP32 instance, builds a raw
  HTTP/1.1 request, and parses the chip's response. Same plan gate, same
  URL shape — the browser sees no difference between ESP32 and Pico W.

Validated end to end (real RP2040 emulator serving an HTTP page ->
gateway returns it) plus 6 unit tests for the TCP state machine,
response parsing and ARP priming.
2026-06-14 02:15:53 +02:00
..
autosearch
backend feat(picow): IoT gateway — proxy browser HTTP into the chip's server 2026-06-14 02:15:53 +02:00
esp32
esp32-emulator refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
esp32_cam Refactor ESP32 library management and add regression tests for issue #129 2026-04-30 23:49:46 -03:00
multi_board
multi_board_esp32
pi3_console_boot feat(pi3): switch from raspi3b to virt + virtio (Phase 1) 2026-05-18 05:36:13 +02:00
pi3_protocols fix(test): pi3 bme280 attach test sys.path + block-read race 2026-05-18 20:39:12 +02:00
pi_arduino_serial refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
pico_doom_demo fix(ili9341): debounce flush instead of rAF — paint on frame boundary 2026-05-16 00:48:38 -03:00
test-esp32-cam refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test-esp32-p4 docs: add ESP32-P4 research and feasibility report 2026-05-06 15:48:05 -03:00
test_100_days refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_Raspberry_Pi_Pico_W refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_chip_backend_runtime
test_circuit refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_custom_chips fix(chipbus): Galaksija boots + displays + types live in the browser 2026-06-05 15:47:30 -03:00
test_custom_chips_boards
test_epaper fix(epaper): wrap RAM Y counter at window end (tri-colour red plane) 2026-06-04 23:15:37 -03:00
test_intel refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
test_micropython_i2c_minimal test(esp32): add MicroPython I2C reproduction tests for IWDT bug 2026-05-23 22:27:16 +02:00
test_micropython_i2c_ssd1306_repro test(esp32): add MicroPython I2C reproduction tests for IWDT bug 2026-05-23 22:27:16 +02:00
test_micropython_wifi_trace test(esp32): add MicroPython WiFi register trace + Phase 7 repro 2026-05-24 16:48:53 +02:00
docker-errors-2026-04-19.md