Atopile Wants you to Code Schematics [Hackaday]

View Article on Hackaday

We’d wager that, if you’re reading Hackaday, you’ve looked at more than a few circuit diagrams in your day. Maybe you’ve even converted a few of them over to a PCB. It’s a workflow that, at this point, is well-understood. But as designs become more complex, the schematics are harder to create and maintain. That’s why Atopile wants to treat hardware design more like writing code.

We can see some real benefits to this but also some possible drawbacks. On the plus side, reusing chunks of PCB description should be easy. On the other hand, detecting certain errors on a schematic or PCB layout is easier than spotting them in code. Of course, there are probably types of errors that are easier to catch in code, too, so maybe that’s not a problem. Certainly, if you can spit out a schematic from your code, you could — potentially — have the best of both worlds.

Here’s an example circuit (from the documentation):

import Resistor from "generics/resistors.ato"

module VoltageDivider:
   signal top
   signal out
   signal bottom

   r_top = new Resistor
   r_top.footprint = "R0402"
   r_top.value = 100kohm +/- 10%

   r_bottom = new Resistor
   r_bottom.footprint = "R0402"
   r_top.value = 200kohm +/- 10%

   top ~ r_top.p1; r_top.p2 ~ out
   out ~ r_bottom.p1; r_bottom.p2 ~ bottom

Then again, you can use Verilog-A or even Spice netlists to get the same effect (and those aren’t the only attempts at doing this). Will Atopile catch on? Maybe. Should it? Tell us what you think in the comments.

Software isn’t always readable, but it would be nice to see literate designs for hardware. This project reminded us a lot of SKIDL, but we haven’t seen any updates of that project for a bit.