Hacker News new | ask | show | jobs
by eigen 330 days ago
title says design circuit boards, but it looks to just be netlist generation which is used as input to an external layout tool. step 5 is to use kicad to do lay out.

https://atopile.io/atopile/quickstart#a-typical-workflow

A typical workflow

1. Sketch your circuit on paper.

2. Search https://packages.atopile.io and GitHub for pre-existing modules you need, and use ato install to install them.

3. Design a module and do its calculations using ato code.

4. Run ato build to compile your project, choose components to suit your design, and update your layout (PCB) file.

5. Use KiCAD to lay out any changes

6. Repeat steps 3-5 until you’re happy with your design.

7. When you’re done with your design, push your changes to your repo.

8. CI will automatically build and test your project, and generate the manufacturing files you need to order your PCBs.

9. Take these manufacturing files to your PCB manufacturer to get your PCBAs.

1 comments

It still makes sense though. In many cases, especially in digital design, circuits look like islands of isolated components where the labels are actually defining the connections between them.
I would agree if manufacturers bothered to provide machine readable data sheets [0]. If you have to read the data sheet and manually write your component definitions, then this won't be much faster than doing it with a GUI.

[0] To be fair I'm not a professional electrical engineer, maybe there are expensive databases that I don't have access to. I personally always thought that EDA tools have a natural business opportunity where they give you the razor for free (the EDA software) and sell you the razor blades (e.g. part libraries).

Most semiconductor vendors have now outsourced library creations (for free to end users) to services like UltraLibrarian where you pick what you want and download.

The quality however is meh.

Libraries are a very touchy subject. Most of the time, outsiders to the field just want "plug and play".

Professionals in the field? Holy fucking hell can we get neurotic. In a large company you may have more than one person dedicated just to managing libraries and drawing them to your standards instead of letting the internet do it. And there's a whole list of reasons why one may do it vs. not do so. (Schematics are a form of design expression and as such there are many standards and thoughts on optimal forms of expression, including dependency on the particular sub-industry you are)

No different than software engineers having their favorite programming language, markup language, config file language, code style guidelines, deployment workflows, etc.

I think there is actually some really neat stuff to be built here. I think layout engineers would love to be able to write down their 'style guide' that is basically a set of parameters modifying the footprint. We would have a 'common' representation, basically a definition of the package itself that would be transformed to whatever you might like for the pad/silk shapes. Something very similar to having a linter in code that would enforce company best practices.

We already provide the 'plug and play' version which looks quite alot like LCSC data and is certainly good enough for playing around with. Id really like to put some effort into standardizing this in the mid-term, seems pretty crazy to me that there are way more footprints designs out there than actual packages.

I understand as someone who has played factorio and then had an engineering friend join my game and rebuild everything so it's lined up and shorter belts
I basically dont write ato code when designing modules any more, claude code + rules file + a few decent examples and an MCP for basic functions like building, finding parts and inspecting library components is able to do a pretty great job. As an example, claude one-shotted this MPU6050 design: https://github.com/atopile/packages/blob/multi/adafruit_heis...

Currently working on a pipeline to generate a whole bunch of these automatically, stick them on some big test boards and make sure they actually work. We will be selling razor blades, and will have the test data to show they work.

For some more context, here is a typical example:

https://dl.espressif.com/dl/schematics/esp32_devkitc_v4-sch....