Show HN: Atopile — projete placas de circuito com código
(news.ycombinator.com)- atopile é uma linguagem e toolchain open source para descrever circuitos eletrônicos como código, buscando tratar a expressão de requisitos de projetos de PCB, a reutilização de designs e a geração de artefatos como no desenvolvimento de software
- O ponto de partida foi a percepção de que projetar hardware parecia criar software usando apenas assembly; é uma tentativa de aplicar também ao design de circuitos o fluxo de builds, testes e merges automáticos ao estilo GitHub
- Sua linguagem própria, ato, permite dividir circuitos em módulos, componentes e interfaces, além de aninhá-los e conectá-los; há um exemplo de módulo Blinky que combina RP2040, LED, LDO de 3,3 V e conector USB-C
- O compilador cria uma netlist que representa as conexões do circuito e seleciona componentes genéricos; no futuro, pretende reforçar a reutilização de layout, relações matemáticas entre valores e definições de circuitos semelhantes a traits do Rust
- O objetivo atual é o projeto de PCBs de baixa a média complexidade, não o design de chips; o core é publicado sob Apache 2.0, e a monetização planejada é vender recursos empresariais
Uma tentativa de levar o design de hardware para um workflow de código
- atopile é uma linguagem e uma toolchain open source para descrever circuitos eletrônicos em código
- O fluxo rápido pode ser visto na demo rápida
- O compilador está disponível no repositório do GitHub, e a documentação pode ser consultada em getting started
- Um material que aborda em mais detalhes o processo de design de um módulo ESP32 está disponível em um vídeo deep dive
- Os fundadores precisavam desenhar e exportar placas de circuito eletrônico manualmente em seus empregos anteriores e, ao observar o workflow automatizado baseado no GitHub de um amigo engenheiro de software, passaram a considerar se a mesma abordagem poderia ser aplicada ao hardware
A linguagem ato e o resultado da compilação
- A linguagem ato permite decompor circuitos em módulos, componentes e interfaces, e aninhar esses blocos ou conectá-los entre si
- O exemplo com RP2040 reúne os seguintes elementos em um módulo
BlinkyRP2040KitLEDIndicatorBlueLDOReg3V3USBCConn- alimentação USB-C → entrada do regulador de tensão → alimentação do microcontrolador → conexão entre GPIO13 e entrada do LED
- O valor do resistor do LED é especificado como
100ohm +/- 10%
- O compilador cria uma netlist que descreve as conexões do circuito e também realiza a seleção de componentes genéricos
- A explicação relacionada é abordada no artigo sobre cloud components
Escopo atual e direção de desenvolvimento
- O próximo foco de desenvolvimento é reutilização de layout, relações matemáticas entre valores e recursos para definir circuitos de forma parecida com traits do Rust
- Atualmente, atopile tem como alvo o design de todos os tipos de placas de circuito impresso (PCB) de baixa a média complexidade
- A complexidade dos circuitos que o compilador consegue processar será aumentada gradualmente
- Não é uma linguagem para design de chips, mas uma linguagem dedicada a PCBs
- O core do atopile foi tornado open source sob Apache 2.0
- A monetização está planejada como a venda de recursos voltados a empresas, de forma semelhante ao GitLab
1 comentários
Opiniões do Hacker News
Opinião sobre representar circuitos em código
Opinião sobre ferramentas de componentes eletrônicos
Opinião sobre compartilhamento de módulos
Opinião sobre uma nova abordagem para projeto de PCB
Sugestão de uso de Verilog
Opinião sobre a diferença entre programas EDA e CAD mecânico
netclassespara definir manualmente a largura das trilhas, mas são necessárias ferramentas mais eficientes.Opinião sobre a sintaxe de importação de código
import Y from Xdeveria ser alterado para algo comoimport X.Youfrom X import Y, para que ferramentas de autocompletar possam ser usadas.BFH - Saúde Sem Fronteiras
Entusiasmo por trabalhos de automação residencial