Hacker News new | past | comments | ask | show | jobs | submit login
Launch HN: JITX (YC S18) – Automating Circuit Board Design
112 points by DHaldane on July 31, 2018 | hide | past | favorite | 54 comments
Hi HN,

We're Duncan, Austin, Jonathan, and Patrick, the founders of JITX (https://www.jitx.com). Today, every circuit board is manually designed by skilled engineers. JITX is automating circuit board design with AI that designs optimized boards in hours instead of weeks.

This all started for us while we were still at UC Berkeley. Duncan and Austin were PhD students and constantly designing robots to test new ideas. We realized we had to start from scratch every time we started work on a new robot. All that work had to be thrown away, because you can’t reuse hardware designs like software. We wanted a way to design robots faster; we wanted a way to design better robots!

At the same time Patrick and Jonathan were building Chisel, an automated tool for digital logic design. The roboticists saw Chisel and got inspired. Patrick and Jonathan saw how people design circuit boards and were horrified. We hit it off and decided to solve the problem — we would make circuit board design more like software development: agile, flexible, reusable, fast.

Our core technology is inspired by the technology used for designing computer chips. The introduction of Hardware Description Languages (HDLs, e.g. Verilog) in the 80s, revolutionized chip design. Instead of manually drawing the shapes that make up the circuit, engineers would instead express the intended behaviour of their circuit using code, and then have algorithms automatically translate that code into the necessary copper shapes. This workflow is what makes possible the billion-transistor chips we see today. We bring the same workflow to PCB design.

Circuit board design is a multidisciplinary challenge, and we have to factor in electrical engineering (circuit design, RF design, signal and power integrity), mechanical engineering (thermal, vibration), and manufacturing (cost optimization, DFM/DFA/DFT). Unsurprisingly, almost every subproblem is computationally intractable, so we use clever representations and heuristics to arrive at good solutions. There are a million details to keep track of across all of those disciplines, and it’s high time we get computers to do the bookkeeping.

To give you an idea of our workflow, here’s a link to the first demo we ever recorded: https://youtu.be/ra0SWTrLzhs. It’s rough and out of date (new demo here: https://youtu.be/lYrY7iskgng), but it helped us get into YC and shows the key ideas. Cliff notes: we describe circuit boards with a domain specific programming language, and then compile that language into hardware designs (and simulations, and schematics, and documentation, and manufacturing outputs). You describe what you care about at a high level, and then the system solves for everything you don’t specify.

For example, we request a board with BLE and a microphone, and the system selects matching key components from the library, solves for power supplies and component values, sources all the parts (thanks Octopart!), assigns pins, plans out placements, routes traces, and then exports a KiCAD project (board + schematic), and manufacturing outputs (BoM, Gerbers, etc.). If you care about the shape of the board, add it as a constraint; if you care about the position of a component, add it as a constraint; if you know which BLE chip you want, add it as a constraint. Design tools should be smart enough to solve for the million details you don’t care about, and optimize your design for what you do care about.

We started JITX to give everyone ready access to professional-quality boards, and today JITX runs as an electronics design contractor. You tell us what a circuit board needs to do, we use our tools to design the board, fab it, and get it back to you. We already do this faster than humans can, and our speed depends on the design. For product and proof-of-concept boards, JITX is on average 3x faster and also cheaper than human contractors. Test fixtures and connector-based boards are almost fully automated, and we have already hit 24-hour turnaround times on designs.

We’re not the first ones to think about better tools for circuit board design, but we are the first to use this approach. We know from experience that this is the way to go, and honestly we can't imagine a future where this tech doesn’t exist. We’re just racing to be the first ones to build it!

- Duncan, Austin, Jonathan, Patrick

PS: If you want to see the last robot we built before starting JITX, you can check out Salto here: https://www.youtube.com/watch?v=2dJmArHRn0U.

Really impressive. I've thought about some of this problem before but clearly I wasn't thinking large enough. The best ideas are like this - obvious once someone else showed them to you... but still hard enough to be fun to do.

