Hacker Newsnew | past | comments | ask | show | jobs | submit | mikeayles's commentslogin


Reality happens faster than imagination!

If geohot is involved, it wouldn't suprise me if it was the first proof of concept for each new hardware variant.

Been working on this exact problem for a while now. The core issue isn't that LLMs are bad at circuits, it's that we're asking them to do novel design when they should be doing selection and integration.

My project (https://phaestus.app/blog) takes a different approach: pre-validated circuit blocks on a fixed 12.7mm grid with standardized bus structures. The LLM picks which blocks you need and where they go, but the actual circuit design was done by humans and tested. No hallucinated resistor values, no creative interpretations of datasheets.

It's the same insight that made software dependencies work. You don't ask ChatGPT to write you a JSON parser from scratch, you ask it which library to use. Hardware should work the same way.

Still WIP and the block library needs expanding, but the constraint-based approach means outputs are manufacturable by construction rather than "probably fine, let's see what catches fire."


> The core issue isn't that LLMs are bad at circuits, it's that we're asking them to do novel design when they should be doing selection and integration.

I don't want to detract from what you're building, but I'm puzzled by this sentence. It very much sounds like the problem is that they're bad at circuits and that you're working around this problem by making them choose from a catalog.

Try that for code. "The problem isn't that LLMs are bad at coding, it's that we're asking them to write new programs when they should be doing selection and integration".


I only had undergrad EE training so maybe I’m out of touch with what’s done in industry. But, I think most human engineers mostly don’t design novel circuits either. Chips come with specification sheets that have some reference implementations. So obviously somebody at the company designs that reference implementation, but I think most users stick pretty close to it…


Copy/paste (from reference boards or examples in the datasheet) is pretty common when starting a new design but if you don't then figure out what each connection and external component are there for and adjust to your application (or sometimes figure out the part won't work for you) then you quite literally don't know what you are doing.


That’s exactly how it has been working for me in code. I have a bunch of different components and patterns that the LLMs mix and match. Has been working wonderfully over the past few months.


At what level of abstraction does programming become a process of selection and integration?


Why get philosophical and not just deal with the reality that 95% of the industry are dealing with languages that just compile down to C? We are already at some of the highest levels of abstraction thus far in the history of the trade.


Are there examples of LLMs generating novel code? If so, who is it novel to?

Not trying to be a smart ass here, I’ve been keeping an eye out for years.


Maybe you can provide some examples of what you would consider to be “novel” code?

The proof of the Erdos problem the other day was called novel by Terrence Tao. That seems novel to me.


Everything is derivative of something else. “Novel” is a distinction for works which are minimally derived, but everything created is a remix of something else. Novelty is an illusion.


Are most circuits novel? I'd assume that there is enough out there to fit 80% of PCB design needs and sure it can still be bad at the remaining 20%.


That's precisely how LLMs work for code, yes. Were you not aware?


Sorry, could have been more clear, LLM's are great at architecting high level design decisions, but terrible at the nitty gritty - without better tooling (with the right tooling, such as https://flux.ai, they are capable!).

I even had Gemini hallucinate a QFN version of the TPS2596 last night, it was so confident that the *RGER variant existed. In an automated pipeline, this would break things, but giving it a list of parts to use, it becomes a lot more useful!


That is exactly what LLMs are good at for code


I think Altium tried to do something similar. A bunch of common blocks being able to just plop on the PCB, (auto) route few tracks and done. Failed because there was always something some client wanted to do, move, change or optimize for production run.

Module based design is cool for getting the prototype going but once you get into production you want to optimize everything so it falls apart quickly when you need to move the parts (not blocks, parts) to fit the least possible amount of space, cut components that could be shared (do 8 blocks on one board each with its own decoupling caps need entire set of them? Probably not). Fine for prototyping/hobby stuff/one off but falls apart quickly in production.

Still, having working prototype quickly that can then be optimized in more traditional way can still be very valuable.

> It's the same insight that made software dependencies work. You don't ask ChatGPT to write you a JSON parser from scratch, you ask it which library to use. Hardware should work the same way.

hardware optimising gets you far more money faster than software, because the cost of software not being optimal is mostly cost on the consumer (burning more CPU than it would if it was optimized), while for hardware each chip less is more money left in your pocket and there are actual size constraints that can be pretty hard edged vs software's "well the user will have to download extra MB more"


