velxio/backend/app
David Montero Crespo 2b528bfefc fix(esp32): render GxEPD2 ePaper panels (WS plumbing + native rotation)
ESP32 ePaper examples (e.g. epaper-2in9-esp32-weather) rendered as a blank
white panel. Two bugs, both above the SPI layer:

1. The worker's epaper_update event nested its payload under 'data', unlike
   every other (flat) worker event. The backend qemu_callback re-wraps the
   post-'type' payload under 'data', so the frontend received
   msg.data.data.component_id (undefined) and EPaperPart bailed on
   id !== componentId, so paintFrame/putImageData never ran. Emit it flat.

2. Ssd168xEpaperSlave was sized to the display dims (296x128), but GxEPD2
   with setRotation(1) writes the controller's NATIVE RAM (128x296). The
   _y < height bound dropped rows 128-295 (half the image) and compose
   never rotated. Size RAM to the longer side, compose in the native
   active-window geometry (0x44/0x45), then rotate to the display
   orientation (inverse of Adafruit_GFX rotation 1). Add is_bwr (from
   panel_kind): B/W panels init the 0x26 plane white and compose
   white-only-if-both (GDEY029T94 mirrors the image into 0x26); tri-colour
   panels keep red init 0x00 and red-wins.
2026-06-04 23:15:37 -03:00
..
api feat: STM32 (Blue Pill / Black Pill) QEMU emulation + Pro board gating 2026-05-30 19:06:14 -03:00
core feat(hooks): iot_gateway_gate extension point + content-negotiated 402 2026-05-29 19:44:30 +02:00
database refactor(oss-split): remove auth/DB/admin stack from OSS 2026-05-14 13:36:31 -03:00
mcp
models refactor(oss-split): remove auth/DB/admin stack from OSS 2026-05-14 13:36:31 -03:00
schemas refactor(oss-split): remove auth/DB/admin stack from OSS 2026-05-14 13:36:31 -03:00
services fix(esp32): render GxEPD2 ePaper panels (WS plumbing + native rotation) 2026-06-04 23:15:37 -03:00
utils refactor(oss-split): remove auth/DB/admin stack from OSS 2026-05-14 13:36:31 -03:00
__init__.py
main.py feat(flash): write compiled sketches to real USB boards (phases D1+D3) 2026-05-27 00:20:20 -03:00