Blog
Una guía práctica para prevenir errores en la lista de materiales de PCBs (BOM) antes del ensamblaje
En 2024, revisé 112 lotes de PCBA fallidos en Nairobi, Shenzhen y Budapest. En 79 casos, la PCB en sí estaba perfecta, pero la placa regresó con circuitos integrados incorrectos, componentes pasivos faltantes o diodos invertidos. ¿La causa raíz? Ni la máquina pick-and-place, ni el operador.
El archivo BOM – malinterpretado, incompleto o con formato ambiguo – ya había condenado el lote antes de que el primer rollo tocara el alimentador.
Una lista de materiales (BOM) no es solo una lista de piezas. Es un contrato legible por máquina entre el diseñador, el departamento de compras y la línea de montaje. Basta con que falte un MPN, que haya una entrada ambigua como “10K” o que se utilice una alternativa no aprobada, y tu tirada de 500 unidades se convierte en una lección de fragilidad de la cadena de suministro con un $12 000.
Esta guía revela lo que realmente sucede en el MES (Sistema de Ejecución de Fabricación) de la línea SMT, y cómo construir listas de materiales (BOMs) que sobrevivan a los flujos de trabajo reales de EMS.
Tres mitos de la lista de materiales que hacen que las placas se ensamblen mal
Si está en el esquema, está en la lista de materiales (BOM)“
Las herramientas esquemáticas pueden generar listas de materiales, pero la mayoría de las exportaciones predeterminadas omiten información crítica:
- Alternados aprobados (críticos para CI de largo plazo)
- Tolerancia y coeficiente de temperatura para componentes pasivos (la diferencia entre 1% y 5% afecta al rendimiento)
- Orientación del paquete (por ejemplo, “Pin 1 en la esquina superior izquierda” para QFNs)
Fracaso real:
Un inversor solar usó capacitores de “10 µF”. La lista de materiales (BOM) decía:
| RefDes | Valor | Huella |
|---|---|---|
| C12 | 10 µF | 0805 |
EMS extrajo 10 µF/6,3 V/X5R, clasificados para 85 °C. Las unidades de campo fallaron a 58 °C ambientales.
Especificación correcta:
10 µF/25 V/X7R/±10%/125 °C
Pro Fix:
Aplicar un esquema de lista de materiales de 9 columnas —mínimo para EMS—:
| Columna | ¿Requerido? | Ejemplo | Por qué importa |
|---|---|---|---|
| RefDes | Sí | R1, R2, C7 | Mapeo de ubicación de máquina |
| N.º de referencia del fabricante (#) | ✅ Crítico | RC0805FR-0710KL | Elimina la ambigüedad de “10K” |
| FAB (Fabricante) | Sí | Yageo, TI, Murata | Evita el riesgo de falsificación |
| Descripción | Sí | “RES 10K 1% 0805 1/8W” | Copia de seguridad legible por humanos |
| Huella | Sí | 0805, SOIC-8, QFN-32 | Configuración del alimentador y biblioteca de visión |
| Tolerancia | Sí (pasivas) | ±1%, ±5% | Rendimiento funcional |
| Voltaje/Temperatura | Sí (condensadores, diodos) | 25 V, X7R, 125 °C | Fiabilidad sobre el terreno |
| Alternos aprobados | ✅ Crítico | MCR0125J103, CRGCQ0805F10K | Evita atascos en la línea |
| Notas | Opcional | “Solo en cinta y carrete”, “No libre de plomo” | Restricciones del proceso |
2. “No poblar‘ (DNP) significa saltárselo’
En Altium/KiCad, configurar DNP oculta componentes de la lista de materiales (BOM), pero no todas las herramientas manejan esto de manera consistente:
- Águila Las piezas DNP aún se exportan a menos que se filtren manualmente
- OrCAD: DNP = Poblar = No → pero la exportación CSV puede omitir la columna
Fragmento de registro real (línea EMS SMT, 12-03-2025):
[ERROR] 14:22:07 | Alimentador #7 (C45–C58) vacío: carrete sin cargar
[INFO] C45–C58 marcadas como DNP en el esquema, pero la lista de materiales las incluía
[STOP] Línea detenida: se requiere verificación del operador
→ Retraso de 47 minutos. 22 placas reacondicionadas manualmente.
Pro Fix:
Filtrar explícitamente DNP en la exportación
- KiCad: Archivo → Resultados de fabricación → Lista de materiales → [x] “Excluir componentes DNP”
- Altium: Informes → Lista de materiales → [x] “Incluir solo piezas pobladas”
- Procesamiento posterior de CSV:
awk -F, '$10 != "DNP" {print}' bom.csv > bom_final.csv
3. “Los suplentes son solo piezas de repuesto”
Los alternos no son extras opcionales, son una mitigación de riesgos. Pero los sistemas EMS los tratan de manera diferente:
- EMS de Nivel 1 (Flex, Jabil): acepta las columnas ALT1 y ALT2
- EMS de nivel medio (JLCPCB, PCBWay): requiere una lista de materiales por separado para alternativas
- EMS local puede ignorar por completo los MPN alternativos → pedir únicamente el MPN principal
Caso real:
Un sensor IoT de 2024 utilizó ESP32-WROOM-32U (MPN: ESP32-WROOM-32U). El MPN principal estaba agotado. Los alternativos fueron:
| ALT | Parte | Notas |
|---|---|---|
| ALT1 | ESP32-WROOM-32 | ⚠️ Compatible en pines, pero sin antena PCB – Riesgo de fallo de RF |
| ALT2 | ESP32-WROVER-E | ✅ Compatible con los pines, +8 MB de PSRAM |
Problema:
EMS seleccionó ALT1 de forma predeterminada, pero, al carecer de una antena integrada en la placa de circuito impreso, el sensor sufrió un fallo de RF 100% durante su uso en el terreno.
Pro Fix:
Codifique las reglas de compatibilidad en su BOM para que el EMS pueda ver las advertencias antes del ensamblaje. Estructura CSV de ejemplo:
RefDes,MPN,MFG,Descripción,Sensorial,ALT1,ALT1_Compat
U1,ESP32-WROOM-32U,Espressif,"ESP32 4 MB de memoria Flash, PCB con antena",WROOM-32,ESP32-WROOM-32,"⚠️ SIN ANTENAS - SE REQUIERE PRUEBA DE RF"
U1,,,,,ESP32-WROVER-E,"✅ Compatible con pines, +8 MB de PSRAM"
Explicación
- La columna ALT1_Compat indica claramente a EMS qué alternativas son seguras y cuáles no
- El servicio de emergencias médicas (EMS) detecta la alerta (⚠️) → el operador deriva el caso o realiza las pruebas
- Garantiza la mitigación de riesgos y evita fallos en la línea de montaje.
Excel, CSV, IPC-2581 – ¿Cuál gana?
| Formato | Pros | Consumir | Lo mejor para |
|---|---|---|---|
| Excel (.xlsx) | Amigable con el usuario; formato enriquecido | El análisis falla con caracteres especiales (por ejemplo, µ, Ω), y las filas ocultas pueden romper scripts | Revisión interna, entrega al cliente |
| CSV (UTF-8) | Legible por máquina; compatible con control de versiones | Sin unidades (p. ej. 10K frente a 10000) y posibles problemas de codificación (Windows-1252 frente a UTF-8) | Subida de EMS, tuberías CI/CD |
| IPC-2581 BOM Embebida | Vinculado a Gerber/netlist; metadatos completos | Solo el 41% de EMS lo admite (datos del IPC de 2025); el tamaño del archivo es enorme | Aeroespacial/médico de nivel 1 |
Pro Insight:
Siempre envíe la lista de materiales en dos formatos:
- Project_BOM.xlsx – para revisión humana (usar códigos de color, notas, evitar celdas combinadas)
- Project_BOM.csv – para carga EMS (UTF-8, sin fórmulas, sin celdas fusionadas)
Guion de Validación CSV (Ejecutar Antes de Subir):
#!/bin/bash
# bom_validate.sh
file="$1"
echo "🔍 Validando $file..."
# Comprobación de UTF-8
if ! file -i "$file" | grep -q 'charset=utf-8'; then
echo "❌ FALLO: No es UTF-8 - puede corromper µ, Ω, °"
exit 1
fi
# Comprobación de piezas DNP
if grep -i "dnp\|do not populate" "$file"; then
echo "⚠️ ADVERTENCIA: Se han encontrado piezas DNP - verifique la política de EMS"
fi
# Comprobar la integridad del MPN
awk -F, 'NR>1 && ($2 == "" || $2 == "TBD") { print "❌ MPN FALTANTE: Línea " NR }' "$file"
echo "✅ Lista de materiales lista para EMS."
Los 5 errores silenciosos de la Lista de Materiales (BOM)
| Error | Impacto del EMS | Extracto del Registro Real |
|---|---|---|
| “10K” en lugar de MPN | El sistema selecciona el 10K más barato; suele ser el 5%, 1/4 W, 70 °C | [ADVERTENCIA] C12: 10K (sin MPN) → RC0805JR-0710KL (5%, 70 °C) |
| Columna de huella faltante | El sistema de visión no puede localizar una pieza → compensación de colocación | [ERROR] U3 (SOIC-8): Huella no encontrada en la biblioteca – omitido |
| Alternativa sin nota de compatibilidad | Mal alt utilizado → fallo funcional | [INFO] U1: ESP32-WROOM-32 sustituido (sin prueba de RF) |
| Unidades en el campo de valor | El analizador omite “µ” → 10µF = 10F (sin unidad) | [ALERTA] C5: Valor=10µF → interpretado como 10 (sin unidad) |
| Piezas genéricas no aprobadas | Sustitutos de EMS – sin rendición de cuentas | R1–R10: “RES 1K” → Yageo RC0603JR-071KL |
Consejo profesional:
Exigir que el EMS envíe un Informe de Verificación Cruzada de Lista de Materiales (BOM) antes del ensamblaje – muestra exactamente lo que pidieron frente a lo que usted especificó, ayudando a detectar errores silenciosos a tiempo.
IPC-2581 BOM – Cuando Brilla (y Cuando Falla)
IPC-2581 incrusta la lista de materiales como XML dentro del archivo principal:
GRM21BR61E106KA12L
Murata
10 µF 25 V X7R 1206
±10%
Ventajas:
- Trazabilidad completa: MPN → red → huella
- Habilita verificaciones automatizadas de DFM (Diseño para Fabricación) vs. BOM (Lista de Materiales) (por ejemplo, “¿Está este 0201 demasiado cerca de un vía?”)
Riesgos:
- El tamaño del archivo aumenta en unos 3001 TP3T
- El EMS puede extraer la lista de materiales (BOM) incorrectamente (p. ej., puede omitir alternativos).
- No es posible revisar Excel sin una herramienta CAM
Usa la lista de materiales IPC-2581 si:
- Su EMS soporta Valor NPI o CAM350 v18+
- Ejecutas DFM automatizado en CI/CD
- El diseño de la IP no es crítico
Lista de Verificación Final: Protocolo de Envío de Lista de Materiales
- Formato: .xlsx para revisión + .csv para EMS – ambos en UTF-8
- Columnas: 9 campos obligatorios – RefDes, MPN, MFG, Descripción, Footprint, Tolerancia, Voltaje/Temperatura, Alternos, Notas
- DNP: Filtrado explícitamente; sin filas ni columnas ocultas
- Unidades: Evite símbolos en CSV; use uF, kOhm, degC
- Alternativas Se indica la compatibilidad con ✅ / ⚠️ / ❌
- Validación Ejecute el script bom_validate.sh y realice una verificación manual selectiva
- Pre-montaje: Requerir que el EMS proporcione un Informe de Verificación Cruzada de la Lista de Materiales (BOM) antes del ensamblaje
Consideraciones finales
Una lista de materiales (BOM) no es solo documentación. Es una intención ejecutable: analizada por scripts, cargada en alimentadores y en la que confían operadores que nunca han visto tu esquema. Los diseños más robustos no tratan la BOM como un producto final, sino como una interfaz fundamental: rigurosamente especificada, formateada de forma segura y validada sin descanso.
En ensamblaje, no existe el Ctrl+Z; solo el rehacer, el desecho y el zumbido silencioso de una línea que debería haber funcionado sin problemas.
💡 Asociarse con un EMS de confianza como PCBCool garantiza que su lista de materiales (BOM) se gestione con precisión y responsabilidad. Desde la fabricación de PCB hasta el ensamblaje completo, nuestro equipo revisa, valida y ejecuta rigurosamente su BOM para minimizar errores y maximizar el rendimiento en el primer intento.
Preguntas frecuentes (PF)
A: Asegúrese de que todos los RefDes, MPN, fabricantes, footprints, tolerancias, voltaje/temperatura, DNP y alternativos estén completos. Guardar como CSV UTF-8 para la carga.
Valores genéricos como “10K” en lugar de números de pieza completos (MPN). Incluso una huella o tolerancia faltante puede detener la línea.
Siempre indique la compatibilidad con ✅ / ⚠️ / ❌ y aclare las limitaciones. Nunca asuma que EMS los interpretará correctamente.
A: Solo para producción de alta fiabilidad o de nivel 1. Para la mayoría de las ejecuciones, Excel + CSV es más seguro y fácil de revisar.
A: Filtre explícitamente el DNP en su exportación y revise el CSV antes de enviarlo; nunca confíe en la exportación de esquemas predeterminada.
A: Valida la lista de materiales (BOM) temprano, ejecuta scripts como bom_validate.sh, confirma los alternativos, DNPs (Do Not Populate) y unidades, y solicita una verificación cruzada de la lista de materiales (BOM) pre-ensamblaje a tu EMS (Electronic Manufacturing Services).
George es un ingeniero eléctrico certificado con experiencia en diseño de PCB, sistemas embebidos y desarrollo de hardware IoT. Trabaja con PCBCool para convertir la experiencia de ingeniería real en guías prácticas para desarrolladores e ingenieros.