I think it's also that hardware costs are so easy to quantify compared to engineering labor and software dependency maintenance etc


This sounds interesting for quick prototypes, but tbh it doesn't map onto how most iterative layout processes actually work. At least in my experience. $0.02

However, I wanted to say that for a lot of common parts I find the Adafruit open source schematics to be at least as useful as the application layout suggestions in many datasheets. When it comes to regulators etc it's nice to see how they did it, because like your project, you really can approach it like a block.


If I understand what you are doing this sounds like a great idea.

For example a part like the ADS7953 ADC comes with layout recommendations, including the design of the ground plane underneath the chip and the placement of the decoupling caps. A more extreme example would be an esp32 and all of it's supporting parts, including the keepout area on the PCB for wifi transmission.

I really want to assemble circuits out of higher level primitives like that, drag and drop a chip and all of its supporting parts, including their layout and power connections.


So this isn't exactly putting pre-wired up blocks together, my intent behind phaestus is to essentially to get you from an idea to a prototype tangible product as fast as possible.

I'm targeting sub 5mins from first prompt to manufacturing exports, stl files for enclosure, gerbers for pcb manuf, bin file for firmware, bom for pcba.

E.g. if you wanted something that doesn't exist, but don't have the time, the skills or it's just not worth it. One silly example I had was a colour e-ink selfie fridge magnet. As far as I know, that doesn't exist, I could make it, but I can't be arsed. (so I could suprise my partner with a selfie, a picture of our dog, or anything, just a little treat for her for putting up with me).

With this, it'll pull in a ESP32-S3 Sense Xiao board, an e-ink module, a battery connector and a usb c charge connector. glue it all together, and there we go.

Should work if you wanted a rudimentary zigbee mesh communicator, pulls in a C6, a touchscreen, battery, probably a physical button or two. Once that block library starts filling up, it'll become more and more capable.

However, what I suspect you're after is more aligned with https://www.circuitsnips.com

I built circuitsnips to be the 'thingiverse' for electronics schematics.

Unfortunately it's been a bit neglected since so much of my free time has gone into phaestus, I did have great intentions to kicad up some official reference designs, so I can get rid of the github scraped bootstrap data as that was the sticky point both ethically and for the quality of the schematics, but there are only so many hours in a day.


Thanks for the link, that is very impressive.


This is conceptually interesting to me because I see this as almost a more generic TI Webench. I’m curious why your focus in the sized “grid” blocks (presumably for placement directly on the PCB layout) instead of doing the same but for the schematic. That way I still have the flexibility of laying out the board how I want to meet eg mechanical constraints instead of working around a 12.7mm grid.


I saw routing as equally as big of a headache as the schematic, so formalizing the layout to a grid means layout becomes a compilation problem, not a design problem.

My intent for phaestus isn't to design pcb's, it's to design entire products, and also to be friendly to non technical users who don't know what a PCB is, let alone do layout themselves.


This sounds very interesting, especially if you combine it for instance with an FPGA for logic blocks.


Thanks, as a concept it has potential, I've leveraged some of my previous projects www.circuitsnips.com for inspiration for the subcircuit blocks, TOKN for more accurate parsing of schematics, and to a lesser extent even my datasheet MCP server and kicad-netlist tool, more info at https://www.mikeayles.com/

For the time being, I'm erring away from feature creep, even though I really, really want to though! For the sorts of products I would like this to make for the time being, simple I2C, SPI and GPIO driven peripherals are the limit. I only have 2 more weeks, and then I want to have a working, battery powered device on my desk. PCB, Enclosure, Firmware, everything.

Similarly, I haven't got a framework for anything mechatronic in the MCAD pipeline, so no moving parts (besides clickable buttons). Fixed devices are fine, like screens and connectors though.


Is there a way to stay up to date with what you are doing?

It very much aligns with how I've approached hardware since I was 15 and had a massive stack of functional blocks of electronics circuitry that I would combine in all kinds of ways. I've lost the 3x5's, but I still work that way, build a simple block, test it, build another block, test that, hook the one to the other etc.


Feel free to star/watch the repo for the project at: https://github.com/MichaelAyles/heph

I may be able to set up an RSS feed for the blog if that interests you? edit: https://phaestus.app/feed.xml

There's a limited sign up currently on the site, which currently goes to an approval page. I don't think I'm quite ready for it to be fully open yet, as i'm paying all the inference, but I should be starting to populate the gallery soon with generated projects.


