github.com/gaberudy/epa...
github.com/gaberudy/epa...
github.com/gaberudy/epa...
github.com/gaberudy/epa...
Static, glanceable, high-contrast board that updates a few times/day and survives sunlight + power naps. Kids love the red “important” markers. (attach a rendered PNG)
Static, glanceable, high-contrast board that updates a few times/day and survives sunlight + power naps. Kids love the red “important” markers. (attach a rendered PNG)
No anti-aliasing. Headless Firefox prefs:
gfx.text.disable-aa=true
layout.css.devPixelsPerPx=1.0
webrender.software=true
CSS: text-rendering: geometricPrecision. Palette is black/white/red only. Fonts: Arial. Pixels land on pixels.
No anti-aliasing. Headless Firefox prefs:
gfx.text.disable-aa=true
layout.css.devPixelsPerPx=1.0
webrender.software=true
CSS: text-rendering: geometricPrecision. Palette is black/white/red only. Fonts: Arial. Pixels land on pixels.
Parse my local station KBZK RSS, keep only /local-news/, drop not relevant towns, show top titles. It’s lightweight and keeps the board relevant. #RSS
Parse my local station KBZK RSS, keep only /local-news/, drop not relevant towns, show top titles. It’s lightweight and keeps the board relevant. #RSS
Load the Google family iCal (secret URL), render a 2-day FullCalendartime-grid with overlap handling. All-day events are pulled into the right sidebar for notability. #FullCalendar #iCal
Load the Google family iCal (secret URL), render a 2-day FullCalendartime-grid with overlap handling. All-day events are pulled into the right sidebar for notability. #FullCalendar #iCal
Node app builds a static HTML “board”, Puppeteer (Firefox) rasterizes to PNG, I quantize to BW+Red (minimally need), then upload. HTML in, pixels out. #Puppeteer
Node app builds a static HTML “board”, Puppeteer (Firefox) rasterizes to PNG, I quantize to BW+Red (minimally need), then upload. HTML in, pixels out. #Puppeteer
I mirrored the browser protocol: pack pixels → 1-bit planes (black + red), nibble encode to 'a'..'p', weird 162/164 column shuffle per row, chunk at 30k, POST /LOADA, /LOADB, then /SHOW. Now it’s fully scriptable. #TypeScript
I mirrored the browser protocol: pack pixels → 1-bit planes (black + red), nibble encode to 'a'..'p', weird 162/164 column shuffle per row, chunk at 30k, POST /LOADA, /LOADB, then /SHOW. Now it’s fully scriptable. #TypeScript
Arduino (ESP32 core 2.0.17), set up creds for example wifi web server, flash. The device hosts a simple UI and 4 endpoints: /EPD, /LOADA, /LOADB, /SHOW. I used the UI to validate refresh speed (B v1 is snappier). #Arduino
Arduino (ESP32 core 2.0.17), set up creds for example wifi web server, flash. The device hosts a simple UI and 4 endpoints: /EPD, /LOADA, /LOADB, /SHOW. I used the UI to validate refresh speed (B v1 is snappier). #Arduino