2 पॉइंट द्वारा GN⁺ 2024-02-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • atopile इलेक्ट्रॉनिक सर्किट को कोड में व्यक्त करने के लिए एक ओपन सोर्स language·toolchain है, जिसका उद्देश्य PCB डिज़ाइन में requirements को व्यक्त करना, डिज़ाइन का पुन: उपयोग करना, और outputs बनाना सॉफ्टवेयर डेवलपमेंट की तरह संभालना है
  • इसकी शुरुआत इस समस्या-बोध से हुई कि hardware डिज़ाइन सिर्फ assembly से software बनाने जैसा महसूस होता था, और यह GitHub-शैली के auto build·test·merge flow को सर्किट डिज़ाइन पर भी लागू करने की कोशिश है
  • इसकी अपनी language ato सर्किट को module, component, interface में बाँटने और उन्हें nest·connect करने देती है, और RP2040·LED·3.3V LDO·USB-C connector को मिलाकर बने Blinky module का उदाहरण दिया गया है
  • compiler सर्किट कनेक्शन दिखाने वाली netlist बनाता है और generic parts भी चुनता है, और आगे layout reuse, values के बीच mathematical relationships, तथा Rust trait जैसी circuit definitions को मजबूत करने की योजना है
  • मौजूदा लक्ष्य low से medium complexity के PCB डिज़ाइन हैं, यह chip design के लिए नहीं है, और core को Apache 2.0 के तहत ओपन सोर्स करके enterprise features बेचकर कमाई करने की योजना है

hardware डिज़ाइन को code workflow में ले जाने की कोशिश

  • atopile इलेक्ट्रॉनिक सर्किट को कोड में वर्णित करने के लिए एक ओपन सोर्स language और toolchain है
  • इसका तेज़ overview quick demo में देखा जा सकता है
  • compiler GitHub repository पर उपलब्ध है, और docs getting started में देखी जा सकती हैं
  • ESP32 module डिज़ाइन प्रक्रिया को अधिक विस्तार से समझाने वाला deep dive video भी उपलब्ध है
  • संस्थापकों को अपनी पिछली नौकरी में इलेक्ट्रॉनिक सर्किट बोर्ड खुद ड्रॉ करके export करने पड़ते थे, और एक software engineer दोस्त का GitHub-आधारित automation workflow देखकर उन्होंने सोचा कि क्या यही तरीका hardware पर भी लागू किया जा सकता है

ato language और compile output

  • ato language सर्किट को module, component, interface में विभाजित करती है, और इन blocks को nest या आपस में connect करने देती है
  • RP2040 उदाहरण में नीचे दिए गए elements को लाकर Blinky module में बाँधा गया है
    • RP2040Kit
    • LEDIndicatorBlue
    • LDOReg3V3
    • USBCConn
    • USB-C power → voltage regulator input → microcontroller power → GPIO13 और LED input कनेक्शन
    • LED resistor value को 100ohm +/- 10% के रूप में सेट किया गया है
  • compiler सर्किट कनेक्शन का वर्णन करने वाली netlist बनाता है, और generic part selection भी करता है

मौजूदा दायरा और विकास दिशा

  • अगला development focus layout reuse, values के बीच mathematical relationships, और Rust के trait जैसी शैली में circuit define करने की क्षमता पर है
  • अभी atopile low से medium complexity वाले सभी प्रकार के printed circuit board (PCB) डिज़ाइन को target करता है
    • compiler जिस circuit complexity को संभाल सकता है, उसे धीरे-धीरे बढ़ाने की योजना है
    • यह chip design के लिए नहीं बल्कि PCB-विशेष language है
  • atopile core को Apache 2.0 के तहत ओपन सोर्स किया गया है
  • monetization की योजना GitLab की तरह enterprise customers के लिए features बेचने की है

1 टिप्पणियां

 
GN⁺ 2024-02-06
Hacker News टिप्पणियाँ
  • सर्किट को code के रूप में व्यक्त करने पर राय

    • यह वास्तव में सर्किट को code के रूप में व्यक्त करना नहीं है, बल्कि text के रूप में व्यक्त करना है। यह netlist को non-standard तरीके से दर्शाता है और metadata जोड़ता है, जो उपयोगी है, लेकिन वास्तविक derating characteristics या tolerances जैसी चीज़ें स्पष्ट नहीं करता।
    • module generation functions परिभाषित करके, इच्छित ratio, output tolerance, और maximum output current के आधार पर divider modules बनाना बेहतर होगा। साथ ही, BOM में संभावित components जोड़ना भी महत्वपूर्ण है।
    • यह approach सर्किट डिज़ाइन के दोहराए जाने वाले काम को कम करता है और circuit files की code review जैसी समीक्षा करना संभव बनाता है.
  • इलेक्ट्रॉनिक component tools पर राय

    • इलेक्ट्रॉनिक component tools की स्थिति बहुत खराब है, और अधिकतर designers आज भी schematic में regulator या microcontroller जोड़ते समय ज़रूरी capacitors, crystal, programming port आदि को PDF से कॉपी करते हैं।
    • कई लोगों का एक ही design task पर काम करना और changes को merge करना बहुत कठिन है.
    • अगर दुनिया modular दिशा में बढ़े, तो design आसान हो जाएगा, और यह बहुत दिलचस्प संभावना है.
  • मॉड्यूल share करने पर राय

    • voltage divider जैसे modules को share करना और उन्हें library के रूप में उपलब्ध कराना एक अच्छा विचार है.
    • layout constraints को modular बनाकर पूरे project का layout अपने-आप generate किया जा सकता है, जिससे efficient design संभव होता है.
  • PCB design के लिए नए approach पर राय

    • PCB design के लिए नए approach की data richness और interoperability की नींव रखना एक शानदार विचार है.
    • क्योंकि electrical schematics electrical engineers के लिए अधिक परिचित होते हैं, इसलिए text और visual schematics के बीच switch करने की क्षमता ज़रूरी है.
  • Verilog उपयोग का सुझाव

    • Verilog या SystemVerilog का उपयोग करके component information को parameters के रूप में परिभाषित करना और उससे schematics generate करना सुझाया गया है.
    • Verilog-AMS का उपयोग करके analog simulation भी संभव है.
  • EDA programs और mechanical CAD के अंतर पर राय

    • mechanical CAD की तुलना में EDA programs में "relationships" की कमी चौंकाती है.
    • KiCad जैसे tools manual trace width सेट करने के लिए 'netclasses' देते हैं, लेकिन इससे अधिक efficient tools की आवश्यकता है.
  • code import syntax पर राय

    • import Y from X को auto-completion tools का बेहतर उपयोग करने के लिए import X.Y या from X import Y जैसे रूप में बदला जाना चाहिए.
  • BFH - Health Without Borders

    • BFH, यानी BorderFreeHealth, भौगोलिक बाधाओं को हटाकर विभिन्न medical supplies की global delivery के साथ universal health product access का समर्थन करता है.
  • home automation काम के प्रति उत्साह

    • home automation का बहुत काम किया जाता है, और breadboard इस्तेमाल करने या custom IO वाले relay modules डिज़ाइन करने में बहुत समय खर्च होने पर असंतोष है.
    • पूछा गया है कि क्या project में योगदान देने का कोई तरीका है.