ShieldSigner / build & use0.0.13-dev

Luckfox Mini pinout & signal map

All 22 header pins of the Luckfox Pico Mini A/B, with electrical capabilities, voltage domains and actual ShieldSigner connections. The diagram uses the manufacturer's component-side orientation: USB at the top, pin 1 upper left, pin 22 upper right. Choose the released 0.0.7 carrier or the 0.0.8 PWM candidate. Always-on backlight remains the default on both.

Select a pin for details. On a narrow screen, scroll the diagram sideways; the full pin list below is also readable without JavaScript.

Luckfox Mini A/B pinout · ShieldSigner 0.0.7 released Component-side orientation, USB at the top. Pins 1 to 11 down the left; 22 to 12 down the right. Labels show electrical functions and ShieldSigner use. Pins 19 and 20 have 1.8 volt GPIO. Pin 22 is a 1.8 volt power output. Luckfox Pico Mini A/B Component-side view · USB at top · header numbers inside gold pads · illustration not to scale ShieldSigner 0.0.7 · released Capabilities are multiplexed alternatives; firmware selects one at a time. USB RV1103 17 GPIO · 22 pins CAMERA FPC 1 VBUS 5 V 5 V power input 2 GND Ground Common ground 3 3V3 OUT 3.3 V 3.3 V output 4 GPIO1_B2 3.3 V · GPIO #42 UART2_TX_M1 Smartcard UART TX 5 GPIO1_B3 3.3 V · GPIO #43 UART2_RX_M1 Smartcard UART RX 6 GPIO1_C0 3.3 V · GPIO #48 SPI0_CS0_M0PWM2_M2 LCD chip select 7 GPIO1_C1 3.3 V · GPIO #49 SPI0_CLK_M0PWM4_M2 LCD SPI clock 8 GPIO1_C2 3.3 V · GPIO #50 SPI0_MOSI_M0PWM5_M2I2C4_SCL_M1 LCD SPI data 9 GPIO1_C3 3.3 V · GPIO #51 SPI0_MISO_M0PWM6_M2I2C4_SDA_M1 LCD reset GPIO 10 GPIO1_C4 3.3 V · GPIO #52 UART4_RX_M1PWM8_M1 LCD data / command 11 GPIO1_C5 3.3 V · GPIO #53 UART4_TX_M1PWM9_M1 Button 3 12 GPIO1_D0 3.3 V · GPIO #56 UART3_TX_M1PWM3_IR_M2 Joystick left 13 GPIO1_D1 3.3 V · GPIO #57 UART3_RX_M1PWM10_M2 Joystick up 14 GPIO1_D2 3.3 V · GPIO #58 I2C3_SDA_M1PWM0_M1SPI0_CS1_M0UART5_RX_M1 Unused on 0.0.7 15 GPIO1_D3 3.3 V · GPIO #59 I2C3_SCL_M1PWM11_M2UART5_TX_M1 Unused on both revisions 16 GPIO1_C6 3.3 V · GPIO #54 UART4_RTSN_M1PWM10_M1 Joystick press 17 GPIO1_C7 3.3 V · GPIO #55 UART4_CTSN_M1PWM11_M1 Joystick down 18 GPIO0_A4 3.3 V · GPIO #4 PWM1_M0 Joystick right 19 GPIO4_C0 1.8 V · GPIO #144 ADC_IN0 Button 1 · 1.8 V 20 GPIO4_C1 1.8 V · GPIO #145 ADC_IN1PWM1_M1 Button 2 · 1.8 V 21 GND Ground Common ground 22 1V8 OUT 1.8 V 1.8 V output · unused Always-on backlight remains the default on both revisions. 0.0.8 candidate: optional PWM on pin 14 · pins 19/20: 1.8 V GPIO · 22: 1.8 V output, not GPIO SPI0 CS1 shown on pin 14 per manufacturer schematic + SDK; see the source discrepancy note. ShieldSigner · shieldsigner.dev/guides/luckfox-pinout/ · reviewed 2026-10-25

All 22 header pins

