Files
jiggly/CHANGELOG.md
T
swaitsandClaude Opus 4.7 0032d01638 feat: initial Xiao RP2040 mouse jiggler firmware
Embassy-based no_std firmware for the Seeed Studio Xiao RP2040 that
masquerades as a Dell MS116 USB HID Boot Mouse. Each cycle picks a
random axis from the RP2040 ROSC RANDOMBIT register, nudges +1 px,
dwells 25 ms, nudges -1 px, then sleeps 4.5 minutes. After 8 hours
elapsed from boot or RESET press the device idles silently (watchdog
still fed) until the user taps RESET (R) again, aligning a single
press with one workday.

Tooling:
- mise.toml pins rust 1.95.0 with explicit components and the
  thumbv6m-none-eabi target, plus cargo-binutils / uf2conv helpers.
- justfile shell is set to "mise exec -- sh -eu -c" so every recipe
  uses the pinned toolchain without any shell activation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 14:59:30 -06:00

1.5 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.1.0 - 2026-04-27

Added

  • Initial Embassy-based no_std firmware for the Seeed Studio Xiao RP2040.
  • USB HID Boot Mouse, masquerading as a Dell MS116 (VID 0x413c, PID 0x301a).
  • Jiggle pattern: pick a random axis from the RP2040 ROSC RANDOMBIT, nudge +1 px, dwell 25 ms, nudge 1 px, then sleep 4.5 minutes before the next cycle.
  • 8-hour workday window after boot or RESET (R) press, then silent idle (watchdog still fed) until the next manual reset.
  • 8-second hardware watchdog, fed in 5-second chunks during long sleeps.
  • mise.toml pinning rust 1.95.0 with explicit components (cargo, clippy, llvm-tools, rust-src, rust-std, rustc, rustfmt) and the thumbv6m-none-eabi target, plus cargo helpers (cargo-binutils, uf2conv, cargo-watch, cargo-bloat, cargo-expand).
  • justfile recipes for build, release, check, clippy, fmt, lint, ci, bin, uf2, flash, size, bloat, expand, and bootstrap. All recipes execute inside mise exec -- sh -eu -c so the pinned toolchain is used regardless of shell activation state.