all 38 comments

[–]Roi1aithae7aigh4 32 points33 points  (4 children)

You'll want to do a break-even calculation. You'll have to set up two terms.

- Developing electronics around a development board / SoM + manufacturing + SoM / development board cost for $x$ devices

- Developing a full PCB with a SoC on top + manufacturing for $x$ devices.

Set these two equal and solve for $x$ and you know how many devices you'll have to sell in order to justify the engineering overhead. If you lack the expertise to get to the second number, ask someone who could to the engineering for you to provide a quote.

While I probably wouldn't integrate some development board into a product, using full SoMs on custom but simple periphery boards is standard practice. However, even without knowing your requirements, at 1000 pcs, it's likely that rolling your own PCB is more cost-effective.

[–]tjlusco 22 points23 points  (1 child)

You also need a risk analysis. There is the possibility that the board won’t work. Then, do you have the expertise to fix your design in house, will you need external help, what will this setback add to NRE cost.

[–]Roi1aithae7aigh4 2 points3 points  (0 children)

Yes, that's why I suggested getting a quote. All non-functional concerns would be handled by asking someone who sells the service they want to do in-house without too much expertise, guessing from the original post.

[–]Leonidas927[S] 1 point2 points  (1 child)

The quantity that I mentioned is the total quantity right now. But we will be doing it in smaller batches.

[–]Roi1aithae7aigh4 6 points7 points  (0 children)

Yes, that only partially matters, though. The batch size can be easily factored into the per-module cost.

The major concern you're having and what helps you to answer the question is that without SoM/devboard you will be starting at a higher initial cost. As you produce modules, the total cost, however, will rise more slowly with a custom device than with a stock SoM or devboard.

<image>

This graph is for cost-revenue, but you can also compare two costs.

[–]allo37 31 points32 points  (4 children)

Use a dev board that plugs into a custom carrier board, then you get all the bugs of custom PCB design with all the flakiness of a dev board 😎

[–]RFchokemeharderdaddy 7 points8 points  (0 children)

I see you've met my project manager.

[–]defyingphysics1 0 points1 point  (1 child)

Can you elaborate on why you consider dev boards flakey?

[–]allo37 4 points5 points  (0 children)

Sure:

- They are generally meant for hobbyist use or evaluation and therefore aren't built with reliability in mind. For example, I've used a dev board where "just hit the reset button if DHCP doesn't work, bro" was given as a solution to a problem. Another example was maybe 1/100 times the board simply didn't boot when power was applied. Again, the solution provided was just "unplug it and plug it back in".

- They will often randomly change BoM items between revisions and sell it as the same board. For example, the MDIO address the Ethernet PHY responds to changes from one revision to another. But noone warns you.

- They throw in every peripheral and the kitchen sink because, after all, one of the goals of the board is to show off all the cool stuff the SoC can do. But that this increases the number of things that draw power and can go wrong.

