Thanks for your interest! This is a hobby/learning hardware project β issues, fixes, hardware ports, and docs are all welcome.
- Be kind. Assume good intent.
- One change per PR. Small, focused PRs get merged fast.
- The build must stay green. CI compiles the firmware on every push (see
.github/workflows/build.yml). If CI is red, the PR isn't ready.
You need the exact toolchain from the README:
- Arduino-ESP32 core 2.0.16 (not 3.x)
- NimBLE-Arduino 1.4.3 (not 2.x)
- GFX Library for Arduino 1.3.7
- ESP32 BLE Keyboard (T-vK) + the two one-line patches in the README
- Adafruit NeoPixel
Build locally before pushing:
arduino-cli compile \
--fqbn "esp32:esp32:esp32s3:PartitionScheme=app3M_fat9M_16MB,PSRAM=opi,FlashSize=16M,USBMode=default,CDCOnBoot=cdc" \
06_PasswordManager- Match the surrounding code β comment density, naming (
camelCasefuncs,C_*colors,SCR_*screens), and 2-space indent. - Keep USB and BLE keyboard code in their separate
.cppfiles β the libraries shareKEY_*macros and cannot co-exist in one translation unit. - New screens follow the
drawXxx()/onTapXxx()pair pattern and register indrawAll()/dispatchTap(). - Touch zones must stay byte-accurate β verify hit-testing against the 368Γ448 grid.
- π· Add real device photos/GIFs to
docs/img/and wire them into the README. - π AES-256 vault encryption (key derived from the PIN).
- π More host keyboard layouts beyond the USβUK
@swap. - π§ͺ A host-side script to generate large test vaults for the 30k path.
Open an issue with: board revision, core/library versions, the exact USB Mode / CDC setting, and serial log output if you have it.