@tinker_inc To find all ODrives you can look at the implementation of find_any as a reference. You’d do something like this:
async def discovered_object(obj):
# do something with obj
with domain as fibre.Domain(path)
discovery = domain.run_discovery(discovered_object)
# do something until the discovery is supposed to stop
discovery.stop()
Hey,
I´m on 0.5.1 atm and when i upgrade to 0.5.2 with odrivetool DFU i get the error 0.0.2.0 and the odrive isn´t recognised by windows anymore. If i put it into DFU mode manually and flash back the 0.5.1 firmare with the ST cube Programm it works fine again. If i flash the 0.5.2 firmware with the ST tool i dont get any errors and then I put the odrive back out of DFU mode and again its not recognised by windows anymore.
Can sombody tell me what am i doing wrong?
Thanks for the help.
just tried it, no change in behavior i tried both odrivetool dfu and the STM32Cubeprogrammer software. Also i tried 0.5.2 rc2 few minutes ago and no changes there either.
One thing that i think is happening is that the new 0.5.2 firmware is checking for the board version in otp memeroy of stm32 and thats fucking with things. can you compile a firmware version 0.5.2 for odrive 3.6 56V for me that skips the firmware check?
i dont want to set up everything that is needed to compile the odrive FW myself.
Ah yes it’s possible that this check is causing issues. What indications do you have that point towards this?
We have a procedure in place to flash all boards with both firmware and OTP before shipping them but it’s well possible that some boards have slipped through with an invalid OTP. So if you think this is what’s causing the boot issue then that’s a hardware bug. In this case please email info@odriverobotics.com with your order number to arrange a replacement of your board.
If the property object has a member function exchange then it’s read-write, otherwise it’s read-only. You can check this for example with hasattr(my_property, "exchange").
I got the same problem, I just downgraded to 0.5.1 again, because I don’t have the time atm to figure out what the problem is exactly. 0.5.1 works without problems.
Experiencing UART/ASCII issues (over GPIO1/2) after upgrading one of my odrives to 0.5.2:
Not entirely sure what’s happening but it seems like UART on the new firmware is more susceptible to electrical noise perhaps.
UART connection drops when odrive.axis is set to closed loop control state.
Even if only my other odrive (running 0.5.1) is set to closed loop control - the odrive running 0.5.2 stops sending data over UART.
The odrive (running 0.5.2) must be reboot or power cycled before the UART/ASCII protocol starts working again - ie just removing the electrical noise doesn’t seem to correct the issue.
Note: not using checksum in ascii protocol.
I noticed the release page states: " * ASCII and the Native Protocol do not run at the same time on a UART interface. See odrv0.config.uart0_protocol and the STREAM_PROTOCOL_TYPE enums for details." - not sure if that’s relevant or not.
Unfortunately I cannot proceed with my project with 0.5.2 until this issue is resolved - so rolling back to 0.5.1.
Anyone else experiencing anything like this?
EDIT0: problem persists if reconfigured using UART1 with GPIO3/4.
Was the motor armed when you tried this? If yes, this is expected. If not, do you have an STLink debugger? With that you could investigate which of these three functions fails, and where.