hbox-docs/docs/formularios/ensamble-v56v57.js
Leopoldo Rodríguez 6e4178cb51 Lote 2026-10-27_fw070pre-banco-ardusimple: 0.7.0-pre en Descargas (prueba), procedimientos y actas V5.6/V5.7, faltan ArduSimple
- Descargas: hbox-tarjetaV56_0.7.0-pre.bin en prueba/ (112 456 B, SHA-256 8dd26047…), fila V5.6/V5.7 y aviso
  «solo banco»; notas de versión 0.7.0-pre; README del firmware al día (sync).
- Procedimientos (borrador, T43): prueba y flasheo V5.6/V5.7 (con la revisión del firmware: 4 flancos, 180 s,
  DIN_4G en 0 V en Q, DE de U7 y R48 en banco) y ensamble V5.6/V5.7.
- Actas nuevas: prueba-v56 / prueba-v57, ensamble V5.6 / V5.7, banco del piloto; series ARD/RTK hasta 100,
  V56/V57; expediente, actas, producción y admin conocen los tipos nuevos.
- Bitácora 27-oct: firmware, procedimientos y actas, faltan ArduSimple.
- Tablero (lote aplicado): t-compras-ardusimple, D-27-7, notas en t-fw-070, t-banco-v5-procedimiento-t43,
  t-v56-banco-piloto, t-v57-banco-prototipos, t-inventario-inicial, t-compras-prioridad, t-plan-570.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx
2026-10-27 20:33:16 -06:00

102 lines
9.2 KiB
JavaScript
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.

/* Acta de ensamble — unidad HBOX con EinarBoard V5.6 o V5.7 y firmware 0.7.0-pre (27-oct-2026).
Tipo 'ensamble' (el mismo que la V5.5: el embudo de producción y la regla «un módulo, una unidad» valen igual).
Número de unidad: HBOX56-Exx-Axxx-Rxxxx / HBOX57-Exx-Axxx-Rxxxx. Procedimiento: procedimientos/v56-v57-ensamble.md.
Incluye la prueba final de la unidad del piloto (§5 a §7). */
window.actaEnsambleV5x = function (ver) {
const v57 = ver === '5.7';
const V = v57 ? 'V5.7' : 'V5.6', P = v57 ? 'V57' : 'V56', U = v57 ? 'HBOX57' : 'HBOX56';
const volt = (k, txt, esp) => ({ tipo: 'medida', clave: k, txt, esperado: esp, u: 'V' });
return {
tipo: 'ensamble',
titulo: 'Acta de ensamble — unidad HBOX ' + V,
subtitulo: 'Una unidad a la vez. Procedimiento: Ensamble de la unidad V5.6 / V5.7.',
intro: 'Primero el acta, luego el desarmador. Elige la tarjeta ' + V + ' y la pareja ArduSimple + 4G: el sitio verifica que estén aprobadas, '
+ 'que la pareja tenga integración y que ningún módulo esté en otra unidad. El número de unidad se calcula solo '
+ '(<code>' + U + '-Exx-Axxx-Rxxxx</code>). Procedimiento: <a href="../procedimientos/v56-v57-ensamble/">Ensamble de la unidad V5.6 / V5.7</a>.',
borrador: true,
tecnicoDesdeUsuario: true,
nombres: { leo: 'Leo Rodríguez', jesus: 'Jesús Romero', gibranlp: 'Gibran Ortega', daniel: 'Daniel Martínez' },
componentes: [
{ clave: 'einar', etiqueta: 'EinarBoard ' + V, prefijo: P, desde: 1, hasta: v57 ? 370 : 140, pad: 2, tipoActa: v57 ? 'prueba-v57' : 'prueba-v56' },
{ clave: 'ard', etiqueta: 'simpleRTK2B Pro (ArduSimple)', prefijo: 'ARD', desde: 1, hasta: 100, pad: 3, tipoActa: 'modulo-ard' },
{ clave: 'modem', etiqueta: '4G NTRIP Master', prefijo: 'RTK', desde: 1, hasta: 100, pad: 4, tipoActa: 'modulo-4g' },
],
serie: s => U + '-E' + Acta.num(s.einar) + '-A' + Acta.num(s.ard) + '-R' + Acta.num(s.modem),
prefijoPrueba: U,
prerequisitos: [
{ etiqueta: 'Integración ArduSimple + 4G', tipo: 'integracion', serie: s => 'INT-A' + Acta.num(s.ard) + '-R' + Acta.num(s.modem) },
],
exigirAprobados: true,
unicoPorComponente: true,
textoOK: 'APROBADA — UNIDAD LISTA',
secciones: [
{ titulo: '1 · Antes de empezar',
items: [
{ tipo: 'fecha', clave: 's01_00_fecha', req: true, guardaEn: 'fecha', txt: 'Fecha' },
{ tipo: 'check', clave: 's01_01_banco', req: true, txt: 'Ninguno de los dos módulos es del juego de banco (etiqueta «BANCO»): esos no se ensamblan mientras dure el piloto.' },
{ tipo: 'check', clave: 's01_02_fw', req: true, txt: 'La tarjeta trae 0.7.0-pre de su acta de prueba (el encabezado lo dirá en §5).' },
] },
{ titulo: '2 · Tarjeta (sin energía)',
items: [
{ tipo: 'check', clave: 's02_00_serie', req: true, txt: 'La EinarBoard física es la ' + P + '-NN elegida arriba (etiqueta cerca de MH3).' },
{ tipo: 'check', clave: 's02_01_jp', req: true, txt: 'Puentes de fábrica intactos: JP3 2-3 (LFP), JP5 1-2, JP4 1-2, '
+ (v57 ? 'JP1 cerrado' : 'JP1 abierto') + ', JP2 abierto. No se cambian en banco.' },
{ tipo: 'check', clave: 's02_02_j2', req: true, txt: 'J2 sin el puente de banco: ahí va el interruptor de corte del panel.' },
{ tipo: 'check', clave: 's02_03_fija', req: true, txt: 'Tarjeta fija en la base del HBOX con MH1, MH3 y MH6 (MH2, MH4 y MH5 son los separadores del simpleRTK2B), sin flexión; apriete suave.' },
] },
{ titulo: '3 · Módulos (sin energía)',
items: [
{ tipo: 'check', clave: 's03_00_mod1', req: true, txt: 'simpleRTK2B en <b>MOD1</b>: pin «5V» del módulo sobre MOD1 pin 5, las tiras a fondo, ninguna clavija fuera.' },
{ tipo: 'check', clave: 's03_01_xbee', req: true, txt: '4G NTRIP Master en <b>J8/J9</b> de la EinarBoard (paso 2.00 mm), silueta sobre la serigrafía. No en el simpleRTK2B: su USB-XBEE no se usa en servicio.' },
{ tipo: 'check', clave: 's03_02_sim', req: true, txt: 'SIM puesta. Nada roza la tapa, K1 ni los capacitores altos (C68, C30, C14).' },
] },
{ titulo: '4 · Panel y arnés (sin energía)',
items: [
{ tipo: 'check', clave: 's04_00_j15', req: true, txt: '<b>J15</b> ← GX16-5: 1 = + vehículo, 2 y 4 = GND, 3 = ignición, 5 = sin conexión. Polaridad medida antes de conectar.' },
v57 ? { tipo: 'nota', txt: 'La V5.7 <b>no lleva Mean Well</b>: el GX16 entra directo a J15 (9–32 V).' }
: volt('s04_01_sd15', 'Salida de la Mean Well SD-15B-05, ajustada en banco antes de montarla', '5.30 V (5.2–5.4)'),
v57 ? { tipo: 'nota', txt: 'J16 no existe en la V5.7.' }
: { tipo: 'check', clave: 's04_02_j16', req: true, txt: '<b>J16</b> ← salida de la SD-15B (pin 1 = +5 V); la entrada de la SD-15B, del GX16 (24 V). Cable corto.' },
{ tipo: 'check', clave: 's04_03_jst', req: true, txt: '<b>J3</b> ventilador · <b>J4</b> LED de panel · <b>J1</b> botón de reset · <b>J2</b> interruptor de corte · <b>J10</b> LED RGB si el panel lo lleva. Cada JST con clic.' },
{ tipo: 'radio', clave: 's04_04_largos', req: true, txt: 'Largo de los arneses (los JST se movieron respecto a la V5.5)', opciones: ['Alcanzan sin tensión', 'Hubo que alargar alguno (anótalo en Observaciones)'] },
{ tipo: 'check', clave: 's04_05_ant', req: true, txt: 'GNSS: bulkhead SMA → SMA del simpleRTK2B con fijador de rosca. LTE: 2 bulkheads SMA → u.FL del módem, con clic y sin dobleces cerrados.' },
{ tipo: 'check', clave: 's04_06_j5', req: true, txt: '<b>J5</b> (paquete) todavía <b>sin conectar</b>. Cables con bridas; nada expuesto cerca de la entrada del vehículo.' },
] },
{ titulo: '5 · Energizado desde 24 V (sin batería) y prueba de la unidad',
sub: 'Fuente 24.0 V, límite 1.5 A, al GX16. Interruptor de corte en ON. USB en J7, terminal a 115200. Ignición (GX16 pin 3) a 24 V.',
items: [
{ tipo: 'check', clave: 's05_00_post', req: true, txt: 'Consola: <code>hbox-v5-bringup 0.7.0-pre</code>, <b>18 PASS</b> y <code>&gt;&gt;&gt; BOARD OK</code>.' },
{ tipo: 'medida', clave: 's05_01_v5', txt: 'STAT v5', esperado: v57 ? '5.20–5.45 V' : '5.20–5.40 V', u: 'V' },
{ tipo: 'check', clave: 's05_02_secuencia', req: true, txt: 'Sola, en modo AUTO: <code>STACK ON</code> → <code>NMEA primera trama</code> → <code>MODEM ON</code> → <code>MODEM_RST</code> → <code>MODEM VIVO</code> → <code>MODOB ON</code> (K1 hace clic).' },
{ tipo: 'medida', clave: 's05_03_rtcm', txt: 'MODEM ON → primer STAT con rtcm > 0', esperado: '< 60 s', u: 's' },
{ tipo: 'medida', clave: 's05_04_fix', txt: 'Encendido → fix=4 (RTK FIX), tecla n', esperado: '< 10 min con cielo', u: 'min' },
{ tipo: 'medida', clave: 's05_05_sats', txt: 'Satélites con fix=4', esperado: '≥ 10', u: 'sat' },
{ tipo: 'check', clave: 's05_06_fan', txt: 'Con la ignición a 24 V el ventilador gira; con la ignición a 0 V, <code>IGN OFF</code> y se detiene.' },
{ tipo: 'medida', clave: 's05_07_i', txt: 'Corriente a 24 V con la etapa y el módem encendidos', esperado: 'anota (se fija con el piloto)', u: 'mA' },
{ tipo: 'radio', clave: 's05_08_monitor', req: true, txt: 'La unidad aparece en el monitor (VERONICA / Wialon) con posición', opciones: ['Sí', 'No (anótalo y avisa a ingeniería)'] },
] },
{ titulo: '6 · Batería y respaldo',
sub: '<code>P</code> apaga la etapa. Paquete LFP-HT 26650 1S4P en <b>J5</b> (1 = BAT+, 2 = GND, 3 = NTC). <code>P</code> + <code>Y</code> la enciende.',
items: [
volt('s06_00_voc', 'Paquete en vacío', '2.8–3.6 V'),
{ tipo: 'medida', clave: 's06_01_vbat', modo: 'text', txt: 'STAT vbat / tcel', esperado: 'vbat ≈ paquete; tcel ≈ cuarto', ph: '3.27 / 24.8' },
{ tipo: 'check', clave: 's06_02_carga', txt: '<code>carga=ON ltc=CARGANDO</code> unos 150 s después de STACK ON (si el paquete no está lleno).' },
{ tipo: 'tabla', clave: 's06_03_cortes', txt: 'Respaldo: corta y regresa los 24 V tres veces, 30 s cada vez',
etiquetaFilas: 'Corte', filas: ['1', '2', '3'],
columnas: [
{ k: 'reset', txt: '¿El MCU reinició?', opciones: ['no', 'sí'] },
{ k: 'modem', txt: 'Módem en batería', opciones: ['VIVO', 'se cayó'] },
{ k: 'vuelta', txt: 'Al volver los 24 V', opciones: ['sin reset, módem vivo', 'reinició', 'módem mudo'] },
] },
{ tipo: 'texto', clave: 's06_04_obs', txt: 'Observaciones', ph: 'reinicios, calentamiento, corriente fuera de rango…' },
] },
{ titulo: '7 · Cierre y etiquetado',
items: [
{ tipo: 'check', clave: 's07_00_etq', req: true, txt: 'Etiqueta exterior <code>' + U + '-Exx-Axxx-Rxxxx</code> junto al GX16 e interior en la tapa.' },
{ tipo: 'check', clave: 's07_01_corte', txt: 'Corte en OFF para almacenar. Tapa con sello, tornillos en cruz, prensaestopas apretados.' },
{ tipo: 'nota', txt: 'Unidad del piloto: no se embarca hasta que pasen los 8 criterios del banco del piloto y salga el firmware de campo.' },
] },
],
};
};