Launch HN: JITX (YC S18) – Automating Circuit Board Design
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-con...
56 comments
[ 2.3 ms ] story [ 79.4 ms ] thread"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/
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.
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')
What about firmware(both device drivers and above), do you see that starting to become automated in the next few years ? How ?
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!
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.
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
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.
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 :)
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.
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).
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.
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.
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.
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.
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.
http://www.cryptomuseum.com/crypto/usa/kw7/img/cordwood.jpg
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
The fixture design can also be co-generated when we design a PCB in our system.
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 .
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.
How well does this software do in creating board designs that meet common government compliance requirements?
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.
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.
Your point about DRAM is well taken, and we'll hopefully have a job justifying that bring-up soon.
The concept looks great. I'm glad to see people working to automate some of the drudgery in EE CAD.
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.
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.
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
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.
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.
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.
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?
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.
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!
- 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.