Skip to content

Instantly share code, notes, and snippets.

@kdmukai
Last active July 31, 2025 14:19
Show Gist options
  • Save kdmukai/6ecb3d037150a2de50fdb5d3c7829c16 to your computer and use it in GitHub Desktop.
Save kdmukai/6ecb3d037150a2de50fdb5d3c7829c16 to your computer and use it in GitHub Desktop.
SeedSigner MicroPython progress / checklist

lvgl

TODO:

Live camera integration

  • Basic pure MicroPython camera driver / bindings tests.
  • Integration with lvgl overlay.
  • Custom bindings functions to pass camera data to quirc.

Wiring harness pcb

  • Include GM805 and GM65 ribbon cable options?
  • Decide on d-pad and button pinouts.

Dedicated QR scanning module

  • Preferred: GM805
  • Alternate option: larger GM65

TODO:


secp256k1

  • Able to compile a fork of secp256k1-embedded. Runs successfully on esp32s3 and rp2350.
    • Realized that our custom-compiled binary for Pi Zero is likely using secp256k1-embedded's pinned reference to the main bitcoin core secp256k1 library and NOT the secp256k1-zkp fork that embit is expecting.
  • Requires some light but slightly ugly mods to compile for MicroPython v1.25.0 with modern tooling.

Software QR decoding: quirc

Decoding with Quirc works on esp32s3 at least up to 480x480 inputs.

TODO:

  • Test performance with live camera data.
    • grayscale conversion in C will be fast, but will still add to the total decoding time.
  • Longer-term: test with other decoder code? ZXing? zbar?

Log / Results:

  • Quirc successfully compiled for esp32s3 and rp2350.
    • But rp2350 freezes during decode.
  • esp32s3 performance:
    • Idealized 240x240 SeedQR png: 1157ms.
    • 480x480 Sparrow psbt screenshot: 2559ms.

Basic MicroPython v1.25.0

embit

  • Able to include it as a frozen module that uses the secp256k1 C_USER_MODULE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment