VESC Startup settings for SSS 56114 350kV 360kV Motor. Need Help!

Hi Guys,
I am around electronics and RC stuff for a long time and usually help others, but I really need some help here.

A friend and me built an e-foil and we have real problems with the startup behavior of the motor. Most of the time the Motor stalls and does not spin up.
When it starts correctly, then everything works awesome and we can get a nice ride. But this is not always the case.

I see that there a mass of settings to mess around on the VESC but non of them does a real difference on the startup behavior :frowning:

Our Setup:

  • FlipSky 200A VESC Clone Watertight
  • SSS 56114 Motor with 350 or 360 kV
  • Ducted, direct diven 80mm self developed 4-Blade CNC ALU prop (measured > 50kg thrust and 30km/h, 13.000 rpm) Peak wattage is 5.7kW on static thrust. Riding at about 2.5kW
  • 12s LiPo 16Ah
  • 1.5 extension of the motor wires with 8 AWG wire, 8mm gold plugs
  • VESC running VOC Mode with tuned values (via the FOC tuning function built in)
  • VESC BT module and Android APP for logging and Debugging

The VESC App is showing “over current” when the motor stalled at startup, even though the limits are quite hight. VESC is set to 200A current limit on motor and 120A on Battery.

Last time we were riding we blew our motor bearing and wrecked the motor completely.

After we blew the one motor, the startup has been getting worse. Now it only starts up when you very slowly increase throttle and only 1 of 5 times. But no warnings in the app. (!!!)
When it stalls, the behavior is similar to an BL Motor just running on 2 of the 3 wires.

FUN Fact: our motor IS running on 2 of 3 wires!!! (didn’t know this is possible at all)
Doesn’t matter which of the wires is plugged in.

This is against every experience and knowledge I have about BLDC motors and I cannot help myself here.
Soooooo now you come!!! :smiley:
WTF is going on??? :exploding_head:

We already ordered a new ESC, but even before the blown motor, the startup was really bad. What can we do?

1 Like

Your Abs Max current has to be a lot higher than your motor current (otherwise the controller advices to use the max motor current and then the drv drops the abs over current error at the same time).

So set max motor current to something like 160A and abs max current to 200. Enable slow abs max current. Maybe you even have to adjust the DRV OC.

Can you rerun motordetection? It should tell you what the problem is (e.g. there is an error for different phase resistance).

How did you run motor detection? If done right (unloaded motor, so no lip seals; cables in final configuration) FOC startup for the SSS56114 360kv is 10/10 successful, quite and smooth in my setup.

Also if you managed to kill you motor, you are definitely running to high motor amps. Maybe install a tempsensor at the motor so the VESC throttles back.

Thanks for your advice!

Can you send me your motor config file to test on mine?

This is what we use.

The motor wasn’t destroyed because of heat, we got water in the bearing and it oxidated and then the bearing ring broke, causing the rotor grinding on the stator.

Detection was done via the FOC setting tool built in. The motor is running perfectly when it runs :slight_smile:
Issues are just on startup.
I will rerun it.

That’s the Motor config file. Copy it and load it in the Tool.
Then you can see the values. The settings are quite conservative, but got me foiling (incl. duct).
Still I don’t think these work well for you, since it is not your setup (other connectors, cable lengths, VESC etc.).

MotorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<MCConfiguration>
    <l_temp_motor_start>85</l_temp_motor_start>
    <l_temp_accel_dec>0.15</l_temp_accel_dec>
    <hall_sl_erpm>2000</hall_sl_erpm>
    <sensor_mode>0</sensor_mode>
    <m_current_backoff_gain>0.5</m_current_backoff_gain>
    <sl_cycle_int_rpm_br>80000</sl_cycle_int_rpm_br>
    <l_min_duty>0.005</l_min_duty>
    <m_ntc_motor_beta>3380</m_ntc_motor_beta>
    <foc_encoder_ratio>7</foc_encoder_ratio>
    <l_slow_abs_current>1</l_slow_abs_current>
    <hall_table_4>5</hall_table_4>
    <s_pid_kp>0.004</s_pid_kp>
    <hall_table_5>6</hall_table_5>
    <m_drv8301_oc_mode>0</m_drv8301_oc_mode>
    <foc_sample_high_current>0</foc_sample_high_current>
    <motor_quality_description>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Some comments about the motor quality. Images can be added as well.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</motor_quality_description>
    <foc_openloop_rpm>400</foc_openloop_rpm>
    <cc_startup_boost_duty>0.01</cc_startup_boost_duty>
    <foc_motor_l>7.49e-6</foc_motor_l>
    <l_temp_fet_start>85</l_temp_fet_start>
    <motor_weight>0</motor_weight>
    <motor_loss_torque>0.03</motor_loss_torque>
    <sl_bemf_coupling_k>632.92</sl_bemf_coupling_k>
    <m_bldc_f_sw_min>3000</m_bldc_f_sw_min>
    <l_temp_motor_end>100</l_temp_motor_end>
    <l_battery_cut_end>35.4</l_battery_cut_end>
    <l_current_max>90</l_current_max>
    <l_max_vin>57</l_max_vin>
    <foc_sl_erpm>2500</foc_sl_erpm>
    <motor_quality_construction>0</motor_quality_construction>
    <sl_cycle_int_limit>91.03</sl_cycle_int_limit>
    <l_watt_max>15000</l_watt_max>
    <m_bldc_f_sw_max>40000</m_bldc_f_sw_max>
    <foc_observer_gain>4.124e+7</foc_observer_gain>
    <foc_temp_comp_base_temp>25</foc_temp_comp_base_temp>
    <cc_gain>0.0046</cc_gain>
    <foc_current_filter_const>0.1</foc_current_filter_const>
    <foc_hall_table_4>255</foc_hall_table_4>
    <sl_min_erpm_cycle_int_limit>1100</sl_min_erpm_cycle_int_limit>
    <cc_ramp_step_max>0.04</cc_ramp_step_max>
    <sl_phase_advance_at_br>0.8</sl_phase_advance_at_br>
    <foc_current_ki>14.8</foc_current_ki>
    <foc_motor_flux_linkage>0.004924</foc_motor_flux_linkage>
    <l_current_min>-15</l_current_min>
    <l_max_erpm_fbrake_cc>1500</l_max_erpm_fbrake_cc>
    <foc_encoder_inverted>0</foc_encoder_inverted>
    <cc_min_current>0.1</cc_min_current>
    <foc_hall_table_3>255</foc_hall_table_3>
    <foc_sl_d_current_duty>0</foc_sl_d_current_duty>
    <foc_hall_table_7>255</foc_hall_table_7>
    <s_pid_kd_filter>0.2</s_pid_kd_filter>
    <sl_min_erpm>150</sl_min_erpm>
    <foc_duty_dowmramp_ki>200</foc_duty_dowmramp_ki>
    <hall_table_2>3</hall_table_2>
    <motor_type>2</motor_type>
    <foc_current_kp>0.0075</foc_current_kp>
    <l_max_erpm_fbrake>300</l_max_erpm_fbrake>
    <foc_hall_table_5>255</foc_hall_table_5>
    <p_pid_kd_filter>0.2</p_pid_kd_filter>
    <foc_pll_kp>2000</foc_pll_kp>
    <foc_duty_dowmramp_kp>10</foc_duty_dowmramp_kp>
    <l_in_current_max>65</l_in_current_max>
    <l_battery_cut_start>38.5</l_battery_cut_start>
    <foc_hall_table_0>255</foc_hall_table_0>
    <motor_quality_magnets>0</motor_quality_magnets>
    <m_dc_f_sw>35000</m_dc_f_sw>
    <l_max_duty>0.95</l_max_duty>
    <p_pid_kp>0.03</p_pid_kp>
    <p_pid_ang_div>1</p_pid_ang_div>
    <hall_table_3>2</hall_table_3>
    <motor_poles>6</motor_poles>
    <motor_quality_bearings>0</motor_quality_bearings>
    <motor_brand>Unnamed</motor_brand>
    <hall_table_1>1</hall_table_1>
    <foc_pll_ki>40000</foc_pll_ki>
    <foc_sl_d_current_factor>0</foc_sl_d_current_factor>
    <foc_hall_table_6>255</foc_hall_table_6>
    <foc_dt_us>0.08</foc_dt_us>
    <hall_table_6>4</hall_table_6>
    <l_in_current_min>-40</l_in_current_min>
    <foc_sample_v0_v7>1</foc_sample_v0_v7>
    <foc_temp_comp>0</foc_temp_comp>
    <foc_sl_openloop_hyst>0.1</foc_sl_openloop_hyst>
    <l_min_vin>8</l_min_vin>
    <sl_max_fullbreak_current_dir_change>10</sl_max_fullbreak_current_dir_change>
    <foc_f_sw>20000</foc_f_sw>
    <pwm_mode>1</pwm_mode>
    <foc_observer_gain_slow>0.3</foc_observer_gain_slow>
    <foc_sat_comp>0</foc_sat_comp>
    <foc_encoder_offset>180</foc_encoder_offset>
    <m_sensor_port_mode>0</m_sensor_port_mode>
    <p_pid_kd>0.0004</p_pid_kd>
    <m_duty_ramp_step>0.02</m_duty_ramp_step>
    <hall_table_0>-1</hall_table_0>
    <motor_model>Not Specified</motor_model>
    <s_pid_ki>0.004</s_pid_ki>
    <m_invert_direction>0</m_invert_direction>
    <l_temp_fet_end>100</l_temp_fet_end>
    <foc_motor_r>0.0148</foc_motor_r>
    <foc_sl_openloop_time>0.1</foc_sl_openloop_time>
    <l_max_erpm>100000</l_max_erpm>
    <comm_mode>0</comm_mode>
    <m_fault_stop_time_ms>500</m_fault_stop_time_ms>
    <p_pid_ki>0</p_pid_ki>
    <m_encoder_counts>8192</m_encoder_counts>
    <foc_sensor_mode>0</foc_sensor_mode>
    <motor_sensor_type>0</motor_sensor_type>
    <hall_table_7>-1</hall_table_7>
    <l_min_erpm>-100000</l_min_erpm>
    <motor_description>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Sans'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;A motor description can be edited here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</motor_description>
    <foc_hall_table_2>255</foc_hall_table_2>
    <m_out_aux_mode>0</m_out_aux_mode>
    <foc_hall_table_1>255</foc_hall_table_1>
    <l_erpm_start>0.8</l_erpm_start>
    <l_watt_min>-15000</l_watt_min>
    <s_pid_kd>0.0001</s_pid_kd>
    <s_pid_min_erpm>900</s_pid_min_erpm>
    <s_pid_allow_braking>1</s_pid_allow_braking>
    <m_drv8301_oc_adj>16</m_drv8301_oc_adj>
    <l_abs_current_max>150</l_abs_current_max>
