Hacker News new | ask | show | jobs
by karmicthreat 21 days ago
Adafruit probably did a review of AI PCB tools. I've used Flux.ai before; it was a pretty bad experience. After about 50-100$ in tokens a couple of times, I couldn't get more than a couple of simple components on the schematic. And not in sensible positions.

The product just grinds tokens for little return, in my opinion. I had far better luck wiring together KiCad MCP, SKIDL. There are some AI-driven autorouters out there now. Placement is probably the big issue that needs to be solved now. I could only get about 80% of what I wanted together with my hacky workflow.

9 comments

This is exactly my experience, wasted $60 trying to get it to make something. The founder sent an automated AI email about setting up a time to meet and go through it then ghosted me at the meeting time.
But at least their priorities are in order. How do you overcome those showstopping challenges & have more time to meet customers?

Lawfare!

Yes but look, they set up meetings so they're listening to customers, like all good founders /s
> There are some AI-driven autorouters out there now. Placement is probably the big issue that needs to be solved now.

Interesting that within an IC this is basically "solved", or at least properly automated with classical numeric techniques such as simulated annealing.

I would have thought there's a big opportunity in a mixed-technique approach, where you use AI to extract unstructured data from datasheets and then feed it into more deterministic tools.

I also note that it's very easy to waste more than $100 in electronics once you start actually manufacturing bad PCBs.

> mixed-technique approach

I think my biggest annoyance with the way we rolled out AI is that nobody seemed to want to use it to augment already working solutions.

Just throw everything out and have an LLM do it instead.

I've been frustrated with Copilot in this regard.

I work on a large C++ codebase, with large files. Human developers jump around between files with the Visual Studio fuzzy search, set breakpoints to trace execution in the Debugger, use the IDE's refactoring tools.

Microsoft's answer to this was to just ... expose none of this to their Agent Mode!? Replace the working semantic autocomplete with fucking lies!?

Maybe it's changed, I haven't been paying that much attention after bouncing off of this. I've gotten mild acceleration from using gptel-mode in emacs, manually adding references to context, and having models do various mechanical transformations on code. And I've even had some limited success writing tools for it to do LSP lookups.

It frustrates me too, it really feels like the next breakthrough will be when someone gets agents working "natively" with LSP on large code-bases.

Anthropic added LSP support to claude-code, but the current implementation is worse than useless, because any changes aren't reflected fast enough, so it's constantly working on outdated views / compilation caches, and it gets in a right muddle between its "internal" state / understanding in context, the real-world file, and the LSP.

If it could just leverage LSP to apply refactorings it would be amazing, but it feels like the LSP can't keep up, and I don't know if that's an LSP problem or a claude problem.

So we binned the LSP plugin and we're back to watching a machine find/replace, because while waiting on that is slower than LSP, it's a "Action => Wait" which the tooling understands, while LSP is "Possibly Wait for LSP to catch up => Action" which it doesn't understand nearly as well.

I suspect the LSP plugins also need better skills that pair with them so it reaches for them more often.

It hurts my soul to see it reach for find/replace to rename a class, complete with mistakes made in complex solutions where you might have name clashes in different namespaces. Something the LSP handles without problem, but can trip up an LLM.

I wonder, is the problem here that LSP is updating too slow all the time? Or just that there’s a chance it will update very slow, and you never really know if you’ll hit that chance, so your model always has to do the “long time wait” just in case? It seems like it ought to be possible for LSP to report that it is still processing, in the latter case, somehow…
I'm not an expert, but my reading of the spec is that LSP can handle generic $notifications, but there isn't a specific standard for readiness reporting beyond "Initialize / Initialized", which isn't suitable for monitoring on-going staleness or readiness post-file-detected change, the spec has that as a single first-time initialization.

There are notifications (i.e. `textDocument/didChange` ) that you can send to the LSP to help it along, but again you might end up racing the notification from the client making the change and any file-watchers you might have running.

I suspect the answer will come in the form of some kind of more powerful LSP implementations with generous memory caches so that disk changes are just another buffered input that can be disregarded if already stale, no longer seen as the source of truth, and the LSP becomes the real source of truth, so everything can coordinate through it, operating mostly out of memory.

Another avenue for better success will be more research into faster compilation and better incremental compilation for languages with slower compilation.

