DIY 6384 Foil Drive Assist from South Germany

Looks very nice could you share your motor settings for the Vesc I am running a 6834 with a trampa 6hp and get a little cogging when coming of foil back into the surf all is fine on the land and from a standstill in the water

These are my current foc settings I have battery current at 45a and motor at 110a

<foc_current_kp>0.0636</foc_current_kp>
<foc_current_ki>50.78</foc_current_ki>
<foc_f_zv>30000</foc_f_zv>
<foc_dt_us>0.12</foc_dt_us>
<foc_encoder_inverted>0</foc_encoder_inverted>
<foc_encoder_offset>180</foc_encoder_offset>
<foc_encoder_ratio>7</foc_encoder_ratio>
<foc_sensor_mode>0</foc_sensor_mode>
<foc_pll_kp>2000</foc_pll_kp>
<foc_pll_ki>30000</foc_pll_ki>
<foc_motor_l>3.182e-05</foc_motor_l>
<foc_motor_ld_lq_diff>1.16e-05</foc_motor_ld_lq_diff>
<foc_motor_r>0.0254</foc_motor_r>
<foc_motor_flux_linkage>0.006156</foc_motor_flux_linkage>
<foc_observer_gain>2.639e+07</foc_observer_gain>
<foc_observer_gain_slow>0.05</foc_observer_gain_slow>
<foc_observer_offset>-1</foc_observer_offset>
<foc_duty_dowmramp_kp>50</foc_duty_dowmramp_kp>
<foc_duty_dowmramp_ki>1000</foc_duty_dowmramp_ki>
<foc_start_curr_dec>1</foc_start_curr_dec>
<foc_start_curr_dec_rpm>2500</foc_start_curr_dec_rpm>
<foc_openloop_rpm>2000</foc_openloop_rpm>
<foc_openloop_rpm_low>0</foc_openloop_rpm_low>
<foc_d_gain_scale_start>0.9</foc_d_gain_scale_start>
<foc_d_gain_scale_max_mod>0.2</foc_d_gain_scale_max_mod>
<foc_sl_openloop_hyst>0.1</foc_sl_openloop_hyst>
<foc_sl_openloop_time_lock>0</foc_sl_openloop_time_lock>
<foc_sl_openloop_time_ramp>0</foc_sl_openloop_time_ramp>
<foc_sl_openloop_time>0.05</foc_sl_openloop_time>
<foc_sl_openloop_boost_q>0</foc_sl_openloop_boost_q>
<foc_sl_openloop_max_q>-1</foc_sl_openloop_max_q>
<foc_hall_table__0>255</foc_hall_table__0>
<foc_hall_table__1>255</foc_hall_table__1>
<foc_hall_table__2>255</foc_hall_table__2>
<foc_hall_table__3>255</foc_hall_table__3>
<foc_hall_table__4>255</foc_hall_table__4>
<foc_hall_table__5>255</foc_hall_table__5>
<foc_hall_table__6>255</foc_hall_table__6>
<foc_hall_table__7>255</foc_hall_table__7>
<foc_hall_interp_erpm>500</foc_hall_interp_erpm>
<foc_sl_erpm_start>2500</foc_sl_erpm_start>
<foc_sl_erpm>4000</foc_sl_erpm>
<foc_control_sample_mode>0</foc_control_sample_mode>
<foc_current_sample_mode>0</foc_current_sample_mode>
<foc_sat_comp_mode>0</foc_sat_comp_mode>
<foc_sat_comp>0</foc_sat_comp>
<foc_temp_comp>1</foc_temp_comp>
<foc_temp_comp_base_temp>0</foc_temp_comp_base_temp>
<foc_current_filter_const>0.1</foc_current_filter_const>
<foc_cc_decoupling>0</foc_cc_decoupling>
<foc_observer_type>3</foc_observer_type>
<foc_hfi_amb_mode>0</foc_hfi_amb_mode>
<foc_hfi_amb_current>60</foc_hfi_amb_current>
<foc_hfi_amb_tres>15</foc_hfi_amb_tres>
<foc_hfi_voltage_start>20</foc_hfi_voltage_start>
<foc_hfi_voltage_run>4</foc_hfi_voltage_run>
<foc_hfi_voltage_max>6</foc_hfi_voltage_max>
<foc_hfi_gain>0.3</foc_hfi_gain>
<foc_hfi_max_err>0.15</foc_hfi_max_err>
<foc_hfi_hyst>0</foc_hfi_hyst>
<foc_sl_erpm_hfi>3000</foc_sl_erpm_hfi>
<foc_hfi_start_samples>5</foc_hfi_start_samples>
<foc_hfi_obs_ovr_sec>0.001</foc_hfi_obs_ovr_sec>
<foc_hfi_samples>1</foc_hfi_samples>
<foc_offsets_cal_mode>1</foc_offsets_cal_mode>
<foc_offsets_current__0>2047.2</foc_offsets_current__0>
<foc_offsets_current__1>2048.39</foc_offsets_current__1>
<foc_offsets_current__2>2047.91</foc_offsets_current__2>
<foc_offsets_voltage__0>-0.0106</foc_offsets_voltage__0>
<foc_offsets_voltage__1>0.0073</foc_offsets_voltage__1>
<foc_offsets_voltage__2>0.0032</foc_offsets_voltage__2>
<foc_offsets_voltage_undriven__0>0</foc_offsets_voltage_undriven__0>
<foc_offsets_voltage_undriven__1>0</foc_offsets_voltage_undriven__1>
<foc_offsets_voltage_undriven__2>0</foc_offsets_voltage_undriven__2>
<foc_phase_filter_enable>1</foc_phase_filter_enable>
<foc_phase_filter_disable_fault>1</foc_phase_filter_disable_fault>
<foc_phase_filter_max_erpm>4000</foc_phase_filter_max_erpm>
<foc_mtpa_mode>0</foc_mtpa_mode>
<foc_fw_current_max>0</foc_fw_current_max>
<foc_fw_duty_start>0.9</foc_fw_duty_start>
<foc_fw_q_current_factor>0.02</foc_fw_q_current_factor>
<foc_fw_ramp_time>0.2</foc_fw_ramp_time>
<foc_speed_soure>0</foc_speed_soure>
<foc_short_ls_on_zero_duty>0</foc_short_ls_on_zero_duty>
<foc_overmod_factor>1</foc_overmod_factor>

