Skip to main content
luke514
Associate III
July 6, 2026
Question

Engine stalled due to undervoltage or overheating

  • July 6, 2026
  • 20 replies
  • 332 views

Hello everyone, I have successfully controlled the Lin Engineering BL23E3301D04RO motor with the Nucleo-G474RE and IHM08M1 inverter .. using FOC configured in MC Workbench and the motor’s built-in encoder.

I then copied the entire project and changed only the engine.

Now I’m having trouble getting the following PMSM motor to run.

  • Kt — 1.54 N·m/Arms

  • Motor Constant Km— 1.63 Nm/sqrt(watt)

  • RM (lin to line) at Amb — 0.60 Ohms

  • Inductance — 2.24 mH

  • Motor Poles — 16

  • Ipeak Motor — 51.19 Arms

  • Tcont Stall — 20.74 N·m

  • Icont Stall Motor — 13.60 Arms

  • Tpk motor (25°C) — 64.54 Nm

  • Rated speed — 1914 rpm

  • Rated Power — 2826 W

  • Inertia (KBM) — 5.69E-3 Kg-m² (4.20E-3 lb-ft-s²)

  • Max Static Friction — 0.203 Nm (0.150 lb-ft)

  • Cogging Friction — 0.102 Nm (0.075 lb-ft)

  • Poles — 16

  • Back EMF Constant  — 93.3 Vrms/kRPM

 

In MC Workbench, I have set the following:

 

I have configured the quadrature encoder to 2000 pulses per mechanical revolution.

 

The power supply is CPX400S:

  • Vout — 46V
  • Iout,max — 5A

I’ll break down the tests I’ve carried out below so we can understand them better.

 

----------------------------------------------------------------MC Workbench----------------------------------------------------------------

PROBLEM no.1: the motor gives a slight initial jolt, then stops (making a noise); the current supplied by the power supply increases and the power supply voltage drops until an undervoltage fault occurs. If I let the current rise, I’ll burn out the IHM driver (it’s happened before).

I have NOT tried sensorless mode (I was getting feedback errors and didn’t try adjusting all the various parameters) and I’m using this encoder. I am required to use the Encoder in the final application so I’d like to sort the problem out with him.

I don’t think it’s a PID issue, both because I’ve tried various settings and the situation hasn’t changed… and because it seems that something else is blocking the motor; the PID tries to push it to the limit by demanding maximum output, but the motor remains stationary.

TEST: trying to change the speed PID parameters and cut-off frequency of the current loop does not seem to solve the problem. In the current loop, the motor either remains stationary or behaves in the same way of the speed loop.

My application has a maximum speed of 250 rpm (even though the engine can reach 2000rpm), so this immediately raises the first question:

  1. Which parameter in MC Workbench should be set to 250 rpm? The ‘Target speed’ in the Speed Regulator?

 

SUSPECT no.1: I don’t know if this has anything to do with it, but (if I remember correctly) when I was using the Lin Engineering BL23E3301D04RO motor on the oscilloscope, with the probe connected to the encoder’s A pulse, I could see a clear signal… now I see completely distorted, unrecognisable pulses. I admit that the encoder cables (mounted on the motor shaft) were cut, soldered to a further 4–5 cm of cable and then adapted (crimped and fitted with a connector) to connect them to the connector on the IHM08M1.

 

SUSPECT no.2: if I set the quadrature encoder to 1000 pulses per mechanical revolution (and not 2000 as it should be) the motor runs smoothly at a speed that is double (or triple – I can’t remember) the set speed. I’m not surprised that the speed is different… but I am surprised that the motor runs without any problems!

 

----------------------------------------------------------------Motor Profiler----------------------------------------------------------------

SUSPECT no.3: are the motor parameters correct? “It’s good to trust the datasheet, but better not to” – so I’ve decided to estimate them using your Motor Profiler (thereby switching to sensorless control). Here too, I’m not quite sure what values to set for ‘Max Speed’ and ‘Max Current’ for the estimation… the motor’s maximum values? Or the maximum values I set on the bench-top power supply? This test leads to another problem:

 

PROBLEM no.2: at around 28%, the profiler ‘freezes’ – that is, the motor accelerates for a few seconds, then stops abruptly, then starts turning again for a few seconds, then stops abruptly, and so on, until it triggers an overheating fault. I’ve tried both the motor’s rated current (minus 15%) … and 5A (well below the motor’s 50Apk) … but the problem persists.

 