Alternate functions share a physical pad. A peripheral listed here is a capability, not an available connection while that pin is already used by ShieldSigner.

Pin / voltageGPIO & alternativesShieldSigner connection
1 · 5 VVBUS
5 V power input
USB-C / J302 → module VBUS
+5V
2 · 0 VGND
Common ground
Common signal and power return
GND
3 · 3.3 V3V3 OUT
3.3 V output
Always-on backlight enable + TP802; not LCD power
+3.3V
4 · 3.3 VGPIO1_B2
UART2_TX_M1
Bank 1, line 10 · legacy #42
Smartcard UART TX
TX → R602 → SEC1210 RX, pin 11
UART_TX
5 · 3.3 VGPIO1_B3
UART2_RX_M1
Bank 1, line 11 · legacy #43
Smartcard UART RX
RX ← R603 ← SEC1210 TX, pin 14
UART_RX
6 · 3.3 VGPIO1_C0
SPI0_CS0_M0 PWM2_M2
Bank 1, line 16 · legacy #48
LCD chip select
JP203 + JP205 → J701 pin 4; keep SPI CS active
Net-(JP203-B)
7 · 3.3 VGPIO1_C1
SPI0_CLK_M0 PWM4_M2
Bank 1, line 17 · legacy #49
LCD SPI clock
J701 pin 5; 10 MHz target for HOTHMI
LCD_SCLK
8 · 3.3 VGPIO1_C2
SPI0_MOSI_M0 PWM5_M2 I2C4_SCL_M1
Bank 1, line 18 · legacy #50
LCD SPI data
J701 pin 6; write-only display
LCD_MOSI
9 · 3.3 VGPIO1_C3
SPI0_MISO_M0 PWM6_M2 I2C4_SDA_M1
Bank 1, line 19 · legacy #51
LCD reset GPIO
J701 pin 2; omit SPI MISO pinmux
LCD_RST
10 · 3.3 VGPIO1_C4
UART4_RX_M1 PWM8_M1
Bank 1, line 20 · legacy #52
LCD data / command
J701 pin 3; configure as GPIO output
LCD_DC
11 · 3.3 VGPIO1_C5
UART4_TX_M1 PWM9_M1
Bank 1, line 21 · legacy #53
Button 3
SW508 → ground; GPIO input with pull-up
Key3
12 · 3.3 VGPIO1_D0
UART3_TX_M1 PWM3_IR_M2
Bank 1, line 24 · legacy #56
Joystick left
SW501 → ground; GPIO input with pull-up
JoystickLeft
13 · 3.3 VGPIO1_D1
UART3_RX_M1 PWM10_M2
Bank 1, line 25 · legacy #57
Joystick up
SW502 → ground; GPIO input with pull-up
JoystickUp
14 · 3.3 VGPIO1_D2
I2C3_SDA_M1 PWM0_M1 SPI0_CS1_M0 UART5_RX_M1
Bank 1, line 26 · legacy #58
Unused on 0.0.7
No external endpoint on the released carrier
I2C-SDA

0.0.8 candidate: LCD_PWM → JP202 + R703 pull-down. Always-on remains default.

15 · 3.3 VGPIO1_D3
I2C3_SCL_M1 PWM11_M2 UART5_TX_M1
Bank 1, line 27 · legacy #59
Unused on both revisions
No external endpoint; I2C3 is not the LCD bus
I2C-SCL
16 · 3.3 VGPIO1_C6
UART4_RTSN_M1 PWM10_M1
Bank 1, line 22 · legacy #54
Joystick press
SW503 → ground; do not enable default PWM10
JoystickPress
17 · 3.3 VGPIO1_C7
UART4_CTSN_M1 PWM11_M1
Bank 1, line 23 · legacy #55
Joystick down
SW504 → ground; do not enable default PWM11
JoystickDown
18 · 3.3 VGPIO0_A4
PWM1_M0
Bank 0, line 4 · legacy #4
Joystick right
SW505 → ground; GPIO input with pull-up
JoystickRight
19 · 1.8 V
1.8 V only
GPIO4_C0
ADC_IN0
Bank 4, line 16 · legacy #144
Button 1 · 1.8 V
SW506 → ground; internal pull-up, no 3.3 V pull-up
Key1
20 · 1.8 V
1.8 V only
GPIO4_C1
ADC_IN1 PWM1_M1
Bank 4, line 17 · legacy #145
Button 2 · 1.8 V
SW507 → ground; internal pull-up, no 3.3 V pull-up
Key2
21 · 0 VGND
Common ground
Second ground pin
GND
22 · 1.8 V
1.8 V only
1V8 OUT
1.8 V output · unused
Not connected to the carrier; never tie to 3.3 V
unconnected-(U202-1V8(OUT)-Pad22)

