From 2ccf7649a0a2875537f2dd30b5979784c9cf71f4 Mon Sep 17 00:00:00 2001 From: David Montero Crespo Date: Thu, 20 Aug 2026 14:47:12 +0200 Subject: [PATCH] fix(ssd1306): draw the OLED as glass bonded to the PCB, not a black hole The screen was a bare , so the part read as a cut-out in the board rather than one integrated piece - which is what the module actually is: the glass panel is bonded ON TOP of the PCB and overhangs the 128x64 active area on every side. Now drawn as a real panel: glass body with a lit stand-off bevel, the active area inset within it (the canvas still lands exactly on it), the flex tail running down to the driver, and a faint specular sheen so it reads as a screen even while dark. Body 108 -> 118 px for the overhang. ssd1306-render tests 9/9. --- .../velxio-components/Ssd1306I2cElement.ts | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/velxio-components/Ssd1306I2cElement.ts b/frontend/src/components/velxio-components/Ssd1306I2cElement.ts index 03eac953..6a433ae7 100644 --- a/frontend/src/components/velxio-components/Ssd1306I2cElement.ts +++ b/frontend/src/components/velxio-components/Ssd1306I2cElement.ts @@ -23,7 +23,7 @@ const SCREEN_H = 64; // (blue PCB, dark screen, corner mounting holes, star) but narrower — a 4-pin // header instead of 8. Screen sits at (SCREEN_X, SCREEN_Y). const BODY_W = 150; -const BODY_H = 108; +const BODY_H = 118; const SCREEN_X = 11; const SCREEN_Y = 30; @@ -128,8 +128,27 @@ class Ssd1306I2cElement extends HTMLElement { ${holes.map(([cx, cy]) => ``).join('')} - - + + + + + + + + + +