Show HN: Atopile – Leiterplatten per Code entwerfen
(news.ycombinator.com)- atopile ist eine Open-Source-Sprache samt Toolchain, um elektronische Schaltungen als Code zu beschreiben. Ziel ist es, das Formulieren von Anforderungen, die Wiederverwendung von Designs und die Erzeugung von Artefakten beim PCB-Design ähnlich wie in der Softwareentwicklung zu behandeln
- Ausgangspunkt war das Problembewusstsein, dass Hardwaredesign sich anfühlte wie Software nur in Assembly zu schreiben; es ist ein Versuch, GitHub-typische Abläufe mit automatischem Build, Test und Merge auch auf das Schaltungsdesign anzuwenden
- Die eigene Sprache ato erlaubt es, Schaltungen in Module, Komponenten und Interfaces aufzuteilen, sie zu verschachteln und zu verbinden; als Beispiel gibt es ein Blinky-Modul, das RP2040, LED, 3,3-V-LDO und USB-C-Anschluss kombiniert
- Der Compiler erstellt eine netlist, die die Schaltungsverbindungen beschreibt, und wählt generische Bauteile aus; künftig sollen Layout-Wiederverwendung, mathematische Beziehungen zwischen Werten und Schaltungsdefinitionen ähnlich Rust-Traits ausgebaut werden
- Aktuelles Ziel sind PCB-Designs niedriger bis mittlerer Komplexität, nicht Chipdesigns; der Kern ist unter Apache 2.0 veröffentlicht, die Monetarisierung ist über den Verkauf von Enterprise-Funktionen geplant
Der Versuch, Hardwaredesign in einen Code-Workflow zu überführen
- atopile ist eine Open-Source-Sprache und Toolchain, um elektronische Schaltungen als Code zu beschreiben
- Einen schnellen Eindruck gibt es in der Kurzdemo
- Der Compiler ist im GitHub-Repository veröffentlicht, die Dokumentation findet sich unter getting started
- Detaillierteres Material zum Entwurfsprozess eines ESP32-Moduls gibt es als Deep-Dive-Video
- Die Gründer mussten in früheren Jobs elektronische Leiterplatten selbst zeichnen und exportieren; als sie den GitHub-basierten Automatisierungs-Workflow eines befreundeten Software Engineers sahen, fragten sie sich, ob sich derselbe Ansatz auch auf Hardware anwenden lässt
Die Sprache ato und das Compiler-Ergebnis
- Die Sprache ato zerlegt Schaltungen in Module, Komponenten und Interfaces und ermöglicht es, diese Blöcke zu verschachteln oder miteinander zu verbinden
- Das RP2040-Beispiel importiert die folgenden Elemente und fasst sie zu einem
Blinky-Modul zusammenRP2040KitLEDIndicatorBlueLDOReg3V3USBCConn- USB-C-Stromversorgung → Eingang des Spannungsreglers → Stromversorgung des Mikrocontrollers → Verbindung von GPIO13 mit dem LED-Eingang
- Der LED-Widerstandswert wird als
100ohm +/- 10%angegeben
- Der Compiler erstellt eine netlist, die die Schaltungsverbindungen beschreibt, und übernimmt auch die Auswahl generischer Bauteile
- Die zugehörige Erklärung findet sich im Beitrag zu cloud components
Aktueller Umfang und Entwicklungsrichtung
- Der nächste Entwicklungsschwerpunkt liegt auf Layout-Wiederverwendung, mathematischen Beziehungen zwischen Werten und Funktionen, um Schaltungen ähnlich wie mit Traits in Rust zu definieren
- Derzeit zielt atopile auf alle Arten von Leiterplatten-Designs (PCB) niedriger bis mittlerer Komplexität ab
- Die Komplexität der Schaltungen, die der Compiler verarbeiten kann, soll schrittweise erhöht werden
- Es ist keine Sprache für Chipdesign, sondern speziell für PCBs
- Der Kern von atopile ist als Open Source unter Apache 2.0 verfügbar
- Die Monetarisierung ist ähnlich wie bei GitLab geplant: durch den Verkauf von Funktionen für Enterprise-Kunden
1 Kommentare
Hacker-News-Kommentare
Meinungen dazu, Schaltungen als Code auszudrücken
Meinungen zu Werkzeugen für elektronische Bauteile
Meinungen zum Teilen von Modulen
Meinungen zu einem neuen Ansatz für PCB-Design
Vorschlag zur Nutzung von Verilog
Meinungen zu den Unterschieden zwischen EDA-Programmen und Mechanical CAD
Meinungen zur Code-Import-Syntax
import Y from Xsollte in etwas wieimport X.Yoderfrom X import Ygeändert werden, damit Autovervollständigungs-Tools genutzt werden können.BFH - Health Without Borders
Leidenschaft für Home-Automation-Arbeiten