SUSPECT no.4: the motor isn’t completely ‘idling’ – that is, it has a shaft and is mounted within a mechanical structure, so it has a bit of load torque… I hope that isn’t a problem for the Motor Profiler.

 

----------------------------------------------------------------CONCLUSIONS----------------------------------------------------------------

I’m wondering what might be causing these two issues… In the meantime, I’m continuing to adjust the parameters in MC Workbench and monitor them using CubeMonitor.

If there are any specific parameters you’d like to know about or see, just let me know which ones and I’ll plot them and attach screenshots, updating the main post.

 

 

20 replies

unsigned_char_array
Lead III
July 6, 2026

now I see completely distorted, unrecognisable pulses

 

Have you tried adding resistors as termination? IO-pins are high impedance so they can pick up a lot of distortion.

"Kudo posts if you have the same problem and kudo replies if the solution works.Click ""Accept as Solution"" if a reply solved your problem. If no solution was posted please answer with your own."
luke514
luke514Author
Associate III
July 6, 2026

Which value? Do you mean in series between ENC_A, ENC_B and Z and the uC’s GPIOs?

unsigned_char_array
Lead III
July 6, 2026

I looked it up.
The BL23E33-01D-04RO motor has a E5 Encoder. Those have an output voltage of max  3.4 V 20 mA. So that means you need at least 170 ohm. You can start with 1k or 470 ohm. I wouldn’t go lower. I see the board already has 4k7 resistors and 10pf capacitors. That should help at least somewhat. So perhaps you can try keeping the signal wires away from motor cables.
When measuring with an oscilloscope use a ground spring, not ground crocodile clamp.

"Kudo posts if you have the same problem and kudo replies if the solution works.Click ""Accept as Solution"" if a reply solved your problem. If no solution was posted please answer with your own."
mƎALLEm
ST Technical Moderator
July 6, 2026

Hello ​@luke514 ,

That thread should be posted in STM32 MCUs Motor control forum board.

I’m moving the post then.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
luke514
luke514Author
Associate III
July 6, 2026

You’re right, thank you

GMA
ST Technical Moderator
July 7, 2026

Hello ​@luke514,

MC Workbench
This behavior is often due to the fact that the U, V, and W motor phases or the ENC A and B signals are not connected correctly to the board.

Motor Profiler - PROBLEM no.2: refer to the Motor Profiler Application Note document available through "Workbench tool">About>Documentations>Documentation, User Manual tab: 
Progress execution bar stays at 28%
The FW was not able to find a suitable start-up speed ramp solution. Max current and Max speed can be tuned to reach a functional speed startup ramp.

If you want to manually set Motor parameters, refer to this Motor Control wiki page.

 

If you agree with the answer, please accept it by clicking on 'Best answer'.Best regards.GMA
luke514
luke514Author
Associate III
July 7, 2026

MC Workbench

I don’t think the connections are wrong. This is what I’ve done – please let me know if I’ve made any mistakes:

  1. In the stm32g4-nucleo schematic:

Ch U: PA8 (pin 42, D7)

Ch V: PA9 (pin 43, D8)

Ch W: PA10 (pin 44, D2)
 

  1. In the IHM-08M1 schematic:

OUT 1: PhA à TIM1_CH1 which corresponds to PA8 (as seen in the microcontroller reference manual)

OUT 2: PhB à TIM1_CH2 which corresponds to PA9 (as seen in the microcontroller reference manual)

OUT 3: PhC à TIM1_CH3 chewhich corresponds to PA10 (as seen in the microcontroller reference manual)

  1. In my motor’s datasheet:

Ph U: blue wire

Ph V: brown wire

Ph W: pink wire

 

As for the encoder, on the IHM08M1 the PCB clearly shows where A, B and Z go … so I connected the encoder’s A, B and Z pins

 

 

 

GMA
ST Technical Moderator
July 7, 2026

Hello ​@luke514,

As mentioned ​@unsigned_char_array, did you check the MCU Encoder inputs with a scope? 
If signals are correct, setting the Main Speed sensor to STO-PLL sensor less, and the Auxiliary Speed sensor to Quadrature Encoder, you can verify that by plotting STOPLL_EL_ANGLE and ENCODER_EL_ANGLE, that both are aligned at RUN state.
 

If you agree with the answer, please accept it by clicking on 'Best answer'.Best regards.GMA