The best Hacker News stories from All from the past day
Latest posts:
Report on the role of standardized test scores in undergraduate admissions [pdf]
More misdrilled holes on 737 MAX in latest setback
Show HN: Atopile – Design circuit boards with code
Hey HN! We are the founders of atopile. We’re building a tool to describe electronics with code. Here is a quick demo: <a href="https://youtu.be/7-Q0XVpfW3Y" rel="nofollow">https://youtu.be/7-Q0XVpfW3Y</a><p>Could you imagine the pain of building an entire software product using only assembly code? That’s about how we felt designing hardware. We don’t currently have good ways to describe what we need, reuse existing designs and compile that description down to a product.<p>We started atopile to fix this. atopile is an open-source language and toolchain to describe circuits with code. The compiler is here: <a href="https://github.com/atopile/atopile">https://github.com/atopile/atopile</a> Docs are here: <a href="https://atopile.io/getting-started/" rel="nofollow">https://atopile.io/getting-started/</a> . For a detailed deep dive designing an ESP32 module, see this video: <a href="https://youtu.be/eMWRwZOajdQ" rel="nofollow">https://youtu.be/eMWRwZOajdQ</a><p>We realized this was a problem in our previous jobs. Narayan and I (Tim) had to manually, draw and export all our electronic circuit boards. This lasted until our friend Matt, a software engineer, showed us his development workflow. All his projects were built, tested, and merged automatically via GitHub. So we asked: Can we build the same for hardware?<p>We observed that the ability to abstract electronics effectively hinged on using a language to describe the requirements, so we came up with the “ato” language. In ato, you can break down circuits into modules, components and interfaces. You can nest and connect those blocks with each other. Here is an example with an RP2040 microcontroller:<p><pre><code> import RP2040Kit from "rp2040/RP2040Kit.ato"
import LEDIndicatorBlue from "generics/leds.ato"
import LDOReg3V3 from "regulators/regulators.ato"
import USBCConn from "usb-connectors/usb-connectors.ato"
module Blinky:
micro_controller = new RP2040Kit
led_indicator = new LEDIndicatorBlue
voltage_regulator = new LDOReg3V3
usb_c_connector = new USBCConn
usb_c_connector.power ~ voltage_regulator.power_in
voltage_regulator.power_out ~ micro_controller.power
micro_controller.gpio13 ~ led_indicator.input
micro_controller.power.gnd ~ led_indicator.gnd
led_indicator.resistor.value = 100ohm +/- 10%
</code></pre>
From there, the compiler produces a netlist that describes how the circuit is connected and selects jelly-bean components for you (<a href="https://atopile.io/blog/2024/01/31/cloud-components/" rel="nofollow">https://atopile.io/blog/2024/01/31/cloud-components/</a>). Our next focus will be to add layout reuse, mathematical relations between values and define circuits by traits (similar to Rusts’).<p>At the moment, atopile is intended to design all types of printed circuit boards (PCB) with low to medium complexity. The circuit complexity that the compiler can handle will steadily increase until it becomes suited for production usage. We often get asked if the compiler is meant for chip design rather than PCBs, but that is not the case. The language is exclusive to PCBs. At least for now..!<p>A big part of why the software community is so prolific is thanks to open source and open core technology. The ability to share software packages with each other and efficiently chain tools together has made the software world an awesome place for developers. As hardware engineers, we would love our field to benefit from this as well. That’s why we’ve made atopile’s core open source (Apache 2.0). We plan to generate revenue by selling entreprise targeted features, similar to GitLab.<p>We would love to have your thoughts on the compiler! What’s your story in electronics? What would you want us to build?
Show HN: Atopile – Design circuit boards with code
Hey HN! We are the founders of atopile. We’re building a tool to describe electronics with code. Here is a quick demo: <a href="https://youtu.be/7-Q0XVpfW3Y" rel="nofollow">https://youtu.be/7-Q0XVpfW3Y</a><p>Could you imagine the pain of building an entire software product using only assembly code? That’s about how we felt designing hardware. We don’t currently have good ways to describe what we need, reuse existing designs and compile that description down to a product.<p>We started atopile to fix this. atopile is an open-source language and toolchain to describe circuits with code. The compiler is here: <a href="https://github.com/atopile/atopile">https://github.com/atopile/atopile</a> Docs are here: <a href="https://atopile.io/getting-started/" rel="nofollow">https://atopile.io/getting-started/</a> . For a detailed deep dive designing an ESP32 module, see this video: <a href="https://youtu.be/eMWRwZOajdQ" rel="nofollow">https://youtu.be/eMWRwZOajdQ</a><p>We realized this was a problem in our previous jobs. Narayan and I (Tim) had to manually, draw and export all our electronic circuit boards. This lasted until our friend Matt, a software engineer, showed us his development workflow. All his projects were built, tested, and merged automatically via GitHub. So we asked: Can we build the same for hardware?<p>We observed that the ability to abstract electronics effectively hinged on using a language to describe the requirements, so we came up with the “ato” language. In ato, you can break down circuits into modules, components and interfaces. You can nest and connect those blocks with each other. Here is an example with an RP2040 microcontroller:<p><pre><code> import RP2040Kit from "rp2040/RP2040Kit.ato"
import LEDIndicatorBlue from "generics/leds.ato"
import LDOReg3V3 from "regulators/regulators.ato"
import USBCConn from "usb-connectors/usb-connectors.ato"
module Blinky:
micro_controller = new RP2040Kit
led_indicator = new LEDIndicatorBlue
voltage_regulator = new LDOReg3V3
usb_c_connector = new USBCConn
usb_c_connector.power ~ voltage_regulator.power_in
voltage_regulator.power_out ~ micro_controller.power
micro_controller.gpio13 ~ led_indicator.input
micro_controller.power.gnd ~ led_indicator.gnd
led_indicator.resistor.value = 100ohm +/- 10%
</code></pre>
From there, the compiler produces a netlist that describes how the circuit is connected and selects jelly-bean components for you (<a href="https://atopile.io/blog/2024/01/31/cloud-components/" rel="nofollow">https://atopile.io/blog/2024/01/31/cloud-components/</a>). Our next focus will be to add layout reuse, mathematical relations between values and define circuits by traits (similar to Rusts’).<p>At the moment, atopile is intended to design all types of printed circuit boards (PCB) with low to medium complexity. The circuit complexity that the compiler can handle will steadily increase until it becomes suited for production usage. We often get asked if the compiler is meant for chip design rather than PCBs, but that is not the case. The language is exclusive to PCBs. At least for now..!<p>A big part of why the software community is so prolific is thanks to open source and open core technology. The ability to share software packages with each other and efficiently chain tools together has made the software world an awesome place for developers. As hardware engineers, we would love our field to benefit from this as well. That’s why we’ve made atopile’s core open source (Apache 2.0). We plan to generate revenue by selling entreprise targeted features, similar to GitLab.<p>We would love to have your thoughts on the compiler! What’s your story in electronics? What would you want us to build?
DEF CON 32 Was Canceled. We Un-Canceled it
Relativistic Spaceship
Relativistic Spaceship
Vesuvius Challenge 2023 Grand Prize awarded: we can read the first scroll
Vesuvius Challenge 2023 Grand Prize awarded: we can read the first scroll
Gödel, Escher, Bach is the most influential book in my life (2022)
Vision Pro Teardown – Why those fake eyes look so weird
Finance worker pays out $25M after video call call with deepfake CFO
Why is the mouse cursor slightly tilted and not straight?
Write code for the web
Plastic bag bans work
Browser extensions are underrated: the promise of hackable software (2019)
Browser extensions are underrated: the promise of hackable software (2019)
How is a binary executable organized? Let's explore it (2014)
How much bigger could Earth be before rockets wouldn't work?
How much bigger could Earth be before rockets wouldn't work?