Docs menu

Engineering Reference · GPIO2 / GPIO3 / GPIO4 / GPIO5 proven

Audited pin ownership, electrical restrictions, allocation register and physical evidence for the Waveshare ESP32-P4-WIFI6-Touch-LCD-7B.

Waveshare ESP32-P4-WIFI6-Touch-LCD-7B Board Pinout Master

Networking behavior, component versions, startup ordering, memory and TLS ownership are authoritative in `12_FORGEUI_ESP32P4_WIFI_HOSTED_ARCHITECTURE.md`. This document remains authoritative for physical pin ownership.

Status: authoritative human-readable ForgeUI hardware-I/O reference Board audited: Waveshare ESP32-P4-WIFI6-Touch-LCD-7B (production board photographed in this repository) Last audited: 2026-08-08

[!IMPORTANT]

This document records current evidence; it does not configure an export. The ForgeUI Project Hardware Profile remains authoritative for generated export configuration. This reference must not silently override it. If the profile changes, review and align this document before selecting hardware-I/O pins.

1. Board identity

ItemCurrent identity
ProductWaveshare ESP32-P4-WIFI6-Touch-LCD-7B
Display7-inch IPS touch display, 1024 × 600
Main processorESP32-P4NRW32 (ESP32-P4; external wireless is required)
Wireless arrangementOnboard ESP32-C6 used through ESP-Hosted; ForgeUI configures the P4 as a four-bit SDIO host
ForgeUI board profilestudio/src/forgeui/boards/profiles/waveshareEsp32P4Wifi6Touch7B.ts
ForgeUI generated defaultsfirmware/ForgeUI-One/sdkconfig.defaults
Effective build configurationfirmware/ForgeUI-One/sdkconfig
Project hardware Kconfigfirmware/ForgeUI-One/main/Kconfig.projbuild
Managed Waveshare BSPfirmware/ForgeUI-One/managed_components/waveshare__esp32_p4_wifi6_touch_lcd_7b/
ForgeUI BSP extensionfirmware/ForgeUI-One/components/bsp_extra/

The board profile currently enables display, touch, backlight, Wi-Fi, audio capability, SD card, RTC, USB host capability and camera capability. Its default project features enable Wi-Fi, SD and RTC, while audio, USB host and camera default off. A feature being disabled in one project does not make a board-connected pin electrically unowned or automatically safe.

2. Physical board evidence

The following photograph is the baseline physical-board reference for future ForgeUI Hardware I/O proofs:

!Rear side of the physical ForgeUI Waveshare ESP32-P4-WIFI6-Touch-LCD-7B board

Repository path: board pics rear side pinouts/ESP32-P4-WIFI6-Touch_LCD-7B/ESP32-P4-WIFI6-Touch-LCD-7B.png

The photograph confirms the actual production board marking, 1024x600 Pixels, and physical presence/labels of the bottom GPIO header, I2C, UART, CAN, RS485, RTC battery/reset/boot area, speaker, camera, TF card, USB-OTG, USB, USB-to-UART and C6-UART areas. It does not prove that a net is unused, its voltage is safe, or its power-on state is suitable.

3. Master GPIO ownership table

Yes* means usable only under the stated restriction. No includes pins connected to board hardware even when a corresponding optional ForgeUI feature is disabled.

GPIOPhysical exposure / connectorCurrent board functionForgeUI ownershipDirectionBoot/strap/reserved riskSafe for external I/O?Notes / evidence source
0Not identified on user connectorModule/internal net; no ForgeUI assignment provenUnallocated in profileUnknownNot a P4 strap; board routing not fully establishedNoSchematic only; not physically offered for proof work
1Not identified on user connectorModule/internal net; no ForgeUI assignment provenUnallocated in profileUnknownBoard routing not fully establishedNoSchematic only
2Bottom header IO2No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesProfile/config/BSP search; physical PCB evidence; schematic header net
3Bottom header IO3No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesSame evidence as GPIO2
4Bottom header IO4No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesSame evidence as GPIO2
5Bottom header IO5No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesSame evidence as GPIO2
6Board-internal ESP32-C6 connectionC6 IO2 auxiliary/control connectionBoard/ESP-Hosted hardwareBidirectional/board-definedShared with C6 subsystemNoOfficial schematic connects GPIO6 to C6_IO2
7I2C SDA; camera/touch/RTC shared busBSP I2C0 SDA, touch control, ES8311 control, optional DS3231 and CSI controlBSP + ForgeUI RTC/audio consumersBidirectional open-drainShared bus with pull-upsNo (except compatible I2C device)BSP header; RTC source; Waveshare wiki/schematic
8I2C SCL; camera/touch/RTC shared busBSP I2C0 SCL, touch control, ES8311 control, optional DS3231 and CSI controlBSP + ForgeUI RTC/audio consumersOutput/open-drainShared bus with pull-upsNo (except compatible I2C device)BSP header; RTC source; Waveshare wiki/schematic
9Speaker/audio circuitryI2S serial data between P4 and ES8311BSP audioOutput per BSP (DOUT); see conflict noteActive board peripheralNoManaged BSP says DOUT; wiki table labels DSDIN on GPIO9
10Speaker/audio circuitryI2S LRCK/WSBSP audioOutputActive board peripheralNoBSP and wiki agree
11Speaker/audio circuitryI2S serial data between ES8311 and P4BSP audioInput per BSP (DSIN); see conflict noteActive board peripheralNoManaged BSP says DSIN; wiki table labels ASDOUT on GPIO11
12Speaker/audio circuitryI2S bit clock/SCLKBSP audioOutputActive board peripheralNoBSP and wiki agree
13Speaker/audio circuitryI2S master clock/MCLKBSP audioOutputActive board peripheralNoBSP and wiki agree
14Internal C6/ESP-HostedSDIO D0ForgeUI Wi-Fi hostedBidirectionalHigh-speed shared busNoBoard profile and sdkconfig.defaults
15Internal C6/ESP-HostedSDIO D1ForgeUI Wi-Fi hostedBidirectionalHigh-speed shared busNoBoard profile and sdkconfig.defaults
16Internal C6/ESP-HostedSDIO D2ForgeUI Wi-Fi hostedBidirectionalHigh-speed shared busNoBoard profile and sdkconfig.defaults
17Internal C6/ESP-HostedSDIO D3ForgeUI Wi-Fi hostedBidirectionalHigh-speed shared busNoBoard profile and sdkconfig.defaults
18Internal C6/ESP-HostedSDIO CLKForgeUI Wi-Fi hostedOutputHigh-speed clockNoBoard profile and sdkconfig.defaults
19Internal C6/ESP-HostedSDIO CMDForgeUI Wi-Fi hostedBidirectionalHigh-speed shared busNoBoard profile and sdkconfig.defaults
20Board circuitry; not on general headerBoard control net not conclusively identified from extracted schematic textNo explicit ForgeUI assignmentUnknownBoard-connected; unresolvedNoOfficial schematic shows board connection; requires schematic visual/net confirmation
21CAN transceiver / CAN connectorTWAI/CAN RXBoard CAN interface; no current ForgeUI driverInputDedicated transceiver connectionNoWaveshare wiki: RXD GPIO21
22CAN transceiver / CAN connectorTWAI/CAN TXBoard CAN interface; no current ForgeUI driverOutputDedicated transceiver connectionNoWaveshare wiki: TXD GPIO22
23Touch/display areaTouch interrupt/test-point net is indicated by schematic, while BSP declares touch INT GPIO_NUM_NCBSP conflict/unresolvedInput if fittedBoard-revision/BSP mismatchNoOfficial schematic vs managed BSP conflict
24USB-Serial/JTAG dataNative USB-Serial/JTAG D−/D+ pair (with GPIO25)Debug/download hardwareBidirectional USBReuse disables USB-JTAGNoEspressif GPIO documentation; schematic USB nets
25USB-Serial/JTAG dataNative USB-Serial/JTAG data pair (with GPIO24)Debug/download hardwareBidirectional USBReuse disables USB-JTAGNoEspressif GPIO documentation; schematic USB nets
26RS485 transceiver / RS485 connectorUART TX to RS485 transceiverBoard RS485 interfaceOutputDedicated transceiver connectionNoWaveshare wiki: TXD GPIO26
27RS485 transceiver / RS485 connectorUART RX from RS485 transceiverBoard RS485 interfaceInputDedicated transceiver connectionNoWaveshare wiki: RXD GPIO27
28Bottom header IO28No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesProfile/config/BSP search; photo and schematic
29Bottom header IO29No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesProfile/config/BSP search; photo and schematic
30Bottom header IO30No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesProfile/config/BSP search; photo and schematic
31Bottom header IO31No board function or ForgeUI assignment foundAvailable candidateConfigurableNo P4 strap restriction documentedYesProfile/config/BSP search; photo and schematic
32Display circuitryLCD backlight/PWM controlBSP displayOutputEssential display functionNoBSP_LCD_BACKLIGHT
33Display circuitryLCD resetBSP displayOutputEssential display functionNoBSP_LCD_RST
34Bottom header IO34No active board peripheral foundUnallocated in profileConfigurableESP32-P4 strapping pinYes*Use only if external circuit cannot disturb reset sampling; Espressif strap list
35BOOT / USB-to-UART auto-program circuitROM download boot selectionBoot/debug hardwareInput at resetCritical strapping/boot pinNoSchematic; Espressif boot-mode documentation
36Bottom header IO36; battery/indicator circuitryBattery divider/board indicator net shown on schematicBoard hardwareAnalog/input/board-definedESP32-P4 strapping pin and board-connectedNoPhoto exposes it; schematic shows BAT/resistor/LED connection; Espressif strap list
37UART / USB-to-UART circuitryP4 UART0 TX (console/programming path)Console/debugOutputESP32-P4 strapping pinNoOfficial schematic USB-to-UART block; ESP-IDF P4 console convention
38UART / USB-to-UART circuitryP4 UART0 RX (console/programming path)Console/debugInputESP32-P4 strapping pinNoOfficial schematic USB-to-UART block; ESP-IDF P4 console convention
39TF/SD slotSDMMC D0ForgeUI SDBidirectional2.5 V LDO-powered SD domain in current profileNoProfile, defaults, BSP and wiki
40TF/SD slotSDMMC D1ForgeUI SDBidirectional2.5 V LDO-powered SD domainNoProfile, defaults, BSP and wiki
41TF/SD slotSDMMC D2ForgeUI SDBidirectional2.5 V LDO-powered SD domainNoProfile, defaults, BSP and wiki
42TF/SD slotSDMMC D3ForgeUI SDBidirectional2.5 V LDO-powered SD domainNoProfile, defaults, BSP and wiki
43TF/SD slotSDMMC CLKForgeUI SDOutputHigh-speed clock; 2.5 V domainNoProfile, defaults, BSP and wiki
44TF/SD slotSDMMC CMDForgeUI SDBidirectional2.5 V domainNoProfile, defaults, BSP and wiki
45TF/SD power circuitrySD-card power switch/control shown by schematicBoard SD hardwareOutput/board-definedBoard-connectedNoOfficial schematic; not exposed
46Board-internal high-speed/power-domain circuitryExact board function unresolvedNo explicit ForgeUI assignmentUnknownBoard-connected; GPIO39–48 share configurable LDO domain considerationsNoSchematic requires confirmation before any reuse
47Board-internal high-speed/power-domain circuitryExact board function unresolvedNo explicit ForgeUI assignmentUnknownBoard-connected; LDO-domain riskNoSchematic requires confirmation
48Board-internal high-speed/power-domain circuitryExact board function unresolvedNo explicit ForgeUI assignmentUnknownBoard-connected; LDO-domain riskNoSchematic requires confirmation
49Schematic expansion connector revision only; not matching photographed headerNo current ForgeUI assignmentUnallocated but not physically verifiedConfigurableSchematic/photo revision mismatchNoOfficial PDF lists GPIO49–52 at a 12-pin connector; photo labels GPIO28–36 instead
50Schematic expansion connector revision onlyNo current ForgeUI assignmentUnallocated but not physically verifiedConfigurableSchematic/photo revision mismatchNoSame conflict as GPIO49
51Schematic expansion connector revision onlyNo current ForgeUI assignmentUnallocated but not physically verifiedConfigurableSchematic/photo revision mismatchNoSame conflict as GPIO49
52Schematic expansion connector revision onlyNo current ForgeUI assignmentUnallocated but not physically verifiedConfigurableSchematic/photo revision mismatchNoSame conflict as GPIO49
53Speaker/audio circuitryNS4150B amplifier enable, active highBSP audioOutputCan enable a powered load pathNoBSP_POWER_AMP_IO; wiki and schematic
54Internal C6/ESP-HostedESP32-C6 reset/chip-enable controlForgeUI Wi-Fi hostedOutputReset-criticalNoBoard profile and sdkconfig.defaults

MIPI DSI display data/clock and MIPI CSI camera data/clock use dedicated P4 D-PHY pins, not ordinary numbered GPIOs in this table. Flash/PSRAM are in-package/dedicated memory signals on the ESP32-P4NRW32 design and must never be treated as expansion I/O.

4. Connector pinouts

Connector rows below follow the visible silkscreen order in the rear-board photograph (top-to-bottom for the vertical left-side connectors; left-to-right for the bottom header as photographed). Connector pin numbers are deliberately omitted where the PCB does not visibly number them and the schematic symbol orientation is ambiguous.

Bottom general I/O header

Physical orderSilkscreen / signalESP32-P4 GPIOVoltageDirectionNotes
13V33.3 V supplyPower outDo not short or back-drive
2GND0 VGroundCommon reference
3IO223.3 V logicConfigurableSafe candidate
4IO333.3 V logicConfigurableSafe candidate
5IO443.3 V logicConfigurableSafe candidate
6IO553.3 V logicConfigurableSafe candidate
7IO28283.3 V logicConfigurableSafe candidate
8IO29293.3 V logicConfigurableSafe candidate
9IO30303.3 V logicConfigurableSafe candidate
10IO31313.3 V logicConfigurableSafe candidate
11IO34343.3 V logicConfigurableStrapping pin; restricted
12IO36363.3 V logic / board analog netBoard-definedStrapping plus battery/indicator circuitry; do not use

Evidence: physical PCB photograph for the production silkscreen/order; official schematic and ForgeUI/BSP audit for ownership. The current official PDF's extracted connector net list appears to show GPIO49–52 in a related 12-pin connector where the photographed production PCB instead clearly labels IO34/IO36. Treat the photographed labels as physical truth for Scott's unit, while retaining the electrical restrictions found in the schematic.

I2C connector

Silkscreen orderSignalESP32-P4 GPIOVoltageDirectionNotes
1SCL83.3 V logicOpen-drain clockShared BSP I2C0 bus
2SDA73.3 V logicBidirectional open-drainShared BSP I2C0 bus
3GND0 VGroundCommon ground
4VCC3.3 V default; PCB-selectable 5 V/3.3 VPowerPhotograph shows 5V/3V3 selector; verify solder setting before connecting

The bus has board pull-ups. Attach only address- and voltage-compatible I2C devices. The touch controller, ES8311 codec control, optional DS3231 (0x68) and camera control can share this bus.

UART connector

Silkscreen orderSignalESP32-P4 GPIOVoltageDirection (board)Notes
1TXD373.3 V logicOutputUART0 console/debug path; strapping pin
2RXD383.3 V logicInputUART0 console/debug path; strapping pin
3GND0 VGroundCommon ground
4VCCUNKNOWN / REQUIRES CONFIRMATION at connectorPowerDo not connect until measured/confirmed

The official schematic confirms GPIO37/GPIO38 in the USB-to-UART block, but its extracted text does not unambiguously prove the separate header's VCC rail. Do not use this connector as generic GPIO.