Maybe one day we'll even get AI agents directly manipulating syntax trees, and the code to get there being written back as merely a side-effect, but that seems like sci-fi compared to the current state of play. LSP is still very document based, and of course LLMs are also trained on oodles of source.

Oh-my-pi work nice with LSP, better than the others.
I work in Unity and I got frustrated with Claude constantly doing gross bash/grep/awk/sed/grep nested loops that took forever that I finally described (and had Claude implement and install) a tool that could, in a single pass, gather all this info from a Unity forest of scenes at once and answer all the questions Claude ever wanted to ask about a Unity project in a single pass that takes 50ms instead of 10 30 second iterations. It still took a lot of coaching to get it to actually use this tool, but it seems like I’ve convinced it.
Haha yep I’m experimenting with Unreal engine and Codex and it spent 10 minutes while I was AFK confidently trying to build a scene. I load it up and fall through the world. I say “can’t you write a tool to screenshot so you know you’ve done a reasonable job correctly?” and now it does that.

It reminds me of working with a junior dev and he was pushing his code to dev, then waiting for it to build for every update because he couldn’t get it to build locally. 5 minutes of my time fixing his config surely saved him hours over the project. He wasn’t a bad dev either!

You have to do a lot of the meta thinking for the agents, because they’ll take an “everything looks like a nail if you have a hammer” with their toolkit.

Writing an entire local generated asset pipeline using flux and hunyuan3D-2.1 was a really fun experience. I’ve done software for years but never game dev and it’s just so much fun even if it’s junky little games to impress my kids and get them involved in the creative process.

if it helps, I've found that using context (Claude.md etc) is way less effective for this type of pattern compared to using PreToolHook to capture "bad patterns" and either transparently rewriting them to "do the right thing" if that is possible statically, or if not then rejecting the tool use with a message that tells the agent "how" to use the intended tooling itself.
and/or write a skill
Shouldn't it be possible to simply state in the contract to use that tool only? I've had good success with that in my coding.
Sure, but it turns out it isn’t guaranteed to listen. :)
tool_call is just a fancy wrapper to a black box that executes console commands. Said commands are now the actual backbone of all agentic AI, It feels like the linux people are incredibly vindicated in the single responsibility principle
Codex did take control of chrome to run a skill I’d given it for a website without an API the other day. It can do it but it’s excruciatingly slow compare to the tool calls for sure.
My pet peeve: Whenever I type

    MyModel.obj
and wait when working on a Django project, Copilot completes it with

    MyModel.objects.all().delete()
I recently saw a Claude skill that used Claude, with no tools, as a spell checker.

I wanted to hurl my laptop out to the window.

Isn't this pretty much why language models were invented?

Pasting something directly into the chat interface seems weird, but if you could somehow just see where P(token | context) falls off a cliff, that's a pretty good hint that your writing has problem.

Yeah, but for this use case you don't need Claude. You probably want a tuned lightweight small model that can run locally.

Even Haiku is massive overkill for this use case.

I've done it to check transcriptions of handwritten 19th century Quebec French. Is there a dedicated spell checker for that?
What would be a better way to incorporate AI as a spell checker?

In comparison to non-AI traditional tools, AI has the advantage of "understanding" the text, reducing the number of "stupid" mis-corrections. And its spelling correctness is usually already impeccable, so what is there to gain by interfacing it with traditional solutions, and how can it be achieved?

> What would be a better way to incorporate AI as a spell checker?

Don't do a stupid thing like that in the first place.

> In comparison to non-AI traditional tools, AI has the advantage of "understanding" the text, reducing the number of "stupid" mis-corrections.

I doubt it, but if that's true, run a normal spell checker, and then give the output to your LLM to filter.

> what is there to gain by interfacing it with traditional solutions,

About a billionfold improvement in compute efficiency, and a lower error rate.

> and how can it be achieved?

10 seconds of actual thought.

