150 lines
9.7 KiB
HTML
150 lines
9.7 KiB
HTML
<!doctype html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Acta de reflasheo y configuración — HBOX</title>
|
|
<link rel="stylesheet" href="acta.css">
|
|
</head>
|
|
<body>
|
|
<div id="acta"></div>
|
|
<script src="flota.js"></script>
|
|
<script src="acta.js"></script>
|
|
<script>
|
|
const esHBOX = v => String(v.objetivo || '').startsWith('A');
|
|
const es4G = v => String(v.objetivo || '').startsWith('B');
|
|
const esARD = v => String(v.objetivo || '').startsWith('C');
|
|
const conEvidencia = v => v.subido && v.subido('log_antes');
|
|
|
|
Acta.render({
|
|
tipo: 'reflasheo',
|
|
repetible: true,
|
|
tecnicoDesdeUsuario: true,
|
|
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez' },
|
|
unidades: window.FLOTA,
|
|
etiquetaSerie: 'Unidad o módulo que vas a reflashear',
|
|
titulo: 'Acta de reflasheo y configuración',
|
|
subtitulo: 'Helgen Technologies · solo en taller. Nunca sobre la máquina.',
|
|
textoOK: 'QUEDÓ BIEN',
|
|
intro: '<b>Un reflasheo es una prueba, no una reparación.</b> Sirve para contestar si el problema '
|
|
+ 'desaparece con firmware nuevo. Si la unidad tiene un corto, un conector roto o una batería '
|
|
+ 'hinchada, el firmware no va a arreglar nada. Y como el flasheo <b>borra la memoria del equipo</b> '
|
|
+ '(temperatura máxima, reinicios, causa del último arranque), la captura de antes es obligatoria: '
|
|
+ 'sin ella destruyes la evidencia que explicaba la falla. '
|
|
+ 'Procedimiento: <a href="../procedimientos/reflasheo-unidades/">Reflasheo de unidades</a>.',
|
|
secciones: [
|
|
|
|
{ titulo: '0 · Qué vas a reflashear',
|
|
items: [
|
|
{ tipo:'nota', txt:'<div class="peligro"><b>Solo en taller, con la unidad en la mesa.</b> Un flasheo '
|
|
+ 'interrumpido deja el equipo muerto: en la mesa se vuelve a intentar, arriba de un RTG hay que '
|
|
+ 'bajarlo otra vez.</div>' },
|
|
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha' },
|
|
{ tipo:'radio', clave:'objetivo', req:true, guardaEn:'clasificacion', txt:'¿Qué vas a cargar?',
|
|
opciones:[
|
|
'A · Firmware del HBOX (Blackpill / EinarBoard)',
|
|
'B · Parámetros del módem 4G NTRIP Master',
|
|
'C · Firmware o configuración del ArduSimple (ZED-F9P)'] },
|
|
{ tipo:'radio', clave:'motivo', guardaEn:'motivo', txt:'¿Por qué?',
|
|
opciones:['Falla en campo — a ver si cambia con firmware nuevo','Actualización planeada',
|
|
'Unidad nueva antes de instalar','Se perdió o corrompió la configuración','Otro'] },
|
|
{ tipo:'texto', clave:'nota_previa', rows:'2', txt:'¿Qué hacía la unidad antes de tocarla?' },
|
|
] },
|
|
|
|
{ titulo: '1 · Antes de tocar nada — la evidencia',
|
|
sub:'Este paso es la razón de ser del acta. Si no lo haces, el reflasheo no sirve como prueba de nada.',
|
|
items: [
|
|
{ tipo:'archivo', clave:'log_antes', etiqueta:'antes', req:true,
|
|
txt:'Captura de ANTES del reflasheo',
|
|
ayuda:'Terminal serie a 115200, guardar a archivo, 3 minutos. Nómbrala '
|
|
+ '<code>SERIE_antes_AAAA-MM-DD.log</code>.' },
|
|
{ tipo:'texto', clave:'fw_antes', rows:'1', req:true,
|
|
txt:'Versión que traía (de la línea BOOT, o "no se pudo leer")', ph:'fw=3.0.3' },
|
|
{ tipo:'nota', si:v=>!conEvidencia(v),
|
|
txt:'<div class="peligro">⛔ <b>No sigas todavía.</b> Sube la captura de antes: el resto del '
|
|
+ 'formulario se abre cuando esté guardada en el servidor.</div>' },
|
|
] },
|
|
|
|
// ---------------------------------------------------------------- HBOX
|
|
{ titulo: '🔵 A · Firmware del HBOX', si:v=>esHBOX(v)&&conEvidencia(v),
|
|
sub:'DFU por USB del Blackpill. El binario se descarga del sitio, nunca de un USB que ande circulando.',
|
|
items: [
|
|
{ tipo:'texto', clave:'bin_nombre', rows:'1', req:true,
|
|
txt:'Archivo binario que usaste (nombre completo)', ph:'hbox-fw-v3_X.Y.Z.bin' },
|
|
{ tipo:'radio', clave:'bin_origen', req:true, txt:'¿De dónde lo sacaste?',
|
|
opciones:['De la página de Descargas del sitio','Me lo pasó ingeniería directo','De otro lado'],
|
|
aviso:'Si no salió del sitio ni de ingeniería, <b>detente</b>: un binario de la generación equivocada puede dejar la batería cargando cuando debería estar cortada.' },
|
|
{ tipo:'check', clave:'sha_ok', req:true,
|
|
txt:'Verifiqué el <b>SHA-256</b> del archivo y coincide con el publicado.' },
|
|
{ tipo:'check', clave:'dfu_ok', txt:'Entró en DFU: apareció <b>STM32 BOOTLOADER</b> (0483:DF11).' },
|
|
{ tipo:'check', clave:'grabado', txt:'Grabado en <code>0x08000000</code>: «Download complete» y «Verify successful».' },
|
|
{ tipo:'texto', clave:'fw_despues', rows:'1', txt:'Versión que quedó (línea BOOT después)', ph:'fw=3.0.3' },
|
|
{ tipo:'radio', clave:'arranque', txt:'Después de 10 minutos con antenas, ¿a qué estado llegó?',
|
|
opciones:['RUN con link OK','RUN pero link DEGR o LIMP','Se queda en BOOT','Se reinicia solo','Ya no arranca'] },
|
|
] },
|
|
|
|
// ---------------------------------------------------------------- 4G
|
|
{ titulo: '🟠 B · Parámetros del módem 4G', si:v=>es4G(v)&&conEvidencia(v),
|
|
sub:'Por el puerto USB "XBEE" del simpleRTK2B Pro, a 115200. Solo las líneas que empiezan con $$$AS+.',
|
|
items: [
|
|
{ tipo:'nota', txt:'<div class="peligro"><b>Cuidado con lo que subes.</b> El archivo de parámetros '
|
|
+ 'lleno contiene <b>usuario y contraseña</b> del caster NTRIP y de la APN. Aquí sube la versión '
|
|
+ '<b>sin credenciales</b>: borra los valores de <code>AS+U</code>, <code>AS+q</code> y '
|
|
+ '<code>AS+Q</code> antes de subirlo. Lo que nos sirve guardar es qué quedó configurado, no las claves.</div>' },
|
|
{ tipo:'texto', clave:'imei', rows:'1', txt:'IMEI del módem' },
|
|
{ tipo:'texto', clave:'iccid', rows:'1', txt:'ICCID de la SIM' },
|
|
{ tipo:'check', clave:'lineas_ok', txt:'Todas las líneas contestaron <code>OK</code> (ninguna con <code>ERROR</code>).' },
|
|
{ tipo:'texto', clave:'as_k', rows:'1', req:true, txt:'ID de estación (<code>AS+K</code>) que quedó' },
|
|
{ tipo:'texto', clave:'mountpoint', rows:'1', txt:'Mountpoint (<code>AS+M</code>)' },
|
|
{ tipo:'archivo', clave:'params_4g', etiqueta:'parametros-4g', req:true,
|
|
txt:'Archivo de parámetros que cargaste, SIN credenciales',
|
|
ayuda:'Nómbralo <code>RTK-NNNN_parametros_AAAA-MM-DD.txt</code>. Queda guardado en el expediente de este módem.' },
|
|
{ tipo:'radio', clave:'registro', txt:'¿Registró en la red?',
|
|
opciones:['Sí, LED lento o fijo','No, sigue en parpadeo rápido','El LED no enciende'] },
|
|
{ tipo:'medida', clave:'rssi', txt:'RSSI, si el módulo lo reporta' },
|
|
{ tipo:'archivo', clave:'log_4g', etiqueta:'consola-4g', txt:'Captura de la consola del módem (opcional)',
|
|
ayuda:'Recuerda: esta consola no prueba que las correcciones lleguen. Sirve para ver que enciende y registra.' },
|
|
] },
|
|
|
|
// ---------------------------------------------------------------- ArduSimple
|
|
{ titulo: '🟢 C · ArduSimple / ZED-F9P', si:v=>esARD(v)&&conEvidencia(v),
|
|
sub:'Por el USB POWER+GPS con u-center. Antena con vista al cielo, o no habrá fix y parecerá falla.',
|
|
items: [
|
|
{ tipo:'radio', clave:'ard_que', req:true, txt:'¿Qué cargaste?',
|
|
opciones:['Solo la configuración (archivo .txt de Helgen)','Firmware del ZED-F9P','Las dos cosas'] },
|
|
{ tipo:'texto', clave:'f9p_antes', rows:'1', txt:'Versión del ZED-F9P ANTES (UBX-MON-VER)' },
|
|
{ tipo:'texto', clave:'f9p_despues', rows:'1', txt:'Versión DESPUÉS (UBX-MON-VER)' },
|
|
{ tipo:'texto', clave:'cfg_nombre', rows:'1', txt:'Archivo de configuración cargado' },
|
|
{ tipo:'check', clave:'flash_ok', req:true,
|
|
txt:'Guardé la configuración en <b>FLASH</b> (no solo en RAM) y sobrevive al reinicio.',
|
|
aviso:'En junio perdimos tiempo por esto: una configuración que solo quedó en RAM se borra al primer corte de energía y el receptor vuelve a su estado anterior sin avisar.' },
|
|
{ tipo:'check', clave:'uart_ok', txt:'UART1 a <b>115200</b> (es lo que lee la tarjeta) y UART2 a la velocidad del módem.' },
|
|
{ tipo:'radio', clave:'fix', txt:'Calidad de fix alcanzada a cielo abierto',
|
|
opciones:['0 — sin posición','1 — GPS solo','2 — corregido básico','4 — RTK fijo','5 — RTK flotante'] },
|
|
{ tipo:'archivo', clave:'log_ard', etiqueta:'ardusimple', txt:'Captura NMEA o log de u-center (opcional)' },
|
|
] },
|
|
|
|
// ---------------------------------------------------------------- cierre
|
|
{ titulo: '2 · Después del reflasheo', si:conEvidencia,
|
|
items: [
|
|
{ tipo:'archivo', clave:'log_despues', etiqueta:'despues', req:true,
|
|
txt:'Captura de DESPUÉS del reflasheo',
|
|
ayuda:'Las dos capturas juntas — antes y después — son la prueba de si el firmware cambió algo. Por separado no dicen nada.' },
|
|
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'¿Cómo queda?',
|
|
opciones:[
|
|
'Lista para reinstalar',
|
|
'En observación en el taller',
|
|
'Repite la misma falla — se envía a Querétaro',
|
|
'Empeoró: ya no arranca — se envía a Querétaro',
|
|
'Pendiente de más pruebas'] },
|
|
{ tipo:'texto', clave:'observaciones', rows:'4', req:true,
|
|
txt:'¿Cambió algo? Cuéntalo con tus palabras',
|
|
ph:'Antes se reiniciaba cada 3 minutos; después de cargar 3.0.3 lleva 40 minutos en RUN sin reiniciarse.' },
|
|
{ tipo:'foto', clave:'f_final', etiqueta:'final', txt:'Foto de cómo quedó (opcional).' },
|
|
] },
|
|
]
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|