CAN connector

Silkscreen orderSignalESP32-P4 GPIOVoltageDirectionNotes
1+22 through TJA1051 CAN transceiverDifferential busBidirectional busCANH
221 through TJA1051 CAN transceiverDifferential busBidirectional busCANL
3GND0 VGroundCAN reference
45V5 V supplyPowerNot a GPIO logic voltage

The connector exposes CANH/CANL, not raw GPIO. P4 GPIO22 is CAN TX into the transceiver; GPIO21 is CAN RX from it. Confirm bus termination requirements before use.

RS485 connector

Silkscreen orderSignalESP32-P4 GPIOVoltageDirectionNotes
1A26/27 through RS485 transceiverDifferential busBidirectional busTransceiver A terminal
2B26/27 through RS485 transceiverDifferential busBidirectional busTransceiver B terminal
3GND0 VGroundBus reference
45V5 V supplyPowerNot a GPIO logic voltage

P4 GPIO26 is RS485 UART TX into the transceiver and GPIO27 is RX from it. The connector exposes the transceiver bus, not raw TX/RX GPIO.

5. Reserved / do not casually use

  • ESP-Hosted/C6 SDIO: GPIO14–GPIO19; C6 reset: GPIO54; C6 auxiliary connection: GPIO6.
  • TF/SD: GPIO39–GPIO44, plus board SD power/control circuitry associated with GPIO45 and the configured internal LDO channel 4 at 2500 mV.
  • Current BSP I2C/touch/RTC/audio-control/camera-control bus: GPIO7 (SDA) and GPIO8 (SCL). External compatible I2C devices may share the labeled connector; these are not free GPIOs.
  • Audio: GPIO9–GPIO13 and amplifier enable GPIO53.
  • CAN: GPIO21 RX and GPIO22 TX, already connected to the onboard TJA1051 transceiver.
  • RS485: GPIO26 TX and GPIO27 RX, already connected to the onboard RS485 transceiver.
  • Display: GPIO32 backlight control and GPIO33 reset; MIPI DSI dedicated pins.
  • Touch: shared I2C GPIO7/8; schematic indicates GPIO23 for an interrupt/test point while the current BSP declares touch interrupt and reset unconnected. Keep GPIO23 reserved pending board-revision confirmation.
  • USB/debug/boot: GPIO24/25 USB-Serial/JTAG; GPIO35 boot selection and auto-program circuit; GPIO37/38 UART0 and strapping. Keep all away from experiments.
  • Other strapping pins: GPIO34 and GPIO36 are accessible but sampled at reset. GPIO36 is additionally board-connected and is not a candidate. GPIO34 is restricted.
  • Board-internal/unresolved nets: GPIO20 and GPIO46–GPIO52. Do not use without schematic/net and physical-revision confirmation.
  • MIPI CSI camera and MIPI DSI display: dedicated high-speed D-PHY pins and connectors; never repurpose.
  • Flash/PSRAM: dedicated/in-package memory signals; never repurpose or probe as GPIO.

6. General-purpose I/O candidate table

GPIOClassificationReason / evidence
2SAFE GENERAL I/OPhysically exposed; no ownership found in board profile, effective/default config, BSP, firmware or official schematic beyond header routing; not a P4 strap
3SAFE GENERAL I/OSame as GPIO2
4SAFE GENERAL I/OSame as GPIO2
5SAFE GENERAL I/OSame as GPIO2
28SAFE GENERAL I/OPhysically exposed; no current board/ForgeUI ownership found; not a P4 strap
29SAFE GENERAL I/OSame as GPIO28
30SAFE GENERAL I/OSame as GPIO28
31SAFE GENERAL I/OSame as GPIO28
34SAFE WITH RESTRICTIONESP32-P4 strapping pin. An attached circuit must not drive or bias it incorrectly during reset; validate the chosen input/output circuit and boot state first
36CURRENTLY OWNEDExposed, but is a P4 strapping pin and the official schematic connects it to battery/indicator circuitry; not suitable for Proof #1