</MCConfiguration>

Oh, but didn’t you hear it before breaking down? I didn’t kill such a small bearing (yet) but they usually get quite loud before fully “explode”.

Well, to make this clear:
You got to connect the motor electrically like in the final setup, but mechanically it should be completely unloaded (no shaft seal, no prop, etc. ).
If it does not start up nicely in the FOC detection, raise the detection starting current I.

How would you go about installing a temp sensor in the motor? Would need to install internally, drill a hole for two wire, and run wire up mast, more connectors? I wish there was an easier way.

Thanks! I will try it soon.

Yeah, but we didnt thought it will dismantle completly and honestly it was too much fun riding :innocent: :joy:

Mhh ok. I don’t remember anymore exactly. I did this several time with different configurations. The results were all quite the same. I also tied manually altering the settings.

What I think I understood from reading the VESC settings, the motor is not driven with VOC till it runs with a certain RPM. Undr this RPM it is considered “startup phase” and the ESC uses different settings somehow. Or?

Ok I found the correct setting.
→ Increasing “Stator Saturation Compensation” from stock 0% to 10% made all the difference!!!
Now the motor starts up every time without any cogging and stalling.
Ohh I am soooo happy now :star_struck:

The just reeased HFI setting works also great on stock settings! https://www.youtube.com/watch?v=-qV1_xyrgzs

1 Like

Very nice ! So you are riding a direct drive 56114 ?