145 lines
26 KiB
Markdown
145 lines
26 KiB
Markdown
---
|
||
title: "Ingeniería"
|
||
description: "Dónde está el hardware: una tarjeta por versión de EinarBoard, sus pendientes y las decisiones."
|
||
template: tablero.html
|
||
hide:
|
||
- toc
|
||
---
|
||
|
||
<div class="tb tb-ingenieria">
|
||
<header class="tb-cab">
|
||
<div class="tb-cab__t"><h1>Ingeniería</h1><span class="meta" id="meta">V5.5 · V5.6 · V5.7 · v6</span></div>
|
||
</header>
|
||
|
||
<details class="info tb-como">
|
||
<summary>Cómo se usa</summary>
|
||
<ol>
|
||
<li>Arriba, la <b>ruta a producción</b> (los siete pasos de cada versión) y una tarjeta por versión de EinarBoard: estado, siguiente paso, responsables y sus documentos. Es texto fijo de <code>docs/datos/proyecto.json</code>, el mismo que usa la página de inicio: cuando cambie una decisión, pide a Leo o a Claude que lo actualice ahí.</li>
|
||
<li>En medio, los <b>pendientes de la pista Ingeniería</b>: son los mismos del <a href="/tableros/pendientes/">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>
|
||
|
||
<h2 class="ing-h">Ruta a producción</h2>
|
||
<p class="sub">Línea continua: hecho. Punteada: lo que falta. El anillo marca el paso en el que va cada tarjeta. En cada imagen, lo nuevo de la revisión va en blanco.</p>
|
||
<div id="ruta" class="ing-ruta"><p class="vacio">…</p></div>
|
||
|
||
<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="/tableros/pendientes/">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>22-oct (17:00)</b> — <b>V5.6/V5.7: victorias rápidas (T42a)</b> (D-22-7, <b>propuesta de Claude; decide Leo</b>). BOM con existencia para las 430: D10 = C83325 (los códigos de la auditoría no servían), U15 → TRS3232E (±15 kV), 22 µF → C45783 (C86817 no alcanzaba) y 8 Extended menos; <code>/IGN_IN</code> a 0.3 mm en In1 y su vía 0.35 mm abajo (de 0.15 a 0.54 mm de las señales); 2.ª vía de <code>/SYS5V</code> en la V5.7 (E-11). DRC igual al de la auditoría. Claude recomienda (a): T42a completo antes del pedido del piloto (≈ 40 min). Hallazgo: la clase HV24 solo atrapa <code>/24V_IN</code> → T42b antes de las 108/322. <a href="/hardware/v56-v57-victorias-rapidas-22oct/">Documento</a> · <a href="/hardware/v56-v57-victorias-rapidas-22oct/#5-d-22-7-que-entra-al-piloto-decide-leo">D-22-7</a></li>
|
||
<li><b>22-oct (16:30)</b> — <b>FOTA por 4G: factibilidad por tarjeta</b> (D-22-6, <b>propuesta de Claude; decide Leo</b>). Sí en V5.6/V5.7 sin tocar cobre: bajada por la toma RTCM (PC7) con marcos RTCM 3 propios que inyecta el caster de Helgen, subida por <code>$PHLG</code>, la imagen nueva queda en prueba hasta que el servidor la confirma y si no, regresa sola. Sí en la v6 por HTTPS con el A7670SA, dentro de FW-3. No en V3, V4 ni V5.5 (el MCU no recibe nada del módem): siguen por USB en visita. Propuesta: la imagen de fábrica de las 108/322 y de las 130 v6 lleva bootloader A/B firmado y receptor, y no se graba sin la matriz de banco (FOTA 4). FOTA no entra en el 0.7.0. <a href="/hardware/fota-4g-factibilidad/">Documento</a>.</li>
|
||
<li><b>22-oct (16:15)</b> — <b>D-22-1 decidido en la junta de instalación</b> (Leo): GO al piloto 5 V5.6 + 5 V5.7 con las 3 condiciones, pero <b>el pedido se hace al terminar los quick wins</b> del tablero; la llegada y el banco del piloto se recorren con él. En la misma junta: responsables de campo (ICAVE Alán, EIT Miguel, LCT Antonio, TIMSA Jesús Honorato; líderes de instalación, Alán y Daniel), standup diario y LCT aparte, porque falta la herrería de los soportes para las RTG. <a href="/tableros/juntas/#registro">Junta del 22-oct</a></li>
|
||
<li><b>22-oct (14:30)</b> — <b>Instalaciones por sitio y prueba en sitio</b> (D-22-5; Leo: hay 3 o 4 unidades instaladas sin saber en qué vehículo, y metas de instalación sin prueba). Una unidad cuenta para la meta de 1–2 por sitio <b>solo con el acta «Prueba en sitio» aprobada</b>: fix RTK 4 (o 5 explicado) en el monitor, reporte en el monitor y en Wialon, posición coherente, respaldo en batería si aplica y fotos. Pasa a «en operación» 7 días después de la prueba si no se registra una falla (los 7 días los propone Claude; se cambian en <code>backend/instalaciones.py</code>). El acta de instalación registra el vehículo: número económico, tipo (RTG, Reach Stacker, Empty Handler, Tractoplana, Montacargas…) y 12/24 V. <a href="/tableros/instalaciones/">Instalaciones</a> · <a href="/formularios/prueba-sitio.html">Prueba en sitio</a></li>
|
||
<li><b>22-oct (14:10)</b> — <b>v6: T40, MH4 libre</b> (Claude). D23 quedó debajo de U19.31 y D24 junto a R129/R133. <code>/SIM_CLK</code> va por In1, <code>/SIM_RST</code> por arriba de D25 y <code>/NTC</code> alrededor del barreno; antes lo cruzaba por In2. Las tres TVS de la SIM tienen vía de GND propia. Los pines 92 y 94 de U19 también, porque el canal de <code>/SIM_RST</code> los dejaba sin relleno. DRC: <b>11 errores</b>, los encimes de margen; 0 sin conectar.
|
||
<b>D-22-4 (decide Leo):</b> las TVS siguen del lado del módem, a 27–41 mm de pista del zócalo. Claude recomienda (b): pasarlas a <code>/SIMB_*</code>, pegadas a J14 y cada una con su vía de GND. Son las mismas piezas; lo hace T41 o Michelle el sábado. Falta el push de Leo. <a href="/hardware/v6-estado-21oct/#7-t40-22-oct-tarde-mh4-libre">T40</a> · <a href="/hardware/v6-estado-21oct/#72-las-tvs-de-la-sim-se-quedan-del-lado-del-modem-d-22-4">D-22-4</a></li>
|
||
<li><b>22-oct (13:24)</b> — <b>Modo crisis: semáforo rojo</b> (Leo). Sin pago recibido este mes → operación muy ajustada y sin compras significativas; TIMSA bloqueado por un trámite del vehículo; EIT esperando material de Manzanillo; ICAVE con mal clima y fallas por investigar en campo; software: el retranslator de Wialon hacia nuestro servidor (para comparar el RTK contra el GPS legado) y las desconexiones súbitas, que se investigan de inmediato. Meta: <b>1–2 unidades instaladas por sitio</b>. El tablero se separa <b>por sitio</b> (filtro y vista «Por sitio»; pista Gestión) y las <b>juntas</b> (standup y quick wins, grabadas con Gemini) llegan al tablero como lotes. <a href="/tableros/juntas/">Juntas</a> · <a href="/tableros/pendientes/?vista=sitio">Pendientes por sitio</a></li>
|
||
<li><b>22-oct (13:30)</b> — <b>v6: T39, el bloque A por script</b> (Leo: «haz tú los cambios de la v6, es la prioridad»). <b>D-21-3 queda tomada:</b> se aplicó la propuesta α.
|
||
<ul>
|
||
<li>D34 en (181.08, 121.75), con el cátodo a 3.52 mm del pin SW; L22 en (192.18, 122.5); R53/R54 abajo de JP2.</li>
|
||
<li>Nodo SW y <code>/VEH5V</code> con pistas anchas de F.Cu; In1 e In2 sin pistas bajo la fuente; MH8 libre.</li>
|
||
<li>DRC: 44 errores (≈ 33 de MH4 y 11 encimes de margen), 0 sin conectar.</li>
|
||
</ul>
|
||
<b>Regla nueva:</b> en la v6 no se agregan zonas de F.Cu con prioridad sobre la tierra sin revisar el DRC de toda la tarjeta. KiCad 10 cambia el relleno de toda la tierra, y con T39 salían 2 alivios térmicos rotos lejos del bloque.
|
||
Queda por revisar la pared de la HBOX junto a L22: el cobre está a 0.53 mm de la orilla. Falta el push de Leo. <a href="/hardware/v6-estado-21oct/#6-t39-22-oct-el-bloque-a-por-script">T39</a></li>
|
||
<li><b>22-oct (13:30)</b> — <b>P-1 cerrado; veredicto confirmado sobre los archivos de las 13:00.</b> Leo rellenó las zonas, guardó los dos tableros y regeneró los paquetes (V5.6 <code>338ee14b</code>, V5.7 <code>85baca51</code>). Re-verificación con el mismo método A: relleno guardado = relleno fresco (0.000 mm² en las dos), paquete = archivo, cobre y 11 capas + taladros idénticos a los auditados en la mañana, BOM y CPL con el mismo SHA (D10 sigue como SMBJ33A: condición 3 viva), DRC igual. Falta el commit de <code>kicad/</code> y <code>production/</code>. Herramienta: <code>Auditoria-Final-V56-V57/scripts/verify_mac.sh</code> + <code>gcmp_b.py</code>, 5 min después de cualquier cambio (los quick wins van en una sesión paralela). <a href="/hardware/auditoria-final-22oct/#2-que-se-reviso-metodo-ag">Re-verificación</a></li>
|
||
<li><b>22-oct (11:20)</b> — <b>Auditoría final de producción de V5.6 y V5.7</b> (paquetes <code>HBOX_v5_Rev6_PROD</code> / <code>HBOX_v5_Rev7_PROD</code>, hecha por Claude a petición de Leo): <b>GO al piloto de 5 + 5 hoy</b>, con tres condiciones de pedido que no tocan el cobre — <b>D-22-1</b> (decide Leo): vías <i>Epoxy Filled & Capped</i> + rayos X en U6; rotación y polaridad en el visor de JLC (U6, U7, U25, U26, L22, Q7, U16, D34, D10, electrolíticos); <b>D-22-2:</b> D10 SMBJ33A → SMBJ33CA en el BOM (con el arnés al revés el unidireccional abre F2). <b>NO-GO para las 108 / 322</b> hasta que el piloto pase el banco con 0.7.0: hoy ningún firmware enciende el módem de estas tarjetas (<code>board_v56.h</code> ya existe; 0.7.0-pre es 1 día). Los Gerber son idénticos a una regeneración con relleno fresco (0.000 mm²), pero los <code>.kicad_pcb</code> del repo traen el relleno viejo → <b>D-22-3, regla:</b> todo script T que toque cobre termina con rellenado en el GUI antes del commit (P-1, Leo, 5 min). D-21-2 se sostiene (E-9): C149/C150 se quedan y el timbre se mide en banco. Para las 108/322: THVD1410DR y TRS3232E por SP3485 y MAX3232 (P-5). <a href="/hardware/auditoria-final-22oct/">Auditoría final</a> · <a href="/hardware/2026-10-22_Drogheda_Auditoria-Final-Produccion_V5.6-V5.7_ES_v1.0.pdf">PDF</a> · <a href="/hardware/auditoria-final-protocolo/">Protocolo</a></li>
|
||
<li><b>21-oct (20:45)</b> — <b>v6: T38 aplicado por Claude.</b> Courtyards reales en las 11 huellas de easyeda2kicad: el DRC no veía encimes en ellas, y salió uno real, C153 debajo de L22. MH6 libre. Regla nueva de barrenos: el plano <code>/3V3</code> de B.Cu quedaba desnudo bajo los separadores de los 5 barrenos; con insertos o separadores metálicos, el tornillo lo une a GND. <b>D-21-3, propuesta (falta el OK de Leo):</b> el bloque A se hace con D34 entre U25 y L22, y L22 al este (propuesta α). Metas corregidas: cátodo ≤ 3.5 mm, L22.1 ≤ 9 mm, nodo SW ≤ 10 mm² fuera de los pads, lazo ≤ 60 mm². En V5.6 y V5.7 salen 2 y 4 avisos de biblioteca: es solo el courtyard, no actualicen esas huellas antes del Gerber. <a href="/hardware/v6-estado-21oct/#5-t38-21-oct-noche-courtyards-mh6-y-regla-de-barrenos">T38</a> · <a href="/hardware/v6-estado-21oct/#31-bloque-a-propuesta-corrige-la-rev-10">Propuesta α</a></li>
|
||
<li><b>21-oct (20:00)</b> — <b>El sitio es el centro de mando</b> (regla de Leo): toda tarea del proyecto termina aquí, con sus pendientes movidos, sus documentos al día y, si algo del sitio estorbó, una mejora. Los cambios de Claude al tablero llegan en <b>lotes</b> que Leo revisa y aplica (<code>./scripts/tablero.sh</code>) y se ven en la Actividad como cualquier otro cambio. <a href="/guia-ingeniero/#el-sitio-es-el-centro-de-mando">Cómo se cierra una tarea</a></li>
|
||
<li><b>21-oct (19:30)</b> — <b>Pasada 6 hecha por Claude</b> (T34–T37; Leo pidió avanzar sin esperar a Michelle): <b>la V5.6 y la V5.7 quedan con el cobre listo para Gerber</b>. RS1 otra vez Kelvin (2 vías de entrada unidas en F.Cu y B.Cu; el hilo de U6.6 entra al pad por su lado), 2.ª vía de la entrada de U7 y, en la V5.7, la vía de GND de C129. DRC: solo los 3 errores de MOD1 (excluidos), 0 sin conectar, paridad solo PF*. <b>D-21-2, propuesta (falta el OK de Leo):</b> C149/C150 de la V5.7 se quedan como están y el timbre de U25 se mide en el banco. Falta: push de Leo, B + DRC en KiCad y Gerber/BOM/CPL. <a href="/hardware/v56-v57-auditoria-21oct/#6-pasada-6-hecha-por-claude-t34-a-t37">Pasada 6</a> · <a href="/hardware/v56-v57-auditoria-21oct/#62-v57-por-que-c149c150-se-quedan-como-estan">D-21-2</a></li>
|
||
<li><b>21-oct (noche)</b> — <b>Pasada 5 revisada</b> (<code>6458c5d</code>): C129 y C130 quedaron bien en las dos, pero la vía de entrada de RS1 quedó encima del hilo de sensado de U6.6: <b>el sensado ya no es Kelvin</b> (el límite de entrada baja ≈ 3–4 %). Falta la <b>pasada 6</b>, ≈ 30 min por tarjeta; en la V5.7, además, girar C149/C150 (lazo de ≈ 56 mm²). <b>v6:</b> T25 y T28 aplicados sobre <code>9255b84</code> (falta el push de Leo); T28 cerró 2 de los 8 bloqueantes, pero D34 quedó a 13 mm del pin SW de U25 (lazo caliente de ≈ 115 mm², antes ≈ 47) y MH8 cae encima de D34. <a href="/hardware/v56-v57-auditoria-21oct/#5-pasada-5-revisada-6458c5d-y-lo-que-falta">Pasada 5 revisada</a> · <a href="/hardware/v6-estado-21oct/">Estado de la v6</a></li>
|
||
<li><b>21-oct (tarde)</b> — <b>Auditoría de la pasada 4 de Michelle</b> (HBox_PCB <code>85e7602</code> V5.6, <code>1416dcb</code> V5.7). <b>V5.6:</b> la pasada dejó un corto nuevo (<code>/MODEM_EN</code> a GND en R106) y una pista de <code>/SYS5V</code> a 0.09 mm de una vía; el giro de U7 mejoró el nodo SW (L7 a 4 mm de U7). <b>V5.7:</b> ya sin el bloqueante de K1. <b>D-21-1, aprobada por Leo:</b> C130 de 100 nF en la entrada de U7, en las dos. En la tarde quedaron <b>T32</b> (C130 en los esquemáticos) y <b>T33</b> (el corto, la separación, la 2.ª vía de VSYS y las vías de potencia): DRC solo con los 3 errores de MOD1. Falta la <b>pasada 5</b> de Michelle (V5.6 ≈ 1 h, V5.7 ≈ medio día); después, revisión del cobre y Gerber. <a href="/hardware/v56-v57-auditoria-21oct/">Auditoría del 21-oct</a></li>
|
||
<li><b>19-oct (19:30)</b> — <b>V5.6: qué es crítico y qué se puede quedar</b> (archivo de trabajo de las 18:59, sobre T30). <b>Un solo crítico, nuevo:</b> U6 (LTC4040) no tiene capacitor en sus pines VSYS; el más cercano, C34, está a 11.5 mm (viene desde la V5.5). La hoja de datos lo pone por encima de todo en el layout. Se agrega <b>C129</b> (10 µF 0603, C19702) junto a los pines 1/24, sin mover piezas. Regresar 2 vías de <code>/MAIN5V</code> y 2 de <code>/3V3_MODEM</code> que se perdieron al guardar. L7 lejos de U7 y lo heredado de la V5.5 (L6, L8, Dbk1) se quedan para el piloto, y se miden en el banco. <a href="/hardware/v56-clasificacion-19oct/">Clasificación</a></li>
|
||
<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/pendientes/">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" id="filosofia">
|
||
<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="/tableros/ruta.js"></script>
|
||
<script>
|
||
(function () {
|
||
// Ruta y tarjetas por versión: docs/datos/proyecto.json (el mismo archivo que usa la página de inicio).
|
||
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 BADGE = { 'V5.5': 'badge-v55', 'V5.6': 'badge-v56', 'V5.7': 'badge-v57', 'v6': 'badge-v6' };
|
||
const MES = ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'];
|
||
const cont = document.getElementById('versiones');
|
||
const contadores = {};
|
||
let TAREAS = null;
|
||
|
||
function contar() {
|
||
if (!TAREAS) return;
|
||
Object.keys(contadores).forEach(v => {
|
||
const mios = TAREAS.filter(t => t.version_tarjeta === v && t.estado !== 'hecho');
|
||
const bloq = mios.filter(t => t.estado === 'bloqueado').length, venc = mios.filter(t => t.vencida).length;
|
||
const n = (k, a, b) => k + ' ' + (k === 1 ? a : b);
|
||
const a = el('a', { href: '/tableros/pendientes/?pista=ingenieria', text: n(mios.length, 'pendiente abierto', 'pendientes abiertos') + (bloq ? ' · ' + n(bloq, 'bloqueado', 'bloqueados') : '') + (venc ? ' · ' + n(venc, 'vencido', 'vencidos') : '') });
|
||
contadores[v].innerHTML = ''; contadores[v].append(a);
|
||
});
|
||
}
|
||
|
||
fetch('/datos/proyecto.json', { cache: 'no-store' }).then(r => { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); }).then(P => {
|
||
const m = String(P.actualizado || '').match(/^(\d{4})-(\d{2})-(\d{2})/);
|
||
if (m) document.getElementById('meta').textContent = 'V5.5 · V5.6 · V5.7 · v6, al día el ' + (+m[3]) + ' ' + MES[+m[2] - 1];
|
||
Ruta.montar(document.getElementById('ruta'), P, { enlace: t => '#' + t.clave });
|
||
(P.tarjetas || []).forEach(x => {
|
||
const c = el('div', { class: 'ver ' + x.clave, id: x.clave });
|
||
c.append(el('h3', null, el('span', { text: 'EinarBoard ' + x.version }), el('span', { class: BADGE[x.version] || 'badge-v4', text: x.version })));
|
||
c.append(el('div', { class: 'est', text: x.detalle || x.estado || '' }));
|
||
if (x.siguiente) c.append(el('div', { class: 'sig', html: '<b>Siguiente:</b> ' }, document.createTextNode(x.siguiente)));
|
||
if (x.quien) { const qd = el('div', { class: 'quien', html: Kanban.icono('equipo') }); qd.append(el('span', { text: x.quien })); c.append(qd); }
|
||
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.version] = cnt; c.append(cnt);
|
||
cont.append(c);
|
||
});
|
||
contar();
|
||
if (location.hash) { const t = document.getElementById(location.hash.slice(1)); if (t) t.scrollIntoView(); }
|
||
}).catch(e => {
|
||
document.getElementById('ruta').innerHTML = '';
|
||
document.getElementById('ruta').append(el('div', { class: 'err', text: 'No se pudo leer el estado de las tarjetas (' + e.message + ').' }));
|
||
});
|
||
|
||
Kanban.montar(document.getElementById('kb'), {
|
||
pista: 'ingenieria', filtros: true, vistas: true,
|
||
onCargado: tareas => { TAREAS = tareas; contar(); }
|
||
});
|
||
})();
|
||
</script>
|