What would it look like if the Motor Shield or Arduino was overheating?
I have been noticing a weird change in behavior when stressing the system pretty hard and it is trying to lift the sled straight up. The motors sound like they are updating less frequently. I don’t see any evidence of software issues, so I was wondering if the motor shield could get hot enough to the point where its reactions to voltage changes on the input side would become sluggish on the output side.
I imagine overheating probably just looks like a broken motor shield, but I thought I would ask.
My experience is as you describe - response becomes sluggish, deteriorating over time (hours of runtime) until the motor is unresponsive. The first couple of times I replaced the chips, the last time I bought a new board. There is a thru-hole chip with similar controls which would use a vertical heat sink; I’m pretty tempted to lay out a board for three of those for an experiment.
That has been my experience as well. The chips have a built in over temperature protection which when it kicks in gives the impression that they are updating less frequently like you’ve described. I saw this issue pretty commonly early on when both motors were run off of one chip and it had a smaller heat sink, but I haven’t run into it recently. Are you seeing this happen often?
I am seeing it in testing occurring at a predictable location. It tends to be after about 40 seconds of running constantly and when the motors are trying to lift the sled very near the top of the work surface, so high tension.
That said, I am running around 2.5ms or about 4x faster than the default which I think is causing more voltage changes likely leading to increased heat.
I do wonder whether or not I have seen a similar action occurring when all three axes are in use, even when using the default firmware.
One solution is to add bigger heatsinks and a fan, another it to see if I can tweak anything in the PID controllers to decrease the amount of voltage changes without harming accuracy.
Glad to hear there is some sort of thermal protection.
There is supposedly thermal protection, but we’ve blown up quite a few of these chips
The next version of the board ties the bottom of the chip to the ground plane in addition to the heat sink on the top so hopefully that will get us better heat dissipation. In the long term I think we want a beefier driver and some good options have been thrown around
As the frequency of the PID process increases, the number of voltage change requests increases. I agree by itself this shouldn’t be an issue.
But at high frequencies the velocity PID almost certainly has a resolution problem and suffers from quantization.
So I wonder if what I am seeing is either:
Increased heat because rather than spending 10 ms at a PWM of 125, the chip is doing 5ms at a PWM of 0 and 5ms at a PWM of 250. I assume that the heat generated at a PWM of 250 is not simply just 2x the heat generated at PWM 125.
It is possible more power is actually required because the PWM actually goes negative in a few loops, braking against the overall movement of the sled.
These things could probably be solved with better PID control. Maybe some Kd would solve this. Some sort of averaging could be used again, but that didn’t work well last time, so I am a bit afraid to add it back in.
I also need to actually output some data to see if I can determine what is happening. The only issue is that at the frequencies we are talking, there isn’t much time left to output that much data.
As the frequency of the PID process increases, the number of voltage change requests increases. I agree by itself this shouldn’t be an issue.
But at high frequencies the velocity PID almost certainly has a resolution problem and suffers from quantization.
I don’t think the PWD frequency changes, but rather the on time
So I wonder if what I am seeing is either:
Increased heat because rather than spending 10 ms at a PWM of 125, the chip
is doing 5ms at a PWM of 0 and 5ms at a PWM of 250. I assume that the heat
generated at a PWM of 250 is not simply just 2x the heat generated at PWM 125.
If it’s working and tuned properly it should be more like 5ms at 124 and 5ms at 126, if it’s not staying at 125.
The total power disapation should stay the same even if it’s going from on to off to on every 5ms since the total power delivered remains the same. It’s just a 200Hz pwm frequency in that case
The more I play with things, the more I think I am seeing this happen somewhat frequently. I think it always happens while the zaxis is attached.
Attached is a gcode file for a simple 5.5 inch square with three depth cuts. If I run this file with the top edge of the square an inch or two below the top of the work surface centered horizontally in the work surface, I get some choppyness mostly on the second and sometimes the third pass of the top edge. I think this occurs because the zaxis remains attached during the entire length of the top edge.
If anyone else is able to test this I would appreciate hearing your findings. You don’t need to actually cut anything, but having the weight of the router in the sled is probably helpful.
check the routing of your wires (and that everthing is plugged in well), if you
have too much noise being picked up in the encoder wiring, it can make the
maslow think things are moving when they aren’t
I’ve run your Square 5.5 Forum.nc with release 0.92 and the ‘Enable 3D Linear Movements’ branch and did not see the choppy behavior you mentioned. There were some times when the horizontal movement paused waitinfg for the z-axis change to complete, but I don’t think that’s what you’re describing. It seems OK on my setup with GC0.92
I have an 80mm case fan mounted to my electronics enclosure, at the very least it keeps the heat sinks very cool. I haven’t really pushed my machine yet, however, so I don’t know how well it will cool the electronics when the sled is in one of the high-stress locations on the bed. I have documented my fan mount here: Arduino/Motor Shield Enclosure (Picture Heavy)
Not sure how much power the board can take but as an alternative, I just crimped the fan to a 12v power supply and plugged it into the same power strip that runs the electronics. That way the fan turns on with the machine and it doesn’t take any power from the motor shield.
I’d bet there’s enough extra capacity on the 12volt supply to run a fan. The power supplies we used have a built in resettable over current trigger not a fuse that needs to be replaced so if you do end up drawing too much power it should be ok. If I remember right if the power supply goes over current it will shut down and the status LED will blink until it is turned off and back on again
@Gero - I’ve been thinking of getting a spare set of electronics. If I had the chops I’d use my Shapeoko 3 to make an Aluminum case for it all, one giant heat sink.
@bar - Would you consider updating the store picture to include the heat sinks?
In a previous life I used to QC processor chips to destruction.
One thing we learned was that lapping the chip and heatsink has a measurable effect on its ability to transfer heat.
As the chips are pretty flat to begin with, we first flattened the sinks using 320-grit wet and dry on a sheet of glass with 3-in-1 or sewing machine oil. Once they were done you could use the resulting grit paste to give the chips a few turns using the sink as the block.
Clean down well using an appropriate solvent (iso, vodka), then gently wash in warm water with a drop or two of dishwash - you need to ensure no aluminium dust is left behind - dry well (a can of Air helps, and a day on top of the water heater to be sure) and mount the sink using a quality thermal paste - I prefer a silver conductive paste, but you need to be careful you don’t cause a short. If you’re worried, use a non conductive paste.
Another advantage of lapping is that you will only need a tiny amount of paste.