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:verifyCheck 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.
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 ↗