Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit 93506d4

Browse files
committed
Add torque sensor threshold
1 parent cb200a0 commit 93506d4

6 files changed

Lines changed: 31 additions & 14 deletions

File tree

firmware/common/include/eeprom.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ typedef struct eeprom_data {
152152
uint8_t ui8_adc_lights_current_offset;
153153
uint8_t ui8_throttle_virtual_step;
154154
uint8_t ui8_torque_sensor_filter;
155+
uint8_t ui8_torque_sensor_adc_threshold;
155156
uint8_t ui8_coast_brake_enable;
156157

157158
// FIXME align to 32 bit value by end of structure and pack other fields
@@ -280,6 +281,7 @@ void eeprom_init_defaults(void);
280281
#define DEFAULT_ADC_LIGHTS_CURRENT_OFFSET 1
281282
#define DEFAULT_THROTTLE_VIRTUAL_STEP 5
282283
#define DEFAULT_TORQUE_SENSOR_FILTER 20 // 20%
284+
#define DEFAULT_TORQUE_SENSOR_ADC_THRESHOLD 20
283285
#define DEFAULT_COAST_BRAKE_ENABLE 0 // disable
284286

285287
#define BICYCLE_1

firmware/common/include/state.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ typedef struct rt_vars_struct {
139139
uint16_t ui16_adc_battery_current;
140140
uint8_t ui8_throttle_virtual;
141141
uint8_t ui8_torque_sensor_filter;
142+
uint8_t ui8_torque_sensor_adc_threshold;
142143
uint8_t ui8_coast_brake_enable;
143144

144145
battery_energy_h_km_t battery_energy_h_km;
@@ -350,6 +351,7 @@ typedef struct ui_vars_struct {
350351
uint8_t ui8_throttle_virtual;
351352
uint8_t ui8_throttle_virtual_step;
352353
uint8_t ui8_torque_sensor_filter;
354+
uint8_t ui8_torque_sensor_adc_threshold;
353355
uint8_t ui8_coast_brake_enable;
354356
} ui_vars_t;
355357

firmware/common/include/uart.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ uint8_t* uart_get_tx_buffer(void);
88
void uart_send_tx_buffer(uint8_t *tx_buffer, uint8_t ui8_len);
99

1010
#define UART_NUMBER_DATA_BYTES_TO_RECEIVE 29
11-
#define UART_NUMBER_DATA_BYTES_TO_SEND 87
11+
#define UART_NUMBER_DATA_BYTES_TO_SEND 88
1212

firmware/common/src/configscreen.c

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ static Field wheelMenus[] =
99
FIELD_EDITABLE_UINT(_S("Circumference", "Circumfere"), &ui_vars.ui16_wheel_perimeter, "mm", 750, 3000, .inc_step = 10),
1010
FIELD_END };
1111

12+
static Field batterySOCMenus[] =
13+
{
14+
FIELD_EDITABLE_ENUM("Text", &ui_vars.ui8_battery_soc_enable, "disable", "SOC %", "volts"),
15+
FIELD_EDITABLE_UINT(_S("Reset at voltage", "Reset at"), &ui_vars.ui16_battery_voltage_reset_wh_counter_x10, "volts", 160, 630, .div_digits = 1),
16+
FIELD_EDITABLE_UINT(_S("Battery total Wh", "Batt total"), &ui_vars.ui32_wh_x10_100_percent, "whr", 0, 9990, .div_digits = 1, .inc_step = 100),
17+
FIELD_EDITABLE_UINT("Used Wh", &ui_vars.ui32_wh_x10, "whr", 0, 99900, .div_digits = 1, .inc_step = 100, .onSetEditable = onSetConfigurationBatterySOCUsedWh),
18+
FIELD_END };
19+
1220
static Field batteryMenus[] =
1321
{
1422
FIELD_EDITABLE_UINT(_S("Max current", "Max curren"), &ui_vars.ui8_battery_max_current, "amps", 1, 20),
@@ -20,14 +28,6 @@ static Field batteryMenus[] =
2028
FIELD_READONLY_UINT(_S("Power loss est", "Power loss"), &ui_vars.ui16_battery_power_loss, "watts", false, .div_digits = 0),
2129
FIELD_END };
2230

23-
static Field batterySOCMenus[] =
24-
{
25-
FIELD_EDITABLE_ENUM("Text", &ui_vars.ui8_battery_soc_enable, "disable", "SOC %", "volts"),
26-
FIELD_EDITABLE_UINT(_S("Reset at voltage", "Reset at"), &ui_vars.ui16_battery_voltage_reset_wh_counter_x10, "volts", 160, 630, .div_digits = 1),
27-
FIELD_EDITABLE_UINT(_S("Battery total Wh", "Batt total"), &ui_vars.ui32_wh_x10_100_percent, "whr", 0, 9990, .div_digits = 1, .inc_step = 100),
28-
FIELD_EDITABLE_UINT("Used Wh", &ui_vars.ui32_wh_x10, "whr", 0, 99900, .div_digits = 1, .inc_step = 100, .onSetEditable = onSetConfigurationBatterySOCUsedWh),
29-
FIELD_END };
30-
3131
static Field motorMenus[] = {
3232
FIELD_EDITABLE_ENUM(_S("Motor voltage", "Motor volt"), &ui_vars.ui8_motor_type, "48V", "36V"),
3333
FIELD_EDITABLE_UINT(_S("Max current", "Max curren"), &ui_vars.ui8_motor_max_current, "amps", 1, 30),
@@ -37,7 +37,7 @@ static Field motorMenus[] = {
3737
FIELD_EDITABLE_ENUM(_S("Field weakening", "Field weak"), &ui_vars.ui8_field_weakening, "disable", "enable"),
3838
FIELD_END };
3939

40-
static Field torqueSensorMenus[] =
40+
static Field torqueSensorCalibrationMenus[] =
4141
{
4242
FIELD_EDITABLE_ENUM(_S("Calibration", "Calibrat"), &ui_vars.ui8_torque_sensor_calibration_feature_enabled, "disable", "enable"),
4343
FIELD_EDITABLE_UINT(_S("Torque sensor filter", "Torq s fil"), &ui_vars.ui8_torque_sensor_filter, "", 0, 100),
@@ -76,6 +76,15 @@ static Field torqueSensorMenus[] =
7676
FIELD_EDITABLE_UINT("Right ADC 8", &ui_vars.ui16_torque_sensor_calibration_table_right[7][1], "", 0, 1023),
7777
FIELD_END };
7878

79+
static Field torqueSensorMenus[] =
80+
{
81+
FIELD_EDITABLE_UINT(_S("Torque sensor ADC threshold", "Torq s thr"), &ui_vars.ui8_torque_sensor_adc_threshold, "", 5, 75),
82+
FIELD_EDITABLE_ENUM(_S("Assist w/o pedal rot", "A w/o ped"), &ui_vars.ui8_motor_assistance_startup_without_pedal_rotation, "disable", "enable"), // FIXME, share one array of disable/enable strings
83+
FIELD_EDITABLE_ENUM(_S("Coast brake", "Coast brak"), &ui_vars.ui8_coast_brake_enable, "disable", "enable"),
84+
FIELD_EDITABLE_UINT(_S("Coast brake ADC", "Coa bk ADC"), &ui_vars.ui8_coast_brake_adc, "", 5, 255),
85+
FIELD_SCROLLABLE("Calibration", torqueSensorCalibrationMenus),
86+
FIELD_END };
87+
7988
static Field assistMenus[] =
8089
{
8190
FIELD_EDITABLE_UINT(_S("Num assist levels", "Num Levels"), &ui_vars.ui8_number_of_assist_levels, "", 1, 20),
@@ -195,9 +204,6 @@ static Field variousMenus[] = {
195204
FIELD_EDITABLE_ENUM(_S("Cadence fast stop", "Cadenc stp"), &ui_vars.ui8_pedal_cadence_fast_stop, "no", "yes"),
196205
FIELD_EDITABLE_UINT(_S("ADC lights offset", "ADC lights"), &ui_vars.ui8_adc_lights_current_offset, "", 0, 4),
197206
FIELD_EDITABLE_UINT(_S("Virtual throttle step", "V thr step"), &ui_vars.ui8_throttle_virtual_step, "", 1, 100),
198-
FIELD_EDITABLE_ENUM(_S("Coast brake", "Coast brak"), &ui_vars.ui8_coast_brake_enable, "disable", "enable"),
199-
FIELD_EDITABLE_UINT(_S("Coast brake ADC", "Coa bk ADC"), &ui_vars.ui8_coast_brake_adc, "", 5, 255),
200-
FIELD_EDITABLE_ENUM(_S("Assist w/o pedal rot", "A w/o ped"), &ui_vars.ui8_motor_assistance_startup_without_pedal_rotation, "disable", "enable"), // FIXME, share one array of disable/enable strings
201207
FIELD_EDITABLE_UINT("Odometer", &ui_vars.ui32_odometer_x10, "km", 0, UINT32_MAX, .div_digits = 1, .inc_step = 100, .onSetEditable = onSetConfigurationWheelOdometer),
202208
FIELD_END };
203209

firmware/common/src/eeprom.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ const eeprom_data_t m_eeprom_data_defaults = {
275275
.ui8_adc_lights_current_offset = DEFAULT_ADC_LIGHTS_CURRENT_OFFSET,
276276
.ui8_throttle_virtual_step = DEFAULT_THROTTLE_VIRTUAL_STEP,
277277
.ui8_torque_sensor_filter = DEFAULT_TORQUE_SENSOR_FILTER,
278+
.ui8_torque_sensor_adc_threshold = DEFAULT_TORQUE_SENSOR_FILTER,
278279
.ui8_coast_brake_enable = DEFAULT_COAST_BRAKE_ENABLE,
279280
};
280281

@@ -569,6 +570,8 @@ void eeprom_init_variables(void) {
569570
m_eeprom_data.ui8_throttle_virtual_step;
570571
ui_vars->ui8_torque_sensor_filter =
571572
m_eeprom_data.ui8_torque_sensor_filter;
573+
ui_vars->ui8_torque_sensor_adc_threshold =
574+
m_eeprom_data.ui8_torque_sensor_adc_threshold;
572575
ui_vars->ui8_coast_brake_enable =
573576
m_eeprom_data.ui8_coast_brake_enable;
574577
}
@@ -753,6 +756,8 @@ void eeprom_write_variables(void) {
753756
ui_vars->ui8_throttle_virtual_step;
754757
m_eeprom_data.ui8_torque_sensor_filter =
755758
ui_vars->ui8_torque_sensor_filter;
759+
m_eeprom_data.ui8_torque_sensor_adc_threshold =
760+
ui_vars->ui8_torque_sensor_adc_threshold;
756761
m_eeprom_data.ui8_coast_brake_enable =
757762
ui_vars->ui8_coast_brake_enable;
758763

firmware/common/src/state.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,9 @@ void rt_send_tx_package(frame_type_t type) {
300300
ui8_usart1_tx_buffer[81] = rt_vars.ui8_coast_brake_adc;
301301
ui8_usart1_tx_buffer[82] = rt_vars.ui8_adc_lights_current_offset;
302302
ui8_usart1_tx_buffer[83] = rt_vars.ui8_torque_sensor_filter;
303+
ui8_usart1_tx_buffer[84] = rt_vars.ui8_torque_sensor_adc_threshold;
303304

304-
crc_len = 85;
305+
crc_len = 86;
305306
ui8_usart1_tx_buffer[1] = crc_len;
306307
break;
307308

@@ -719,6 +720,7 @@ void copy_rt_to_ui_vars(void) {
719720
rt_vars.ui8_adc_lights_current_offset = ui_vars.ui8_adc_lights_current_offset;
720721
rt_vars.ui8_throttle_virtual = ui_vars.ui8_throttle_virtual;
721722
rt_vars.ui8_torque_sensor_filter = ui_vars.ui8_torque_sensor_filter;
723+
rt_vars.ui8_torque_sensor_adc_threshold = ui_vars.ui8_torque_sensor_adc_threshold;
722724
rt_vars.ui8_coast_brake_enable = ui_vars.ui8_coast_brake_enable;
723725
}
724726

0 commit comments

Comments
 (0)