AI can’t really spell check without risking changing the meaning of sentences. Spell checking was a solved problem before this.
Spellchecking is absolutely not a solved problem. I immediately disable spellchecking on every avenue it tries to approach because managing a bunch of dictionaries on every browser/device/application that has its own spellchecker for some godforsaken reason to not have squigglies spammed over every piece of jargon, slang, and slightly atypical spelling is incredibly annoying. I don't know how effective LLMs are, but it's difficult to imagine they can be worse than the existing regime, which is embarrassingly bad for the decades it's been around.
Only if the problem is declared to be whatever it is that spell checkers solve. As the classic joke goes, "Me spell chucker work grate. Need grandma chicken."
If it's a solved problem, then why does my iPhone suck at it?
Strong disagree. One of the core strengths of LLMs from the beginning is that they are very good at NOT changing meaning, as long as your model isn't so small that it starts to get "dumb" and as long as your input fits in the context window. (Two known limitations that aren't always exposed to the end user in poorly-written applications.)

Of course, LLMs are non-deterministic and do occasionally make mistakes, so you have to use them correctly and review their output. You shouldn't paste a doc into the web UI and tell it "fix all the mistakes and write the output to a new file." You should instead have it present each mistake and fix to the user as a diff and let the user approve or deny, either within the application or allowing the user to make their own edits. Never let it "rewrite" the whole document, that's the document-editing equivalent of giving OpenClaw root on your personal computer. Nothing good will come of it.

Classic spell checkers can't detect homophones. E.g. "there" and "their." Grammar checkers can, but at least the ones that I have used also like to change the tone of my writing to sterile corporate PC speak. LLMs used for grammar checking have not, in my experience, meddled with my tone. (Although sometimes they try to admonish me for it!)

>What would be a better way to incorporate AI as a spell checker?

You just don't need AI to do spell checking. It's a waste of energy, bandwidth and tokens. It's like Java Enterprise Fizz-Buzz - 1000x more complicated than it needs to be and complete overkill.

But at least you can tell your manager you're using AI!

AI certainly is the shiny new hammer, and it is tempting to see the world as nails.

Traditional methods might not be perfect, but they also easily fit in the memory of even low power devices. Perhaps it isn't a problem worth burning a dollar of tokens for every spelling mistake.

The fact that it produces correctly spelled words says nothing about it’s ability to find spelling mistakes or to correct them without errors like completely changing the word.
You mean errors like misusing "it's" when the right word is "its?"
I am skeptical that AI brings any benefit to spell checking at all.
I swear that so many AI usecases I see are: "I did not have the skill or realize that you can write a program for this obvious logic".

I guess that works if you aren't a programmer or don't want to hire somebody, but then wtf would I pay for your service or product?

This type of laziness isn't novel.

Check out left pad or the two dozen other "utility" packages that could be done in a single line of code.

> nobody [wants to use AI] to augment already working solutions

Plenty of people do, but that only produces a blog post that will get you to the front page of HN. If you want VCs to drop $40M on your head, you need to pretend to reinvent the world.

Then, to further appease the rain gods, you need to sue the bloggers on the front page of HN who are challenging your world-changing narrative. Which will, heh, drop you on the front page of HN.

Our community is, literally, eating itself at this point. There was a time when we actually took "make something people want" literally. Now it's just part of the fiction.

Something something bitter lesson blah blah

I think the bitter lesson is severely misapplied in the current situation: If progress from "just add more resources" is very slow, and a huge amount of money is at stake, continous work on hand-engineering can give a continuous and very valuable competitive advantage.

The labs all seem to be going for AGI through bigger LLMs, and I am reasonably sure that it's not going to happen like that.

> The labs all seem to be going for AGI through bigger LLMs

I don't know if this is still the case. Labs like anthropic and openai are spending a huge amount of their time on custom model wrappers. Something which they used to leave to their customers.

Hey man, speak for yourself.

It's never occurred to me to even try getting an LLM to design or layout a circuit for me.

Instead, I have dozens or hundreds of chats in my history where I debate the merits of different parts for different tasks and scenarios, the nuances of decoupling strategies (package size vs deregulation), work out resistor network ratios from the reels I have on hand.

Then being able to feed an LLM a datasheet and have it write a custom driver against the registers I need so that it does exactly what I want without the cognitive overhead of a buggy package with someone else's strong opinions about how a part should be used is amazing.

Frontier models are incredibly good at electronics, and it's got nothing to do with what happens inside the EDA.

Design, no... but I've definitely thought about letting one route traces... while autorouters work, I was hoping Claude could do matched traces better. At the time, it didn't want to generate the kicad pcbnew file though. /shrug
Everyone is different, but board layout is one area where I aggressively don't want any LLM input until such a time as it is as good at board layout as it is at refactoring code.