Clearly you have a long path ahead of you. I am curious about several things - serious curiousity here!

It seems like you have to design the circuit blocks before this thing starts its build. The LEDs require a resistor to set current, the micro requires frequency-setting resistors and numerous caps, etc. Presumably you are still reading the datasheet to do the block design.

- How well do you follow manufacturer layout recommendations? For something like a switching converter, following these guidelines can be the difference between a working system and a smoke generator.

- Can you tune your system to make tradeoffs against these layout guidelines? For example, the suggested layout requires an area of 1"x0.5", and you have 3/4" square available for it. Or does this require manual intervention?

- Some of your example layouts have a lot of empty space. Is that due to user constraints or your process? Got to be the former.

- How do you envision board revs being handled? Will the user modify the schematic, or send instructions back to you for rebuild? If the latter, is the board layout deterministic? On a board spin I wouldn't want any more changes than are required!

Boy, I have a million more questions for you. This is cool. I look forward to you automating out some of the annoying parts of my job - the days and days of layout. I'm hoping you sell out to Altium so I can get this as a plugin - but I bet someone with much bigger pockets than I can afford will get you guys. Are you looking at yourselves as competing with the EDA companies or the EDM guys? Or both?

Good luck!

Curiosity is always good, and thanks for the compliments. Responses to your questions in order:

- We follow DFM/DFX very well. It's a strength of an automated system that you can make strong guarantees on the designs that come out of the tool. A board design that cannot be manufactured is useless, and our boards are guaranteed manufacturable.

- We rarely follow explicit layout guidelines, and instead determine electrical constraints and solve for a design that meets them. The switching regulator layout in the data sheet rarely fits well in any given floorplan. Better to make sure the physics are right than to encode rigid (and potentially arbitrary) constraints.

- See above. We don't copy/paste - we solve for the layout that fits, subject to electrical constraints.

- More of a lack of user constraints. Space makes good neighbours of electrical components, and makes testing/characterization easier. When size isn't critical, the optimal design is more spaced out.

- Layout is deterministic, and board revs are pretty smooth when all you have to do is edit the source code.

We're not looking for an acquisition. Luckily for you, we don't have to be acquired by Altium to write a plugin for their tool. Our competition are electrical engineers grinding out work that they don't want to be doing anyway.

You're thinking small. If they execute well, and are lucky, I think they'll be eating the other companies, not selling to them.

Have any designs made with JITX been certified as UL compliant, or FCC compliant to standards like radiated emissions, AC conducted emissions, spurious emissions, etc.?

How well does this software do in creating board designs that meet common government compliance requirements?

For advanced designs with lots of compliance requirements, our tool isn't yet able to fully-automatically compute the final design. For these designs, the tool does the parts it can and leaves the rest to be handled by an engineer.

We have an internal scoreboard that tracks how much of each job we successfully automate, and we steadily improve our algorithms to make progress on that.

That's a sensible concept. I like the scoreboard idea.

Are you able to share any of the compliance standards you have certified your boards to? Have any of these boards been certified for sale in a consumer product?

I ask because FCC Class B radiated emissions limits (for example) are tricky to meet, and the design requirements to get there are frequently not well understood.

Followon: why is DDR4 a problem for your software? Any luck with a DDR3 layout?

DDR4 is an example case that's just not well automated yet. We've got the road map sketched out but it hasn't been a priority.

We're optimizing our development for features that make us immediately more productive at designing boards. Thus far that has been things like solvers for power supplies and automated component selection. The special case stuff will come later, when it becomes a bottleneck.

That makes sense - a buck regulator is a lot of component selection.

Do I read a "no" between the lines of my question regarding DDR3? I ask because that's a design segment you could automate to great effect. The DRAM is nearly always the riskiest part of an embedded processor design - so much so that many companies (even large ones in my experience) do not deviate from vendor generated reference designs.

Sorry, should have addressed that directly. We haven't run a job with memory routing through the tool.

Your point about DRAM is well taken, and we'll hopefully have a job justifying that bring-up soon.

Thanks for following up.

