ShieldSigner / build & use0.0.19-dev

TASK 04

Flash & boot the software

Verify a local development image, match its hardware profile, and check the boot after writing microSD.

You need
  • Luckfox Pico Mini configured for microSD boot
  • microSD + reader
  • Verified local image and matching display/button/camera profile
You’ll have

A written microSD and a recorded first-boot check for the selected hardware profile.

Current bench firmware: LVGL + Rust camera, tested on the standard 240×240 display/button board. Read the exact image, memory measurements and acceptance limits →

Do not power the pill carrier with the tested base-fork bench image unchanged: it drives GPIO56/57 as LCD outputs on carrier Left/Up switch nets. Use a reviewed carrier-profile image before module power-up. The lvgl-dev.cb6170a37a5a bench image is local-only and tested on its separate 240×240 board.

Find the exact local image

  • First determine whether this is the bench display/button board or the carrier PCB. The working base-fork image is not a safe drop-in carrier image; pressing Left/Up can ground a driven LCD output.
  • Run firmware:where in your existing build checkout to find the deliberately selected image. A new clone contains source, not the local image files.
  • The current checkpoint is lvgl-dev.cb6170a37a5a. Match the image profile, display orientation/colors, buttons and camera before writing a card.
  • Use a Mini microSD image for this target; NAND/eMMC updates and other Luckfox model images are different artifacts.
Locate and verify the current local image
mise run firmware:where
mise run firmware:verify

Check file identity and format

  • The current compressed image is shieldsigner-lvgl-dev-cb6170a37a5a.img.xz; the decompressed .img has the same stem. Both have recorded SHA-256 values in the firmware guide.
  • firmware:verify checks the selected files and packed verification record. Hashes identify those exact bytes; they do not prove the carrier wiring or all app workflows work.
  • Use .img.xz only with a flasher that supports compressed images. A raw block-device writer must use the decompressed .img.

Write and verify the microSD

  • In an image-aware flasher, select the verified local .img.xz or its decompressed .img.
  • Select the intended removable microSD by its capacity/name; flashing erases that selected device. Wait for the write and verification to complete.
  • Eject the card. If macOS offers to initialize an unfamiliar Linux partition, choose Ignore.

Boot and record the visible checks

  • Before inserting modules or applying carrier power, verify the built image actually uses the carrier GPIO/LCD profile and UART policy. Power off before inserting microSD or changing display/camera connectors. Do not use unchanged base-fork bench firmware on the carrier.
  • Confirm LVGL Home, readable colors/orientation, buttons and a harmless public camera QR. The user has confirmed these basic bench-image operations; repeat them on your hardware.
  • Then test seed creation/reload, receive-address verification and transaction handoff with a disposable wallet. A full user-wallet acceptance session remains pending.

Keep development access and reader checks separate

  • The current checkpoint is a development image with bench diagnostic access; do not treat that as a production security configuration.
  • The tested base-fork profile disables UART2. A carrier using SEC1210UR2 requires its own reviewed UART2/reader configuration and hardware qualification.
  • Smartcard testing and irreversible secure-boot fuse provisioning are outside this first LVGL boot checklist.
Continue the buildTry the LVGL signing workflow →
Sources & deeper reference

Checked 12 October 2026. Menu names can vary with firmware.

Current firmware and measured status ↗Boot and power diagnosis ↗Critical bench/carrier profile mismatch ↗Edit this workflow on GitHub ↗