Hi,
I’m looking for suggestions about setup for thermistor. I accidentally destroyed one motor for my quadruped robot, leaving it standing under pressure too long while adjusting settings for other axis, I guess I had too much current for its small motors for too long.
Now I don’t really want to destroy another motor and I was looking for resources with instructions what thermistor to use in how to connect it to odrive. I don’t have any thermistor, so I’m asking community if anyone had successfully connected thermistor and how, with what thermistor. I could do it with arduino but I would like to use odrive compatibilities.
Official docs are not so easy to follow for non-experienced rookie
Also do we have any good resources, tutorials and blog posts? Maybe more example codes?
I really like odrive, but the name of the controller makes it hard to search on the google.
@Bostjan I recently did some motor and fet thermal testing when running into similar issues. Luckily I have ODrive motors with thermistors attached, but through my testing I saw a direct correlation with fet thermistor temps and motor temps.
I don’t know what system you’re using to communicate with ODrive, CAN/Arduino/USB etc, but a good place to start before fastening a thermistor to your motor is to start reading the motor_.current_control_.Iq_measured
and fet_thermistor_.temperature
of each axis.
For motor current, unless cooled by a fan you want to stay at 30% of your rated max current for your motor. For the fet thermistors reading they should stay below 100C. Adding a safety check at the top of your controll loop for these variables could be a good software solution. You can also set your max current limit on the odrive axis to a safe level which would eliminate most overheating issues in the motor, OR if you want to get fancy you could add a timeout in your code to watch the motor current and allow for up to 60 seconds or so of high current bursts but change the command behavior at timeout.
I’ve read a few posts on inserting thermistors into motors like this which may be a good lead if you want to go that route.
1 Like
Thanks, this kind of content is what I was looking for. Trouble is that in my application odrive is not close to the motors and motors are quite weak (9A max current), that is why fet thermistors reading would be low. Here is what I was thinking to do: If I add thermistors in the motor and some additional software sequence with small angle change to activates adjacent set of poles when temperature rise and wait couple of seconds for temperature to decrease on first poles and then switch it back and forward so every pole of the motor will be heated evenly. Angle position is not that important as speed. I have low-1:6 gearing, maybe I would need to increase that also for more torque. What do you think?
Ah, OK. Yes I’m not sure how the FET temps correlate to motors when they are very far away. That said I would imagine there is some correlation but not what your needs are. So if the motors are 9A the simplest solution could be to limit the current to 3A and gear up from there. That would give you your holding torque without maxing the motors ever, but of course it depends on your setup and how much room you have for gearing. Adding a second 1:3 stage might not be that bad though. I don’t know if you’ve seen James Bruton’s work on Youtube but he has a ton of great linkages in the OpenDogV2 project that are worth checking out for small spaces.
Regarding the pole switching, I’m pretty sure that’s what the ODrive is doing internally already to hold position and I would be suspect if that approach would make a significant difference in your temps. It’s important to note that the thermal characteristics of most of the motors is not a gradual warm up, it’s legitimate thermal runaway. IE once the motor has hit a relatively basic threshold like 60-70C it will jump to 100C + very quickly.
If it’s any conciliation this was all a bit of a surprise to me until I started reading other’s work on the forum and doing my own testing.
1 Like