Show HN: Atopile - Thiết kế bảng mạch bằng code
(news.ycombinator.com)- atopile là một ngôn ngữ và toolchain mã nguồn mở để mô tả mạch điện tử bằng code, nhằm xử lý việc biểu diễn yêu cầu, tái sử dụng thiết kế và tạo đầu ra của thiết kế PCB giống như phát triển phần mềm
- Điểm khởi đầu là nhận thức rằng thiết kế phần cứng giống như làm phần mềm chỉ bằng assembly, và đây là nỗ lực áp dụng luồng tự động build, test, merge kiểu GitHub vào thiết kế mạch
- Ngôn ngữ riêng ato cho phép chia mạch thành module, component và interface, rồi lồng ghép và kết nối chúng; có ví dụ module Blinky kết hợp RP2040, LED, LDO 3.3V và đầu nối USB-C
- Trình biên dịch tạo netlist biểu diễn các kết nối mạch và chọn linh kiện phổ thông; trong tương lai, dự án muốn tăng cường tái sử dụng layout, quan hệ toán học giữa các giá trị và định nghĩa mạch tương tự Rust trait
- Mục tiêu hiện tại là thiết kế PCB có độ phức tạp thấp đến trung bình, không phải thiết kế chip; phần lõi được công bố theo Apache 2.0 và dự án dự định kiếm tiền bằng cách bán các tính năng enterprise
Nỗ lực đưa thiết kế phần cứng sang workflow bằng code
- atopile là một ngôn ngữ và toolchain mã nguồn mở để mô tả bằng code các mạch điện tử
- Có thể xem luồng nhanh trong demo nhanh
- Trình biên dịch được công bố trên kho GitHub, và tài liệu có tại getting started
- Tài liệu trình bày chi tiết hơn quá trình thiết kế module ESP32 được cung cấp dưới dạng video deep dive
- Các nhà sáng lập từng phải tự vẽ và xuất bảng mạch điện tử ở nơi làm việc trước đây; khi nhìn thấy workflow tự động hóa dựa trên GitHub của một người bạn là kỹ sư phần mềm, họ tự hỏi liệu có thể áp dụng cách tương tự cho phần cứng hay không
Ngôn ngữ ato và kết quả biên dịch
- Ngôn ngữ ato phân rã mạch thành module, component và interface, đồng thời cho phép lồng các khối này hoặc kết nối chúng với nhau
- Ví dụ RP2040 lấy các phần tử sau và gom thành module
BlinkyRP2040KitLEDIndicatorBlueLDOReg3V3USBCConn- Nguồn USB-C → đầu vào bộ điều áp → nguồn của vi điều khiển → kết nối GPIO13 với đầu vào LED
- Giá trị điện trở LED được chỉ định là
100ohm +/- 10%
- Trình biên dịch tạo netlist mô tả kết nối mạch và cũng thực hiện lựa chọn linh kiện phổ thông
- Phần giải thích liên quan được trình bày trong bài viết về cloud components
Phạm vi hiện tại và hướng phát triển
- Trọng tâm phát triển tiếp theo là tái sử dụng layout, quan hệ toán học giữa các giá trị và tính năng định nghĩa mạch theo cách tương tự trait của Rust
- Hiện tại, atopile nhắm tới thiết kế mọi loại bảng mạch in (PCB) có độ phức tạp thấp đến trung bình
- Dự án dự định tăng dần độ phức tạp mạch mà trình biên dịch có thể xử lý
- Đây không phải là ngôn ngữ dành cho thiết kế chip, mà chuyên cho PCB
- Phần lõi của atopile được mở mã nguồn theo Apache 2.0
- Kế hoạch kiếm tiền là bán các tính năng hướng tới enterprise theo cách tương tự GitLab
1 bình luận
Ý kiến trên Hacker News
Ý kiến về việc biểu diễn mạch bằng mã
Ý kiến về công cụ linh kiện điện tử
Ý kiến về việc chia sẻ mô-đun
Ý kiến về cách tiếp cận mới cho thiết kế PCB
Đề xuất sử dụng Verilog
Ý kiến về sự khác biệt giữa chương trình EDA và CAD cơ khí
Ý kiến về cú pháp import trong mã
import Y from Xnên được đổi thànhimport X.Yhoặcfrom X import Yđể có thể sử dụng công cụ tự động hoàn thành.BFH - Health Without Borders
Sự hứng thú với các tác vụ tự động hóa gia đình