Blog
Um Guia Prático para Prevenir Erros na Lista de Materiais (BOM) de Placas de Circuito Impresso (PCBs) Antes da Montagem
Em 2024, revisei 112 lotes de PCBA com falha em Nairóbi, Shenzhen e Budapeste. Em 79 casos, a própria placa de circuito impresso estava perfeita – mas a placa retornou com CIs incorretos, componentes passivos ausentes ou diodos invertidos. A causa raiz? Nem a máquina pick-and-place, nem o operador.
O arquivo BOM – mal interpretado, incompleto ou formatado ambiguamente – já havia condenado a execução antes mesmo que o primeiro rolo tocasse no alimentador.
Uma lista de materiais (BOM) não é apenas uma lista de peças. É um contrato legível por máquina entre o projetista, o departamento de compras e a linha de montagem. Basta um MPN ausente, uma entrada ambígua como “10K” ou uma alternativa não aprovada — e sua produção de 500 unidades se transforma em uma lição sobre a fragilidade da cadeia de suprimentos, do tipo $12.000.
Este guia revela o que realmente acontece no MES (Manufacturing Execution System) da linha SMT – e como construir listas de materiais (BOMs) que sobrevivem aos fluxos de trabalho reais de EMS.
Três Mitos sobre a Lista de Materiais que Levam à Montagem Incorreta de Placas
“Se está no esquema, está na lista de materiais”
Ferramentas esquemáticas podem gerar listas de materiais (BOMs) – mas a maioria das exportações padrão omite informações críticas:
- Alternativas aprovadas (crítico para ICs de longo prazo)
- Tolerância e coeficiente de temperatura para componentes passivos (1% vs. 5% afeta o rendimento)
- Orientação do pacote (por exemplo, “Pino 1 no canto superior esquerdo” para QFNs)
Falha Real:
Um inversor solar utilizou capacitores de “10 µF”. A BOM (Lista de Materiais) indicou:
| Referência de Design | Valor | Pegada |
|---|---|---|
| C12 | 10 µF | 0805 |
Capacitores EMS de 10 µF/6,3V/X5R com classificação para 85°C falharam em unidades de campo com temperatura ambiente de 58°C.
Especificação Correta:
10 µF/25 V/X7R/±10%/125 °C
Pró Fix:
Impor um esquema de BOM de 9 colunas – mínimo para EMS:
| Coluna | Exigido? | Exemplo | Por Que Importa |
|---|---|---|---|
| Referência de Design | Sim | R1, R2, C7 | Mapeamento de posicionamento de máquina |
| MPN (Código do fabricante #) | ✅ Crítico | RC0805FR-0710KL | Elimina a ambiguidade de “10K” |
| FABRICANTE | Sim | Yageo, TI, Murata | Evita risco de falsificação |
| Descrição | Sim | “RES 10K 1% 0805 1/8W” | Backup legível para humanos |
| Pegada | Sim | 0805, SOIC-8, QFN-32 | Configuração de alimentador e biblioteca de visão |
| Tolerância | Sim (passivas) | ±1%, ±5% | Desempenho funcional |
| Tensão/Temperatura | Sim (cápsulas, diodos) | 25V, X7R, 125°C | Confiabilidade em campo |
| Alternativas Aprovadas | ✅ Crítico | MCR0125J103, CRGCQ0805F10K | Previne paralisações na linha |
| Anotações | Opcional | “Somente fita/rolo, sem chumbo” | Restrições de processo |
2. “‘Não Povoar’ (DNP) Significa Ignorar”
No Altium/KiCad, a configuração DNP oculta componentes da lista de materiais (BOM) – mas nem todas as ferramentas lidam com isso de forma consistente:
- Águia As peças de DNP ainda são exportadas a menos que sejam filtradas manualmente.
- OrCAD: DNP = Preencher = Não → mas a exportação CSV pode omitir a coluna
Trecho de log real (linha EMS SMT, 12/03/2025):
[ERRO] 14:22:07 | Alimentador #7 (C45–C58) vazio — bobina não carregada
[INFORMAÇÃO] C45–C58 marcados como DNP no esquema — mas a lista de materiais (BOM) os incluiu
[PARADA] Linha interrompida — verificação do operador necessária
→ Atraso de 47 minutos. 22 placas retrabalhadas manualmente.
Pró Fix:
Filtrar DNP explicitamente na exportação
- KiCad: Arquivo → Saídas de Fabricação → Lista de Materiais → [x] “Excluir componentes DNP”
- Altium: Relatórios → Lista de Materiais → [x] “Incluir somente peças preenchidas”
- Pós-processamento de CSV:
awk -F, '$10 != "DNP" {print}' bom.csv > bom_final.csv
3. “Reservas São Apenas Peças de Reposição”
Os alternados não são extras opcionais – são mitigação de risco. Mas os sistemas EMS os tratam de forma diferente:
- EMS Nível 1 (Flex, Jabil): aceita as colunas ALT1 e ALT2
- EMS de nível intermediário (JLCPCB, PCBWay): requer uma BOM separada para alternativas
- EMS Local: ignorar completamente os alternativos → solicitar apenas o MPN primário
Caso Real:
Um sensor IoT de 2024 utilizou o ESP32-WROOM-32U (MPN: ESP32-WROOM-32U). O MPN primário estava fora de estoque. As alternativas foram:
| ALT | Parte | Anotações |
|---|---|---|
| ALT1 | ESP32-WROOM-32 | ⚠️ Compatível em pino, mas na antena de PCB – Risco de falha de RF |
| ALT2 | ESP32-WROVER-E | ✅ Compatível com pinagem, +8MB de PSRAM |
Problema:
A EMS escolheu o ALT1 por padrão – mas, como ele não possuía uma antena integrada à placa de circuito impresso, o sensor apresentou uma falha de RF do tipo 100% em campo.
Pró Fix:
Incorpore regras de compatibilidade em sua lista de materiais (BOM) para que a EMS possa visualizar os avisos antes da montagem. Exemplo de estrutura de arquivo CSV:
RefDes, MPN, MFG, Descrição, Configuração, ALT1, ALT1_Compat
U1,ESP32-WROOM-32U,Espressif,"ESP32 com 4 MB de Flash, PCB sem antena",WROOM-32,ESP32-WROOM-32,"⚠️ SEM ANTENA — É NECESSÁRIO REALIZAR TESTE DE RF"
U1,,,,,ESP32-WROVER-E,"✅ Compatível com pinos, +8 MB de PSRAM"
Explicação:
- A coluna ALT1_Compat informa claramente ao EMS quais alternados são seguros e quais não são.
- EMS visualiza o aviso (⚠️) → operador escala ou realiza testes
- Garante a mitigação de riscos e evita falhas na linha de montagem
Excel, CSV, IPC-2581 – Qual Vence?
| Formatar | Prós | Consulte | Melhor para |
|---|---|---|---|
| Excel (.xlsx) | Amigável ao ser humano; formatação rica | A análise falha em caracteres especiais (por exemplo, µ, Ω), e linhas ocultas podem quebrar scripts | Revisão interna, entrega ao cliente |
| CSV (UTF-8) | Legível por máquina; compatível com controle de versão | Sem unidades (por exemplo, 10K em vez de 10000) e potenciais problemas de codificação (Windows-1252 vs. UTF-8) | Upload de EMS, pipelines CI/CD |
| IPC-2581 BOM Embarcada | Ligado ao Gerber/netlist; metadados completos | Apenas o 41% do EMS oferece suporte a isso (dados do IPC de 2025); tamanho de arquivo enorme | Setor aeroespacial/médico de Nível 1 |
Pró-Insights:
Sempre envie a BOM em dois formatos:
- Project_BOM.xlsx – para revisão humana (usar codificação por cores, notas, evitar células mescladas)
- Project_BOM.csv – para upload da EMS (UTF-8, sem fórmulas, sem células mescladas)
Script de Validação CSV (Executar Antes do Upload):
#!/bin/bash
# bom_validate.sh
file="$1"
echo "🔍 Validando $file..."
# Verificação de UTF-8
if ! file -i "$file" | grep -q 'charset=utf-8'; then
echo "❌ FALHA: Não está em UTF-8 — pode corromper µ, Ω, °"
exit 1
fi
# Verificação de peças DNP
if grep -i "dnp\|do not populate" "$file"; then
echo "⚠️ AVISO: Peças DNP encontradas — verifique a política da EMS"
fi
# Verificar se o MPN está completo
awk -F, 'NR>1 && ($2 == "" || $2 == "TBD") { print "❌ MPN AUSENTE: Linha " NR }' "$file"
echo "✅ Lista de materiais (BOM) pronta para o EMS."
Os 5 Principais Erros Silenciosos de BOM
| Erro | Impacto EMS | Trecho do Registro Real |
|---|---|---|
| “10K” em vez de MPN | O sistema seleciona o 10K mais barato – geralmente 5%, 1/4 W, 70 °C | [AVISO] C12: 10K (sem MPN) → RC0805JR-0710KL (5%, 70 °C) |
| Coluna de pegada ausente | Sistema de visão não consegue localizar a peça → deslocamento de posicionamento | [ERRO] U3 (SOIC-8): Empreinte não encontrada na biblioteca – ignorado |
| Alternar sem nota de compatibilidade | Alternativo incorreto utilizado → falha funcional | [INFO] U1: ESP32-WROOM-32 substituído (sem teste de RF) |
| Unidades no campo de valor | O analisador ignora “µ” → 10µF = 10F (apenas valor numérico) | [ALERTA] C5: Valor=10µF → interpretado como 10 (adimensional) |
| Peças “genéricas” não aprovadas | Substitutos de EMS – sem responsabilização | R1–R10: “RES 1K” → Yageo RC0603JR-071KL |
Dica Profissional:
Exigir que a EMS envie um Relatório de Verificação Cruzada de Lista de Materiais (BOM) antes da montagem – ele mostra exatamente o que foi encomendado versus o que foi especificado, ajudando a identificar erros silenciosos precocemente.
IPC-2581 BOM – Quando Brilha (e Quando Falha)
O IPC-2581 incorpora a Lista de Materiais (BOM) como XML dentro do arquivo principal:
GRM21BR61E106KA12L
Murata
10 µF 25 V X7R 1206
±10%
Vantagens:
- Rastreabilidade completa: MPN → rede → pegada
- Habilita verificações automatizadas de DFM versus BOM (por exemplo, “Este 0201 está muito perto de um via?”)
Riscos:
- O tamanho do arquivo aumenta em ~300%
- A EMS pode extrair a lista de materiais (BOM) incorretamente (por exemplo, pode omitir alternativas).
- Não é possível revisar o Excel sem uma ferramenta CAM.
Use a lista de materiais IPC-2581 se:
- Seu EMS suporta Valor NPI ou CAM350 v18+
- Você executa DFM automatizado em CI/CD
- A segurança do projeto de PI não é crítica
Checklist Final: Protocolo de Submissão BOM
- Formato: .xlsx para revisão + .csv para EMS – ambos em UTF-8
- Colunas: 9 campos obrigatórios – RefDes, MPN, MFG, Descrição, Footprint, Tolerância, Tensão/Temperatura, Alternados, Notas
- DNP: Filtrado explicitamente; sem linhas ou colunas ocultas
- Unidades: Evite símbolos em CSV; use uF, kOhm, degC
- Alternativas: Documentado com ✅ / ⚠️ / ❌ para indicar compatibilidade
- Validação: Execute o script bom_validate.sh e realize uma verificação manual pontual.
- Pré-Montagem: Exigir que a EMS forneça um Relatório de Verificação Cruzada de Lista de Materiais (BOM) antes da montagem.
Considerações Finais
A BOM não é apenas documentação. É uma intenção executável – analisada por scripts, carregada em alimentadores e confiada por operadores que nunca viram seu diagrama. Os projetos mais resilientes tratam a BOM não como uma saída, mas como uma interface crítica – rigorosamente especificada, formatada defensivamente e implacavelmente validada.
Na linha de montagem, não existe Ctrl+Z – apenas refazer, descartar e o zumbido suave de uma linha que deveria ter funcionado sem problemas.
💡 Parceria com um EMS confiável como PCBCool garante que sua BOM (Lista de Materiais) seja tratada com precisão e responsabilidade. Desde a fabricação da PCB até a montagem completa, nossa equipe revisa, valida e executa rigorosamente sua BOM para minimizar erros e maximizar o rendimento na primeira tentativa.
Perguntas Frequentes (FAQ)
Garantir que todos os RefDes, MPNs, fabricantes, footprints, tolerâncias, tensão/temperatura, DNP e alternativos estejam completos. Salvar como CSV UTF-8 para upload.
Valores genéricos como “10K” em vez de números de peça completos. Mesmo uma única pegada ou tolerância ausente pode parar a linha de produção.
Sempre indique a compatibilidade com ✅ / ⚠️ / ❌ e esclareça as limitações. Nunca presuma que o EMS as interpretará corretamente.
Apenas para produção de alta confiabilidade ou tier-1. Para a maioria das execuções, Excel + CSV é mais seguro e fácil de revisar.
Filtre explicitamente o DNP em sua exportação e verifique o CSV cuidadosamente antes da submissão; nunca confie na exportação padrão do esquema.
A: Valide a BOM precocemente, execute scripts como bom_validate.sh, confirme alternados, não-fabricáveis (DNPs) e unidades, e solicite uma verificação cruzada da BOM pré-montagem do seu EMS.
George é um engenheiro eletricista certificado com experiência em design de PCB, sistemas embarcados e desenvolvimento de hardware IoT. Ele trabalha com a PCBCool para transformar experiência de engenharia real em guias práticos para desenvolvedores e engenheiros.