Motor - Magic Pie 2 (48 Volts, 56 magnets, 1500 kw)
Power Source - MeanWell RSP-3000-48
I compiled and flashed ODrive with the following settings different from the standard ones:
main.h #define HW_VERSION_HIGH_VOLTAGE true
commands.h #define UART_PROTOCOL_LEGACY
low_level.c #define ENCODER_CPR (5000 * 4) #define POLE_PAIRS 28
.motor_type = MOTOR_TYPE_GIMBAL,
I used UART to communicate with ODrive via Arduino.
Yesterday Đ°fter the first start with the âbâ command I got vbus_voltage = ~ 48.57
Today vbus_voltage = 0 always
I tried to connect only Arduino and power supply with disconnected motor, resistor and encoder, but still 0 volts
Motor does not rotate and it did not rotate in any of the tests.
The Mosfets heat up very much, especially the one with the edge - a few seconds after it can not be touched.
I think yesterday at the first test I noticed it too late and maybe Odrive overheated and burnt.
In any case, I ask you to help me figure it out, because after the order of the new board everything will be repeated.
I made a demonstration video.
Motor slightly torn after switching on and thatâs all.
I did various combinations of connecting wires coming from the motor, but the situation did not change (although I have not tried all combinations)
Maybe the reason is in which combination of wires are connected from the motor?
After I set
.motor_type = MOTOR_TYPE_HIGH_CURRENT and mosfets are no longer overheating,
but the motor also does not move and vbus_voltage = 0
What do I need to check or measure to find out the reason?
Hi,
I had some issues with my Odrive and I know that to debug is not easy.
I think it is normal if the Odrive detect an error, its possible to read errors over USB.
The order of connection is not a problem.
Did you try to execute the test move âsâ after that or an other âpowerâ command ?
I suggest you should first know if a component is burnt, so disconnect all on your board except the DC bus. If you can, try to power with a low tension (5v) and look if a component begin warm. If it is the case you have to change the component.
You can try to use the M1 port but before you have to understand the cause.
Others points :
You donât need to connect the 5v of the programer look here, maybe it can causes issues.
Did you make a change in the code to take in account the ratio between the motor and the encoder ?
Hi @Mirage_2142, sorry that getting ODrive to work has been confusing. I think the main issue is that we have not been clear enough in the documentation.
First of all, please donât use MOTOR_TYPE_GIMBAL, it is only for gimbal motors, and can very easily fry your motor or the ODrive if you use it on a lower resistance motor, such as the one you have.
I would recommend that you set #define USB_PROTOCOL_NATIVE and then try to get it working on the python scripts first, before trying on the Arduino: a lot of the configuration and debug features are not available on the legacy (ascii) protocol.
You must set #define USB_PROTOCOL_NATIVE then you can try USB connection again.
You must use a gear ratio that makes the effective CPR an exact integer, then you must use that exact number.
I connect STLink and USB port to USB 2.0 ports because connecting to USB 3.0 doesnât work
I think itâs probably better for me to wait for the new ODrive and try it without connecting the motor to avoid the possibility of burn.
Itâs strange but flashing the firmware works with no errors all the time
Yes thatâs normal, it is because we havenât found a good solution for the vscode compiler include paths. You can update them to match your installation if you wish. Though this should have no effect on the compilation, only VSCode intellisense.
I start sending command only via Arduino and UART_PROTOCOL_LEGACY
and check N5065 - it works
But Magic Pie doesnât rotate - it slightly moves on start Odrive and thatâs all. Odrive does not heat anymore.
N5065 still works fine
I set POLE_PAIRS to 28 because MAGIC PIE has 56 magnets.
I measure resistance between motor wires
For N5065 i got 0.3-0.4 Ohm
For Magic Pie 0,6-0.7 Ohm
I downloaded last Odrive sources from GITHUB and Zadig identified Odrive !
So i solved the problem with âUnknown deviceâ in Zadig
I run python tools:
demo.py - works but motor doesnât rotate
drv_status.py - works with no error from motor
On VMWare works good (flashing Odrive and python tools).
So I moved all the sources and components to VMWare, which is very convenient now to move to other computers
What do I need to do now to understand what settings to change in Firmware?
I used GITHUB master branch and explore_odrive.py doesnât work from this branch (even on VMWare)
I download dev branch from GITHUB
Install ipython and run explore_odrive.py from folder ODrive-devel
Then i got this message
I rechecked n5065 with the same encoder
and for n5065 out[1]: 0
and motor rotate (i mean n5065)
Do you have an oscilloscope and can measure the bus voltage and see if it dips a lot when the ODrive stops?
One reason that the big motor can cause dc bus brownout is because it has larger resistance, but I donât think it makes sense to be able to trip it when the calibration_current is 10A⌠So Iâm not exactly sure whatâs going on.
Can you check if there is a short between any two phases on the big motor?