bitdump / BLHeli

BLHeli for brushless ESC firmware
GNU General Public License v3.0
1.95k stars 1.09k forks source link

Loaded startup code for Readytosky 35A AT32 #674

Open smelting opened 1 year ago

smelting commented 1 year ago

I'm having trouble with a newer version of the Readytosky 35A single ESCs with an AT32 micro. Previously I've had no issues running in the bidirectional mode for use with ground vehicles. My setup is an 1806 connected to a gearbox directly driving a wheel. Older STM32 versions of this ESC did not show this issue. I've used the exact same parameters as the STM32 variants. This issue looks similar to #662, I've linked a video showing the behavior. The issue can be replicated by rapidly changing direction from full speed one way to the other. Slow inputs don't always seem to cause the issue. Normal stick input while driving around will cause the issue.

BLHeliSuite32ESC

https://drive.google.com/file/d/1XMvR76VkRelSVxeK3WaROi_XbpEHwTpb/view?usp=sharing Power cycling the ESC will fix the issue. The issue does sometimes clear if you manually rotate the motor (by spinning the wheel in this case). The gearbox is 20:1 so when you manually turn the wheel the motor is spinning decently fast.

I've tested this with multiple ESCs and it happens on all of them.

sskaug commented 1 year ago

First of all, this mode of operation is demanding. What most likely happens in your case, is that there is feedback from motor currents to the bemf sensing comparator. So due to this feedback, the code believes the motor is running, while actually it is not. There are many components in this picture, the quality of the comparator - input offset voltage, input common mode voltage etc. Then there is the accuracy of the bemf sense dividing resistors. And of course pcb effects, like coupling from trace to trace, noise on the ground plane etc. I do not have your specific hardware here. But I have another ESC with the same MCU (AT32F415), and it behaves very well on my bench here. Maybe you will have to try another ESC make for this application.

smelting commented 1 year ago

Could you generate some loaded startup test code for my specific target to try out? I have a large number of these ESCs and would like to be able to use them.

sskaug commented 1 year ago

Now posted here: https://github.com/bitdump/BLHeli/tree/master/BLHeli_32%20ARM/Loaded%20startup%20testcode

smelting commented 1 year ago

Thanks for posting the test code, I tried it out with no luck (same settings as posted above). Below 5-10% throttle the motor runs fine. Once you go above that it seems to lose sync of the motor and starts freaking out. The motor I had connected started smoking after 3 seconds or so at 50% throttle. I've linked a video to show the behavior. https://drive.google.com/file/d/1bTfGh-mEoL0xI8KJXtjmLe5RaNHbPy2r/view?usp=share_link

Any ideas on what might be causing this? As I said I have a large number of this hardware variant and need to get them working in bidirectional mode.

sskaug commented 1 year ago

Yes, we have seen this before. The emphasis on low rpm robustness was too high for proper operation at higher rpms. I have replaced the Rev32.8.9 testcode with a Rev32.9.9 testcode that should also run decently at higher rpms.

smelting commented 1 year ago

Thanks, 32.9.9 worked well. What ended changing under the hood? Do you think loaded startup will ever become a parameter in the configuration suite? Or maybe more options for helping down at the low end of rpm?

sskaug commented 1 year ago

Great that it now works! The change was to the filtering of the bemf signal. There are surprisingly few installs of this code, so at the moment we can not see that one or more configuration parameters are justified.

VTFPV commented 6 months ago

Hello @sskaug , I am having a similar issue with a Hobbywing_BL32_AT421. Motor/motors stalling and not restarting after a crash. Re-cycling the power brings everything back to normal again. I cannot find a hex file for the Hobbywing_BL32_AT421 in the link above (https://github.com/bitdump/BLHeli/tree/master/BLHeli_32%20ARM/Loaded%20startup%20testcode) can I use another hex file or could you add a hex file for this ESC please.

sskaug commented 6 months ago

Sure, HW codes are now added

VTFPV commented 6 months ago

Thank you @sskaug 😊