RBX1 Motors running too hot or not at all


#1

Good day all,

I’ve been building the RBX1 for a small work project to test the arm and it’s been working fine to date. I’m looking especially at motors 3, the forearm motor.

First of all, I’ve been using the example/robot.py with the current values
joints[3].setCurrent(75, 75, 75, 75) # Doesn’t run. Does tick and tries to move, but doesn’t work.

I couldn’t find a reference to the unit of current. mA? A?
I tried to increase the current because I though it would help it with no success.
The default values in the code should be self.setCurrent(70, 90, 100, 100) so I tried this as well.

However, in a clean state python3 shell, doing a getParam(KVAL_HOLD) and other parameters returns 41 at all time. I’m not sure where the 41 comes from.

I guess I’m trying to figure out how should I tune my current and is it normal that my motor is stopping at higher current? The smaller wrist and wrist rotation motors tend to run quite hot as well so I’d like to fix this. I already melted through one of my parts with the geared motor when I increased the current…

Thank you,


#2

Hi Wiwip,

The setCurrent method is defined as def setCurrent(self, hold, run, acc, dec):, if the motor is getting hot, then reduce the hold value. If I remember correctly 41, is the default value for KVal Hold, Run, Acc and Dec.

Have a read of the L6470 Datasheet.


#4

Make sure your connections are correct ! This happen if your motor connection are wrong, your pole connection might be reversed so the motors try to turn in both direction at the same time.

75 is more than in enough in the current value.
Also, never plug in or plug out a motor on the board if the power is on, this will destroy the baord.


#5

Good day,

A little late, but thanks for the info. I will try both recommendations and see if it helps.
Is there a limit on how much we should use the method “move()” vs the method “run(a, b)” in terms of precision or current usage?

I believe that we destroyed one of the boards using the move method. The lights on the power supply and the board is flickering. We were using stock code. (I will verify connections too)

Thank you,


#6

Hi Wiwip,

There’s no limit between the two methods. However, after each action is performed a holding torque is applied to the motor, if you don’t call SoftHiZ or HardHiZ which disables hold. If your current is set high for hold parameter, then the motors will get hot, as well as the board.


#7

Good day again,

I’ll admit, I looked through all my motors and their connections seem fine and neither the board or the motors are running hot anymore. I’ve adjusted the current values and it seems like it’s better now. That is except the Dual Nema.

I feel like the electrical instructions are in dire need of more details and a good update. The images do not match what was received in the kit. With some trial and error and luck, I made it work. I think.

Here’s what I received:
This is the connector directly to the motor:

This is the connector to the board that I connected:

Now, my biggest concern is the Dual Nema for the Base. It’s not detailed on the instructions how to connect so this is what I received and how I connected it. It is turning, but I feel like there’s a problem. The area around the L6470 chip on the Slush board get extremely hot. By extremely hot, I believe that is how I burned the other board and with a bad probe, I got readings of at least ~80 Celsius.


If you did something different, I’d love to see how as I’d like to get this working well.

My current code gets data from another source that update the angle of the motors using the “moveto()” method repeatedly. I wonder if updating the motor desired position multiple times a second could have adverse effect on the torque, hold or performance of the motors? I may try to implement using run() and get_position() instead to see if it makes a difference in the meantime.

Thanks a lot again.


#8

Hi Wiwip.

Thank for sharing your wiring, it helped me getting the motors working.
As for the dual nema motors, I got them working in unison with the following wiring:


#9

Hi!

You’re welcome! I only managed it with the guide. I didn’t realize that only one of the phase has to be inverted.

May I ask what kind of settings you’re using to get it to work smoothly? Do you have the motors melting plastic? Do you notice the current draw from the Slush?
Lastly, did you notice how warm does the L6470 runs at?

I’ve noticed my Slush drawing between 0.8 and 1.5A with the raspberry pi taking 100mA. The motors don’t melt through plastic anymore, but they’re at 60, 68, 70, 70. However, the L6470 chip on the Slush engine can get as warm as 100 Celcius. It seem rated to go up to 130 and shutdown at 160.

Let me know if you found something different!


#10

hi!I also wiring according to the diagram you gave, but the no.3 motor still has the noise, the torque of no.4 and no.5 motor seems to be very small, the chip on the drive board is also hot, other motors seem to be normal.


#11

how to measure the temperature of the chip?


#12

Personally, I’ve used an infrared thermometer. I just ‘point and shoot’ at the chip. It’s not the best as it measures the external temperature, it’s a good indicator.


#13

Ok, thank you very much for your reply. Now we set the low current, the chip is not very hot, but the torque of the no.3, 4 and no.5 motor is still very small, it can only rotate and can hardly load. May I ask whether the robot you built has this problem?How is it regulated?


#14

I am still assembling the RBX1 arm so all I did was a quick test with all the motors to see if the board and motors were working. So I still dont have information about the temperature they would become after minutes of use.
As soon as I have some information, will post it here