



Hello,
2) the main problem is that aluminium oxidizes and so gives no good contact between the layers. Assuming the EMI source is the motor and leaves the motor housing by the wires you might want to short it back to the motor housing before it spreads over your whole cirquit. So with a better conducting material you might have luck by contacting the shield back to the motor housing (and or to the metal plate below the PCBs). Yes there are EMI-Shields for this purpose but they are not cheap.
1) a 10-100nF capacitor across the terminals might help somewhat. But it is also possible that the H-bridge cannot handle capacitive loads. You need a path back to the motor housing. So additional to the 10-100nF across the pins you need 2 * 1-10 nF from the pins to the motor housing to prevent the EMI getting from the motor to the motor supply lines. Another possibility to prevent leaving the EMI from the motor housing would be adding some inductivity 10-470uH or EMI-Ferrites into the supply lines close to the motor pins.
3) This will most probably not help as there are already some capacitors. What I would try is a 1-10nF capacitor between reset and ground pin of the processor (shortest possible connection).
with best regards
Andreas
[...] I checked with a DMM and the entire chassis as well as the motor housings are grounded. I think this is because I used brass inserts and the H bridge has exposed ground pads. Now I'm wondering if this could be a ground loop problem? That seems unlikely however, since adding foil around the cables shouldn't have fixed the issue if it was a ground loop problem?
As long as there is at least one reasonable chassis ground. A ground loop I would not worry about. The Arduino board needs its ground pour also going to a spacer bolt, I'd scrape off some solder mask on the top board or maybe a lockwasher does it.
There's many things that can cause your robot's problems, including firmware, you just have to go through the checklist.
Where is Arduino Nano power coming from? They won't take 16-19VDC input. Their header's soldering is not the best, I would redo that assuming a female connector is there. What are the two boards, I know nothing about the H-bridge board underneath and the IC used.
You can try lower your PWM carrier frequency, what is it? Ensure your PWM software or the H-bridge driver has some deadtime (no overlap). EMI would be terribly high otherwise.
The Hall sensor's wiring can pick up EMI from the motor wires, which are in the same harness and really close.
I see the two 2.2k pullup resistors R3,R4 on one channel M2 but not the other M1? If you are using interrupts to deal with the encoders, the CPU can overrun with spurious interrupts due to EMI.
I would toss the tinfoil, and if you don't have a lot of time get some ferrite clamp-on cores and it's possibly the motor pair or the encoder quad (wires) in the harness I would experiment with using a core.
Brushed DC motors generate plenty of EMI, especially if they're being run at higher voltages, due to the commutator sparking.
Maybe a monolithic or X2Y EMI filter for the DC motors?
Would that be helpful at the H bridge end? I'm guessing not but I'm not sure
Also is that the same idea as applying 10nF caps between the grounded chassis and each terminal?
Would that be helpful at the H bridge end? I'm guessing not but I'm not sure
Also is that the same idea as applying 10nF caps between the grounded chassis and each terminal?
No, they should be placed at the EMI source, i.e. at the DC motor. The idea is similar but they comprise two Y caps and one X cap in one package, and provide better performance.
Hello,
2) the main problem is that aluminium oxidizes and so gives no good contact between the layers. Assuming the EMI source is the motor and leaves the motor housing by the wires you might want to short it back to the motor housing before it spreads over your whole cirquit. So with a better conducting material you might have luck by contacting the shield back to the motor housing (and or to the metal plate below the PCBs). Yes there are EMI-Shields for this purpose but they are not cheap.
1) a 10-100nF capacitor across the terminals might help somewhat. But it is also possible that the H-bridge cannot handle capacitive loads. You need a path back to the motor housing. So additional to the 10-100nF across the pins you need 2 * 1-10 nF from the pins to the motor housing to prevent the EMI getting from the motor to the motor supply lines. Another possibility to prevent leaving the EMI from the motor housing would be adding some inductivity 10-470uH or EMI-Ferrites into the supply lines close to the motor pins.
3) This will most probably not help as there are already some capacitors. What I would try is a 1-10nF capacitor between reset and ground pin of the processor (shortest possible connection).
with best regards
Andreas

H-bridge MDD10A is rated 20kHz max. and you are running it at 62.5kHz, did you check this is going to work without shoot-through currents generating high level EMI?
As I mentioned, you can be accidentally generating a lot of EMI in hardware or software and instead of a shielding goose chase, I always start with getting the generated EMI low as possible. I know the foil gives sorta a fix but it's not going to be reliable and there will be drama at higher motor currents. It's just showing there is a relationship between the motor and encoder wiring. The motor wiring is terrible, using low current 22AWG wire and JST connectors running alongside the encoder signals- not a good design to begin with.
Without a scope it's pure guessing if the EMI source is the PWM carrier or the motor brushes or on the power supply. The susceptible EMI receiver may be the encoder and MCU inputs. Without any test equipment, you're going to have to guess and try things.
Capacitors at the motor are best to deal with EMI from the brushes. It's just three say 22nF parts soldered in free air right at the motor's terminals. For ferrite clamp-on cores, put either the two motor wires or the five encoder wires inside and clip together, as a common-mode filter for RF frequencies. It's just one bead, not along the entire cable run.
The motor wiring is terrible, using low current 22AWG wire and JST connectors running alongside the encoder signals- not a good design to begin with.