Sub-board best practices?

I’m prototyping a product, and many of the components are on “breakout boards”. Obviously I’m not going to ship this product with breakout boards, but I need to deal with this reality at this particular moment.

One of the boards I’m trying to use is this one.

I’ve got the schematic part of it figured out (i.e. made symbols and footprints for everything), but I’m struggling with the layout part. For instance, some high current paths are going to be connected by hookup wire and not tracks, and some other boards (like the one I linked to) have the pins facing the wrong way and are stubbornly (or cheaply) resistant to de-soldering (i.e. pads lift when I try to de-solder them).

It’s not an IC, it’s a complete sub-board, so the arrangements are often unusual. I’m just wondering if there is a best practice to using breakout boards that you can arrange physically, but which, connection wise, might not be ‘standard’. Any ideas? Thanks!

-Ian

For prototypes almost anything goes.

Glue (hot snot) or screw some breakout boards onto a piece of plywood, throw in an extra breadboard (quite some breakout boards fit on breadboards) and us ad-hoc point to point wiring. The important thing here is that the boads do not move relative to each other. This makes it much more robust because the wire’s do not move relative to each other.

Also, Wago 221 can be used for temporary High current connections.

For ease of use, I bought some highly flexible, silicone insulated wire, cut it into sections stripped the ends and soldered the strands together, with just enough solder (don’t put blobs on them), and this works quite well with the Wago’s. You can also use ferrules, but the standard ferrules are too short for use in the Wago’s, so buy longer ones.

There are some long term plans to add support for “design blocks” to KiCad. With design blocks you can interchange a breakout board, for the schematic circuitry on the same breakout board. This would be handy for quick prototyping, but issues for this have been on gitlab for some years now, so apparently it’s not a high priority.

Bummer.

My idea is to take the schematic of the breakout board out of the equation and just replace it with pins and pin socket headers and silkscreen marks & mounting holes in the schematic.

I was hoping there was a better solution. :confused:

Thanks for the insight.

-Ian

You can treat a breakout board just like any other Integrated Circuit. Just design a schematic symbol and a footprint for it. There are already quite a lot of examples of this For example in the CPU_Module and RF_Module libraries. (And also RF_Bluetooth, “Transistor_Power_Module”, “Converter_ACDC”, etc.

Desoldering the existing headers to put on headers in the other direction has proved too complicated/difficult. I guess I’ll just hook them up with ribbon cable or something. I’ve spent many hours and destroyed multiple boards.

So frustrating. Meh.

It’s not clear to me what/how you want to represent the Main-Circuit and it’s Connection(s) to the Breakout-Boards so, this may not help.

Consider this Example (a Tensile/Compression Tester) with:

• A Main PCB
• Two Arduino Nano’s
• A Stepper-Motor/Signal Controller
• A Load-Cell Controller
• Misc Switches, Power, LCD

For my purpose(s) the design facilitates ability for independent use (meaning, each can be run/used independently without need for powering/using all items).

Each Component can be thought of as a ‘Break-Out’ board.
Some of them (LCD, Nano’s, HX711…) are mounted directly on the Main PCB, some are connected with Cable/Wires.

I made Pig-Tail Cables with Connectors to hook-up to the Main PCB.
This is a Hobby project so, I was not concerned about ‘Professional Product’ related issues and I used a Single-Layer PCB (I CNC Milled it).

Schematic and Images below may give you some idea’s…

It seems like you make a lot of use of global labels. Does that help you meaningfully decouple the logical design from the physical design in your project?

More importantly, what are the pink boxes? Is that just drawing and not logical?

I’ve had several boards I designed in KiCad made by JLCPCB, but every time I order, I’m deathly afraid that I’ve gotten something wrong, and will have to wait another 10 days for the next fix. I’m on my third iteration of one, very, very, very, simple board. If I can effectively use these prototyping sub-boards to reduce the number of iterations, that’d be beneficial. I can design a ‘good-looking’ board, and I can pay JLC to pick-n-place it, but that doesn’t mean it’ll work when it gets here.

Thanks for the input!

-Ian

The Pink text is only text indicating what cables/wires get hooked up to the indicated circuit items.

I prefer Global Labels as they make for a Clean Schematic without running graphic lines all over the place. So, YES, it does help (me) in a meaningful way.

Sub-Boards are just a collection of parts/circuits on a PCB (example; the two Nano’s) so, all I need to do is figure out the physical layout and then hook-up the wires. If you spend 5-minutes inspecting the photo of the hardware and compare it to Schematic and PCB(graphic), all will be clearly understood.

If you build a Prototype using BreadBoards before having JLCPCB make it, then you can determine what works/not-works.

Yeah, I’ve prototyped most of this thing on breadboards before using JLC, but this project/product has spiraled out to be so large that it’s not feasible to do the integration work on breadboards. Or at least it feels infeasible. I’m sure it’s possible if you have a truly giant breadboard, but I’ve worked out the sub-modules (i.e. power supply, digital I/O, analog I/O, and displays – these are all separate boards. The problem is that the “motherboard” that coordinates with all those is quite complex and really beyond the scope of a breadboard.

Oh well. C’est la vie. Most things worth doing are hard. Anything you learn probably entails making a mistake or seven. I’ll get over it.

I’m really looking forward to the day when I can collapse all these prototyping modules into one SMT board that I can pay JLC to assemble for me. :slight_smile:

Thanks for the input on this thread!

-Ian