- atopile es un lenguaje y toolchain open source para describir circuitos electrónicos con código, y busca tratar la expresión de requisitos de diseño de PCB, la reutilización de diseños y la generación de entregables como si fuera desarrollo de software
- El punto de partida fue la idea de que el diseño de hardware se sentía como hacer software solo con ensamblador, y es un intento de aplicar también al diseño de circuitos el flujo de compilación, pruebas y merge automáticos al estilo GitHub
- Su lenguaje propio, ato, permite dividir circuitos en módulos, componentes e interfaces, y anidarlos o conectarlos entre sí; hay un ejemplo de un módulo Blinky que combina un RP2040, un LED, un LDO de 3.3 V y un conector USB-C
- El compilador genera una netlist que representa las conexiones del circuito y selecciona componentes genéricos; a futuro quieren reforzar la reutilización de layout, las relaciones matemáticas entre valores y una definición de circuitos similar a los traits de Rust
- Actualmente el objetivo son los diseños de PCB de complejidad baja a media, no el diseño de chips; el núcleo se publica bajo Apache 2.0 y planean monetizar vendiendo funciones enterprise
Un intento de llevar el diseño de hardware a un flujo de trabajo basado en código
- atopile es un lenguaje open source y un toolchain para describir circuitos electrónicos con código
- Se puede ver un recorrido rápido en la demo rápida
- El compilador está publicado en el repositorio de GitHub, y la documentación se puede consultar en getting started
- Hay material que cubre con más detalle el proceso de diseño de un módulo ESP32 en el video deep dive
- Los fundadores, en su trabajo anterior, tenían que dibujar y exportar directamente placas de circuito electrónico, y al ver el flujo de automatización basado en GitHub de un amigo ingeniero de software, se preguntaron si podían aplicar el mismo enfoque al hardware
El lenguaje ato y el resultado de la compilación
- El lenguaje ato permite descomponer circuitos en módulos, componentes e interfaces, y anidar o conectar estos bloques entre sí
- El ejemplo con RP2040 toma los siguientes elementos y los agrupa en un módulo
BlinkyRP2040KitLEDIndicatorBlueLDOReg3V3USBCConn- alimentación USB-C → entrada del regulador de voltaje → alimentación del microcontrolador → conexión entre GPIO13 y la entrada del LED
- el valor de la resistencia del LED se especifica como
100ohm +/- 10%
- El compilador genera una netlist que describe las conexiones del circuito y también realiza la selección de componentes genéricos
- la explicación relacionada se trata en el artículo sobre cloud components
Alcance actual y dirección del desarrollo
- Los próximos focos de desarrollo son la reutilización de layout, las relaciones matemáticas entre valores y funciones para definir circuitos de una forma parecida a los traits de Rust
- Actualmente atopile apunta a todo tipo de diseños de placas de circuito impreso (PCB) de complejidad baja a media
- planean aumentar gradualmente la complejidad de los circuitos que el compilador puede manejar
- no es para diseño de chips, sino un lenguaje exclusivo para PCB
- El núcleo de atopile es open source bajo Apache 2.0
- La monetización está planeada de forma similar a GitLab, vendiendo funciones orientadas a empresas
1 comentarios
Opiniones de Hacker News
Opinión sobre expresar circuitos como código
Opinión sobre las herramientas de componentes electrónicos
Opinión sobre compartir módulos
Opinión sobre un nuevo enfoque para el diseño de PCB
Sugerencia de usar Verilog
Opinión sobre la diferencia entre los programas EDA y el CAD mecánico
Opinión sobre la sintaxis de importación de código
import Y from Xdebería cambiarse por algo comoimport X.Yofrom X import Ypara que se puedan usar herramientas de autocompletado.BFH - Health Without Borders
Entusiasmo por trabajos de automatización del hogar