The concept looks great. I'm glad to see people working to automate some of the drudgery in EE CAD.

Amazing work, but ... why oh why would you design yet another DSL (domain specific language) for this?

Why not use something like {python, lisp, clojure, js, etc ...) to express the design of your board?

I'm looking at you duplicating your code for your corner holes and I'm hurting :)

Good question. Jonathan and I both from a lisp background and are used to crafting DSLs out of s-expressions (which is what we normally do).

For JITX, we're using a language called Stanza, which provides decorated s-expressions out of the box. It's basically still just s-expressions, but it looks prettier.

From experience of having to add a full blown scripting language to two large domain-specific professional GUI applications in the 90's, and at the risk of upsetting the HN LISP crowd, you should go for something with a broader appeal/base than LISP and similar languages.

LISP and languages of the same ilk are extremely powerful and esthetically pleasing for CS-minded folks, but they are also and unfortunately rather off-putting for the wast majority of technical, non-CS folks (which IUUC is your target audience).

I'd go for Python, in spite of the lack of typing: easy to integrate, massive amount of libraries, very flexible.

An at the risk of committing blasphemy, I have to mention that the EDA folks seem to have a terrible addiction to TCL, which therefore makes it something you may want to consider.

My opinion of course, the best would be to poll your target audience.

Stanza is our implementation language. If you're interested, you can check out the website www.lbstanza.org. It looks pretty similar to Python, plus it also has types!

>An at the risk of committing blasphemy, I have to mention that the EDA folks seem to have a terrible addiction to TCL, which therefore makes it something you may want to consider.

Tcl is very, very Lispy, so perhaps a Lisp is not the worst idea.

Great job giving advice, I'm sure it will be very helpful to hear from some random internet user.

Is this L.B. Stanza or something else?

Also: this is awesome! I'm a software engineer now working with hardware and built a straw man of this for myself a little while back (a sequence of python functions that generate eaglescript commands to make a PCB), but obviously it didn't even do 0.001% as much.

I checked out your site, but didn't see a way to launch the tool. How can I get access? (I'm working on a side project involving a BLE watch based around the nRF52840).

Yup this is L.B. Stanza!

The tool is still internal for now. We're operating as a design service today, and our own engineers use the tool to produce designs quicker than other human-powered competitors.

Fair enough. I'd love to chat a bit about this -- any chance you'd be willing to move to e-mail? (in my profile)

At this point we're just trying to formalize the functional requirements of circuit board design. There are many options to making this more programmatic. The easiest way is just to have a script that generates these input specs. The more desirable way is to embed the input spec into a programming language ala EDSL. Also, remember that with an interactive dual view interface, you can make adjustments to the input spec and see the visual results on the circuit board quickly. This gives the best of both worlds. We are using such an interface internally to design packages, symbols, and boards.

I agree with the duplication issue, but I think I might prefer to keep it declarative, and put any looping logic above that. So maybe something like EDN or JSON for the input notation, and then libraries (if needed) for making it easy to generate that notation.

Wow, this is awesome! It's one of those thoughts that everyone has- so much of making a PCB is totally menial and/or institutional, like part selection and supporting circuitry. Death by a thousand cuts, but many small problems (like placement or autorouting) are actually quite hard. Taken together it's an intimidating task.

This is the next big leap in design for software, electrical, and mechanical things: semantic descriptions directly to solutions.

Prototyping is an excellent application. Whats your support roadmap look like? Add more chips so you can continue making small widgets cheaply? Any plans to get into higher-risk design work? If you can reliably deliver high frequency/radio designs near FCC limits, that frees up a lot of RF engineers. For anyone who doesn't know, the cost to navigate FCC regulations is huge, and testing is worse (10k tests with months of wait, worst case). Probably even more people would be interested in high power designs, given the surging popularity of lithium personal transport and vehicles. Mains voltage/mixed signal designs would also be huge, but that's a whole other kettle of bears. I'm sure you've got internal metrics tracking what you all spend the most time doing and where you're bottlenecking. Even past the huge tasks of advanced engineering there are opportunities to integrate with 3d printing, automated enclosure or laser-cut design. I suspect/hope at some point in the future you guys will be hiring a LOT of people!

