SOL-37 / HARDWARE LAB

LILYGO T-Dongle-S3 / ESP32-S3

A pocket-sized Sol node.

A thumb-drive-shaped development board rebuilt as an authenticated wireless display, cast target, physical-event source, bounded LCD/LED animation player, and electrically safe universal GPIO node for the main Sol system.

ZIP 2,057,795 bytes / SHA-256 823c1078b6852b694c0e379c377e545332246dac8543a00f6073886e4f17503d

Wi-FiSelf-registering node
24 stepsLocal display/LED timeline
2 pinsGPIO43 and GPIO44
HMACAuthenticated session

One node, seven roles.

The firmware treats the board as a constrained capability appliance rather than a generic remote computer. It announces what it can do; Sol decides how to use it.

01 / DISPLAY

Castable media

Text, status pages, notifications, RGB565 images, QR codes, and silent video frames can be pushed through the shared Sol broadcast-display interface.

02 / INPUT

Physical events

The onboard button and watched GPIO transitions report duration, edge, logical name, monotonic timestamp, and sequence number into the Sol event bus.

03 / FEEDBACK

Local confirmation

Button and GPIO activity receives immediate on-device feedback, then fades back to the default status screen. Desktop and private phone responses stay synchronized.

04 / ANIMATION

Local timelines

Up to 24 bounded steps can coordinate LCD status, lines, progress, QR, and APA102 color without network-timed jitter. The declarative format cannot run code or touch GPIO.

05 / GPIO

Safe by default

GPIO43 and GPIO44 begin high-impedance, then apply a validated internal-pull-up button profile. Read, watch, pulse, PWM, UART, I2C, failsafe, and port.safe remain permission-gated.

06 / NETWORK

Appliance behavior

Six remembered networks, primary-profile grace, DHCP, mDNS, authenticated outbound WebSocket, reconnect backoff, event buffering, telemetry, and OTA survive ordinary power cycles.

07 / CONTROL

Unified Clock surface

The Unified Clock supplies display, LED patterns, timeline editing, GPIO, media, power-profile, response, and safety controls without exposing node credentials to browser JavaScript.

Seen, not assumed.

These are direct crops from the C615 verification camera and the live Unified Clock interface. Captions distinguish physical observation from software-reported state.

Power truth boundary.

The interface deliberately separates configured specifications and inferred runtime from measurements the hardware can actually observe.

What Sol can know

  • The selected Samsung 20,000 mAh profile and its rated 3.7 V-cell energy basis.
  • Node uptime, reboot history, network presence, RSSI, workload profile, and configured load assumptions.
  • A current modeled percentage and hours remaining from the configured start charge, elapsed load, and conversion efficiency.
  • Second-accurate Central time once the node has synchronized over the network.

What remains unknown

  • The power bank's live percentage, remaining watt-hours, cell health, or charging state.
  • Actual USB voltage/current without an external meter or sensor wired into an observable interface.
  • Whether a low-load power bank will shut itself off at a particular time.
  • A precise runtime prediction without measured load and conversion efficiency.

Signal path.

The browser never receives device credentials. All control enters through the protected host API and the node maintains the outbound authenticated session.

Public source release

Build the whole node.

The archive contains the ESP32-S3 firmware, authenticated Linux daemon, protocol documentation, host integration, service units, tests, deployment scripts, selected physical evidence, and a generic 0.7.3 firmware binary.

Sanitized for public release: no Wi-Fi credentials, enrollment secrets, live registry, provisioned NVS state, full-flash recovery image, virtual environment, build cache, or redundant raw camera collection.