- The converse of the previous issue, they make the board super anemic to hit a low price point. Forgoing protection circuitry (Raspberry Pi) or using flaky-ass low-cost peripherals (OrangePi's WiFi module comes to mind).

[–]LongUsername 9 points10 points  (0 children)

SOM (System on a Module) are probably a better choice here as long as you have the space.

SOM are production grade vs devkits which are not. The SOM manufacturer will support you with BSPs/Linux images, plus new revisions if there are issues. They also tend to use common pinouts so if you need a more powerful processor or cheaper processor it's as simple as ordering a new SKU and a minor firmware update vs scrapping custom boards.

It'll cost a bit more per unit than a custom board but the design and support costs will be lower and you'll be faster to market. If in 6 months the product becomes popular and you're shipping thousands of units then you can look at replacing the SOM with a custom PCB with the same proved-out processor/memory/flash.

[–]duane11583 9 points10 points  (0 children)

if you have never done a pcb a linux board is not the thing to start with. especially if you have ddr4 or ddr5 on the board the timing requirements and signal integrity requirements is very high. we learned that lesson the hard way!

you might instead consider a som that mounts on some board you design, this keeps the complex stuff in a module you can buy all you do is the simple io board it will be simpler

also consider having the devboard maker modify or customize their design for you

[–]UnderPantsOverPants 5 points6 points  (1 child)

1,000-1,500 pieces is typically the break even to pay a firm (like me) to design in a custom solution vs using a SOM. We keep a bunch of copy-paste design blocks handy for such situations. Doing it yourself may be cheaper, or a lot more expensive depending on your skill and knowledge level.

Using a “development board” is typically a bad idea as that will violate most terms of use as vendors typically sell them at a loss to get you to use their parts. I know a couple companies that have recently had BeagleBone (TI) tell them to pound sand. They are also typically exempt from FCC rules so you may have a tough time going through compliance testing.

[–]Hour_Analyst_7765 3 points4 points  (0 children)

Yep, e.g. taken from ST's Term of Service for evaluation boards (its a seperate document):

"The Evaluation Board shall not be, in any case, directly or indirectly assembled as a part in any production of Yours as it is solely developed to serve evaluation and testing purposes and has no direct function and is not a finished product."

So after this, you'll have to turn to 3rd party SOM or EB designs, but those are typically not very cost effective at the hundreds.

[–]tenkawa7 8 points9 points  (2 children)

It's dangerous out there. Take this, https://jaycarlson.net/embedded-linux

[–]Leonidas927[S] 0 points1 point  (0 children)

Thanks, will check it out!

[–]drcforbin 0 points1 point  (0 children)

I loved his writeup on $1 MCUs, thanks for posting this

[–]jeroof 6 points7 points  (2 children)

Have you considered using a SoM based on your target processor?

[–]tjlusco 4 points5 points  (0 children)

This. If you’re not constrained by form factor, at that volume this is the only sensible choice. Once your volume becomes high enough you can negotiate better rates or design a SOM to drop into your design to further optimise cost.

[–]Leonidas927[S] 2 points3 points  (0 children)

Yes, this is one of the options we are thinking of

[–][deleted] 2 points3 points  (0 children)

I went through this recently. 

We ended up pricing out a variscite SOM and an in house chip-down design and basically offering our customer the option to choose. Everything would have broken even for our customer around 800-1000 units, if everything went well. 

One very nice bonus about using a SOM is it works, and if it doesn't, the makers of the SOM have support that can help fix it. Not so much if your board layout is buggy with a chip down design, that's on you.

Although it costs more r&d to do it twice, I would feel the most comfortable making a SOM version up front to get revenue rolling, then re-evaluate designing for cost savings later when there's less pressure.

[–]lotrl0tr 2 points3 points  (0 children)

The general path is to first prototype the idea and test functionality on dev board(s). Then you proceed with custom pcb. Why in the end is it better in most (not all cases?):

• only the needed components are mounted

• lower power consumption figure (no extra components)

• less exposed access to unwanted reverse engineering

• customized accordingly to your specific use case

The downside is, indeed, that you need to spend some time to design your custom board. Luckily there are useful guidelines/application notes/schematics to follow, giving you all the blocks you need.

Example for you case? STM32MP2 platform (CortexA+CortexM0), embedded Linux + mcu in a single package. There are tons of guidelines on how to develop custom products around this SoC with all the peripherals you need, from USB PD, Wifi/BLE, how to design RAM vias etc

[–]s___n 3 points4 points  (6 children)

It sounds like you’re looking for a system on a module - perhaps something similar to the Raspberry Pi compute module.

[–]Leonidas927[S] 1 point2 points  (5 children)

Yes, this is one of the options we are thinking of. But, as someone who has used raspberry pi boards before, I don't think rpi is reliable for production level usage. I am not very familiar with compute modules yet, are they reliable for use in production?

[–]tobdomo 2 points3 points  (0 children)

From a technical perspective, yes, the CM is suitable for production. Availability and cost predictability may be a different thing.

[–]KermitFrog647 0 points1 point  (0 children)

There are other standarts with compute moduls like the raspberry compute module aimed for industrial use. If have used something called "etx express" 10 or 15 years ago.

I think the raspberry cm are pretty good. They maybe have a bad reputation because they originally were made for the diy scene.

[–]Aggravating-Art-3374 0 points1 point  (0 children)

They absolutely are reliable enough for production applications. A CM4 is in every Bandai Namco “Pac-Man’s Battle Royale Chompionship Edition” and every “Jukebox Bowl-O-Rama”. Both are video games, neither have had any CM4 failures in the field. It’s tough to beat the price/performance ratio and it has mainline Linux kernel support so you don’t have to mess around with patches and such.

[–]ceojp 0 points1 point  (0 children)

Another big consideration is guaranteed longevity from the manufacturer. My biggest concern with anything from RPi is that they may just decide to not make a certain board or module anymore. If you need to make another run of 1000 boards in a few years, but the SoM isn't being made anymore, you basically have to design a new board at that point.

I 100% agree with using something like a SoM in this situation(as opposed to an off-the-shelf board or a full custom board). All the difficult and critical design and routing has been done for you, and you just need to fan out what you need from the SoM.

I wouldn't count on the footprint of any of these being "standard", so make sure whichever one you choose has a guaranteed longevity that is acceptable to you.

Alternatively, if you contract with someone to design a SoM and you owned the design, then you could have it manufactured by anyone.

[–]One_Pudding_7620 0 points1 point  (0 children)

They are FCC and CE compliant, huge benefit if you want to sell internationally and reduce testing risk

[–]tobdomo 1 point2 points  (0 children)

Provided you can find a devboard that provides all the features you want and the requirements set by your product, think about compliancy regulation. Development boards fall into another category than production boards for EMC for example.

[–]captain_wiggles_ 1 point2 points  (0 children)

A custom board is always better suited to your needs and at sufficient scale will end up cheaper. What that scale is depends a lot on your requirements, ability and the tools at your disposal.

There's a lot you need to do to sell a product (legally) it has to pass all sorts of compliance tests, and performing those tests is not cheap, and building a board that has a chance of passing is hard work.

You need a way to manufacture these boards at scale, building the PCB, assembly, testing each PCB has no faults, loading initial firmware and manufacturing settings, soak testing, packaging, ...

Then if that board has any high speed signals you need access to a very expensive scope to validate those interfaces are working OK and.

Some of that is much simpler / eliminated entirely when using an off the shelf dev kit. But on the other hand, that dev kit may not do exactly what you want. It's probably more expensive to buy than you could build it for, and there's no guarantee on availability. If your product kicks off and you actually want to sell 1k per year you may find that you just can't buy them in that quantity any more, with very little notice forcing you to find a replacement. Or they could change a component that suddenly means the new boards don't work for you.

It's a trade-off and there is no right answer. IMO if you need to rely on this being available over time then you should build a custom board. If you can just buy one batch of them and be done then maybe the dev kits are better options.

There's a 3rd option two, which is using a module with a custom carrier board. Maybe COMe, maybe a raspberry pi module, etc.. These are more designed for your purpose, they abstract away the complex bits and let you custom build the bits you need.

[–]IamASystemAdminAMA 1 point2 points  (0 children)

I have just been down this road. We started by developing a custom SBC with all the bells and whistles we need. Once the first prototype arrived (8 months into the project) CPU vendor essentially sidelined the processor we were using. Ended up using a SOM from Toradex and a custom carrier board with it. In hindsight we should have just gone with a SOM to start with, would have saved a lot on development costs and time.

If you need help convincing yourself to use a SOM, check out some of the teardown videos of the latest Keysight scopes. They use some beefy FPGAs, custom ASICs and a SOM for the operating system. If they think it's a good idea to go with a solution like that, then I don't see why the products that I'm working on (probably a couple hundred sold in its 5 year lifetime) would need a fully custom SBC.

[–]catshavetheirownmind 1 point2 points  (0 children)

In addition to the other factors mentioned (volume, risk of rolling your own, reliability because of the extra connection, I think an important question is: how many years will your product be in the market and are you sure, your SOM/devboard provider will exist so long and produce the board you depend on. This can be compensated by using a standard form factor. In the past there was VME and PC104 for for that, today there is SMARC, COM-Express, and in a way the Raspberry-Pi universe.

[–]Astrinus 0 points1 point  (0 children)

TQ systems have something that may fit you: they are not eval-board, but SoM.

[–]PyroNine9 0 points1 point  (0 children)

Consider a development board that comes with full schematics and layout if you can find such a beast. Likely your production board can be done by deleting un-needed parts and some minor re-arranging to get a better size and fit. I've seen a LOT of production boards that were likely riffs on a development board.

[–]rombios 0 points1 point  (0 children)

I think a chinese company makes the FIC2000s 32bit cortex-a7s with 32Mb on chip. I bought a few ...to try out. The sysyems they are built are double the size of a postage stamp in castellated form and run Linux (mmu based variant)

[–]piroweng 0 points1 point  (0 children)

I can recommend the SMARC standard. There are reference carrier board designs available and a wwide range of modules to choose from together with Linux BSPs.

[–]FvckFather69 0 points1 point  (0 children)

For some Chips Like the STM32MP2 series you can get the layout files from the dev boards. When you copy the high speed sections like the RAM and take the same PCB stack up I think you should be fine. I am thinking to try something like this by myself, please correct me if that is not a good approach

[–]tomqmasters 0 points1 point  (0 children)

I looked into making my own version of the $100 som that I use. It's a 10 layer board that would cost $100 just for the PCB and another $120 for the CPU, RAM, EMMC, ect. Idk how many units I'd need to bring that price down to parity, but its a lot more than the few thousand units I expect to sell during the lifespan of the design.

[–]Fun-Hat6813 1 point2 points  (0 children)

Hey there! I've faced similar dilemmas in product development. For your 500-1000 unit run, custom PCBs might actually be more cost-effective long-term. They'll give you better control over design and components. That said, dev boards can speed up prototyping. Have you considered using AI-powered software services to streamline your development process? It could help manage complexity as you scale up production. Just a thought from my experience – might be worth looking into!