No description
- TypeScript 91.4%
- C++ 7.7%
- CSS 0.4%
- Dockerfile 0.3%
| .devcontainer | ||
| .github/workflows | ||
| docs | ||
| src | ||
| test | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| components.json | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| platformio.ini | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| README.md | ||
| secrets.ini.example | ||
| tsconfig.client.json | ||
| tsconfig.json | ||
| tsconfig.server.json | ||
| tsconfig.shared.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
new-home-display
ESP32 firmware that drives a 13.3" 4-color e-paper panel and exposes an HTTP push API. Clients render their own framebuffer in 2-bit-per-pixel native format and POST it; the firmware streams it to the panel.
curl -X POST \
-H "Authorization: Bearer $EPD_TOKEN" \
--data-binary @frame.bin \
http://display.local/fb
Repository layout
docs/ Design and hardware reference
sample-code/ Vendor-supplied driver sample (reference only)
src/
main.cpp Entry point — wires modules together
config/ Build flags, pin map, timing constants
display/ Bare-metal SSD2677 driver + IPanel adapter
app/ FrameQueue, IPanel/IFrameSource, RefreshMachine
net/ WiFi association, mDNS, reconnect handling
http/ AsyncWebServer routes, bearer-token auth
test/ Host-side Unity tests for state machine logic
platformio.ini Production + native test environments
Build and flash
Edit the placeholder build_flags in platformio.ini (WiFi creds, bearer token, hostname, IPs), then:
pio run -t upload # production firmware to ESP32-L
pio test -e native # state-machine logic tests on host