We're still a ways off from that, and that's likely because board layout requires a much more nuanced perspective of the enclosure shape, power requirements, heat dissipation, RF...

It's really not about placing ICs with caps nearby. I actually really enjoy that part anyhow. That's the fun part!

A few days ago someone on HN commented that a teammate uses Claude to search for text in files on their own computer. Buddy... There's Command-line Tools Can Be 235x Faster Than Your Hadoop Cluster and then there's Command-line Tools Can Be ∞ Faster Than Your AI.
As snark, I've been using the phrase "ask GPT about it" for things that clearly do not need an LLM to be involved. The other day, I was on a zoom call and said it, only to see the present actually doing it. I hope my unmuted laugh wasn't too distracting.
Way too much engineering effort to make something that might get leapfrogged by the next gen LLM.

It's a tantalizing thing, but far too treacherous to actually go for it, most of the time.

There are many domains where a hybrid of numeric and AI approaches would make sense. For example in those domains where there's already a rich practice of numeric tools such as with IC layout.
If its any consolation: once we've burnt the last crumb of coal, the last drop of oil and last bit of natural gas to fuel the AI overlords, that particular problem will take care of itself.
> augment already working solutions

That's exactly how I use it, but I'm just a geezer on his own, writing free software for people that can't pay for it.

Annoying, but not surprising.

The future is using AI to do everything, and nobody gets funded saying they're taking a small step forward.

That precise mixed technique approach has worked well for me. I’ve been using JITX (python based circuit design with a powerful auto router). Free for personal use, and has been discussed a few times here in HN.

Edit: it’s almost assumed at this point but for completeness Claude / Codex were the ones driving the OO python code and datasheet research and parsing.

https://www.jitx.com/

Can you elaborate on what you mean by “it’s almost assumed..”? I’m actively working on datasheet parsing at scale at Zenode.ai, and I haven’t read anything specifically about this…
I sloppily glommed a lot together there.

The pdf parsing was certainly the least mature capability of those that I mentioned. Got decent results with the pdf parsing tool that ships with Claude (desktop) but ultimately wrote a subagent definition to help with pdf parsing. I found myself sticking to vendors with the most parseable (or ideally html) datasheets formats TI, AD, Microchip all fine - but I did learn to love Wurth Elektronik. I looked into doing a custom RAG solution for this.. docling etc. to smooth over things like tables split between pages, Figure reading. Ultimately found their team to be responsive on discord and figured they have every incentive to solve this for me by the next time I find time for a hobby electronics project.

Generally the llms were awesome at discovering the chips I needed (with a few hallucinations promptly uncovered - like a TI mux chip which didn’t exist in the automotive grade designation for that package) without a doubt shortened my search and design development time by some large factor. I remember some AWESOME solo distance driving where i voice chatted with GPT 5x doing thinks like picking the right RS485 driver ic and microcontroller pairing without needed to wade through datasheets

The python is less in need of explanation I’m sure

Until a few years ago it was generally understood that useful "creativity" involves solving problems within constraints, e.g. something a lot like SAT or SMT in spirit even if not in the details.

Then we got LLMs which will make a good parody of anything and occasionally get it right.

It is far from solved in IC, synthesis tools sometimes still do really stupid things and there's still quite a lot of hand-holding required to get to a working chip.
And LLM are even stupider and need even more hand-holding

The right use of AI would be to use it to create a better routing/synthesis tool, but that's not what is being worked on

Within an IC you don't have large obstructions for metal layers, distances are short, and buffers can be inserted at will to manage SI.
It has been about 20 years since I worked on this (clock gating and clock buffering), but ..

> distances are short

I remember we had a catastrophic error for "wire longer than 2cm".

> and buffers can be inserted at will to manage SI.

Effective buffering of large nets was a massive pain. Areas where you want to buffer are inevitably areas with a very high level of placement congestion. So you push some cells out of the way to add a buffer. That ends up worsening their timing. So they need a bit more sizing/buffering. Rinse and repeat for a few hours.

