2026-03-20 1:37 PM - last edited on 2026-03-25 4:01 AM by Andrew Neil
Hello.
I'm trying to work with the B-G431B-ESC1 board.
I've assembled a prototype consisting of the specified board, a T-Motor MN3510-13 KV700 motor, a 13*4.4L propeller, and a 4S battery. I'm using MC SDK v6.4.1.
At first glance, everything seems to be working fine. The motor starts with the specified propeller and runs fine up to about 7500 RPM.
Then problems begin as the RPM increases. Depending on the battery's discharge level, i.e., the bus voltage, at certain RPMs the program seems to lose control of the motor. The motor revs up, and RPM, current, and power fluctuate. I understand that at such RPMs and under such a load, the modulation index is high and approaches 100%. I'm essentially starting to hit the limit. But this response doesn't satisfy me. Previously, I tested this motor with the same propeller and battery using the STEVAL-ESC001V1 board. I approached the same limit, but there were no oscillations. The motor simply stopped accelerating when it reached a certain RPM. For example, 8100 RPM at 16 V, or 7800 RPM at 15 V. Could you please tell me how to solve this problem? I tried all available modulation modes, as well as adjusting the current, speed, and observer controllers, but I didn't get the desired result.
I would appreciate any help.
Thank you.
2026-03-25 3:33 AM
Hello @AlexPi,
It is possible to tune the speed proportional-integral (PI) regulator parameters in real time by using the MC Pilot interface:
2026-03-30 12:14 AM
I've already tried adjusting the PI speed controller, but I didn't get the desired result. When adjusting these coefficients, I experienced either a faster or slower throttle response. Or, I experienced a decrease or increase in speed fluctuations around the target point. In my case, I experienced rotor position loss at high RPMs.
2026-04-13 1:38 AM
Hello @AlexPi,
Did you try decreasing the drive settings / current regulator / cutoff frequency?
2026-04-17 12:41 PM
Yes, of course, I changed the current regulator cutoff frequency. The default was 6000. I reduced this frequency in 500 increments to 1000. I got the best result at 2500. But the problem wasn't solved. With the current regulator cutoff frequency at 2500, the overshoot limit increased slightly, but the overshoot itself didn't go away.
2026-04-24 7:06 AM
Hello @AlexPi,
Did you try by increasing the PWM frequency?
2026-04-26 8:07 AM
So I increased the PWM frequency to 32 kHz. I tried frequencies of 20, 22, 24, 28, 30 and 32 kHz. I stopped at a frequency of 24 kHz. Again, although this improved the performance, in principle, it did not completely solve the problem. I also adjusted the observer parameters and the motor parameters. Namely, I slightly reduced the inductance of the windings Ls and increased Rs. All these measures generally gave a good effect. With the motor parameters determined by Motor Profiler and automatically calculated by MC SDK, it was possible to achieve a speed of only 6000 RPM. After the specified manipulations, it was possible to obtain stable speeds up to 8000 RPM. But there is the specified problem.
If I were simply to rest against a conditional ceiling as was the case with the STEVAL-ESC001V1 board, I would probably stop there. But for some reason there is a breakdown here, that is, a loss of rotor position. And it is important for me to understand the essence of the problem. Some believe that the PCB tracing is simply very unsuccessful here. There is also an opinion that the problem is in the internal amplifiers of the STM32G431. I doubt that the problem is software because the mathematical model and algorithms are basically the same for both boards.