NP, I don't do GitHub (because MS), but I'll bookmark your pages and check back periodically. Please do post to HN whenever you reach an interesting milestone and feel free to reach out.


RSS feed would be helpful.


Done, https://phaestus.app/feed.xml. If there's any issues i'd appreciate the feedback, I haven't used an RSS feed in a while!


Seems to work, thanks!


I’m curious why you don’t target an HDL, which seems like it should match very well to llm capabilities, and rely on existing layout solvers for describing the last physical layout step?


This seems to be a discussion about board level circuits. HDLs are for chip design.

So far the language models aren’t great at HDL but I assume it’s just a training priority thing and not some characteristic of HDLs.


In a similar vein, I would recommend watching Cory Doctorow's presentation at 39C3,a post american, enshittification-resistant internet.

https://youtu.be/3C1Gnxhfok0?si=uKDlYn33IIYevj8p



As much as I am for freedom and hate that DMCI or whatever it is called the guy is delusional. Not because he propoese to repeal the act (I am all for it) but his ideas that one can have some profitable business doing circumvention and selling software / hardware that unlocks whatever one is trying to unlock. As soon as you try to sell one it will be hacked and released for free.


https://mikeayles.com

Mainly electronics, kicad and other nonsense


I think we are targeting different ends of the market, but I'm trying to do a full product development pipeline end to end. PCB, enclosure, peripherals, firmware.

https://github.com/MichaelAyles/heph/blob/main/blogs/0029blo...

I need to redo this blog, because I did it on a run where the enclosure defaulted to the exploded view, and kicanvas bugged out, either way, the bones of it is working. Next up is to add more subcircuits, do cloud compilation of firmware, kicad_pcb to gerbers.

Then order the first prototype!


Very interesting project! My understanding is that the circuits are human-validated hard coded modular blocks - is this correct? I didn't fully catch how PCB routing and placement is done. I haven't yet seen a credible from-scratch AI schematic design tool (though, admittedly, most of my projects are a mix of repeatable modules and custom circuitry... It would help to have a "known working" setup.)


For AI designed schematics, you need to check out flux.ai (and quilter for layout), I don't have anything to do with this, i'm a little jealous tbh, but having used it, it's not for me (but i'm making fairly complex, FuSa, type approved stuff, for the sorts of boards that would go into phaestus, it would probably be adequate)

I'm pretty in the weeds when it comes to this stuff,

First of all, I made https://www.circuitsnips.com/ , which is like thingiverse for circuits, so users can get bits of designs and copy and paste them into their own designs, but the reception was lukewarm at best, it needed bootstrap data, for which I scraped GH, which could have been a mistake, either way, for the tens of people using it, I think it's pretty neat!

Circuitsnips Blog:https://www.mikeayles.com/#circuitsnips-com Circuitsnips GH:https://github.com/MichaelAyles/kicad-library

So, then I created a fork of TOON, called TOKN, which is token optimised KiCad notation, which successfully compresses kicad schematic s-expressions by 93%, and is able to regenerate schematics from it. With the intention of trying to generate schematics, one shot them using frontier models, or even post-train an OSS model to see if that works, however when I benchmarked it, I could get 100% syntax validity, but the models hallucinated the components, the pins etc, so they would need grounding.

TOKN Blog:https://www.mikeayles.com/#tokn TOKN GH:https://github.com/MichaelAyles/tokn

Which brings me onto my next, next, (next?) side project: An embedded documentation MCP server!, Load in your PDF's, it parses them and puts things into a sqlite db that the LLM can interact with more efficiently. I mainly use it for writing hardware abstraction layers for chips that have terrible vendor support (looking at you, NXP KEA128). Honestly, everything about this chip is awful, even the GPIO is laid out terribly, it's like the meme where everything gets put in the square hole. PORTB? nah, you need to do PORTA + 16. Anyway...

Bitwise-MCP Blog:https://www.mikeayles.com/#bitwise-mcp Bitwise-MCP GH:https://github.com/MichaelAyles/bitwise-mcp

And if you've read this far, here's a little treat:

https://www.mikeayles.com/#kidoom-featured


Yep, exactly. I'll do another blog when I have a little more to show, but the concept is, everything is on a grid of 12.7mm squares, where there is a common bus running through north-south. The boards need to be 4 layer and feature size is pretty small, 0402 passives for example, maybe even 0201 if I'm really optimising for size.

