2 poin oleh GN⁺ 2024-02-06 | 1 komentar | Bagikan ke WhatsApp
  • atopile adalah bahasa dan toolchain open-source untuk mendeskripsikan rangkaian elektronik dengan kode, yang berupaya menangani ekspresi kebutuhan desain PCB, penggunaan ulang desain, dan pembuatan keluaran seperti dalam pengembangan perangkat lunak
  • Titik awalnya adalah kesadaran masalah bahwa desain hardware terasa seperti membuat software hanya dengan assembly, dan ini merupakan upaya menerapkan alur build, test, dan merge otomatis ala GitHub ke desain sirkuit
  • Bahasa buatannya sendiri, ato, memungkinkan rangkaian dipecah menjadi modul, komponen, dan interface, lalu disarangkan dan dihubungkan; ada contoh modul Blinky yang menggabungkan RP2040, LED, LDO 3,3V, dan konektor USB-C
  • Compiler membuat netlist yang merepresentasikan koneksi rangkaian dan memilih komponen generik; ke depannya mereka ingin memperkuat penggunaan ulang layout, relasi matematis antar nilai, dan definisi rangkaian yang mirip Rust trait
  • Target saat ini adalah desain PCB dengan kompleksitas rendah hingga menengah, bukan untuk desain chip; core-nya dibuka sebagai open source dengan lisensi Apache 2.0, dan monetisasi direncanakan melalui penjualan fitur enterprise

Upaya memindahkan desain hardware ke workflow berbasis kode

  • atopile adalah bahasa dan toolchain open-source untuk menjelaskan rangkaian elektronik dengan kode
  • Alur cepatnya bisa dilihat di demo singkat
  • Compiler-nya tersedia di repositori GitHub, dan dokumentasinya dapat dilihat di getting started
  • Materi yang membahas proses desain modul ESP32 secara lebih detail tersedia sebagai video deep dive
  • Para pendirinya sebelumnya harus menggambar dan mengekspor papan sirkuit elektronik sendiri di tempat kerja lama, lalu melihat workflow otomatis berbasis GitHub milik teman software engineer mereka dan mempertimbangkan apakah pendekatan yang sama bisa diterapkan pada hardware

Bahasa ato dan hasil kompilasi

  • Bahasa ato memecah rangkaian menjadi modul, komponen, dan interface, serta memungkinkan blok-blok ini disarangkan atau dihubungkan satu sama lain
  • Contoh RP2040 mengambil elemen berikut dan menggabungkannya menjadi modul Blinky
    • RP2040Kit
    • LEDIndicatorBlue
    • LDOReg3V3
    • USBCConn
    • Daya USB-C → input regulator tegangan → daya mikrokontroler → koneksi GPIO13 dan input LED
    • Nilai resistor LED ditetapkan sebagai 100ohm +/- 10%
  • Compiler membuat netlist yang menjelaskan koneksi rangkaian, dan juga melakukan pemilihan komponen generik

Cakupan saat ini dan arah pengembangan

  • Fokus pengembangan berikutnya adalah penggunaan ulang layout, relasi matematis antar nilai, dan fitur untuk mendefinisikan rangkaian dengan cara yang mirip trait di Rust
  • Saat ini atopile ditujukan untuk desain segala jenis printed circuit board (PCB) dengan kompleksitas rendah hingga menengah
    • Kompleksitas rangkaian yang dapat ditangani compiler direncanakan meningkat secara bertahap
    • Ini bukan untuk desain chip, melainkan bahasa khusus PCB
  • Core atopile dijadikan open source dengan lisensi Apache 2.0
  • Monetisasi direncanakan dengan menjual fitur untuk enterprise, mirip GitLab

1 komentar

 
GN⁺ 2024-02-06
Komentar Hacker News
  • Pendapat tentang mengekspresikan rangkaian sebagai kode

    • Ini bukan mengekspresikan rangkaian sebagai kode, melainkan sebagai teks. Ini adalah cara nonstandar untuk merepresentasikan netlist dan menambahkan metadata; memang berguna, tetapi karakteristik pembagian yang sebenarnya atau toleransi dan sejenisnya tidak dinyatakan.
    • Akan lebih baik untuk mendefinisikan fungsi pembuat modul agar dapat membuat modul pembagi berdasarkan rasio yang diinginkan, toleransi output, dan arus output maksimum. Selain itu, penting juga untuk menambahkan komponen yang memungkinkan ke BOM.
    • Pendekatan seperti ini mengurangi pekerjaan berulang dalam desain rangkaian dan memungkinkan file rangkaian ditinjau seperti code review.
  • Pendapat tentang alat komponen elektronik

    • Kondisi alat komponen elektronik sangat buruk, dan keadaan teknologi saat ini adalah sebagian besar perancang masih menyalin kapasitor, kristal, port pemrograman, dan sebagainya yang diperlukan saat menambahkan regulator atau mikrokontroler ke skematik dari PDF.
    • Sangat sulit bagi beberapa orang untuk mengerjakan tugas desain yang sama dan menggabungkan perubahan.
    • Jika berpindah ke dunia yang termodularisasi, desain akan menjadi lebih mudah, dan ini adalah prospek yang sangat menarik.
  • Pendapat tentang berbagi modul

    • Berbagi dan menjadikan modul seperti pembagi tegangan sebagai pustaka adalah ide yang bagus.
    • Jika batasan layout dimodularisasi, layout seluruh proyek dapat dibuat secara otomatis, yang memungkinkan desain yang efisien.
  • Pendapat tentang pendekatan baru untuk desain PCB

    • Membangun dasar kekayaan data dan interoperabilitas untuk pendekatan baru dalam desain PCB adalah ide yang keren.
    • Karena skematik listrik lebih familier bagi insinyur elektro, diperlukan kemampuan untuk beralih antara teks dan skematik visual.
  • Usulan penggunaan Verilog

    • Diusulkan untuk menggunakan Verilog atau SystemVerilog guna mendefinisikan informasi komponen sebagai parameter, lalu menggunakannya untuk menghasilkan skematik.
    • Simulasi analog juga dimungkinkan dengan menggunakan Verilog-AMS.
  • Pendapat tentang perbedaan antara program EDA dan CAD mekanik

    • Dibandingkan CAD mekanik, kurangnya "relasi" di program EDA terasa mengejutkan.
    • Alat seperti KiCad menyediakan 'netclasses' untuk mengatur lebar trace secara manual, tetapi diperlukan alat yang lebih efisien.
  • Pendapat tentang sintaks impor kode

    • import Y from X sebaiknya diubah menjadi import X.Y atau from X import Y agar alat autocompletion dapat digunakan.
  • BFH - Health Without Borders

    • BFH, yaitu BorderFreeHealth, mendukung akses universal ke produk kesehatan dengan menghilangkan hambatan geografis dan menyediakan pengiriman global untuk berbagai perlengkapan medis.
  • Antusiasme terhadap pekerjaan otomasi rumah

    • Ada banyak pekerjaan otomasi rumah, dan terdapat keluhan tentang menghabiskan banyak waktu menggunakan breadboard atau merancang modul relay dengan IO kustom.
    • Ditanyakan apakah ada cara untuk berkontribusi pada proyek.