I meant, keep the terminals for the buck close to those of the battery. If this is not possible, use separate tracks (for both GND and 12V) for buck and motor. Do not place the buck terminals at the end of the tracks to the motor terminals.
Place the voltage divider and the cap close to the arduino. Do not use the ground terminal from the battery for this. The voltage there will vary with the motor current and you won’t get a stable reading.
I would say, a ring of vias around the terminal would be enough. Stitching the whole plane gives no advantage.
First of all thank You for everybody for the very interesting and useful posts.
@ Robert_Loos: Thank You very much for Your very detailed comments. Those helped a lot.
I modified the Junction terminal and kept the voltage divider (just in case), but connected his GND to the MCU’s GND as suggested. (Already have in the junction box, due to current measurement.)
I changed the capacitors from 10µ & 0.1µ to 0.1µ and brought closer the screw terminals for the buck to the battery on a separated tracks. The vias are in ring “via fence”, connecting the top and bottom copper pours to the motor ground (not to the MCU’s GND !). Kindly suggest for further improvement if any. Thank You very much for any kind of help in advance.
I didn’t follow the whole discussion so I don’t know why you moved Buck there. I don’t wont to say it is good or bad. In each decision there are always pro and anty. As I understand your circuit the GND to uC comes through Buck. So your move made probably the differences between GND level of uC and GND level of Motor controller being bigger. As there are some lines from uC to Motor controller the requirement for those connections resistance to voltage difference between GNDs has increased.
Resistance means that when sender sends 0 (1) receiver sees 0 (1) even between sender and receiver reference levels (GNDs) are expected voltage difference.
In principle, this is much better than before. Let me give you an idea of my topological imagination, assuming all the parts (including the buck and the acs) should be mounted on a shield for an arduino or a raspi. I don’t know the pinning so here they end somewhere in the connector.
Here you have short tracks of high current, not flowing over the whole board. You can make them nearly arbitrary wide and have them in parallel on top and bottom. R3 and the cap are as close as possible to the MCU. The MCU gets a possibly clean supply directly from the battery terminals. You might use a LM7805 instead of the buck since if you have motors of 180 watts there is no need to save one for the regulator.
How wide can you make it?
To give you an idea I have 50Arms continually conducted on a 30mm wide trace, on 4layers and each layer is 3oz
I barely know what is an arduino. Don’t amadillos eat a lot of arduinos? Or maybe it is the other way around.
@ Robert_Loos: thank You very much for Your valuable time and continuous support to bring this project to the next level.
I sincerely appreciate Your schematic in the last post. I found it very helpful.
I updated the topology of the junction terminal & the Shield. Kindly check and give your comments.
I’m not sure: is the grounding of “R3” & “Cap” correct (see point “A”) or shall be somewhere near to point “B” or “C” ? Thank You very much for any kind of help in advance.
Almost perfect, I think. I’m still not sure why there are two pcbs, the green power pcb and the yellow shield which has almost no parts. Can’t they be simply combined? If not, I would take R3 and the cap to the yellow one to bring it closer to the MCU. This reduces the loop area of the connections and thus the induced noise. You may also provide a small cap (a nanofarad or so) at A1 to GND, again as close to the MCU as possible.
If you read Naib’s post, you are surely away from a 3mm track. I would use copper pour in the high current area to create a massive connection between battery and motors. I sketched that in your picture. If you have those pours on both sides, you have twice as much of copper. (But you need a good soldering iron )
@ Robert_Loos: Thank You very much for your quick answer and the suggested modifications. Especially the sketch helped a lot to understand a little bit this “black magic”.
“Can’t they be simply combined?” Very good question ! I would like to put a lot of connectors on the Shield, but as per my understanding the high voltage part will disturb the MCU and signal lines (signal GND vs. motor GND) .
Therefore the “all in one” solution can’t be or maybe I’m wrong ?
I would give it a try. If you can keep the power part in one corner of the PCB, separated from the signal and analog lines and put a ground trace or grounded via fence as a shielding between imho it should work. The motor controllers surely have their own filter capacitors so the load is relatively ‘clean’. But 30A and motors are not my daily business, maybe I underestimate their effects. Separate PCBs may also introduce problems because of long wires between them that catch up EMI.
Are the 30 A the continuous current or just the peak? If it just the peak you can get away with much smaller wires and tracks. If it is continuous you need at least 3 mm² wires and the tracks should be as wide as they can (side note: this will make it hard to solder).
johannespfister: Fortunately it is a peek current.
Robert_Loos: Okay, I will put all in one board. The power part will be in the corner.
In addition, I will make 2mm width grounded traces around the power part on the front & back layers.
Those will be connected with 1mm OD & 0.6 drill vias. The vias will be on the traces in approx 5mm distances.
(I hope the above via fence parameters are fine. )
You have to mention this. The requirements will be lower in this case, depending on the continuous current and the duration of the peak. I think everyone assumed you where talking about continuous current.
What is the maximum continuous current and what is the longest duration of the 30A peak?
did a quick FEA for fun… This will mean very little to your project/interest except to indicate what you/user could do… I’ve posted info on FEA Thermal analysis on this Kicad forum, look for it if interested…
Garbage-In = Garbage-Out
Meaning, I threw it together from a few pieces of info from above comments and assumptions
PCB Material = FR4
Trace Geometry: Width=3mm, Length=80mm, Thickness = 70uM
Trace Material = Copper
Temperature, Initial/Ambient = 273º K
Temperature, Final = 333º K Imposed on Trace, only. ∆T=60ºK)
Trace Constrained to X, Y (No Movement in X or Y)
PCB Constrained to No Movement
(Thus, Only the Trace can move in Z direction. Assumes contact pins, vias and process bonding of Cu to FR4 board ignored)
Time of run is for 1 Second
Did not include interest in what happens to the surrounding FR4
Results:
Two Plots (Temperature & Displacement) Plus, one in ParaView without exaggerated displacement
Trace lifts off PCB 28uM (0.028mm = 0.007inch)
Exaggerated in the View for clarity
@ johannespfister: You are right and sorry for this kind of mistake, but honesty say, it is just an estimated value. As present, the things like a chicken egg situation. This is my first design/prototype, so unfortunately I don’t know the actual loads.
This is the one of the reasons, why I would like to measure the current as well.
For prototype we can over-design the traces and later can be optimized.
The rover will be in outdoor application, so later I can log the data and give the actual load circumstances.
@ BlackCoffee: Wow ! I’m very impressed ! Thank You very much !
It meas with 70uM thickness the 3mm width trace is lifting with 0.028 mm.
So I will do definitely some extra soldering with copper wire on he critical traces.
Can you do a favor for me: kindly run the FEA with he following parameters:
105uM thickness, 5mm width trace 10A
105uM thickness, 5mm width trace 5A
I’m very curious: How much will be the lifting ? Thank You for Your help in advance.
@ Robert_Loos: thank You again for Your continuous help and guidance. I made the Shield.
Apart from 12V->5 all in one board.
The 5V come from the Buck converter and I have
3V3 (LM7803) on board regulator.
The reason: thre are 5V & 3V3 logic level MCUs
5V MCU : set buck to 5V and use 3V3 (LM7803).
3V3 MCU : set buck to 3V3 and by-pass 3V3 (LM7803)
I attached some pictures (far from optimum):
As said, “garbage-in = garbage-out”. Thus, it’s all about the input conditions.
In particular, The Max allowable Temperature based on:
• Board material (different suppliers use different materials
• Board thickness = 1.6mm (?)
• Conformal coating covering the traces (type and thickness)
• Other materials close-by that receive heat
• Internal layers underneath/in-close proximity
• Packaging & ventilation…
FEA does only what user inputs
Using the ∆T of 60ºK = 140ºF = 60ºC isn’t bad, I’ve melted plenty of boards using Motor drivers at high power/higher temp’s (230ºF) doing failure testing.
Take a look at the Calculator Tool in Kicad and do some “What-If” conditions to help dial-in what you want.
In the Kicad calculator, you can set and Iterate on concept values(*):
Temperature Rise = 60 C
Current = *
Trace Width = *
Trace Thickness = *
You can use the Formula in a Spreadsheet and dial-in what you want for design…
The following conditions used are:
Trace width = 5mm
Trace thickness = 105um
∆T = 60ºK (Max T=333ºK)
FR-4 board, Cu trace
Board thickness = 1.6mm
(ignore the color blending on PCB, I didn’t bother to reset it…)
@: BlackCoffe: Thank You for the analysis,
I was thinking to make the +12V & GND lines on top and bottom layers and stitch them with vias (see below the traces with red dots).
This can have two advantages:
- Double the cross section of the traces
- Keep the traces stronger together -> less lifting.
But may be, am I causing bigger trouble ?