I'd love more examples, even on the front page. As long as they're relatively dense, readable and well-laid they'll inspire a lot of trust in engineers. Also, I think test fixturing is a strong asset and you guys should feature it more heavily! I'm not sure how you guys do it, but I'd love to see real examples. It might be the best suited automation of the things you guys do. Designing a comprehensive test fixture can take almost as long as designing the actual part, but with the basic functionality defined you could generate test routines, circuits, firmware, and jigs automatically. And my favorite kind of test jig looks like this[1], so gerbers are all I need to be happy.

[1]: https://i.imgur.com/RA2m4Pn.jpg

I prefer clips to sliding holders like that, but I couldn't find a picture for reference. I like to put a few pads around the corners, then solder a small tab to use as a clip so the PCP only has to be held down on one side. Ideally I'd have a detent on the other side but I've never had a long enough test routine to warrant figuring it out.

// This is the next big leap in design for software, electrical, and mechanical things: semantic descriptions directly to solutions

These kinds of tools are starting to be available in architecture and construction engineering, and in chemical research.

Maybe it'll sweep across engineering. I wonder how future engineers work will look like .

I wonder how future engineers work will look like

Here's hoping it looks like software development. I want engineers to capture their expertise in code so that everyone will be able to benefit.

Thanks for the feedback on the web page - we just mapped your comment to a todo list.

For our roadmap, we'll be adding more and more chips, and improving the design software so we can generate production-grade designs as quickly as we design prototypes today. There's a lot of physics to bring into the design loop, but it's all very feasible.

Love the enclosure co-generation idea. We have done a lot of computational design/fabrication for 3D structures in the past.

I'm with you on the test fixtures! That image doesn't load for me though. I would love to see it.

LOL, reminds me of these old 50's circuits where components were mounted vertically and sandwiched between two PCBs


Yeah cordwood boards. Love it.

Believe it or not, this fixture is actually advanced for the testing industry. Most test fixture houses prefer to individually wire-wrap each pogo pin instead of using a PCB for connectivity. You end up with this terrible thing: https://imgur.com/a/pLHF648

Thanks! Yeah, we've been designing fixtures like that and have built some specialized automation to do so.

The fixture design can also be co-generated when we design a PCB in our system.

This will be even more lovely once you have a set of kid-friendly lessons that have the kids type up the code for a circuit for a simple toy, then submit and receive the toy in the mail in a week... inspiring a whole new set of designers.

The lessons could explain to them what components they are describing, why they are describing them and what they do - so as they code out the layout, they learn what/why/how - but then get to actually hold that which they made...

Seems like a logical next step (in addition to just being freaking amazing for all he 'adults')

I like that idea a lot. We've actually done a tiny HelloWorld project along more kid friendly lines - I'll see about writing it up (after demo day).

Great demos! Are you planning to release your design software for users at some point? As a fellow roboticist and tinkerer, I think this would be a great tool to have for simple circuits such as adapters which are way too much of a pain atm.

Would be cool to see the output design integrated with an interactive simulation and inspection tool such as [1].

[1] https://www.falstad.com/circuit/circuitjs.html

Love Falstad. We're hooking into Spice right now for simulations.

We will be exposing an interface online, but we're already up and running. You can drop a request on our website for an adapter board design. We like those. It's fun to see how fast we can do them.

Really incredible -- you've made something I didn't know I needed, until watching the demo videos just now. Can't wait to throw away the breadboard :)

Congrats on the launch!


When we were teaching an electronics design course at Berkeley, we were lucky to have a couple of desktop mills handy.

When we coupled JitPCB with the mills, we could completely sidestep the need for breadboards completely, even during prototyping. We went from code to fabbed board in half an hour.

Not entirely familiar with pcb design tools (still learning atm, so I have lots of stupid questions), but will this have vendor support data from a place such as digikey? Mcmastercarr has integrations for solidworks, etc

