hbox-docs/docs/formularios/prueba-bateria.html

137 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Prueba de banco — módem 4G en batería</title>
<link rel="stylesheet" href="acta.css">
</head>
<body>
<div id="acta"></div>
<script src="flota.js"></script>
<script src="series.js"></script>
<script src="acta.js"></script>
<script>
const FILAS = ['0:15','0:30','0:45','1:00','1:30','2:00'];
const COLS = [
{ k:'main5v', txt:'MAIN5V mín', u:'V', num:true, ph:'4.7' },
{ k:'sw5v', txt:'SW_5V mín', u:'V', num:true, ph:'4.9' },
{ k:'v3m', txt:'3V3_MODEM mín', u:'V', num:true, ph:'3.3' },
{ k:'ledm', txt:'LEDs módem', opciones:['apagados','encienden y se apagan','parpadeo rápido','parpadeo lento','fijo'] },
{ k:'uart', txt:'UART simpleRTK2B', opciones:['lento ~1/s','rápido','sin parpadeo'] },
{ k:'k1', txt:'K1', opciones:['sin clic','clic (MODOB ON)','clic repetido'] },
{ k:'vbat', txt:'vbat / vbatmin', ph:'3.92 / 3.71', ancho:'110px' },
{ k:'srv', txt:'Servidor', opciones:['nada','$PHLG 🔋','posición','posición + $PHLG'] },
];
const tabla = (clave, txt, sub) => ({ tipo:'tabla', clave, txt, sub, etiquetaFilas:'t', filas:FILAS, columnas:COLS });
const dioA = v => String(v.c2_resultado || '').startsWith('Sigue igual');
const modemOn = v => String(v.c1_reposo_modem || '').startsWith('Sigue');
Acta.render({
tipo: 'prueba-bateria-modem',
repetible: true,
tecnicoDesdeUsuario: true,
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez' },
unidades: window.SERIES,
etiquetaSerie: 'Unidad bajo prueba',
titulo: 'Acta: módem 4G en batería',
subtitulo: 'Corridas de diagnóstico 0–4 (fw 0.5.3–0.5.7). Procedimiento: Taller → Módem 4G en batería §4.',
textoOK: 'PRUEBA COMPLETA',
intro: 'Separa dos causas de que el módem no transmita en batería: <b>A</b> riel del boost hundido por la ráfaga LTE, o <b>B</b> camino por K1 (Modo B). '
+ 'Multímetro obligatorio: en batería <code>v5</code> mide el 5 V del vehículo, no el riel. '
+ 'Puntos: <b>MAIN5V</b> = U6 pin 1 / C32 / P11 pin 1 · <b>SW_5V</b> = MOD1 pin 5 / C3 · <b>3V3_MODEM</b> (alimenta el módem) = J7 pin 1 / J8 pin 7 · negro a GND. '
+ 'Consola HBOX a 115200 grabando a archivo; teclas <code>s</code> STAT · <code>v</code> puntos · <code>B</code> Modo B.',
secciones: [
{ titulo: '0 · Configuración',
items: [
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha' },
{ tipo:'radio', clave:'tarjeta', req:true, guardaEn:'clasificacion', txt:'Tarjeta', opciones:['V5','V4','V3'] },
{ tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware (línea BOOT o banner)', ph:'hbox-v5-bringup 0.5.5 built …' },
{ tipo:'texto', clave:'bateria', rows:'1', req:true, txt:'Batería en vacío y temperatura ambiente', ph:'4.02 V · 27 °C' },
{ tipo:'radio', clave:'cielo', req:true, txt:'Antena GNSS', opciones:['Cielo abierto','Ventana','Interior (sin fix)'] },
{ tipo:'check', clave:'usb', req:true, txt:'Ningún USB en el simpleRTK2B ni en el módem; solo el de consola.' },
{ tipo:'check', clave:'monitor', req:true, txt:'Monitor abierto con la unidad.' },
] },
{ titulo: 'Corrida 0 · Referencia con 24 V',
sub:'Todo con 24 V. Si no sale limpio, detente: el problema no es la batería.',
items: [
{ tipo:'medida', clave:'c0_main5v', req:true, txt:'MAIN5V', esperado:'5.2 – 5.4 V', u:'V' },
{ tipo:'medida', clave:'c0_sw5v', req:true, txt:'SW_5V', esperado:'≈ 5.0 V', u:'V' },
{ tipo:'medida', clave:'c0_v3m', req:true, txt:'3V3_MODEM (zócalo XBee pin 1)', esperado:'3.25 – 3.35 V', u:'V' },
{ tipo:'texto', clave:'c0_ledm', rows:'1', req:true, txt:'LEDs del módem (cuál, color, ritmo)', ph:'NET verde parpadeo lento; PWR rojo fijo' },
{ tipo:'radio', clave:'c0_uart', req:true, txt:'LEDs UART del simpleRTK2B', opciones:['rápido (correcciones + NMEA)','lento ~1/s','sin parpadeo'] },
{ tipo:'check', clave:'c0_k1', req:true, txt:'Clic de K1 a los ~13 s y consola <code>MODOB ON</code>.' },
{ tipo:'check', clave:'c0_srv', req:true, txt:'El monitor muestra la unidad con Salud (<code>$PHLG</code>) y ⚡.' },
{ tipo:'texto', clave:'c0_stat', rows:'2', txt:'Línea STAT (tecla s)', ph:'STAT stack=ON …' },
] },
{ titulo: 'Corrida 1 · Batería con Modo B (la falla)',
sub:'Quita 24 V y arranca el cronómetro. La que importa es el despertar #1 a los ~10 min.',
items: [
{ tipo:'texto', clave:'c1_perdida', rows:'2', req:true, txt:'Al quitar 24 V: clic y módem en 30 s', ph:'clic de K1 inmediato; el módem se apagó y reencendió / siguió igual' },
{ tipo:'medida', clave:'c1_reposo_sw5v', req:true, txt:'En reposo (tras DUTY reposo): SW_5V', esperado:'0 V', u:'V' },
{ tipo:'medida', clave:'c1_reposo_v3m', req:true, txt:'En reposo: 3V3_MODEM', esperado:'0 V con 0.5.5 (con 0.5.4 y anteriores queda ≈2 V: es la falla)', u:'V' },
{ tipo:'medida', clave:'c1_reposo_v3rtk', req:true, txt:'En reposo: 3V3 del simpleRTK2B (pin 3V3 del header UNO)', esperado:'0 V con 0.5.5', u:'V',
aviso:'Si queda > 0.5 V, el MCU sigue alimentando al simpleRTK2B por el UART (PA2). Con 0.5.5 no debe pasar; si pasa, anotar la versión exacta del firmware.' },
{ tipo:'medida', clave:'c1_reposo_din', txt:'En reposo: DIN_4G (zócalo XBee pin 3)', esperado:'0 V', u:'V' },
{ tipo:'radio', clave:'c1_reposo_modem', req:true, txt:'En reposo: el módem…', opciones:['Se apagó (LEDs apagados)','Sigue encendido'],
aviso:'Si sigue encendido con SW_5V = 0 V, algo lo alimenta por otro lado. Anótalo y avisa antes de seguir.' },
{ tipo:'texto', clave:'c1_reposo_nota', si:modemOn, rows:'2', req:true, txt:'Qué está conectado al módem o al simpleRTK2B' },
{ tipo:'texto', clave:'c1_wake', rows:'1', req:true, txt:'Hora del cronómetro en <code>DUTY despertar #1</code>', ph:'10:02' },
tabla('c1', 'Registro del despertar #1 (los 2 minutos de ventana)', 'Anota el valor <b>más bajo</b> que alcances a leer en cada intervalo. Tecla <code>s</code> a los 0:30 y 1:30 para vbat/vbatmin.'),
{ tipo:'texto', clave:'c1_fin', rows:'2', req:true, txt:'Cómo terminó la ventana (línea DUTY reposo y qué decía el monitor)', ph:'DUTY reposo: ventana 120s fix=RTK_FIX phlg_aire=4 … monitor: nada' },
{ tipo:'archivo', clave:'c1_log', etiqueta:'bateria-c1', txt:'Captura de consola de la corrida 1 (opcional aquí; la completa va al final)' },
] },
{ titulo: 'Corrida 2 · Batería SIN Modo B',
sub:'En reposo, tecla B → «MODO B BLOQUEADO por operador». Registra el despertar #2 igual.',
items: [
{ tipo:'check', clave:'c2_b', req:true, txt:'La consola confirmó <code>MODO B BLOQUEADO por operador</code> antes del despertar.' },
{ tipo:'texto', clave:'c2_wake', rows:'1', req:true, txt:'Hora del cronómetro en <code>DUTY despertar #2</code>' },
tabla('c2', 'Registro del despertar #2 (Modo B bloqueado)'),
{ tipo:'radio', clave:'c2_resultado', req:true, txt:'Resultado de la corrida 2',
opciones:['El módem registró y el simpleRTK2B parpadea rápido → hipótesis B (camino por K1)',
'Sigue igual que la corrida 1 → hipótesis A (riel) → hacer corrida 3'] },
{ tipo:'check', clave:'c2_b_restore', txt:'Tecleé <code>B</code> otra vez para dejar Modo B permitido.' },
] },
{ titulo: 'Corrida 3 · Solo si la 2 dio A: fuente de banco en lugar de la batería',
si: dioA,
sub:'Con 24 V y etapa apagada, cambia la batería por fuente a 3.9 V, límite 3 A (mide polaridad). Repite la corrida 1.',
items: [
{ tipo:'medida', clave:'c3_vfuente', req:true, txt:'Fuente ajustada a', esperado:'3.90 V · límite 3 A', u:'V' },
{ tipo:'texto', clave:'c3_wake', rows:'1', req:true, txt:'Hora del cronómetro en el despertar' },
tabla('c3', 'Registro del despertar con fuente de banco'),
{ tipo:'radio', clave:'c3_resultado', req:true, txt:'Resultado de la corrida 3',
opciones:['Funciona con la fuente → es el paquete (resistencia interna)',
'Falla igual → es la etapa de boost (LTC4040 / MAIN5V) — hardware, no tocar nada'] },
{ tipo:'texto', clave:'c3_tbat', rows:'1', txt:'tbat que reportaba STAT con la batería puesta', ph:'38.5 °C' },
{ tipo:'check', clave:'c3_restore', req:true, txt:'Batería reconectada y fuente de banco retirada al terminar.' },
] },
{ titulo: 'Corrida 4 · Regreso de los 24 V (sin reset)',
sub:'En batería con el módem oscuro, vuelve a poner 24 V sin tocar reset (como al arrancar el vehículo).',
items: [
{ tipo:'radio', clave:'c4_modem', req:true, txt:'Al volver el 24 V, el módem…', opciones:['Arranca solo (LEDs, registra)','Sigue oscuro','Arranca pero no registra'] },
{ tipo:'medida', clave:'c4_v3m', req:true, txt:'3V3_MODEM con el módem oscuro y 24 V puesto', u:'V',
aviso:'Si marca ~3.3 V y el módem sigue oscuro, el módem está <b>alimentado pero sin power-on reset</b> (con 0.5.4 y anteriores: el UART del GNSS sostenía su riel). Con 0.5.5 la tarjeta suelta el UART y cicla la etapa 10 s al volver el 5 V.' },
{ tipo:'texto', clave:'c4_recupera', rows:'2', req:true, txt:'Qué lo revivió', ph:'Solo el reset de la tarjeta' },
{ tipo:'texto', clave:'c4_consola', rows:'2', txt:'Líneas de consola al volver el 5 V', ph:'V5 PRESENTE … DUTY fin … PWR_RETURN_CYCLE … STACK ON reason=recovery' },
] },
{ titulo: 'Cierre',
items: [
{ tipo:'archivo', clave:'log', req:true, etiqueta:'bateria-consola', txt:'Log completo de consola' },
{ tipo:'foto', clave:'f_banco', etiqueta:'banco', txt:'Banco con los multímetros conectados.' },
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'Conclusión',
opciones:['A — riel: el paquete','A — riel: etapa de boost','B — camino por K1 (firmware)','No concluyente (explica)'] },
{ tipo:'texto', clave:'observaciones', rows:'4', txt:'Observaciones' },
] },
]
});
</script>
</body>
</html>