Grupo de Desenvolvimento C++ com KiCAD

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Modificando código do KiCAD no Emacs

O e-hal (I Encontro Brasileiro de Hardware Aberto e Livre), que acontecerá em outubro de 2016, terá uma hackatona do KiCAD.

O KiCAD é uma suite de software livre para design de circuitos elétricos e placas de circuito impresso.

O objetivo da hackatona no e-hal será implementar a importação automática de projetos e bibliotecas do Eagle. Mesmo sendo um software proprietário, o Eagle é o software EDA de-facto na comunidade de hardware aberto e livre. O KiCAD tem ganhado terreno, mas tal recurso aceleraria a sua adoção, já que grandes fornecedores como Sparkfun, Arduino e Adafruit usam Eagle e distribuem extensas bibliotecas de componentes.

Para aumentar o rendimento da hackatona, que terá participação de membros do time do KiCAD vindos da gringa só para isso, o garoa organizou este grupo preparatório para quem quiser (ou não) participar em outubro.

A proposta deste grupo é resolver bugs simples ("starter patches") do KiCAD com o objetivo de nos familiarizarmos com o código e, de quebra, praticar um pouco e ganhar experiência em desenvolvimento C++ através de uma ferramenta que pode ser utilizada em projetos de hardware feitos no Garoa.

Não é preciso ter experiência com C++, porém alguma familiaridade com outra linguagem é desejável. De todo modo, o foco da atividade será programar e aprender programando!

Exemplo de projeto feito no KiCAD

Horário

Encontros presenciais às quartas-feiras** de setembro, na Biblioteca do Garoa, a partir das 18h00, mas também pode participar remoto via IRC no canal #garoa em irc.freenode.net

Investimento

0

Informações úteis

  • Segundo relato do Juca o KiCAD passou a usar git em todos os seus repositórios, então as informações acima podem estar desatualizadas. Existe um source mirror no github, mas recomendamos que todos façam checkout a partir do launchpad, como nas instruções do Guia de desenvolvedores
  • Recomendamos que cada um traga seu notebook, de preferência com uma distribuição GNU/Linux instalada. No entanto, vale lembrar que o KiCAD é multiplataforma, mas os processos de build para Windows e MacOS são mais complexos.
  • Para compilar com símbolos de debug: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. && make

Instalar build system e dependências

TODO

Baixar source

git clone https://git.launchpad.net/kicad

Compilar

TODO

Criar e submeter patches

TODO

Starter patches

Os desenvolvedores do KiCAD disponibilizaram uma lista de bugs para iniciantes no projeto.

Caso tenha interesse em trabalhar em algum deles, coloque o seu nome na frente. A lista abaixo não é exaustiva. Você também pode trabalhar em qualquer outro bug que ache interessante.

  • Bug #1423515 pcbnew option to export text as editable text when writing DXF/SVG Pitanga
  • Bug #1428125 Don't freeze GUI when showing hotkey list.
  • Bug #1395442 Hotkeys Editor should have a reset button
  • Bug #1412628 pos file ref cut off
  • Bug #1448460 Canceling a started track in GAL. Juca
  • Bug #1424003 OpenGL & Cairo Canvas "End Track". Já estava corrigido: https://code.launchpad.net/~rohbotics/kicad/bug_1424003/+merge/285826
  • Bug #1492734 Likely DRAWSEGMENT::computeArcBBox() (pcbnew/class_drawsegment.cpp) is the culprit. The issue should solved in DRAWSEGMENT::ViewBBox(), so perhaps both could be merged.
  • Bug #793420 Perhaps it is missing a few OnModify() calls. Wayne proposes a simple solution which may serve as an example.
  • Bug #1005383 Minor UI issue.
  • Bug #1482866 One needs to get the currently highlighted net number, and preselect it in the zone creation dialog (pcbnew/dialogs/dialog_copper_zones.cpp) through a ZONE_SETTINGS object.
  • Bug #1485941 Class CONTEXT_TRACK_WIDTH_MENU (pcbnew/router/router_tool.cpp) lacks an update handler that would update the units whenever the menu is shown. Have a look at CONTEXT_MENU::SetMenuHandler(). It might be also a good introduction to implement #1519973.
  • Bug #1503921 It might be just one 'if' statement missing, though I am not sure.
  • ...

Referências

  • [1] palestra do Wayne Stambaugh (líder do projeto) falando dos "velhos tempos" do KiCAD.
  • [2] informações essenciais para novos desenvolvedores
  • [3] thread na lista de e-mails sobre o desenvolvimento de suporte a arquivos do Eagle, que será tema da hackatona
  • [4] [5] [6] [7] [8] [9] links para o trabalho do Chris Gammel, citado aos 32:20 da palestra do Wayne
  • Arquivo:Kicad dev intro.pdf, documento com uma explicação geral sobre a organizaçãod o código

Resumo dos encontros

07/09/16

  • Presentes: Afonso, Marcelo Campos, Alexandre, Aylons (remoto), orsonmmz (desenvolvedor do KiCAD, remoto), Pitanga
  • Falado: objetivos gerais do grupo, organização da documentação (esta página), conversa com os desenvolvedores do KiCAD
  • Feito: baixar e compilar o código fonte

14/09/16

  • Presentes:
  • Falado:
  • Feito:

21/09/16

  • Presentes:
  • Falado:
  • Feito:

28/09/16

  • Presentes:
  • Falado:
  • Feito:

Anotações e ideias

  • Marcelo: coisas que não estão no tutorial - dependência GLM e biblioteca x tem que ser instalada em x_64
  • Salvar o ultimo Output Directory-
  • Pq os arquivos plotados saem com um nome tipo -Bxxxx, começando com dash? Talvez seja pq o projeto não está salvo e o nome do projeto, que viria antes do dash é a string nula. Nesse caso, deveria ter um nome melhor pois nome de arquivo começando com dash é estranho e escapar o dash na linha de comando não é trivial