I got time to make more progress on recreating the motor modules! I’m currently using the setup shown in the picture below with 1 motor and a brick power supply rated for 24 V, 5 A:
With the addition of the following lines of code at the start of the main function:
gMotorVars[HAL_MTR1].Flag_enableSys = true; // enable the system in general
gMotorVars[HAL_MTR1].Flag_Run_Identify = true; // enable the motor
gFlag_enableVirtualSpring[HAL_MTR1] = true;
as seen here to enable communication over USB rather than CAN.
I first followed the instructions under “Build and Run in Debug Mode” here and then launched then launched the GUI according to this.
My TI launchpad then starts flashing its blue LED as expected without any errors and after a few seconds settles into the slow blinking. All the while a small high pitched sound comes from my motor. However, after this stage I am unable to move the motor through the GUI. I have tried turning off spring mode and then moving the speed and torque sliders separately with no response from the motor moving (besides some higher and louder pitched whirring sounds). I’ve linked a video to what I’m experiencing on the hardware right here: motor_test1_wrong_phases.MOV - Google Drive
Does anyone know what I’m doing wrong/if there’s something wrong with my setup? I’m fairly lost at this point so any help is greatly appreciated!!
thanks for the pictures and the video.
That looks pretty good - the fast and then slow blinking blue LED means that the magnetic zero orientation of the rotor was determined and that the motor is ready to be used.
This alignment procedure is required at every startup.
From what you’re describing the most likely problem is that the motor phases might be connected in the “wrong” order.
When we test an actuator module for the first time we just guess the motor phase order and test the module in spring mode - if the module doesn’t respond as expected and feels jerky when you move it by hand the motor phase order is reverted.
In that case you want to power down the motor driver board.
Invert the motor phase order by simply swapping two of the motor phases.
It doesn’t matter which ones - for example A and B.
Restart the motor controller, realign the rotor and test the spring mode again.
I hope that helps - please let us know if this solved your problem.
Thank you very much for the response and hardware suggestions/fixes! That’s very much appreciated since I didn’t notice them.
I did as you suggested and the motor now exhibits this behavior when in ‘Spring Mode’ [IMG_8374.MOV - Google Drive]. Does this look alright? I also can’t seem to figure out how to get the ‘Speed Controller’ option working, but I assume besides for testing purposes it’s not too necessary at my stage of development.
yes - that looks right.
You can change the behavior by changing the spring stiffness or the maximum current in the GUI. You might want to install a lower leg to get a better feeling for the spring response at the output.
For using the speed controller you’ll have to flash the card with the “dual_motor_vel_ctrl” software.
You can then use the same GUI with the other tab labeled “speed controller”.
Please note that there is a bug in the speed control software that will produce a tiny jerk every revolution or so. Probably when the index is passed.
We haven’t looked into it any further, because we usually don’t use the speed control mode.
sorry - the position control demo is an old test application and is not maintained anymore.
Therefore we don’t have a version available that can be used with the rest of the software.
I’m reviving this thread as an update/question about some troubles I encountered whilst testing each motor module in my fully assembled bolt. All my motor modules worked perfectly as expected except two, so 4/6 worked first try! I was hoping if you or anyone else could take a look at my observations & possible avenues to explore, also for future people if they encounter similar problems.
Left Upper Leg Module
This one was not repeatedly tested prior to assembly so I expected some deficiencies.
Here are the symptoms I observed:
Slow blue blinking light, so the system and motor seem to be enabled
Despite the LED status, the motor produces no buzzing sound and is completely limp in all 3 phase wire configurations.
Encoder does give back positions and updates as expected.
Here’s my guess/hunch to explore:
Since there’s no buzzing sound I assume that there must be something wrong with the phase wires themselves. So I plan to take apart the Left Upper Leg Module and test continuity.
Right Hip FE
This motor module did see a lot of repeated testing prior to assembly so I’m perplexed as to what went wrong:
Blue LED stuck ON, so the system is enabled but the motor is not
The GUI is stuck in Status: Aligning... and never gets out of that status (waited up to ~7 minutes)
Encoder values do change when I do move it despite being stuck in Status: Aligning...
When the program starts the motor does jolt but then goes limp
Guess/Hunch to explore:
Honestly, I have no idea what to do with this one… I guess I’ll take it apart and test the wires and such. Not sure what to expect with this case.
from your description I would also guess that one of the motor phase wires is faulty.
The weak point is the solder connection between the solid copper stator phase wires and the extension wires. You might want to check and resolder those connections.
Just posting an update reply to mention a resolution for future readers:
You were 100% right that the motor phase wires were faulty. When I measured the resistance between the terminals they were a bit too high as compared to the working motor modules. In fact, for the upper leg motor module, the endpoint of the three terminals in the stator straight up broke! So I had to completely replace that one.
After taking those two modules apart and resoldering the motor phase wires everything works nicely.
Now whilst I wait for the masterboard and udriver to come I’ll be reading the ODRI bolt related papers
I have run the testing of 2 motors using TI Launchpad in CCS Studio’s Debug Mode using the ‘dual_motor_torque_ctrl_can’. I just want to validate that the behaviour is as expected:
When I increase the Iq to about +/- 0.3, both motors start rotating and I can see the encoder pulses on the scope. Video link IMG_2496.MOV - Google Drive
However, the speed remains constant even if I change the Iq. is that expected from this particular code?
When I run one of the InstaSPIN speed control projects (project 1c and 12b), the speed changes when I change the reference.
As you can see the motor on the left oscillates continuously and does not stop. However the motor on the right oscillates for some time and stops. I have tried to understand from the code, but have not spotted anything thats different for J1 and J5. I swapped the DRV8305 cards between J1 and J5, and behaviour is still the same. Could someone guide me on this?