I can speak from experience here (I’ve been around small-scale electronics design/manufacturing for decades via my father’s business and was hands-on with it on an ag-IoT project for about 10 years).
The limiting factor in electronics/PCB development and manufacturing isn’t engineering expertise (there are plenty of sufficiently competent electronics engineers in the world, especially in Asia), nor parts/materials or assembly costs. It’s the endlessly laborious grunt work of testing a design and making minor improvements until it is finally ready for volume production. That process can easily take a year or two even for a fairly simple design. Even a really skilled/experienced engineer can make a simple mistake in a schematic or PCB layout, which only gets picked up weeks later when prototypes are assembled and tested, or even later when a batch has been made and shipped to customers. So, each design-assemble-test cycle takes weeks/months, and each testing/diagnosing/repairing session takes hours or days. And it mostly has to be undertaken by degree-qualified engineers or experienced technicians.
And that’s mostly before you’ve written all the firmware, which is incredibly laborious in its own right.
The outcome is that only very large companies with big sales volumes can afford to do it (or niche players able to sell at huge margins, most commonly in defense or medical industries).
Outside of those sectors, it’s now just not really viable to be a small-medium business selling moderate volumes of units anymore, the way it was in the 80s-90s. I’ve seen it up close in agricultural IoT. There are no big/dominant players (customer needs are too heterogeneous and distribution is so hard). There are many small vendors, but they find it hard to make products that work well and that customers love, especially at a price point most growers will go for. So, no vendors are big commercial winners and not many customers are very happy - even though there’s a great need for technology in this sector. And it’s really not because the vendors and their engineers are incompetent; it’s just really hard.
With AI to take care of so much of the grunt work involved with circuit/schematic design, PCB layout, pre-manufacturing verification, testing, and firmware dev, it’s realistic to me that you could cut down on R&D costs by 90%, make it much faster to get products onto the market, and make it possible for so many more high-quality niche products to be commercially viable.
Unfortunately, my experience has been that it's the endless cycling with customer requirements that takes all the time.
The hardware is generally manageable quickly for me. Even th firmware isn't terrible.
And then you deploy it.
And the customer realizes it needs to do Q and that they asked it to do X and it doesn't need to do that and we need to take another $0.50 out of the BOM and ...
And then 4 years pass and you still don't have any real revenue.
There is a reason why so many places demand NRE of $1 million minimum and THEN they'll talk about designing your project.
The big gap isn't scaling. It's the scaling PATH. You need to have a viable and profitable path all along AS you scale from tens to thousands to millions. And those projects are VERY rare.
See: BeatBuddy for interesting post mortem and note that AI wouldn't really have helped them much at all.
I don't understand your argument. PCB design is not that hard you can learn how to do it in a month or so. JLCPCB can print (or even assemble) PCBs for next to nothing. Irrespective of AI it seems easier than ever to produce prototypes right now.
Yes, you can learn PCB design “in a month”, design your board and get a batch of prototypes made up by JLCPCB. All of that takes 2-3 months absolute minimum. Then you have to test the boards. You need a lot of costly equipment and expertise to test the board and fix any problems with it. That can take days to weeks of work. Then ordering your next batch of prototypes carries a 2-4 week turnaround time including shipping. Repeat this for any design error or just any improvement you want to make once you’ve tried working with it for a bit.
Then you have to write the firmware. That’s weeks or months of work. (And much of the embedded firmware code I’ve seen come out of small business engineering departments or consulting shops is terrible, because they don’t have the time/budget or organizational structure that delivers clean, readable, well-structured, well abstracted C code.)
All this is before you get an MVP into the hands of your customers. Then you start getting customer feedback and have to start making more improvements.
“Never been easier” it may well be to get a hobby project prototypes. But for a product with any amount of serious functionality, it’s at least months and likely 1-2 years to get anything into volume production.
But the potential for saving huge amounts of time particularly on design/layout, pre-manufacturing error detection, and production of well-structured and debugged firmware code are huge.
I don’t know why you need to be snarky. I’ve been living this for over a decade with engineers with decades of experience who have done some of the most advanced electronics work imaginable (satellites, military drones).
To test and rework a surface-mount PCB, you may need:
- logic analyzer or oscilloscope;
- microscope;
- high precision soldering equipment/ability;
- solder paste and oven;
- cutting equipment to cut through 4-6 PCB layers and connect tracks with hair-width wire;
- Years/decades of education and experience to understand what to look for and what to do when you find a problem.
If you made the PCB then you should be well placed to fix issues with it. You don't need years of experience , you have the schematic. A microscope (if you need it) is 40 USD. A logic analyser is 10 USD. Solder paste and hot air is only for specific parts and that is 30 usd.
I am assuming 2 layer - 6 layer PCBs are very specialised (e.g. drones)
The reason I'm being snarky is because it feels like you don't know what you're talking about. I know you're a mod so ban me or we but that's the impression I got.
As tomhow points out, you are likely going to need more than just a multimeter. However, the hard part isn't whipping up a board that's 90% of the way there; it's the last 10%. I'm currently on revision ~11 of a hobby project which is far less complex than anything tomhow is talking about (4 layer PCB, 8-bit microcontroller, one analogue sensor circuit). Even the first revision of the board 'worked' for the most part, so I'm clearly not totally incompetent. It's just that the kind of polish that takes you a day or two of iteration if you're designing a web frontend can take months (or years, if you're working in your spare time) when you're constrained by manufacturing lead time and the need to test a physical object. There's a huge gap between "Yay! LED flashes!" and a marketable niche consumer product. Even just successfully putting the bloody thing in a box can require a lot of trial and error.
The firmware is not to be underestimated either. In my case that's about 6000 lines of C. That doesn't sound like much, but writing, testing and updating C code targeting an 8-bit microcontroller is a whole different ball game to writing generic application code. The time investment per line is vastly higher. (In fairness, choosing an EFM8 instead of an 32-bit ARM part was probably a mistake on my part.)
I recently layed out and ordered a single-sided two-layer board with only a minimum config STM32 + crystal, two USB ports with ESD protection, and two LEDs (one is always-on). I went for commodity SMD parts and it still costs 20 USD per unit to produce and ship from China. Even that PCB doesn't work right now.
[Sorry, dear reader. This post turned into a rubber duck session at your expense.]
The main peripheral and reason for the PCB is a USB MIDI device with a bit of custom sysex. Modifying an Adafruit was out of the question; the MIDI peripheral powers itself and the microcontroller/host, and the other USB peripheral. (Basically always, the host shall provide power. This USB connector, however, was designed for a proprietary, discontinued, expensive accessory.) I chose STM32 over 8051 or AVR or RP2040 because it's the cheapest dual-USB chip stocked by LCSC with good vendor tool support. I'm writing my own code because there's no ST middleware for MIDI.
The second LED should blink until both devices are plugged in and then remain steady, on. In testing, the LED visibly changes its timing after the second USB attach but doesn't stay on (rather, it blinks at a shorter and shorter period until simply shutting off, at which point the MIDI communication stops; the timing of the shutoff is not consistent) and the USB input events only register 40% of the time until the MIDI shutdown.
The LED is misconfigured intentionally; it's open drain and GPIO while I try to fix the MIDI nonsense. Later, I'll change it to push-pull on TIM2 to support PWM brightness (e.g. to monitor audio levels when not in text entry mode). Changing GPIO to PWM is its own minor pain because the USER CODE lines in the ST USB code are separate from the USB_Init/USB_RegisterClass/USB_Start sequence, so I have to reinsert my MIDI class every time I change something in CubeMX even if I don't change the USB configuration. (The USER CODE sections persist so that you can change the chip configuration and keep your code.)
Open-drain could explain weird LED behavior but not the communication shutoff. The MCU and LDO don't get noticeably warm, so I doubt it's an overcurrent situation.
I suspect D+/D- could be at the wrong level. As most STM32s, the microcontroller runs at 3.3 rather than 5 volts. (I would've loved an atmega32u4 for its 8-bit simplicity and native 5V operation but then the PCB will be double the cost and size as I'd need a pair of MCUs talking to each other with each one having a single USB port or else an off-chip USB host IC etc.) Sure, I can use a cheap multimeter to test the USB data lines, but this tells me the average level and not if the waveform is being clipped on the positive side (which is usually only a problem under 3 volts). Even if it's an electrical issue, an oscilloscope will reveal the cause but still won't provide a solution. It'll be up to me to cobble together more circuitry.
More probable is at least one code mistake, like a stack overflow or buffer overrun or peripheral misconfiguration/failure. I'm registering any expected USB class on both ports: HID and CDC and MIDI. The whole idea of the board is converting arbitrary USB input (PC keyboard, MIDI controller, joystick, etc.) into specific MIDI messages at standard USB data rates e.g. 12 Mbit/s at both ports with a fairly large buffer. The main MIDI device (supplying the power) will drop the connection after a few seconds of inactivity. I'm using an ST-Link V3 MINIE to step through, which is the cheapest I'd go on a debugger. Luckily I added SWO to my debug port and can still get useful debug info without stopping the processor. I also have to snip the power line of an OTG USB cable if I want the second USB peripheral to be a PC, which is a nifty hack you usually don't learn in the one month PCB design crash course.
I have zero visibility into what the commercial USB MIDI device expects (bus speed, signal characteristics) from the discontinued accessory and only knew its connection handshake from a random, otherwise-inactive Github user's single commit.
In any case, the USB algorithms I wrote work when the host is a PC and the code is ported to Python.
I could reroute pins to ADC and roll my own built-in oscilloscope (it's QFP and not BGA chosen specifically that I can solder in a hotfix, because I've done board design before and know it NEVER, EVER, NOT ONCE EVER goes right on the first attempt) but I'd rather spend time with my kids than a choose-your-own-adventure debug hackathon in my disorganized home office, although I did fall into the IDE trap. Every few years, IDEs and toolchains and build systems change, and this project was no different. Rather than STM32CubeIDE, I took a few hours to teach myself to use the STM32Cube Core and marus25 Cortex-Debug extensions in VS Code, as that seems to be the current trend at ST, and I do favor a vendor-agnostic, Eclipse-free workflow.
If this were my first project and I had to buy all of the tools for debugging, it would probably cost 200 euros or more even if I only buy cheap knockoffs. The other commenter suggesting a $10 logic analyzer?? I mean... I do own one of those, but it's barely tee-ball compared to the major leagues of Lauterbach or Rohde & Schwarz or even Saleae.
In any case, I fear I'll need a new revision with its two-week turnaround or at least a manual rewire of this design. It's frustrating... such a simple design, and I've already sunk over 100 euros and at least 10 hours into it and have a bug with odd symptoms. And, as a PCB design tradition, I'll be humbled and humiliated when I discover it's something like a missing switch case or a wrong clock setting or otherwise relatively basic mistake.
I'm not the first to state: There's a reason it's not called easyware.
PCB debugging is honestly one of the most intense experiences I've had in my life (and I don't even have a boss looking over my shoulder). It requires intense physical and mental concentration. You're dealing with a hypothesis space that includes both software and hardware faults, and you're also having to make delicate manipulations of a physical object.
It’s a low move to suggest that I would ban you over a substantive disagreement in a discussion. I wouldn’t last a day in this job if I misused power like that.
> If you made the PCB then you should be well placed to fix issues with it. You don't need years of experience , you have the schematic. A microscope (if you need it) is 40 USD. A logic analyser is 10 USD. Solder paste and hot air is only for specific parts and that is 30 usd.
This is obviously at the extreme low end of the amount of experience and cost/quality of equipment you need to do serious work. Decent oscilloscopes or logic analyzers alone are several hundred dollars, and I didn’t even mention a programmer module, which is $500+ for a licensed J-Link. And you need to be a proficient C programmer.
> I am assuming 2 layer - 6 layer PCBs are very specialised (e.g. drones)
I am talking about 4-6 layer multi-MCU boards for reading from multiple different types of environmental sensors, connecting to multiple different network types (Bluetooth, cellular, satellite) and supporting multiple different power options (lithium battery, 12V DC, USB, solar). Painstakingly minimized power consumption, redundant data storage. Analogue front end for impedance readings of legacy soil moisture sensors. It’s a lot to get right together and to all work reliably in outdoor/remote contexts. But plenty of products that could be useful to reasonably large numbers of people (e.g. advanced home automation/robotics) would need to be comparably sophisticated.
Elsewhere in the thread you’ve written:
> PCB design is not that hard. People trying to offload this to AI are also unwilling or unable to put in the work to actually diagnose issues and finish the project.
This is a dismissive value judgement against others whose circumstances you don’t know about. It’s clearly hard, relative to other kinds of technology work (web/desktop software etc), and not worth it if you can’t get to volume production and sales.
So, sure, you can learn simple PCB design and get a simple 2-layer board in your hands in a month. Degree-qualified electronics engineers and companies obviously exist to provide the rest of the capabilities needed to get a serious product built and all the way to market and volume sales.
It’s clearly not always as effortless as you’re making it out to be in order to justify the sneer.
I agree with you, high frequency is a totally different domain. But for the majority of projects, you don't need to buy special equipment. It's very accessible and PCBs are super cheap to print nowadays.
I am definitely bitter (and biased) because I frequent a PCB review subreddit and increasingly people show up with zero knowledge expecting people to review their AI-generated projects for free.
Fair enough, thanks for the reply and for understanding. I can understand that must be frustrating.
I actually think another benefit of AI is that it can make it more realistic for people to self-educate and get further towards getting devices working without needing free help from forums. How they get help when they get stuck, without pestering forums like yours for free help is an interesting challenge.
I still think the biggest upside of AI in electronics is for people who are experienced and competent, being able to get the laborious design/layout work done more quickly, get errors found sooner, get their designs right in fewer iterations, and get feature-rich firmware written and debugged faster. If true, that alone can mean more high quality electronics products hitting the market. That’s the point I was making. Nothing to do with newbies freeloading off experienced engineers on forums.
At the robotics lab I work with it’s not uncommon for a piece of electronics to require a multi thousand dollar voltmeter, because they need to measure precisely extremely small voltages. We have a bunch of these in our lab for example: https://www.tek.com/en/products/keithley/digital-multimeter/...
Your series of comments in this thread frankly demonstrate a lack of understanding of what electrical engineering is. Yes if you want to make glowing LEDs then a multimeter and other cheap equipment are all you need, and you might be able to learn that in a month. But electrical engineering is so much deeper than that. Trouble comes when you have things like high power circuits right next to sensitive high speed signals. Eg a compact drone motherboard could be driving potentially hundreds of watts of switching currents right next to high speed camera sensor data streams.
There’s countless examples of what can make electrical engineering hard. If you don’t understand, don’t argue with people online - listen to people with experience and seek to understand why without challenging what surprises you. It’s all very interesting if you want to learn it.
The limiting factor in electronics/PCB development and manufacturing isn’t engineering expertise (there are plenty of sufficiently competent electronics engineers in the world, especially in Asia), nor parts/materials or assembly costs. It’s the endlessly laborious grunt work of testing a design and making minor improvements until it is finally ready for volume production. That process can easily take a year or two even for a fairly simple design. Even a really skilled/experienced engineer can make a simple mistake in a schematic or PCB layout, which only gets picked up weeks later when prototypes are assembled and tested, or even later when a batch has been made and shipped to customers. So, each design-assemble-test cycle takes weeks/months, and each testing/diagnosing/repairing session takes hours or days. And it mostly has to be undertaken by degree-qualified engineers or experienced technicians.
And that’s mostly before you’ve written all the firmware, which is incredibly laborious in its own right.
The outcome is that only very large companies with big sales volumes can afford to do it (or niche players able to sell at huge margins, most commonly in defense or medical industries).
Outside of those sectors, it’s now just not really viable to be a small-medium business selling moderate volumes of units anymore, the way it was in the 80s-90s. I’ve seen it up close in agricultural IoT. There are no big/dominant players (customer needs are too heterogeneous and distribution is so hard). There are many small vendors, but they find it hard to make products that work well and that customers love, especially at a price point most growers will go for. So, no vendors are big commercial winners and not many customers are very happy - even though there’s a great need for technology in this sector. And it’s really not because the vendors and their engineers are incompetent; it’s just really hard.
With AI to take care of so much of the grunt work involved with circuit/schematic design, PCB layout, pre-manufacturing verification, testing, and firmware dev, it’s realistic to me that you could cut down on R&D costs by 90%, make it much faster to get products onto the market, and make it possible for so many more high-quality niche products to be commercially viable.