“Safe” here means no conflicting ownership was found in the audited baseline; it is not permission to exceed the ESP32-P4 electrical limits. Re-run the audit after any Project Hardware Profile, BSP, board revision or firmware configuration change.

7. Hardware I/O Proof allocation register

ProofPurposeGPIODirectionHardwareStatus
Hardware Example 01Button 12Active-low input, internal pull-upMomentary button to GNDPHYSICALLY PROVEN 2026-08-08
Hardware Example 01LED 13Active-high output, initially LOWLED + 330-ohm resistor to GNDPHYSICALLY PROVEN 2026-08-08
Hardware Example 01Button 24Active-low input, internal pull-upMomentary button to GNDPHYSICALLY PROVEN 2026-08-08
Hardware Example 01LED 25Active-high output, initially LOWLED + 330-ohm resistor to GNDPHYSICALLY PROVEN 2026-08-08
Hardware Example 02MB85RC256V FRAMI2C 0x50 on GPIO7/8 shared BSP bus2.7–5.5 V device; 3.3 V-safe bus logic requiredDedicated I2C connectorPHYSICALLY PROVEN 2026-08-08
Hardware Example 03PN532 RSTO2Active-low reset output from ESP32-P4Elechouse PN532 V3PHYSICALLY PROVEN 2026-08-08
Hardware Example 03PN532 MOSI28Software-SPI outputElechouse PN532 V3PHYSICALLY PROVEN 2026-08-08
Hardware Example 03PN532 MISO29Software-SPI inputElechouse PN532 V3PHYSICALLY PROVEN 2026-08-08
Hardware Example 03PN532 SCK30Software-SPI outputElechouse PN532 V3PHYSICALLY PROVEN 2026-08-08
Hardware Example 03PN532 CS31Active-low software-SPI chip select, idle HIGHElechouse PN532 V3PHYSICALLY PROVEN 2026-08-08
Hardware Example 05NEO-8 TX → P4 UART1 RX33.3 V UART input, 9600 8N1u-blox NEO-8 GPS/GNSSPHYSICALLY PROVEN 2026-08-10
Hardware Example 05NEO-8 RX ← P4 UART1 TX43.3 V UART output, 9600 8N1u-blox NEO-8 GPS/GNSSPHYSICALLY PROVEN 2026-08-10

Example 03 IRQ is unused. GPIO2 and GPIO28–GPIO31 are allocated to these PN532 roles only while Hardware Example 03 is selected. Hardware Examples are exclusive: unselected implementations remain preserved but are not linked, initialized or polled, and do not own or initialize their GPIO.

Example 05 conditionally allocates GPIO3 as UART1 RX and GPIO4 as UART1 TX with no flow control. Its module is powered from UART connector VCC / Core_5V and GND while data uses the bottom IO3/IO4 header. GPIO38/RXD is not used for GPS RX because it shares the CH343P TX net; GPIO37/TXD is not used for GPS TX because it shares the CH343P RX net. GPIO3/GPIO4 are the physically proven ForgeUI GPS pair.

These allocations were reconciled with the ForgeUI board profile, compiled BSP, firmware configuration, official board documentation, schematic evidence and the rear-board photograph. The photograph proves connector identity and access, not electrical safety by itself. See the board-specific example record 11.01_ESP32_P4_WIFI6_TOUCH_7B__EXAMPLE_01__BUTTONS_LEDS.md.

Example 01 physical evidence — 2026-08-08

Scott flashed the current build to the actual Waveshare ESP32-P4-WIFI6-Touch-LCD-7B and directly measured both output GPIOs:

GPIOUI commandMeasured resultEvidence status
3LED 1 touchscreen switch OFFapproximately 0 VPhysically proven
3LED 1 touchscreen switch ONapproximately 3.3 VPhysically proven
5LED 2 touchscreen switch OFFapproximately 0 VPhysically proven
5LED 2 touchscreen switch ONapproximately 3.3 VPhysically proven

Both physical LED test circuits operated when their local normally-off enable/slider/interlock was switched ON. This local interlock is part of the test hardware, not ForgeUI or the ESP32-P4 GPIO path.

Scott subsequently completed the remaining input proof on the same working implementation and actual board:

GPIOPhysical actionForgeUI resultEvidence status
2Press/release Button 1Indicator 1 changes on the displayPhysically proven
4Press/release Button 2Indicator 2 changes on the displayPhysically proven

Both input channels and both output channels operate correctly. The complete bidirectional Example 01 bridge is PHYSICALLY PROVEN.

Example 02 physical evidence — 2026-08-08

The dedicated I2C connector exposes GPIO7 SDA and GPIO8 SCL on the existing BSP-owned shared bus. Example 02 does not claim exclusive ownership and does not reconfigure either pin. The physical scan detected 0x18, 0x40, 0x50, and 0x5D. The external device at 0x50 returned Device-ID 00 A5 10 (manufacturer 0x00A, product 0x510), identifying the 32 KiB RAMXEED / Fujitsu-family MB85RC256V.

WRITE TEST and READ TEST both verified PASS. After a complete power cycle the board recovered counter=9, value=0xA553, verify=PASS. Hardware Example 02 is PHYSICALLY PROVEN / CLOSED.

8. Electrical rules

  • ESP32-P4 GPIO uses 3.3 V logic. Never apply 5 V directly to a GPIO.
  • Join the external circuit and board with a common GND.
  • Fit a suitable current-limiting resistor in series with every external LED.
  • Do not drive a relay, motor, solenoid, high-power lamp or other load directly from a GPIO. Use a correctly rated transistor, MOSFET or driver, with flyback protection where applicable.
  • Before using an input, check internal/external pull-up or pull-down needs and confirm it cannot disturb a strapping level during reset.
  • Never assume a connector VCC pin is 3.3 V. The I2C connector is selectable and CAN/RS485 expose 5 V power; confirm the rail before wiring.
  • Check ESP32-P4 source/sink current, peripheral conflicts, initial/high-impedance state and attached board circuitry for the specific proof before connection.
  • Power down before changing wiring. Do not back-power the board through a GPIO or connector signal.

9. Source / evidence record

Repository evidence audited

  • ForgeUI Project Hardware Profile: studio/src/forgeui/boards/profiles/waveshareEsp32P4Wifi6Touch7B.ts — identity, 1024×600 geometry, feature capability/defaults, hosted-SDIO and SDMMC allocation, BSP component.
  • ForgeUI firmware configuration: firmware/ForgeUI-One/sdkconfig.defaults and effective firmware/ForgeUI-One/sdkconfig — ESP-Hosted GPIO14–19/GPIO54 and SDMMC GPIO39–44 settings.
  • ForgeUI project Kconfig/runtime: firmware/ForgeUI-One/main/Kconfig.projbuild, 40_SD.c, 20_RTC.c, 00_ForgeUI_Config.h, main.c, and 30_Audio.c — SD configuration, BSP-owned I2C bus/DS3231 use, display/backlight and audio integration.
  • Waveshare managed BSP header/source: firmware/ForgeUI-One/managed_components/waveshare__esp32_p4_wifi6_touch_lcd_7b/include/bsp/esp32_p4_wifi6_touch_lcd_7b.h and esp32_p4_wifi6_touch_lcd_7b.c — I2C GPIO7/8, I2S GPIO9–13, amp GPIO53, backlight GPIO32, reset GPIO33, touch NC declarations and SD pins.
  • ForgeUI BSP extension: firmware/ForgeUI-One/components/bsp_extra/ — current audio wrapper ownership.
  • Physical PCB evidence: rear-board photograph at the repository path in §2 — product/resolution markings and accessible connector/silkscreen layout.

External authoritative evidence audited

