hbox-docs/docs/hardware/v6-pinmap.md

41 KiB
Raw Blame History

title tags date project author
EinarBoard v6 — Mapa de pines del MCU (U3 STM32F411RET6, LQFP64) para board_v6.h / FW 0.7.x
project-drogheda
hardware
einarboard
v6
pinmap
stm32
firmware
2026-09-28 Project Drogheda Helgen Technologies

EinarBoard v6 — Mapa de pines del MCU (U3 STM32F411RET6, LQFP64) para board_v6.h / FW 0.7.x

!!! info "Designadores T43 de la v6 (22-oct)" Este mapa ya usa los designadores de T43 de la v6, los que se ven en KiCad desde el 22-oct: el MCU es U3 (antes U16), el módem A7670SA U6 (antes U19), su AP64350 U4 (antes U20), el cargador LTC4040 U17 (antes U6), la fuente TPS54360B U22 (antes U25) y el USB-C de DFU J10 (antes J11). Varios nombres viejos ahora son otra pieza: si un documento de antes del 22-oct dice U6, en la v6 de hoy es U17. Lo que se atribuye a la V5 («V5: …», «Ítem V5» de §2.1) conserva los nombres de esa tarjeta. Los documentos fechados antes del 22-oct usan la numeración vieja: tabla viejo → nuevo.

??? info "Designadores que menciona este mapa: ahora ← antes (107)" | Ahora | Antes | Pieza | |---|---|---| | C9 | C24 | 100nF | | C10 | C7 | 100nF | | C26 | C105 | 100nF | | C27 | C111 | 4.7uF | | C28 | C157 | 100nF | | C29 | C9 | 100nF | | C30 | C106 | 100nF | | C31 | C5 | 100nF | | C32 | C112 | 1uF | | C41 | C109 | 100nF | | C42 | C104 | 100nF | | C43 | C114 | 12pF | | C48 | C107 | 100nF | | C49 | C115 | 6.8pF | | C50 | C116 | 6.8pF | | C51 | C113 | 12pF | | C56 | C110 | 4.7uF | | C57 | C108 | 100nF | | D2 | D1 | LED | | D5 | D5 | BAT54 | | D10 | D14 | PESD5V0S1BA | | D11 | D15 | PESD5V0S1BA | | D13 | D16 | PESD5V0S1BA | | D14 | D17 | LED C13 (blue) | | D16 | D13 | SS34 | | D17 | D12 | SS34 | | J1 | P6 | RESET-EXT | | J2 | P7 | NTC-HOTSPOT | | J3 | P9 | PANEL_LED | | J4 | P8 | NTC-PROBE-2 | | J5 | P2 | 5V-IN-SD15B05 | | J7 | P5 | CUTOFF-SW | | J10 | J11 | USB-C DFU | | J19 | P1 | GX16-5 | | K1 | K1 | G5V-1 DC5 | | L4 | L6 | 2.2uH/8A | | Q1 | Q4 | AO3400A | | Q3 | Q20 | 2N7002 | | Q4 | Q6 | MMBT3904 | | Q5 | Q21 | 2N7002 | | Q6 | Q2 | AO3400A | | Q8 | Q5 | MMBT3904 | | Q11 | Q1 | AO3401A | | R8 | R148 | 0R | | R13 | Rled1 | 10k | | R14 | R42 | 10k/1% | | R15 | R126 | 10k/1% | | R16 | Rig2 | 22k | | R17 | Rigb1 | 2.2k | | R18 | R7 | 10k | | R19 | R8 | 10k | | R20 | R5 | 10k | | R24 | R99 | 10k | | R25 | R6 | 10k | | R30 | Rdfu1 | 100k | | R31 | R56 | 100k | | R32 | R104 | 10R | | R33 | R113 | 100k | | R37 | R114 | 100k | | R43 | R106 | 1k | | R46 | R139 | 100k | | R48 | R41 | 10k | | R49 | R40 | 1k | | R50 | R30 | 4.7k | | R51 | R31 | 4.7k | | R52 | R98 | 10k | | R53 | R81 | 10k | | R54 | R102 | 1k | | R59 | R58 | 100k | | R60 | R57 | 100k | | R62 | R115 | 100k | | R67 | Rgs1 | 100k | | R71 | Rg1 | 100R | | R72 | R105 | 10k | | R87 | R141 | 100k | | R96 | R2 | 10k | | R103 | R1 | 1k | | R112 | Rig1 | 22k | | SW1 | SW2 | BOOT0 | | SW2 | SW1 | RESET | | TP1 | TP7 | 3V3 | | TP2 | TP6 | GND | | TP3 | TP9 | DBG_TX_PA9 | | TP4 | TP3 | SWDIO | | TP7 | TP5 | NRST | | TP8 | TP4 | SWCLK | | TP11 | TP1 | CLPROG | | TP12 | TP2 | PFO | | U1 | U11 | W5500 | | U3 | U16 | STM32F411RET6 | | U4 | U20 | AP64350SP-13 | | U5 | U23 | 74LVC2T45 | | U6 | U19 | A7670SA-LASC | | U7 | U12 | MP1584EN | | U8 | U3 | SHT40-AD1B | | U9 | U24 | 74LVC2T45 | | U14 | U10 | SC16IS752IPW | | U17 | U6 | LTC4040EUFD | | U18 | U18 | ZED-F9P-04B | | U20 | U21 | TPS7A2033PDBVR | | U21 | U13 | PCF8574 | | U22 | U25 | TPS54360B | | U23 | U27 | 74LVC1G125GV,125 | | U26 | U26 | SC7A20TR | | Y2 | Y3 | 25MHz | | Y3 | Y4 | 32.768kHz | | Y4 | Y2 | 3.6864MHz |

