auto-sync 2026-09-26 18:00

This commit is contained in:
Leopoldo Rodríguez 2026-09-26 18:00:15 -06:00
parent 781ee70f13
commit 1f6bc4e228
6 changed files with 241 additions and 54 deletions

View File

@ -36,7 +36,9 @@ La pareja que irá junta: RTK FIX con correcciones NTRIP. Procedimiento: [Módul
Selecciona los tres módulos aprobados → número de unidad automático → armado, energizado desde 24 V, Selecciona los tres módulos aprobados → número de unidad automático → armado, energizado desde 24 V,
batería y respaldo. Procedimiento: [Ensamble de la unidad](../procedimientos/v5-ensamble.md). batería y respaldo. Procedimiento: [Ensamble de la unidad](../procedimientos/v5-ensamble.md).
**[▶ Acta de prueba — EinarBoard V4](../formularios/v4.html)** — *borrador*. **[▶ Acta de prueba — EinarBoard V4 con firmware 0.5.6](../formularios/v4.html)**
Una por tarjeta (V4-01 … V4-15): puente de reset del módem, flasheo y pruebas con 24 V, en batería y regreso de 24 V.
Procedimiento: [V4 — preparación y prueba con 0.5.6](../procedimientos/v4-prueba-fw-0.5.6.md).
--- ---

View File

@ -386,6 +386,7 @@
} }
function showEditable() { function showEditable() {
setEnabled(true); setEnabled(true);
btn.disabled = false; btn.textContent = 'Enviar acta firmada'; // tras enviar una serie y elegir otra
limpiar.style.display = ''; btn.style.display = ''; borrar.style.display = 'none'; limpiar.style.display = ''; btn.style.display = ''; borrar.style.display = 'none';
wrap.classList.remove('enviada'); banner.className = 'msg'; wrap.classList.remove('enviada'); banner.className = 'msg';
} }

View File

@ -3,80 +3,252 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Acta de prueba — EinarBoard V4 (borrador)</title> <title>Acta de prueba — EinarBoard V4 (fw 0.5.6)</title>
<link rel="stylesheet" href="acta.css"> <link rel="stylesheet" href="acta.css">
</head> </head>
<body> <body>
<div id="acta"></div> <div id="acta"></div>
<script src="acta.js"></script> <script src="acta.js"></script>
<script> <script>
/* BORRADOR V4 — adaptado del procedimiento verificado de V5. /* Acta de prueba de la tarjeta V4 con firmware 0.5.6 — tipo 'prueba-v4', una por serie (V4-01 … V4-15).
V4 usa módulos enchufables (Blackpill en J1/J2, 4G XBee en J7/J8, simpleRTK2B en MOD1) Procedimiento: procedimientos/v4-prueba-fw-0.5.6.md
en lugar del MCU y Ethernet on-board de V5. Ingeniería debe confirmar los puntos - Las claves llevan el prefijo sN_MM_ para que ver.html las muestre en orden, por sección.
marcados "PENDIENTE V4" antes de usarlo como registro oficial. */ - Cada etapa termina con una pregunta de paso. Si la tarjeta no pasa, las secciones siguientes se
ocultan (sus obligatorios dejan de contar) y el acta se envía como FALLA desde el Cierre. */
const empieza = (v, k, t) => String(v[k] || '').startsWith(t);
const prepOK = v => empieza(v, 's2_09_prep_fin', 'Completa');
const flasheada = v => !!v.s3_01_dfu && !empieza(v, 's3_01_dfu', 'No logré');
const flashOK = v => prepOK(v) && flasheada(v) && v.s3_05_tests === '>>> BOARD OK';
const aOK = v => flashOK(v) && empieza(v, 's4_07_a_fin', 'Pasó');
const falla = v => !!v.s7_01_clasif && !empieza(v, 's7_01_clasif', 'Pasó');
const DESP = ['Despertar #1', 'Despertar #2'];
const COLS_DESP = [
{ k:'hora', txt:'Hora del despertar', ph:'14:15', ancho:'80px' },
{ k:'trama', txt:'Primera trama NMEA', opciones:['$GNTXT u-blox','otra (GGA, RMC…)','no salió'] },
{ k:'mrst', txt:'<code>MODEM_RST stack_on</code> a los 3 s', opciones:['sí','no salió'] },
{ k:'modem', txt:'¿El módem registró solo?', opciones:['sí','LEDs, sin registrar','oscuro'] },
{ k:'monitor', txt:'¿El monitor recibió 🔋?', opciones:['sí','no'] },
{ k:'reposo', txt:'Línea <code>DUTY reposo</code> al cerrar la ventana', ph:'ventana 150s fix=RTK_FIX phlg_aire=4 vbat=3.95', ancho:'240px' },
];
const FILAS = ['0:15', '0:30', '0:45', '1:00', '1:30', '2:00'];
const COLS_DIAG = [
{ 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 del módem (qué hacen)', opciones:['apagados','se apagan y vuelven','parpadeo','fijo'] },
{ k:'uart', txt:'LEDs UART del simpleRTK2B', opciones:['lento ~1/s','rápido','sin parpadeo'] },
{ k:'vbat', txt:'vbat / vbatmin (tecla s)', ph:'3.92 / 3.71', ancho:'110px' },
];
const PASO_NO = 'No pude completarla — me detengo (explico en Cierre)';
Acta.render({ Acta.render({
tipo: 'prueba-v4', tipo: 'prueba-v4',
prefijo: 'V4', prefijo: 'V4',
series: 15, series: 15,
borrador: true, tecnicoDesdeUsuario: true,
titulo: 'Acta de prueba — EinarBoard V4', nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez', jesus: 'Jesús' },
subtitulo: 'Borrador adaptado de V5 — revisar con ingeniería antes de uso oficial.', etiquetaSerie: 'Tarjeta V4',
titulo: 'Acta de prueba — EinarBoard V4 con firmware 0.5.6',
subtitulo: 'Helgen Technologies · un acta por tarjeta (V4-01 … V4-15) · ~1 h',
textoOK: 'APROBADA',
intro: '<b>Llénala mientras avanzas</b> por el procedimiento '
+ '<a href="../procedimientos/v4-prueba-fw-0.5.6/">V4 — preparación y prueba con 0.5.6</a>: '
+ 'puente de reset del módem, interruptores del simpleRTK2B, cable de consola sin 5 V y batería; '
+ 'flasheo; y las pruebas A (24 V), B (batería) y C (regreso de 24 V). '
+ 'Graba la consola a archivo desde el primer minuto: al final se sube completa.<br>'
+ '<b>Si una etapa no pasa</b>, marca «me detengo» en su última pregunta: lo que sigue se oculta, '
+ 'llenas el Cierre y envías con resultado <b>FALLA</b>. Si la tarjeta no tiene número, etiquétala '
+ 'con el siguiente V4 libre del <a href="../tablero.html">tablero</a>. La serie <b>PRUEBA</b> sirve para practicar.',
secciones: [ secciones: [
{ titulo: '1 · Inspección visual (sin energía)',
sub: 'Con lupa. Marca cada casilla solo cuando lo verifiques.', { titulo: '1 · Datos',
items: [ items: [
{ tipo:'check', txt:'Sin puentes de soldadura entre pines de <b>U6</b> (LTC4040), <b>U2</b>/<b>U7</b> (bucks MP1584), <b>U3</b>/<b>U4</b> (sensores).' }, { tipo:'fecha', clave:'s0_00_fecha', req:true, guardaEn:'fecha', txt:'Fecha de la prueba' },
{ tipo:'check', txt:'Zócalos de módulos limpios y sin pines doblados: <b>J1/J2</b> (Blackpill), <b>J7/J8</b> (4G), <b>MOD1</b> (simpleRTK2B).' }, { tipo:'texto', clave:'s0_01_modem', rows:'1', txt:'Módem 4G: serie RTK- o IMEI (si tiene etiqueta)', ph:'RTK-0007' },
{ tipo:'check', txt:'Botón <b>SW1</b> (RESET) presente y con "clic".' }, { tipo:'texto', clave:'s0_02_ard', rows:'1', txt:'simpleRTK2B: serie ARD- (si tiene etiqueta)', ph:'ARD-012' },
{ tipo:'check', txt:'Jumpers del cargador presentes: <b>JP2, JP3, JP4</b> (no tocar su posición).', aviso:'PENDIENTE V4: confirmar cristales y refs exactas con ingeniería.' }, { tipo:'texto', clave:'s0_03_bp', rows:'1', txt:'Blackpill: leyenda impresa en la placa', ph:'WeAct BlackPill V3.0 F411CEU6' },
{ tipo:'check', txt:'Sin componentes faltantes ni marcas de quemado.' }, { tipo:'nota', txt:'<div class="peligro"><b>Reglas.</b> Todo cambio de hardware (soldar, mover interruptores, '
+ 'poner o quitar módulos) se hace <b>sin energía</b>: sin 24 V, batería desconectada y sin USB. '
+ 'Durante las pruebas, <b>ningún USB</b> en el simpleRTK2B ni en el USB-C del módem (J9). '
+ 'En la V4 la consola va <b>solo con el cable sin 5 V</b>; el cable normal es solo para flashear.</div>' },
] }, ] },
{ titulo: '2 · Continuidad — cortos a tierra (sin energía)',
sub: 'Multímetro en ohms, punta negra en GND. Espera a que la lectura se estabilice.', { titulo: '2 · Puente de reset del módem (Preparación 1, sin energía)',
sub: 'Diodo de <b>SW4G1</b> (pad que va a RESET de J7) a <b>U13 pata 12</b>: '
+ '<code>U13-12 ──|&lt;── SW4G1</code> · banda (cátodo) en U13, lado sin banda (ánodo) en SW4G1.',
items: [ items: [
{ tipo:'medida', txt:'Riel 3V3 (TP 3V3)', esperado:'> 1 kΩ (sube lento)', u:'Ω' }, { tipo:'radio', clave:'s1_00_diodo', req:true, txt:'Diodo que usaste',
{ tipo:'medida', txt:'P2 pin 1 — VEH5V (entrada 5 V)', esperado:'> 1 kΩ', u:'Ω' }, opciones:['BAT54','BAT85','BAT43','1N5711','1N4148 (solo si en la Prueba A baja de 0.4 V)','Otro'],
{ tipo:'medida', txt:'P11 pin 1 — MAIN5V', esperado:'> 1 kΩ', u:'Ω' }, aviso:'<b>No uses 1N5819</b>: en caliente deja pasar corriente al revés y alimenta al módem durante el reposo.' },
{ tipo:'medida', txt:'P1 pin 1 — 24V_IN', esperado:'> 10 kΩ', u:'Ω' }, { tipo:'texto', clave:'s1_01_diodo_otro', rows:'1', req:true, si: v => v.s1_00_diodo === 'Otro',
{ tipo:'medida', txt:'MOD1 pin "5V" — SW_5V (etapa RTK)', esperado:'> 1 kΩ', u:'Ω', txt:'¿Cuál? (número de parte o marcado)' },
aviso:'Una lectura fija de 0–20 Ω = corto = FALLA.' }, { tipo:'check', clave:'s1_02_orient', req:true,
txt:'Banda del diodo (cátodo) en <b>U13 pata 12</b>; lado sin banda (ánodo) en el pad de <b>SW4G1</b> que tiene continuidad con el pin <b>RESET</b> de J7.' },
{ tipo:'check', clave:'s1_03_limpio', req:true,
txt:'Revisé con lupa: la pata 12 <b>no quedó unida a la 11 ni a la 13</b>. Alambre fijo con Kapton y lejos del módem 4G.' },
{ tipo:'medida', clave:'s1_04_d_dir', req:true, txt:'Prueba de diodo: roja en SW4G1 (RESET), negra en U13 pata 12',
esperado:'0.15 – 0.45 V', u:'V',
aviso:'0 V = corto. OL en los dos sentidos = falta soldadura. Corrígelo antes de seguir.' },
{ tipo:'medida', clave:'s1_05_d_inv', req:true, modo:'text', txt:'Prueba de diodo con las puntas invertidas',
esperado:'OL o más de 1 V', ph:'OL' },
{ tipo:'foto', clave:'s1_06_f_puente', req:true, etiqueta:'puente-u13-sw4g1',
txt:'Foto del puente: U13 y SW4G1 (una toma o dos), con el diodo y el alambre visibles.' },
] }, ] },
{ titulo: '3 · Riel 3.3 V',
sub: 'Energiza según el método de V4 (PENDIENTE V4: confirmar si hay USB DFU o se alimenta por P2).', { titulo: '3 · Interruptores, cable de consola y batería (Preparación 2)',
sub: 'Interruptores y batería <b>sin energía</b>. El interruptor doble está junto al LED POWER del simpleRTK2B.',
items: [ items: [
{ tipo:'medida', txt:'Riel 3V3 respecto a GND', esperado:'3.20 – 3.40 V', u:'V' }, { tipo:'radio', clave:'s2_00_ioref', req:true, txt:'Interruptor IOREF=3.3V del simpleRTK2B (debe quedar en OFF)',
{ tipo:'check', txt:'LED de encendido presente.' }, opciones:['Estaba en OFF','Estaba en ON — lo pasé a OFF','No tiene esa leyenda — tomé foto y pregunté'] },
{ tipo:'check', txt:'Regulador 3V3 (U17 AMS1117) tibio, no quema.' }, { tipo:'radio', clave:'s2_01_5vout', req:true, txt:'Interruptor 5V=OUTPUT del simpleRTK2B (debe quedar en OFF)',
opciones:['Estaba en OFF','Estaba en ON — lo pasé a OFF','No tiene esa leyenda — tomé foto y pregunté'] },
{ tipo:'foto', clave:'s2_02_f_sw', req:true, etiqueta:'interruptores-simplertk2b',
si: v => empieza(v, 's2_00_ioref', 'No tiene') || empieza(v, 's2_01_5vout', 'No tiene'),
txt:'Foto de los interruptores del simpleRTK2B.' },
{ tipo:'texto', clave:'s2_03_sw_resp', rows:'2', req:true,
si: v => empieza(v, 's2_00_ioref', 'No tiene') || empieza(v, 's2_01_5vout', 'No tiene'),
txt:'¿Qué te indicó ingeniería y en qué posición quedaron?' },
{ tipo:'check', clave:'s2_04_usb', req:true,
txt:'<b>Ningún USB</b> conectado al simpleRTK2B ni al USB-C del módem (J9).' },
{ tipo:'radio', clave:'s2_05_cable', req:true,
txt:'Prueba del cable sin 5 V (tarjeta sin 24 V y sin batería; laptop → Blackpill con ese cable)',
opciones:['La Blackpill quedó apagada (ningún LED) — cable bueno','La Blackpill encendió'] },
{ tipo:'nota', si: v => empieza(v, 's2_05_cable', 'La Blackpill encendió'),
txt:'<div class="peligro"><b>El cable no sirve.</b> Revisa que el hilo rojo esté cortado y aislado. '
+ 'Si con el rojo cortado la Blackpill sigue encendiendo, <b>detente y avisa a ingeniería</b>.</div>' },
{ tipo:'medida', clave:'s2_06_vbat', req:true, txt:'Batería medida en su propio conector, como llegó',
esperado:'3.80 V o más para empezar', u:'V',
aviso:'Menos de 3.80 V: cárgala <b>por fuera de la tarjeta</b> (el firmware 0.5.6 no la carga) con el cargador de 1 celda, '
+ 'o con fuente de banco a 4.00 V y límite de 1 A, sin dejarla sola. Si se calienta o se ve inflada: detente y avisa.' },
{ tipo:'radio', clave:'s2_07_carga', req:true, txt:'¿Tuviste que cargarla?',
opciones:['No hizo falta','Sí, con el cargador de 1 celda','Sí, con fuente de banco 4.00 V / 1 A'] },
{ tipo:'medida', clave:'s2_08_vbat_final', req:true, si: v => empieza(v, 's2_07_carga', 'Sí'),
txt:'Voltaje después de cargarla', esperado:'3.80 V o más', u:'V' },
{ tipo:'radio', clave:'s2_09_prep_fin', req:true, txt:'Preparación',
opciones:['Completa — sigo al flasheo', PASO_NO] },
] }, ] },
{ titulo: '4a · Riel 5 V con fuente de banco (entrada P2)',
sub: 'Fuente 5.0 V, límite 500 mA. Jumper en P11. Sin módulos insertados.', { titulo: '4 · Flasheo de 0.5.6', si: prepOK,
sub: 'Tarjeta <b>sin 24 V y con la batería desconectada</b>, <b>cable normal</b> en la Blackpill. '
+ 'DFU: mantén BOOT0, presiona y suelta NRST, suelta BOOT0 → <b>STM32 BOOTLOADER</b> (0483:DF11). '
+ '<code>dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV4_0.5.6.bin</code>',
items: [ items: [
{ tipo:'medida', txt:'Corriente de la fuente', esperado:'< 300 mA', u:'mA' }, { tipo:'check', clave:'s3_00_sha', req:true,
{ tipo:'medida', txt:'P11 pin 1 — MAIN5V', esperado:'4.8 – 5.1 V', u:'V' }, txt:'Usé <code>hbox-tarjetaV4_0.5.6.bin</code> de Descargas (no el de V5) y su SHA-256 empieza con <code>1e604edd</code> y termina con <code>0e4c52ab</code>.' },
{ tipo:'medida', txt:'P11 pin 2 — SYS5V (con jumper)', esperado:'4.8 – 5.1 V', u:'V' }, { tipo:'radio', clave:'s3_01_dfu', req:true, txt:'¿Dónde lo flasheaste?',
{ tipo:'medida', txt:'Riel 3V3', esperado:'3.20 – 3.40 V', u:'V' }, opciones:['En la tarjeta','Fuera del zócalo (en la tarjeta no apareció STM32 BOOTLOADER)','No logré flashear'] },
{ tipo:'medida', txt:'MOD1 pin "5V" — SW_5V', esperado:'0 V (obligatorio)', u:'V', { tipo:'check', clave:'s3_02_orient', req:true, si: v => empieza(v, 's3_01_dfu', 'Fuera'),
aviso:'Si hay 5 V aquí → FALLA (la etapa RTK debe arrancar apagada).' }, txt:'Al regresarla al zócalo, sin energía: USB-C del lado de la etiqueta <b>E-CSn</b>; pin B12 de la Blackpill en E-CSn y pin R en NRST.' },
{ tipo:'check', txt:'<b>U6</b> tibio, no quema.' }, { tipo:'texto', clave:'s3_03_fw', rows:'1', req:true, si: flasheada, txt:'Primera línea de la consola tras reiniciar',
ph:'hbox-v5-bringup 0.5.6 built Sep 26 2026 15:52:10' },
{ tipo:'check', clave:'s3_04_board', req:true, si: flasheada,
txt:'La segunda línea dice <code>board=EinarBoard v4 (HBOX v4)</code>. (Si dice v5, es el binario equivocado: vuelve a flashear.)' },
{ tipo:'radio', clave:'s3_05_tests', req:true, si: flasheada,
txt:'Final de los tests de arranque (la tecla r los repite; la tecla t imprime la línea $PHLG,0.5.6-fm)',
opciones:['>>> BOARD OK','>>> BOARD CHECK FAILED'] },
{ tipo:'texto', clave:'s3_06_fails', rows:'3', req:true, si: v => flasheada(v) && v.s3_05_tests === '>>> BOARD CHECK FAILED',
txt:'Copia las líneas [FAIL] completas', ph:'[FAIL] …' },
{ tipo:'nota', si: v => empieza(v, 's3_01_dfu', 'No logré') || (flasheada(v) && v.s3_05_tests === '>>> BOARD CHECK FAILED'),
txt:'<div class="peligro"><b>Detente y avisa a ingeniería.</b> Llena el Cierre y envía el acta con resultado FALLA.</div>' },
{ tipo:'check', clave:'s3_07_cable', req:true, si: flashOK,
txt:'Desconecté el cable normal. De aquí en adelante, <b>solo el cable sin 5 V</b>.' },
] }, ] },
{ titulo: '4b · Riel 24 V → buck del ventilador (entrada P1)',
sub: 'Fuente 24.0 V, límite 200 mA. Pin 3 (ignición) sin conectar.', { titulo: '5 · Prueba A — con 24 V', si: flashOK,
sub: 'Conecta la batería y <b>después</b> los 24 V. Espera 30 s, conecta el cable sin 5 V y abre la consola grabando.',
items: [ items: [
{ tipo:'medida', txt:'Corriente de la fuente', esperado:'< 50 mA', u:'mA' }, { tipo:'medida', clave:'s4_00_p2', req:true, txt:'P2 (entrada de 5 V del SD-15B)', esperado:'5.1 – 5.3 V', u:'V',
{ tipo:'medida', txt:'P6 pin 1 — 5V_FAN (contra GND)', esperado:'4.9 – 5.1 V', u:'V' }, aviso:'0 V con los 24 V puestos: <b>detente y avisa a ingeniería</b> (el SD-15B o el arnés no entregan).' },
{ tipo:'check', txt:'<b>U2</b> (buck) frío o tibio.' }, { tipo:'texto', clave:'s4_01_stat', rows:'3', req:true,
txt:'Línea STAT (tecla s): debe traer v5=5.xx(ok), stack=ON y mrst=1 o más; al rato modoB=ON y gga= con satélites',
ph:'STAT vbat=4.02 v5=5.21(ok) … stack=ON … modoB=ON … mrst=1' },
{ tipo:'medida', clave:'s4_02_m_min', req:true,
txt:'Prueba del puente: tecla M con el multímetro en el pad RESET de SW4G1 contra GND. Lectura más baja',
esperado:'menos de 0.4 V durante ~0.5 s (usa MIN/MAX si lo tiene); en reposo marca alto', u:'V' },
{ tipo:'radio', clave:'s4_03_m_res', req:true, txt:'Con M…',
opciones:['Bajó de 0.4 V, los LEDs del módem se apagaron y volvieron, consola «MODEM_RST operador»',
'No bajó',
'Bajó, pero se quedó entre 0.4 y 0.7 V'],
aviso:'<b>No bajó:</b> el diodo está al revés o sin soldar. <b>Se quedó entre 0.4 y 0.7 V:</b> el diodo no es Schottky; cámbialo. '
+ 'Corrige (sin energía) y repite. Si después de corregir sigue sin bajar de 0.4 V: <b>detente y avisa a ingeniería</b>.' },
{ tipo:'radio', clave:'s4_04_modem', req:true,
txt:'¿El módem registró y los LEDs UART del simpleRTK2B parpadean rápido (llegan correcciones)?',
opciones:['Sí','No'] },
{ tipo:'radio', clave:'s4_05_monitor', req:true, txt:'¿En el monitor aparece la unidad con 0.5.6-fm y ⚡?',
opciones:['Sí','No'] },
{ tipo:'check', clave:'s4_06_sin_usb', req:true,
txt:'Todo esto con el <b>cable sin 5 V</b> y sin USB en el simpleRTK2B ni en J9.' },
{ tipo:'radio', clave:'s4_07_a_fin', req:true, txt:'Prueba A',
opciones:['Pasó — sigo a la prueba en batería','No pasó — me detengo (explico en Cierre)'] },
] }, ] },
{ titulo: '5 · Módulos y firmware (PENDIENTE V4)',
sub: 'V4 usa MCU Blackpill enchufable. El flujo de flasheo difiere de V5 — ingeniería debe definirlo.', { titulo: '6 · Prueba B — en batería', si: aOK,
sub: 'Con todo funcionando, <b>quita los 24 V</b> (la batería se queda conectada) y anota la hora. '
+ '<b>No presiones RESET</b> en esta prueba: tras un reset sin 24 V la etapa no enciende (es a propósito) y la prueba se pierde.',
items: [ items: [
{ tipo:'nota', txt:'⚠ <b>PENDIENTE V4:</b> definir el método de flasheo del Blackpill y el firmware de arranque para V4. Mientras tanto, anota abajo lo que se hizo.' }, { tipo:'texto', clave:'s5_00_hora', rows:'1', req:true, txt:'Hora en que quitaste los 24 V', ph:'14:05' },
{ tipo:'check', txt:'Blackpill insertado correctamente en J1/J2 (orientación verificada).' }, { tipo:'radio', clave:'s5_01_perdido', req:true,
{ tipo:'texto', txt:'Firmware cargado / observaciones', ph:'versión, método, resultado del arranque…' }, txt:'¿La consola mostró «V5 PERDIDO» y «BACKUP inicio … modo reporte cada 10 min», y la etapa siguió encendida unos 2 min?',
opciones:['Sí','No (anoto en Cierre qué salió)'] },
{ tipo:'radio', clave:'s5_02_reposo', req:true, txt:'¿Llegaron «DUTY reposo … etapa OFF» y «STACK OFF reason=duty_sleep»?',
opciones:['Sí','No'] },
{ tipo:'medida', clave:'s5_03_sw5v', req:true, txt:'En reposo, 30 s después: SW_5V en C3 (+)', esperado:'menos de 0.3 V', u:'V' },
{ tipo:'medida', clave:'s5_04_v3m', req:true, txt:'En reposo: 3V3_MODEM en C43 (+) o J7 pin 1',
esperado:'menos de 0.3 V — anota el valor aunque sea mayor y sigue; ingeniería lo revisa', u:'V' },
{ tipo:'radio', clave:'s5_05_ledpwr', req:true, txt:'En reposo: LED POWER del simpleRTK2B',
opciones:['Apagado (el LED IOREF encendido es normal)','Encendido'] },
{ tipo:'nota', si: v => v.s5_05_ledpwr === 'Encendido',
txt:'<div class="peligro"><b>LED POWER encendido en reposo:</b> el interruptor IOREF=3.3V quedó en ON o hay un USB en el '
+ 'simpleRTK2B. Si está en OFF y no hay USB: <b>detente y avisa a ingeniería</b>.</div>' },
{ tipo:'tabla', clave:'s5_06_desp', txt:'Despertares — a los ~10 y ~20 min de quitar los 24 V',
sub:'En cada ventana deben salir, en orden: <code>STACK ON reason=duty_wake</code> → <code>NMEA primera trama en PA3 ($GNTXT … u-blox AG …)</code> '
+ '→ a los 3 s <code>MODEM_RST stack_on</code> → a los ~10 s <code>MODOB ON</code>. Si la primera trama no es la de u-blox AG, '
+ 'el GPS nunca se apagó: revisa el interruptor IOREF=3.3V. Durante la ventana (2–3 min) no toques nada.',
etiquetaFilas:'Ventana', filas: DESP, columnas: COLS_DESP },
{ tipo:'radio', clave:'s5_07_b_fin', req:true,
txt:'Prueba B: ¿el módem registró solo y el monitor recibió la unidad (🔋) en las dos ventanas, sin tocar nada?',
opciones:['Sí, en las dos ventanas','Solo en una','En ninguna'] },
{ tipo:'tabla', clave:'s5_08_diag', si: v => !!v.s5_07_b_fin && !empieza(v, 's5_07_b_fin', 'Sí'),
txt:'No registró: en la siguiente ventana anota lo que veas',
sub:'El valor <b>más bajo</b> que alcances a leer en cada intervalo. Tecla <code>s</code> a 0:30 y 1:30 para vbat / vbatmin.',
etiquetaFilas:'t', filas: FILAS, columnas: COLS_DIAG },
] }, ] },
{ titulo: '6 · Cierre',
{ titulo: '7 · Prueba C — regreso de los 24 V sin reset', si: aOK,
sub: 'Dos casos. En ninguno se presiona RESET.',
items: [ items: [
{ tipo:'check', txt:'Tarjeta etiquetada con su número de serie y fecha.' }, { tipo:'radio', clave:'s6_00_c1', req:true, txt:'Caso 1 — durante el reposo (etapa OFF) reconecté los 24 V. El módem…',
{ tipo:'check', txt:'Guardada en bolsa antiestática (las FALLA aparte con la nota del punto que falló).' }, opciones:['Registró solo en menos de 2 min','Encendió pero no registró','Siguió oscuro'] },
{ tipo:'radio', clave:'s6_01_c1_evt', req:true,
txt:'Caso 1 — ¿salieron «V5 PRESENTE», «DUTY fin», «BACKUP fin», a los ~3 s «STACK ON reason=auto» y 3 s después «MODEM_RST stack_on»?',
opciones:['Sí, todas','Faltó alguna (anoto cuál en Cierre)'] },
{ tipo:'radio', clave:'s6_02_c2', req:true,
txt:'Caso 2 — durante una ventana (etapa ON) quité los 24 V y los reconecté antes de 2 min. El módem…',
opciones:['Registró solo en menos de 2 min','Encendió pero no registró','Siguió oscuro'] },
{ tipo:'radio', clave:'s6_03_c2_evt', req:true,
txt:'Caso 2 — ¿salieron «5 V de vuelta tras bateria: ciclo de etapa…» → «STACK OFF reason=pwr_return» → unos 10 s después «STACK ON reason=recovery» → «MODEM_RST stack_on»?',
opciones:['Sí, todas','Faltó alguna (anoto cuál en Cierre)'] },
{ tipo:'radio', clave:'s6_04_monitor', req:true, txt:'¿El monitor volvió a mostrar la unidad con ⚡?', opciones:['Sí','No'] },
] },
{ titulo: '8 · Cierre',
items: [
{ tipo:'archivo', clave:'s7_00_log', req:true, etiqueta:'v4-consola',
txt:'Archivo completo de la consola (toda la sesión, desde el flasheo o la Prueba A).' },
{ tipo:'radio', clave:'s7_01_clasif', req:true, guardaEn:'clasificacion', txt:'¿Hasta dónde llegó la tarjeta?',
opciones:['Pasó A, B y C',
'Se detuvo en la preparación',
'Se detuvo en el flasheo',
'Falló la Prueba A (24 V)',
'Falló la Prueba B (batería)',
'Falló la Prueba C (regreso de 24 V)'],
aviso:'Debe coincidir con lo que marcaste arriba. Resultado final: <b>APROBADA</b> solo si pasó A, B y C.' },
{ tipo:'texto', clave:'s7_02_detalle', rows:'4', req:true, si: falla,
txt:'¿Qué pasó? Paso exacto, lo que se vio en la consola y lo que mediste',
ph:'Prueba B, despertar #1: MODEM_RST stack_on salió pero el módem siguió oscuro; 3V3_MODEM 3.31 V…' },
{ tipo:'texto', clave:'s7_03_obs', rows:'3', txt:'Observaciones (todo lo que no cupo arriba)' },
{ tipo:'check', clave:'s7_04_guardada', req:true,
txt:'Al terminar: 24 V y batería desconectados, tarjeta etiquetada con su serie (V4-NN) y guardada.' },
] }, ] },
] ]
}); });

View File

@ -41,6 +41,17 @@ Sitio interno de Helgen Technologies. **Busca abajo lo que vas a hacer hoy.**
[Procedimiento de reflasheo](procedimientos/reflasheo-unidades.md) [Procedimiento de reflasheo](procedimientos/reflasheo-unidades.md)
- ### 🧪 Probar una tarjeta V4 con 0.5.6
---
Puente de reset del módem, flasheo y las pruebas con 24 V, en batería y regreso de 24 V.
Un acta por tarjeta.
[**▶ Llenar el acta de prueba V4**](formularios/v4.html){ .md-button .md-button--primary }
[Leer el procedimiento primero](procedimientos/v4-prueba-fw-0.5.6.md)
- ### 🚨 Algo se dañó - ### 🚨 Algo se dañó
--- ---

View File

@ -71,7 +71,7 @@ const STREAMS = [
{ tipo:'prueba-v5', prefijo:'V5', desde:1, n:30, pad:2, titulo:'Tarjetas EinarBoard — V5', form:'formularios/v5.html' }, { tipo:'prueba-v5', prefijo:'V5', desde:1, n:30, pad:2, titulo:'Tarjetas EinarBoard — V5', form:'formularios/v5.html' },
{ tipo:'modulo-ard', prefijo:'ARD', desde:1, n:30, pad:3, titulo:'Módulos simpleRTK2B Pro — ARD', form:'formularios/ardusimple.html', usoClave:'ard' }, { tipo:'modulo-ard', prefijo:'ARD', desde:1, n:30, pad:3, titulo:'Módulos simpleRTK2B Pro — ARD', form:'formularios/ardusimple.html', usoClave:'ard' },
{ tipo:'modulo-4g', prefijo:'RTK', desde:1, n:30, pad:4, titulo:'Módems 4G NTRIP Master — RTK', form:'formularios/modem4g.html', usoClave:'modem' }, { tipo:'modulo-4g', prefijo:'RTK', desde:1, n:30, pad:4, titulo:'Módems 4G NTRIP Master — RTK', form:'formularios/modem4g.html', usoClave:'modem' },
{ tipo:'prueba-v4', prefijo:'V4', desde:1, n:15, pad:2, titulo:'Tarjetas EinarBoard — V4 (borrador)', form:'formularios/v4.html' }, { tipo:'prueba-v4', prefijo:'V4', desde:1, n:15, pad:2, titulo:'Tarjetas EinarBoard — V4 (fw 0.5.6)', form:'formularios/v4.html' },
]; ];
const TABLAS = [ const TABLAS = [
{ tipo:'integracion', titulo:'Integración ArduSimple + 4G (parejas)', form:'formularios/integracion.html', cols:[['ard','ArduSimple'],['modem','4G (RTK-)']] }, { tipo:'integracion', titulo:'Integración ArduSimple + 4G (parejas)', form:'formularios/integracion.html', cols:[['ard','ArduSimple'],['modem','4G (RTK-)']] },

View File

@ -51,8 +51,10 @@ nav:
- "Cómo se diagnostica en banco": procedimientos/diagnostico-banco.md - "Cómo se diagnostica en banco": procedimientos/diagnostico-banco.md
- "▶ Acta de diagnóstico en banco": formularios/banco.html - "▶ Acta de diagnóstico en banco": formularios/banco.html
- "⚡ Reflasheo de unidades": procedimientos/reflasheo-unidades.md - "⚡ Reflasheo de unidades": procedimientos/reflasheo-unidades.md
- "🔋 Prueba: módem 4G en batería (0.5.3)": procedimientos/prueba-bateria-modem.md - "🔋 Prueba: módem 4G en batería (0.5.6)": procedimientos/prueba-bateria-modem.md
- "▶ Acta: prueba de módem en batería": formularios/prueba-bateria.html - "▶ Acta: prueba de módem en batería": formularios/prueba-bateria.html
- "🧪 V4 — preparación y prueba con 0.5.6": procedimientos/v4-prueba-fw-0.5.6.md
- "▶ Acta de prueba V4 (0.5.6)": formularios/v4.html
- "▶ Acta de reflasheo y configuración": formularios/reflasheo.html - "▶ Acta de reflasheo y configuración": formularios/reflasheo.html
- "🏭 Producción — lote v5": - "🏭 Producción — lote v5":
@ -100,7 +102,6 @@ nav:
- "Protocolo de diagnóstico remoto (2026-06)": diagnostico/protocolo-diagnostico-remoto.md - "Protocolo de diagnóstico remoto (2026-06)": diagnostico/protocolo-diagnostico-remoto.md
- "EinarBoard 1.0 — Bring-up runbook": procedimientos/einarboard-1.0-bringup.md - "EinarBoard 1.0 — Bring-up runbook": procedimientos/einarboard-1.0-bringup.md
- "FW v3.0.3 — Prueba de banco (ventilador)": procedimientos/fan-policy-bench-test.md - "FW v3.0.3 — Prueba de banco (ventilador)": procedimientos/fan-policy-bench-test.md
- "Acta de prueba V4 (borrador)": formularios/v4.html
- "Histórico — Proto bench v3": procedimientos/historico-proto-bench-v3.md - "Histórico — Proto bench v3": procedimientos/historico-proto-bench-v3.md
- "Histórico — Protoboard": procedimientos/historico-protoboard.md - "Histórico — Protoboard": procedimientos/historico-protoboard.md