Conflicts and unresolved evidence

  1. Audio data directions: the current managed BSP defines GPIO9 as BSP_I2S_DOUT and GPIO11 as BSP_I2S_DSIN; the current Waveshare wiki table describes GPIO9 as DSDIN and GPIO11 as ASDOUT. ForgeUI follows its compiled BSP. Do not rewire or reinterpret these pins until Waveshare resolves the documentation mismatch.
  2. Touch interrupt/reset: the schematic extraction indicates a GPIO23 interrupt/test-point connection, while the current managed BSP defines touch reset and interrupt as GPIO_NUM_NC. GPIO23 remains reserved and unresolved.
  3. Production header versus schematic connector: Scott's production PCB photograph clearly labels the bottom header 3V3 GND IO2 IO3 IO4 IO5 IO28 IO29 IO30 IO31 IO34 IO36. The current official schematic PDF's extracted 12-pin connector region also presents GPIO49–52 nets in a way that cannot be reconciled confidently with that production silkscreen. The photograph establishes physical availability; it does not erase schematic electrical warnings, particularly GPIO36's battery/indicator connection.
  4. UART VCC and exact independent-header wiring: GPIO37/38 are proven in the USB-to-UART/console circuit and correspond to P4 UART0 TX/RX, but the separate labeled header VCC rail is not unambiguous in extracted schematic text. Measure/confirm it before use.

Hardware Example 05 does not use GPIO37/38 for GPS data. Its physically proven GPS pair is bottom-header GPIO3/GPIO4; its proof used UART connector VCC / Core_5V only for module power and the UART connector GND for common ground.

  1. GPIO20 and GPIO46–52: board connections appear in the schematic, but their exact production-board roles were not proven sufficiently for external use. They remain reserved/unknown.

10. Document ownership rule

11_ESP32_P4_WIFI6_TOUCH_7B_BOARD_PINOUT_MASTER.md is the human-readable ForgeUI hardware I/O reference.

The Project Hardware Profile remains authoritative for generated export configuration.

If the board profile changes, this document must be reviewed and aligned.

Every new ForgeUI development board receives its own numbered board-master Markdown record, physical rear-board evidence, pin-ownership audit, and numbered board-specific Hardware Example records. Example records refer back to the board master and never replace its allocation register.

11. Audit conclusion

  • General-I/O candidates when not owned by the selected Hardware Example: GPIO2, GPIO3, GPIO4, GPIO5, GPIO28, GPIO29, GPIO30 and GPIO31.
  • Restricted candidate: GPIO34, because it is a strapping pin.
  • Do not use header GPIO36: it is a strapping pin and is tied to board battery/indicator circuitry in the official schematic.
  • Hardware Example 01 allocates GPIO2/GPIO4 to active-low buttons and GPIO3/GPIO5

to active-high LEDs.

  • Hardware Example 01 GPIO2/GPIO4 physical inputs and GPIO3/GPIO5 physical

outputs are PHYSICALLY PROVEN on the actual board.

  • Hardware Example 01 is the first fully physically proven ForgeUI Hardware

Example and demonstrates the complete bidirectional UI/hardware boundary.

  • Hardware Example 02 uses the dedicated connector without taking ownership

away from the BSP shared I2C bus. MB85RC256V at 0x50, Device-ID, write/read, and complete power-cycle persistence are PHYSICALLY PROVEN.

  • Hardware Example 03 conditionally allocates GPIO28 MOSI, GPIO29 MISO,

GPIO30 SCK, GPIO31 CS and GPIO2 RSTO; IRQ is unused. PN532 identity, SAMConfig, ISO14443A polling, stable UID, removal detection and one logical count per presentation are PHYSICALLY PROVEN.

  • Hardware Example 05 conditionally allocates GPIO3 to UART1 RX and GPIO4 to

UART1 TX at 9600 8N1 with no flow control. Checksum-valid NMEA, 3D fix with 12 satellites observed, position/altitude/speed/HDOP/UTC, read-only UBX-MON-VER, generated UI updates, standalone export, and ESP-IDF 5.5.4 Build & Flash are PHYSICALLY PROVEN. GPIO37/GPIO38 remain avoided because of their CH343P shared nets.

  • Hardware Example GPIO ownership is active only for the exclusively selected

example. Unselected example implementations remain present but inactive.