How to read the diagram

The gold pad numbers are physical header pin numbers. GPIO1_D2 identifies a processor pad; GPIO #58 is the manufacturer's legacy global GPIO number. These are three different numbering systems. For example, physical pin 14 is GPIO1_D2, bank 1, line 26, legacy global number 58. Under the pinned app’s bank/line convention this corresponds to /dev/gpiochip1, line 26; the app does not yet configure pin 14 for brightness. Identify chip labels on the actual running image before using a chip path. A Linux pwmchip number is a separate runtime identifier.

GPIO offsets are group × 8 + bit, with A=0, B=1, C=2, D=3. The legacy global number is bank × 32 + offset. Suffixes _M0, _M1 and _M2 select alternative physical routes for a peripheral. They do not create additional independent peripheral controllers.

Colored labels show documented serial, PWM and ADC alternatives. One pad cannot perform all of its alternate functions at once. Device-tree configuration selects the peripheral or GPIO role. The label beneath the capabilities describes what ShieldSigner actually connects there. Additional SoC debug/parallel-bus muxes are outside this serial/PWM/ADC reference.

The diagram is an orientation illustration, not a dimensioned mechanical drawing. The carrier mounts the module on its underside; do not mirror the manufacturer's pin numbering again. Match USB orientation, pin 1 (+5 V) and both grounds before inserting it.

Voltage levels and buttons

Pins 19 and 20 are 1.8 V GPIO, respectively GPIO4_C0 / Button 1 and GPIO4_C1 / Button 2. Our wiring matches the retained upstream board: each switch connects its input directly to ground. Upstream's FOX_22 app configuration requests an internal pull-up, so a released button reads high in its own 1.8 V domain and a pressed button reads low. There is no carrier 3.3 V pull-up on either input. Confirm that the final OS enables the inputs and pulls.

Pin 22 is a 1.8 V power output, not another GPIO, and is unconnected on both carriers. It is not the source used to power the buttons. The other exposed GPIO pins use a 3.3 V I/O domain. Treat these voltage domains as wiring limits; the presence of an ADC/PWM alternative does not make a pad 3.3 V or 5 V tolerant.

Pin 1 is the 5 V supply connection. USB-C VBUS and J302's +5 V pin share that carrier rail, without source isolation. Use one input source at a time, including the Mini's own USB connector. Pin 3 is the Mini's 3.3 V output: it supplies the default backlight-enable high level and TP802, while the LCD's operating power comes from the separate U701 regulator on LCD_3V3. The regulators' outputs are not tied together.

