Skip to content

v0.2.0

Choose a tag to compare

@rvben rvben released this 02 Jul 07:24
v0.2.0
bf8f97e

The firmware's primary data path, BLE, now runs in the simulator. Still early software; interfaces may evolve.

Added

  • BLE Hardware Buddy simulation: a virtual BLE link bound at the firmware's own ble.h boundary runs the real protocol.cpp/app_buddy.cpp compiled from source. Heartbeat snapshots, permission prompts (Approve/Deny on-screen, decisions sent back over the link), HID keyboard reports, passkey pairing with the code rendered on the device, and the 3 s hold-to-pair gesture all work end to end. New target: waveshare_amoled_216_c6_buddy.
  • ble command in all three dialects (one-shot, run session, scenario): connect [--passkey N], pair, disconnect, send, recv, hid. One-shot ble send completes the whole round trip: connects bonded, delivers the JSON line, returns the device's replies, and --shot captures the resulting frame.
  • button pwr-long / pwr-release inject the power button's hold-gesture edges; the SDL window's PWR control follows the hardware's hold semantics (short click vs 1.5 s long-press).
  • Waveshare AMOLED 2.16 (ESP32-S3) target: rotation-capable variant of the 480x480 panel, sharing the one compiled firmware. Seven targets.
  • Prebuilt binaries: release tags now attach macOS (arm64) and Linux (x86_64) tarballs with the generic targets; Clawdmeter-backed targets need a source build against a firmware checkout (CLAWDMETER_SRC).
  • make dist, make build CLAWDMETER_SRC=... passthrough, and a manual workflow that tests against upstream Clawdmeter.

Fixed

  • Firmware version skew no longer breaks configure in either direction: new firmware files warn by name, files missing from an older checkout drop out cleanly.
  • serve shuts down cleanly on Ctrl-C/SIGTERM.
  • A webserver test raced the kernel's accept queue under load.