ECHO · Build · Digital Orukami
ECHO_MiniDaemon
A 4 inch square screen on your desk that shows how much Claude Code you have left. Built for members who live in the terminal all day and never see the usage page. The part nobody tells you: the readout is the same rate limit headers the API sends you anyway, polled once a minute by a small tray app, pushed to the screen over Bluetooth. No account scraping, no cloud in between.
Why a fork
Same meter, bigger glass, one button
Hermann Björgvin's Clawdmeter runs on small Waveshare AMOLED boards with three buttons and a power chip the firmware can talk to. The board ECHO had on the bench is different in every one of those ways: a 4 inch RGB parallel panel scanned straight out of PSRAM, a GT911 touch controller, a tiny second microcontroller that gates reset, backlight and the buzzer, and exactly one button the ESP32 can see.
The fork adds that board as a port, the way the upstream project intends: one folder of board files behind its hardware layer, no changes to the meter itself. Everything the upstream device does, this one does, at four times the area.
"Adding a board means dropping in a new folder + a new build env. main.cpp, ui.cpp and splash.cpp never see board-specific code."Clawdmeter CLAUDE.md, the porting contract this fork follows
What the fork contains
Three inputs
The board port
ST7701 panel over 16 bit RGB with a bounce buffer, GT911 reader, both expander revisions detected at boot (TCA9554 on V1 to V3, CH32V003 on V4), backlight PWM, buzzer chime, battery through the expander's ADC.
The Windows tray daemon
Upstream's Python daemon, run as a tray app: pairs once through Windows Bluetooth, polls every 60 seconds, reconnects on its own, shows a green, amber or red bubble for connected, scanning, error.
The pages to come
Integration hooks named now so the port is built for them: a Fox agent status page over the LAN, and a Kismet status page fed by the AEGIS relay rather than Kismet directly. Same screen, more than one meter.
- Pair the device once in Windows Bluetooth before starting the tray app. It is a bonded keyboard as well as a display.
- The usage screen shows for 60 seconds every 5 minutes on its own; a tap on the screen toggles it once touch is live.
State of the port · 2026 09 27
What runs today
PanelLive
Splash and usage screens render; the layout is the upstream 480 × 480 layout unchanged.
BluetoothLive
Usage payloads arrive every 60 seconds from the Windows tray daemon.
TouchPending
Every reset sequence and bus speed tried; the controller never answers. Hardware under inspection.
BatteryPending
Reads through the CH32 expander; the icon stays hidden until a pack is fitted and the curve checked.
- Board
- Waveshare ESP32-S3-Touch-LCD-4, revision 4.0 (ESP32-S3 N16R8: 16 MB flash, 8 MB PSRAM)
- Build env
pio run -d firmware -e waveshare_lcd_4 -t upload --upload-port COM11- Button
- BOOT: short press cycles animation or brightness, hold 3 seconds and release to re-pair
- Bring-up
- Serial pokes over USB:
iox,scan,gtseq,bl 128,screenshot
Creatures in the works
New animations for the splash
The splash plays 20 by 20 pixel-art creatures. The device ships with 18; these are the first ones drawn for the ECHO edition, benched side by side on one clock so they can be judged in motion and exported straight into the firmware's format.

Steam at rest, a sip every six seconds.

Waking up with the mug, slowly.

Antenna ping, one glitch split per cycle.

Drifts back and forth over planted legs.

Splits into two, works apart, merges back.

Past 500k tokens. The loud state.

A ripple through the rows, then head, torso and legs slide apart and snap back.

Walks right, glances back, walks left.

Thumbs up and confetti when a task finishes.

A beating heart, then two float away.

A speech bubble, a nod, a ping.

Chevron eyes, blinking back and forth.

A packet out, an LED answers, the link goes solid.

The visor as a braille loading bar.

Braille spinner eyes while it thinks.

Hand to the visor, a wink, a heart floats off.

The pucker, three tiny hearts.

A circle, a ritual, a small demon climbs out.

A claw grabs a block and pulls it in.

Listening, bobbing on the beat.

Clawd in blue cups, eyes closed, nodding.

The alarm. Loud on purpose.

Working a CTF: hood up, visor still teal.

Stock breathe with the ECHO skin.

Stock look-around, skinned.

Stock wink, skinned.

Stock surprise, skinned.

Visor stays lit while the eyes are shut.

The antenna rides the jump.

Stock sway, skinned.

Stock work-think, skinned.
Where it goes
From meter to hub
The plan is a central smart home and home lab control hub with this screen as its face. Adapters, sensors and tools get added over time. One rule keeps that from turning a desk toy into a liability: the board renders and reports, a host decides. Every pin on the 4 inch board is already spoken for by the panel, so it grows through its buses and through satellites, and the logic, the credentials and the integrations live on a host on the LAN.
Pages, not screens
A page registry in the firmware: usage, Fox status, Kismet, home controls, sensors. Each page is JSON over a WebSocket from the host, with a device token and a LAN only bind. A new integration is a host page, not a reflash.
Sensors on the bus
The I2C header probes known addresses at boot and gets a driver per hit: temperature and humidity, CO2, presence to wake the screen. RS485 for Modbus gear, CAN for the lab. Voice, Zigbee and LoRa ride on small satellite boards that report to the same host.
Home Assistant does the controlling
Lights, plugs and scenes come through Home Assistant or its MQTT broker; home lab actions come through the AEGIS relays and THE DOCK that already run the fleet. The board never learns what a light is, it shows a field and sends a tap.
- Order of work, each step gated: touch working, then the page registry and transport with usage as the first page, then Fox status, then the first sensor, then the Home Assistant bridge, then home controls, then the home lab page.
- Nothing in this section exists yet. The state board above is the truth about today.
Credit
ECHO_MiniDaemon is created and designed by Digital Orukami, inspired by Clawdmeter by Hermann Björgvin. Clawd pixel animations by amaanbuilds (claudepix), icons from Lucide, board documentation from Waveshare; no licence is granted beyond what upstream grants.
ECHO_MiniDaemon · created and designed by Digital Orukami · inspired by Clawdmeter · © 2026 Digital Orukami