Hi, no problem. Unfortunately I haven’t gotten around to the pool test yet. I’ll be able to say more in three weeks when I’m by the sea. But here are my settings.

<?xml version="1.0" encoding="UTF-8"?>
<MCConfiguration>
    <ConfigVersion>4</ConfigVersion>
    <pwm_mode>1</pwm_mode>
    <comm_mode>0</comm_mode>
    <motor_type>2</motor_type>
    <sensor_mode>0</sensor_mode>
    <l_current_max>180</l_current_max>
    <l_current_min>-50</l_current_min>
    <l_in_current_max>150</l_in_current_max>
    <l_in_current_min>-50</l_in_current_min>
    <l_in_current_map_start>1</l_in_current_map_start>
    <l_in_current_map_filter>0.005</l_in_current_map_filter>
    <l_abs_current_max>200</l_abs_current_max>
    <l_min_erpm>-100000</l_min_erpm>
    <l_max_erpm>100000</l_max_erpm>
    <l_erpm_start>0.8</l_erpm_start>
    <l_max_erpm_fbrake>300</l_max_erpm_fbrake>
    <l_max_erpm_fbrake_cc>1500</l_max_erpm_fbrake_cc>
    <l_min_vin>15</l_min_vin>
    <l_max_vin>60</l_max_vin>
    <l_battery_cut_start>38.4</l_battery_cut_start>
    <l_battery_cut_end>34.2</l_battery_cut_end>
    <l_battery_regen_cut_start>1000</l_battery_regen_cut_start>
    <l_battery_regen_cut_end>1100</l_battery_regen_cut_end>
    <l_slow_abs_current>0</l_slow_abs_current>
    <l_temp_fet_start>85</l_temp_fet_start>
    <l_temp_fet_end>100</l_temp_fet_end>
    <l_temp_motor_start>85</l_temp_motor_start>
    <l_temp_motor_end>100</l_temp_motor_end>
    <l_temp_accel_dec>0.15</l_temp_accel_dec>
    <l_min_duty>0.005</l_min_duty>
    <l_max_duty>0.95</l_max_duty>
    <l_watt_max>1.5e+06</l_watt_max>
    <l_watt_min>-1.5e+06</l_watt_min>
    <l_current_max_scale>1</l_current_max_scale>
    <l_current_min_scale>1</l_current_min_scale>
    <l_duty_start>1</l_duty_start>
    <sl_min_erpm>150</sl_min_erpm>
    <sl_min_erpm_cycle_int_limit>1100</sl_min_erpm_cycle_int_limit>
    <sl_max_fullbreak_current_dir_change>10</sl_max_fullbreak_current_dir_change>
    <sl_cycle_int_limit>62</sl_cycle_int_limit>
    <sl_phase_advance_at_br>0.8</sl_phase_advance_at_br>
    <sl_cycle_int_rpm_br>80000</sl_cycle_int_rpm_br>
    <sl_bemf_coupling_k>600</sl_bemf_coupling_k>
    <hall_table__0>-1</hall_table__0>
    <hall_table__1>1</hall_table__1>
    <hall_table__2>3</hall_table__2>
    <hall_table__3>2</hall_table__3>
    <hall_table__4>5</hall_table__4>
    <hall_table__5>6</hall_table__5>
    <hall_table__6>4</hall_table__6>
    <hall_table__7>-1</hall_table__7>
    <hall_sl_erpm>2000</hall_sl_erpm>
    <foc_current_kp>0.0458</foc_current_kp>
    <foc_current_ki>47.78</foc_current_ki>
    <foc_f_zv>30000</foc_f_zv>
    <foc_dt_us>0.12</foc_dt_us>
    <foc_encoder_inverted>0</foc_encoder_inverted>
    <foc_encoder_offset>180</foc_encoder_offset>
    <foc_encoder_ratio>7</foc_encoder_ratio>
    <foc_sensor_mode>0</foc_sensor_mode>
    <foc_pll_kp>2000</foc_pll_kp>
    <foc_pll_ki>30000</foc_pll_ki>
    <foc_motor_l>2.289e-05</foc_motor_l>
    <foc_motor_ld_lq_diff>6.59e-06</foc_motor_ld_lq_diff>
    <foc_motor_r>0.0239</foc_motor_r>
    <foc_motor_flux_linkage>0.005339</foc_motor_flux_linkage>
    <foc_observer_gain>3.508e+07</foc_observer_gain>
    <foc_observer_gain_slow>0.05</foc_observer_gain_slow>
    <foc_observer_offset>-1</foc_observer_offset>
    <foc_duty_dowmramp_kp>50</foc_duty_dowmramp_kp>
    <foc_duty_dowmramp_ki>1000</foc_duty_dowmramp_ki>
    <foc_start_curr_dec>1</foc_start_curr_dec>
    <foc_start_curr_dec_rpm>2500</foc_start_curr_dec_rpm>
    <foc_openloop_rpm>1200</foc_openloop_rpm>
    <foc_openloop_rpm_low>0.1</foc_openloop_rpm_low>
    <foc_d_gain_scale_start>0.9</foc_d_gain_scale_start>
    <foc_d_gain_scale_max_mod>0.9</foc_d_gain_scale_max_mod>
    <foc_sl_openloop_hyst>0.1</foc_sl_openloop_hyst>
    <foc_sl_openloop_time_lock>0</foc_sl_openloop_time_lock>
    <foc_sl_openloop_time_ramp>0.1</foc_sl_openloop_time_ramp>
    <foc_sl_openloop_time>0.05</foc_sl_openloop_time>
    <foc_sl_openloop_boost_q>0</foc_sl_openloop_boost_q>
    <foc_sl_openloop_max_q>-1</foc_sl_openloop_max_q>
    <foc_hall_table__0>255</foc_hall_table__0>
    <foc_hall_table__1>255</foc_hall_table__1>
    <foc_hall_table__2>255</foc_hall_table__2>
    <foc_hall_table__3>255</foc_hall_table__3>
    <foc_hall_table__4>255</foc_hall_table__4>
    <foc_hall_table__5>255</foc_hall_table__5>
    <foc_hall_table__6>255</foc_hall_table__6>
    <foc_hall_table__7>255</foc_hall_table__7>
    <foc_hall_interp_erpm>500</foc_hall_interp_erpm>
    <foc_sl_erpm_start>2500</foc_sl_erpm_start>
    <foc_sl_erpm>3500</foc_sl_erpm>
    <foc_control_sample_mode>1</foc_control_sample_mode>
    <foc_current_sample_mode>1</foc_current_sample_mode>
    <foc_sat_comp_mode>0</foc_sat_comp_mode>
    <foc_sat_comp>0</foc_sat_comp>
    <foc_temp_comp>0</foc_temp_comp>
    <foc_temp_comp_base_temp>25</foc_temp_comp_base_temp>
    <foc_current_filter_const>0.1</foc_current_filter_const>
    <foc_cc_decoupling>0</foc_cc_decoupling>
    <foc_observer_type>0</foc_observer_type>
    <foc_hfi_amb_mode>0</foc_hfi_amb_mode>
    <foc_hfi_amb_current>60</foc_hfi_amb_current>
    <foc_hfi_amb_tres>15</foc_hfi_amb_tres>
    <foc_hfi_voltage_start>20</foc_hfi_voltage_start>
    <foc_hfi_voltage_run>4</foc_hfi_voltage_run>
    <foc_hfi_voltage_max>6</foc_hfi_voltage_max>
    <foc_hfi_gain>0.3</foc_hfi_gain>
    <foc_hfi_max_err>0.3</foc_hfi_max_err>
    <foc_hfi_hyst>0</foc_hfi_hyst>
    <foc_sl_erpm_hfi>3000</foc_sl_erpm_hfi>
    <foc_hfi_start_samples>5</foc_hfi_start_samples>
    <foc_hfi_obs_ovr_sec>0.001</foc_hfi_obs_ovr_sec>
    <foc_hfi_samples>1</foc_hfi_samples>
    <foc_offsets_cal_mode>1</foc_offsets_cal_mode>
    <foc_offsets_current__0>2030.7</foc_offsets_current__0>
    <foc_offsets_current__1>2031.34</foc_offsets_current__1>
    <foc_offsets_current__2>2029.84</foc_offsets_current__2>
    <foc_offsets_voltage__0>0.0016</foc_offsets_voltage__0>
    <foc_offsets_voltage__1>-0.004</foc_offsets_voltage__1>
    <foc_offsets_voltage__2>0.0024</foc_offsets_voltage__2>
    <foc_offsets_voltage_undriven__0>0</foc_offsets_voltage_undriven__0>
    <foc_offsets_voltage_undriven__1>0</foc_offsets_voltage_undriven__1>
    <foc_offsets_voltage_undriven__2>0</foc_offsets_voltage_undriven__2>
    <foc_phase_filter_enable>0</foc_phase_filter_enable>
    <foc_phase_filter_disable_fault>1</foc_phase_filter_disable_fault>
    <foc_phase_filter_max_erpm>4000</foc_phase_filter_max_erpm>
    <foc_mtpa_mode>0</foc_mtpa_mode>
    <foc_fw_current_max>0</foc_fw_current_max>
    <foc_fw_duty_start>0.9</foc_fw_duty_start>
    <foc_fw_q_current_factor>0.02</foc_fw_q_current_factor>
    <foc_fw_ramp_time>0.2</foc_fw_ramp_time>
    <foc_speed_soure>0</foc_speed_soure>
    <foc_short_ls_on_zero_duty>0</foc_short_ls_on_zero_duty>
    <foc_overmod_factor>1</foc_overmod_factor>
    <sp_pid_loop_rate>5</sp_pid_loop_rate>
    <s_pid_kp>0.004</s_pid_kp>
    <s_pid_ki>0.004</s_pid_ki>
    <s_pid_kd>0.0001</s_pid_kd>
    <s_pid_kd_filter>0.2</s_pid_kd_filter>
    <s_pid_min_erpm>900</s_pid_min_erpm>
    <s_pid_allow_braking>1</s_pid_allow_braking>
    <s_pid_ramp_erpms_s>25000</s_pid_ramp_erpms_s>
    <s_pid_speed_source>0</s_pid_speed_source>
    <p_pid_kp>0.025</p_pid_kp>
    <p_pid_ki>0</p_pid_ki>
    <p_pid_kd>0</p_pid_kd>
    <p_pid_offset>0</p_pid_offset>
    <p_pid_kd_proc>0.00035</p_pid_kd_proc>
    <p_pid_kd_filter>0.2</p_pid_kd_filter>
    <p_pid_ang_div>1</p_pid_ang_div>
    <p_pid_gain_dec_angle>0</p_pid_gain_dec_angle>
    <cc_startup_boost_duty>0.01</cc_startup_boost_duty>
    <cc_min_current>0.05</cc_min_current>
    <cc_gain>0.0046</cc_gain>
    <cc_ramp_step_max>0.04</cc_ramp_step_max>
    <m_fault_stop_time_ms>500</m_fault_stop_time_ms>
    <m_duty_ramp_step>0.02</m_duty_ramp_step>
    <m_current_backoff_gain>0.5</m_current_backoff_gain>
    <m_encoder_counts>8192</m_encoder_counts>
    <m_encoder_sin_amp>1</m_encoder_sin_amp>
    <m_encoder_cos_amp>1</m_encoder_cos_amp>
    <m_encoder_sin_offset>1.65</m_encoder_sin_offset>
    <m_encoder_cos_offset>1.65</m_encoder_cos_offset>
    <m_encoder_sincos_filter_constant>0.5</m_encoder_sincos_filter_constant>
    <m_encoder_sincos_phase_correction>0</m_encoder_sincos_phase_correction>
    <m_sensor_port_mode>0</m_sensor_port_mode>
    <m_invert_direction>1</m_invert_direction>
    <m_drv8301_oc_mode>0</m_drv8301_oc_mode>
    <m_drv8301_oc_adj>16</m_drv8301_oc_adj>
    <m_bldc_f_sw_min>3000</m_bldc_f_sw_min>
    <m_bldc_f_sw_max>35000</m_bldc_f_sw_max>
    <m_dc_f_sw>25000</m_dc_f_sw>
    <m_ntc_motor_beta>3380</m_ntc_motor_beta>
    <m_out_aux_mode>0</m_out_aux_mode>
    <m_motor_temp_sens_type>8</m_motor_temp_sens_type>
    <m_ptc_motor_coeff>0.61</m_ptc_motor_coeff>
    <m_ntcx_ptcx_res>10000</m_ntcx_ptcx_res>
    <m_ntcx_ptcx_temp_base>25</m_ntcx_ptcx_temp_base>
    <m_hall_extra_samples>2</m_hall_extra_samples>
    <m_batt_filter_const>45</m_batt_filter_const>
    <si_motor_poles>14</si_motor_poles>
    <si_gear_ratio>3</si_gear_ratio>
    <si_wheel_diameter>0.083</si_wheel_diameter>
    <si_battery_type>0</si_battery_type>
    <si_battery_cells>3</si_battery_cells>
    <si_battery_ah>6</si_battery_ah>
    <si_motor_nl_current>1</si_motor_nl_current>
    <motor_brand></motor_brand>
    <motor_model></motor_model>
    <motor_weight>0</motor_weight>
    <motor_sensor_type>0</motor_sensor_type>
    <motor_description></motor_description>
    <motor_quality_bearings>0</motor_quality_bearings>
    <motor_quality_magnets>0</motor_quality_magnets>
    <motor_quality_construction>0</motor_quality_construction>
    <motor_quality_description></motor_quality_description>
    <bms.type>0</bms.type>
    <bms.limit_mode>3</bms.limit_mode>
    <bms.t_limit_start>45</bms.t_limit_start>
    <bms.t_limit_end>65</bms.t_limit_end>
    <bms.soc_limit_start>0.05</bms.soc_limit_start>
    <bms.soc_limit_end>0</bms.soc_limit_end>
    <bms.vmin_limit_start>2.9</bms.vmin_limit_start>
    <bms.vmin_limit_end>2.5</bms.vmin_limit_end>
    <bms.vmax_limit_start>4.2</bms.vmax_limit_start>
    <bms.vmax_limit_end>4.3</bms.vmax_limit_end>
    <bms.fwd_can_mode>0</bms.fwd_can_mode>
</MCConfiguration>

Cheers, you will have plenty of power with those current settings may be worth dropping the erpm a bit also i have found duty cycle control seems better in the surf seem to get less spin up when the props out of the water, I will keep tweaking, let me know how the pool and sea trials go.

1 Like