Can this tool completely replace the need for a breadboard for prototyping, or are there cases where youd still want to use one?

Will there be any WYISYWIG tools or do you have to write things in HDL/verilog/etc

Our tool can be configured to source parts from specific vendors, such as Digi-Key and Mouser, etc.

We plan to replace most of the needs for prototyping. But there is still about a 3-4 day turn to get your boards back from the fab.

If you have all the parts already lying around, and a breadboard handy, then you could get a breadboard design up faster than you could with our service.

We have Wyisywig tools internally for help during placing / inspecting the board shapes / verifying package footprints etc.

How does this differ from KiCAD though? Does it just automate steps you normally would do in there? Whats the purpose of exporting to kiCAD? Ive never used kicad

This automates what you would normally do in KiCAD (and more). We export to KiCAD, because it's a convenient way to view and edit the design.

Interesting solution! Aside from the glue component selection and placement, how does this stack up against an autorouter, like you find in a package like altium?

One aspect of board layout is maintenance/testing, so like test points and such and another is fit/finish for integration into a product (switch and button placement, etc). Does the system allow some guidance around placements?

The autorouter we use is on par with what you find in Altium. The one part that makes it actually work where most autorouters breakdown is the guidance and handholding our software can do automatically.

Yes it allows placements for whatever you care about. Specify a placement if you care about it, don't specify it, and the system finds the best place for the part.

I have some concerns about this future of relying on an "AI" to design PCBs.

1. Circuit board design shouldn't be easy and shouldn't be available to everyone. PCB's and the components used require a lot of natural resources. In my opinion, we should be reducing the waste and harvesting the resources from PCB's that are thrown away every day.

2. The flaws or bugs in your logic will potentially end up in your customer's products. This happens today, but typically on a smaller scale that can easily be traced to the root issue. How will your company handle the situation when faulty products are determined to be because of your AI driven logic?

3. I'm so tired of seeing "AI" as a marketable term. A bunch of code that is written by humans to do something is not AI, it's just software.

> 1. PCB's and the components used require a lot of natural resources. In my opinion, we should be reducing the waste and harvesting the resources from PCB's that are thrown away every day.

This is a good point that I'm not seeing a way to interpret as an argument against making PCB design easier.

> 3. I'm so tired of seeing "AI" as a marketable term. A bunch of code that is written by humans to do something is not AI, it's just software.

Software replacing skilled professionals seems to me to meet a usefully strict definition of "AI", but I guess that's somewhat a matter of taste.

Yeah, we know that A.I. is an overused term nowadays. But a lot of our techniques are taken straight out of AAAI proceedings. The problem is too hard to not take advantage of the latest techniques.

My first job was designing circuit boards using a software called PCAD, 30 years ago. It did a pretty good job with automatic routing for software running on a i386 PC with a couple MB of RAM.

This really looks great!

What about firmware(both device drivers and above), do you see that starting to become automated in the next few years ? How ?

Thanks! On firmware - yes it will be automated at some level. In the past we have co-generated low-level drivers to go along with the electronic design. It's pretty straightforward to do when you have the right representation.

We don't plan on generating code above the driver level. We just get it to an initialized firmware repo with example code (so you can poke/talk to everything on the board).

Congrats on the launch guys. What types of customers are you seeing most benefit from working with JITX versus other contractors?

Thanks! Hardware startups are seeing the most benefit right now.

We've recently found that we also benefit design teams at larger companies when we design test fixtures, adapter boards, etc.. Removing the distracting work so the layout team can focus on product.

Looks awesome, best of luck to you!

Just FYI -- getting a:

"Your connection is not secure

The owner of jitx.com has configured their website improperly. To protect your information from being stolen, Firefox has not connected to this website."

When hitting https://jitx.com/

Thanks very much for letting us know! For now https://www.jitx.com works fine. We'll have to take a look at our web configuration.

Fixed - thank you!

Not sure if propagation delays but -- not fixed for me. (Cert is configured for *.github.com.)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact