Boas práticas para gerar BOM no KiCad 6 (Linux)

Neste artigo serão abordadas boas práticas para a geração do BOM utilizando o software KiCad 6.

O objetivo principal é reduzir o tempo de revisão e preparação do arquivo que é enviado para a cotação da PCB e montagem, além de enriquecer a documentação e diminuir a ocorrência de erros no BOM.

Para isto serão abordados os seguintes tópicos:

  1. Utilização de campos personalizados nos componentes.
  2. Edição do script de geração de BOM do próprio KiCad tornando possível a geração de BOM para variantes de montagem.
  3. Utilização do plugin InteractiveBOM.

Executando estas etapas durante o desenvolvimento, o projetista conseguirá obter um BOM confiável e uma excelente documentação para a montagem, com a possibilidade de prever variações na montagem.

Pré requisitos para este tutorial:

  • Instalação do KiCad > 6.0.4
    • Version: 6.0.4-6f826c9f35~116~ubuntu20.04.1, release build
    • Atenção: a versão 6.0.3 possui um bug ao importar as ligações do esquemático para a PCB.
  • Adicionar o plugin InteractiveHtmlBom na pasta /usr/share/kicad/scripting/

Introdução

A primeira regra para não ter dor de cabeça ao gerar o BOM é criar seus próprios componentes. Para isto será necessário criar uma biblioteca própria e adicioná-la na lista de bibliotecas do seu Kicad.

Para criar uma nova biblioteca: 

  1. Tools→Symbol Editor
  2. File→ New Library
    1. Global

Para criar um novo símbolo nesta biblioteca:

  1. File→New symbol

Dentro do novo símbolo será necessário adicionar campos adicionais após desenhá-lo, para isto basta clicar no fundo com o botão direito e selecionar a opção “symbol properties…”.

Na tela de propriedades do símbolo, será necessário adicionar pelo menos 5 novos campos  além dos obrigatórios, para adicionar basta clicar no botão “+” e uma nova linha é adicionada à tabela:

  • PN: Part number completo do item
  • Fabricante: De preferência utilizar componentes passivos do mesmo fabricante.
  • Descrição detalhada
  • Link: Link de algum fornecedor confiável (ie. Mouser)
  • DNPX: O valor deve ser DNPX ou em branco, onde X é o número da variante.
  • DNPY: O valor deve ser DNPY ou em branco, onde Y é o número da variante.

O campo DNP significa “DO NOT PLACE” e o X é um número ou letra que identifica a variante da montagem. O DNP é editado no momento em que o componente é adicionado ao esquemático, pois muda de projeto para projeto.

É importante deixar os campos DNP visíveis para que não seja necessário ter que entrar nas propriedades do componente para ver seu valor. Ele será utilizado tanto para gerar o iBOM quanto para gerar o BOM .csv. O iBOM, como veremos a seguir, será um documento adicional para o departamento de montagem da placa e assistência técnica dos produtos, já o BOM .csv é utilizado para a seleção de PNs (part-numbers) para a montagem.

Caso o componente seja montado em todas as variantes, não se torna necessário criar o campo DNP para o mesmo.

Uma sugestão para não ter que desenhar sempre o footprint dos componentes é baixar do site: https://www.snapeda.com/home/

Em seguida, personalizar os campos do símbolo, removendo as linhas dos layers que não são utilizados.

Configuração básica da folha

File→Page Settings

BOM .csv

Script tradicional

O BOM é gerado normalmente através de scripts em python que ficam localizados na pasta:

  • /usr/share/kicad/plugins/

Para rodar um script que gera o BOM é preciso estar na tela do esquemático e ir no menu “tools→Generate BOM”, selecionar o script, modificar os parâmetros que são enviados ao script pela linha de comando (quando necessário) e clicar em generate.

O script mais utilizado para geração de BOM é o “bom_csv_grouped_by_value.py” onde são agrupados os componentes pelo campo “value”.

Isto é útil quando todos os componentes que estão no esquemático devem ser montados na placa e os campos personalizados não tem relevância. 

Porém, isto raramente ocorre na prática. Na maioria das vezes são previstos componentes para fazer variações do mesmo produto ou até mesmo para montar outros produtos com funcionalidades muito diferentes. Neste caso precisaríamos editar manualmente o .csv gerado pelo script e todos sabemos que isto abre uma margem enorme para erros.

O ideal seria que um campo personalizado indicasse ao script (gerador de BOM) qual item deve ser montado, ou não montado, dependendo da variante que se deseja gerar no BOM.

Abaixo está o resultado do BOM gerado pelo script tradicional.

Script modificado

Os scripts geram um .csv mas não contemplam a possibilidade de variações de montagem. Para possibilitar a geração de um BOM para cada variante de montagem é necessário editar o script.Script python modificado para geração de BOM:

No Linux o diretório dos plugins é protegido contra escrita, portanto é necessário criar o arquivo utilizando o comando sudo.

Ao abrir o editor nano, vamos colar o script modificado, sair e gravar as modificações através do comando ctrl + X, seguido de Y para confirmar a gravação.

Adicionando o novo script na lista

  • Na tela de scripts, clique no botão +
  • Selecione o arquivo bom_csv_grouped_by_value_with_variation.py
  • Ajuste a linha de comando para ficar de acordo com “/usr/bin/python3” “/usr/share/kicad/plugins/bom_csv_grouped_by_value_with_variation.py” “%I” “%O3.csv” “3”
    • Perceba que %O é uma alias default para o diretório do projeto e o último parâmetro é o caractere que utilizaremos para identificar a variante.

Executando o novo script

A linha de comando para gerar os BOM com variante é a seguinte:

Arquivos de saída:

Perguntas e limitações

  1. E quando uma variante de montagem mudar apenas o valor do componente, como por exemplo um resistor, capacitor ou indutor?
    1. É sempre indicado que se adicione os dois componentes, no caso eles ficariam em paralelo. 
  2. E se existirem restrições de espaço? 
    1. Neste caso é necessário usar um “artifício” criando os dois componentes no esquemático, porém na PCB estes componentes serão sobrepostos. Esta prática não é recomendada e me coloco a disposição para que comentem com sugestões para contornar esta limitação. No DRC isto vai ser marcado como um erro grave.
  3. Como é feito o versionamento dos outputs? No caso de modificar apenas uma montagem?
    1. Uma alteração em uma montagem implica em uma modificação no esquemático, ou seja, será necessário editar campos de DNP ou trocar o componente. O esquemático deverá ser revisado em qualquer um dos casos. A ideia é que os outputs gerados estejam vinculados a uma versão do esquemático. Sugere-se a criação de todos os outputs novamente, mesmo que fiquem idênticos à versão anterior para assegurar “sincronismo” entre o arquivo gerado e o esquemático que o gerou. Um script pode auxiliar na automatização desta tarefa, mas isto é assunto para outro artigo.

Interactive BOM

O interactive BOM é um plugin que pode servir para o departamento de assistência técnica / manutenção e também pode ser muito útil para o montador da placa.

O arquivo gerado pelo plugin é um html interativo onde é possível identificar a localização de componentes, consultar PN, Fabricante, se é ou não montado e como ele se conecta com os demais componentes na placa.

Para gerar o arquivo é necessário antes exportar o netlist do esquemático.

Gerando netlist

O netlist é gerado no esquemático a partir do menu File→Export→Netlist.

Baixando o Plugin

https://github.com/openscopeproject/InteractiveHtmlBom

No linux (ubuntu), colocar a pasta do plugin inteiro no diretório:

Gerando o HTML

O HTML é gerado a partir da tela da PCB no menu “Tools→External Plugins→Generate Interactive HTML BOM”

O “Name format” é o nome que o arquivo terá, é recomendado adicionar ao final do nome o número da variante que ele está relacionado.

Importante marcar estes dois check boxes pois a informação das trilhas da PCB pode ser muito útil para o departamento de assistência técnica / manutenção.

Algumas opções podem ser adicionadas no wizard, isto vai de acordo com as preferências de cada usuário.

Adicionar os campos PN, Fabricante e Descrição podem ajudar bastante o montador e a pessoa responsável pela configuração da pick and place.

No campo DNP selecione o campo referente a variante que será montada.

No html gerado pelo plugin é possível habilitar e desabilitar alguns layers da placa, entre muitas outras opções de visualização.

Repositório do projeto

https://github.com/flaviohpo/bom_generation_kicad

Saiba Mais

Primeiros passos com Kicad

Kicad 6 – O que já era bom, ficou ainda melhor!

Introdução ao KiCad

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Hardware » Boas práticas para gerar BOM no KiCad 6 (Linux)
Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Bernardo
Bernardo
25/04/2022 18:14

Excelente artigo, parabéns!

kleyson
kleyson
20/04/2022 17:56

ajudou de mais. muito obrigado

Talvez você goste:
Nenhum resultado encontrado.
Menu