Which interfaces are already used?

  • SPI0: pins 6–8 provide LCD CS0, clock and MOSI. Pin 9's MISO-capable pad is deliberately used as the display-reset GPIO. The selected screen is write-only, so configure SPI without MISO. Set the HOTHMI SPI clock to 10 MHz; the pinned application otherwise defaults to 40 MHz. See the timing audit.
  • UART2: pins 4/5 serve the SEC1210 smartcard reader through R602/R603, with TX crossing to RX. Keep the UART2 serial console disabled so it cannot occupy the reader's UART. The intended reader device is /dev/ttyS2:SEC1210UR2; confirm it in the final image.
  • GPIO buttons: pins 11–13 and 16–20 are inputs with pull-ups. The Mini's commonly demonstrated PWM10_M1 and PWM11_M1 use pins 16/17, which are our joystick press/down inputs. Do not enable those default PWM examples for this carrier.
  • I2C: the LCD labels SDA/SCL refer to SPI MOSI/clock, not I2C. Released pin 14 / I2C3 SDA and pin 15 / I2C3 SCL have no external carrier endpoint. The PWM candidate reserves pin 14 for LCD brightness control. I2C4's alternate pins 8/9 are already LCD data/reset; its presence in the capability list does not give us a free I2C bus.
  • Optional backlight PWM: the 0.0.8 candidate routes physical pin 14 / GPIO1_D2 / PWM0_M1 through JP202 to BL_E. Disable I2C3 on that pad before enabling PWM0_M1. PWM0_M0 on the module's USER-button pad is another route of the same PWM0 controller, not another independent output. HOTHMI specifies high/on and low/off for BL_E; PWM frequency and brightness response still need a physical screen test.

Always-on and optional PWM

Mode JP201 JP202 Result
Always on — default on both revisions Closed Open Backlight enabled without brightness firmware
Optional PWM — 0.0.8 candidate only Open Closed Dedicated pin 14 drives BL_E; R703 pulls it low/off when undriven

Keep JP203/JP205 closed and JP204/JP206 open. Change straps with power disconnected; never close both JP201 and JP202. The released 0.0.7 board does not have the candidate's dedicated pin-14 route. Its legacy backlight option instead repurposes the CS path and is not the independent PWM feature shown for the candidate.

The candidate's native design and checks are separate from the existing released manufacturing bundle and saved JLC cart. This documentation does not change the cart or claim that the optional brightness firmware is installed.

Other module connections

Connection Location / function Carrier use
USER On-module button, GPIO1_A2, legacy GPIO 34; PWM0_M0 alternative Not a numbered carrier-header pin
ACT On-module ACT indicator, GPIO3_C6, legacy GPIO 118 Not a numbered carrier-header pin
TXP / TXN / GND / RXP / RXN Separate Ethernet pads below the main pin rows Not wired by this carrier; require appropriate Ethernet interface hardware
Camera FPC Dedicated module camera connector Separate camera cable, outside the 22-pin header
Mini USB Module's USB interface Distinct from the carrier's power-only USB-C connector

Audit results and source discrepancy

The machine-readable check report verifies 44 native pad instances per board (two pads per physical header pin), 35 mux alternatives against a pinned SDK source, all 17 GPIO numbering/domain entries, eight app button mappings and both display GPIO mappings. It also checks physical row order, UART crossover, isolated LCD power, candidate PWM endpoints, and each documented button's actual switch reference. Both released and candidate header assignments match the reviewed data. The check runs whenever the static site is built, so a changed PCB mapping cannot silently leave this diagram stale.

One manufacturer drawing discrepancy is documented: the official GPIO image places SPI0 CS1 on pin 15 / GPIO1_D3. The retained Mini schematic and SDK spi0m0_cs1 instead assign GPIO1_D2 / physical pin 14. This diagram follows those agreeing sources. ShieldSigner uses CS0 on pin 6, so the discrepancy does not affect our display wiring. The candidate's pin-14 PWM0_M1 mapping is independently confirmed by the SDK.

The earlier supply prose also omitted test point TP803: LCD_3V3 has four component endpoints—U701 output, C702, J701 VCC and TP803. That prose is corrected; the PCB wiring was already correct.

This audit checks drawings, native nets and pinned source configuration. Final-image pinmuxes, live GPIO-chip identities, pull-ups, rail sequencing, physical continuity, SPI timing and the actual screen's PWM response remain bring-up measurements.

Primary sources and reproduction

Run mise run variant:lcd:pinout-diagram for the focused diagram audit, and mise run variant:lcd:pinouts for the existing rail/default-jumper/application audit. Review data lives in docs/luckfox-mini-pinout.json; source snapshots and their recorded SHA-256 hashes are retained under reference/pinouts/ and reference/pdfs/.


Source: docs/LUCKFOX-PINOUT.md ↗. Documentation describes reviewed evidence; it does not replace physical testing.