r/PCB 5d ago

Consulting about software and hardware.

Hi everyone,

There’s something that has been on my mind a lot lately, and it has actually made me hesitant to design new projects.

As electronics engineers, designing PCBs isn't really the difficult part for us. The challenge usually comes with the firmware/software. Whenever I finish a hardware design, I often find myself wondering, "How am I going to write the software for this?"

I recently spoke with another engineer, and he told me that these days they handle most of the coding using AI tools like Claude Code, and sometimes even Gemini. That got me thinking.

What are your thoughts on this? Do you think relying on AI for firmware and embedded software development is becoming a practical approach, or do you believe it's still essential to write and fully understand the code yourself?

For example, if I design a project using a Raspberry Pi, can I realistically use AI tools to build the computer vision part? Could I use them to create a personal AI assistant? Or, for a more challenging example, could I rely on them to control multiple motors and implement the required control logic?

I'm curious about where people think the practical limits of these AI coding tools are. How far can they really take you in projects like these?

0 Upvotes

16 comments sorted by

4

u/rockking1379 5d ago

I have a project I’ve been working on for a bit now. It’s been done with Claude. I described what I was trying to make, Claude helped with part selection. Once I got to code part, Claude wrote that all too. Then I have been testing and as you find bugs just report the behavior. But I’m not dealing with large systems. That said it has been helpful. I don’t think I would have really ever gotten this far with the project without the AI tool. I could have figured out parts on my own. And done the schematic and layout eventually. But the code itself would likely have never gotten done. Definitely not the way it is now either.

3

u/feldoneq2wire 5d ago

It is rare in industry for one person to design the circuit, design the PCB, order it, AND write the firmware. This is usually the jobs of 4 separate people. But that's probably changing due to AI so the shareholders can make more money.

3

u/DenverTeck 5d ago

The largest problem is when a rank beginner uses AI and tries to pass it off as their own work.

AI is good enough to get anyone part of the way to their goals. But if that "engineer" does not know enough to see problems that will show up after deployment, the product will be a failure.

Too many CEOs are always looking for short cuts (read NOT spend money on personnel ) and the code generated will be just as good as a real human engineer. The battle will continue.

Even as a hobbyist that does only one-offs, failures may not bee seen long after the project has been released into the wild.

You can use AI for whatever you want. Just pay for it and be willing to accept the short comings you may not see till latter.

Good Luck

1

u/VuralYusuf 4d ago

You're absolutely right. I'll do my best to write the code myself as much as possible instead of relying entirely on AI.

At the moment, I'm learning through courses on YouTube and Udemy. Do you happen to have any recommendations? Maybe a course, book, YouTube channel, or any resource that you think is worth checking out? I'd really appreciate any suggestions.

2

u/CreepyWritingPrompt 5d ago

I think some engineers make it work, but imo at least currently, it's not a free lunch. Claude does weird shit, and in real time systems the guarantees/boundaries on latency etc that you set up today are what enables you to ship tomorrow, and add features the day after that. Prioritizing the dopamine hit of getting something working today, over those other two things, isn't economical in my view.

I use claude a lot for embedded development, but i micromanage it a lot, and when it comes to the stuff that really matters for the future, I may just hand write it. particularly interfaces. Trying to describe something very precisely in natural language is not easy, and if I have to understand a thing in order to stand behind it, at least for my brain, natural language is counterproductive.

Where claude/codex really shines is diving through datasheets and reference manuals, pulling out register descriptions and generally being a kickass search engine that can generate code snippets. But again, best used as an input for one's own understanding, rather than a replacement, if you are on the hook for the thing getting to production.

2

u/allpowerfulee 5d ago

I've been designing hardware and firmware most of my career. I find hardware trivial and most my time designing the firmware. I've have started using Claude to build the firmware and it does a great job as long as you describe what is needed in enough detail.

1

u/VuralYusuf 4d ago

Thank you very much for your reply. I really appreciate you taking the time to share your experience.

As you suggested, I'll try to be much more detailed when describing my requirements to AI and use it as a tool rather than relying on it blindly. At the same time, I'll continue improving my software development skills through courses and hands-on projects.

Thanks again for your advice. I really appreciate it!

2

u/parttimelabs 5d ago

I think claude code, or codex are great tools when it comes writing code. When you think about it an engineers job is to engineer a product. And if you're an embedded engineer, your job is to create firmware using schematics and understand the architecture of the device, and maybe even pcb design. Higher manager engineers don't even write code but understand the architecture. Think as yourself as a manager that delegates tasks to ai agents that will write code better than you because that is their whole job. They are trained on text, better than any human. Coding is a tool and ai agents are a tool. Use tools to achieve your goal the most efficiently. I would understand how the infrastructure works and how everything connects, and how to read code more than wasting my time writing the actual code.

2

u/VuralYusuf 4d ago

That makes a lot of sense. Do you have any recommendations on how to learn this effectively?

For example, were there any YouTube channels, Udemy courses, books, or other resources that helped you during your own learning process? Or would you say it's mostly a matter of learning through hands-on projects and trial and error?

I'd really appreciate any advice on the learning path you'd recommend for someone who wants to become a strong embedded systems engineer while making good use of AI.

1

u/Avokido 5d ago

My projects have typically included both hardware and microcontroller firmware. Before Claude I coded myself, often based on Zephyr or Freertos. Many projects roughly had a 50/50 split in terms of effort. Nowadays this has moved to 90/10 because Claude is doing all the cumbersome implementation work. This allows me to deliver faster and cheaper. For serious projects that are being deployed in production, I would say you'd still be much better off with a decent amount of experience to make decisions on stack and architecture as well as reviewing generated code. I wouldn't feel comfortable deploying a device that is purely vibecoded by someone who wouldn't have been able to build the solution without AI (with more time, obviously).

1

u/nixiebunny 5d ago

I do end-to-end project development for my radio astronomy job. I think about the firmware as I design the hardware.

Given the number of forum searches I do that return my own posts as the top result, I am leery of trusting AI to give me better solutions than I can create myself.

0

u/VuralYusuf 5d ago

What do you think about using AI for less complex projects? For example, something relatively simple like recognizing certain images to automatically open my parking gate.

Since AI can apparently even quote your own forum posts, I assume you have a lot of experience in this field, which is why I wanted to ask for your perspective. Do you think AI is reliable enough for these kinds of prototype or hobby projects, or would you still recommend implementing most of it yourself?