20 min. No todos los pines del ESP32-S3 son iguales. Elegir mal uno hace que la placa no arranque, y el sÃntoma no dice por qué.
1. Pines strapping. Se leen en el reset para decidir el modo de arranque. Si un sensor los deja en el nivel equivocado al encender, la placa entra en modo descarga o simplemente no bootea. En el S3: GPIO0, GPIO3, GPIO45, GPIO46. No usarlos para señales que puedan estar activas al encendido.
2. ADC2 + Wi-Fi. Cuando el Wi-Fi está activo, el ADC2 queda tomado por el radio y las lecturas fallan o devuelven basura. Toda entrada analógica crÃtica va en ADC1. En MadRams esto no es teórico: VBAT está en GPIO1 (ADC1_CH0) por esta razón.
3. Pines con función fija. Los conectados a la flash SPI interna (y en el Heltec V4, los del SX1262 y el control de VBAT) no están disponibles aunque el datasheet los liste como GPIO.
4. Corriente por pin y total. ~40 mA por pin como absoluto máximo, con un lÃmite agregado bastante menor. Un LED sin resistencia o un relé directo al GPIO es un pin muerto.
Un solo punto de tierra común (star ground) entre el nodo, los sensores y la alimentación. Si el retorno de un sensor comparte camino con una carga de alta corriente, la caÃda por resistencia del cable aparece sumada a la señal. El resultado es una lectura que se desplaza cuando enciende otra cosa — y se busca en el código durante horas.
Sensores analógicos lejanos: par trenzado señal+retorno, retorno solo a la tierra analógica.
El potenciómetro OEM GM entrega 0–5 V; el ESP32 tolera 3.3 V. El divisor no es opcional. Verificar también la impedancia de salida del divisor: si es demasiado alta, el sample-and-hold del ADC no alcanza a cargarse y la lectura sale baja — la misma fÃsica de la sesión anterior.
Una sola tabla, firmada, que es la fuente de verdad para quien suelde y para quien programe. Debe incluir: pin → señal → dirección → tipo → corriente → restricción (strapping / ADC / función fija) → justificación. Un pin sin justificación es un pin que alguien va a mover.