( https://web.archive.org/web/20071028033035/http://www.edn.co... ; long since absorbed into Cadence)

> After about 50-100$ in tokens a couple of times, I couldn't get more than a couple of simple components on the schematic.

Is this common? When I try out new AI tools, even as person who is financially independent, I load up maybe 10-20 USD worth of tokens, and if I don't get anything working from that, I literally give up and don't continue trying. If it can't do anything useful like "place a simple component on the schematic" after ~10 USD of expenditure, is it really worth continue adding more money into the platform? Seems DOA in those cases.

I used company money on it. I was hoping I could massage it along enough to get a workable test fixture out of it. I wanted to put together a simple hardware-in-the-loop tester for a component of our product.
Someone should’ve told these guys: https://news.ycombinator.com/item?id=48337328
I tried this last week and had the same experience. It was terrible and they got $140 out of me before I realized what it was (not) capable of. Their support was nonexistent as well.
All of these Gen AI tools where you pay a subscription fee are basically Software-as-a-Casino. You spin the wheel and hope it doesn't come up 00, then chase good money after bad when it does. Add in the parasocial relationship that some people develop with the LLM and you basically have OnlyFans but instead of vaguely dissatisfying feet pics to order it's vaguely dissatisfying code to order. It's that edge of "almost there, just one more token, bro" that makes it addictive.
That might be the right analogy except it is not clear that it is a house always wins situation.

If you have a .6 chance of success on any particular outcome. Long term win or loss is down to your behaviour. If you double or nothing every time loss is guaranteed. The right strategy will win over the long term.

Gambling addicts make all kinds of post-hoc rationalizations for why they are actually up, if you think about it. "Well, if you consider my entertainment, I'm actually up." "Well, if you think of all the drinks I got comped, I'm actually up." Even worse are the ones who talk about runs, "I was up $10,000 at one point." Nevermind they gave it all back and another $20k chasing that first $10k. At the end of the day, if they had just gone to the movies instead, they'd have more money on their pocket.

Same with most people "doing a startup" or "opening a restaurant". There will be arguments all day long about how these affairs are technically possible and quite lucrative if everything goes according to plan. But the reality is that vanishly few people are equipped to identify and stick to the right plan. Reality meeting theory.

I've told my developers they can use agentic coding if they want, but they must never mention it in the course of development. Not because I don't want to know, but because it's not going to change my evaluation of "their" work. If they can use the AI and get to a point that they can submit a PR that they themselves understand, then technically speaking, what do I care? But if it breaks the build or does something stupid and they don't understand it, it's going to be a bad day for them, whether they wrote it themselves or copied it out of StackOverflow or had Gemini do it.

Nobody has taken me up on this offer, because I think they know that they aren't going to have the extreme discipline to do the hard thing of understanding "someone" else's code and sign their name to it.

> Same with most people "doing a startup" or "opening a restaurant".

While I mostly agree with your sentiment, I think there is an important difference. Unless you are attempting advantage play (99.99% of gamblers are not, and casinos ban the few that are), there is literally nothing you can do at a casino to make it a positive EV activity. No amount of skill, drive, effort, or anything other than pure luck can consistently generate profit at a casino.

A startup/business, on the other hand, can be effectived by your actions. Luck obviously plays a large factor, but you have some level of control over the outcome.

I don't think it really matters all that much if the restaurant's success can be attributable to skill at a 2% or 4% rate or whatever. For all practical purposes, since you only get one or two shots at doing that kind of thing in a lifetime, your chances are practically 0. You don't have the infinite resources to make 5% all-or-nothing return work. Focusing on the math aspect is ignoring that people are not mathematical creatures. The math is not used to analyze, it's used to justify, to construct a story that folks then use to delude themselves into believing. I can be a great poker player. I can run tight margins to make a restaurant work. I can use cocaine and not get addicted. I'm special.
> If they can use the AI and get to a point that they can submit a PR that they themselves understand, then technically speaking, what do I care?

This is where my employer has ended up after extremely cautious AI adoption: _must_ be reviewed by a human, and the human whose name is on the gerrit review is responsible for the quality of the work.

For some reason the OpenAI dashboard shows me how much money the company as a whole has spent? It's still a very reasonable-looking amount of money and a tiny fraction of salaries.

That doesn’t seem “extremely cautious,” it seems… exactly the right amount of cautious. “A computer can never be held accountable” and all that.
I am actually up all the drinks I got comped in Vegas. I sit down at the penny slots and bet one penny one row until I get offered a free drink. I tip the server $3, bet two more pennies for good measure, get up, and walk out with the drink in my hand. I just got like a $3.10 Manhattan for walking around the strip, including tip, courtesy of some business that was low-key trying to scam me and deserves to have less money than they do.
The casino runs the probabilies on the customers too. You get the Manhattan because it, on average, gives them a return.

They probably aren't making a loss on the $3.10 Manhatten either.

I not sure what crap casino you're going to, but there are no penny slots in Vegas.

https://www.casino.org/news/vegas-myths-re-busted-the-end-of...

> Nobody has taken me up on this offer, because I think they know that they aren't going to have the extreme discipline to do the hard thing of understanding "someone" else's code and sign their name to it.

That seems lazy to me. "I'm not willing to see if I can do a better job by using this tool, because I don't want to bother analyzing it's work".

If they cannot mention it how do you know that they have not taken up the offer?

I agree that people will rationalise being in a losing situation as a winning situation. That does not change the fact that winning situations can exist.

They can't talk about it during the code review. Basically, "no excuses." We talk about what we're doing otherwise.
And it works. It fucking works. It's the same reason every game has lootboxes.
> I could only get about 80% of what I wanted together with my hacky workflow.

I literally did this yesterday with solid results using Codex CLI. I used xhigh thinking and gpt 5.5.

I had it use KiCad directly via cli rather than via MCP, and I did make Claude Opus review it's work after every round. I got what I think will be a working revision A in about 10 hours of tinkering spread over a few days.

Is 10 hours a short amount of time for designing a PCB?
I'd honestly love to see the PCB. Using an LLM for a mostly geometric task like PCB layout feels like using a hammer to cook a chicken, unless KiCAD has some kind of text-based description language i'm not aware of that gets around having to specify coordinates.
KiCad schematic and board files are all text based with a fairly strict grammar, so you would be able to feed it directly into an LLM. Not that that means the LLM could actually make sense of it. Never tried though XD
Faster than some, slower than some.

PCBs come in all different levels of complexity.

> Placement is probably the big issue that needs to be solved now.

Would some sort of constraint-solving algorithm help with that? Something like (but not necessarily) Cassowary[0]? Maybe I'm misunderstanding what is meant by placement though; I don't have much domain knowledge in PCBs / electronics.

[0]: https://news.ycombinator.com/item?id=43362528

I've written my own autoplacer/autorouter. Placement is where you put the components on the board, routing is how you shape the traces to interconnect them.

It does a pretty decent job on small hobby-project boards of ~40 components (which is my use case at the moment), and I'm working part-time in the background on scaling it further.

The resulting designs pass all the KiCad electrical and geometry checks. Granted, I've spent about a year working on this problem, and it's hard, but not that hard a problem, providing you can avoid falling off the exponential cliff by decomposing it into hierarchical subproblems.

Quick-and-dirty unsupervised whole-board synthesis from schematic takes about 5 minutes, longer if you want cleaner output with nicer-looking better-routed traces.

As others here have said, placing is the real problem to solve, and that's where the magic happens. Place the components right, and routing is a relatively easy loosely-coupled constraint programming problem, place them wrongly, and you will have to get used to seeing the word UNFEASIBLE in your log output.

This project sounds very cool. Is it open source? If yes, can you share a link to the repo?
That is fascinating. Thanks!
We work on this a lot at tscircuit, and we've used cassowary (i.e. flexbox-style) constraint solvers. The issue with cassowary/flexbox is PCBs are not as uniform as webpages w.r.t. alignment, and often have a much less nested structure (3 layers) vs web pages which have many many nested layers. CSS grid-style constraints are a much better fit IMO, but we eventually settled on sequential optimal packing[1] for "seeding" a placement so that AI can get initial positions before working in a feedback loop. I like sequential optimal packing because it's very very deterministic and the constraints are specified pretty close to how a human would specify them

[1] https://blog.autorouting.com/p/sequential-optimal-packing-fo...

The first thing that came to mind reading it was "backtracking". Which I guess is the recursive pathfinder piece?
Same for my experience.
That's more money I have paid for (real) software (that are not games) in my entire life.
Legal counsel typing intensifies.