125 lines
16 KiB
HTML
125 lines
16 KiB
HTML
<!doctype html>
|
||
<html lang="es">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Tablero de ingeniería — EinarBoard</title>
|
||
<link rel="stylesheet" href="tablero.css">
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
<header class="top">
|
||
<div><h1>Tablero de ingeniería — ¿dónde está el hardware?</h1><div class="meta" id="meta">V5.5 · V5.6 · V5.7 · v6 — estado al 19-oct-2026</div></div>
|
||
<nav>
|
||
<a href="../">← Documentación</a>
|
||
<a href="kanban.html">Pendientes</a>
|
||
<a class="activo" href="ingenieria.html">Ingeniería</a>
|
||
<a href="produccion.html">Producción</a>
|
||
<a href="../hardware/">Tarjetas y hardware</a>
|
||
<a href="equipo.html">👥 Equipo</a>
|
||
</nav>
|
||
</header>
|
||
|
||
<details class="como">
|
||
<summary>Cómo se usa</summary>
|
||
<ol>
|
||
<li>Arriba, una tarjeta por versión de EinarBoard: estado, siguiente paso, responsable y sus documentos. Es texto fijo: cuando cambie una decisión, pide a Leo o a Claude que lo actualice aquí.</li>
|
||
<li>En medio, los <b>pendientes de la pista Ingeniería</b>: son los mismos del <a href="kanban.html">tablero de pendientes</a>, filtrados. Puedes moverlos desde aquí.</li>
|
||
<li>Abajo, las últimas decisiones con fecha y la filosofía de diseño. Antes de proponer un cambio, revisa que no contradiga una decisión ya tomada.</li>
|
||
<li>Para una tarjeta nueva o un cambio de pedido, primero el pendiente, luego el trabajo: así queda el rastro de quién y cuándo.</li>
|
||
</ol>
|
||
</details>
|
||
|
||
<div class="versiones" id="versiones"></div>
|
||
|
||
<section class="bloque">
|
||
<h2>Pendientes de ingeniería</h2>
|
||
<p class="sub">Pista Ingeniería del tablero. Arrastra o usa «Mover a…»; el historial anota quién lo hizo. <a href="kanban.html">Ver todas las pistas →</a></p>
|
||
<div id="kb"></div>
|
||
</section>
|
||
|
||
<section class="bloque">
|
||
<h2>Últimas decisiones</h2>
|
||
<p class="sub">Lo decidido manda hasta que otra decisión con fecha posterior lo cambie. Fuente: notas del proyecto; detalle en la sección de hardware.</p>
|
||
<ul class="decisiones">
|
||
<li><b>19-oct (17:10)</b> — <b>Re-auditoría V5.6 / V5.7 / v6</b> sobre la pasada 3 de Michelle (HBox_PCB <code>4f4681f</code>). <b>V5.6 casi lista</b>: <code>/BAT_PLUS</code> fuera de capas internas, <code>/3V3_MODEM</code> a 1.0 mm, 4 vías en el EP de U7, sin cobre suelto; faltan T30 + ≈ 1 h (L7/Dbk2, salida VSYS de U6, 3 vías, exclusiones del DRC). <b>V5.7 NO LISTA</b>: ya replica la V5.6, pero <code>/SYS5V</code> va 10.9 mm por In2 a 0.5 mm bajo K1 (bloqueante) y el lazo de entrada de U25 mide 52 mm². <b>v6 sin avance</b> en sus 8 bloqueantes (solo 15 vías GND): plan recorrido una semana, piloto de 20 el lun 2-nov; pre-órdenes de JLC ya. <b>Script T30</b> probado en copias en la Mac (DRC sin infracciones nuevas, 0 sin conectar). Merge del lunes (<code>40decf8</code>) arreglado por Leo (<code>240e2c3</code> + <code>merge=binary</code>) y verificado objeto por objeto. Decisiones para Leo: D-19-1 puertos (si van, entran al piloto), D-19-2 Dbk2, D-19-3 sacar KiCad del auto-sync de las 18:00, D-19-4 clase HV24. <a href="../hardware/re-auditoria-19oct/">Re-auditoría</a> · <a href="../hardware/v56-v57-layout-pasada-4/">Pasada 4</a> · <a href="../hardware/v6-plan-fines-de-semana/">Plan v6 rev. 1.1</a></li>
|
||
<li><b>16-oct (17:30)</b> — <b>Auditoría de producción de la v6: NO LISTA.</b> Ruteo completo (<code>2612891</code>, DRC 0 errores), pero: U25 con el código del AP64350, sin barrenos, 5 V por In1/In2 a 0.5 mm, cargador con pistas de 0.5 mm y 1 vía en el EP, RF del módem por In1, 81 vías de tierra, stackup genérico. Scripts listos: T25 <code>--set v6</code> y <b>T28</b> (probados con DRC). <b>Plan de fines de semana</b>: layout el 17–18 y el 24–25 oct, pedido del piloto de 20 el 26-oct, firmware y banco hasta ≈ 15-nov. P7/P8 se quitan (decisión del 9-oct). <a href="../hardware/v6-auditoria-produccion-16oct/">Auditoría v6</a> · <a href="../hardware/v6-plan-fines-de-semana/">Plan</a></li>
|
||
<li><b>16-oct (16:00)</b> — <b>T27 aplicado</b> en V5.6 y V5.7 (<code>f65c830</code>). Figuras de los pasos 3, 4 y 5 en la pasada 3; corregido el dato de A4 (son dos vías de <code>/MAIN5V</code>, no una). <b>Tablero de pendientes al día</b>: pasada 2 y fuente de la V5.7 en Hecho; 9 pendientes nuevos (pasada 3 parte A, medición con TP1, decisiones de Leo, firmware 0.7.0, piloto y banco V5.6, prototipos V5.7, barrenos de la v6). <a href="../tableros/kanban.html">Kanban</a></li>
|
||
<li><b>16-oct (tarde)</b> — Decisión de Leo: <b>MH11 se quita</b> de V5.6 y V5.7. Pasos 1 y 2 de la pasada 3 por script (T27): MH11 fuera, <code>/CHRG_STAT</code> lejos de MH10 (V5.6) y <b>sensado Kelvin de RS1</b> (RS1 girado 180°; el LTC4040 deja de ver ≈ 27 mΩ y vuelve a limitar en 2.5 A). Probado en copias con DRC: 0 infracciones nuevas, 0 sin conectar. Prueba de banco nueva con TP1 (CLPROG). <a href="../hardware/v56-v57-layout-pasada-3/">Pasada 3</a> · <a href="../hardware/auditoria-produccion-16oct/#44-la-correccion-rs1-girado-180-y-sensado-kelvin-script-t27">Qué mide RS1</a></li>
|
||
<li><b>16-oct</b> — Auditoría de producción V5.6 / V5.7 / v6: <b>ninguna lista para pedir</b>. Corte de 10 s en batería: V5.6/V5.7 lo permiten en hardware, falta el firmware 0.7.0 y el banco. V5.7 sin SD-15B: entrada <b>9–32 V</b> (recomendado D10 → SMBJ33CA). v6: PCB sin actualizar y sin el firmware NTRIP que sustituye al 4G NTRIP Master. Puertos de V5.6/V5.7 con defectos ya resueltos en el esquemático v6 (portarlos: decide Leo). Acelerómetro en las tres. Barrenos de la V5.5 a V5.6/V5.7 con el script T25 (<b>MH4 en 185.2, no 193.2</b>). Hallazgo: límite de entrada del LTC4040 ≈ 1 A en V5.5/V5.6/V5.7 por el sensado de RS1. Recomendado: piloto de 5 V5.6 antes de las 113. <a href="../hardware/auditoria-produccion-16oct/">Auditoría</a> · <a href="../hardware/v56-v57-layout-pasada-3/">Pasada 3</a></li>
|
||
<li><b>13-oct</b> — Pedido de <b>570 HBOX</b>: 113 × V5.6 (con SD-15B), 327 × V5.7, 130 × v6; todos los reemplazos futuros en v6. Paquetes de fabricación V5.6 / V5.7 / v6 a <b>Aldair</b> (fabricación/ensamble, rol por confirmar). Caja plástica HBOX: el cable Ethernet no cabe — cambio por definir (pista Mecánica).</li>
|
||
<li><b>13-oct</b> — Auditoría del layout V5.6 de Michelle (d71098d): <b>NO LISTA</b> — /BAT_PLUS por In1 (bloqueante), MAIN5V/SYS5V/SW3 por capas internas; las 18 piezas movidas se quedan (opción A). Esquemático V5.7 aplicado con ERC 0 (F2 SMD 3 A, Q10/D10 reusados, fuera U2 y P2, JP1 puenteado). Reparto: <b>Leo</b> coloca la fuente en V5.7; <b>Michelle</b> corrige V5.6 y después toma V5.7. <a href="../hardware/v56-auditoria-layout-13oct/">Auditoría</a> · <a href="../hardware/v56-layout-pasada-2/">Pasada 2</a></li>
|
||
<li><b>12-oct</b> — <b>V5.7 = V5.6 + fuente conmutada 24 V → 5 V a bordo</b> (U25 TPS54360B, bloque de la v6), sin SD-15B externa. Proyecto KiCad separado <code>hbox-watchdog-v57</code>; V5.6 y V5.7 conviven. <a href="../hardware/v57-eco-fuente/">ECO V5.7</a></li>
|
||
<li><b>09-oct</b> — <b>P12 (sonda NTC) eliminada</b> de V5.6 con R42/C24: redundante y se necesita el espacio. Sin lectura de temperatura de celda en batería (aceptado). Aplica a P7/P8 de la v6.</li>
|
||
<li><b>08-oct</b> — Acelerómetro <b>U26 SC7A20TR</b> (I²C 0x18, INT1 → PB9) añadido a V5.6. <b>Regla DFM LTC4040 (U6)</b>: pasta del EP ≤ 50 %, vías tapadas (epoxy filled & capped) o fuera de las ventanas de pasta, X-ray/AOI en U6, lupa en cada tarjeta antes de energizar. Vale para toda revisión, incluida la v6.</li>
|
||
<li><b>05-oct</b> — Revisión del bus I²C V5.6 / v6 (direcciones, pull-ups, TMP102 U18 en 0x49).</li>
|
||
<li><b>30-sep → 1-oct</b> — V5.6: revisión de modo batería y layout (U4 junto a L6, DzG1 corregido); estado hacia producción.</li>
|
||
<li><b>28-sep</b> — v6 auditada con las lecciones de V5.5 y plan de corrección. <b>«No habrá v6.1»</b>: lo que falte se corrige antes de pedir. <a href="../hardware/v6-plan-correccion/">Plan de corrección</a> · <a href="../hardware/v6-proximos-pasos/">Próximos pasos</a></li>
|
||
<li><b>27-sep</b> — Requisito V5.6: ciclo de 10 min en batería y mejor manejo térmico. ECO V5.6: LFP de alta temperatura, JP2 2-3, R55 5.6 k → flotación 3.50 V, RS1 10 mΩ, TMP102 U18 0x49. Regla de campo V5.5/V4 con 0.6.0: respaldo continuo en batería, nunca ciclos de etapa en batería. <a href="../hardware/v56-eco/">ECO V5.6</a></li>
|
||
<li><b>26-sep</b> — Decisión V5.6: los 500 ArduSimple ya pedidos se quedan (arquitectura con zócalos); nada de rework en tarjetas existentes; buck del módem AP64350 desde SYS5V, MODEM_EN/RST/LED al MCU, lista EMC. Hallazgo: el módem no arrancaba en batería porque el MP1584 (4.5 V mín.) caía en UVLO sobre el riel de 4.6–4.79 V del boost.</li>
|
||
<li><b>19/21-sep</b> — Un solo firmware por tarjeta; la versión del firmware no indica la tarjeta: V3 → <code>blackpillrtkcode_v4</code>, V4 → <code>hbox-tarjetaV4_x.y.z.bin</code>, V5 → <code>hbox-v5-bringup_x.y.z.bin</code>. V5.6 necesita 0.7.0 (<code>board_v56.h</code>).</li>
|
||
<li><b>22-ago</b> — V5.5 ordenada, 15 pzas (JLC). Auditoría EMC: /SW_BAT 0.3 mm y /BAT_PLUS 0.3–0.5 mm = críticos para la siguiente corrida (origen de la regla «nada de potencia por capas internas»).</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section class="bloque">
|
||
<h2>Filosofía de diseño</h2>
|
||
<p class="sub">Cinco reglas que explican casi todas las decisiones anteriores. Detalle y documentos en <a href="../hardware/">Tarjetas y hardware</a>.</p>
|
||
<ul class="filosofia">
|
||
<li><b>Primero la seguridad en campo.</b> La unidad vive en un puerto a más de 45 °C y en batería: en V5.5/V4, respaldo continuo, nunca ciclos de etapa en batería; desde V5.6 el corte de 10 s en batería es requisito, y se prueba en banco antes de usarlo en campo; se mide antes de energizar; una tarjeta con marca de daño no entra a un ensamble.</li>
|
||
<li><b>Una etapa probada vale más que una nueva.</b> Los zócalos para ArduSimple y módem se quedan (500 ya pedidos); nada de rework en tarjetas existentes; la fuente a bordo de V5.7 reutiliza el bloque ya auditado de la v6.</li>
|
||
<li><b>Redundancia solo cuando un modo de falla la justifica.</b> Por eso salió P12 (NTC redundante, estorbaba) y entró el acelerómetro U26 (detecta golpes y movimiento, que sí nos han fallado).</li>
|
||
<li><b>Las reglas de fabricación son órdenes permanentes.</b> LTC4040: pasta ≤ 50 %, vías tapadas, X-ray; ninguna red de potencia por capas internas (lección de V5.5); lupa en U6 antes de energizar. Se aplican a toda revisión, sin excepciones por prisa.</li>
|
||
<li><b>Cambios con prueba y rastro.</b> Esquemático por etiquetas y ediciones con script verificadas contra la netlist (ERC 0, paridad 100 %); git en dos pasos (submódulo KiCad y luego Drogheda); una persona por PCB a la vez y scripts solo con KiCad cerrado (git no mezcla archivos de KiCad: <code>merge=binary</code>); una tarjeta por proyecto KiCad (V5.7 separado); «no habrá v6.1»: se corrige antes de pedir, no después.</li>
|
||
</ul>
|
||
</section>
|
||
</div>
|
||
|
||
<script src="kanban.js"></script>
|
||
<script>
|
||
const VERSIONES = [
|
||
{ v: 'V5.5', cls: 'v55', badge: 'badge-v55', estado: 'En campo — 15 pzas (lote 22-ago), fw 0.6.x',
|
||
siguiente: 'Mantener la flota en 0.6.x con respaldo continuo en batería. Sin rework: lo aprendido va a V5.6. Inspeccionar U6 con lupa en cada tarjeta. Medir en una unidad el límite de entrada del cargador (≈ 1 A, auditoría 16-oct §4.3).',
|
||
quien: 'Jesús (pruebas) · Alan y Daniel (campo)',
|
||
docs: [['Manual V5', '../manuales/manual-tarjeta-V5/'], ['Auditoría 16-oct §4', '../hardware/auditoria-produccion-16oct/'], ['Lecciones V5.5 → v6', '../hardware/v6-revision-lecciones-v55/'], ['Acta de tarjeta V5', '../formularios/v5.html']] },
|
||
{ v: 'V5.6', cls: 'v56', badge: 'badge-v56', estado: 'Re-auditada 19-oct — casi lista: pasada 3 hecha (240e2c3); faltan el script T30 (Leo) y ≈ 1 h de la pasada 4, parte A',
|
||
siguiente: 'Lun 19: Leo corre T30. Mar 20: Michelle pasada 4, parte A (L7/Dbk2, salida VSYS de U6, 3 vías, exclusiones del DRC) → Claude re-audita y genera Gerber/BOM/CPL → pedido del piloto de 5 (≈ 21–22-oct, con los 5 de V5.7) → banco con firmware 0.7.0 → las 108 restantes (con SD-15B). Antes del pedido: decisión D-19-1 (puertos).',
|
||
quien: 'Michelle (layout) · Claude (auditoría) · Leo (T30, pedido, firmware) · Jesús (banco)',
|
||
docs: [['▶ Pasada 4 — V5.6 y V5.7', '../hardware/v56-v57-layout-pasada-4/'], ['Re-auditoría 19-oct', '../hardware/re-auditoria-19oct/'], ['Auditoría 16-oct (requisitos)', '../hardware/auditoria-produccion-16oct/'], ['ECO V5.6', '../hardware/v56-eco/'], ['Hoja de datos', '../hardware/v56-datasheet/'], ['Pinout', '../hardware/v56-pinout/']] },
|
||
{ v: 'V5.7', cls: 'v57', badge: 'badge-v57', estado: 'Re-auditada 19-oct — NO LISTA: pasada 3 hecha (f3f35f4), ya replica la V5.6; bloqueante /SYS5V por In2 bajo K1; lazo de entrada de U25 de 52 mm²',
|
||
siguiente: 'Lun 19: T30 (Leo). Mar 20 – mié 21: Michelle pasada 4, parte B (≈ medio día: /SYS5V fuera de In2, C149/C150 y L22 junto a U25, lo mismo que V5.6) → re-auditoría → 5 prototipos con el piloto de V5.6 (ECO §6: 9/12/24/32 V, polaridad, temperatura) → pedido 327. Entrada 9–32 V.',
|
||
quien: 'Michelle (layout) · Claude (auditoría) · Leo (T30, pedido)',
|
||
docs: [['▶ Pasada 4 — parte B', '../hardware/v56-v57-layout-pasada-4/#parte-b-v57-hbox-watchdog-v57-medio-dia'], ['Re-auditoría 19-oct §4', '../hardware/re-auditoria-19oct/#4-v57-punto-por-punto'], ['ECO V5.7 — fuente a bordo', '../hardware/v57-eco-fuente/']] },
|
||
{ v: 'v6', cls: 'v6', badge: 'badge-v6', estado: 'Re-auditada 19-oct: NO LISTA, sin cambio — solo 15 vías de tierra nuevas (00a9af4); siguen los 8 bloqueantes del 16-oct',
|
||
siguiente: 'Lun 19 – mar 20: pre-órdenes JLC (THVD1410DR, TPS7A2033PDBVR, J14). Sáb 24 8:00: Leo corre T25 --set v6 + T28. Sáb 24: Michelle bloques A y B (potencia) + MH4/MH6. Dom 25: bloques C, D y E (RF del módem, U20, GNSS, U12). Sáb 31 – dom 1-nov: pares, puertos, In1, T29 (vías GND), serigrafía, DRC final. Lun 2-nov: piloto de 20. Firmware v6 los fines de semana 7–8 y 14–15 nov; banco 21–22 nov (G2). No habrá v6.1.',
|
||
quien: 'Michelle (layout) · Leo · Claude · Adriana (pre-órdenes)',
|
||
docs: [['▶ Plan de fines de semana (rev. 1.1)', '../hardware/v6-plan-fines-de-semana/'], ['Auditoría v6 (16-oct)', '../hardware/v6-auditoria-produccion-16oct/'], ['Re-auditoría 19-oct §8', '../hardware/re-auditoria-19oct/#8-v6'], ['Plan de corrección (28-sep)', '../hardware/v6-plan-correccion/'], ['Manual v6', '../manuales/manual-tarjeta-v6/'], ['Plan de cobre', '../hardware/EinarBoard-v6_Plan-de-Cobre_ES.html']] },
|
||
];
|
||
const el = (t, a, ...k) => { const e = document.createElement(t); if (a) for (const p in a) { if (p === 'html') e.innerHTML = a[p]; else if (p === 'text') e.textContent = a[p]; else e.setAttribute(p, a[p]); } k.forEach(c => c != null && e.append(c)); return e; };
|
||
const cont = document.getElementById('versiones');
|
||
const contadores = {};
|
||
VERSIONES.forEach(x => {
|
||
const c = el('div', { class: 'ver ' + x.cls });
|
||
c.append(el('h3', null, el('span', { text: 'EinarBoard ' + x.v }), el('span', { class: x.badge, text: x.v })));
|
||
c.append(el('div', { class: 'est', text: x.estado }));
|
||
c.append(el('div', { class: 'sig', html: '<b>Siguiente:</b> ' + x.siguiente }));
|
||
c.append(el('div', { class: 'quien', text: '👤 ' + x.quien }));
|
||
const d = el('div', { class: 'docs' }); x.docs.forEach(([t, h]) => d.append(el('a', { href: h, text: t }))); c.append(d);
|
||
const cnt = el('div', { class: 'cnt', text: '…' }); contadores[x.v] = cnt; c.append(cnt);
|
||
cont.append(c);
|
||
});
|
||
Kanban.montar(document.getElementById('kb'), {
|
||
pista: 'ingenieria', filtros: true,
|
||
onCargado: tareas => {
|
||
VERSIONES.forEach(x => {
|
||
const mios = tareas.filter(t => t.version_tarjeta === x.v && t.estado !== 'hecho');
|
||
const bloq = mios.filter(t => t.estado === 'bloqueado').length, venc = mios.filter(t => t.vencida).length;
|
||
const a = el('a', { href: 'kanban.html?pista=ingenieria', text: mios.length + ' pendiente(s) abierto(s)' + (bloq ? ' · ' + bloq + ' bloqueado(s)' : '') + (venc ? ' · ' + venc + ' vencido(s)' : '') });
|
||
contadores[x.v].innerHTML = ''; contadores[x.v].append(a);
|
||
});
|
||
}
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|