Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx
122 lines
13 KiB
HTML
122 lines
13 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 16-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>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 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: 'Auditada 16-oct — NO LISTA, cerca: barrenos restaurados; MH11 fuera y sensado Kelvin de RS1 con el script T27 (pasos 1 y 2); faltan detalles (pasada 3)',
|
||
siguiente: 'Leo corre T27 (pasos 1 y 2) → Michelle: pasada 3, parte A (A3–A13) → Claude re-audita y genera Gerber/BOM/CPL → piloto de 5 → banco con firmware 0.7.0 → las 108 restantes (con SD-15B).',
|
||
quien: 'Michelle (layout) · Claude (auditoría) · Leo (pedido, firmware) · Jesús (banco)',
|
||
docs: [['▶ Pasada 3 — V5.6 y V5.7', '../hardware/v56-v57-layout-pasada-3/'], ['Auditoría de producción 16-oct', '../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: 'Fuente colocada; barrenos restaurados, MH11 fuera y RS1 Kelvin con T27; auditada 16-oct — NO LISTA: pasada 2 sin replicar, U25 sin vías térmicas',
|
||
siguiente: 'Después de V5.6: Michelle pasada 3, parte B → re-auditoría → 5 prototipos (ECO §6: 9/12/24/32 V, polaridad, temperatura) → pedido 327. Entrada 9–32 V.',
|
||
quien: 'Michelle (layout) · Claude (auditoría) · Leo (pedido)',
|
||
docs: [['▶ Pasada 3 — parte B', '../hardware/v56-v57-layout-pasada-3/'], ['Auditoría de producción 16-oct', '../hardware/auditoria-produccion-16oct/'], ['ECO V5.7 — fuente a bordo', '../hardware/v57-eco-fuente/']] },
|
||
{ v: 'v6', cls: 'v6', badge: 'badge-v6', estado: 'PCB actualizado desde el esquemático (16-oct, paridad limpia); layout de correcciones pendiente — no pedir todavía',
|
||
siguiente: 'Reponer los barrenos que borró la actualización (script T25 --set v6; MH4 en 185.2) y apartar D23/D24/SIM/NTC de MH4. Luego «Próximos pasos» (L-1…L-67), firmware 0.7.x con NTRIP en el MCU, strap de identificación (D8), homologación IFT y piloto de 20 antes de las 130. No habrá v6.1.',
|
||
quien: 'Michelle (layout) · Leo · Claude',
|
||
docs: [['▶ Próximos pasos para ordenar', '../hardware/v6-proximos-pasos/'], ['Auditoría 16-oct §8', '../hardware/auditoria-produccion-16oct/'], ['Plan de corrección', '../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>
|