!!! warning "EinarBoard v6 (hbox-watchdog-v6): en diseño, no se pide" Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. No es la V5.6 que se manda a fabricar esta semana (hbox-watchdog-v5, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.

!!! info "Los cambios «▶ audit» ya se aplicaron al esquemático (28-sep)" Los cambios de pin marcados «▶ audit» ya se aplicaron al esquemático y están verificados. Los principales: PD2 = ETH_PWR_EN (R46 100 k a GND) · PB10 = PFO (R87 100 k a /3V3) · PC5 = NTC_CELL (toma del NTC del paquete) · PA9 = pad de depuración TP3 · PC6 → RX del módem directo por R8 0 Ω (K1 DNP) · CHGOFF (PA8) apagado por defecto con el pull-up R31. Detalle: Cambios de esquemático — resumen de 3 pasadas.

Prosa y encabezados en español; la tabla de 64 pines y el borrador de board_v6.h se dejan en inglés (fuente directa para firmware). Fuente: findings/pinmap-v6.md de la auditoría completa v6 (§4), mismo snapshot del 2026-09-28. La tabla describe la v6 tal como está dibujada. Las filas marcadas ▶ audit llevan la consecuencia a nivel de pin de un hallazgo verificado de forma independiente, o de la asignación de pines libres que ambas verificaciones aceptan. Desde el 28-sep, los cambios de esquemático de las filas ▶ audit ya están aplicados y verificados, salvo el strap de identificación de D-08 (la tarjeta se identifica por firmware); lo que es de layout, como mover R112 a J19.3, sigue pendiente (ver el informe de cambios v6 y el resumen de las 3 pasadas).

Correcciones aplicadas al texto original (v1.0, 2026-09-28):

  1. PA15 / ETH_RST: el pull-down es 4.7 kΩ (C23162), no 100 kΩ. El RSTn del W5500 tiene su propio pull-up interno de 62–112 kΩ (DS v1.0.2 §5.3) además del pull-up JTDI de 30–50 kΩ de PA15; 4.7 k da ≤ 0.62 V en el peor caso. La alternativa de D-04 «mover a PD2 + 100 k» falla (1.56–2.04 V) y se retira (verificación, E-02 absorbe D-04).
  2. Asignación de pines libres (conflicto (h) de la verificación): PD2 = ETH_PWR_EN (E-01), PB10 = PFO (A-13, absorbe D-10), PC5 = derivación de la NTC del paquete (F-51), PA9 = libre (pad de prueba D-12). El CLPROG → PC5 de D-10 se descarta. Abierto: el strap de identificación de tarjeta de D-08 también quería PD2; no queda pin libre salvo PA9 (Leo decide).
  3. D-01: la compuerta aislante es la Nexperia 74LVC1G125GV, C12518 (Ioff verificado), no el clon TECH PUBLIC C3040595; R30 22 k → 100 k (C25803). La alternativa de 10 k en serie se retira (≈ 0.28 mA, mismo orden que el retorno de corriente de la V5.5).
  4. D-06 se fusiona en F-02 y queda como Bloqueante (R112 a ≤ 3 mm de cobre de J19.3 + SMBJ33A C224019), no ≤ 5 mm/Mayor.
  5. Distancias del HSE: borde a borde de pad 8.32 / 11.30 mm (los 10.30 / 14.21 mm de abajo son centro a centro) (D-02).
  6. C-01 (Bloqueante, absorbe D-07): con la alimentación de antena por TPS2552, PC2 (/GNSS_ANT_SHORT_N) se vuelve una entrada real de falla por corto (FAULT̅, 10 k a /3V3_GNSS); PC1 sigue sin manejar.
  7. Decodificación de PB4: citando la tabla de la hoja de datos del LTC4040 (p. 14), «pausa NTC» = CHRG bajo ∧ FAULT bajo y batería mala = CHRG alto ∧ FAULT bajo; esto prevalece sobre el texto de la fila PB4.

Cobertura: 64 / 64 pines. Fuentes: evidence/mcu_pins.csv (netlist), evidence/pcb_pads.csv (distancias centro a centro de pad, misma net), evidence/firmware_pins.csv (board_v5.h de V5 + hbox_v5_bringup.ino 0.6.0), ST DS10314 (DocID026289 Rev 7) tabla 8 (definición de pines, estructura de E/S) y tabla 53 (E/S estática), y la base de datos de funciones alternas de ST (STM32_open_pin_data: mcu/STM32F411R(C-E)Tx.xml + mcu/IP/GPIO-STM32F411_gpio_v1_0_Modes.xml, la fuente de CubeMX para la tabla 9 del DS10314). El símbolo embebido del esquemático se cotejó contra el pinout LQFP64 de ST: 64/64 números y nombres de pin coinciden (el aviso ERC «symbol differs from library» en U3 es cosmético).

Leyenda. FT = tolerante a 5 V solo en modo digital (DS10314 tabla 8 nota 4: no en modo analógico ni de oscilador; tabla 53 nota 5: el pull-up/down interno debe estar apagado por encima de VDD+0.3 V). TC = solo 3.3 V. En este LQFP64 solo PA0 y PB5 son TC; todos los demás GPIO son FT. PC13–PC15 son pines del dominio de respaldo (tabla 8 nota 2: sumidero ≤ 3 mA, ≤ 2 MHz, ≤ 30 pF, nunca fuente). Ningún pin del MCU en v6 lleva una señal de 5 V ni de 1.8 V: todas las líneas de 1.8 V del módem pasan por U5/U9 (74LVC2T45) o por Q3/Q5 en open-drain, y todo pull-up es a /3V3. «¿Igual?» = si la macro de V5 en ese pin significa lo mismo en v6.

1. Tabla de pines (pines físicos 1–64)

Pin Nombre Net v6 Partes conectadas (resumen) Función en v6 Dir / modo (FW) Periférico + AF / ADC / EXTI ¿Necesita 5 V? / pin Macro V5 en este pin → ¿igual? Macro v6 propuesta Notas / conflictos
1 VBAT /3V3 3V3 big net Backup-domain supply, tied to 3V3 (no coin cell) power — — / S — — RTC + BKP regs + LSE lost whenever /3V3 drops (J7 cut-off open, no USB)
2 PC13 /LED_C13 D14 blue LED (K) ← R54 1 k ← /3V3 Board status LED, active LOW (sink) OUT, LOW = on GPIO, EXTI13 No / FT backup-domain PIN_LED_C13 → same PIN_LED_C13 I = (3.3 − 2.8 V Vf, C125103) / 1 k ≈ 0.5 mA ≤ 3 mA sink limit ✓ (dim)
3 PC14-OSC32_IN /LSE_IN Y3.1 (32.768 kHz C32346, CL 12.5 pF), C49 12 pF LSE oscillator RCC_OSC32_IN — BOARD_LSE_HZ → same BOARD_LSE_HZ 32768UL Y3.1 5.54 mm, C49 2.96 mm. Crystal/caps mismatch → D-03
4 PC15-OSC32_OUT /LSE_OUT Y3.2, C50 12 pF LSE oscillator RCC_OSC32_OUT — same — Y3.2 7.91 mm, C50 6.49 mm (> 5 mm)
5 PH0-OSC_IN /HSE_IN Y2.1 (25 MHz HC-49S C14872, CL 20 pF), C51 15 pF HSE (USB, PLL, ROM DFU needs it) oscillator RCC_OSC_IN — BOARD_HSE_HZ → same BOARD_HSE_HZ 25000000UL Y2.1 10.30 mm ctr (8.32 mm pad edge, verify_2), C51 13.72 mm, track 14.5 mm → D-02. ▶ audit: Y2 → C2901684 + C51/C43 12 pF C38523 (alt. C9006 + 15 pF C1644)
6 PH1-OSC_OUT /HSE_OUT Y2.2, C43 15 pF HSE oscillator RCC_OSC_OUT — same — Y2.2 14.21 mm ctr (11.30 mm pad edge, verify_2), C43 17.02 mm, track 20.7 mm → D-02
7 NRST /NRST C42 100 nF (3.26 mm), SW2 RESET, J1.1 RESET-EXT, TP7 MCU reset only RST (int. pull-up 30–50 kΩ) — — — (V5: P10) — NRST reaches only the MCU. Route 108.6 mm (91.9 F.Cu + 16.8 In2). J1 external cable has no ESD → G-08
8 PC0 /ETH_INT U1.36 ~INT (W5500) W5500 interrupt, active LOW IN pull-up GPIO, ADC1_IN10, EXTI0 No / FT PIN_ETH_INT → same PIN_ETH_INT BOOT1 trap avoided (V4 had it on PB2) ✓
9 PC1 /GNSS_ANT_DETECT U18.4 ANT_DETECT — F9P input none usable (see D-07) ANALOG / hi-Z, never drive HIGH while F9P off GPIO, ADC1_IN11, EXTI1 No / FT V5: NC · V5.6: MODEM_RST_MCU → different PIN_GNSS_ANT_DET (reserved) No antenna-current supervisor on v6: MCU cannot learn antenna state here. ▶ audit C-01: stays undriven (open-antenna detect not implemented; infer from C/N0)
10 PC2 /GNSS_ANT_SHORT_N U18.6 ANT_SHORT_N — F9P input none usable (D-07) ANALOG / hi-Z GPIO, ADC1_IN12 (SPI2_MISO AF5 unused) No / FT V5: NC · V5.6: MODEM_LED_MCU → different PIN_GNSS_ANT_SHORT_N (reserved) as PC1. ▶ audit C-01: TPS2552DBVR (C46506) FAULT̅ drives this net (10 k C25804 to /3V3_GNSS) → LOW = antenna short; input, no MCU pull; valid only while the F9P rail is on
11 PC3 /GNSS_RTK_STAT U18.20 RTK_STAT (output) RTK status: 0 = fixed, blinking = corrections in use, 1 = none IN, pull-DOWN while F9P off GPIO, ADC1_IN13, EXTI3 (shared with PB3) No / FT V5: NC · V5.6: MODEM_EN (output!) → different PIN_GNSS_RTK_STAT A V5.6 binary would drive this against the F9P output → D-08
12 VSSA GND — analog ground power — — — —
13 VDDA /VDDA R32 10 Ω ← 3V3, C41 100 nF (3.13 mm), C32 1 µF (4.61 mm) ADC reference (VREF+ bonded) power — — ADC_REF 3.3f → same — ✓ DS10314 recommendation
14 PA0-WKUP /BAT_SENSE R20 10 k ← /BAT_PLUS, R25 10 k → GND, C31 100 nF (5.6 mm) Pack voltage / 2 ANALOG ADC1_IN0 (WKUP1 spare) No (≤ 2.10 V at 4.2 V) / TC PIN_BAT_SENSE → same PIN_BAT_SENSE DIV_RATIO 2.0 unchanged. 0.21 mA permanent pack drain
15 PA1 /PWR_CTRL R103 1 k → Q8 MMBT3904 base (no base pull-down) → /GATE_LS (R96 10 k to SYS5V) → Q11 AO3401A → /SW_5V → U20 AP2112K → /3V3_GNSS F9P rail enable, HIGH = on OUT PP, LOW at boot GPIO / TIM2_CH2 AF1 (soft-start PWM) No / FT PIN_PWR_CTRL → CHANGED: V5 = RTK + 4G stack; v6 = F9P only (modem has PC10) PIN_GNSS_PWR (keep PIN_PWR_CTRL alias) Floats in reset/DFU → D-09 (absorbs A-12). ▶ audit: 100 k C25803 /BASE_LS → GND next to Q8
16 PA2 /GNSS_TX U18.43 RXD (F9P UART1 in) MCU → F9P UART1 (UBX config) AF PP only while F9P on; INPUT no-pull when off USART2_TX AF7 No / FT PIN_GNSS_TX → same (was simpleRTK2B UART1) PIN_GNSS_TX 0.5.5 float rule is mandatory (direct into F9P)
17 PA3 /GNSS_RX U18.42 TXD (F9P UART1 out) F9P → MCU NMEA/UBX AF; pull-up only while F9P on USART2_RX AF7 No / FT PIN_GNSS_RX → same PIN_GNSS_RX GNSS = Serial2
18 VSS GND — ground power — — — —
19 VDD /3V3 nearest C30 3.29 mm supply power — — — — per-pin cap target ≤ 2 mm (Note)
20 PA4 /5V_SENSE R18 10 k ← /VEH5V, R19 10 k, C10 100 nF (5.5 mm) VEH5V / 2 (now U22 output or bench J5) ANALOG ADC1_IN4 No (2.50 V at 5.00 V, 2.66 V at 5.32 V) / FT PIN_5V_SENSE → same net; source is now on-board U22 PIN_5V_SENSE LTC4040 PFI real threshold 1.19 V × 3.7 = 4.40 V (LTC4040 DS pin 19)
21 PA5 /IGN_SENSE R112 22 k ← /IGN_IN (J19.3); R16 22 k ∥ R17 3.3 k → GND; C29 100 nF (3.09 mm); D5 BAT54 → /3V3 Ignition present / vehicle-voltage estimate ANALOG on v6 (V5 read it digital) ADC1_IN5 (EXTI5 if digital) No at the pin (3.23 V at 28 V; clamp ≈ 3.55 V above 30.3 V) / FT (not in analog mode) PIN_IGN_SENSE → same net, digital read no longer adequate (12 V vehicles) PIN_IGN_SENSE Divider midpoint, pin and C29 on one net (junction verified) · D-05, D-06. ▶ audit F-02 (Blocker, absorbs D-06): R112 moves ≤ 3 mm of copper from J19.3 + SMBJ33A C224019 at J19.3, so the long run becomes the 22 k-limited /IGN_SENSE; pin net unchanged. D-05: R17 3.3 k → 2.2 k C4190 → ratio 0.0833 (12 V → 1.00 V, 24 V → 2.00 V, 36 V → 3.00 V)
22 PA6 /FAN_PWM R71 100 Ω → Q6 AO3400A gate, R67 100 k Fan low-side switch, HIGH = on OUT PP (ON/OFF policy) GPIO / TIM3_CH1 AF2 No / FT PIN_FAN_PWM → same PIN_FAN TIM3 is also PA7's capture timer (§2.4)
23 PA7 /GNSS_TIMEPULSE U18.53 TIMEPULSE F9P 1 PPS IN, pull-down while F9P off TIM3_CH2 AF2 input capture / EXTI7 No / FT V5: NC → new PIN_GNSS_PPS
24 PC4 /NTC2 R15 10 k/1 % → 3V3, C28 100 nF (3.11 mm), J4.1 External NTC probe 2 (10 k B3950) ANALOG ADC1_IN14 No / FT V5: NC (V5.6: MODEM_ON_SLEEP, DNP) → new PIN_NTC2 $PHLG tntc2 (append)
25 PC5 unconnected (NC flag) — spare ANALOG (lowest Idd) ADC1_IN15 — V5: NC (V5.6: MODEM_ASSOC, DNP) PIN_SPARE_PC5 → PIN_NTC_CELL ▶ audit F-51 (verify_1 (h)): pack-NTC tap, /NTC → 100 k (C25803) / 120 k (C25808) + 10 nF → PC5; PC5 ≤ 2.98 V; valid only with VEH5V present. D-10's CLPROG use dropped
26 PB0 /EXT_LED Q1 AO3400A gate, R13 10 k → panel LED D2 at J3 Panel LED, HIGH = on OUT PP GPIO (TIM3_CH3 AF2) No / FT PIN_EXT_LED → same (connector P8 on the V5 → J3) PIN_EXT_LED
27 PB1 /NTC_TEMP R14 10 k/1 % → 3V3, C9 100 nF (6.63 mm), J2.1 External NTC probe 1 (hot-spot, tntc) ANALOG ADC1_IN9 No / FT PIN_NTC → same (connector P12 on the V5 → J2) PIN_NTC
28 PB2 /BOOT1_STRAP R24 10 k → GND (2.84 mm) BOOT1 = 0 strap (DFU entry) never reconfigure BOOT1 — — (V4: ETH_INT!) — "never repurpose PB2" ✓
29 PB10 unconnected (NC flag) — spare ANALOG TIM2_CH3 AF1, I2C2_SCL AF4, SPI2_SCK AF5, EXTI10 — V5: NC PIN_SPARE_PB10 → PIN_PFO ▶ audit A-13 (absorbs D-10): U17.20 PFO → PB10, 100 k C25803 pull-up to /3V3, EXTI10 falling = backup entry at VEH5V < 4.40 V
30 VCAP1 /VCAP1 C27 4.7 µF (3.19 mm) core regulator cap power — — — — ✓
31 VSS GND — ground power — — — —
32 VDD /3V3 nearest C26 3.65 mm supply power — — — —
33 PB12 /ETH_CS U1.32 SCSn W5500 chip select OUT PP (INPUT_PULLUP while W5500 idle) GPIO (SPI2_NSS AF5 unused) No / FT PIN_ETH_CS → same PIN_ETH_CS
34 PB13 /ETH_SCK U1.33 SPI2 SCK AF SPI2_SCK AF5 No / FT PIN_ETH_SCK → same PIN_ETH_SCK
35 PB14 /ETH_MISO U1.34 SPI2 MISO (W5500 output) AF in SPI2_MISO AF5 No / FT PIN_ETH_MISO → same PIN_ETH_MISO
36 PB15 /ETH_MOSI U1.35 SPI2 MOSI AF SPI2_MOSI AF5 No / FT PIN_ETH_MOSI → same PIN_ETH_MOSI
37 PC6 /USART6_TX K1.10 (NO contact) → /DIN_4G → U5 (3.3 → 1.8 V) → U6.10 RXD MCU → modem (AT, GGA, $PHLG) when K1 energised (Mode B) AF PP while modem on; INPUT otherwise USART6_TX AF8 No / FT V5: NC. Takes over V5 PA9 PIN_USART1_TX (RELAY TX) PIN_MODEM_TX NC flag on a connected pin (cosmetic) → D-11
38 PC7 /USART6_RX R43 100 Ω ← /DOUT_4G ← U9 (1.8 → 3.3 V) ← U6.9 TXD; /DOUT_4G also → U18.26 F9P RXD2 modem → MCU (AT replies + RTCM byte count) AF, no pull while F9P off USART6_RX AF8 No / FT V5: NC (V5.6 RTCM_TAP, same peripheral) PIN_MODEM_RX NC flag cosmetic (D-11 → J-04). A pull-up here back-feeds the F9P (D-01). ▶ audit D-01: U23 74LVC1G125GV C12518 on /3V3_GNSS isolates U18.26 (new net /DOUT_4G_F9P); PC7/R43 stay on /DOUT_4G. B-10: R43 100 Ω → 1 kΩ C14676
39 PC8 /MODEM_PWRKEY Q3 2N7002 gate, R37 100 k PD → U6.1 PWRKEY (int. pull-up to VBAT) Modem power key; MCU HIGH = key pressed OUT PP, LOW at boot GPIO (TIM3_CH3) No / FT V5: NC → new PIN_MODEM_PWRKEY on ≥ 50 ms, off ≥ 2.5 s (Phase-1 spec / Phase-2 delta)
40 PC9 /MODEM_STATUS U9.6 (2B) ← U6.66 STATUS (1.8 V) Modem powered/ready (≈ 11.2 s after power-on) IN pull-DOWN (floats when modem off: U9 Ioff) GPIO, EXTI9 (shared with PB9) No / FT V5: NC → new PIN_MODEM_STATUS poll it (EXTI9 belongs to the accelerometer) → D-14 (merged into B-10). ▶ audit B-10: 100 k C25803 /MODEM_STATUS → GND
41 PA8 /CHRG_EN U17.4 CHGOFF, R31 100 k → GND Charger disable; HIGH = charge OFF OUT PP GPIO (TIM1_CH1 AF1) No / FT PIN_CHRG_EN → same PIN_CHRG_EN In reset/DFU R31 → charger ON (as V5). ▶ audit A-11: R31 100 k re-netted to /3V3 → charger OFF by default; polarity unchanged
42 PA9 unconnected (NC flag) — spare ANALOG USART1_TX AF7, OTG_FS_VBUS AF10 — PIN_USART1_TX → REMOVED (role now PC6) PIN_DBG_TX if a pad is added USART1 is RX-only on v6 (TX alternates PA15/PB6 are taken). Add a test pad → D-12. ▶ audit: only remaining spare after (h); also the only candidate left for D-08's board-ID strap (open)
43 PA10 /USART1_RX U18.27 TXD2 (F9P UART2 out), K1.1 (NC → modem DIN), R30 22 k → /3V3 (2.28 mm) Passive tap on the F9P → modem stream (fail-safe path through K1 NC) AF RX, no internal pull (PA10 pull-up is 7–14 kΩ, DS Table 53) USART1_RX AF7 No / FT PIN_USART1_RX → same (tap), now RX-only PIN_F9P_TX2_TAP Uart RELAY(PA10, PA9) → RX-only instance. ▶ audit D-01: R30 22 k → 100 k C25803 (back-feed ≤ 27 µA)
44 PA11 /DFU_DM J10 A7/B7, D11 PESD5V0S1BA (6.74 mm from J10) USB FS D− (ROM DFU + CDC console) AF OTG_FS_DM AF10 No / FT CON SerialUSB → same — route 55.1 mm
45 PA12 /DFU_DP J10 A6/B6, D10 (3.19 mm) USB FS D+ AF OTG_FS_DP AF10 No / FT same — route 50.1 mm
46 PA13 /SWDIO TP4 (6.04 mm) SWD data AF0 (pull-up at reset) SYS_JTMS-SWDIO AF0 — — —
47 VSS GND — ground power — — — —
48 VDD /3V3 C48 2.10 mm supply power — — — — ✓
49 PA14 /SWCLK TP8 (5.43 mm) SWD clock AF0 (pull-down at reset) SYS_JTCK-SWCLK AF0 — — —
50 PA15 /ETH_RST U1.37 RSTn W5500 reset, LOW = held OUT PP, drive LOW first thing GPIO (JTDI AF0 at reset, 30–50 kΩ pull-up) No / FT PIN_ETH_RST → same PIN_ETH_RST W5500 is released during MCU reset/boot → E-02 (absorbs D-04). ▶ audit (verified): 4.7 k C23162 /ETH_RST → GND at U1.37 → ≤ 0.62 V worst case (W5500 internal 62–112 kΩ pull-up + PA15 30–50 kΩ); 100 k gives 2.75 V and fails
51 PC10 /MODEM_PWR_EN U4.3 EN (AP64350), R33 100 k PD Modem buck enable, HIGH = on OUT PP, LOW at boot GPIO No / FT V5: NC (V5.6 used PC3) → new PIN_MODEM_PWR_EN any MCU reset power-cycles the modem (by design). ▶ audit A-01: U4 input moves to /MAIN5V only (OR-ing diodes «D20»/«D21» of the 28-sep numbering removed); EN control unchanged (R33 100 k PD, EN pull-up 1.5 µA → 0.15 V = OFF)
52 PC11 /MODEM_RST Q5 2N7002 gate, R62 100 k PD → U6.16 RESET Modem reset; MCU HIGH = asserted OUT PP, LOW at boot GPIO No / FT V5: NC (V5.6 used PC1) → new PIN_MODEM_RST
53 PC12 /GNSS_RESET_N U18.49 RESET_N, R72 10 k → /3V3_GNSS F9P hard reset, LOW = reset OUTPUT_OPEN_DRAIN (or INPUT); never push HIGH GPIO No / FT V5: NC → new PIN_GNSS_RESET_N push-HIGH with F9P off = back-feed
54 PD2 unconnected (NC flag) — spare ANALOG TIM3_ETR AF2, EXTI2 — V5: NC PIN_ETH_PWR_EN (▶ audit) ▶ audit E-01 (verify_1 (h)): /ETH_PWR_EN → U7.2 EN, 100 k C25803 → GND; HIGH = 3V3_ETH on. D-08's 10 k board-ID strap on this pin conflicts and is unresolved
55 PB3 /CHRG_STAT U17.8 CHRG (open-drain), R60 100 k → /3V3 LOW = charging IN, no pull GPIO, EXTI3 (JTDO/SWO AF0 at reset; TIM2_CH2) No (3V3 pull-up) / FT PIN_CHRG_STAT → same PIN_CHRG_STAT SWO trace unavailable
56 PB4 /CHRG_FAULT U17.9 FAULT (open-drain), R59 100 k → /3V3 LOW = fault / NTC pause IN GPIO, EXTI4 (NJTRST pull-up at reset) No / FT PIN_CHRG_FAULT → same PIN_CHRG_FAULT "pausa NTC" = EN allowed ∧ STAT idle ∧ FAULT low. ▶ audit: the power auditor decodes from the LTC4040 datasheet table (p.14) "pausa NTC" = CHRG low ∧ FAULT low, bad battery = CHRG high ∧ FAULT low; use that decode
57 PB5 /BYP_CTRL R49 1 k → Q4 MMBT3904 (R48 10 k B–E) → K1 coil (/SYS5V) K1 Mode B; HIGH = energised = modem DIN ← PC6 OUT PP, LOW at boot GPIO (TIM3_CH2 AF2) No / TC (output only ✓) PIN_BYP_CTRL → same pin; NO contact now = PC6 (was PA9) PIN_BYP_CTRL K1 0.15 W while held
58 PB6 /I2C_SCL R50 4.7 k; U8 SHT40, U14 SC16IS752, U21 PCF8574, U26 SC7A20 I2C1 SCL AF OD I2C1_SCL AF4 No / FT PIN_I2C_SCL → same PIN_I2C_SCL Map: 0x18 SC7A20 (new), 0x20 PCF8574, 0x44 SHT40, 0x4D SC16IS752. No TMP102 (0x48/0x49) on v6 as drawn. ▶ audit F-51: TMP102 C99269 at 0x48 (ADD0 → GND) between U17 and L4; F-52 option: second TMP102 at 0x49
59 PB7 /I2C_SDA R51 4.7 k; same devices I2C1 SDA AF OD I2C1_SDA AF4 No / FT PIN_I2C_SDA → same PIN_I2C_SDA
60 BOOT0 /BOOT0 R52 10 k → GND (3.65 mm), SW1 → 3V3 Boot select I (B) — — — — route 73.2 mm (61.4 mm on In1)
61 PB8 /SER_IRQ U14.15 IRQ (open-drain), R53 10 k → 3V3 SC16IS752 IRQ IN GPIO, EXTI8 No / FT PIN_SER_IRQ → same PIN_SER_IRQ
62 PB9 /ACC_INT1 U26.5 INT1 (push-pull, active HIGH default) Motion interrupt / STOP wake IN, EXTI rising GPIO, EXTI9 (TIM4_CH4, TIM11_CH1) No / FT V5: NC → new PIN_ACC_INT1 owns EXTI9
63 VSS GND — ground power — — — —
64 VDD /3V3 C56 3.90 mm (shared with pin 1), C57 4.63 mm supply power — — — —

Count check: 50 GPIO pads (PA0–PA15 = 16, PB0–PB10 + PB12–PB15 = 15, PC0–PC15 = 16, PD2 = 1, PH0/PH1 = 2) + NRST, BOOT0, VBAT, VCAP1, VDDA, VSSA (6) + VDD ×4 + VSS ×4 = 64. 60 pins are connected; the 4 truly unconnected spares are PA9, PB10, PC5, PD2.

2. Conflictos y banderas

2.1 Pines de firmware que desaparecen o cambian de significado en v6

Ítem V5 Estado en v6 Sustituto / acción
PIN_USART1_TX PA9 + Uart RELAY(PA10, PA9) PA9 sin conexión (bandera NC) La consola nunca estuvo en PA9: CON = SerialUSB (PA11/PA12, J10) no cambia. PA9 era el camino de inyección del Modo B hacia el módem por K1 NO. En v6 ese camino es PC6 USART6_TX → K1.10 (NO), y el MCU ahora también escucha al módem en PC7 USART6_RX. USART1 queda como derivación solo RX en PA10 (TXD2 del F9P). En v6 no existe pin TX de depuración por UART (D-12).
PIN_PWR_CTRL PA1 Solo riel del GNSS La alimentación del módem es PIN_MODEM_PWR_EN PC10. Los ciclos de etapa nunca deben usarse para recuperar el módem.
Puente PCF8574 P7 → SW4G1 MODEM_RST (PCF_MODEM_RST_BIT 0x80, ENABLE_MODEM_RST) U21.12 (P7) sin conexión; no hay SW4G1 Eliminar el camino del puente; usar PC11 (reset) / PC8 (PWRKEY) / PC10 (alimentación).
TMP102 0x48 (I2C_ADDR_TMP102, fuente de CHG_CELL_HOT/COOL) no hay TMP102 en v6 La temperatura de celda para el gobernador no tiene fuente en la tarjeta. ▶ audit F-51 (Mayor, verificado): TMP102 C99269 en 0x48 junto a U17 (tchg) + derivación de la NTC del paquete en PC5 (tcell, válida con VEH5V presente).
PIN_ETH_INT V4 = PB2 PC0 en v6 (como V5) ✓
board_v56.h de V5.6 (ECO §H): MODEM_EN PC3, MODEM_RST PC1, MODEM_LED PC2, ONSLP PC4, ASSOC PC5, RTCM_TAP PC7 v6: PC1/PC2 = entradas del F9P, PC3 = salida RTK_STAT del F9P, PC4 = NTC2 board_v56.h y board_v6.h nunca deben compartir binario: un build V5.6 maneja PC3 en ALTO contra el RTK_STAT push-pull del F9P. Se propuso un strap de identificación de tarjeta (D-08); su pin PD2 ahora lo reclama E-01, así que el pin del strap queda abierto (PA9 es el único libre).

2.2 Nets de v6 sin contraparte en firmware (nuevas para 0.7.x)

PA7 GNSS_TIMEPULSE · PC1/PC2 ANT_DETECT/ANT_SHORT_N (entradas del F9P, reserva) · PC3 GNSS_RTK_STAT · PC4 NTC2 · PC6/PC7 USART6 · PC8 PWRKEY · PC9 STATUS · PC10 MODEM_PWR_EN · PC11 MODEM_RST · PC12 GNSS_RESET_N · PB9 ACC_INT1 (SC7A20 en 0x18).

2.3 Comprobaciones de ADC y de 5 V

  • Toda net analógica está en un pad con ADC: BAT_SENSE PA0/IN0, 5V_SENSE PA4/IN4, IGN_SENSE PA5/IN5, NTC_TEMP PB1/IN9, NTC2 PC4/IN14. Pad ADC libre: PC5/IN15. ✅
  • Ninguna señal de 5 V en ningún pin; los dos pines TC llevan PA0 ≤ 2.10 V y PB5 (salida). ✅
  • IGN_SENSE es el único pin que puede exceder VDD: llega a 3.23 V con 28 V, y el clamp BAT54 lo sostiene en ≈ 3.55–3.65 V por encima de ≈ 30.3 V (0.24 mA a 36 V, 1.2 mA a 58 V hacia /3V3). En modo analógico se pierde la tolerancia FT, así que el clamp es lo que lo protege. No hay clamp negativo (D-06).

2.4 Asignación de funciones alternas, temporizadores y EXTI

  • Sin conflictos de AF. USART2 PA2/PA3 AF7 · USART6 PC6/PC7 AF8 · USART1_RX PA10 AF7 (sin TX) · SPI2 PB13/PB14/PB15 AF5 (CS PB12 como GPIO) · I2C1 PB6/PB7 AF4 · OTG_FS PA11/PA12 AF10 · SWD PA13/PA14 AF0. Cada periférico usa un conjunto de AF consistente.
  • El TX de USART1 no se puede recuperar: sus alternativas son PA9 (NC), PA15 (ETH_RST) y PB6 (I2C1_SCL).
  • Temporizadores: ventilador PA6 = TIM3_CH1 y PPS PA7 = TIM3_CH2 comparten la base de tiempo de TIM3. La política del ventilador es ON/OFF (GPIO, drogheda-fan-policy), así que TIM3 queda libre para capturar el PPS. Si algún día se restaura el PWM del ventilador, marcar el tiempo del PPS por EXTI7 (contador de ciclos DWT). El arranque suave de PA1 usa TIM2_CH2 (libre).
  • Colisiones EXTI (un puerto por línea, SYSCFG_EXTICR): EXTI3 = PC3 RTK_STAT y PB3 CHRG_STAT; EXTI9 = PB9 ACC_INT1 y PC9 MODEM_STATUS. Asignar EXTI9 al acelerómetro (despertar por movimiento) y sondear STATUS. Asignar EXTI3 a RTK_STAT solo si se quiere medir el parpadeo, y sondear CHRG_STAT. EXTI0 (ETH_INT), EXTI7 (PPS) y EXTI8 (SER_IRQ) son únicos.

2.5 Pines que tocan al ZED-F9P (regla de retorno de corriente, lección 0.5.5/0.5.6)

Mientras PIN_GNSS_PWR esté en BAJO: PA2 INPUT sin pull; PA10 sin pull (su pull-up interno es de 7–14 kΩ); PC7 sin pull-up; PC12 liberado (open-drain); PA7/PC3 sin pull-up; PC1/PC2 analógicos. El camino de hardware U9 → /DOUT_4G → U18.26 no se puede corregir por firmware salvo manteniendo el módem apagado siempre que el F9P esté apagado (D-01, Mayor, absorbe C-06). ▶ audit (corrección verificada): U23 = Nexperia 74LVC1G125GV C12518 (Ioff ±2 µA) alimentado de /3V3_GNSS, OE̅ = GND, 100 nF C14663; R30 → 100 k C25803. Comprobación de banco: /3V3_GNSS < 0.3 V con PA1 en BAJO y el módem encendido.

3. Arranque y depuración

Ítem v6 Veredicto
BOOT0 R52 10 k → GND a 3.65 mm; SW1 a 3V3 (serigrafía «BOOT») ✅
BOOT1 / trampa DFU en PB2 PB2 solo en R24 10 k → GND (2.84 mm); ETH_INT en PC0 ✅ (memoria drogheda-einarboard-30-mcu-integration)
El DFU de ROM necesita HSE Y2 25 MHz está soportado, pero la colocación del cristal y el margen de gm son pobres ⚠ D-02
NRST C42 100 nF (3.26 mm, valor del DS10314) · SW2 (táctil 6 mm, NRST en el par de pads de 6.5 mm, GND en el otro) · J1 RESET-EXT (JST-XH, era P10 en V5) · TP7. Llega solo al MCU. ✅ circuito / ⚠ sin ESD en J1 (G-08)
SWD TP4 SWDIO (6.04 mm), TP8 SWCLK (5.43 mm), TP7 NRST, TP2 GND (a 17.6 mm), TP1 3V3. Sin header. SWO imposible (PB3 = CHRG_STAT). ⚠ usable con pinzas; D-12
USB DFU PA11/PA12 → J10 (USB-C, CC 5.1 k ×2), D10/D11/D13 PESD5V0S1BA a 3.19 / 6.74 / 6.83 mm de J10; VBUS → D16 → AMS1117 (OR con SYS5V vía D17, sin retorno hacia SYS5V) ✅ ECO E.5 (parte DFU) cumplida
HSE Y2 C14872 YXC HC-49S 25 MHz, CL 20 pF, −20…+70 °C, con C51/C43 15 pF → CL_eff = 7.5 + (5…10) pF parásitos = 12.5–17.5 pF. Pads a 8.32/11.30 mm borde (10.30/14.21 mm centro) de PH0/PH1 (objetivo ≤ 5). ❌ D-02 (Menor, verificado)
LSE Y3 C32346 Epson FC-135, CL 12.5 pF, ESR 70 kΩ, con capacitores de 12 pF → CL_eff ≈ 9 pF. Pads a 5.54/7.91 mm. ⚠ D-03

4. Señales específicas

  • CHRG_STAT PB3 / CHRG_FAULT PB4: open-drain del LTC4040 (máx. absoluto 6 V), R60/R59 100 k a /3V3 (riel del MCU siempre encendido, así que no hay retorno). ✅ PFO (U17.20) va solo a TP12, sin pull-up y sin pin del MCU. RST (U17.11) sin conexión. CLPROG va solo a TP11 (D-10). ▶ audit: PFO → PB10 (A-13); CLPROG se queda en TP11 (no queda pin ADC una vez que PC5 toma la NTC del paquete).
  • IGN_SENSE: 22 k / (22 k ∥ 3.3 k = 2.870 k) → relación 0.1154 (partes ±1 %: 0.1134–0.1174). Voltaje en el pin: 12 V → 1.385 V (1.30 V con el pull-down interno que habilita el firmware V5), 24 V → 2.769 V, 28 V → 3.231 V, 36 V → 4.154 V en circuito abierto, recortado a ≈ 3.55 V (BAT54 0.24 mA). 58 V: 1.2 mA de corriente de clamp; R112 disipa 0.135 W (> 0.1 W del 0603, solo transitorio). La escala completa del ADC se alcanza a 28.6 V. Umbrales digitales (DS10314 tabla 53, probados en producción VIL 0.3 VDD = 0.99 V, VIH 0.7 VDD = 2.31 V): un ALTO está garantizado solo por encima de 20.0 V. Una ignición de 12–14.4 V queda en la banda indefinida. Comprobación de unión: /IGN_SENSE = {R112.2, R16.1, R17.1, C29.1, D5.2 (A), U3.21}, una sola net en la netlist y en la PCB (6 pads, 1 grupo conectado, 14.2 mm en F.Cu). La pérdida de unión de la V5.6 no está presente en v6. ✅ ▶ audit F-02 (Bloqueante): el /IGN_IN crudo corre 106.47 mm en In2 a 0.221 mm de /VEH5V; mover R112 a J19.3 convierte ese tramo en /IGN_SENSE limitado en corriente (≤ 1.4 mA a 36 V, 2.5 mA a 58 V); C29 en el MCU mantiene τ = 0.25 ms. D-05 cambia la relación a 0.0833 si R17 = 2.2 k.
  • Control del módem: PC10 → U4 EN (R33 100 k PD); PC8 → Q3 → PWRKEY (R37 PD); PC11 → Q5 → RESET (R62 PD); PC9 ← U9 ← STATUS 1.8 V. Todos apagados o liberados por omisión en reset/DFU. ✅
  • GNSS: RESET_N PC12 con R72 10 k a /3V3_GNSS (manejo open-drain) ✅; TIMEPULSE PA7 ✅; RTK_STAT PC3 ✅; ANT_DETECT/ANT_SHORT_N son entradas del receptor sin nada que las maneje (D-07).
  • INT1 del acelerómetro (T11): PB9 EXTI9, push-pull ✅.
  • NTC2: PC4, R15 10 k/1 % + C28 100 nF (3.11 mm), J4 ✅.
  • USART6 PC6/PC7: AF8 en ambos ✅. TX va por K1 NO (solo Modo B). RX va por R43 100 Ω y siempre está conectado.
  • Banderas NC de ERC en U3.37/38 y U14.13/14: cosméticas. Los cuatro pines están en sus nets en la netlist (U3.37 ∈ /USART6_TX {K1.10}; U3.38 ∈ /USART6_RX {R43.2}; U14.13/14 ∈ /I2C_SCL/SDA), los pads de la PCB llevan las mismas nets (verificado por IPC-356) y las cuatro nets están ruteadas. Las banderas deben borrarse de todos modos (D-11).

5. Lista de cambios de firmware — board_v6.h / FW 0.7.x

Pines cuyo significado cambia respecto a V5: PA1 (solo GNSS), PA9 (desaparece), PA10 (derivación solo RX, F9P directo), PB5 (el NO de K1 ahora es PC6), PA5 (leer analógico), PC1/PC2/PC3/PC4/PC6–PC12/PA7/PB9 (nuevos), TMP102 y el reset por P7 del PCF (desaparecen).

Periféricos nuevos por inicializar: USART6 (PC7 RX, PC6 TX, 115200, AT + contador de bytes RTCM); USART1 solo RX en PA10; captura TIM3_CH2 o EXTI7 en PA7 (PPS); EXTI9 en PB9 y el SC7A20 en 0x18 (compatible LIS3DH: CTRL_REG1/3, INT1_CFG/THS/DURATION); canales ADC IN5 (IGN) e IN14 (NTC2); LSE en modo de alto drive (LSEMOD) con respaldo LSI para el despertar por RTC; W5500 como en V5.

En BAJO por omisión en las primerísimas líneas de setup() (antes de cualquier delay o inicialización de USB): PC10 MODEM_PWR_EN, PC8 PWRKEY, PC11 MODEM_RST, PA1 GNSS_PWR, PB5 BYP_CTRL, PA15 ETH_RST (sale del reset en ALTO por el pull-up JTDI; el 4.7 k de E-02 lo mantiene bajo hasta entonces), PA6 FAN, PB0 EXT_LED y PD2 ETH_PWR_EN si se adopta E-01. PA8 CHRG_EN pertenece al gobernador (ALTO hasta que decida).

Entradas nuevas si se adoptan las correcciones de la auditoría: PB10 PFO (EXTI10 flanco de bajada, A-13); PC5 ADC1_IN15 NTC del paquete, relación 120/220 (F-51); TMP102 en 0x48 (F-51) y opcionalmente 0x49 (F-52); PC2 falla de corto de antena desde el TPS2552 (C-01).

Dejar en alta impedancia / analógico: PA9, PB10, PC5, PD2 (salvo que se adopten E-01 / A-13 / F-51, que toman PD2 / PB10 / PC5), PC1, PC2; todos los pines hacia el F9P mientras el F9P esté apagado (§2.5); PC7/PC9 mientras el módem esté apagado (PC9 con pull-down).

Open-drain: PC12. Los drivers de PC8/PC11 son FET externos, así que los pines del MCU son push-pull.

Secuencia: PA1 ALTO → ≥ 4 s → PC10 ALTO → 100 ms → pulso PC8 ALTO ≥ 50 ms → esperar PC9 ALTO (≈ 11.2 s) o RDY por AT → trabajo → apagado por AT o PC8 ALTO ≥ 2.5 s → PC10 BAJO → PA1 BAJO. Nunca dejar PC10 en ALTO con PA1 en BAJO (D-01) salvo que esté montada la corrección de hardware de D-01. Cualquier reset del MCU apaga y enciende el módem (R33) y el F9P (PA1 flota), así que la lógica de recuperación debe asumir un módem frío después de cada reset.

Borrador del encabezado:

// board_v6.h — EinarBoard v6 (hbox-watchdog-v6), STM32F411RET6 LQFP64
#define HBOX_BOARD_NAME   "EinarBoard v6 (HBOX v6)"
#define HBOX_BOARD_MCU    "STM32F411RET6 LQFP64"
#define BOARD_HSE_HZ      25000000UL
#define BOARD_LSE_HZ      32768UL
#define BOARD_SER_XTAL_HZ 3686400UL      // Y4 = C2238 (3.6864 MHz; schematic value text says 1.8432 MHz)
// power / analog
#define PIN_BAT_SENSE     PA0   // ADC1_IN0, /2
#define PIN_GNSS_PWR      PA1   // HIGH = F9P rail on (Q8->Q11->SW_5V->U20). Was PIN_PWR_CTRL (stack)
#define PIN_PWR_CTRL      PIN_GNSS_PWR
#define PIN_5V_SENSE      PA4   // ADC1_IN4, /2 (VEH5V = U22 or J5)
#define PIN_IGN_SENSE     PA5   // ADC1_IN5 — READ ANALOG (12 V: 1.39 V, 24 V: 2.77 V)
#define PIN_NTC           PB1   // ADC1_IN9, J2 probe 1
#define PIN_NTC2          PC4   // ADC1_IN14, J4 probe 2
#define PIN_CHRG_EN       PA8   // HIGH = charger OFF (R31 PD -> ON in reset)
#define PIN_CHRG_STAT     PB3   // LOW = charging (OD, R60 100k)
#define PIN_CHRG_FAULT    PB4   // LOW = fault / NTC pause (OD, R59 100k)
#define PIN_FAN           PA6   // HIGH = fan on (TIM3_CH1 if PWM)
#define PIN_LED_C13       PC13  // active LOW
#define PIN_EXT_LED       PB0   // HIGH = panel LED (J3)
// GNSS (ZED-F9P U18)
#define PIN_GNSS_TX       PA2   // USART2_TX AF7 -> F9P RXD  (hi-Z when F9P off!)
#define PIN_GNSS_RX       PA3   // USART2_RX AF7 <- F9P TXD
#define PIN_F9P_TX2_TAP   PA10  // USART1_RX AF7 <- F9P TXD2 (RX-only, no pull)
#define PIN_GNSS_PPS      PA7   // TIM3_CH2 AF2 / EXTI7
#define PIN_GNSS_RTK_STAT PC3   // 0 fixed / blink corrections / 1 none
#define PIN_GNSS_RESET_N  PC12  // OPEN-DRAIN only
#define PIN_GNSS_ANT_DET  PC1   // F9P INPUT — keep analog/hi-Z
#define PIN_GNSS_ANT_SHORT_N PC2 // F9P INPUT — keep analog/hi-Z
// modem (A7670SA U6)
#define PIN_MODEM_TX      PC6   // USART6_TX AF8 -> K1 NO -> U5  -> RXD (Mode B)
#define PIN_MODEM_RX      PC7   // USART6_RX AF8 <- R43  <- U9  <- TXD
#define PIN_MODEM_PWRKEY  PC8   // HIGH = key pressed (Q3)
#define PIN_MODEM_STATUS  PC9   // INPUT_PULLDOWN, HIGH = modem on
#define PIN_MODEM_PWR_EN  PC10  // HIGH = U4  on (R33  PD)
#define PIN_MODEM_RST     PC11  // HIGH = reset asserted (Q5)
#define PIN_BYP_CTRL      PB5   // HIGH = K1 energised (modem DIN <- PC6)
// I2C1 / expanders / sensors
#define PIN_I2C_SCL       PB6
#define PIN_I2C_SDA       PB7
#define PIN_SER_IRQ       PB8   // SC16IS752 IRQ, EXTI8
#define PIN_ACC_INT1      PB9   // SC7A20 INT1, EXTI9
#define I2C_ADDR_SC7A20   0x18
#define I2C_ADDR_PCF8574  0x20
#define I2C_ADDR_SHT40    0x44
#define I2C_ADDR_SC16IS   0x4D
// Ethernet (W5500 U1,  SPI2)
#define PIN_ETH_CS        PB12
#define PIN_ETH_SCK       PB13
#define PIN_ETH_MISO      PB14
#define PIN_ETH_MOSI      PB15
#define PIN_ETH_INT       PC0
#define PIN_ETH_RST       PA15  // JTDI pull-up at reset: drive LOW first (E-02: 4.7k PD C23162)
// spare as drawn: PA9 (USART1_TX), PB10, PC5 (ADC1_IN15), PD2
// --- only if the audit fixes are adopted (verify_1 conflict (h)) ---
// #define PIN_ETH_PWR_EN  PD2   // E-01: HIGH = 3V3_ETH on (100k PD)
// #define PIN_PFO         PB10  // A-13: LTC4040 PFO, LOW = backup, EXTI10 falling
// #define PIN_NTC_CELL    PC5   // F-51: ADC1_IN15, /NTC * 120/220, valid with VEH5V
// #define I2C_ADDR_TMP102_CHG   0x48  // F-51: charger die area (U17/L4)
// #define I2C_ADDR_TMP102_MODEM 0x49  // F-52 option
// PA9 stays spare (D-12 test pad); board-ID strap (D-08) pin unresolved

Ver también: manual v6 · auditoría completa v6 · informe de cambios al esquemático v6 · revisión contra lecciones V5.5.

Historial de revisiones

Versión Fecha Cambios
1.0 2026-09-28 Mapa de pines de la auditoría v6, republicado con 7 correcciones editoriales (inglés).
1.1 2026-09-29 Prosa y encabezados en español; tabla y borrador de board_v6.h sin cambios.
1.2 2026-10-22 Designadores T43 de la v6 en todo el mapa (tabla, banderas y borrador de board_v6.h); lo atribuido a la V5 conserva sus nombres. El contenido sigue siendo el del 28-sep.

??? note "Anexo técnico — trazabilidad" Snapshot: sch ecee9fed… / pcb 6ddec80d… (paquete de evidencia 2026-09-28). Los archivos evidence/*.csv citados arriba están en 03-Architecture-Hardware/kicad/_to_delete/v6-audit-20260928/evidence/.