SCH: https://github.com/MichaelAyles/heph/blob/main/blogs/0029-im...

3D bottomside: https://github.com/MichaelAyles/heph/blob/main/blogs/0029-im...

In the Phaestus workflow, it chooses modules, for example the main cpu block just has an ESP32C6-XIAO board on it, since it has massive compute, and radio with wifi6 and zigbee, which covers 90% of IOT. Since this is larger than 0.5" it sits in the middle of a 2x2, which bridges both sets of north-south buses, with all common pins.

Bidged pinouts: https://github.com/MichaelAyles/heph/blob/main/blogs/0029-im...

Early XIAO: https://github.com/MichaelAyles/heph/blob/main/blogs/0029-im...

It's been a pain in the butt to design for, since the vias need enough clearance, and we are almost maxed out on our bottom side, so on the 2x2's i've given it as much room as I can in the middle to allow for topside routing with a few vias.

Then, when assembling the board, it does a 0.1mm overlap n/s, which merges the nets, whilst the system keeps track of what signals are used, so I2C is all multiparticipant, spi1 gets the default CS line, otherwise it can use the aux pins via a resistor selector, the AUX5/AUX6 aren't connected to the XIAO, so if you wanted to do something like a USB power monitor, the power can run isolated at higher voltages, as long as they get fed through a current/voltage sensing block, which could be 1x1, 1x2 or 2x2.

As for component placing in the enclosure, buttons are sub-boards with a wire-to-board connector, and the 1x1 module is a block that contains a connector and an PCA9570, which allows the button to be placed anywhere with defined mounting features.

Similar for LCD's, the pre-designed block has a FFC connector, and comes with constraints, e.g. place at end of design, so the screen can fold back on itself, whereas if it was mounted in the middle, it wouldn't be able to go where it needs to be.


Most washing machines use a wax motor to lock the door, it heats up wax to cause it to expand when it melts, which drives a pin. They're fairly failsafe as if you kill power, they will open no matter what.

Latching relays/(technically solenoid) could be driven on/off fast, the downside is in a power cut or an emergency, the relay wouldn't release unless specifically driven so.

So the third option is a momentary solenoid, which would need to be powered the whole time the door is shut, and they require a surprisingly significant amount of power. Typically 10-20w. Negligible when it compares to the KW+ heating elements, but they do add up for the energy ratings..

Fwiw, I currently have a haier, which does have one of the second options, and opens immediately after a wash and it's amazing. Can't go back.

But, wax motors continue to be used because they're just the right tool for the job.


You can still buy machines without the lid lock. They use an alternative design that can stop motion quickly enough to meet safety standards. I can open the lid on my washer in the middle of a heavy spin cycle at max RPM if I want to, but it will brake aggressively and come to a halt within 1-2 seconds. Being able to add laundry mid-cycle without asking permission from the computer is really nice.


Well thanks for that rabbit hole. I was hoping the dingus was the actual term, but sadly not.

For anyone needing some pub quiz trivia, a lower case g has the top half which is called the bowl, the bit top right is called the ear, then the bottom is called a loop tail when it's closed, or just a tail when it's open, and is joined by a link.


Have you checked out circuitsnips and kicanvas?


I did check kicanvas, but I didn't know about circutsnips, I had the same idea for years! It's great!


I'm currently working on something that lets you describe a hardware product in plain English and get actual manufacturable files out — PCB, enclosure, firmware, the lot.

Very early days still. Whilst I created a fork of toon for Kicad (called TOKN (https://www.mikeayles.com/#tokn)), with the intention of using a reduced token format to generate schematics using LLM's, I could get the models to follow the syntax correctly, but they didn't have the knowledge. So I was then going to create a whole RAG system, but got distracted by this current project.

There are people out there doing AI schematic generation, like flux.ai (which is incredible (and incredibly well funded)), but 90% of products, especially at proof of concept stage, are basically a microcontroller, some power, probably usb, and some IO, bluetooth/wifi if you're lucky. So we can use a library of pre-validated subcircuits and slots them together on a grid. Routing's deterministic, so if it compiles, it works. (sorry, deeppcb & Quilter!)

The enclosure side is more fun: once the PCB's done you've got real dimensions to work with (board size, mounting holes, where the connectors poke out), so I use an image model to generate some concept art, then feed that to an openscad generating model as visual inspiration alongside the hard constraints.

Basically trying to get a full hardware product pipeline done automatically.


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

Search: