From 37d9f55af793d66c71478febead33195bdaf9144 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 11 Oct 2023 02:28:49 +0300 Subject: [PATCH 001/219] rename encoder to sensor --- firmware/src/can/can_endpoints.c | 2 +- firmware/src/controller/controller.c | 2 +- firmware/src/main.c | 2 +- firmware/src/motor/calibration.c | 4 ++-- firmware/src/nvm/nvm.h | 8 ++++---- firmware/src/observer/observer.h | 4 ++-- firmware/src/scheduler/scheduler.c | 4 ++-- firmware/src/{encoder => sensors}/hall.c | 2 +- firmware/src/{encoder => sensors}/hall.h | 0 firmware/src/{encoder => sensors}/ma7xx.c | 2 +- firmware/src/{encoder => sensors}/ma7xx.h | 0 .../{encoder/encoder.c => sensors/sensor.c} | 18 +++++++++--------- .../{encoder/encoder.h => sensors/sensor.h} | 18 +++++++++--------- firmware/src/system/system.c | 2 +- 14 files changed, 34 insertions(+), 34 deletions(-) rename firmware/src/{encoder => sensors}/hall.c (98%) rename firmware/src/{encoder => sensors}/hall.h (100%) rename firmware/src/{encoder => sensors}/ma7xx.c (99%) rename firmware/src/{encoder => sensors}/ma7xx.h (100%) rename firmware/src/{encoder/encoder.c => sensors/sensor.c} (89%) rename firmware/src/{encoder/encoder.h => sensors/sensor.h} (84%) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 5280c9fd..86f0d9ec 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 20853127..b0a299ab 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -16,7 +16,7 @@ // * along with this program. If not, see . #include "src/system/system.h" -#include +#include #include #include "src/adc/adc.h" #include "src/motor/motor.h" diff --git a/firmware/src/main.c b/firmware/src/main.c index 0b861e6e..b481a243 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -15,7 +15,7 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#include +#include #include "src/common.h" #include "src/system/system.h" diff --git a/firmware/src/motor/calibration.c b/firmware/src/motor/calibration.c index bade3463..7f50f6b3 100644 --- a/firmware/src/motor/calibration.c +++ b/firmware/src/motor/calibration.c @@ -20,8 +20,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index eee680cb..e7fef689 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -19,9 +19,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -37,7 +37,7 @@ struct NVMStruct { MotorConfig motor_config; HallConfig hall_config; MA7xxConfig ma7xx_config; - EncoderConfig encoder_config; + SensorConfig encoder_config; ObserverConfig observer_config; ControllerConfig controller_config; CANConfig can_config; diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 4e6b4b85..f802bd4a 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -21,7 +21,7 @@ #include #include -#include +#include typedef struct { @@ -30,7 +30,7 @@ typedef struct float vel_estimate; uint16_t encoder_ticks; uint16_t encoder_half_ticks; - EncoderType encoder_type; + SensorType encoder_type; } ObserverState; typedef struct diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index 6082b1a5..8cf72afb 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -22,8 +22,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/firmware/src/encoder/hall.c b/firmware/src/sensors/hall.c similarity index 98% rename from firmware/src/encoder/hall.c rename to firmware/src/sensors/hall.c index 5ce0c1c7..39b4d190 100644 --- a/firmware/src/encoder/hall.c +++ b/firmware/src/sensors/hall.c @@ -17,7 +17,7 @@ #include #include -#include +#include #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 diff --git a/firmware/src/encoder/hall.h b/firmware/src/sensors/hall.h similarity index 100% rename from firmware/src/encoder/hall.h rename to firmware/src/sensors/hall.h diff --git a/firmware/src/encoder/ma7xx.c b/firmware/src/sensors/ma7xx.c similarity index 99% rename from firmware/src/encoder/ma7xx.c rename to firmware/src/sensors/ma7xx.c index e40a402a..8206983c 100644 --- a/firmware/src/encoder/ma7xx.c +++ b/firmware/src/sensors/ma7xx.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include static MA7xxConfig config = {0}; static MA7xxState state = {0}; diff --git a/firmware/src/encoder/ma7xx.h b/firmware/src/sensors/ma7xx.h similarity index 100% rename from firmware/src/encoder/ma7xx.h rename to firmware/src/sensors/ma7xx.h diff --git a/firmware/src/encoder/encoder.c b/firmware/src/sensors/sensor.c similarity index 89% rename from firmware/src/encoder/encoder.c rename to firmware/src/sensors/sensor.c index 60a8d3af..b9585e6c 100644 --- a/firmware/src/encoder/encoder.c +++ b/firmware/src/sensors/sensor.c @@ -17,12 +17,12 @@ #include #include -#include -#include -#include +#include +#include +#include -static EncoderConfig config = {0}; -static EncoderState state = {0}; +static SensorConfig config = {0}; +static SensorState state = {0}; void encoder_init(void) { @@ -92,7 +92,7 @@ TM_RAMFUNC float encoder_ticks_to_eangle() #endif } -EncoderType encoder_get_type(void) +SensorType encoder_get_type(void) { return state.current_encoder_type; } @@ -102,7 +102,7 @@ TM_RAMFUNC bool encoder_get_calibrated(void) return state.get_calibrated_ptr(); } -TM_RAMFUNC void encoder_set_type(EncoderType enc_type) +TM_RAMFUNC void encoder_set_type(SensorType enc_type) { #ifdef BOARD_REV_R5 if (ENCODER_MA7XX == enc_type) @@ -123,12 +123,12 @@ TM_RAMFUNC uint8_t encoder_get_errors(void) return state.get_error_ptr(); } -EncoderConfig* encoder_get_config(void) +SensorConfig* encoder_get_config(void) { return &config; } -void encoder_restore_config(EncoderConfig* config_) +void encoder_restore_config(SensorConfig* config_) { config = *config_; } diff --git a/firmware/src/encoder/encoder.h b/firmware/src/sensors/sensor.h similarity index 84% rename from firmware/src/encoder/encoder.h rename to firmware/src/sensors/sensor.h index c4bb746a..6d70f59c 100644 --- a/firmware/src/encoder/encoder.h +++ b/firmware/src/sensors/sensor.h @@ -29,22 +29,22 @@ typedef void (*void_func)(void); typedef enum { ENCODER_MA7XX = 0, ENCODER_HALL = 1 -} EncoderType; +} SensorType; typedef struct { - EncoderType current_encoder_type; + SensorType current_encoder_type; uint8_getter get_error_ptr; bool_getter get_calibrated_ptr; bool_setter update_angle_ptr; int16_getter get_angle_ptr; void_func reset_encoder_ptr; uint16_t ticks; -} EncoderState; +} SensorState; typedef struct { - EncoderType encoder_type; -} EncoderConfig; + SensorType encoder_type; +} SensorConfig; void encoder_init(void); void encoder_reset(void); @@ -55,13 +55,13 @@ void encoder_update(bool check_error); uint16_t encoder_get_ticks(void); float encoder_ticks_to_eangle(void); -EncoderType encoder_get_type(void); -void encoder_set_type(EncoderType enc_type); +SensorType encoder_get_type(void); +void encoder_set_type(SensorType enc_type); bool encoder_get_calibrated(void); uint8_t encoder_get_errors(void); -EncoderConfig* encoder_get_config(void); -void encoder_restore_config(EncoderConfig* config_); +SensorConfig* encoder_get_config(void); +void encoder_restore_config(SensorConfig* config_); diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 2a5e4d0b..7190098e 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include From 8d053004ba16e5c7ce20474f9e6c4df2e0409339 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 11 Oct 2023 02:28:58 +0300 Subject: [PATCH 002/219] initial spec refactor --- avlos_config.yaml | 2 +- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 148 +++++++++++------- 2 files changed, 96 insertions(+), 54 deletions(-) diff --git a/avlos_config.yaml b/avlos_config.yaml index 7e0989fb..1b05ef07 100644 --- a/avlos_config.yaml +++ b/avlos_config.yaml @@ -13,7 +13,7 @@ generators: - - src/adc/adc.h - src/system/system.h - - src/encoder/encoder.h + - src/sensors/sensor.h - src/observer/observer.h - src/motor/motor.h - src/scheduler/scheduler.h diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 30578409..2b0776d2 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -331,60 +331,102 @@ remote_attributes: meta: {dynamic: True} getter_name: motor_get_errors summary: Any motor/calibration errors, as a bitmask - # - name: phase_currents - # remote_attributes: - # - name: U - # dtype: float - # unit: ampere - # getter_name: motor_get_IU - # summary: Measured current in phase U. - # - name: V - # dtype: float - # unit: ampere - # getter_name: motor_get_IV - # summary: Measured current in phase V. - # - name: W - # dtype: float - # unit: ampere - # getter_name: motor_get_IW - # summary: Measured current in phase W. - - name: encoder + - name: sensors remote_attributes: - - name: position_estimate - dtype: float - unit: ticks - meta: {dynamic: True} - getter_name: observer_get_pos_estimate_user_frame - summary: The filtered encoder position estimate. - - name: velocity_estimate - dtype: float - unit: ticks/second - meta: {dynamic: True} - getter_name: observer_get_vel_estimate_user_frame - summary: The filtered encoder velocity estimate. - - name: type - options: [INTERNAL, HALL] - meta: {export: True} - getter_name: encoder_get_type - setter_name: encoder_set_type - summary: The encoder type. Either INTERNAL or HALL. - - name: bandwidth - dtype: float - unit: Hz - meta: {export: True} - getter_name: observer_get_bw - setter_name: observer_set_bw - summary: The encoder observer bandwidth. - - name: calibrated - dtype: bool - meta: {dynamic: True} - getter_name: encoder_get_calibrated - summary: Whether the encoder has been calibrated. - - name: errors - flags: [CALIBRATION_FAILED, READING_UNSTABLE] - meta: {dynamic: True} - getter_name: encoder_get_errors - summary: Any encoder errors, as a bitmask + - setup: + remote_attributes: + - name: onboard + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: + summary: Whether the encoder has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: + summary: Any encoder errors, as a bitmask + - name: external_spi + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: + summary: Whether the encoder has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: + summary: Any encoder errors, as a bitmask + - name: hall + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: + summary: Whether the encoder has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: + summary: Any encoder errors, as a bitmask + - select: + remote_attributes: + - position: + remote_attributes: + - name: type + options: [ONBOARD, SPI, HALL] + meta: {export: True} + getter_name: + setter_name: + summary: The encoder type. Either ONBOARD, external SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: + setter_name: + summary: The encoder observer bandwidth. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: observer_get_pos_estimate_user_frame + summary: The filtered encoder position estimate. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: observer_get_vel_estimate_user_frame + summary: The filtered encoder velocity estimate. + - commutation: + remote_attributes: + - name: type + options: [ONBOARD, SPI, HALL] + meta: {export: True} + getter_name: + setter_name: + summary: The encoder type. Either ONBOARD, external SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: + setter_name: + summary: The encoder observer bandwidth. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: observer_get_pos_estimate_user_frame + summary: The filtered encoder position estimate. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: observer_get_vel_estimate_user_frame + summary: The filtered encoder velocity estimate. - name: traj_planner remote_attributes: - name: max_accel From a34ece778b7076105de99821388665dc707005fd Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 28 Oct 2023 12:36:14 +0300 Subject: [PATCH 003/219] rename to sensor --- firmware/src/controller/controller.c | 4 ++-- firmware/src/observer/observer.c | 4 ++-- firmware/src/scheduler/scheduler.c | 2 +- firmware/src/sensors/sensor.c | 18 +++++++++--------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index b0a299ab..27c7e9a9 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -122,11 +122,11 @@ void Controller_ControlLoop(void) { state.is_calibrating = true; reset_calibration(); - if (ENCODER_MA7XX == encoder_get_type()) + if (SENSOR_MA7XX == encoder_get_type()) { (void)((CalibrateADCOffset() && CalibrateResistance() && CalibrateInductance()) && CalibrateDirectionAndPolePairs() && calibrate_offset_and_rectification()); } - else if (ENCODER_HALL == encoder_get_type()) + else if (SENSOR_HALL == encoder_get_type()) { (void)((CalibrateADCOffset() && CalibrateResistance() && CalibrateInductance()) && calibrate_hall_sequence()); } diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index ddadf125..0c2df93b 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -112,7 +112,7 @@ TM_RAMFUNC float observer_get_vel_estimate(void) TM_RAMFUNC float observer_get_epos(void) { - if (ENCODER_MA7XX == state.encoder_type) + if (SENSOR_MA7XX == state.encoder_type) { return state.pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); } @@ -121,7 +121,7 @@ TM_RAMFUNC float observer_get_epos(void) TM_RAMFUNC float observer_get_evel(void) { - if (ENCODER_MA7XX == state.encoder_type) + if (SENSOR_MA7XX == state.encoder_type) { return state.vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); } diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index 8cf72afb..bb8a4803 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -73,7 +73,7 @@ void WaitForControlLoopInterrupt(void) state.adc_interrupt = false; // We have to service the control loop by updating // current measurements and encoder estimates. - if (ENCODER_MA7XX == encoder_get_type()) + if (SENSOR_MA7XX == encoder_get_type()) { ma7xx_send_angle_cmd(); } diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensors/sensor.c index b9585e6c..1ae1a398 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensors/sensor.c @@ -27,11 +27,11 @@ static SensorState state = {0}; void encoder_init(void) { #ifdef BOARD_REV_R5 - if (ENCODER_MA7XX == config.encoder_type) + if (SENSOR_MA7XX == config.encoder_type) { #endif ma7xx_init(); - state.current_encoder_type = ENCODER_MA7XX; + state.current_encoder_type = SENSOR_MA7XX; state.get_error_ptr = &ma7xx_get_errors; state.get_calibrated_ptr = &ma7xx_rec_is_calibrated; state.get_angle_ptr = &ma7xx_get_angle_rectified; @@ -40,10 +40,10 @@ void encoder_init(void) state.ticks = ENCODER_TICKS; #ifdef BOARD_REV_R5 } - else if (ENCODER_HALL == config.encoder_type) + else if (SENSOR_HALL == config.encoder_type) { hall_init(); - state.current_encoder_type = ENCODER_HALL; + state.current_encoder_type = SENSOR_HALL; state.get_error_ptr = &hall_get_errors; state.get_calibrated_ptr = &hall_sector_map_is_calibrated; state.get_angle_ptr = &hall_get_angle; @@ -82,7 +82,7 @@ TM_RAMFUNC float encoder_ticks_to_eangle() #ifdef BOARD_REV_R5 // We need to derive this during call, because the motor pole pairs // may change after calibration, or after user input - if (ENCODER_MA7XX == state.current_encoder_type) + if (SENSOR_MA7XX == state.current_encoder_type) { #endif return twopi_by_enc_ticks * motor_get_pole_pairs(); @@ -105,15 +105,15 @@ TM_RAMFUNC bool encoder_get_calibrated(void) TM_RAMFUNC void encoder_set_type(SensorType enc_type) { #ifdef BOARD_REV_R5 - if (ENCODER_MA7XX == enc_type) + if (SENSOR_MA7XX == enc_type) { #endif - config.encoder_type = ENCODER_MA7XX; + config.encoder_type = SENSOR_MA7XX; #ifdef BOARD_REV_R5 } - else if (ENCODER_HALL == enc_type) + else if (SENSOR_HALL == enc_type) { - config.encoder_type = ENCODER_HALL; + config.encoder_type = SENSOR_HALL; } #endif } From f3203bf75d8963b068b53758d47773e1cfc1cfc8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 28 Oct 2023 12:36:38 +0300 Subject: [PATCH 004/219] refactor sensor --- firmware/src/common.h | 6 +++++ firmware/src/sensors/sensor.h | 51 +++++++++++++++-------------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index d64398d9..3ac53d18 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -151,4 +151,10 @@ typedef struct static const FloatTriplet three_phase_zero = {0.5f, 0.5f, 0.5f}; +typedef bool (*bool_getter)(void); +typedef void (*bool_setter)(bool); +typedef uint8_t (*uint8_getter)(void); +typedef int16_t (*int16_getter)(void); +typedef void (*void_func)(void); + #endif // #ifndef COMMON_H diff --git a/firmware/src/sensors/sensor.h b/firmware/src/sensors/sensor.h index 6d70f59c..b9bb3c70 100644 --- a/firmware/src/sensors/sensor.h +++ b/firmware/src/sensors/sensor.h @@ -19,49 +19,42 @@ #include -// TODO: Make external in a separate unit -typedef bool (*bool_getter)(void); -typedef void (*bool_setter)(bool); -typedef uint8_t (*uint8_getter)(void); -typedef int16_t (*int16_getter)(void); -typedef void (*void_func)(void); - typedef enum { - ENCODER_MA7XX = 0, - ENCODER_HALL = 1 + SENSOR_MA7XX = 0, + SENSOR_HALL = 1 } SensorType; typedef struct { - SensorType current_encoder_type; + SensorType desired_sensor_type; +} SensorConfig; + +typedef struct { + SensorType actual_sensor_type; uint8_getter get_error_ptr; bool_getter get_calibrated_ptr; bool_setter update_angle_ptr; int16_getter get_angle_ptr; - void_func reset_encoder_ptr; + void_func reset_sensor_ptr; uint16_t ticks; -} SensorState; - -typedef struct -{ - SensorType encoder_type; -} SensorConfig; + SensorConfig config; +} Sensor; -void encoder_init(void); -void encoder_reset(void); +void sensor_init(Sensor *s); +void sensor_reset(Sensor *s); -int16_t encoder_get_angle(void); -void encoder_update(bool check_error); +int16_t sensor_get_angle(Sensor *s); +void sensor_update(Sensor *s, bool check_error); -uint16_t encoder_get_ticks(void); -float encoder_ticks_to_eangle(void); +uint16_t sensor_get_ticks(Sensor *s); +float sensor_ticks_to_eangle(Sensor *s); -SensorType encoder_get_type(void); -void encoder_set_type(SensorType enc_type); +SensorType sensor_get_type(Sensor *s); +void sensor_set_type(Sensor *s, SensorType sensor_type); -bool encoder_get_calibrated(void); +bool sensor_get_calibrated(Sensor *s); -uint8_t encoder_get_errors(void); +uint8_t sensor_get_errors(Sensor *s); -SensorConfig* encoder_get_config(void); -void encoder_restore_config(SensorConfig* config_); +SensorConfig* sensor_get_config(Sensor *s); +void sensor_restore_config(Sensor *s, SensorConfig* config_); From 4a3787eaa3553844e5a696212bcd933170899879 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 30 Oct 2023 01:04:02 +0200 Subject: [PATCH 005/219] refactor sensors for modularity --- firmware/src/sensors/hall.c | 37 +--------- firmware/src/sensors/hall.h | 49 +++++++++---- firmware/src/sensors/ma7xx.c | 110 +++++++++++------------------ firmware/src/sensors/ma7xx.h | 91 ++++++++++++++++-------- firmware/src/sensors/sensor.c | 128 +++++++--------------------------- firmware/src/sensors/sensor.h | 120 +++++++++++++++++++++++++------ 6 files changed, 261 insertions(+), 274 deletions(-) diff --git a/firmware/src/sensors/hall.c b/firmware/src/sensors/hall.c index 39b4d190..c6713a97 100644 --- a/firmware/src/sensors/hall.c +++ b/firmware/src/sensors/hall.c @@ -22,9 +22,6 @@ #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 -static HallConfig config = {0}; -static HallState state = {0}; - void hall_init(void) { pac5xxx_tile_register_write(ADDR_CFGAIO7, AIO6789_IO_MODE | AIO_INPUT); @@ -32,31 +29,9 @@ void hall_init(void) pac5xxx_tile_register_write(ADDR_CFGAIO9, AIO6789_IO_MODE | AIO_INPUT); } -TM_RAMFUNC uint8_t hall_get_errors(void) +void hall_deinit(Sensor *s) { - return state.errors; -} - -TM_RAMFUNC uint8_t *hall_get_error_ptr(void) -{ - return &(state.errors); -} -TM_RAMFUNC int16_t hall_get_angle(void) -{ - return state.angle; -} - -TM_RAMFUNC void hall_update(bool check_error) -{ - const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; - state.sector = sector; - state.angle = config.sector_map[state.sector]; -} - -TM_RAMFUNC uint8_t hall_get_sector(void) -{ - return state.sector; } void hall_clear_sector_map(void) @@ -79,13 +54,3 @@ uint8_t *hall_get_sector_map_ptr(void) { return config.sector_map; } - -HallConfig* hall_get_config(void) -{ - return &config; -} - -void hall_restore_config(HallConfig* config_) -{ - config = *config_; -} \ No newline at end of file diff --git a/firmware/src/sensors/hall.h b/firmware/src/sensors/hall.h index bea71aac..9c658370 100644 --- a/firmware/src/sensors/hall.h +++ b/firmware/src/sensors/hall.h @@ -17,34 +17,53 @@ #pragma once -#include +#include typedef struct { uint8_t sector_map[8]; bool sector_map_calibrated; -} HallConfig; +} HallSensorConfig; typedef struct { uint8_t errors; uint16_t angle; uint8_t sector; -} HallState; +} HallSensorState; -void hall_init(void); +Sensor hall_init(void); +Sensor hall_init_with_config(SensorSpecificConfig *c); +void hall_deinit(Sensor *s); -uint8_t hall_get_errors(void); -uint8_t *hall_get_error_ptr(void); +void hall_clear_sector_map(Sensor *s); +void hall_set_sector_map_calibrated(Sensor *s); +bool hall_sector_map_is_calibrated(Sensor *s); +uint8_t *hall_get_sector_map_ptr(Sensor *s); -int16_t hall_get_angle(void); -void hall_update(bool check_error); -uint8_t hall_get_sector(void); +inline uint8_t hall_get_errors(Sensor *s) +{ + return s->state.hall_state.errors; +} + +inline uint8_t *hall_get_error_ptr(Sensor *s) +{ + return &(s->state.hall_state.errors); +} -void hall_clear_sector_map(void); -void hall_set_sector_map_calibrated(void); -bool hall_sector_map_is_calibrated(void); -uint8_t *hall_get_sector_map_ptr(void); +inline int16_t hall_get_angle(Sensor *s) +{ + return s->state.hall_state.angle; +} -HallConfig* hall_get_config(void); -void hall_restore_config(HallConfig* config_); \ No newline at end of file +inline void hall_update(Sensor *s, bool check_error) +{ + const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; + s->state.hall_state.sector = sector; + s->state.hall_state.angle = config.sector_map[state.sector]; +} + +inline uint8_t hall_get_sector(Sensor *s) +{ + return s->state.hall_state.sector; +} \ No newline at end of file diff --git a/firmware/src/sensors/ma7xx.c b/firmware/src/sensors/ma7xx.c index 8206983c..bd3952a1 100644 --- a/firmware/src/sensors/ma7xx.c +++ b/firmware/src/sensors/ma7xx.c @@ -22,109 +22,77 @@ #include #include -static MA7xxConfig config = {0}; -static MA7xxState state = {0}; +// ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0) - -void ma7xx_init(void) -{ - ssp_init(PRIMARY_ENCODER_SSP_PORT, SSP_MS_MASTER, 0, 0); // Mode 0 - delay_us(16000); // ensure 16ms sensor startup time as per the datasheet - ma7xx_send_angle_cmd(); - ma7xx_update(false); -} - -TM_RAMFUNC uint8_t ma7xx_get_errors(void) -{ - return state.errors; -} - -TM_RAMFUNC void ma7xx_send_angle_cmd(void) -{ - ssp_write_one(PRIMARY_ENCODER_SSP_STRUCT, MA_CMD_ANGLE); -} - -TM_RAMFUNC int16_t ma7xx_get_angle_raw(void) +Sensor ma7xx_init_with_ssp_port(SSP_TYPE ssp) { - return state.angle; + MA7xxConfig c = {0}; + c.ssp_port = ssp; + return ma7xx_init_with_config(*c); } -TM_RAMFUNC int16_t ma7xx_get_angle_rectified(void) +Sensor ma7xx_init_with_config(SensorSpecificConfig *c) { - const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); - const int16_t angle = state.angle; - const int16_t off_1 = config.rec_table[angle>>offset_bits]; - const int16_t off_2 = config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); - return angle + off_interp; -} - -TM_RAMFUNC void ma7xx_update(bool check_error) -{ - const int16_t angle = ssp_read_one(PRIMARY_ENCODER_SSP_STRUCT) >> 3; - - if (check_error) - { - const int16_t delta = state.angle - angle; - if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && - ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && - ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) - { - state.errors |= ENCODER_ERRORS_READING_UNSTABLE; - } - } - state.angle = angle; + Sensor s; + s->read_func = ma7xx_get_angle_rectified; + s->update_func = ma7xx_update; + s->reset_func = ma7xx_clear_rec_table; + s->get_error_func = ma7xx_get_errors; + s->is_calibrated_func = ma7xx_rec_is_calibrated; + s->config = *c; + MA7xxConfig *c = s->config.ss_config.ma7xx_config; + ssp_init(c->ssp_port, SSP_MS_MASTER, 0, 0); // ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0 + delay_us(16000); // ensure 16ms sensor startup time as per the datasheet + ma7xx_send_angle_cmd(&s); + ma7xx_update(&s, false); + return s; } -void ma7xx_clear_rec_table(void) +void ma7xx_deinit(Sensor *s) { - (void)memset(config.rec_table, 0, sizeof(config.rec_table)); - config.rec_calibrated = false; -} -void ma7xx_set_rec_calibrated(void) -{ - config.rec_calibrated = true; } -bool ma7xx_rec_is_calibrated(void) +void ma7xx_clear_rec_table(Sensor *s) { - return config.rec_calibrated; + MA7xxConfig *c = s->config.ss_config.ma7xx_config; + (void)memset(c->rec_table, 0, sizeof(c->rec_table)); + c->rec_calibrated = false; } -int16_t *ma7xx_get_rec_table_ptr(void) +void ma7xx_set_rec_calibrated(Sensor *s) { - return config.rec_table; + s->config.ss_config.ma7xx_config.rec_calibrated = true; } -MA7xxConfig* ma7xx_get_config(void) +bool ma7xx_rec_is_calibrated(Sensor *s) { - return &config; + return s->config.ss_config.ma7xx_config.rec_calibrated; } -void ma7xx_restore_config(MA7xxConfig* config_) +int16_t *ma7xx_get_rec_table_ptr(Sensor *s) { - config = *config_; + return s->config.ss_config.ma7xx_config.rec_table; } /** - * @brief Write to a register of the encoder + * @brief Write to a register of the sensor * * @param reg The 5-bit register address * @param value The value to write * @return uint16_t */ -uint16_t ma7xx_write_reg(uint8_t reg, uint8_t value) +uint16_t ma7xx_write_reg(Sensor *s, uint8_t reg, uint8_t value) { uint16_t cmd = MA_CMD_WRITE | reg << 8 | value; - uint32_t result = ssp_write_one(PRIMARY_ENCODER_SSP_STRUCT, cmd); + uint32_t result = ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, cmd); // Delay at least 20ms to let the encoder write to memory delay_us(20100); - result |= ssp_write_one(PRIMARY_ENCODER_SSP_STRUCT, 0); + result |= ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, 0); // The encoder returns the value written to memory, so check that it is the same as what we wrote - uint8_t retval = ssp_read_one(PRIMARY_ENCODER_SSP_STRUCT) >> 8; + uint8_t retval = ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 8; if ((retval != value) || (result != 0)) { return false; @@ -133,18 +101,18 @@ uint16_t ma7xx_write_reg(uint8_t reg, uint8_t value) } /** - * @brief Read from a register of the encoder + * @brief Read from a register of the sensor * * @param register The 5-bit register address * @return uint8_t */ -uint8_t ma7xx_read_reg(uint8_t reg) +uint8_t ma7xx_read_reg(Sensor *s, uint8_t reg) { uint16_t cmd[2] = {MA_CMD_READ | (reg << 8), 0}; - uint16_t result = ssp_write_multi(PRIMARY_ENCODER_SSP_STRUCT, cmd, 2u); + uint16_t result = ssp_write_multi(s->params.ma7xx_params.ssp_struct, cmd, 2u); if (result != 0) { return false; } - return ssp_read_one(PRIMARY_ENCODER_SSP_STRUCT) >> 8; + return ssp_read_one(s->params.ma7xx_params.ssp_struct) >> 8; } \ No newline at end of file diff --git a/firmware/src/sensors/ma7xx.h b/firmware/src/sensors/ma7xx.h index 39d0483d..94c214aa 100644 --- a/firmware/src/sensors/ma7xx.h +++ b/firmware/src/sensors/ma7xx.h @@ -17,14 +17,14 @@ #pragma once -#include +#include #if defined BOARD_REV_R3 -#define PRIMARY_ENCODER_SSP_PORT SSPD -#define PRIMARY_ENCODER_SSP_STRUCT PAC55XX_SSPD +#define ONBOARD_SENSOR_SSP_PORT SSPD +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD #elif defined BOARD_REV_R5 || defined BOARD_REV_M5 -#define PRIMARY_ENCODER_SSP_PORT SSPC -#define PRIMARY_ENCODER_SSP_STRUCT PAC55XX_SSPC +#define ONBOARD_SENSOR_SSP_PORT SSPC +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC #endif #define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) @@ -33,41 +33,74 @@ #define MIN_ALLOWED_DELTA_ADD (-MAX_ALLOWED_DELTA + ENCODER_TICKS) #define MIN_ALLOWED_DELTA_SUB (-MAX_ALLOWED_DELTA - ENCODER_TICKS) +typedef enum { + MA_CMD_NOP = 0x0000, + MA_CMD_ANGLE = 0x0000, + MA_CMD_WRITE = 0x8000, + MA_CMD_READ = 0x4000 +} MA702Command; + typedef struct { bool rec_calibrated; int16_t rec_table[ECN_SIZE]; -} MA7xxConfig; +} MA7xxSensorConfig; typedef struct { uint8_t errors; int16_t angle; uint8_t error; -} MA7xxState; +} MA7xxSensorState; -// MA702 commands -typedef enum { - MA_CMD_NOP = 0x0000, - MA_CMD_ANGLE = 0x0000, - MA_CMD_WRITE = 0x8000, - MA_CMD_READ = 0x4000 -} MA702Command; +Sensor ma7xx_init_with_ssp_port(SSP_TYPE ssp); +Sensor ma7xx_init_with_config(SensorSpecificConfig *c); +void ma7xx_deinit(Sensor *s); +void ma7xx_clear_rec_table(Sensor *s); +void ma7xx_set_rec_calibrated(Sensor *s); +bool ma7xx_rec_is_calibrated(Sensor *s); +int16_t *ma7xx_get_rec_table_ptr(Sensor *s); +uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); +uint8_t ma7xx_read_reg(Sensor *s, uint8_t); + +inline uint8_t ma7xx_get_errors(Sensor *s) +{ + return state.errors; +} + +inline void ma7xx_send_angle_cmd(Sensor *s) +{ + ssp_write_one(ONBOARD_SENSOR_SSP_STRUCT, MA_CMD_ANGLE); +} -void ma7xx_init(void); +inline int16_t ma7xx_get_angle_raw(Sensor *s) +{ + return state.angle; +} -uint8_t ma7xx_get_errors(void); -void ma7xx_send_angle_cmd(void); -int16_t ma7xx_get_angle_raw(void); -int16_t ma7xx_get_angle_rectified(void); -void ma7xx_update(bool check_error); +inline int16_t ma7xx_get_angle_rectified(Sensor *s) +{ + const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); + const int16_t angle = state.angle; + const int16_t off_1 = config.rec_table[angle>>offset_bits]; + const int16_t off_2 = config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + return angle + off_interp; +} + +inline void ma7xx_update(Sensor *s, bool check_error) +{ + const int16_t angle = ssp_read_one(ONBOARD_SENSOR_SSP_STRUCT) >> 3; -void ma7xx_clear_rec_table(void); -void ma7xx_set_rec_calibrated(void); -bool ma7xx_rec_is_calibrated(void); -int16_t *ma7xx_get_rec_table_ptr(void); -MA7xxConfig* ma7xx_get_config(void); -void ma7xx_restore_config(MA7xxConfig* config_); -uint16_t ma7xx_write_reg(uint8_t, uint8_t); -uint16_t ma7xx_write_data(uint16_t); -uint8_t ma7xx_read_reg(uint8_t); \ No newline at end of file + if (check_error) + { + const int16_t delta = state.angle - angle; + if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && + ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && + ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + { + state.errors |= ENCODER_ERRORS_READING_UNSTABLE; + } + } + state.angle = angle; +} \ No newline at end of file diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensors/sensor.c index 1ae1a398..e936af2d 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensors/sensor.c @@ -1,134 +1,60 @@ -// * This file is part of the Tinymovr-Firmware distribution -// * (https://github.com/yconst/tinymovr-firmware). -// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. -// * -// * This program is free software: you can redistribute it and/or modify -// * it under the terms of the GNU General Public License as published by -// * the Free Software Foundation, version 3. -// * -// * This program is distributed in the hope that it will be useful, but -// * WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * General Public License for more details. -// * -// * You should have received a copy of the GNU General Public License -// * along with this program. If not, see . - -#include -#include -#include -#include #include -static SensorConfig config = {0}; -static SensorState state = {0}; +static Sensor sensor; -void encoder_init(void) +void sensor_init_with_config(SensorConfig *c) { #ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == config.encoder_type) + if (SENSOR_MA7XX == c->type) { #endif - ma7xx_init(); - state.current_encoder_type = SENSOR_MA7XX; - state.get_error_ptr = &ma7xx_get_errors; - state.get_calibrated_ptr = &ma7xx_rec_is_calibrated; - state.get_angle_ptr = &ma7xx_get_angle_rectified; - state.update_angle_ptr = &ma7xx_update; - state.reset_encoder_ptr = &ma7xx_clear_rec_table; - state.ticks = ENCODER_TICKS; + return ma7xx_init(c); #ifdef BOARD_REV_R5 } - else if (SENSOR_HALL == config.encoder_type) + else if (SENSOR_HALL == s->type) { - hall_init(); - state.current_encoder_type = SENSOR_HALL; - state.get_error_ptr = &hall_get_errors; - state.get_calibrated_ptr = &hall_sector_map_is_calibrated; - state.get_angle_ptr = &hall_get_angle; - state.update_angle_ptr = &hall_update; - state.reset_encoder_ptr = &hall_clear_sector_map; - state.ticks = HALL_SECTORS; + return hall_init(p); + s->read_func = hall_get_angle; + s->update_func = hall_update; + s->reset_func = hall_clear_sector_map; + s->get_error_func = hall_get_errors; + s->is_calibrated_func = hall_sector_map_is_calibrated; + // ... fill in other function pointers and configurations } #endif + // ... (similar branches for other sensor types) } -void encoder_reset(void) -{ - state.reset_encoder_ptr(); -} - -TM_RAMFUNC int16_t encoder_get_angle(void) -{ - return state.get_angle_ptr(); -} - -TM_RAMFUNC void encoder_update(bool check_error) -{ - if (state.update_angle_ptr) - { - state.update_angle_ptr(check_error); - } -} - -TM_RAMFUNC uint16_t encoder_get_ticks(void) -{ - return state.ticks; -} - -TM_RAMFUNC float encoder_ticks_to_eangle() +void sensor_deinit(Sensor *s) { #ifdef BOARD_REV_R5 - // We need to derive this during call, because the motor pole pairs - // may change after calibration, or after user input - if (SENSOR_MA7XX == state.current_encoder_type) + if (SENSOR_MA7XX == s->type) { #endif - return twopi_by_enc_ticks * motor_get_pole_pairs(); + ma7xx_deinit(s); #ifdef BOARD_REV_R5 } - return twopi_by_hall_sectors; -#endif -} - -SensorType encoder_get_type(void) -{ - return state.current_encoder_type; -} - -TM_RAMFUNC bool encoder_get_calibrated(void) -{ - return state.get_calibrated_ptr(); -} - -TM_RAMFUNC void encoder_set_type(SensorType enc_type) -{ -#ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == enc_type) + else if (SENSOR_HALL == s->type) { -#endif - config.encoder_type = SENSOR_MA7XX; -#ifdef BOARD_REV_R5 - } - else if (SENSOR_HALL == enc_type) - { - config.encoder_type = SENSOR_HALL; + // ... fill in other function pointers and configurations } #endif + // ... (similar branches for other sensor types) } -TM_RAMFUNC uint8_t encoder_get_errors(void) +void sensor_reset(Sensor *s) { - return state.get_error_ptr(); + s->reset_func(); } -SensorConfig* encoder_get_config(void) +SensorConfig* sensor_get_config(Sensor *s) { - return &config; + return &(s->config); } -void encoder_restore_config(SensorConfig* config_) +void sensor_restore_config(Sensor *s, SensorConfig* config_) { - config = *config_; -} + s->config = *config_; + sensor_init(s); // Re-initialize sensor with restored configuration +} \ No newline at end of file diff --git a/firmware/src/sensors/sensor.h b/firmware/src/sensors/sensor.h index b9bb3c70..bdd11cdf 100644 --- a/firmware/src/sensors/sensor.h +++ b/firmware/src/sensors/sensor.h @@ -18,43 +18,119 @@ #pragma once #include +#include +#include +#include +#include typedef enum { - SENSOR_MA7XX = 0, - SENSOR_HALL = 1 -} SensorType; + SENSOR_MA7XX = 0, + SENSOR_HALL = 1, + SENSOR_AS5047 = 2, + SENSOR_AMT22 = 3 +} sensor_type_t; + +typedef union { + MA7xxSensorConfig ma7xx_config; + HallSensorConfig hall_config; + AS5047SensorConfig as5047_config; + AMT22SensorConfig amt22_config; +} SensorSpecificConfig; typedef struct { - SensorType desired_sensor_type; + SensorType configured_sensor_type; + SensorSpecificConfig ss_config; } SensorConfig; +typedef union { + MA7xxSensorState ma7xx_state; + HallSensorState hall_state; + AS5047SensorState as5047_state; + AMT22SensorState amt22_state; +} SensorSpecificState; + +// Generic sensor struct typedef struct { - SensorType actual_sensor_type; - uint8_getter get_error_ptr; - bool_getter get_calibrated_ptr; - bool_setter update_angle_ptr; - int16_getter get_angle_ptr; - void_func reset_sensor_ptr; - uint16_t ticks; + sensor_type_t type; + sensor_init_func_t init_func; + sensor_is_calibrated_func_t is_calibrated_func; + sensor_read_func_t read_func; + sensor_reset_func_t reset_func; + sensor_update_func_t update_func; + sensor_get_error_func_t get_error_func; SensorConfig config; + SensorSpecificState state; } Sensor; -void sensor_init(Sensor *s); +extern Sensor sensor; + +void sensor_init_with_config(SensorConfig *c); +void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); +SensorConfig* sensor_get_config(Sensor *s); +void sensor_restore_config(Sensor *s, SensorConfig* config_); -int16_t sensor_get_angle(Sensor *s); -void sensor_update(Sensor *s, bool check_error); +inline int16_t sensor_get_angle(Sensor *s) +{ + return s->read_func(); +} -uint16_t sensor_get_ticks(Sensor *s); -float sensor_ticks_to_eangle(Sensor *s); +inline void sensor_update(Sensor *s, bool check_error) +{ + s->update_func(check_error); +} -SensorType sensor_get_type(Sensor *s); -void sensor_set_type(Sensor *s, SensorType sensor_type); +inline uint16_t sensor_get_ticks(Sensor *s) { +#ifdef BOARD_REV_R5 + if (SENSOR_MA7XX == s->type) { +#endif + // We need to derive this during call, because the motor pole pairs + // may change after calibration, or after user input + return 6 * motor_get_pole_pairs(); +#ifdef BOARD_REV_R5 + } + return twopi_by_hall_sectors; +#endif +} -bool sensor_get_calibrated(Sensor *s); +inline float sensor_ticks_to_eangle(Sensor *s) +{ +#ifdef BOARD_REV_R5 + if (SENSOR_MA7XX == s->type) { +#endif + // We need to derive this during call, because the motor pole pairs + // may change after calibration, or after user input + return twopi_by_enc_ticks * motor_get_pole_pairs(); +#ifdef BOARD_REV_R5 + } + return twopi_by_hall_sectors; +#endif +} -uint8_t sensor_get_errors(Sensor *s); +inline SensorType sensor_get_type(Sensor *s) +{ + return s->type; +} -SensorConfig* sensor_get_config(Sensor *s); -void sensor_restore_config(Sensor *s, SensorConfig* config_); +inline void sensor_set_type(Sensor *s, SensorType sensor_type) +{ +#ifdef BOARD_REV_R5 + if (SENSOR_MA7XX == sensor_type || SENSOR_HALL == sensor_type) { +#endif + s->type = sensor_type; + sensor_init(s); // Re-initialize sensor with new type +#ifdef BOARD_REV_R5 + } +#endif +} + +inline bool sensor_get_calibrated(Sensor *s) +{ + return s->is_calibrated_func(); +} + +inline uint8_t sensor_get_errors(Sensor *s) +{ + return s->get_error_func(); +} From 43d852b85012999986a6a597e3995a9e88cee9f8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 8 Nov 2023 20:43:02 +0200 Subject: [PATCH 006/219] update sensor and observer structure --- firmware/src/adc/adc.c | 10 +- firmware/src/adc/adc.h | 3 +- firmware/src/can/can_endpoints.c | 2 +- firmware/src/common.h | 6 - firmware/src/controller/controller.c | 5 +- firmware/src/motor/calibration.c | 335 ------------------ firmware/src/motor/calibration.h | 43 --- firmware/src/motor/motor.c | 85 +++++ firmware/src/motor/motor.h | 29 ++ firmware/src/observer/observer.c | 120 ++----- firmware/src/observer/observer.h | 118 +++++- firmware/src/sensors/hall.c | 102 +++++- firmware/src/sensors/hall.h | 10 +- firmware/src/sensors/ma7xx.c | 129 ++++++- firmware/src/sensors/ma7xx.h | 10 +- firmware/src/sensors/sensor.c | 62 +++- firmware/src/sensors/sensor.h | 41 ++- firmware/src/ssp/ssp_func.c | 30 ++ firmware/src/ssp/ssp_func.h | 1 + firmware/src/system/system.c | 9 + firmware/src/system/system.h | 1 + firmware/src/utils/utils.h | 8 + .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 26 +- 23 files changed, 617 insertions(+), 568 deletions(-) delete mode 100644 firmware/src/motor/calibration.c delete mode 100644 firmware/src/motor/calibration.h diff --git a/firmware/src/adc/adc.c b/firmware/src/adc/adc.c index 179fd7fb..fae97fa9 100644 --- a/firmware/src/adc/adc.c +++ b/firmware/src/adc/adc.c @@ -233,7 +233,15 @@ void ADC_DTSE_Init(void) pac5xxx_dtse_seq_config(18, ADC0, 0, ADC_IRQ0_EN, SEQ_END); // Get result at DTSERES18, Interrupt } -TM_RAMFUNC float adc_get_mcu_temp(void) +bool ADC_calibrate_offset(void) +{ + // We only need to wait here, the ADC loop will + // perform the offset calibration automatically + wait_pwm_cycles(10000); + return true; +} + +TM_RAMFUNC float ADC_get_mcu_temp(void) { return adc_state.temp; } diff --git a/firmware/src/adc/adc.h b/firmware/src/adc/adc.h index 5c19e218..52f8a760 100644 --- a/firmware/src/adc/adc.h +++ b/firmware/src/adc/adc.h @@ -106,7 +106,8 @@ typedef struct void ADC_init(void); void ADC_reset(void); -float adc_get_mcu_temp(void); +bool ADC_calibrate_offset(void); +float ADC_get_mcu_temp(void); void ADC_GetPhaseCurrents(FloatTriplet *phc); void ADC_update(void); diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 86f0d9ec..eef3a72a 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -111,7 +111,7 @@ uint8_t avlos_temp(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = adc_get_mcu_temp(); + v = ADC_get_mcu_temp(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/common.h b/firmware/src/common.h index 3ac53d18..d64398d9 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -151,10 +151,4 @@ typedef struct static const FloatTriplet three_phase_zero = {0.5f, 0.5f, 0.5f}; -typedef bool (*bool_getter)(void); -typedef void (*bool_setter)(bool); -typedef uint8_t (*uint8_getter)(void); -typedef int16_t (*int16_getter)(void); -typedef void (*void_func)(void); - #endif // #ifndef COMMON_H diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 27c7e9a9..0a6cb8a0 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -122,13 +122,14 @@ void Controller_ControlLoop(void) { state.is_calibrating = true; reset_calibration(); + (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()) if (SENSOR_MA7XX == encoder_get_type()) { - (void)((CalibrateADCOffset() && CalibrateResistance() && CalibrateInductance()) && CalibrateDirectionAndPolePairs() && calibrate_offset_and_rectification()); + (void)(calibrate_direction_and_pole_pair_count() && calibrate_offset_and_rectification()); } else if (SENSOR_HALL == encoder_get_type()) { - (void)((CalibrateADCOffset() && CalibrateResistance() && CalibrateInductance()) && calibrate_hall_sequence()); + (void)calibrate_hall_sequence(); } state.is_calibrating = false; controller_set_state(STATE_IDLE); diff --git a/firmware/src/motor/calibration.c b/firmware/src/motor/calibration.c deleted file mode 100644 index 7f50f6b3..00000000 --- a/firmware/src/motor/calibration.c +++ /dev/null @@ -1,335 +0,0 @@ - -// * This file is part of the Tinymovr-Firmware distribution -// * (https://github.com/yconst/tinymovr-firmware). -// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. -// * -// * This program is free software: you can redistribute it and/or modify -// * it under the terms of the GNU General Public License as published by -// * the Free Software Foundation, version 3. -// * -// * This program is distributed in the hope that it will be useful, but -// * WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * General Public License for more details. -// * -// * You should have received a copy of the GNU General Public License -// * along with this program. If not, see . - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static inline void set_epos_and_wait(float angle, float I_setpoint) -{ - FloatTriplet modulation_values = {0.0f}; - float pwm_setpoint = (I_setpoint * motor_get_phase_resistance()) / system_get_Vbus(); - our_clampc(&pwm_setpoint, -PWM_LIMIT, PWM_LIMIT); - SVM(pwm_setpoint * fast_cos(angle), pwm_setpoint * fast_sin(angle), - &modulation_values.A, &modulation_values.B, &modulation_values.C); - gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); -} - -static inline void wait_pwm_cycles(uint32_t cycles) -{ - for (uint32_t i = 0; i < cycles; i++) - { - WaitForControlLoopInterrupt(); - } -} - -bool CalibrateADCOffset(void) -{ - // We only need to wait here, the ADC loop will - // perform the offset calibration automatically - wait_pwm_cycles(10000); - return true; -} - -bool CalibrateResistance(void) -{ - if (!motor_get_is_gimbal()) - { - float I_cal = motor_get_I_cal(); - float V_setpoint = 0.0f; - FloatTriplet I_phase_meas = {0.0f}; - FloatTriplet modulation_values = {0.0f}; - for (uint32_t i = 0; i < CAL_R_LEN; i++) - { - ADC_GetPhaseCurrents(&I_phase_meas); - V_setpoint += CAL_V_GAIN * (I_cal - I_phase_meas.A); - const float pwm_setpoint = V_setpoint / system_get_Vbus(); - SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); - gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); - } - const float R = our_fabsf(V_setpoint / I_cal); - gate_driver_set_duty_cycle(&three_phase_zero); - if ((R <= MIN_PHASE_RESISTANCE) || (R >= MAX_PHASE_RESISTANCE)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE; - return false; - } - else - { - motor_set_phase_resistance(R); - } - } - return true; -} - -bool CalibrateInductance(void) -{ - if (!motor_get_is_gimbal()) - { - float V_setpoint = 0.0f; - float I_low = 0.0f; - float I_high = 0.0f; - FloatTriplet I_phase_meas = {0.0f}; - FloatTriplet modulation_values = {0.0f}; - - for (uint32_t i = 0; i < CAL_L_LEN; i++) - { - ADC_GetPhaseCurrents(&I_phase_meas); - if ((i & 0x2u) == 0x2u) - { - I_high += I_phase_meas.A; - V_setpoint = -CAL_V_INDUCTANCE; - } - else - { - I_low += I_phase_meas.A; - V_setpoint = CAL_V_INDUCTANCE; - } - const float pwm_setpoint = V_setpoint / system_get_Vbus(); - SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); - gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); - } - const float num_cycles = CAL_L_LEN / 2; - const float dI_by_dt = (I_high - I_low) / (PWM_PERIOD_S * num_cycles); - const float L = CAL_V_INDUCTANCE / dI_by_dt; - gate_driver_set_duty_cycle(&three_phase_zero); - if ((L <= MIN_PHASE_INDUCTANCE) || (L >= MAX_PHASE_INDUCTANCE)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE; - return false; - } - else - { - motor_set_phase_inductance(L); - controller_update_I_gains(); - } - } - return true; -} - -bool CalibrateDirectionAndPolePairs(void) -{ - // Note that, in order to generate the error table, - // we read the unwrapped positions given by the - // observer, but we generate and use the error table - // before the observer, at the encoder read. - const float epos_target = CAL_PHASE_TURNS * TWOPI; - const float I_setpoint = motor_get_I_cal(); - bool success = true; - // Stay a bit at starting epos - for (uint32_t i = 0; i < CAL_STAY_LEN; i++) - { - set_epos_and_wait(0, I_setpoint); - } - const float epos_start = observer_get_pos_estimate(); - float epos_end = 0; - // Move to target epos - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(epos_target * ((float)i / CAL_DIR_LEN), I_setpoint); - } - // Stay a bit at target epos - for (uint32_t i = 0; i < CAL_STAY_LEN; i++) - { - set_epos_and_wait(epos_target, I_setpoint); - } - // Find pole pairs - if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(), epos_target)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; - return false; - } - else - { - epos_end = observer_get_pos_estimate(); - } - // Move back to start epos - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(epos_target * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); - } - gate_driver_set_duty_cycle(&three_phase_zero); - if (success && epos_start > epos_end) - { - motor_set_phases_swapped(true); - } - return success; -} - -bool calibrate_hall_sequence(void) -{ - hall_clear_sector_map(); - uint8_t *sector_map = hall_get_sector_map_ptr(); - const float I_setpoint = motor_get_I_cal(); - bool success = true; - - // Stay a bit at starting epos - for (uint32_t i=0; i= HALL_SECTORS) - { - success = false; - break; - } - sector_map[current_sector] = sector_pos; - } - set_epos_and_wait(angle, I_setpoint); - angle += increment; - current_sector = hall_get_sector(); - } - - gate_driver_set_duty_cycle(&three_phase_zero); - - // Check that the number of sectors discovered is the same as expected - if (sector_pos != HALL_SECTORS - 1) - { - success = false; - } - - if (success) - { - hall_set_sector_map_calibrated(); - } - else - { - uint8_t *error_ptr = hall_get_error_ptr(); - *error_ptr |= ENCODER_ERRORS_CALIBRATION_FAILED; - } - return success; -} - -bool calibrate_offset_and_rectification(void) -{ - // Size below is an arbitrary large number ie > ECN_SIZE * npp - float error_ticks[ECN_SIZE * 20]; - const int16_t npp = motor_get_pole_pairs(); - const int16_t n = ECN_SIZE * npp; - const int16_t nconv = 100; - const float delta = 2 * PI * npp / (n * nconv); - const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); - float e_pos_ref = 0.f; - const float I_setpoint = motor_get_I_cal(); - int16_t *lut = ma7xx_get_rec_table_ptr(); - set_epos_and_wait(e_pos_ref, I_setpoint); - wait_pwm_cycles(5000); - const uint16_t offset_idx = ma7xx_get_angle_raw() >> (ENCODER_BITS - ECN_BITS); - - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref += delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - WaitForControlLoopInterrupt(); - const float pos_meas = observer_get_pos_estimate(); - error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref -= delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - WaitForControlLoopInterrupt(); - const float pos_meas = observer_get_pos_estimate(); - error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - gate_driver_set_duty_cycle(&three_phase_zero); - gate_driver_disable(); - - // FIR filtering and map measurements to lut - for (int16_t i=0; i n - 1) - { - read_idx -= n; - } - acc += error_ticks[read_idx]; - } - acc = acc / ((float)(ECN_SIZE * 2)); - int16_t write_idx = i + offset_idx; - if (write_idx > (ECN_SIZE - 1)) - { - write_idx -= ECN_SIZE; - } - lut[write_idx] = (int16_t)acc; - } - wait_pwm_cycles(5000); - ma7xx_set_rec_calibrated(); - return true; -} - -void reset_calibration(void) -{ - ADC_reset(); - encoder_reset(); - observer_reset(); - motor_reset_calibration(); - wait_pwm_cycles(5000); -} - - diff --git a/firmware/src/motor/calibration.h b/firmware/src/motor/calibration.h deleted file mode 100644 index 7b442b4d..00000000 --- a/firmware/src/motor/calibration.h +++ /dev/null @@ -1,43 +0,0 @@ - -// * This file is part of the Tinymovr-Firmware distribution -// * (https://github.com/yconst/tinymovr-firmware). -// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. -// * -// * This program is free software: you can redistribute it and/or modify -// * it under the terms of the GNU General Public License as published by -// * the Free Software Foundation, version 3. -// * -// * This program is distributed in the hope that it will be useful, but -// * WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// * General Public License for more details. -// * -// * You should have received a copy of the GNU General Public License -// * along with this program. If not, see . - -#pragma once - -#include -#include - -#define CAL_R_LEN (2 * PWM_FREQ_HZ) -#define CAL_L_LEN (1 * PWM_FREQ_HZ) -#define CAL_OFFSET_LEN (1 * PWM_FREQ_HZ) -#define CAL_STAY_LEN (PWM_FREQ_HZ / 2) -#define CAL_DIR_LEN (3 * PWM_FREQ_HZ) -#define CAL_PHASE_TURNS (8) -#if defined BOARD_REV_R32 || BOARD_REV_R33 || defined BOARD_REV_R5 -#define CAL_V_GAIN (0.0005f) -#define CAL_V_INDUCTANCE (2.0f) -#elif defined BOARD_REV_M5 -#define CAL_V_GAIN (0.002f) -#define CAL_V_INDUCTANCE (5.0f) -#endif - -bool CalibrateADCOffset(void); -bool CalibrateResistance(void); -bool CalibrateInductance(void); -bool CalibrateDirectionAndPolePairs(void); -bool calibrate_hall_sequence(void); -bool calibrate_offset_and_rectification(void); -void reset_calibration(void); diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index deb2be8e..6d505d7f 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -16,7 +16,12 @@ // * along with this program. If not, see . #include +#include +#include +#include #include +#include +#include #include #if defined BOARD_REV_R32 || defined BOARD_REV_R33 || defined BOARD_REV_R5 @@ -82,6 +87,86 @@ void motor_reset_calibration() config.phases_swapped = false; } +bool motor_calibrate_resistance(void) +{ + if (!motor_get_is_gimbal()) + { + float I_cal = motor_get_I_cal(); + float V_setpoint = 0.0f; + FloatTriplet I_phase_meas = {0.0f}; + FloatTriplet modulation_values = {0.0f}; + for (uint32_t i = 0; i < CAL_R_LEN; i++) + { + ADC_GetPhaseCurrents(&I_phase_meas); + V_setpoint += CAL_V_GAIN * (I_cal - I_phase_meas.A); + const float pwm_setpoint = V_setpoint / system_get_Vbus(); + SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); + gate_driver_set_duty_cycle(&modulation_values); + WaitForControlLoopInterrupt(); + } + const float R = our_fabsf(V_setpoint / I_cal); + gate_driver_set_duty_cycle(&three_phase_zero); + if ((R <= MIN_PHASE_RESISTANCE) || (R >= MAX_PHASE_RESISTANCE)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE; + return false; + } + else + { + motor_set_phase_resistance(R); + } + } + return true; +} + +bool motor_calibrate_inductance(void) +{ + if (!motor_get_is_gimbal()) + { + float V_setpoint = 0.0f; + float I_low = 0.0f; + float I_high = 0.0f; + FloatTriplet I_phase_meas = {0.0f}; + FloatTriplet modulation_values = {0.0f}; + + for (uint32_t i = 0; i < CAL_L_LEN; i++) + { + ADC_GetPhaseCurrents(&I_phase_meas); + if ((i & 0x2u) == 0x2u) + { + I_high += I_phase_meas.A; + V_setpoint = -CAL_V_INDUCTANCE; + } + else + { + I_low += I_phase_meas.A; + V_setpoint = CAL_V_INDUCTANCE; + } + const float pwm_setpoint = V_setpoint / system_get_Vbus(); + SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); + gate_driver_set_duty_cycle(&modulation_values); + WaitForControlLoopInterrupt(); + } + const float num_cycles = CAL_L_LEN / 2; + const float dI_by_dt = (I_high - I_low) / (PWM_PERIOD_S * num_cycles); + const float L = CAL_V_INDUCTANCE / dI_by_dt; + gate_driver_set_duty_cycle(&three_phase_zero); + if ((L <= MIN_PHASE_INDUCTANCE) || (L >= MAX_PHASE_INDUCTANCE)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE; + return false; + } + else + { + motor_set_phase_inductance(L); + controller_update_I_gains(); + } + } + return true; +} + TM_RAMFUNC uint8_t motor_find_pole_pairs(uint16_t ticks, float mpos_start, float mpos_end, float epos_rad) { const float mpos_diff = our_fabsf(mpos_end - mpos_start); diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 25cb3481..68d1a1a2 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -31,6 +31,22 @@ #define MAX_PHASE_INDUCTANCE (1e-2f) #endif +#define CAL_R_LEN (2 * PWM_FREQ_HZ) +#define CAL_L_LEN (1 * PWM_FREQ_HZ) +#define CAL_OFFSET_LEN (1 * PWM_FREQ_HZ) +#define CAL_STAY_LEN (PWM_FREQ_HZ / 2) +#define CAL_DIR_LEN (3 * PWM_FREQ_HZ) +#define CAL_PHASE_TURNS (8) +#if defined BOARD_REV_R32 || BOARD_REV_R33 || defined BOARD_REV_R5 +#define CAL_V_GAIN (0.0005f) +#define CAL_V_INDUCTANCE (2.0f) +#elif defined BOARD_REV_M5 +#define CAL_V_GAIN (0.002f) +#define CAL_V_INDUCTANCE (5.0f) +#endif + + + typedef struct { uint8_t pole_pairs; @@ -56,6 +72,8 @@ typedef struct } MotorState; void motor_reset_calibration(void); +bool motor_calibrate_resistance(void); +bool motor_calibrate_inductance(void); uint8_t motor_get_pole_pairs(void); uint8_t motor_find_pole_pairs(uint16_t ticks, float mpos_start, float mpos_end, float epos_rad); @@ -92,3 +110,14 @@ uint8_t *motor_get_error_ptr(void); MotorConfig *motor_get_config(void); void motor_restore_config(MotorConfig *config_); +static inline void set_epos_and_wait(float angle, float I_setpoint) +{ + FloatTriplet modulation_values = {0.0f}; + float pwm_setpoint = (I_setpoint * motor_get_phase_resistance()) / system_get_Vbus(); + our_clampc(&pwm_setpoint, -PWM_LIMIT, PWM_LIMIT); + SVM(pwm_setpoint * fast_cos(angle), pwm_setpoint * fast_sin(angle), + &modulation_values.A, &modulation_values.B, &modulation_values.C); + gate_driver_set_duty_cycle(&modulation_values); + WaitForControlLoopInterrupt(); +} + diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 0c2df93b..c374670b 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -21,129 +21,65 @@ #include #include -static ObserverState state = {0}; - static ObserverConfig config = { - .track_bw = 350.0f, - .kp = 0.0f, - .ki = 0.0f, + .track_bw = 350.0f, + .kp = 0.0f, + .ki = 0.0f, }; -void observer_init(void) +Observer observer_init(Sensor *s) { - observer_reset(); + Observer *o = {0}; + o->config = config; + o->config.sensor_idx = s->idx; observer_set_bw(config.track_bw); // We keep local copies of a few key variables from // the encoder, because it is faster than calling // the encoder function pointer - state.encoder_type = encoder_get_type(); - state.encoder_ticks = encoder_get_ticks(); - state.encoder_half_ticks = state.encoder_ticks/2; + o->state.encoder_type = sensor_get_type(s); + o->state.encoder_ticks = sensor_get_ticks(s); + o->state.encoder_half_ticks = state.encoder_ticks/2; } -void observer_reset(void) +void observer_reset(Observer *o) { - state.pos_sector = 0; - state.pos_estimate_wrapped = 0; - state.vel_estimate = 0; + o->state.pos_sector = 0; + o->state.pos_estimate_wrapped = 0; + o->state.vel_estimate = 0; } -TM_RAMFUNC void observer_update(void) +float observer_get_bw(Observer *o) { - const int16_t angle_meas = encoder_get_angle(); - const float delta_pos_est = PWM_PERIOD_S * state.vel_estimate; - float delta_pos_meas = angle_meas - state.pos_estimate_wrapped; - if (delta_pos_meas < -state.encoder_half_ticks) - { - delta_pos_meas += state.encoder_ticks; - } - else if (delta_pos_meas >= state.encoder_half_ticks) - { - delta_pos_meas -= state.encoder_ticks; - } - const float delta_pos_error = delta_pos_meas - delta_pos_est; - const float incr_pos = delta_pos_est + (PWM_PERIOD_S * config.kp * delta_pos_error); - state.pos_estimate_wrapped += incr_pos; - if (state.pos_estimate_wrapped < 0) - { - state.pos_estimate_wrapped += state.encoder_ticks; - state.pos_sector -= 1; - } - else if (state.pos_estimate_wrapped >= state.encoder_ticks) - { - state.pos_estimate_wrapped -= state.encoder_ticks; - state.pos_sector += 1; - } - state.vel_estimate += PWM_PERIOD_S * config.ki * delta_pos_error; + return o->config.track_bw; } -float observer_get_bw(void) -{ - return config.track_bw; -} - -void observer_set_bw(float bw) +void observer_set_bw(Observer *o, float bw) { if (bw > 0.0f) { - config.track_bw = bw; - config.kp = 2.0f * config.track_bw; - config.ki = 0.25f * (config.kp * config.kp); + o->config.track_bw = bw; + o->config.kp = 2.0f * config.track_bw; + o->config.ki = 0.25f * (config.kp * config.kp); } } -TM_RAMFUNC float observer_get_pos_estimate(void) -{ - const float primary = state.encoder_ticks * state.pos_sector; - return primary + state.pos_estimate_wrapped; -} - -TM_RAMFUNC float observer_get_diff(float target) -{ - const float primary = state.encoder_ticks * state.pos_sector; - const float diff_sector = target - primary; - return diff_sector - state.pos_estimate_wrapped; -} - -TM_RAMFUNC float observer_get_vel_estimate(void) +void make_default_observer_config(void) { - return state.vel_estimate; + observers[0] = observer_init(sensor_commutation); + observers[1] = observers[0]; } -TM_RAMFUNC float observer_get_epos(void) +uint32_t observers_config_length(void) { - if (SENSOR_MA7XX == state.encoder_type) - { - return state.pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); - } - return state.pos_estimate_wrapped * twopi_by_hall_sectors; -} -TM_RAMFUNC float observer_get_evel(void) -{ - if (SENSOR_MA7XX == state.encoder_type) - { - return state.vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); - } - return state.vel_estimate * twopi_by_hall_sectors; } -TM_RAMFUNC float observer_get_pos_estimate_user_frame(void) +bool observers_serialize_config_to_buffer(uint8_t *buffer, uint32_t len) { - return (observer_get_pos_estimate() - motor_get_user_offset()) * motor_get_user_direction(); -} -TM_RAMFUNC float observer_get_vel_estimate_user_frame(void) -{ - return state.vel_estimate * motor_get_user_direction(); } -ObserverConfig* observer_get_config(void) +bool observers_initialize_with_config_buffer(uint8_t *buffer, uint32_t len) { - return &config; -} - -void observer_restore_config(ObserverConfig* config_) -{ - config = *config_; -} + +} \ No newline at end of file diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index f802bd4a..63ffaec3 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -16,8 +16,7 @@ * along with this program. If not, see . */ -#ifndef OBSERVER_OBSERVER_H_ -#define OBSERVER_OBSERVER_H_ +#pragma once #include #include @@ -30,6 +29,7 @@ typedef struct float vel_estimate; uint16_t encoder_ticks; uint16_t encoder_half_ticks; + bool valid; SensorType encoder_type; } ObserverState; @@ -38,25 +38,109 @@ typedef struct float track_bw; float kp; float ki; + uint8_t sensor_id; } ObserverConfig; -void observer_init(void); -void observer_reset(void); +typedef struct { + ObserverConfig config; + ObserverState state; +} Observer; -void observer_update(void); -float observer_get_pos_estimate(void); -float observer_get_diff(float target); -float observer_get_vel_estimate(void); -float observer_get_epos(void); -float observer_get_evel(void); +Observer observers[2]; +Observer *observer_commutation; +Observer *observer_position; -float observer_get_pos_estimate_user_frame(void); -float observer_get_vel_estimate_user_frame(void); +Observer observer_init(Sensor *s); +void observer_reset(Observer *o); -float observer_get_bw(void); -void observer_set_bw(float bw); +float observer_get_bw(Observer *o); +void observer_set_bw(Observer *o, float bw); -ObserverConfig* observer_get_config(void); -void observer_restore_config(ObserverConfig* config_); +void make_default_observer_config(void); +uint32_t observers_config_length(void); +bool observers_serialize_config_to_buffer(uint8_t *buffer, uint32_t len); +bool observers_initialize_with_config_buffer(uint8_t *buffer, uint32_t len); + +inline void observer_update(Observer *o) +{ + if (o->state.valid == false) + { + const int16_t angle_meas = sensors[o->config.sensor_idx]->get_angle_func(); + const float delta_pos_est = PWM_PERIOD_S * o->state.vel_estimate; + float delta_pos_meas = angle_meas - o->state.pos_estimate_wrapped; + if (delta_pos_meas < -(o->state.encoder_half_ticks)) + { + delta_pos_meas += o->state.encoder_ticks; + } + else if (delta_pos_meas >= o->state.encoder_half_ticks) + { + delta_pos_meas -= o->state.encoder_ticks; + } + const float delta_pos_error = delta_pos_meas - delta_pos_est; + const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); + o->state.pos_estimate_wrapped += incr_pos; + if (o->state.pos_estimate_wrapped < 0) + { + o->state.pos_estimate_wrapped += o->state.encoder_ticks; + o->state.pos_sector -= 1; + } + else if (o->state.pos_estimate_wrapped >= o->state.encoder_ticks) + { + o->state.pos_estimate_wrapped -= o->state.encoder_ticks; + o->state.pos_sector += 1; + } + o->state.vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; + o->state.valid = true; + } +} + +inline void observer_invalidate(Observer *o) +{ + o->state.valid = false; +} + +inline float observer_get_pos_estimate(Observer *o) +{ + const float primary = o->state.encoder_ticks * o->state.pos_sector; + return primary + o->state.pos_estimate_wrapped; +} + +inline float observer_get_diff(Observer *o, float target) +{ + const float primary = o->state.encoder_ticks * o->state.pos_sector; + const float diff_sector = target - primary; + return diff_sector - o->state.pos_estimate_wrapped; +} + +inline float observer_get_vel_estimate(Observer *o) +{ + return o->state.vel_estimate; +} + +inline float observer_get_epos(Observer *o) +{ + if (SENSOR_MA7XX == o->state.encoder_type) + { + return o->state.pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); + } + return o->state.pos_estimate_wrapped * twopi_by_hall_sectors; +} + +inline float observer_get_evel(Observer *o) +{ + if (SENSOR_MA7XX == o->state.encoder_type) + { + return o->state.vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); + } + return o->state.vel_estimate * twopi_by_hall_sectors; +} + +inline float observer_get_pos_estimate_user_frame(Observer *o) +{ + return (observer_get_pos_estimate() - motor_get_user_offset()) * motor_get_user_direction(); +} -#endif /* OBSERVER_OBSERVER_H_ */ +inline float observer_get_vel_estimate_user_frame(Observer *o) +{ + return o->state.vel_estimate * motor_get_user_direction(); +} diff --git a/firmware/src/sensors/hall.c b/firmware/src/sensors/hall.c index c6713a97..49beeca4 100644 --- a/firmware/src/sensors/hall.c +++ b/firmware/src/sensors/hall.c @@ -24,33 +24,105 @@ void hall_init(void) { + HallConfig c = {0}; + return hall_init_with_config(*c); +} + +Sensor hall_init_with_config(SensorSpecificConfig *c) +{ + Sensor s = make_blank_sensor(); + s->get_angle_func = hall_get_angle; + s->update_func = hall_update; + s->reset_func = hall_clear_sector_map; + s->get_error_func = hall_get_errors; + s->is_calibrated_func = hall_sector_map_is_calibrated; + s->calibrate_func = ma7xx_calibrate; + s->config = *c; + s->state.hall_state.hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); + s->state.hall_state.hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); + s->state.hall_state.hw_defaults[2] = pac5xxx_tile_register_read(ADDR_CFGAIO9); pac5xxx_tile_register_write(ADDR_CFGAIO7, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO8, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO9, AIO6789_IO_MODE | AIO_INPUT); + return s; } void hall_deinit(Sensor *s) { - + pac5xxx_tile_register_write(ADDR_CFGAIO7, s->state.hall_state.hw_defaults[0]); + pac5xxx_tile_register_write(ADDR_CFGAIO8, s->state.hall_state.hw_defaults[1]); + pac5xxx_tile_register_write(ADDR_CFGAIO9, s->state.hall_state.hw_defaults[2]); } -void hall_clear_sector_map(void) +bool hall_sector_map_is_calibrated(Sensor *s) { - (void)memset(config.sector_map, 0, sizeof(config.sector_map)); - config.sector_map_calibrated = false; + return s->config.hall_config.sector_map_calibrated; } -void hall_set_sector_map_calibrated(void) +bool hall_calibrate_sequence(Sensor *s) { - config.sector_map_calibrated = true; -} + (void)memset(s->config.hall_config.sector_map, 0, sizeof(config.sector_map)); + s->config.hall_config.sector_map_calibrated = false; + uint8_t *sector_map = s->config.hall_config.sector_map; + const float I_setpoint = motor_get_I_cal(); + bool success = true; -bool hall_sector_map_is_calibrated(void) -{ - return config.sector_map_calibrated; -} + // Stay a bit at starting epos + for (uint32_t i=0; i= HALL_SECTORS) + { + success = false; + break; + } + sector_map[current_sector] = sector_pos; + } + set_epos_and_wait(angle, I_setpoint); + angle += increment; + current_sector = hall_get_sector(); + } + + gate_driver_set_duty_cycle(&three_phase_zero); + + // Check that the number of sectors discovered is the same as expected + if (sector_pos != HALL_SECTORS - 1) + { + success = false; + } + + if (success) + { + s->config.hall_config.sector_map_calibrated = true; + } + else + { + s->state.hall_state.errors |= ENCODER_ERRORS_CALIBRATION_FAILED; + } + return success; +} \ No newline at end of file diff --git a/firmware/src/sensors/hall.h b/firmware/src/sensors/hall.h index 9c658370..546993f8 100644 --- a/firmware/src/sensors/hall.h +++ b/firmware/src/sensors/hall.h @@ -30,27 +30,21 @@ typedef struct uint8_t errors; uint16_t angle; uint8_t sector; + uint8_t hw_defaults[3]; } HallSensorState; Sensor hall_init(void); Sensor hall_init_with_config(SensorSpecificConfig *c); void hall_deinit(Sensor *s); -void hall_clear_sector_map(Sensor *s); -void hall_set_sector_map_calibrated(Sensor *s); bool hall_sector_map_is_calibrated(Sensor *s); -uint8_t *hall_get_sector_map_ptr(Sensor *s); +bool hall_calibrate_sequence(Sensor *s); inline uint8_t hall_get_errors(Sensor *s) { return s->state.hall_state.errors; } -inline uint8_t *hall_get_error_ptr(Sensor *s) -{ - return &(s->state.hall_state.errors); -} - inline int16_t hall_get_angle(Sensor *s) { return s->state.hall_state.angle; diff --git a/firmware/src/sensors/ma7xx.c b/firmware/src/sensors/ma7xx.c index bd3952a1..6062faea 100644 --- a/firmware/src/sensors/ma7xx.c +++ b/firmware/src/sensors/ma7xx.c @@ -24,24 +24,25 @@ // ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0) -Sensor ma7xx_init_with_ssp_port(SSP_TYPE ssp) +Sensor ma7xx_init() { MA7xxConfig c = {0}; - c.ssp_port = ssp; + c.ssp_port = ONBOARD_SENSOR_SSP_PORT; return ma7xx_init_with_config(*c); } Sensor ma7xx_init_with_config(SensorSpecificConfig *c) { - Sensor s; - s->read_func = ma7xx_get_angle_rectified; + Sensor s = make_blank_sensor(); + s->get_angle_func = ma7xx_get_angle_rectified; s->update_func = ma7xx_update; s->reset_func = ma7xx_clear_rec_table; s->get_error_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; + s->calibrate_func = ma7xx_calibrate; s->config = *c; MA7xxConfig *c = s->config.ss_config.ma7xx_config; - ssp_init(c->ssp_port, SSP_MS_MASTER, 0, 0); // ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0 + ssp_init(c->ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(&s); ma7xx_update(&s, false); @@ -50,7 +51,7 @@ Sensor ma7xx_init_with_config(SensorSpecificConfig *c) void ma7xx_deinit(Sensor *s) { - + ssp_deinit(c->ssp_port); } void ma7xx_clear_rec_table(Sensor *s) @@ -60,11 +61,6 @@ void ma7xx_clear_rec_table(Sensor *s) c->rec_calibrated = false; } -void ma7xx_set_rec_calibrated(Sensor *s) -{ - s->config.ss_config.ma7xx_config.rec_calibrated = true; -} - bool ma7xx_rec_is_calibrated(Sensor *s) { return s->config.ss_config.ma7xx_config.rec_calibrated; @@ -75,6 +71,117 @@ int16_t *ma7xx_get_rec_table_ptr(Sensor *s) return s->config.ss_config.ma7xx_config.rec_table; } +bool ma7xx_calibrate_offset_and_rectification(Sensor *s) +{ + // Size below is an arbitrary large number ie > ECN_SIZE * npp + float error_ticks[ECN_SIZE * 20]; + const int16_t npp = motor_get_pole_pairs(); + const int16_t n = ECN_SIZE * npp; + const int16_t nconv = 100; + const float delta = 2 * PI * npp / (n * nconv); + const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); + float e_pos_ref = 0.f; + const float I_setpoint = motor_get_I_cal(); + int16_t *lut = s->config.ma7xx_config.rec_table; + set_epos_and_wait(e_pos_ref, I_setpoint); + wait_pwm_cycles(5000); + const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); + + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref += delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + WaitForControlLoopInterrupt(); + const float pos_meas = observer_get_pos_estimate(observers[s->idx]); + error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref -= delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + WaitForControlLoopInterrupt(); + const float pos_meas = observer_get_pos_estimate(observers[s->idx]); + error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + gate_driver_set_duty_cycle(&three_phase_zero); + gate_driver_disable(); + + // FIR filtering and map measurements to lut + for (int16_t i=0; i n - 1) + { + read_idx -= n; + } + acc += error_ticks[read_idx]; + } + acc = acc / ((float)(ECN_SIZE * 2)); + int16_t write_idx = i + offset_idx; + if (write_idx > (ECN_SIZE - 1)) + { + write_idx -= ECN_SIZE; + } + lut[write_idx] = (int16_t)acc; + } + wait_pwm_cycles(5000); + s->config.ss_config.ma7xx_config.rec_calibrated = true; + return true; +} + +bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s) +{ + const float epos_target = CAL_PHASE_TURNS * TWOPI; + const float I_setpoint = motor_get_I_cal(); + bool success = true; + set_epos_and_wait(0, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + const float epos_start = observer_get_pos_estimate(observers[s->idx]); + float epos_end = 0; + // Move to target epos + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(epos_target * ((float)i / CAL_DIR_LEN), I_setpoint); + } + set_epos_and_wait(epos_target, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + // Find pole pairs + if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(observers[s->idx]), epos_target)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; + return false; + } + else + { + epos_end = observer_get_pos_estimate(observers[s->idx]); + } + // Move back to start epos + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(epos_target * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); + } + gate_driver_set_duty_cycle(&three_phase_zero); + if (success && epos_start > epos_end) + { + motor_set_phases_swapped(true); + } + return success; +} + /** * @brief Write to a register of the sensor * diff --git a/firmware/src/sensors/ma7xx.h b/firmware/src/sensors/ma7xx.h index 94c214aa..79dd4c8b 100644 --- a/firmware/src/sensors/ma7xx.h +++ b/firmware/src/sensors/ma7xx.h @@ -53,15 +53,16 @@ typedef struct uint8_t error; } MA7xxSensorState; -Sensor ma7xx_init_with_ssp_port(SSP_TYPE ssp); +Sensor ma7xx_init(); Sensor ma7xx_init_with_config(SensorSpecificConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_clear_rec_table(Sensor *s); -void ma7xx_set_rec_calibrated(Sensor *s); bool ma7xx_rec_is_calibrated(Sensor *s); int16_t *ma7xx_get_rec_table_ptr(Sensor *s); uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); uint8_t ma7xx_read_reg(Sensor *s, uint8_t); +bool ma7xx_calibrate_offset_and_rectification(Sensor *s); +bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s); inline uint8_t ma7xx_get_errors(Sensor *s) { @@ -103,4 +104,9 @@ inline void ma7xx_update(Sensor *s, bool check_error) } } state.angle = angle; +} + +inline void ma7xx_calibrate(Sensor *s) +{ + return ma7xx_calibrate_direction_and_pole_pair_count() && ma7xx_calibrate_offset_and_rectification(); } \ No newline at end of file diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensors/sensor.c index e936af2d..234689c4 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensors/sensor.c @@ -1,26 +1,35 @@ +#include #include -static Sensor sensor; +static uint8_t sensor_id = 0; -void sensor_init_with_config(SensorConfig *c) +Sensor make_blank_sensor(void) +{ + Sensor s = {0}; + s.id = sensor_id; + sensor_id++; + return s; +} + +Sensor sensor_init(void) +{ + SensorConfig c = {0}; + return sensor_init_with_config(&c); +} + +Sensor sensor_init_with_config(SensorConfig *c) { #ifdef BOARD_REV_R5 if (SENSOR_MA7XX == c->type) { #endif - return ma7xx_init(c); + return ma7xx_init_with_config(c); #ifdef BOARD_REV_R5 } - else if (SENSOR_HALL == s->type) + else if (SENSOR_HALL == c->type) { - return hall_init(p); - s->read_func = hall_get_angle; - s->update_func = hall_update; - s->reset_func = hall_clear_sector_map; - s->get_error_func = hall_get_errors; - s->is_calibrated_func = hall_sector_map_is_calibrated; - // ... fill in other function pointers and configurations + return hall_init_with_config(c); } #endif // ... (similar branches for other sensor types) @@ -37,7 +46,7 @@ void sensor_deinit(Sensor *s) } else if (SENSOR_HALL == s->type) { - // ... fill in other function pointers and configurations + hall_deinit(s); } #endif // ... (similar branches for other sensor types) @@ -48,13 +57,32 @@ void sensor_reset(Sensor *s) s->reset_func(); } -SensorConfig* sensor_get_config(Sensor *s) +void make_default_sensor_config(void) { - return &(s->config); + sensors[0] = ma7xx_init(); + sensor_commutation = &(sensors[0]); + sensor_position = &(sensors[0]); } -void sensor_restore_config(Sensor *s, SensorConfig* config_) +uint32_t sensors_config_length(void) { - s->config = *config_; - sensor_init(s); // Re-initialize sensor with restored configuration + uint32_t config_length = 0; + for (uint8_t i=0; i #include +#define SENSOR_CNT_BITS 2 +#define SENSOR_COUNT (1 << SENSOR_CNT_BITS) + +typedef Sensor (*sensor_init_func_t)(void); +typedef bool (*sensor_is_calibrated_func_t)(Sensor *); +typedef bool (*sensor_calibrate_func_t)(Sensor *); +typedef uint32_t (*sensor_get_angle_func_t)(Sensor *); +typedef void (*sensor_reset_func_t)(Sensor *); +typedef void (*sensor_update_func_t)(Sensor *); +typedef uint8_t (*sensor_get_error_func_t)(Sensor *); + typedef enum { SENSOR_MA7XX = 0, SENSOR_HALL = 1, @@ -51,28 +62,39 @@ typedef union { // Generic sensor struct typedef struct { - sensor_type_t type; sensor_init_func_t init_func; sensor_is_calibrated_func_t is_calibrated_func; - sensor_read_func_t read_func; + sensor_calibrate_func_t calibrate_func; + sensor_get_angle_func_t get_angle_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; sensor_get_error_func_t get_error_func; SensorConfig config; SensorSpecificState state; + sensor_type_t type : 4; + uint8_t id : SENSOR_CNT_BITS; + bool initialized : 1; + bool current : 1; } Sensor; -extern Sensor sensor; +Sensor sensors[SENSOR_COUNT]; +Sensor *sensor_commutation; +Sensor *sensor_position; + -void sensor_init_with_config(SensorConfig *c); +Sensor make_blank_sensor(void); +Sensor sensor_init(void); +Sensor sensor_init_with_config(SensorConfig *c); void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); -SensorConfig* sensor_get_config(Sensor *s); -void sensor_restore_config(Sensor *s, SensorConfig* config_); +void make_default_sensor_config(void); +uint32_t sensors_config_length(void); +bool sensors_serialize_config_to_buffer(uint8_t *buffer, uint32_t len); +bool sensors_initialize_with_config_buffer(uint8_t *buffer, uint32_t len); inline int16_t sensor_get_angle(Sensor *s) { - return s->read_func(); + return s->get_angle_func(); } inline void sensor_update(Sensor *s, bool check_error) @@ -129,6 +151,11 @@ inline bool sensor_get_calibrated(Sensor *s) return s->is_calibrated_func(); } +inline bool sensor_calibrate(Sensor *s) +{ + return s->calibrate_func(s); +} + inline uint8_t sensor_get_errors(Sensor *s) { return s->get_error_func(); diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index e38a9cec..158df463 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -760,6 +760,36 @@ void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t cph, uint8_t cpol) ssp_ptr->CON.SSPEN = SSP_CONTROL_ENABLE; // SSP Enable } +void ssp_deinit(SSP_TYPE ssp) +{ + PAC55XX_SSP_TYPEDEF *ssp_ptr; + + switch (ssp) + { + case SSPA: + ssp_ptr = PAC55XX_SSPA; + break; + + case SSPB: + ssp_ptr = PAC55XX_SSPB; + break; + + case SSPC: + ssp_ptr = PAC55XX_SSPC; + break; + + case SSPD: + ssp_ptr = PAC55XX_SSPD; + break; + + default: + ssp_ptr = PAC55XX_SSPD; + break; + } + ssp_interrupt_disable(ssp); + ssp_ptr->CON.SSPEN = SSP_CONTROL_DISNABLE; +} + //============================================================================== ///@brief /// Write a 16-bit data to SSP manually diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index 587fc79c..6fbcd3f2 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -32,6 +32,7 @@ volatile uint16_t ssp_data[10]; volatile uint16_t data_num; extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t cph, uint8_t cpol); +extern void ssp_deinit(SSP_TYPE ssp); extern uint32_t ssp_write_one(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t data); extern uint32_t ssp_write_multi(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t *data, uint32_t byte_num); extern uint16_t ssp_read_one(PAC55XX_SSP_TYPEDEF *ssp_ptr); diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 7190098e..92a5f2c1 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -132,6 +132,15 @@ void system_enter_dfu(void) NVIC_SystemReset(); } +void system_reset_calibration(void) +{ + ADC_reset(); + encoder_reset(); + observer_reset(); + motor_reset_calibration(); + wait_pwm_cycles(5000); +} + TM_RAMFUNC float system_get_Vbus(void) { return state.Vbus; diff --git a/firmware/src/system/system.h b/firmware/src/system/system.h index 91bf0497..5a51cce2 100644 --- a/firmware/src/system/system.h +++ b/firmware/src/system/system.h @@ -37,6 +37,7 @@ void system_init(void); void system_update(void); void system_reset(void); void system_enter_dfu(void); +void system_reset_calibration(void); inline uint8_t system_get_fw_version_string(char *buffer) { diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index 41829b65..e09ed597 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -42,6 +42,14 @@ static inline float our_fabsf(float x) #endif +static inline void wait_pwm_cycles(uint32_t cycles) +{ + for (uint32_t i = 0; i < cycles; i++) + { + WaitForControlLoopInterrupt(); + } +} + #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" #pragma GCC diagnostic ignored "-Wuninitialized" diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 2b0776d2..6b183755 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -349,6 +349,12 @@ remote_attributes: summary: Any encoder errors, as a bitmask - name: external_spi remote_attributes: + - name: type + options: [MA7XX, AS5047, AMT22] + meta: {export: True} + getter_name: get_external_spi_sensor_type + setter_name: set_external_spi_sensor_type + summary: The type of external sensor type. Either MA7XX, AS5047 or AMT22. - name: calibrated dtype: bool meta: {dynamic: True} @@ -378,15 +384,15 @@ remote_attributes: - name: type options: [ONBOARD, SPI, HALL] meta: {export: True} - getter_name: - setter_name: - summary: The encoder type. Either ONBOARD, external SPI or HALL. + getter_name: get_position_sensor_type + setter_name: set_position_sensor_type + summary: The encoder type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} - getter_name: - setter_name: + getter_name: get_position_sensor_bandwidth + setter_name: set_position_sensor_bandwidth summary: The encoder observer bandwidth. - name: position_estimate dtype: float @@ -405,15 +411,15 @@ remote_attributes: - name: type options: [ONBOARD, SPI, HALL] meta: {export: True} - getter_name: - setter_name: - summary: The encoder type. Either ONBOARD, external SPI or HALL. + getter_name: get_commutation_sensor_type + setter_name: set_commutation_sensor_type + summary: The encoder type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} - getter_name: - setter_name: + getter_name: get_commutation_sensor_bandwidth + setter_name: set_commutation_sensor_bandwidth summary: The encoder observer bandwidth. - name: position_estimate dtype: float From 9ca2e55047941f29e7570c8681c1eeb739a9f8aa Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 9 Nov 2023 11:41:55 +0200 Subject: [PATCH 007/219] revise sensor initialization --- firmware/src/observer/observer.c | 16 +++-- firmware/src/observer/observer.h | 42 ++++++------- firmware/src/sensors/hall.c | 11 ++-- firmware/src/sensors/hall.h | 4 +- firmware/src/sensors/ma7xx.c | 17 +++--- firmware/src/sensors/ma7xx.h | 4 +- firmware/src/sensors/sensor.c | 101 +++++++++++++++++++++++-------- firmware/src/sensors/sensor.h | 23 ++++--- 8 files changed, 139 insertions(+), 79 deletions(-) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index c374670b..cf08e3cb 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -71,15 +71,23 @@ void make_default_observer_config(void) uint32_t observers_config_length(void) { - + uint32_t config_length = 0; + for (uint8_t i=0; istate.valid == false) + if (o->state.current == false) { const int16_t angle_meas = sensors[o->config.sensor_idx]->get_angle_func(); const float delta_pos_est = PWM_PERIOD_S * o->state.vel_estimate; float delta_pos_meas = angle_meas - o->state.pos_estimate_wrapped; - if (delta_pos_meas < -(o->state.encoder_half_ticks)) + if (delta_pos_meas < -(o->state.sensor_half_ticks)) { - delta_pos_meas += o->state.encoder_ticks; + delta_pos_meas += o->state.sensor_ticks; } - else if (delta_pos_meas >= o->state.encoder_half_ticks) + else if (delta_pos_meas >= o->state.sensor_half_ticks) { - delta_pos_meas -= o->state.encoder_ticks; + delta_pos_meas -= o->state.sensor_ticks; } const float delta_pos_error = delta_pos_meas - delta_pos_est; const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); o->state.pos_estimate_wrapped += incr_pos; if (o->state.pos_estimate_wrapped < 0) { - o->state.pos_estimate_wrapped += o->state.encoder_ticks; + o->state.pos_estimate_wrapped += o->state.sensor_ticks; o->state.pos_sector -= 1; } - else if (o->state.pos_estimate_wrapped >= o->state.encoder_ticks) + else if (o->state.pos_estimate_wrapped >= o->state.sensor_ticks) { - o->state.pos_estimate_wrapped -= o->state.encoder_ticks; + o->state.pos_estimate_wrapped -= o->state.sensor_ticks; o->state.pos_sector += 1; } o->state.vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; - o->state.valid = true; + o->state.current = true; } } inline void observer_invalidate(Observer *o) { - o->state.valid = false; + o->state.current = false; } inline float observer_get_pos_estimate(Observer *o) { - const float primary = o->state.encoder_ticks * o->state.pos_sector; + const float primary = o->state.sensor_ticks * o->state.pos_sector; return primary + o->state.pos_estimate_wrapped; } inline float observer_get_diff(Observer *o, float target) { - const float primary = o->state.encoder_ticks * o->state.pos_sector; + const float primary = o->state.sensor_ticks * o->state.pos_sector; const float diff_sector = target - primary; return diff_sector - o->state.pos_estimate_wrapped; } @@ -119,7 +119,7 @@ inline float observer_get_vel_estimate(Observer *o) inline float observer_get_epos(Observer *o) { - if (SENSOR_MA7XX == o->state.encoder_type) + if (SENSOR_MA7XX == o->state.sensor_type) { return o->state.pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); } @@ -128,7 +128,7 @@ inline float observer_get_epos(Observer *o) inline float observer_get_evel(Observer *o) { - if (SENSOR_MA7XX == o->state.encoder_type) + if (SENSOR_MA7XX == o->state.sensor_type) { return o->state.vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); } diff --git a/firmware/src/sensors/hall.c b/firmware/src/sensors/hall.c index 49beeca4..eb2c549a 100644 --- a/firmware/src/sensors/hall.c +++ b/firmware/src/sensors/hall.c @@ -22,15 +22,14 @@ #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 -void hall_init(void) +bool hall_init(Sensor *s) { - HallConfig c = {0}; - return hall_init_with_config(*c); + HallConfig c = {.id = get_next_sensor_id()}; + return hall_init_with_config(s, *c); } -Sensor hall_init_with_config(SensorSpecificConfig *c) +bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) { - Sensor s = make_blank_sensor(); s->get_angle_func = hall_get_angle; s->update_func = hall_update; s->reset_func = hall_clear_sector_map; @@ -44,7 +43,7 @@ Sensor hall_init_with_config(SensorSpecificConfig *c) pac5xxx_tile_register_write(ADDR_CFGAIO7, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO8, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO9, AIO6789_IO_MODE | AIO_INPUT); - return s; + return true; } void hall_deinit(Sensor *s) diff --git a/firmware/src/sensors/hall.h b/firmware/src/sensors/hall.h index 546993f8..00d7950b 100644 --- a/firmware/src/sensors/hall.h +++ b/firmware/src/sensors/hall.h @@ -33,8 +33,8 @@ typedef struct uint8_t hw_defaults[3]; } HallSensorState; -Sensor hall_init(void); -Sensor hall_init_with_config(SensorSpecificConfig *c); +bool hall_init(Sensor *s); +bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c); void hall_deinit(Sensor *s); bool hall_sector_map_is_calibrated(Sensor *s); diff --git a/firmware/src/sensors/ma7xx.c b/firmware/src/sensors/ma7xx.c index 6062faea..54f7a2d8 100644 --- a/firmware/src/sensors/ma7xx.c +++ b/firmware/src/sensors/ma7xx.c @@ -24,29 +24,26 @@ // ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0) -Sensor ma7xx_init() +bool ma7xx_init(Sensor *s) { - MA7xxConfig c = {0}; - c.ssp_port = ONBOARD_SENSOR_SSP_PORT; - return ma7xx_init_with_config(*c); + MA7xxConfig c = {.id = get_next_sensor_id(), .ssp_port = ONBOARD_SENSOR_SSP_PORT}; + return ma7xx_init_with_config(s, *c); } -Sensor ma7xx_init_with_config(SensorSpecificConfig *c) +bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) { - Sensor s = make_blank_sensor(); s->get_angle_func = ma7xx_get_angle_rectified; s->update_func = ma7xx_update; s->reset_func = ma7xx_clear_rec_table; s->get_error_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; - s->config = *c; - MA7xxConfig *c = s->config.ss_config.ma7xx_config; - ssp_init(c->ssp_port, SSP_MS_MASTER, 0, 0); + const MA7xxConfig *sensor_c = s->config.ss_config.ma7xx_config; + ssp_init(sensor_c->ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(&s); ma7xx_update(&s, false); - return s; + return true; } void ma7xx_deinit(Sensor *s) diff --git a/firmware/src/sensors/ma7xx.h b/firmware/src/sensors/ma7xx.h index 79dd4c8b..d1919b2a 100644 --- a/firmware/src/sensors/ma7xx.h +++ b/firmware/src/sensors/ma7xx.h @@ -53,8 +53,8 @@ typedef struct uint8_t error; } MA7xxSensorState; -Sensor ma7xx_init(); -Sensor ma7xx_init_with_config(SensorSpecificConfig *c); +bool ma7xx_init(Sensor *s); +bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_clear_rec_table(Sensor *s); bool ma7xx_rec_is_calibrated(Sensor *s); diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensors/sensor.c index 234689c4..2b154e0e 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensors/sensor.c @@ -2,37 +2,35 @@ #include #include -static uint8_t sensor_id = 0; +static uint32_t sensor_id = 1; // 0 implicitly treated as missing value -Sensor make_blank_sensor(void) +uint32_t get_next_sensor_id(void) { - Sensor s = {0}; - s.id = sensor_id; - sensor_id++; - return s; + return sensor_id++; } -Sensor sensor_init(void) +bool sensor_init_with_config(Sensor *s, SensorConfig *c) { - SensorConfig c = {0}; - return sensor_init_with_config(&c); -} - -Sensor sensor_init_with_config(SensorConfig *c) -{ -#ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == c->type) + if (s->initialized == false) { +#ifdef BOARD_REV_R5 + if (SENSOR_MA7XX == c->type) + { #endif - return ma7xx_init_with_config(c); + return ma7xx_init_with_config(s, c); #ifdef BOARD_REV_R5 + } + else if (SENSOR_HALL == c->type) + { + return hall_init_with_config(s, c); + } +#endif + // ... (similar branches for other sensor types) } - else if (SENSOR_HALL == c->type) + else { - return hall_init_with_config(c); + return false; } -#endif - // ... (similar branches for other sensor types) } void sensor_deinit(Sensor *s) @@ -59,14 +57,14 @@ void sensor_reset(Sensor *s) void make_default_sensor_config(void) { - sensors[0] = ma7xx_init(); + ma7xx_init(&(sensors[0])); sensor_commutation = &(sensors[0]); sensor_position = &(sensors[0]); } uint32_t sensors_config_length(void) { - uint32_t config_length = 0; + uint32_t config_length = sizeof(sensor_commutation) + sizeof(sensor_position); for (uint8_t i=0; iid), sizeof(sensor_commutation->id)); + buffer_pos += sizeof(sensor_commutation->id); + memcpy(buffer, &(sensor_position->id), sizeof(sensor_position->id)); + buffer_pos += sizeof(sensor_position->id); + const uint32_t position_id = *sensor_commutation.id + for (uint8_t i=0; i= *len - sizeof(SensorConfig)) + { + memcpy(&(configs[i]), buffer_pos, sizeof(SensorConfig)); + buffer_pos += sizeof(SensorConfig); + } + else + { + return false; + } + } + for (uint8_t i=0; iupdate_func(check_error); + if (s->current == false) + { + s->update_func(check_error); + s->current = true; + } } inline uint16_t sensor_get_ticks(Sensor *s) { From a455f0ad53bd7105aef7c9041d19313582045636 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 10 Nov 2023 13:44:02 +0200 Subject: [PATCH 008/219] add observer init --- firmware/src/observer/observer.c | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index cf08e3cb..93e61b08 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -82,12 +82,79 @@ uint32_t observers_config_length(void) return config_length; } +uint32_t observers_config_length(void) +{ + uint32_t config_length = sizeof(observer_commutation) + sizeof(observer_position); + for (uint8_t i=0; iid), sizeof(observer_commutation->id)); + buffer_pos += sizeof(observer_commutation->id); + memcpy(buffer, &(observer_position->id), sizeof(observer_position->id)); + buffer_pos += sizeof(observer_position->id); + for (uint8_t i=0; i= *len - sizeof(ObserverConfig)) + { + memcpy(&(configs[i]), buffer_pos, sizeof(ObserverConfig)); + buffer_pos += sizeof(ObserverConfig); + } + else + { + return false; + } + } + for (uint8_t i=0; i Date: Fri, 10 Nov 2023 13:44:13 +0200 Subject: [PATCH 009/219] fix init routine --- firmware/src/sensors/hall.c | 5 +++-- firmware/src/sensors/ma7xx.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/firmware/src/sensors/hall.c b/firmware/src/sensors/hall.c index eb2c549a..1a0c8635 100644 --- a/firmware/src/sensors/hall.c +++ b/firmware/src/sensors/hall.c @@ -35,8 +35,9 @@ bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) s->reset_func = hall_clear_sector_map; s->get_error_func = hall_get_errors; s->is_calibrated_func = hall_sector_map_is_calibrated; - s->calibrate_func = ma7xx_calibrate; - s->config = *c; + s->calibrate_func = hall_calibrate_sequence; + s->config.type = SENSOR_HALL; + s->config.ss_config = *c; s->state.hall_state.hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); s->state.hall_state.hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); s->state.hall_state.hw_defaults[2] = pac5xxx_tile_register_read(ADDR_CFGAIO9); diff --git a/firmware/src/sensors/ma7xx.c b/firmware/src/sensors/ma7xx.c index 54f7a2d8..dc27009b 100644 --- a/firmware/src/sensors/ma7xx.c +++ b/firmware/src/sensors/ma7xx.c @@ -38,8 +38,9 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) s->get_error_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; - const MA7xxConfig *sensor_c = s->config.ss_config.ma7xx_config; - ssp_init(sensor_c->ssp_port, SSP_MS_MASTER, 0, 0); + s->config.type = SENSOR_MA7XX; + s->config.ss_config = *c; + ssp_init(s->config.ss_config.ma7xx_config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(&s); ma7xx_update(&s, false); From f45279d5f7b1fc47457b3382750bd4ed66be6c85 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 10 Nov 2023 13:44:29 +0200 Subject: [PATCH 010/219] minor refactor of sensor --- firmware/src/sensors/sensor.c | 26 ++++++++++++++------------ firmware/src/sensors/sensor.h | 9 +++++---- firmware/src/system/system.c | 1 - 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensors/sensor.c index 2b154e0e..9c76c0c2 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensors/sensor.c @@ -69,24 +69,23 @@ uint32_t sensors_config_length(void) { if (sensors[i].initialized) { - config_length += len(SensorConfig); + config_length += sizeof(SensorConfig); } } return config_length; } -bool serialize_sensors_config_to_buffer(uint8_t *buffer, uint32_t *len) +bool sensors_serialize_config_to_buffer(uint8_t *buffer, uint32_t *len) { uint8_t *buffer_pos = buffer; memcpy(buffer, &(sensor_commutation->id), sizeof(sensor_commutation->id)); buffer_pos += sizeof(sensor_commutation->id); memcpy(buffer, &(sensor_position->id), sizeof(sensor_position->id)); buffer_pos += sizeof(sensor_position->id); - const uint32_t position_id = *sensor_commutation.id for (uint8_t i=0; i #include #include -#include #include #include #include From 3b638116bee06d392faaa0d4b55fae2ffecaecae Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 13 Nov 2023 00:45:48 +0200 Subject: [PATCH 011/219] rename sensor folder --- firmware/src/{sensors => sensor}/hall.c | 4 ++-- firmware/src/{sensors => sensor}/hall.h | 2 +- firmware/src/{sensors => sensor}/ma7xx.c | 8 +++----- firmware/src/{sensors => sensor}/ma7xx.h | 2 +- firmware/src/{sensors => sensor}/sensor.c | 14 +++++++------- firmware/src/{sensors => sensor}/sensor.h | 20 ++++++++++---------- 6 files changed, 24 insertions(+), 26 deletions(-) rename firmware/src/{sensors => sensor}/hall.c (98%) rename firmware/src/{sensors => sensor}/hall.h (97%) rename firmware/src/{sensors => sensor}/ma7xx.c (97%) rename firmware/src/{sensors => sensor}/ma7xx.h (98%) rename firmware/src/{sensors => sensor}/sensor.c (90%) rename firmware/src/{sensors => sensor}/sensor.h (94%) diff --git a/firmware/src/sensors/hall.c b/firmware/src/sensor/hall.c similarity index 98% rename from firmware/src/sensors/hall.c rename to firmware/src/sensor/hall.c index 1a0c8635..48a829c5 100644 --- a/firmware/src/sensors/hall.c +++ b/firmware/src/sensor/hall.c @@ -22,10 +22,10 @@ #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 -bool hall_init(Sensor *s) +bool hall_init_with_defaults(Sensor *s) { HallConfig c = {.id = get_next_sensor_id()}; - return hall_init_with_config(s, *c); + return hall_init_with_config(s, &c); } bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) diff --git a/firmware/src/sensors/hall.h b/firmware/src/sensor/hall.h similarity index 97% rename from firmware/src/sensors/hall.h rename to firmware/src/sensor/hall.h index 00d7950b..dacf942c 100644 --- a/firmware/src/sensors/hall.h +++ b/firmware/src/sensor/hall.h @@ -33,7 +33,7 @@ typedef struct uint8_t hw_defaults[3]; } HallSensorState; -bool hall_init(Sensor *s); +bool hall_init_with_defaults(Sensor *s); bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c); void hall_deinit(Sensor *s); diff --git a/firmware/src/sensors/ma7xx.c b/firmware/src/sensor/ma7xx.c similarity index 97% rename from firmware/src/sensors/ma7xx.c rename to firmware/src/sensor/ma7xx.c index dc27009b..e0a3cfb4 100644 --- a/firmware/src/sensors/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -22,12 +22,10 @@ #include #include -// ONBOARD_SENSOR_SSP_PORT, SSP_MS_MASTER, Mode 0) - -bool ma7xx_init(Sensor *s) +bool ma7xx_init_with_defaults(Sensor *s) { MA7xxConfig c = {.id = get_next_sensor_id(), .ssp_port = ONBOARD_SENSOR_SSP_PORT}; - return ma7xx_init_with_config(s, *c); + return ma7xx_init_with_config(s, &c); } bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) @@ -38,7 +36,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) s->get_error_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; - s->config.type = SENSOR_MA7XX; + s->config.type = SENSOR_TYPE_MA7XX; s->config.ss_config = *c; ssp_init(s->config.ss_config.ma7xx_config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet diff --git a/firmware/src/sensors/ma7xx.h b/firmware/src/sensor/ma7xx.h similarity index 98% rename from firmware/src/sensors/ma7xx.h rename to firmware/src/sensor/ma7xx.h index d1919b2a..3b7fa728 100644 --- a/firmware/src/sensors/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -53,7 +53,7 @@ typedef struct uint8_t error; } MA7xxSensorState; -bool ma7xx_init(Sensor *s); +bool ma7xx_init_with_defaults(Sensor *s); bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_clear_rec_table(Sensor *s); diff --git a/firmware/src/sensors/sensor.c b/firmware/src/sensor/sensor.c similarity index 90% rename from firmware/src/sensors/sensor.c rename to firmware/src/sensor/sensor.c index 9c76c0c2..9b33f4e2 100644 --- a/firmware/src/sensors/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -14,13 +14,13 @@ bool sensor_init_with_config(Sensor *s, SensorConfig *c) if (s->initialized == false) { #ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == c->type) + if (SENSOR_TYPE_MA7XX == c->type) { #endif return ma7xx_init_with_config(s, c); #ifdef BOARD_REV_R5 } - else if (SENSOR_HALL == c->type) + else if (SENSOR_TYPE_HALL == c->type) { return hall_init_with_config(s, c); } @@ -36,13 +36,13 @@ bool sensor_init_with_config(Sensor *s, SensorConfig *c) void sensor_deinit(Sensor *s) { #ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == s->type) + if (SENSOR_TYPE_MA7XX == s->type) { #endif ma7xx_deinit(s); #ifdef BOARD_REV_R5 } - else if (SENSOR_HALL == s->type) + else if (SENSOR_TYPE_HALL == s->type) { hall_deinit(s); } @@ -55,9 +55,9 @@ void sensor_reset(Sensor *s) s->reset_func(); } -void make_default_sensor_config(void) +void sensors_init_with_defaults(void) { - ma7xx_init(&(sensors[0])); + ma7xx_init_with_defaults(&(sensors[0])); sensor_commutation = &(sensors[0]); sensor_position = &(sensors[0]); } @@ -102,7 +102,7 @@ bool sensors_serialize_config_to_buffer(uint8_t *buffer, uint32_t *len) return true; } -bool sensors_initialize_with_config_buffer(const uint8_t *buffer, const uint32_t len) +bool sensors_init_with_config_buffer(const uint8_t *buffer, const uint32_t len) { uint8_t *buffer_pos = buffer; uint32_t commutation_id, position_id; diff --git a/firmware/src/sensors/sensor.h b/firmware/src/sensor/sensor.h similarity index 94% rename from firmware/src/sensors/sensor.h rename to firmware/src/sensor/sensor.h index e9f1c6aa..ae14ce46 100644 --- a/firmware/src/sensors/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -36,11 +36,11 @@ typedef void (*sensor_update_func_t)(Sensor *); typedef uint8_t (*sensor_get_error_func_t)(Sensor *); typedef enum { - SENSOR_INVALID = 0, - SENSOR_MA7XX = 1, - SENSOR_HALL = 2, - SENSOR_AS5047 = 3, - SENSOR_AMT22 = 4 + SENSOR_TYPE_INVALID = 0, + SENSOR_TYPE_MA7XX = 1, + SENSOR_TYPE_HALL = 2, + SENSOR_TYPE_AS5047 = 3, + SENSOR_TYPE_AMT22 = 4 } sensor_type_t; typedef union { @@ -63,8 +63,9 @@ typedef union { AMT22SensorState amt22_state; } SensorSpecificState; -// Generic sensor struct typedef struct { + SensorConfig config; + SensorSpecificState state; sensor_init_func_t init_func; sensor_is_calibrated_func_t is_calibrated_func; sensor_calibrate_func_t calibrate_func; @@ -72,8 +73,6 @@ typedef struct { sensor_reset_func_t reset_func; sensor_update_func_t update_func; sensor_get_error_func_t get_error_func; - SensorConfig config; - SensorSpecificState state; bool initialized : 1; bool current : 1; } Sensor; @@ -87,10 +86,11 @@ uint32_t get_next_sensor_id(void); bool sensor_init_with_config(Sensor *s, SensorConfig *c); void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); -void make_default_sensor_config(void); + +void sensors_init_with_defaults(void); uint32_t sensors_config_length(void); bool sensors_serialize_config_to_buffer(uint8_t *buffer, uint32_t *len); -bool sensors_initialize_with_config_buffer(const uint8_t *buffer, const uint32_t len); +bool sensors_init_with_config_buffer(const uint8_t *buffer, const uint32_t len); inline int16_t sensor_get_angle(Sensor *s) { From aa7dd9addb53b0f1df86dc1556e5ec9d84508050 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 14 Nov 2023 02:01:02 +0200 Subject: [PATCH 012/219] update spec --- docs/protocol/reference.rst | 201 ++++++++++++++---- firmware/src/can/can_endpoints.c | 162 ++++++++++++-- firmware/src/can/can_endpoints.h | 165 ++++++++++++-- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 52 ++--- 4 files changed, 472 insertions(+), 108 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index d24de64f..22b26c91 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -643,86 +643,205 @@ Flags: - INVALID_POLE_PAIRS -encoder.position_estimate +sensors.setup.onboard.calibrated ------------------------------------------------------------------- ID: 53 -Type: float -Units: tick +Type: bool -The filtered encoder position estimate. + +Whether the sensor has been calibrated. -encoder.velocity_estimate +sensors.setup.onboard.errors ------------------------------------------------------------------- ID: 54 -Type: float -Units: tick / second +Type: uint8 -The filtered encoder velocity estimate. +Any sensor errors, as a bitmask +Flags: +- CALIBRATION_FAILED +- READING_UNSTABLE -encoder.type +sensors.setup.external_spi.type ------------------------------------------------------------------- ID: 55 Type: uint8 -The encoder type. Either INTERNAL or HALL. +The type of external sensor type. Either MA7XX, AS5047 or AMT22. Options: -- INTERNAL -- HALL +- MA7XX +- AS5047 +- AMT22 -encoder.bandwidth +sensors.setup.external_spi.calibrated ------------------------------------------------------------------- ID: 56 -Type: float -Units: hertz +Type: bool -The encoder observer bandwidth. +Whether the sensor has been calibrated. -encoder.calibrated + +sensors.setup.external_spi.errors ------------------------------------------------------------------- ID: 57 +Type: uint8 + + +Any sensor errors, as a bitmask + +Flags: +- CALIBRATION_FAILED +- READING_UNSTABLE + + +sensors.setup.hall.calibrated +------------------------------------------------------------------- + +ID: 58 Type: bool -Whether the encoder has been calibrated. +Whether the sensor has been calibrated. -encoder.errors +sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 58 +ID: 59 Type: uint8 -Any encoder errors, as a bitmask +Any sensor errors, as a bitmask Flags: - CALIBRATION_FAILED - READING_UNSTABLE +sensors.select.position.type +------------------------------------------------------------------- + +ID: 60 +Type: uint8 + + +The encoder type. Either ONBOARD, SPI or HALL. + +Options: +- ONBOARD +- SPI +- HALL + + +sensors.select.position.bandwidth +------------------------------------------------------------------- + +ID: 61 +Type: float +Units: hertz + +The encoder observer bandwidth. + + + + +sensors.select.position.position_estimate +------------------------------------------------------------------- + +ID: 62 +Type: float +Units: tick + +The filtered encoder position estimate. + + + + +sensors.select.position.velocity_estimate +------------------------------------------------------------------- + +ID: 63 +Type: float +Units: tick / second + +The filtered encoder velocity estimate. + + + + +sensors.select.commutation.type +------------------------------------------------------------------- + +ID: 64 +Type: uint8 + + +The encoder type. Either ONBOARD, SPI or HALL. + +Options: +- ONBOARD +- SPI +- HALL + + +sensors.select.commutation.bandwidth +------------------------------------------------------------------- + +ID: 65 +Type: float +Units: hertz + +The encoder observer bandwidth. + + + + +sensors.select.commutation.position_estimate +------------------------------------------------------------------- + +ID: 66 +Type: float +Units: tick + +The filtered encoder position estimate. + + + + +sensors.select.commutation.velocity_estimate +------------------------------------------------------------------- + +ID: 67 +Type: float +Units: tick / second + +The filtered encoder velocity estimate. + + + + traj_planner.max_accel ------------------------------------------------------------------- -ID: 59 +ID: 68 Type: float Units: tick / second @@ -734,7 +853,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 60 +ID: 69 Type: float Units: tick / second ** 2 @@ -746,7 +865,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 61 +ID: 70 Type: float Units: tick / second @@ -758,7 +877,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 62 +ID: 71 Type: float Units: second @@ -770,7 +889,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 63 +ID: 72 Type: float Units: second @@ -782,7 +901,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 64 +ID: 73 Type: float Units: second @@ -794,7 +913,7 @@ In time mode, the total time of the generated trajectory. move_to(pos_setpoint) -> void ------------------------------------------------------------------- -ID: 65 +ID: 74 Return Type: void @@ -804,7 +923,7 @@ Move to target position respecting velocity and acceleration limits. move_to_tlimit(pos_setpoint) -> void ------------------------------------------------------------------- -ID: 66 +ID: 75 Return Type: void @@ -814,7 +933,7 @@ Move to target position respecting time limits for each sector. traj_planner.errors ------------------------------------------------------------------- -ID: 67 +ID: 76 Type: uint8 @@ -828,7 +947,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 68 +ID: 77 Type: float Units: tick / second @@ -840,7 +959,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 69 +ID: 78 Type: float Units: second @@ -852,7 +971,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 70 +ID: 79 Type: float Units: tick @@ -864,7 +983,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 71 +ID: 80 Type: uint8 @@ -877,7 +996,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 72 +ID: 81 Type: float Units: tick / second @@ -889,7 +1008,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 73 +ID: 82 Type: float Units: tick @@ -901,7 +1020,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 74 +ID: 83 Type: float Units: second @@ -913,7 +1032,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void ------------------------------------------------------------------- -ID: 75 +ID: 84 Return Type: void @@ -923,7 +1042,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 76 +ID: 85 Type: bool @@ -935,7 +1054,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 77 +ID: 86 Type: bool @@ -947,7 +1066,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 78 +ID: 87 Type: float Units: second diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index eef3a72a..f5f52157 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -18,8 +18,8 @@ #include -uint8_t (*avlos_endpoints[79])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_encoder_position_estimate, &avlos_encoder_velocity_estimate, &avlos_encoder_type, &avlos_encoder_bandwidth, &avlos_encoder_calibrated, &avlos_encoder_errors, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 3526126264; +uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_type, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_type, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint32_t avlos_proto_hash = 1410328871; uint32_t _avlos_get_proto_hash(void) { @@ -111,7 +111,7 @@ uint8_t avlos_temp(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = ADC_get_mcu_temp(); + v = adc_get_mcu_temp(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -762,7 +762,133 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + bool v; + v = sensor_onboard_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = sensor_onboard_get_errors(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = sensor_external_spi_get_type(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } +else if (AVLOS_CMD_WRITE == cmd) { + uint8_t v; + memcpy(&v, buffer, sizeof(v)); + sensor_external_spi_set_type(v); + return AVLOS_RET_WRITE; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + bool v; + v = sensor_external_spi_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = sensor_external_spi_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + bool v; + v = sensor_hall_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = sensor_hall_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_select_position_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = position_sensor_get_type(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } +else if (AVLOS_CMD_WRITE == cmd) { + uint8_t v; + memcpy(&v, buffer, sizeof(v)); + position_sensor_set_type(v); + return AVLOS_RET_WRITE; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + float v; + v = position_sensor_get_bandwidth(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } +else if (AVLOS_CMD_WRITE == cmd) { + float v; + memcpy(&v, buffer, sizeof(v)); + position_sensor_set_bandwidth(v); + return AVLOS_RET_WRITE; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; @@ -774,7 +900,7 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; @@ -786,11 +912,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = encoder_get_type(); + v = commutation_sensor_get_type(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -798,17 +924,17 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { uint8_t v; memcpy(&v, buffer, sizeof(v)); - encoder_set_type(v); + commutation_sensor_set_type(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = observer_get_bw(); + v = commutation_sensor_get_bandwidth(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -816,17 +942,17 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - observer_set_bw(v); + commutation_sensor_set_bandwidth(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { - bool v; - v = encoder_get_calibrated(); + float v; + v = observer_get_pos_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -834,11 +960,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_encoder_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { - uint8_t v; - v = encoder_get_errors(); + float v; + v = observer_get_vel_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 0f773a13..8e34b585 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -65,10 +65,24 @@ typedef enum typedef enum { - ENCODER_ERRORS_NONE = 0, - ENCODER_ERRORS_CALIBRATION_FAILED = (1 << 0), - ENCODER_ERRORS_READING_UNSTABLE = (1 << 1) -} encoder_errors_flags; + SENSORS_SETUP_ONBOARD_ERRORS_NONE = 0, + SENSORS_SETUP_ONBOARD_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_onboard_errors_flags; + +typedef enum +{ + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_NONE = 0, + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_external_spi_errors_flags; + +typedef enum +{ + SENSORS_SETUP_HALL_ERRORS_NONE = 0, + SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_HALL_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_hall_errors_flags; typedef enum { @@ -91,12 +105,27 @@ typedef enum typedef enum { - ENCODER_TYPE_INTERNAL = 0, - ENCODER_TYPE_HALL = 1 -} encoder_type_options; + SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX = 0, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047 = 1, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22 = 2 +} sensors_setup_external_spi_type_options; + +typedef enum +{ + SENSORS_SELECT_POSITION_TYPE_ONBOARD = 0, + SENSORS_SELECT_POSITION_TYPE_SPI = 1, + SENSORS_SELECT_POSITION_TYPE_HALL = 2 +} sensors_select_position_type_options; + +typedef enum +{ + SENSORS_SELECT_COMMUTATION_TYPE_ONBOARD = 0, + SENSORS_SELECT_COMMUTATION_TYPE_SPI = 1, + SENSORS_SELECT_COMMUTATION_TYPE_HALL = 2 +} sensors_select_commutation_type_options; extern uint32_t avlos_proto_hash; -extern uint8_t (*avlos_endpoints[79])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +extern uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -630,64 +659,154 @@ uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_position_estimate +* avlos_sensors_setup_onboard_calibrated +* +* Whether the sensor has been calibrated. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_onboard_errors +* +* Any sensor errors, as a bitmask +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_external_spi_type +* +* The type of external sensor type. Either MA7XX, AS5047 or AMT22. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_external_spi_calibrated +* +* Whether the sensor has been calibrated. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_external_spi_errors +* +* Any sensor errors, as a bitmask +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_hall_calibrated +* +* Whether the sensor has been calibrated. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_setup_hall_errors +* +* Any sensor errors, as a bitmask +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_select_position_type +* +* The encoder type. Either ONBOARD, SPI or HALL. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_select_position_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_select_position_bandwidth +* +* The encoder observer bandwidth. +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_select_position_position_estimate * * The filtered encoder position estimate. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_velocity_estimate +* avlos_sensors_select_position_velocity_estimate * * The filtered encoder velocity estimate. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_type +* avlos_sensors_select_commutation_type * -* The encoder type. Either INTERNAL or HALL. +* The encoder type. Either ONBOARD, SPI or HALL. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_bandwidth +* avlos_sensors_select_commutation_bandwidth * * The encoder observer bandwidth. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_calibrated +* avlos_sensors_select_commutation_position_estimate * -* Whether the encoder has been calibrated. +* The filtered encoder position estimate. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_encoder_errors +* avlos_sensors_select_commutation_velocity_estimate * -* Any encoder errors, as a bitmask +* The filtered encoder velocity estimate. * * @param buffer * @param buffer_len */ -uint8_t avlos_encoder_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_traj_planner_max_accel diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 6b183755..49a785ad 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -333,66 +333,66 @@ remote_attributes: summary: Any motor/calibration errors, as a bitmask - name: sensors remote_attributes: - - setup: + - name: setup remote_attributes: - name: onboard remote_attributes: - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: - summary: Whether the encoder has been calibrated. + getter_name: sensor_onboard_get_calibrated + summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] meta: {dynamic: True} - getter_name: - summary: Any encoder errors, as a bitmask + getter_name: sensor_onboard_get_errors + summary: Any sensor errors, as a bitmask - name: external_spi remote_attributes: - name: type options: [MA7XX, AS5047, AMT22] meta: {export: True} - getter_name: get_external_spi_sensor_type - setter_name: set_external_spi_sensor_type + getter_name: sensor_external_spi_get_type + setter_name: sensor_external_spi_set_type summary: The type of external sensor type. Either MA7XX, AS5047 or AMT22. - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: - summary: Whether the encoder has been calibrated. + getter_name: sensor_external_spi_get_calibrated + summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] meta: {dynamic: True} - getter_name: - summary: Any encoder errors, as a bitmask + getter_name: sensor_external_spi_get_calibrated + summary: Any sensor errors, as a bitmask - name: hall remote_attributes: - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: - summary: Whether the encoder has been calibrated. + getter_name: sensor_hall_get_calibrated + summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] meta: {dynamic: True} - getter_name: - summary: Any encoder errors, as a bitmask - - select: + getter_name: sensor_hall_get_calibrated + summary: Any sensor errors, as a bitmask + - name: select remote_attributes: - - position: + - name: position remote_attributes: - name: type options: [ONBOARD, SPI, HALL] meta: {export: True} - getter_name: get_position_sensor_type - setter_name: set_position_sensor_type + getter_name: position_sensor_get_type + setter_name: position_sensor_set_type summary: The encoder type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} - getter_name: get_position_sensor_bandwidth - setter_name: set_position_sensor_bandwidth + getter_name: position_sensor_get_bandwidth + setter_name: position_sensor_set_bandwidth summary: The encoder observer bandwidth. - name: position_estimate dtype: float @@ -406,20 +406,20 @@ remote_attributes: meta: {dynamic: True} getter_name: observer_get_vel_estimate_user_frame summary: The filtered encoder velocity estimate. - - commutation: + - name: commutation remote_attributes: - name: type options: [ONBOARD, SPI, HALL] meta: {export: True} - getter_name: get_commutation_sensor_type - setter_name: set_commutation_sensor_type + getter_name: commutation_sensor_get_type + setter_name: commutation_sensor_set_type summary: The encoder type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} - getter_name: get_commutation_sensor_bandwidth - setter_name: set_commutation_sensor_bandwidth + getter_name: commutation_sensor_get_bandwidth + setter_name: commutation_sensor_set_bandwidth summary: The encoder observer bandwidth. - name: position_estimate dtype: float From 6463a73dc22ffe7679c6ab82f2c86ac9b8c14fbb Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 14 Nov 2023 02:01:10 +0200 Subject: [PATCH 013/219] fix import --- avlos_config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avlos_config.yaml b/avlos_config.yaml index 1b05ef07..e4e5e1d6 100644 --- a/avlos_config.yaml +++ b/avlos_config.yaml @@ -13,7 +13,7 @@ generators: - - src/adc/adc.h - src/system/system.h - - src/sensors/sensor.h + - src/sensor/sensor.h - src/observer/observer.h - src/motor/motor.h - src/scheduler/scheduler.h From ff9831daa3c2055a3382dee999905a4003e9a535 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 14 Nov 2023 02:01:30 +0200 Subject: [PATCH 014/219] rename encoder to sensor --- studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 49a785ad..eb9a4207 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -386,26 +386,26 @@ remote_attributes: meta: {export: True} getter_name: position_sensor_get_type setter_name: position_sensor_set_type - summary: The encoder type. Either ONBOARD, SPI or HALL. + summary: The angle sensor type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} getter_name: position_sensor_get_bandwidth setter_name: position_sensor_set_bandwidth - summary: The encoder observer bandwidth. + summary: The sensor observer bandwidth. - name: position_estimate dtype: float unit: ticks meta: {dynamic: True} getter_name: observer_get_pos_estimate_user_frame - summary: The filtered encoder position estimate. + summary: The filtered sensor position estimate. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} getter_name: observer_get_vel_estimate_user_frame - summary: The filtered encoder velocity estimate. + summary: The filtered sensor velocity estimate. - name: commutation remote_attributes: - name: type @@ -413,26 +413,26 @@ remote_attributes: meta: {export: True} getter_name: commutation_sensor_get_type setter_name: commutation_sensor_set_type - summary: The encoder type. Either ONBOARD, SPI or HALL. + summary: The angle sensor type. Either ONBOARD, SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} getter_name: commutation_sensor_get_bandwidth setter_name: commutation_sensor_set_bandwidth - summary: The encoder observer bandwidth. + summary: The sensor observer bandwidth. - name: position_estimate dtype: float unit: ticks meta: {dynamic: True} getter_name: observer_get_pos_estimate_user_frame - summary: The filtered encoder position estimate. + summary: The filtered sensor position estimate. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} getter_name: observer_get_vel_estimate_user_frame - summary: The filtered encoder velocity estimate. + summary: The filtered sensor velocity estimate. - name: traj_planner remote_attributes: - name: max_accel From 065c6e8f5fbe631bb832fbb10e7cffe7dfbdbcca Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 16 Nov 2023 15:24:56 +0200 Subject: [PATCH 015/219] update protocol --- docs/protocol/reference.rst | 20 +- firmware/src/can/can_endpoints.c | 4 +- firmware/src/can/can_endpoints.h | 196 +++++++++++++++++- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 10 +- 4 files changed, 203 insertions(+), 27 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 22b26c91..10c695c1 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -743,11 +743,11 @@ ID: 60 Type: uint8 -The encoder type. Either ONBOARD, SPI or HALL. +The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. Options: - ONBOARD -- SPI +- EXTERNAL_SPI - HALL @@ -758,7 +758,7 @@ ID: 61 Type: float Units: hertz -The encoder observer bandwidth. +The sensor observer bandwidth. @@ -770,7 +770,7 @@ ID: 62 Type: float Units: tick -The filtered encoder position estimate. +The filtered sensor position estimate. @@ -782,7 +782,7 @@ ID: 63 Type: float Units: tick / second -The filtered encoder velocity estimate. +The filtered sensor velocity estimate. @@ -794,11 +794,11 @@ ID: 64 Type: uint8 -The encoder type. Either ONBOARD, SPI or HALL. +The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. Options: - ONBOARD -- SPI +- EXTERNAL_SPI - HALL @@ -809,7 +809,7 @@ ID: 65 Type: float Units: hertz -The encoder observer bandwidth. +The sensor observer bandwidth. @@ -821,7 +821,7 @@ ID: 66 Type: float Units: tick -The filtered encoder position estimate. +The filtered sensor position estimate. @@ -833,7 +833,7 @@ ID: 67 Type: float Units: tick / second -The filtered encoder velocity estimate. +The filtered sensor velocity estimate. diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index f5f52157..4164d6f0 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -19,7 +19,7 @@ uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_type, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_type, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 1410328871; +uint32_t avlos_proto_hash = 3498994080; uint32_t _avlos_get_proto_hash(void) { @@ -111,7 +111,7 @@ uint8_t avlos_temp(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = adc_get_mcu_temp(); + v = ADC_get_mcu_temp(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 8e34b585..478c5943 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -113,14 +113,14 @@ typedef enum typedef enum { SENSORS_SELECT_POSITION_TYPE_ONBOARD = 0, - SENSORS_SELECT_POSITION_TYPE_SPI = 1, + SENSORS_SELECT_POSITION_TYPE_EXTERNAL_SPI = 1, SENSORS_SELECT_POSITION_TYPE_HALL = 2 } sensors_select_position_type_options; typedef enum { SENSORS_SELECT_COMMUTATION_TYPE_ONBOARD = 0, - SENSORS_SELECT_COMMUTATION_TYPE_SPI = 1, + SENSORS_SELECT_COMMUTATION_TYPE_EXTERNAL_SPI = 1, SENSORS_SELECT_COMMUTATION_TYPE_HALL = 2 } sensors_select_commutation_type_options; @@ -133,6 +133,8 @@ extern uint32_t _avlos_get_proto_hash(void); * * The Avlos protocol hash. * +* Endpoint ID: 0 +* * @param buffer * @param buffer_len */ @@ -143,6 +145,8 @@ uint8_t avlos_protocol_hash(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comman * * The unique device ID, unique to each PAC55xx chip produced. * +* Endpoint ID: 1 +* * @param buffer * @param buffer_len */ @@ -153,6 +157,8 @@ uint8_t avlos_uid(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * The firmware version. * +* Endpoint ID: 2 +* * @param buffer * @param buffer_len */ @@ -163,6 +169,8 @@ uint8_t avlos_fw_version(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * The hardware revision. * +* Endpoint ID: 3 +* * @param buffer * @param buffer_len */ @@ -173,6 +181,8 @@ uint8_t avlos_hw_revision(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The measured bus voltage. * +* Endpoint ID: 4 +* * @param buffer * @param buffer_len */ @@ -183,6 +193,8 @@ uint8_t avlos_Vbus(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * The estimated bus current. Only estimates current drawn by motor. * +* Endpoint ID: 5 +* * @param buffer * @param buffer_len */ @@ -193,6 +205,8 @@ uint8_t avlos_Ibus(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * The estimated power. Only estimates power drawn by motor. * +* Endpoint ID: 6 +* * @param buffer * @param buffer_len */ @@ -203,6 +217,8 @@ uint8_t avlos_power(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * The internal temperature of the PAC55xx MCU. * +* Endpoint ID: 7 +* * @param buffer * @param buffer_len */ @@ -213,6 +229,8 @@ uint8_t avlos_temp(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * Whether the system has been calibrated. * +* Endpoint ID: 8 +* * @param buffer * @param buffer_len */ @@ -223,6 +241,8 @@ uint8_t avlos_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * Any system errors, as a bitmask * +* Endpoint ID: 9 +* * @param buffer * @param buffer_len */ @@ -233,6 +253,8 @@ uint8_t avlos_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * Save configuration to non-volatile memory. * +* Endpoint ID: 10 +* * @param buffer * @param buffer_len */ @@ -243,6 +265,8 @@ uint8_t avlos_save_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Erase the config stored in non-volatile memory and reset the device. * +* Endpoint ID: 11 +* * @param buffer * @param buffer_len */ @@ -253,6 +277,8 @@ uint8_t avlos_erase_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Reset the device. * +* Endpoint ID: 12 +* * @param buffer * @param buffer_len */ @@ -263,6 +289,8 @@ uint8_t avlos_reset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * Enter DFU mode. * +* Endpoint ID: 13 +* * @param buffer * @param buffer_len */ @@ -273,6 +301,8 @@ uint8_t avlos_enter_dfu(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cm * * Any scheduler errors, as a bitmask * +* Endpoint ID: 14 +* * @param buffer * @param buffer_len */ @@ -283,6 +313,8 @@ uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The state of the controller. * +* Endpoint ID: 15 +* * @param buffer * @param buffer_len */ @@ -293,6 +325,8 @@ uint8_t avlos_controller_state(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The control mode of the controller. * +* Endpoint ID: 16 +* * @param buffer * @param buffer_len */ @@ -303,6 +337,8 @@ uint8_t avlos_controller_mode(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Any controller warnings, as a bitmask * +* Endpoint ID: 17 +* * @param buffer * @param buffer_len */ @@ -313,6 +349,8 @@ uint8_t avlos_controller_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any controller errors, as a bitmask * +* Endpoint ID: 18 +* * @param buffer * @param buffer_len */ @@ -323,6 +361,8 @@ uint8_t avlos_controller_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Co * * The position setpoint. * +* Endpoint ID: 19 +* * @param buffer * @param buffer_len */ @@ -333,6 +373,8 @@ uint8_t avlos_controller_position_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The proportional gain of the position controller. * +* Endpoint ID: 20 +* * @param buffer * @param buffer_len */ @@ -343,6 +385,8 @@ uint8_t avlos_controller_position_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The velocity setpoint. * +* Endpoint ID: 21 +* * @param buffer * @param buffer_len */ @@ -353,6 +397,8 @@ uint8_t avlos_controller_velocity_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The velocity limit. * +* Endpoint ID: 22 +* * @param buffer * @param buffer_len */ @@ -363,6 +409,8 @@ uint8_t avlos_controller_velocity_limit(uint8_t * buffer, uint8_t * buffer_len, * * The proportional gain of the velocity controller. * +* Endpoint ID: 23 +* * @param buffer * @param buffer_len */ @@ -373,6 +421,8 @@ uint8_t avlos_controller_velocity_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The integral gain of the velocity controller. * +* Endpoint ID: 24 +* * @param buffer * @param buffer_len */ @@ -383,6 +433,8 @@ uint8_t avlos_controller_velocity_i_gain(uint8_t * buffer, uint8_t * buffer_len, * * The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. * +* Endpoint ID: 25 +* * @param buffer * @param buffer_len */ @@ -393,6 +445,8 @@ uint8_t avlos_controller_velocity_deadband(uint8_t * buffer, uint8_t * buffer_le * * Max velocity setpoint increment (ramping) rate. Set to 0 to disable. * +* Endpoint ID: 26 +* * @param buffer * @param buffer_len */ @@ -403,6 +457,8 @@ uint8_t avlos_controller_velocity_increment(uint8_t * buffer, uint8_t * buffer_l * * The Iq setpoint. * +* Endpoint ID: 27 +* * @param buffer * @param buffer_len */ @@ -413,6 +469,8 @@ uint8_t avlos_controller_current_Iq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Id setpoint. * +* Endpoint ID: 28 +* * @param buffer * @param buffer_len */ @@ -423,6 +481,8 @@ uint8_t avlos_controller_current_Id_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Iq limit. * +* Endpoint ID: 29 +* * @param buffer * @param buffer_len */ @@ -433,6 +493,8 @@ uint8_t avlos_controller_current_Iq_limit(uint8_t * buffer, uint8_t * buffer_len * * The Iq estimate. * +* Endpoint ID: 30 +* * @param buffer * @param buffer_len */ @@ -443,6 +505,8 @@ uint8_t avlos_controller_current_Iq_estimate(uint8_t * buffer, uint8_t * buffer_ * * The current controller bandwidth. * +* Endpoint ID: 31 +* * @param buffer * @param buffer_len */ @@ -453,6 +517,8 @@ uint8_t avlos_controller_current_bandwidth(uint8_t * buffer, uint8_t * buffer_le * * The current controller proportional gain. * +* Endpoint ID: 32 +* * @param buffer * @param buffer_len */ @@ -463,6 +529,8 @@ uint8_t avlos_controller_current_Iq_p_gain(uint8_t * buffer, uint8_t * buffer_le * * The max current allowed to be fed back to the power source before flux braking activates. * +* Endpoint ID: 33 +* * @param buffer * @param buffer_len */ @@ -473,6 +541,8 @@ uint8_t avlos_controller_current_max_Ibus_regen(uint8_t * buffer, uint8_t * buff * * The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. * +* Endpoint ID: 34 +* * @param buffer * @param buffer_len */ @@ -483,6 +553,8 @@ uint8_t avlos_controller_current_max_Ibrake(uint8_t * buffer, uint8_t * buffer_l * * The Vq setpoint. * +* Endpoint ID: 35 +* * @param buffer * @param buffer_len */ @@ -493,6 +565,8 @@ uint8_t avlos_controller_voltage_Vq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * Calibrate the device. * +* Endpoint ID: 36 +* * @param buffer * @param buffer_len */ @@ -503,6 +577,8 @@ uint8_t avlos_controller_calibrate(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Set idle mode, disabling the driver. * +* Endpoint ID: 37 +* * @param buffer * @param buffer_len */ @@ -513,6 +589,8 @@ uint8_t avlos_controller_idle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Set position control mode. * +* Endpoint ID: 38 +* * @param buffer * @param buffer_len */ @@ -523,6 +601,8 @@ uint8_t avlos_controller_position_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set velocity control mode. * +* Endpoint ID: 39 +* * @param buffer * @param buffer_len */ @@ -533,6 +613,8 @@ uint8_t avlos_controller_velocity_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set current control mode. * +* Endpoint ID: 40 +* * @param buffer * @param buffer_len */ @@ -543,6 +625,8 @@ uint8_t avlos_controller_current_mode(uint8_t * buffer, uint8_t * buffer_len, Av * * Set the position and velocity setpoints in one go, and retrieve the position estimate * +* Endpoint ID: 41 +* * @param buffer * @param buffer_len */ @@ -553,6 +637,8 @@ uint8_t avlos_controller_set_pos_vel_setpoints(uint8_t * buffer, uint8_t * buffe * * The baud rate of the CAN interface. * +* Endpoint ID: 42 +* * @param buffer * @param buffer_len */ @@ -563,6 +649,8 @@ uint8_t avlos_comms_can_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comma * * The ID of the CAN interface. * +* Endpoint ID: 43 +* * @param buffer * @param buffer_len */ @@ -573,6 +661,8 @@ uint8_t avlos_comms_can_id(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The motor Resistance value. * +* Endpoint ID: 44 +* * @param buffer * @param buffer_len */ @@ -583,6 +673,8 @@ uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor Inductance value. * +* Endpoint ID: 45 +* * @param buffer * @param buffer_len */ @@ -593,6 +685,8 @@ uint8_t avlos_motor_L(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor pole pair count. * +* Endpoint ID: 46 +* * @param buffer * @param buffer_len */ @@ -603,6 +697,8 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The type of the motor. Either high current or gimbal. * +* Endpoint ID: 47 +* * @param buffer * @param buffer_len */ @@ -613,6 +709,8 @@ uint8_t avlos_motor_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * User-defined offset of the motor. * +* Endpoint ID: 48 +* * @param buffer * @param buffer_len */ @@ -623,6 +721,8 @@ uint8_t avlos_motor_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * User-defined direction of the motor. * +* Endpoint ID: 49 +* * @param buffer * @param buffer_len */ @@ -633,6 +733,8 @@ uint8_t avlos_motor_direction(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Whether the motor has been calibrated. * +* Endpoint ID: 50 +* * @param buffer * @param buffer_len */ @@ -643,6 +745,8 @@ uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The calibration current. * +* Endpoint ID: 51 +* * @param buffer * @param buffer_len */ @@ -653,6 +757,8 @@ uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Any motor/calibration errors, as a bitmask * +* Endpoint ID: 52 +* * @param buffer * @param buffer_len */ @@ -663,6 +769,8 @@ uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the sensor has been calibrated. * +* Endpoint ID: 53 +* * @param buffer * @param buffer_len */ @@ -673,6 +781,8 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe * * Any sensor errors, as a bitmask * +* Endpoint ID: 54 +* * @param buffer * @param buffer_len */ @@ -683,6 +793,8 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le * * The type of external sensor type. Either MA7XX, AS5047 or AMT22. * +* Endpoint ID: 55 +* * @param buffer * @param buffer_len */ @@ -693,6 +805,8 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer * * Whether the sensor has been calibrated. * +* Endpoint ID: 56 +* * @param buffer * @param buffer_len */ @@ -703,6 +817,8 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * +* Endpoint ID: 57 +* * @param buffer * @param buffer_len */ @@ -713,6 +829,8 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * +* Endpoint ID: 58 +* * @param buffer * @param buffer_len */ @@ -723,6 +841,8 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * +* Endpoint ID: 59 +* * @param buffer * @param buffer_len */ @@ -731,7 +851,9 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, /* * avlos_sensors_select_position_type * -* The encoder type. Either ONBOARD, SPI or HALL. +* The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +* +* Endpoint ID: 60 * * @param buffer * @param buffer_len @@ -741,7 +863,9 @@ uint8_t avlos_sensors_select_position_type(uint8_t * buffer, uint8_t * buffer_le /* * avlos_sensors_select_position_bandwidth * -* The encoder observer bandwidth. +* The sensor observer bandwidth. +* +* Endpoint ID: 61 * * @param buffer * @param buffer_len @@ -751,7 +875,9 @@ uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buff /* * avlos_sensors_select_position_position_estimate * -* The filtered encoder position estimate. +* The filtered sensor position estimate. +* +* Endpoint ID: 62 * * @param buffer * @param buffer_len @@ -761,7 +887,9 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ /* * avlos_sensors_select_position_velocity_estimate * -* The filtered encoder velocity estimate. +* The filtered sensor velocity estimate. +* +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -771,7 +899,9 @@ uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_ /* * avlos_sensors_select_commutation_type * -* The encoder type. Either ONBOARD, SPI or HALL. +* The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +* +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -781,7 +911,9 @@ uint8_t avlos_sensors_select_commutation_type(uint8_t * buffer, uint8_t * buffer /* * avlos_sensors_select_commutation_bandwidth * -* The encoder observer bandwidth. +* The sensor observer bandwidth. +* +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -791,7 +923,9 @@ uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * b /* * avlos_sensors_select_commutation_position_estimate * -* The filtered encoder position estimate. +* The filtered sensor position estimate. +* +* Endpoint ID: 66 * * @param buffer * @param buffer_len @@ -801,7 +935,9 @@ uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uin /* * avlos_sensors_select_commutation_velocity_estimate * -* The filtered encoder velocity estimate. +* The filtered sensor velocity estimate. +* +* Endpoint ID: 67 * * @param buffer * @param buffer_len @@ -813,6 +949,8 @@ uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uin * * The max allowed acceleration of the generated trajectory. * +* Endpoint ID: 68 +* * @param buffer * @param buffer_len */ @@ -823,6 +961,8 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * +* Endpoint ID: 69 +* * @param buffer * @param buffer_len */ @@ -833,6 +973,8 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * +* Endpoint ID: 70 +* * @param buffer * @param buffer_len */ @@ -843,6 +985,8 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * +* Endpoint ID: 71 +* * @param buffer * @param buffer_len */ @@ -853,6 +997,8 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * +* Endpoint ID: 72 +* * @param buffer * @param buffer_len */ @@ -863,6 +1009,8 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * +* Endpoint ID: 73 +* * @param buffer * @param buffer_len */ @@ -873,6 +1021,8 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting velocity and acceleration limits. * +* Endpoint ID: 74 +* * @param buffer * @param buffer_len */ @@ -883,6 +1033,8 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting time limits for each sector. * +* Endpoint ID: 75 +* * @param buffer * @param buffer_len */ @@ -893,6 +1045,8 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * +* Endpoint ID: 76 +* * @param buffer * @param buffer_len */ @@ -903,6 +1057,8 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * +* Endpoint ID: 77 +* * @param buffer * @param buffer_len */ @@ -913,6 +1069,8 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * +* Endpoint ID: 78 +* * @param buffer * @param buffer_len */ @@ -923,6 +1081,8 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * +* Endpoint ID: 79 +* * @param buffer * @param buffer_len */ @@ -933,6 +1093,8 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * +* Endpoint ID: 80 +* * @param buffer * @param buffer_len */ @@ -943,6 +1105,8 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * +* Endpoint ID: 81 +* * @param buffer * @param buffer_len */ @@ -953,6 +1117,8 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * +* Endpoint ID: 82 +* * @param buffer * @param buffer_len */ @@ -963,6 +1129,8 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * +* Endpoint ID: 83 +* * @param buffer * @param buffer_len */ @@ -973,6 +1141,8 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * +* Endpoint ID: 84 +* * @param buffer * @param buffer_len */ @@ -983,6 +1153,8 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * +* Endpoint ID: 85 +* * @param buffer * @param buffer_len */ @@ -993,6 +1165,8 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * +* Endpoint ID: 86 +* * @param buffer * @param buffer_len */ @@ -1003,6 +1177,8 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * +* Endpoint ID: 87 +* * @param buffer * @param buffer_len */ diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index eb9a4207..7a2b79fa 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -39,7 +39,7 @@ remote_attributes: dtype: float unit: degC meta: {dynamic: True} - getter_name: adc_get_mcu_temp + getter_name: ADC_get_mcu_temp summary: The internal temperature of the PAC55xx MCU. - name: calibrated dtype: bool @@ -382,11 +382,11 @@ remote_attributes: - name: position remote_attributes: - name: type - options: [ONBOARD, SPI, HALL] + options: [ONBOARD, EXTERNAL_SPI, HALL] meta: {export: True} getter_name: position_sensor_get_type setter_name: position_sensor_set_type - summary: The angle sensor type. Either ONBOARD, SPI or HALL. + summary: The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. - name: bandwidth dtype: float unit: Hz @@ -409,11 +409,11 @@ remote_attributes: - name: commutation remote_attributes: - name: type - options: [ONBOARD, SPI, HALL] + options: [ONBOARD, EXTERNAL_SPI, HALL] meta: {export: True} getter_name: commutation_sensor_get_type setter_name: commutation_sensor_set_type - summary: The angle sensor type. Either ONBOARD, SPI or HALL. + summary: The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. - name: bandwidth dtype: float unit: Hz From 7dff9958c13d6746f68c6d6413f80d53c3f18d27 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 16 Nov 2023 15:25:36 +0200 Subject: [PATCH 016/219] format function name --- firmware/src/controller/controller.c | 4 ++-- firmware/src/motor/motor.c | 6 ++---- firmware/src/motor/motor.h | 5 ++++- firmware/src/scheduler/scheduler.c | 6 +++--- firmware/src/scheduler/scheduler.h | 2 +- firmware/src/utils/utils.h | 4 +++- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 0a6cb8a0..c08d03a5 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -16,7 +16,7 @@ // * along with this program. If not, see . #include "src/system/system.h" -#include +#include #include #include "src/adc/adc.h" #include "src/motor/motor.h" @@ -151,7 +151,7 @@ void Controller_ControlLoop(void) { // pass } - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); } } diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index 6d505d7f..bba7924e 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -17,11 +17,9 @@ #include #include -#include #include #include #include -#include #include #if defined BOARD_REV_R32 || defined BOARD_REV_R33 || defined BOARD_REV_R5 @@ -102,7 +100,7 @@ bool motor_calibrate_resistance(void) const float pwm_setpoint = V_setpoint / system_get_Vbus(); SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); } const float R = our_fabsf(V_setpoint / I_cal); gate_driver_set_duty_cycle(&three_phase_zero); @@ -146,7 +144,7 @@ bool motor_calibrate_inductance(void) const float pwm_setpoint = V_setpoint / system_get_Vbus(); SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); } const float num_cycles = CAL_L_LEN / 2; const float dI_by_dt = (I_high - I_low) / (PWM_PERIOD_S * num_cycles); diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 68d1a1a2..51187ea5 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -17,6 +17,9 @@ #pragma once +#include +#include +#include #include #if defined BOARD_REV_R32 || BOARD_REV_R33 || defined BOARD_REV_R5 @@ -118,6 +121,6 @@ static inline void set_epos_and_wait(float angle, float I_setpoint) SVM(pwm_setpoint * fast_cos(angle), pwm_setpoint * fast_sin(angle), &modulation_values.A, &modulation_values.B, &modulation_values.C); gate_driver_set_duty_cycle(&modulation_values); - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); } diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index bb8a4803..f0358dd9 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -22,8 +22,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -33,7 +33,7 @@ volatile uint32_t msTicks = 0; SchedulerState state = {0}; -void WaitForControlLoopInterrupt(void) +void wait_for_control_loop_interrupt(void) { while (!state.adc_interrupt) diff --git a/firmware/src/scheduler/scheduler.h b/firmware/src/scheduler/scheduler.h index e4af643d..ca6d889f 100644 --- a/firmware/src/scheduler/scheduler.h +++ b/firmware/src/scheduler/scheduler.h @@ -28,6 +28,6 @@ typedef struct uint8_t errors; } SchedulerState; -void WaitForControlLoopInterrupt(void); +void wait_for_control_loop_interrupt(void); uint8_t scheduler_get_errors(void); diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index e09ed597..3b978a4b 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -22,6 +22,8 @@ #include "src/common.h" +extern void wait_for_control_loop_interrupt(void); + #if __ARM_FEATURE_FMA && __ARM_FP&4 && !__SOFTFP__ && !BROKEN_VFP_ASM static inline float fast_sqrt(float x) @@ -46,7 +48,7 @@ static inline void wait_pwm_cycles(uint32_t cycles) { for (uint32_t i = 0; i < cycles; i++) { - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); } } From 4444d8d786e5d0e7b91adccc9da02aa37e29f9b3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 16 Nov 2023 15:26:22 +0200 Subject: [PATCH 017/219] refactor sensor structure --- firmware/src/common.h | 4 +- firmware/src/main.c | 12 ++-- firmware/src/nvm/nvm.c | 12 ++-- firmware/src/nvm/nvm.h | 8 +-- firmware/src/observer/observer.c | 107 +++++++----------------------- firmware/src/observer/observer.h | 104 ++++++++++++++--------------- firmware/src/sensor/hall.c | 24 ++++++- firmware/src/sensor/hall.h | 27 ++------ firmware/src/sensor/ma7xx.c | 54 ++++++++++++++- firmware/src/sensor/ma7xx.h | 64 ++++-------------- firmware/src/sensor/sensor.c | 79 ++-------------------- firmware/src/sensor/sensor.h | 109 ++++++++++++++++--------------- 12 files changed, 245 insertions(+), 359 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index d64398d9..2096a6b6 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -54,6 +54,8 @@ #include "pac5xxx_tile_signal_manager.h" #include "config.h" +#define ALWAYS_INLINE __attribute__((always_inline)) + #ifndef PAC5XXX_OK #define PAC5XXX_OK 0 #endif @@ -140,7 +142,7 @@ static const float quarterpi = PI * 0.25f; static const float twopi_by_enc_ticks = TWOPI / ENCODER_TICKS; static const float twopi_by_hall_sectors = TWOPI / HALL_SECTORS; -_Static_assert (TIMER_FREQ_HZ % (2*PWM_FREQ_HZ) == 0, "Timer frequency not an integer multiple of PWM frequency"); +_Static_assert(TIMER_FREQ_HZ % (2*PWM_FREQ_HZ) == 0, "Timer frequency not an integer multiple of PWM frequency"); typedef struct { diff --git a/firmware/src/main.c b/firmware/src/main.c index b481a243..b28c10db 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -15,11 +15,11 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#include + #include "src/common.h" #include "src/system/system.h" - #include "src/uart/uart_lowlevel.h" +#include #include "src/observer/observer.h" #include "src/adc/adc.h" #include "src/motor/motor.h" @@ -34,10 +34,12 @@ int main(void) { __disable_irq(); system_init(); - nvm_load_config(); // This will TRY to deserialize and import config - encoder_init(); + if (!nvm_load_config()) + { + sensors_init_with_defaults(); + observer_init_with_defaults(); + } UART_Init(); - observer_init(); ADC_init(); CAN_init(); Timer_Init(); diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index b965ebbc..da9ac0df 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -31,10 +31,8 @@ bool nvm_save_config(void) s.node_id_2 = CAN_get_ID(); s.adc_config = *ADC_get_config(); s.motor_config = *motor_get_config(); - s.hall_config = *hall_get_config(); - s.ma7xx_config = *ma7xx_get_config(); - s.encoder_config = *encoder_get_config(); - s.observer_config = *observer_get_config(); + encoders_get_config(&(s.encoders_config)); + observers_get_config(&(s.observers_config)); s.controller_config = *controller_get_config(); s.can_config = *CAN_get_config(); s.traj_planner_config = *traj_planner_get_config(); @@ -63,10 +61,8 @@ bool nvm_load_config(void) { ADC_restore_config(&s.adc_config); motor_restore_config(&s.motor_config); - hall_restore_config(&s.hall_config); - ma7xx_restore_config(&s.ma7xx_config); - encoder_restore_config(&s.encoder_config); - observer_restore_config(&s.observer_config); + encoders_restore_config(&s.encoders_config); + observers_restore_config(&s.observers_config); controller_restore_config(&s.controller_config); CAN_restore_config(&s.can_config); traj_planner_restore_config(&s.traj_planner_config); diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index e7fef689..0f5f22f8 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -19,8 +19,6 @@ #include #include -#include -#include #include #include #include @@ -35,10 +33,8 @@ struct NVMStruct { uint8_t node_id_2; ADCConfig adc_config; MotorConfig motor_config; - HallConfig hall_config; - MA7xxConfig ma7xx_config; - SensorConfig encoder_config; - ObserverConfig observer_config; + SensorsConfig encoders_config; + ObserversConfig observers_config; ControllerConfig controller_config; CANConfig can_config; TrajPlannerConfig traj_planner_config; diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 93e61b08..470bd712 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -27,25 +27,30 @@ static ObserverConfig config = { .ki = 0.0f, }; -Observer observer_init(Sensor *s) +bool observer_init_with_defaults(Observer *o, Sensor *s) { - Observer *o = {0}; - o->config = config; - o->config.sensor_idx = s->idx; - observer_set_bw(config.track_bw); + ObserverConfig c = {.track_bw=350}; + return observer_init_with_config(o, s, &c); +} + +bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c) +{ + o->sensor_ptr = &(sensors[sensor_id]); + o->config = *c; + observer_set_bw(o, config->track_bw); // We keep local copies of a few key variables from // the encoder, because it is faster than calling // the encoder function pointer - o->state.encoder_type = sensor_get_type(s); - o->state.encoder_ticks = sensor_get_ticks(s); - o->state.encoder_half_ticks = state.encoder_ticks/2; + o->encoder_type = sensor_get_type(s); + o->encoder_ticks = sensor_get_ticks(s); + o->encoder_half_ticks = state.encoder_ticks/2; } void observer_reset(Observer *o) { - o->state.pos_sector = 0; - o->state.pos_estimate_wrapped = 0; - o->state.vel_estimate = 0; + o->pos_sector = 0; + o->pos_estimate_wrapped = 0; + o->vel_estimate = 0; } float observer_get_bw(Observer *o) @@ -63,10 +68,11 @@ void observer_set_bw(Observer *o, float bw) } } -void make_default_observer_config(void) +void observers_init_with_defaults(void) { - observers[0] = observer_init(sensor_commutation); - observers[1] = observers[0]; + observer_init(observers[0], sensor_commutation); + observer_commutation = &(observers[0]); + observer_position = &(observers[0]); } uint32_t observers_config_length(void) @@ -82,79 +88,12 @@ uint32_t observers_config_length(void) return config_length; } -uint32_t observers_config_length(void) +void observers_get_config(ObserversConfig *config_) { - uint32_t config_length = sizeof(observer_commutation) + sizeof(observer_position); - for (uint8_t i=0; iid), sizeof(observer_commutation->id)); - buffer_pos += sizeof(observer_commutation->id); - memcpy(buffer, &(observer_position->id), sizeof(observer_position->id)); - buffer_pos += sizeof(observer_position->id); - for (uint8_t i=0; i= *len - sizeof(ObserverConfig)) - { - memcpy(&(configs[i]), buffer_pos, sizeof(ObserverConfig)); - buffer_pos += sizeof(ObserverConfig); - } - else - { - return false; - } - } - for (uint8_t i=0; i #include -#include - -typedef struct -{ - int32_t pos_sector; - float pos_estimate_wrapped; - float vel_estimate; - uint16_t sensor_ticks; - uint16_t sensor_half_ticks; - sensor_type_t sensor_type : 4; - bool current : 1; -} ObserverState; +#include typedef struct { @@ -43,104 +32,111 @@ typedef struct typedef struct { ObserverConfig config; - ObserverState state; + Sensor *sensor_ptr; + int32_t pos_sector; + float pos_estimate_wrapped; + float vel_estimate; + uint16_t sensor_ticks; + uint16_t sensor_half_ticks; + sensor_type_t sensor_type : 4; + bool initialized : 1; + bool current : 1; } Observer; -Observer observers[SENSOR_COUNT]; -Observer *observer_commutation; -Observer *observer_position; +Observer observer_commutation; +Observer observer_position; -Observer observer_init(Sensor *s); +bool observer_init_with_defaults(Observer *o, Sensor *s); +bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c); void observer_reset(Observer *o); float observer_get_bw(Observer *o); void observer_set_bw(Observer *o, float bw); -void make_default_observer_config(void); -uint32_t observers_config_length(void); -bool observers_serialize_config_to_buffer(uint8_t *buffer, uint32_t *len); -bool observers_initialize_with_config_buffer(const uint8_t *buffer, const uint32_t len); +void observers_init_with_defaults(void); +void observers_get_config(ObserversConfig *config_); +void observers_restore_config(ObserversConfig *config_); inline void observer_update(Observer *o) { - if (o->state.current == false) + if (o->current == false) { - const int16_t angle_meas = sensors[o->config.sensor_idx]->get_angle_func(); - const float delta_pos_est = PWM_PERIOD_S * o->state.vel_estimate; - float delta_pos_meas = angle_meas - o->state.pos_estimate_wrapped; - if (delta_pos_meas < -(o->state.sensor_half_ticks)) + const int16_t angle_meas = o->sensor_ptr->get_angle_func(o->sensor_ptr); + const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; + float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; + if (delta_pos_meas < -(o->sensor_half_ticks)) { - delta_pos_meas += o->state.sensor_ticks; + delta_pos_meas += o->sensor_ticks; } - else if (delta_pos_meas >= o->state.sensor_half_ticks) + else if (delta_pos_meas >= o->sensor_half_ticks) { - delta_pos_meas -= o->state.sensor_ticks; + delta_pos_meas -= o->sensor_ticks; } const float delta_pos_error = delta_pos_meas - delta_pos_est; const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); - o->state.pos_estimate_wrapped += incr_pos; - if (o->state.pos_estimate_wrapped < 0) + o->pos_estimate_wrapped += incr_pos; + if (o->pos_estimate_wrapped < 0) { - o->state.pos_estimate_wrapped += o->state.sensor_ticks; - o->state.pos_sector -= 1; + o->pos_estimate_wrapped += o->sensor_ticks; + o->pos_sector -= 1; } - else if (o->state.pos_estimate_wrapped >= o->state.sensor_ticks) + else if (o->pos_estimate_wrapped >= o->sensor_ticks) { - o->state.pos_estimate_wrapped -= o->state.sensor_ticks; - o->state.pos_sector += 1; + o->pos_estimate_wrapped -= o->sensor_ticks; + o->pos_sector += 1; } - o->state.vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; - o->state.current = true; + o->vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; + o->current = true; } } inline void observer_invalidate(Observer *o) { - o->state.current = false; + o->current = false; } inline float observer_get_pos_estimate(Observer *o) { - const float primary = o->state.sensor_ticks * o->state.pos_sector; - return primary + o->state.pos_estimate_wrapped; + const float primary = o->sensor_ticks * o->pos_sector; + return primary + o->pos_estimate_wrapped; } inline float observer_get_diff(Observer *o, float target) { - const float primary = o->state.sensor_ticks * o->state.pos_sector; + const float primary = o->sensor_ticks * o->pos_sector; const float diff_sector = target - primary; - return diff_sector - o->state.pos_estimate_wrapped; + return diff_sector - o->pos_estimate_wrapped; } inline float observer_get_vel_estimate(Observer *o) { - return o->state.vel_estimate; + return o->vel_estimate; } -inline float observer_get_epos(Observer *o) +static inline float observer_get_epos(Observer *o) { - if (SENSOR_MA7XX == o->state.sensor_type) + if (SENSOR_TYPE_MA7XX == o->sensor_type) { - return o->state.pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); + return o->pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); } - return o->state.pos_estimate_wrapped * twopi_by_hall_sectors; + return o->pos_estimate_wrapped * twopi_by_hall_sectors; } -inline float observer_get_evel(Observer *o) +static inline float observer_get_evel(Observer *o) { - if (SENSOR_MA7XX == o->state.sensor_type) + if (SENSOR_TYPE_MA7XX == o->sensor_type) { - return o->state.vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); + return o->vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); } - return o->state.vel_estimate * twopi_by_hall_sectors; + return o->vel_estimate * twopi_by_hall_sectors; } inline float observer_get_pos_estimate_user_frame(Observer *o) { - return (observer_get_pos_estimate() - motor_get_user_offset()) * motor_get_user_direction(); + return (observer_get_pos_estimate(o) - motor_get_user_offset()) * motor_get_user_direction(); } inline float observer_get_vel_estimate_user_frame(Observer *o) { - return o->state.vel_estimate * motor_get_user_direction(); + return o->vel_estimate * motor_get_user_direction(); } diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 48a829c5..f28997cc 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -17,7 +17,7 @@ #include #include -#include +#include #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 @@ -54,6 +54,28 @@ void hall_deinit(Sensor *s) pac5xxx_tile_register_write(ADDR_CFGAIO9, s->state.hall_state.hw_defaults[2]); } +ALWAYS_INLINE uint8_t hall_get_errors(Sensor *s) +{ + return s->state.hall_state.errors; +} + +ALWAYS_INLINE int16_t hall_get_angle(Sensor *s) +{ + return s->state.hall_state.angle; +} + +ALWAYS_INLINE void hall_update(Sensor *s, bool check_error) +{ + const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; + s->state.hall_state.sector = sector; + s->state.hall_state.angle = config.sector_map[state.sector]; +} + +ALWAYS_INLINE uint8_t hall_get_sector(Sensor *s) +{ + return s->state.hall_state.sector; +} + bool hall_sector_map_is_calibrated(Sensor *s) { return s->config.hall_config.sector_map_calibrated; diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index dacf942c..42d91eef 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -17,7 +17,8 @@ #pragma once -#include +typedef struct Sensor Sensor; +typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct { @@ -36,28 +37,12 @@ typedef struct bool hall_init_with_defaults(Sensor *s); bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c); void hall_deinit(Sensor *s); +uint8_t hall_get_errors(Sensor *s); +int16_t hall_get_angle(Sensor *s); +void hall_update(Sensor *s, bool check_error); +uint8_t hall_get_sector(Sensor *s); bool hall_sector_map_is_calibrated(Sensor *s); bool hall_calibrate_sequence(Sensor *s); -inline uint8_t hall_get_errors(Sensor *s) -{ - return s->state.hall_state.errors; -} - -inline int16_t hall_get_angle(Sensor *s) -{ - return s->state.hall_state.angle; -} -inline void hall_update(Sensor *s, bool check_error) -{ - const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; - s->state.hall_state.sector = sector; - s->state.hall_state.angle = config.sector_map[state.sector]; -} - -inline uint8_t hall_get_sector(Sensor *s) -{ - return s->state.hall_state.sector; -} \ No newline at end of file diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index e0a3cfb4..8b5142fa 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -20,7 +20,8 @@ #include #include #include -#include +#include +#include bool ma7xx_init_with_defaults(Sensor *s) { @@ -90,7 +91,7 @@ bool ma7xx_calibrate_offset_and_rectification(Sensor *s) e_pos_ref += delta; set_epos_and_wait(e_pos_ref, I_setpoint); } - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); const float pos_meas = observer_get_pos_estimate(observers[s->idx]); error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); } @@ -101,7 +102,7 @@ bool ma7xx_calibrate_offset_and_rectification(Sensor *s) e_pos_ref -= delta; set_epos_and_wait(e_pos_ref, I_setpoint); } - WaitForControlLoopInterrupt(); + wait_for_control_loop_interrupt(); const float pos_meas = observer_get_pos_estimate(observers[s->idx]); error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); } @@ -178,6 +179,53 @@ bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s) return success; } +ALWAYS_INLINE uint8_t ma7xx_get_errors(Sensor *s) +{ + return s->state.ma7xx_state.errors; +} + +ALWAYS_INLINE void ma7xx_send_angle_cmd(Sensor *s) +{ + ssp_write_one(s->config.ma7xx_config.ssp_struct, MA_CMD_ANGLE); +} + +ALWAYS_INLINE int16_t ma7xx_get_angle_raw(Sensor *s) +{ + return s->state.ma7xx_state.angle; +} + +ALWAYS_INLINE int16_t ma7xx_get_angle_rectified(Sensor *s) +{ + const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); + const int16_t angle = s->state.ma7xx_state.angle; + const int16_t off_1 = s->config.ma7xx_config.rec_table[angle>>offset_bits]; + const int16_t off_2 = s->config.ma7xx_config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + return angle + off_interp; +} + +ALWAYS_INLINE void ma7xx_update(Sensor *s, bool check_error) +{ + const int16_t angle = ssp_read_one(s->config.ma7xx_config.ssp_struct) >> 3; + + if (check_error) + { + const int16_t delta = state.angle - angle; + if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && + ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && + ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + { + state.errors |= ENCODER_ERRORS_READING_UNSTABLE; + } + } + state.angle = angle; +} + +ALWAYS_INLINE void ma7xx_calibrate(Sensor *s) +{ + return ma7xx_calibrate_direction_and_pole_pair_count() && ma7xx_calibrate_offset_and_rectification(); +} + /** * @brief Write to a register of the sensor * diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 3b7fa728..a7c0825d 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -17,7 +17,11 @@ #pragma once -#include +#include +#include + +typedef struct Sensor Sensor; +typedef union SensorSpecificConfig SensorSpecificConfig; #if defined BOARD_REV_R3 #define ONBOARD_SENSOR_SSP_PORT SSPD @@ -42,15 +46,16 @@ typedef enum { typedef struct { - bool rec_calibrated; + SSP_TYPE ssp_port; + PAC55XX_SSP_TYPEDEF *ssp_struct; int16_t rec_table[ECN_SIZE]; + bool rec_calibrated; } MA7xxSensorConfig; typedef struct { uint8_t errors; int16_t angle; - uint8_t error; } MA7xxSensorState; bool ma7xx_init_with_defaults(Sensor *s); @@ -59,54 +64,13 @@ void ma7xx_deinit(Sensor *s); void ma7xx_clear_rec_table(Sensor *s); bool ma7xx_rec_is_calibrated(Sensor *s); int16_t *ma7xx_get_rec_table_ptr(Sensor *s); +uint8_t ma7xx_get_errors(Sensor *s); +void ma7xx_send_angle_cmd(Sensor *s); +int16_t ma7xx_get_angle_raw(Sensor *s); +int16_t ma7xx_get_angle_rectified(Sensor *s); +void ma7xx_calibrate(Sensor *s); +void ma7xx_update(Sensor *s, bool check_error); uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); uint8_t ma7xx_read_reg(Sensor *s, uint8_t); bool ma7xx_calibrate_offset_and_rectification(Sensor *s); bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s); - -inline uint8_t ma7xx_get_errors(Sensor *s) -{ - return state.errors; -} - -inline void ma7xx_send_angle_cmd(Sensor *s) -{ - ssp_write_one(ONBOARD_SENSOR_SSP_STRUCT, MA_CMD_ANGLE); -} - -inline int16_t ma7xx_get_angle_raw(Sensor *s) -{ - return state.angle; -} - -inline int16_t ma7xx_get_angle_rectified(Sensor *s) -{ - const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); - const int16_t angle = state.angle; - const int16_t off_1 = config.rec_table[angle>>offset_bits]; - const int16_t off_2 = config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); - return angle + off_interp; -} - -inline void ma7xx_update(Sensor *s, bool check_error) -{ - const int16_t angle = ssp_read_one(ONBOARD_SENSOR_SSP_STRUCT) >> 3; - - if (check_error) - { - const int16_t delta = state.angle - angle; - if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && - ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && - ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) - { - state.errors |= ENCODER_ERRORS_READING_UNSTABLE; - } - } - state.angle = angle; -} - -inline void ma7xx_calibrate(Sensor *s) -{ - return ma7xx_calibrate_direction_and_pole_pair_count() && ma7xx_calibrate_offset_and_rectification(); -} \ No newline at end of file diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 9b33f4e2..87fcf1e7 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -1,6 +1,5 @@ -#include -#include +#include static uint32_t sensor_id = 1; // 0 implicitly treated as missing value @@ -62,82 +61,12 @@ void sensors_init_with_defaults(void) sensor_position = &(sensors[0]); } -uint32_t sensors_config_length(void) +void sensors_get_config(SensorsConfig *config_) { - uint32_t config_length = sizeof(sensor_commutation) + sizeof(sensor_position); - for (uint8_t i=0; iid), sizeof(sensor_commutation->id)); - buffer_pos += sizeof(sensor_commutation->id); - memcpy(buffer, &(sensor_position->id), sizeof(sensor_position->id)); - buffer_pos += sizeof(sensor_position->id); - - for (uint8_t i=0; i= *len - sizeof(SensorConfig)) - { - memcpy(&(configs[i]), buffer_pos, sizeof(SensorConfig)); - buffer_pos += sizeof(SensorConfig); - } - else - { - return false; - } - } - for (uint8_t i=0; i #include -#include -#include -#include +#include +#include +#include -#define SENSOR_CNT_BITS 2 -#define SENSOR_COUNT (1 << SENSOR_CNT_BITS) -static_assert((SENSOR_COUNT & (SENSOR_COUNT - 1)) == 0, "SENSOR_COUNT must be a power of 2"); +#define SENSOR_COUNT 3 -typedef Sensor (*sensor_init_func_t)(void); +typedef struct Sensor Sensor; +typedef union SensorSpecificConfig SensorSpecificConfig; +typedef struct SensorConfig SensorConfig; +typedef union SensorSpecificState SensorSpecificState; +typedef struct SensorsConfig SensorsConfig; + +typedef void (*sensor_init_func_t)(Sensor *); typedef bool (*sensor_is_calibrated_func_t)(Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *); typedef int16_t (*sensor_get_angle_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); -typedef void (*sensor_update_func_t)(Sensor *); +typedef void (*sensor_update_func_t)(Sensor *, bool); typedef uint8_t (*sensor_get_error_func_t)(Sensor *); typedef enum { @@ -43,27 +47,34 @@ typedef enum { SENSOR_TYPE_AMT22 = 4 } sensor_type_t; -typedef union { +// The +typedef enum { + SENSOR_LOCATION_ONBOARD = 0, + SENSOR_LOCATION_EXTERNAL_SPI = 1, + SENSOR_LOCATION_HALL = 2 +} sensor_location_t; + +union SensorSpecificConfig { MA7xxSensorConfig ma7xx_config; HallSensorConfig hall_config; - AS5047SensorConfig as5047_config; - AMT22SensorConfig amt22_config; -} SensorSpecificConfig; + // AS504xSensorConfig as5047_config; + // AMT22SensorConfig amt22_config; +}; -typedef struct { +struct SensorConfig { SensorSpecificConfig ss_config; uint32_t id; sensor_type_t type; -} SensorConfig; +}; -typedef union { +union SensorSpecificState{ MA7xxSensorState ma7xx_state; HallSensorState hall_state; - AS5047SensorState as5047_state; - AMT22SensorState amt22_state; -} SensorSpecificState; + // AS504xSensorState as5047_state; + // AMT22SensorState amt22_state; +}; -typedef struct { +struct Sensor { // typedefd earlier SensorConfig config; SensorSpecificState state; sensor_init_func_t init_func; @@ -75,40 +86,48 @@ typedef struct { sensor_get_error_func_t get_error_func; bool initialized : 1; bool current : 1; -} Sensor; +}; + +struct SensorsConfig { + SensorConfig config[SENSOR_COUNT]; + uint32_t commutation_id; + uint32_t position_id; +} +// The sequence in the `sensors` array is determined so that +// 0: onboard sensor, 1: external spi and 3: hall sensor +// index same as the members of `sensor_location_t` Sensor sensors[SENSOR_COUNT]; + Sensor *sensor_commutation; Sensor *sensor_position; - uint32_t get_next_sensor_id(void); bool sensor_init_with_config(Sensor *s, SensorConfig *c); void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); void sensors_init_with_defaults(void); -uint32_t sensors_config_length(void); -bool sensors_serialize_config_to_buffer(uint8_t *buffer, uint32_t *len); -bool sensors_init_with_config_buffer(const uint8_t *buffer, const uint32_t len); +void sensors_get_config(SensorsConfig *config_); +void sensors_restore_config(SensorsConfig *config_); -inline int16_t sensor_get_angle(Sensor *s) +static inline int16_t sensor_get_angle(Sensor *s) { - return s->get_angle_func(); + return s->get_angle_func(s); } -inline void sensor_update(Sensor *s, bool check_error) +static inline void sensor_update(Sensor *s, bool check_error) { if (s->current == false) { - s->update_func(check_error); + s->update_func(s, check_error); s->current = true; } } -inline uint16_t sensor_get_ticks(Sensor *s) { +static inline uint16_t sensor_get_ticks(Sensor *s) { #ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == s->type) { + if (SENSOR_TYPE_MA7XX == s->config.type) { #endif // We need to derive this during call, because the motor pole pairs // may change after calibration, or after user input @@ -119,10 +138,10 @@ inline uint16_t sensor_get_ticks(Sensor *s) { #endif } -inline float sensor_ticks_to_eangle(Sensor *s) +static inline float sensor_ticks_to_eangle(Sensor *s) { #ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == s->type) { + if (SENSOR_TYPE_MA7XX == s->config.type) { #endif // We need to derive this during call, because the motor pole pairs // may change after calibration, or after user input @@ -133,35 +152,23 @@ inline float sensor_ticks_to_eangle(Sensor *s) #endif } -inline SensorType sensor_get_type(Sensor *s) +static inline sensor_type_t sensor_get_type(Sensor *s) { - return s->type; -} - -inline void sensor_set_type(Sensor *s, SensorType sensor_type) -{ -#ifdef BOARD_REV_R5 - if (SENSOR_MA7XX == sensor_type || SENSOR_HALL == sensor_type) { -#endif - s->type = sensor_type; - sensor_init(s); // Re-initialize sensor with new type -#ifdef BOARD_REV_R5 - } -#endif + return s->config.type; } -inline bool sensor_get_calibrated(Sensor *s) +static inline bool sensor_get_calibrated(Sensor *s) { - return s->is_calibrated_func(); + return s->is_calibrated_func(s); } -inline bool sensor_calibrate(Sensor *s) +static inline bool sensor_calibrate(Sensor *s) { return s->calibrate_func(s); } -inline uint8_t sensor_get_errors(Sensor *s) +static inline uint8_t sensor_get_errors(Sensor *s) { - return s->get_error_func(); + return s->get_error_func(s); } From aaf3ff51a1853d52452463a7d3e467f2a6505bc3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 17 Nov 2023 12:36:26 +0200 Subject: [PATCH 018/219] fix import --- firmware/src/nvm/nvm.h | 2 +- firmware/src/sensor/sensor.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index 0f5f22f8..a88e6263 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 2b839364..9e61b312 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -92,7 +92,7 @@ struct SensorsConfig { SensorConfig config[SENSOR_COUNT]; uint32_t commutation_id; uint32_t position_id; -} +}; // The sequence in the `sensors` array is determined so that // 0: onboard sensor, 1: external spi and 3: hall sensor From 9b2199e66ab1e97baf63b666762eb98f93239668 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 17 Nov 2023 12:36:51 +0200 Subject: [PATCH 019/219] implement missing struct --- firmware/src/observer/observer.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 21355630..b252b1c4 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -43,6 +43,11 @@ typedef struct { bool current : 1; } Observer; +typedef struct { + ObserverConfig config_commutation; + ObserverConfig config_position; +} ObserversConfig; + Observer observer_commutation; Observer observer_position; From 4f92df5a6cdc49a00c4b4c7fca6c8c9d80951681 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 17 Nov 2023 12:37:27 +0200 Subject: [PATCH 020/219] refactor sensor update loop --- firmware/src/scheduler/scheduler.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index f0358dd9..ae4e6d02 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -73,14 +73,16 @@ void wait_for_control_loop_interrupt(void) state.adc_interrupt = false; // We have to service the control loop by updating // current measurements and encoder estimates. - if (SENSOR_MA7XX == encoder_get_type()) - { - ma7xx_send_angle_cmd(); - } + sensor_invalidate(sensor_commutation); + sensor_invalidate(sensor_position); + // If both pointers point to the same sensor, it will only br prepared and updated once + sensor_prepare(sensor_commutation); + sensor_prepare(sensor_position); ADC_update(); - - encoder_update(true); - observer_update(); + sensor_update(sensor_commutation, true); + sensor_update(sensor_position, true); + observer_update(observer_commutation); + observer_update(observer_position); // At this point control is returned to main loop. } From 9c8c9e91d4d3e07702d5d5e92974a18ba83bfa40 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 6 Dec 2023 16:46:23 +0200 Subject: [PATCH 021/219] rename variable --- firmware/src/sensor/hall.c | 2 +- firmware/src/sensor/ma7xx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index f28997cc..af7e5a18 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -33,7 +33,7 @@ bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) s->get_angle_func = hall_get_angle; s->update_func = hall_update; s->reset_func = hall_clear_sector_map; - s->get_error_func = hall_get_errors; + s->get_errors_func = hall_get_errors; s->is_calibrated_func = hall_sector_map_is_calibrated; s->calibrate_func = hall_calibrate_sequence; s->config.type = SENSOR_HALL; diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 8b5142fa..2f611ca5 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -34,7 +34,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) s->get_angle_func = ma7xx_get_angle_rectified; s->update_func = ma7xx_update; s->reset_func = ma7xx_clear_rec_table; - s->get_error_func = ma7xx_get_errors; + s->get_errors_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; s->config.type = SENSOR_TYPE_MA7XX; From fd35d32651dd7b3327824b6a4ccf0fa313af0296 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 6 Dec 2023 16:46:41 +0200 Subject: [PATCH 022/219] implement sensor interfaces --- firmware/src/sensor/sensor.c | 62 +++++++++++++++++++++++++++++++++++ firmware/src/sensor/sensor.h | 63 ++++++++++++++++++++++++++++++------ 2 files changed, 116 insertions(+), 9 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 87fcf1e7..7a8d44a5 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -1,4 +1,5 @@ +#include #include static uint32_t sensor_id = 1; // 0 implicitly treated as missing value @@ -70,3 +71,64 @@ void sensors_restore_config(SensorsConfig *config_) { } + +// These are the actual interface functions + +static inline int sensor_get_connection(Sensor *sensor) +{ + // Derive pointer array offset + return sensor - sensors; +} + +static inline void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) +{ + if (controller_get_state() == STATE_IDLE + && new_connection != sensor_get_connection(*target_sensor) + && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) + { + if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) + { + sensor_deinit(*target_sensor); + } + + *target_sensor = &(sensors[new_connection]); + + if (new_connection != sensor_get_connection(*other_sensor)) + { + sensor_init_with_defaults(*target_sensor); + } + } +} + +sensor_connection_t commutation_sensor_get_connection(void) +{ + return sensor_get_connection(sensor_commutation); +} + +void commutation_sensor_set_connection(sensor_connection_t new_connection) +{ + sensor_set_connection(&(sensor_commutation), &(sensor_position), new_connection); +} + +sensor_connection_t position_sensor_get_connection(void) +{ + return ssensor_get_connection(sensor_position); +} + +void position_sensor_set_type(sensor_connection_t new_connection) +{ + sensor_set_connection(&(sensor_position), &(sensor_commutation), new_connection); +} + +void sensor_external_spi_set_type(sensor_type_t type) +{ + if (controller_get_state() == STATE_IDLE + && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX + && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type) + { + sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type = type; + sensors_init_with_defaults(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); + } +} + diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 9e61b312..9c24fe54 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -37,22 +37,24 @@ typedef bool (*sensor_calibrate_func_t)(Sensor *); typedef int16_t (*sensor_get_angle_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); typedef void (*sensor_update_func_t)(Sensor *, bool); -typedef uint8_t (*sensor_get_error_func_t)(Sensor *); +typedef uint8_t (*sensor_get_errors_func_t)(Sensor *); typedef enum { SENSOR_TYPE_INVALID = 0, SENSOR_TYPE_MA7XX = 1, SENSOR_TYPE_HALL = 2, SENSOR_TYPE_AS5047 = 3, - SENSOR_TYPE_AMT22 = 4 + SENSOR_TYPE_AMT22 = 4, + SENSOR_TYPE_MAX } sensor_type_t; // The typedef enum { - SENSOR_LOCATION_ONBOARD = 0, - SENSOR_LOCATION_EXTERNAL_SPI = 1, - SENSOR_LOCATION_HALL = 2 -} sensor_location_t; + SENSOR_CONNECTION_ONBOARD_SPI = 0, + SENSOR_CONNECTION_EXTERNAL_SPI = 1, + SENSOR_CONNECTION_HALL = 2, + SENSOR_CONNECTION_MAX +} sensor_connection_t; union SensorSpecificConfig { MA7xxSensorConfig ma7xx_config; @@ -83,7 +85,7 @@ struct Sensor { // typedefd earlier sensor_get_angle_func_t get_angle_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; - sensor_get_error_func_t get_error_func; + sensor_get_errors_func_t get_errors_func; bool initialized : 1; bool current : 1; }; @@ -96,7 +98,7 @@ struct SensorsConfig { // The sequence in the `sensors` array is determined so that // 0: onboard sensor, 1: external spi and 3: hall sensor -// index same as the members of `sensor_location_t` +// index same as the members of `sensor_connection_t` Sensor sensors[SENSOR_COUNT]; Sensor *sensor_commutation; @@ -169,6 +171,49 @@ static inline bool sensor_calibrate(Sensor *s) static inline uint8_t sensor_get_errors(Sensor *s) { - return s->get_error_func(s); + return s->get_errors_func(s); } +sensor_connection_t commutation_sensor_get_connection(void); +void commutation_sensor_set_connection(sensor_connection_t new_connection); +sensor_connection_t position_sensor_get_connection(void); +void position_sensor_set_type(sensor_connection_t new_connection); + +static inline sensor_type_t sensor_external_spi_get_type(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type; +} + +void sensor_external_spi_set_type(sensor_type_t type); + +static inline bool sensor_onboard_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].is_calibrated_func(); +} + +static inline bool sensor_external_spi_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].is_calibrated_func(); +} + +static inline bool sensor_hall_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_HALL].is_calibrated_func(); +} + +static inline uint8_t sensor_onboard_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].get_errors_func(); +} + +static inline uint8_t sensor_external_spi_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].get_errors_func(); +} + +static inline uint8_t sensor_hall_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_HALL].get_errors_func(); +} + + From bc4130d629e33d2710d830b9c7a9a92961b3ef52 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 6 Dec 2023 16:47:13 +0200 Subject: [PATCH 023/219] cxx file associations --- .vscode/settings.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e3ad64e..0f62014e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,17 @@ "files.associations": { "random": "c", "limits": "c", - "common.h": "c" + "common.h": "c", + "__hash_table": "c", + "__tuple": "c", + "array": "c", + "type_traits": "c", + "ratio": "c", + "tuple": "c", + "variant": "c", + "chrono": "c", + "compare": "c", + "cstddef": "c" }, "python.testing.unittestArgs": [ "-v", From f6246d351cab79e061c3f926b940d0df7e6d374d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 6 Dec 2023 16:47:34 +0200 Subject: [PATCH 024/219] update interface functions and summary --- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 7a2b79fa..3bce2918 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -340,7 +340,7 @@ remote_attributes: - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: sensor_onboard_get_calibrated + getter_name: sensor_onboard_get_is_calibrated summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] @@ -358,81 +358,81 @@ remote_attributes: - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: sensor_external_spi_get_calibrated + getter_name: sensor_external_spi_get_is_calibrated summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] meta: {dynamic: True} - getter_name: sensor_external_spi_get_calibrated + getter_name: sensor_external_spi_get_errors summary: Any sensor errors, as a bitmask - name: hall remote_attributes: - name: calibrated dtype: bool meta: {dynamic: True} - getter_name: sensor_hall_get_calibrated + getter_name: sensor_hall_get_is_calibrated summary: Whether the sensor has been calibrated. - name: errors flags: [CALIBRATION_FAILED, READING_UNSTABLE] meta: {dynamic: True} - getter_name: sensor_hall_get_calibrated + getter_name: sensor_hall_get_errors summary: Any sensor errors, as a bitmask - name: select remote_attributes: - name: position remote_attributes: - - name: type + - name: connection options: [ONBOARD, EXTERNAL_SPI, HALL] meta: {export: True} - getter_name: position_sensor_get_type - setter_name: position_sensor_set_type - summary: The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. + getter_name: position_sensor_get_connection + setter_name: position_sensor_set_connection + summary: The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} getter_name: position_sensor_get_bandwidth setter_name: position_sensor_set_bandwidth - summary: The sensor observer bandwidth. + summary: The position sensor observer bandwidth. - name: position_estimate dtype: float unit: ticks meta: {dynamic: True} - getter_name: observer_get_pos_estimate_user_frame - summary: The filtered sensor position estimate. + getter_name: position_observer_get_pos_estimate_user_frame + summary: The filtered position sensor position estimate. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} - getter_name: observer_get_vel_estimate_user_frame - summary: The filtered sensor velocity estimate. + getter_name: position_observer_get_vel_estimate_user_frame + summary: The filtered position sensor velocity estimate. - name: commutation remote_attributes: - - name: type + - name: connection options: [ONBOARD, EXTERNAL_SPI, HALL] meta: {export: True} - getter_name: commutation_sensor_get_type - setter_name: commutation_sensor_set_type - summary: The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. + getter_name: commutation_sensor_get_connection + setter_name: commutation_sensor_set_connection + summary: The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. - name: bandwidth dtype: float unit: Hz meta: {export: True} getter_name: commutation_sensor_get_bandwidth setter_name: commutation_sensor_set_bandwidth - summary: The sensor observer bandwidth. + summary: The commutation sensor observer bandwidth. - name: position_estimate dtype: float unit: ticks meta: {dynamic: True} - getter_name: observer_get_pos_estimate_user_frame - summary: The filtered sensor position estimate. + getter_name: commutation_observer_get_pos_estimate_user_frame + summary: The filtered commutation sensor position estimate. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} - getter_name: observer_get_vel_estimate_user_frame - summary: The filtered sensor velocity estimate. + getter_name: commutation_observer_get_vel_estimate_user_frame + summary: The filtered commutation sensor velocity estimate. - name: traj_planner remote_attributes: - name: max_accel From 3ff0abd2d540f9671005670ef7536eeb47a87e1d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 9 Dec 2023 21:56:54 +0200 Subject: [PATCH 025/219] update protocol --- docs/protocol/reference.rst | 20 ++++----- firmware/src/can/can_endpoints.c | 42 +++++++++---------- firmware/src/can/can_endpoints.h | 40 +++++++++--------- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 8 ++-- 4 files changed, 55 insertions(+), 55 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 10c695c1..cd71da92 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -736,14 +736,14 @@ Flags: - READING_UNSTABLE -sensors.select.position.type +sensors.select.position.connection ------------------------------------------------------------------- ID: 60 Type: uint8 -The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. Options: - ONBOARD @@ -758,7 +758,7 @@ ID: 61 Type: float Units: hertz -The sensor observer bandwidth. +The position sensor observer bandwidth. @@ -770,7 +770,7 @@ ID: 62 Type: float Units: tick -The filtered sensor position estimate. +The filtered position sensor position estimate. @@ -782,19 +782,19 @@ ID: 63 Type: float Units: tick / second -The filtered sensor velocity estimate. +The filtered position sensor velocity estimate. -sensors.select.commutation.type +sensors.select.commutation.connection ------------------------------------------------------------------- ID: 64 Type: uint8 -The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. Options: - ONBOARD @@ -809,7 +809,7 @@ ID: 65 Type: float Units: hertz -The sensor observer bandwidth. +The commutation sensor observer bandwidth. @@ -821,7 +821,7 @@ ID: 66 Type: float Units: tick -The filtered sensor position estimate. +The filtered commutation sensor position estimate. @@ -833,7 +833,7 @@ ID: 67 Type: float Units: tick / second -The filtered sensor velocity estimate. +The filtered commutation sensor velocity estimate. diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 4164d6f0..a90f201d 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,8 +18,8 @@ #include -uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_type, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_type, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 3498994080; +uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint32_t avlos_proto_hash = 72748215; uint32_t _avlos_get_proto_hash(void) { @@ -766,7 +766,7 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe { if (AVLOS_CMD_READ == cmd) { bool v; - v = sensor_onboard_get_calibrated(); + v = sensor_onboard_get_is_calibrated(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -808,7 +808,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * { if (AVLOS_CMD_READ == cmd) { bool v; - v = sensor_external_spi_get_calibrated(); + v = sensor_external_spi_get_is_calibrated(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -820,7 +820,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = sensor_external_spi_get_calibrated(); + v = sensor_external_spi_get_errors(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -832,7 +832,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l { if (AVLOS_CMD_READ == cmd) { bool v; - v = sensor_hall_get_calibrated(); + v = sensor_hall_get_is_calibrated(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -844,7 +844,7 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = sensor_hall_get_calibrated(); + v = sensor_hall_get_errors(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -852,11 +852,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = position_sensor_get_type(); + v = position_sensor_get_connection(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -864,7 +864,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { uint8_t v; memcpy(&v, buffer, sizeof(v)); - position_sensor_set_type(v); + position_sensor_set_connection(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -874,7 +874,7 @@ uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buff { if (AVLOS_CMD_READ == cmd) { float v; - v = position_sensor_get_bandwidth(); + v = position_observer_get_bandwidth(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -882,7 +882,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - position_sensor_set_bandwidth(v); + position_observer_set_bandwidth(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -892,7 +892,7 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ { if (AVLOS_CMD_READ == cmd) { float v; - v = observer_get_pos_estimate_user_frame(); + v = position_observer_get_pos_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -904,7 +904,7 @@ uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_ { if (AVLOS_CMD_READ == cmd) { float v; - v = observer_get_vel_estimate_user_frame(); + v = position_observer_get_vel_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -912,11 +912,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = commutation_sensor_get_type(); + v = commutation_sensor_get_connection(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -924,7 +924,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { uint8_t v; memcpy(&v, buffer, sizeof(v)); - commutation_sensor_set_type(v); + commutation_sensor_set_connection(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -934,7 +934,7 @@ uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * b { if (AVLOS_CMD_READ == cmd) { float v; - v = commutation_sensor_get_bandwidth(); + v = commutation_observer_get_bandwidth(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -942,7 +942,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - commutation_sensor_set_bandwidth(v); + commutation_observer_set_bandwidth(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -952,7 +952,7 @@ uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uin { if (AVLOS_CMD_READ == cmd) { float v; - v = observer_get_pos_estimate_user_frame(); + v = commutation_observer_get_pos_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -964,7 +964,7 @@ uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uin { if (AVLOS_CMD_READ == cmd) { float v; - v = observer_get_vel_estimate_user_frame(); + v = commutation_observer_get_vel_estimate_user_frame(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 478c5943..a77673c8 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -112,17 +112,17 @@ typedef enum typedef enum { - SENSORS_SELECT_POSITION_TYPE_ONBOARD = 0, - SENSORS_SELECT_POSITION_TYPE_EXTERNAL_SPI = 1, - SENSORS_SELECT_POSITION_TYPE_HALL = 2 -} sensors_select_position_type_options; + SENSORS_SELECT_POSITION_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_POSITION_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_POSITION_CONNECTION_HALL = 2 +} sensors_select_position_connection_options; typedef enum { - SENSORS_SELECT_COMMUTATION_TYPE_ONBOARD = 0, - SENSORS_SELECT_COMMUTATION_TYPE_EXTERNAL_SPI = 1, - SENSORS_SELECT_COMMUTATION_TYPE_HALL = 2 -} sensors_select_commutation_type_options; + SENSORS_SELECT_COMMUTATION_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_COMMUTATION_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_COMMUTATION_CONNECTION_HALL = 2 +} sensors_select_commutation_connection_options; extern uint32_t avlos_proto_hash; extern uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); @@ -849,21 +849,21 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_type +* avlos_sensors_select_position_connection * -* The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +* The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * * Endpoint ID: 60 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_sensors_select_position_bandwidth * -* The sensor observer bandwidth. +* The position sensor observer bandwidth. * * Endpoint ID: 61 * @@ -875,7 +875,7 @@ uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buff /* * avlos_sensors_select_position_position_estimate * -* The filtered sensor position estimate. +* The filtered position sensor position estimate. * * Endpoint ID: 62 * @@ -887,7 +887,7 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ /* * avlos_sensors_select_position_velocity_estimate * -* The filtered sensor velocity estimate. +* The filtered position sensor velocity estimate. * * Endpoint ID: 63 * @@ -897,21 +897,21 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_type +* avlos_sensors_select_commutation_connection * -* The angle sensor type. Either ONBOARD, EXTERNAL_SPI or HALL. +* The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * * Endpoint ID: 64 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_sensors_select_commutation_bandwidth * -* The sensor observer bandwidth. +* The commutation sensor observer bandwidth. * * Endpoint ID: 65 * @@ -923,7 +923,7 @@ uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * b /* * avlos_sensors_select_commutation_position_estimate * -* The filtered sensor position estimate. +* The filtered commutation sensor position estimate. * * Endpoint ID: 66 * @@ -935,7 +935,7 @@ uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uin /* * avlos_sensors_select_commutation_velocity_estimate * -* The filtered sensor velocity estimate. +* The filtered commutation sensor velocity estimate. * * Endpoint ID: 67 * diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 3bce2918..61398a2d 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -391,8 +391,8 @@ remote_attributes: dtype: float unit: Hz meta: {export: True} - getter_name: position_sensor_get_bandwidth - setter_name: position_sensor_set_bandwidth + getter_name: position_observer_get_bandwidth + setter_name: position_observer_set_bandwidth summary: The position sensor observer bandwidth. - name: position_estimate dtype: float @@ -418,8 +418,8 @@ remote_attributes: dtype: float unit: Hz meta: {export: True} - getter_name: commutation_sensor_get_bandwidth - setter_name: commutation_sensor_set_bandwidth + getter_name: commutation_observer_get_bandwidth + setter_name: commutation_observer_set_bandwidth summary: The commutation sensor observer bandwidth. - name: position_estimate dtype: float From 957d072a1308258448d9ca61fa73d0e44676125f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 9 Dec 2023 21:57:14 +0200 Subject: [PATCH 026/219] implement some missing functions --- firmware/src/controller/controller.c | 5 ++- firmware/src/observer/observer.c | 11 +++--- firmware/src/observer/observer.h | 50 +++++++++++++++++++++++----- firmware/src/sensor/sensor.c | 4 +-- firmware/src/sensor/sensor.h | 17 +++++----- 5 files changed, 59 insertions(+), 28 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index c08d03a5..ce579149 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include "src/watchdog/watchdog.h" @@ -122,7 +121,7 @@ void Controller_ControlLoop(void) { state.is_calibrating = true; reset_calibration(); - (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()) + (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); if (SENSOR_MA7XX == encoder_get_type()) { (void)(calibrate_direction_and_pole_pair_count() && calibrate_offset_and_rectification()); @@ -132,7 +131,7 @@ void Controller_ControlLoop(void) (void)calibrate_hall_sequence(); } state.is_calibrating = false; - controller_set_state(STATE_IDLE); + controller_set_state(STATE_IDLE); } else if (state.state == STATE_CL_CONTROL) { diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 470bd712..22ba8c64 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -37,7 +37,7 @@ bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c) { o->sensor_ptr = &(sensors[sensor_id]); o->config = *c; - observer_set_bw(o, config->track_bw); + observer_set_bandwidth(o, config->track_bw); // We keep local copies of a few key variables from // the encoder, because it is faster than calling // the encoder function pointer @@ -53,12 +53,12 @@ void observer_reset(Observer *o) o->vel_estimate = 0; } -float observer_get_bw(Observer *o) +float observer_get_bandwidth(Observer *o) { return o->config.track_bw; } -void observer_set_bw(Observer *o, float bw) +void observer_set_bandwidth(Observer *o, float bw) { if (bw > 0.0f) { @@ -70,9 +70,8 @@ void observer_set_bw(Observer *o, float bw) void observers_init_with_defaults(void) { - observer_init(observers[0], sensor_commutation); - observer_commutation = &(observers[0]); - observer_position = &(observers[0]); + observer_init(observer_commutation, sensor_commutation); + observer_init(observer_position, sensor_position); } uint32_t observers_config_length(void) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index b252b1c4..02353e67 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -55,14 +55,14 @@ bool observer_init_with_defaults(Observer *o, Sensor *s); bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c); void observer_reset(Observer *o); -float observer_get_bw(Observer *o); -void observer_set_bw(Observer *o, float bw); +float observer_get_bandwidth(Observer *o); +void observer_set_bandwidth(Observer *o, float bw); void observers_init_with_defaults(void); void observers_get_config(ObserversConfig *config_); void observers_restore_config(ObserversConfig *config_); -inline void observer_update(Observer *o) +static inline void observer_update(Observer *o) { if (o->current == false) { @@ -95,25 +95,25 @@ inline void observer_update(Observer *o) } } -inline void observer_invalidate(Observer *o) +static inline void observer_invalidate(Observer *o) { o->current = false; } -inline float observer_get_pos_estimate(Observer *o) +static inline float observer_get_pos_estimate(Observer *o) { const float primary = o->sensor_ticks * o->pos_sector; return primary + o->pos_estimate_wrapped; } -inline float observer_get_diff(Observer *o, float target) +static inline float observer_get_diff(Observer *o, float target) { const float primary = o->sensor_ticks * o->pos_sector; const float diff_sector = target - primary; return diff_sector - o->pos_estimate_wrapped; } -inline float observer_get_vel_estimate(Observer *o) +static inline float observer_get_vel_estimate(Observer *o) { return o->vel_estimate; } @@ -136,12 +136,44 @@ static inline float observer_get_evel(Observer *o) return o->vel_estimate * twopi_by_hall_sectors; } -inline float observer_get_pos_estimate_user_frame(Observer *o) +static inline float observer_get_pos_estimate_user_frame(Observer *o) { return (observer_get_pos_estimate(o) - motor_get_user_offset()) * motor_get_user_direction(); } -inline float observer_get_vel_estimate_user_frame(Observer *o) +static inline float observer_get_vel_estimate_user_frame(Observer *o) { return o->vel_estimate * motor_get_user_direction(); } + +// Interface functions + +static inline float commutation_observer_get_bandwidth(void) +{ + return observer_get_bandwidth(&observer_commutation); +} + +static inline void commutation_observer_set_bandwidth(float bw) +{ + observer_set_bandwidth(&observer_commutation, bw); +} + +static inline float position_observer_get_bandwidth(void) +{ + return observer_get_bandwidth(&observer_position); +} + +static inline void position_observer_set_bandwidth(float bw) +{ + observer_set_bandwidth(&observer_position, bw); +} + +static inline float position_observer_get_pos_estimate_user_frame(void) +{ + return observer_get_pos_estimate_user_frame(&observer_position); +} + +static inline float position_observer_get_vel_estimate_user_frame(void) +{ + return observer_get_vel_estimate_user_frame(&observer_position); +} \ No newline at end of file diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 7a8d44a5..50a33e74 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -72,7 +72,7 @@ void sensors_restore_config(SensorsConfig *config_) } -// These are the actual interface functions +// Interface functions static inline int sensor_get_connection(Sensor *sensor) { @@ -115,7 +115,7 @@ sensor_connection_t position_sensor_get_connection(void) return ssensor_get_connection(sensor_position); } -void position_sensor_set_type(sensor_connection_t new_connection) +void position_sensor_set_connection(sensor_connection_t new_connection) { sensor_set_connection(&(sensor_position), &(sensor_commutation), new_connection); } diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 9c24fe54..6d64bb87 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -48,7 +48,6 @@ typedef enum { SENSOR_TYPE_MAX } sensor_type_t; -// The typedef enum { SENSOR_CONNECTION_ONBOARD_SPI = 0, SENSOR_CONNECTION_EXTERNAL_SPI = 1, @@ -174,10 +173,12 @@ static inline uint8_t sensor_get_errors(Sensor *s) return s->get_errors_func(s); } +// Interface functions + sensor_connection_t commutation_sensor_get_connection(void); void commutation_sensor_set_connection(sensor_connection_t new_connection); sensor_connection_t position_sensor_get_connection(void); -void position_sensor_set_type(sensor_connection_t new_connection); +void position_sensor_set_connection(sensor_connection_t new_connection); static inline sensor_type_t sensor_external_spi_get_type(void) { @@ -188,32 +189,32 @@ void sensor_external_spi_set_type(sensor_type_t type); static inline bool sensor_onboard_get_is_calibrated(void) { - return sensors[SENSOR_CONNECTION_ONBOARD_SPI].is_calibrated_func(); + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].is_calibrated_func(&(sensors[SENSOR_CONNECTION_ONBOARD_SPI])); } static inline bool sensor_external_spi_get_is_calibrated(void) { - return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].is_calibrated_func(); + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].is_calibrated_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); } static inline bool sensor_hall_get_is_calibrated(void) { - return sensors[SENSOR_CONNECTION_HALL].is_calibrated_func(); + return sensors[SENSOR_CONNECTION_HALL].is_calibrated_func(&(sensors[SENSOR_CONNECTION_HALL])); } static inline uint8_t sensor_onboard_get_errors(void) { - return sensors[SENSOR_CONNECTION_ONBOARD_SPI].get_errors_func(); + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].get_errors_func(&(sensors[SENSOR_CONNECTION_ONBOARD_SPI])); } static inline uint8_t sensor_external_spi_get_errors(void) { - return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].get_errors_func(); + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].get_errors_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); } static inline uint8_t sensor_hall_get_errors(void) { - return sensors[SENSOR_CONNECTION_HALL].get_errors_func(); + return sensors[SENSOR_CONNECTION_HALL].get_errors_func(&(sensors[SENSOR_CONNECTION_HALL])); } From 4e5a4c03551418b1b7c3764e7444c086c3e1a5ef Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 10 Dec 2023 20:43:27 +0200 Subject: [PATCH 027/219] add compatibility flags --- .vscode/c_cpp_properties.json | 3 ++- .vscode/settings.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 47a4c674..ebd476f2 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -8,7 +8,8 @@ "defines": [ "_DEBUG", "UNICODE", - "_UNICODE" + "_UNICODE", + "__CC_ARM" ], "cStandard": "c11", "cppStandard": "c++17", diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f62014e..aa767f2d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,8 @@ "variant": "c", "chrono": "c", "compare": "c", - "cstddef": "c" + "cstddef": "c", + "__locale": "c" }, "python.testing.unittestArgs": [ "-v", From dd803b9f80d7d50ff7237123541a21271c0f25ca Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 10 Dec 2023 20:44:09 +0200 Subject: [PATCH 028/219] align function name with standard --- firmware/src/adc/adc.c | 2 +- firmware/src/adc/adc.h | 2 +- firmware/src/controller/controller.c | 2 +- firmware/src/motor/motor.c | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/firmware/src/adc/adc.c b/firmware/src/adc/adc.c index fae97fa9..64bb5c06 100644 --- a/firmware/src/adc/adc.c +++ b/firmware/src/adc/adc.c @@ -246,7 +246,7 @@ TM_RAMFUNC float ADC_get_mcu_temp(void) return adc_state.temp; } -TM_RAMFUNC void ADC_GetPhaseCurrents(FloatTriplet *phc) +TM_RAMFUNC void ADC_get_phase_currents(FloatTriplet *phc) { phc->A = adc_state.I_phase_meas.A; if (motor_phases_swapped()) diff --git a/firmware/src/adc/adc.h b/firmware/src/adc/adc.h index 52f8a760..38008d5d 100644 --- a/firmware/src/adc/adc.h +++ b/firmware/src/adc/adc.h @@ -108,7 +108,7 @@ void ADC_init(void); void ADC_reset(void); bool ADC_calibrate_offset(void); float ADC_get_mcu_temp(void); -void ADC_GetPhaseCurrents(FloatTriplet *phc); +void ADC_get_phase_currents(FloatTriplet *phc); void ADC_update(void); ADCConfig *ADC_get_config(void); diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index ce579149..b741135a 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -261,7 +261,7 @@ TM_RAMFUNC void CLControlStep(void) } else { - ADC_GetPhaseCurrents(&(state.I_phase_meas)); + ADC_get_phase_currents(&(state.I_phase_meas)); // Clarke transform const float Ialpha = state.I_phase_meas.A; diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index bba7924e..c4814de3 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -15,6 +15,7 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . +#include #include #include #include @@ -95,7 +96,7 @@ bool motor_calibrate_resistance(void) FloatTriplet modulation_values = {0.0f}; for (uint32_t i = 0; i < CAL_R_LEN; i++) { - ADC_GetPhaseCurrents(&I_phase_meas); + ADC_get_phase_currents(&I_phase_meas); V_setpoint += CAL_V_GAIN * (I_cal - I_phase_meas.A); const float pwm_setpoint = V_setpoint / system_get_Vbus(); SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); @@ -130,7 +131,7 @@ bool motor_calibrate_inductance(void) for (uint32_t i = 0; i < CAL_L_LEN; i++) { - ADC_GetPhaseCurrents(&I_phase_meas); + ADC_get_phase_currents(&I_phase_meas); if ((i & 0x2u) == 0x2u) { I_high += I_phase_meas.A; From 034fd6245a380be946ddc62b38bfc5afa45fcbba Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 10 Dec 2023 20:46:46 +0200 Subject: [PATCH 029/219] align implementations with multi-sensor support --- firmware/src/controller/controller.c | 33 ++--- firmware/src/controller/homing_planner.c | 5 +- firmware/src/main.c | 2 +- firmware/src/nvm/nvm.c | 4 +- firmware/src/nvm/nvm.h | 2 +- firmware/src/observer/observer.c | 45 ++---- firmware/src/observer/observer.h | 68 ++++----- firmware/src/scheduler/scheduler.c | 18 +-- firmware/src/sensor/hall.c | 34 +++-- firmware/src/sensor/hall.h | 3 + firmware/src/sensor/ma7xx.c | 176 ++++++++++++----------- firmware/src/sensor/ma7xx.h | 9 +- firmware/src/sensor/sensor.c | 36 ++--- firmware/src/sensor/sensor.h | 17 ++- firmware/src/system/system.c | 11 +- firmware/src/system/system.h | 7 +- 16 files changed, 247 insertions(+), 223 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index b741135a..1e2a615e 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -120,16 +120,17 @@ void Controller_ControlLoop(void) if (state.state == STATE_CALIBRATE) { state.is_calibrating = true; - reset_calibration(); - (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); - if (SENSOR_MA7XX == encoder_get_type()) - { - (void)(calibrate_direction_and_pole_pair_count() && calibrate_offset_and_rectification()); - } - else if (SENSOR_HALL == encoder_get_type()) - { - (void)calibrate_hall_sequence(); - } + system_reset_calibration(); + #warning "Update implementation" + // (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); + // if (SENSOR_MA7XX == encoder_get_type()) + // { + // (void)(calibrate_direction_and_pole_pair_count() && calibrate_offset_and_rectification()); + // } + // else if (SENSOR_HALL == encoder_get_type()) + // { + // (void)calibrate_hall_sequence(); + // } state.is_calibrating = false; controller_set_state(STATE_IDLE); } @@ -199,13 +200,13 @@ TM_RAMFUNC void CLControlStep(void) if (state.mode >= CTRL_POSITION) { - const float delta_pos = observer_get_diff(state.pos_setpoint); + const float delta_pos = observer_get_diff(&position_observer, state.pos_setpoint); const float delta_pos_integrator = sgnf(delta_pos) * our_fmaxf(0, fabsf(delta_pos) - config.vel_integrator_deadband); vel_setpoint += delta_pos * config.pos_gain; vel_setpoint_integrator += delta_pos_integrator * config.pos_gain; } - const float vel_estimate = observer_get_vel_estimate(); + const float vel_estimate = observer_get_vel_estimate(&position_observer); float Iq_setpoint = state.Iq_setpoint; if (state.mode >= CTRL_VELOCITY) @@ -247,7 +248,7 @@ TM_RAMFUNC void CLControlStep(void) state.Id_setpoint = 0.0f; } - const float e_phase = observer_get_epos(); + const float e_phase = observer_get_epos(&commutation_observer); const float c_I = fast_cos(e_phase); const float s_I = fast_sin(e_phase); @@ -255,7 +256,7 @@ TM_RAMFUNC void CLControlStep(void) float Vq; if (motor_get_is_gimbal() == true) { - const float e_phase_vel = observer_get_evel(); + const float e_phase_vel = observer_get_evel(&commutation_observer); Vd = -e_phase_vel * motor_get_phase_inductance() * Iq_setpoint; Vq = motor_get_phase_resistance() * Iq_setpoint; } @@ -323,7 +324,7 @@ TM_RAMFUNC void controller_set_state(ControlState new_state) { if ((new_state == STATE_CL_CONTROL) && (state.state == STATE_IDLE) && (!errors_exist()) && motor_get_calibrated()) { - state.pos_setpoint = observer_get_pos_estimate(); + state.pos_setpoint = observer_get_pos_estimate(&position_observer); gate_driver_enable(); state.state = STATE_CL_CONTROL; } @@ -444,7 +445,7 @@ TM_RAMFUNC float controller_set_pos_vel_setpoints(float pos_setpoint, float vel_ { controller_set_pos_setpoint_user_frame(pos_setpoint); controller_set_vel_setpoint_user_frame(vel_setpoint); - return observer_get_pos_estimate_user_frame(); + return observer_get_pos_estimate_user_frame(&position_observer); } void controller_get_modulation_values(FloatTriplet *dc) diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index fc015db5..0feb9667 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -50,14 +50,15 @@ TM_RAMFUNC bool homing_planner_evaluate() controller_set_pos_setpoint_user_frame(next_pos_setpoint); controller_set_vel_setpoint_user_frame(config.homing_velocity); - if (fabsf(observer_get_vel_estimate_user_frame()) < config.max_stay_vel && fabsf(current_pos_setpoint - observer_get_pos_estimate_user_frame()) > config.max_stay_dpos) + const float observer_pos = observer_get_pos_estimate_user_frame(&position_observer); + if (fabsf(observer_get_vel_estimate_user_frame(&position_observer)) < config.max_stay_vel && fabsf(current_pos_setpoint - observer_pos) > config.max_stay_dpos) { state.stay_t_current += PWM_PERIOD_S; if (state.stay_t_current >= config.max_stay_t) { // First time the endstop is considered found, reset origins and setpoints motor_set_user_offset(0); - motor_set_user_offset(observer_get_pos_estimate_user_frame()); + motor_set_user_offset(observer_pos); controller_set_pos_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(0); } diff --git a/firmware/src/main.c b/firmware/src/main.c index b28c10db..7239d197 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -37,7 +37,7 @@ int main(void) if (!nvm_load_config()) { sensors_init_with_defaults(); - observer_init_with_defaults(); + observers_init_with_defaults(); } UART_Init(); ADC_init(); diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index da9ac0df..ca634838 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -31,7 +31,7 @@ bool nvm_save_config(void) s.node_id_2 = CAN_get_ID(); s.adc_config = *ADC_get_config(); s.motor_config = *motor_get_config(); - encoders_get_config(&(s.encoders_config)); + sensors_get_config(&(s.sensors_config)); observers_get_config(&(s.observers_config)); s.controller_config = *controller_get_config(); s.can_config = *CAN_get_config(); @@ -61,7 +61,7 @@ bool nvm_load_config(void) { ADC_restore_config(&s.adc_config); motor_restore_config(&s.motor_config); - encoders_restore_config(&s.encoders_config); + sensors_restore_config(&s.sensors_config); observers_restore_config(&s.observers_config); controller_restore_config(&s.controller_config); CAN_restore_config(&s.can_config); diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index a88e6263..8cf684c4 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -33,7 +33,7 @@ struct NVMStruct { uint8_t node_id_2; ADCConfig adc_config; MotorConfig motor_config; - SensorsConfig encoders_config; + SensorsConfig sensors_config; ObserversConfig observers_config; ControllerConfig controller_config; CANConfig can_config; diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 22ba8c64..6c5287e7 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -35,22 +35,10 @@ bool observer_init_with_defaults(Observer *o, Sensor *s) bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c) { - o->sensor_ptr = &(sensors[sensor_id]); + o->sensor_ptr = s; o->config = *c; - observer_set_bandwidth(o, config->track_bw); - // We keep local copies of a few key variables from - // the encoder, because it is faster than calling - // the encoder function pointer - o->encoder_type = sensor_get_type(s); - o->encoder_ticks = sensor_get_ticks(s); - o->encoder_half_ticks = state.encoder_ticks/2; -} - -void observer_reset(Observer *o) -{ - o->pos_sector = 0; - o->pos_estimate_wrapped = 0; - o->vel_estimate = 0; + observer_set_bandwidth(o, c->track_bw); + return true; } float observer_get_bandwidth(Observer *o) @@ -70,29 +58,26 @@ void observer_set_bandwidth(Observer *o, float bw) void observers_init_with_defaults(void) { - observer_init(observer_commutation, sensor_commutation); - observer_init(observer_position, sensor_position); + observer_init_with_defaults(&commutation_observer, commutation_sensor_p); + observer_init_with_defaults(&position_observer, position_sensor_p); } -uint32_t observers_config_length(void) +void observers_get_config(ObserversConfig *config_) { - uint32_t config_length = 0; - for (uint8_t i=0; i #include +typedef struct Observer Observer; + typedef struct { float track_bw; @@ -30,30 +32,26 @@ typedef struct uint8_t sensor_id; } ObserverConfig; -typedef struct { +struct Observer { ObserverConfig config; Sensor *sensor_ptr; int32_t pos_sector; float pos_estimate_wrapped; float vel_estimate; - uint16_t sensor_ticks; - uint16_t sensor_half_ticks; - sensor_type_t sensor_type : 4; bool initialized : 1; bool current : 1; -} Observer; +}; typedef struct { ObserverConfig config_commutation; ObserverConfig config_position; } ObserversConfig; -Observer observer_commutation; -Observer observer_position; +Observer commutation_observer; +Observer position_observer; bool observer_init_with_defaults(Observer *o, Sensor *s); bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c); -void observer_reset(Observer *o); float observer_get_bandwidth(Observer *o); void observer_set_bandwidth(Observer *o, float bw); @@ -66,28 +64,30 @@ static inline void observer_update(Observer *o) { if (o->current == false) { + const float sensor_ticks = sensor_get_ticks(o->sensor_ptr); + const float sensor_half_ticks = sensor_ticks * 0.5f; const int16_t angle_meas = o->sensor_ptr->get_angle_func(o->sensor_ptr); const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; - if (delta_pos_meas < -(o->sensor_half_ticks)) + if (delta_pos_meas < -sensor_half_ticks) { - delta_pos_meas += o->sensor_ticks; + delta_pos_meas += sensor_ticks; } - else if (delta_pos_meas >= o->sensor_half_ticks) + else if (delta_pos_meas >= sensor_half_ticks) { - delta_pos_meas -= o->sensor_ticks; + delta_pos_meas -= sensor_ticks; } const float delta_pos_error = delta_pos_meas - delta_pos_est; const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); o->pos_estimate_wrapped += incr_pos; if (o->pos_estimate_wrapped < 0) { - o->pos_estimate_wrapped += o->sensor_ticks; + o->pos_estimate_wrapped += sensor_ticks; o->pos_sector -= 1; } - else if (o->pos_estimate_wrapped >= o->sensor_ticks) + else if (o->pos_estimate_wrapped >= sensor_ticks) { - o->pos_estimate_wrapped -= o->sensor_ticks; + o->pos_estimate_wrapped -= sensor_ticks; o->pos_sector += 1; } o->vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; @@ -102,13 +102,13 @@ static inline void observer_invalidate(Observer *o) static inline float observer_get_pos_estimate(Observer *o) { - const float primary = o->sensor_ticks * o->pos_sector; + const float primary = sensor_get_ticks(o->sensor_ptr) * o->pos_sector; return primary + o->pos_estimate_wrapped; } static inline float observer_get_diff(Observer *o, float target) { - const float primary = o->sensor_ticks * o->pos_sector; + const float primary = sensor_get_ticks(o->sensor_ptr) * o->pos_sector; const float diff_sector = target - primary; return diff_sector - o->pos_estimate_wrapped; } @@ -120,20 +120,20 @@ static inline float observer_get_vel_estimate(Observer *o) static inline float observer_get_epos(Observer *o) { - if (SENSOR_TYPE_MA7XX == o->sensor_type) + if (SENSOR_TYPE_HALL == sensor_get_type(o->sensor_ptr)) { - return o->pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); + return o->pos_estimate_wrapped * twopi_by_hall_sectors; } - return o->pos_estimate_wrapped * twopi_by_hall_sectors; + return o->pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); } static inline float observer_get_evel(Observer *o) { - if (SENSOR_TYPE_MA7XX == o->sensor_type) + if (SENSOR_TYPE_HALL == sensor_get_type(o->sensor_ptr)) { - return o->vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); + return o->vel_estimate * twopi_by_hall_sectors; } - return o->vel_estimate * twopi_by_hall_sectors; + return o->vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); } static inline float observer_get_pos_estimate_user_frame(Observer *o) @@ -150,30 +150,34 @@ static inline float observer_get_vel_estimate_user_frame(Observer *o) static inline float commutation_observer_get_bandwidth(void) { - return observer_get_bandwidth(&observer_commutation); + return observer_get_bandwidth(&commutation_observer); } -static inline void commutation_observer_set_bandwidth(float bw) +void commutation_observer_set_bandwidth(float bw); + +static inline float position_observer_get_bandwidth(void) { - observer_set_bandwidth(&observer_commutation, bw); + return observer_get_bandwidth(&position_observer); } -static inline float position_observer_get_bandwidth(void) +void position_observer_set_bandwidth(float bw); + +static inline float commutation_observer_get_pos_estimate_user_frame(void) { - return observer_get_bandwidth(&observer_position); + return observer_get_pos_estimate_user_frame(&commutation_observer); } -static inline void position_observer_set_bandwidth(float bw) +static inline float commutation_observer_get_vel_estimate_user_frame(void) { - observer_set_bandwidth(&observer_position, bw); + return observer_get_vel_estimate_user_frame(&commutation_observer); } static inline float position_observer_get_pos_estimate_user_frame(void) { - return observer_get_pos_estimate_user_frame(&observer_position); + return observer_get_pos_estimate_user_frame(&position_observer); } static inline float position_observer_get_vel_estimate_user_frame(void) { - return observer_get_vel_estimate_user_frame(&observer_position); + return observer_get_vel_estimate_user_frame(&position_observer); } \ No newline at end of file diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index ae4e6d02..093de865 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -73,16 +73,18 @@ void wait_for_control_loop_interrupt(void) state.adc_interrupt = false; // We have to service the control loop by updating // current measurements and encoder estimates. - sensor_invalidate(sensor_commutation); - sensor_invalidate(sensor_position); + sensor_invalidate(commutation_sensor_p); + sensor_invalidate(position_sensor_p); + observer_invalidate(&commutation_observer); + observer_invalidate(&position_observer); // If both pointers point to the same sensor, it will only br prepared and updated once - sensor_prepare(sensor_commutation); - sensor_prepare(sensor_position); + sensor_prepare(commutation_sensor_p); + sensor_prepare(position_sensor_p); ADC_update(); - sensor_update(sensor_commutation, true); - sensor_update(sensor_position, true); - observer_update(observer_commutation); - observer_update(observer_position); + sensor_update(commutation_sensor_p, true); + sensor_update(position_sensor_p, true); + observer_update(&commutation_observer); + observer_update(&position_observer); // At this point control is returned to main loop. } diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index af7e5a18..5fc186ab 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -17,6 +17,8 @@ #include #include +#include +#include #include #define AIO6789_IO_MODE 0x00 @@ -24,7 +26,7 @@ bool hall_init_with_defaults(Sensor *s) { - HallConfig c = {.id = get_next_sensor_id()}; + SensorSpecificConfig c = {0}; return hall_init_with_config(s, &c); } @@ -32,11 +34,11 @@ bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) { s->get_angle_func = hall_get_angle; s->update_func = hall_update; - s->reset_func = hall_clear_sector_map; + s->reset_func = hall_reset; s->get_errors_func = hall_get_errors; s->is_calibrated_func = hall_sector_map_is_calibrated; s->calibrate_func = hall_calibrate_sequence; - s->config.type = SENSOR_HALL; + s->config.type = SENSOR_TYPE_HALL; s->config.ss_config = *c; s->state.hall_state.hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); s->state.hall_state.hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); @@ -54,6 +56,11 @@ void hall_deinit(Sensor *s) pac5xxx_tile_register_write(ADDR_CFGAIO9, s->state.hall_state.hw_defaults[2]); } +void hall_reset(Sensor *s) +{ + +} + ALWAYS_INLINE uint8_t hall_get_errors(Sensor *s) { return s->state.hall_state.errors; @@ -68,7 +75,7 @@ ALWAYS_INLINE void hall_update(Sensor *s, bool check_error) { const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; s->state.hall_state.sector = sector; - s->state.hall_state.angle = config.sector_map[state.sector]; + s->state.hall_state.angle = s->config.ss_config.hall_config.sector_map[s->state.hall_state.sector]; } ALWAYS_INLINE uint8_t hall_get_sector(Sensor *s) @@ -78,14 +85,15 @@ ALWAYS_INLINE uint8_t hall_get_sector(Sensor *s) bool hall_sector_map_is_calibrated(Sensor *s) { - return s->config.hall_config.sector_map_calibrated; + return s->config.ss_config.hall_config.sector_map_calibrated; } bool hall_calibrate_sequence(Sensor *s) { - (void)memset(s->config.hall_config.sector_map, 0, sizeof(config.sector_map)); - s->config.hall_config.sector_map_calibrated = false; - uint8_t *sector_map = s->config.hall_config.sector_map; + HallSensorConfig *c = &(s->config.ss_config.hall_config); + (void)memset(c->sector_map, 0, sizeof(c->sector_map)); + c->sector_map_calibrated = false; + uint8_t *sector_map = c->sector_map; const float I_setpoint = motor_get_I_cal(); bool success = true; @@ -94,7 +102,7 @@ bool hall_calibrate_sequence(Sensor *s) { set_epos_and_wait(0, I_setpoint); } - const uint8_t init_sector = hall_get_sector(); + const uint8_t init_sector = hall_get_sector(s); uint8_t current_sector = init_sector; uint8_t last_sector = init_sector; uint8_t sector_pos = 0; @@ -108,7 +116,7 @@ bool hall_calibrate_sequence(Sensor *s) { set_epos_and_wait(angle, I_setpoint); angle += increment; - current_sector = hall_get_sector(); + current_sector = hall_get_sector(s); } // Save the rest of the sectors @@ -127,7 +135,7 @@ bool hall_calibrate_sequence(Sensor *s) } set_epos_and_wait(angle, I_setpoint); angle += increment; - current_sector = hall_get_sector(); + current_sector = hall_get_sector(s); } gate_driver_set_duty_cycle(&three_phase_zero); @@ -140,11 +148,11 @@ bool hall_calibrate_sequence(Sensor *s) if (success) { - s->config.hall_config.sector_map_calibrated = true; + c->sector_map_calibrated = true; } else { - s->state.hall_state.errors |= ENCODER_ERRORS_CALIBRATION_FAILED; + s->state.hall_state.errors |= SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED; } return success; } \ No newline at end of file diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 42d91eef..cf81cf46 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -17,6 +17,8 @@ #pragma once +#include + typedef struct Sensor Sensor; typedef union SensorSpecificConfig SensorSpecificConfig; @@ -37,6 +39,7 @@ typedef struct bool hall_init_with_defaults(Sensor *s); bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c); void hall_deinit(Sensor *s); +void hall_reset(Sensor *s); uint8_t hall_get_errors(Sensor *s); int16_t hall_get_angle(Sensor *s); void hall_update(Sensor *s, bool check_error); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 2f611ca5..5eb076c7 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -21,11 +21,13 @@ #include #include #include +#include #include bool ma7xx_init_with_defaults(Sensor *s) { - MA7xxConfig c = {.id = get_next_sensor_id(), .ssp_port = ONBOARD_SENSOR_SSP_PORT}; + SensorSpecificConfig c = {0}; + c.ma7xx_config.ssp_port = ONBOARD_SENSOR_SSP_PORT; return ma7xx_init_with_config(s, &c); } @@ -33,7 +35,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) { s->get_angle_func = ma7xx_get_angle_rectified; s->update_func = ma7xx_update; - s->reset_func = ma7xx_clear_rec_table; + s->reset_func = ma7xx_reset; s->get_errors_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; @@ -48,12 +50,12 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) void ma7xx_deinit(Sensor *s) { - ssp_deinit(c->ssp_port); + ssp_deinit(s->config.ss_config.ma7xx_config.ssp_port); } -void ma7xx_clear_rec_table(Sensor *s) +void ma7xx_reset(Sensor *s) { - MA7xxConfig *c = s->config.ss_config.ma7xx_config; + MA7xxSensorConfig *c = &(s->config.ss_config.ma7xx_config); (void)memset(c->rec_table, 0, sizeof(c->rec_table)); c->rec_calibrated = false; } @@ -68,85 +70,86 @@ int16_t *ma7xx_get_rec_table_ptr(Sensor *s) return s->config.ss_config.ma7xx_config.rec_table; } -bool ma7xx_calibrate_offset_and_rectification(Sensor *s) +bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) { - // Size below is an arbitrary large number ie > ECN_SIZE * npp - float error_ticks[ECN_SIZE * 20]; - const int16_t npp = motor_get_pole_pairs(); - const int16_t n = ECN_SIZE * npp; - const int16_t nconv = 100; - const float delta = 2 * PI * npp / (n * nconv); - const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); - float e_pos_ref = 0.f; - const float I_setpoint = motor_get_I_cal(); - int16_t *lut = s->config.ma7xx_config.rec_table; - set_epos_and_wait(e_pos_ref, I_setpoint); - wait_pwm_cycles(5000); - const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); +#warning "Update implementation" + // // Size below is an arbitrary large number ie > ECN_SIZE * npp + // float error_ticks[ECN_SIZE * 20]; + // const int16_t npp = motor_get_pole_pairs(); + // const int16_t n = ECN_SIZE * npp; + // const int16_t nconv = 100; + // const float delta = 2 * PI * npp / (n * nconv); + // const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); + // float e_pos_ref = 0.f; + // const float I_setpoint = motor_get_I_cal(); + // int16_t *lut = s->config.ss_config.ma7xx_config.rec_table; + // set_epos_and_wait(e_pos_ref, I_setpoint); + // wait_pwm_cycles(5000); + // const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref += delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(observers[s->idx]); - error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref -= delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(observers[s->idx]); - error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - gate_driver_set_duty_cycle(&three_phase_zero); - gate_driver_disable(); + // for (uint32_t i = 0; i < n; i++) + // { + // for (uint8_t j = 0; j < nconv; j++) + // { + // e_pos_ref += delta; + // set_epos_and_wait(e_pos_ref, I_setpoint); + // } + // wait_for_control_loop_interrupt(); + // const float pos_meas = observer_get_pos_estimate(observers[s->idx]); + // error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + // } + // for (uint32_t i = 0; i < n; i++) + // { + // for (uint8_t j = 0; j < nconv; j++) + // { + // e_pos_ref -= delta; + // set_epos_and_wait(e_pos_ref, I_setpoint); + // } + // wait_for_control_loop_interrupt(); + // const float pos_meas = observer_get_pos_estimate(observers[s->idx]); + // error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + // } + // gate_driver_set_duty_cycle(&three_phase_zero); + // gate_driver_disable(); - // FIR filtering and map measurements to lut - for (int16_t i=0; i n - 1) - { - read_idx -= n; - } - acc += error_ticks[read_idx]; - } - acc = acc / ((float)(ECN_SIZE * 2)); - int16_t write_idx = i + offset_idx; - if (write_idx > (ECN_SIZE - 1)) - { - write_idx -= ECN_SIZE; - } - lut[write_idx] = (int16_t)acc; - } - wait_pwm_cycles(5000); - s->config.ss_config.ma7xx_config.rec_calibrated = true; - return true; + // // FIR filtering and map measurements to lut + // for (int16_t i=0; i n - 1) + // { + // read_idx -= n; + // } + // acc += error_ticks[read_idx]; + // } + // acc = acc / ((float)(ECN_SIZE * 2)); + // int16_t write_idx = i + offset_idx; + // if (write_idx > (ECN_SIZE - 1)) + // { + // write_idx -= ECN_SIZE; + // } + // lut[write_idx] = (int16_t)acc; + // } + // wait_pwm_cycles(5000); + // s->config.ss_config.ma7xx_config.rec_calibrated = true; + // return true; } -bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s) +bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) { const float epos_target = CAL_PHASE_TURNS * TWOPI; const float I_setpoint = motor_get_I_cal(); bool success = true; set_epos_and_wait(0, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); - const float epos_start = observer_get_pos_estimate(observers[s->idx]); + const float epos_start = observer_get_pos_estimate(o); float epos_end = 0; // Move to target epos for (uint32_t i = 0; i < CAL_DIR_LEN; i++) @@ -156,7 +159,7 @@ bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s) set_epos_and_wait(epos_target, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); // Find pole pairs - if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(observers[s->idx]), epos_target)) + if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) { uint8_t *error_ptr = motor_get_error_ptr(); *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; @@ -164,7 +167,7 @@ bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s) } else { - epos_end = observer_get_pos_estimate(observers[s->idx]); + epos_end = observer_get_pos_estimate(o); } // Move back to start epos for (uint32_t i = 0; i < CAL_DIR_LEN; i++) @@ -186,7 +189,7 @@ ALWAYS_INLINE uint8_t ma7xx_get_errors(Sensor *s) ALWAYS_INLINE void ma7xx_send_angle_cmd(Sensor *s) { - ssp_write_one(s->config.ma7xx_config.ssp_struct, MA_CMD_ANGLE); + ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, MA_CMD_ANGLE); } ALWAYS_INLINE int16_t ma7xx_get_angle_raw(Sensor *s) @@ -196,34 +199,35 @@ ALWAYS_INLINE int16_t ma7xx_get_angle_raw(Sensor *s) ALWAYS_INLINE int16_t ma7xx_get_angle_rectified(Sensor *s) { + const MA7xxSensorConfig *sc = &(s->config.ss_config.ma7xx_config); const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); const int16_t angle = s->state.ma7xx_state.angle; - const int16_t off_1 = s->config.ma7xx_config.rec_table[angle>>offset_bits]; - const int16_t off_2 = s->config.ma7xx_config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int16_t off_1 = sc->rec_table[angle>>offset_bits]; + const int16_t off_2 = sc->rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); return angle + off_interp; } ALWAYS_INLINE void ma7xx_update(Sensor *s, bool check_error) { - const int16_t angle = ssp_read_one(s->config.ma7xx_config.ssp_struct) >> 3; + const int16_t angle = ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 3; if (check_error) { - const int16_t delta = state.angle - angle; + const int16_t delta = s->state.ma7xx_state.angle - angle; if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) { - state.errors |= ENCODER_ERRORS_READING_UNSTABLE; + s->state.ma7xx_state.errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; } } - state.angle = angle; + s->state.ma7xx_state.angle = angle; } -ALWAYS_INLINE void ma7xx_calibrate(Sensor *s) +ALWAYS_INLINE void ma7xx_calibrate(Sensor *s, Observer *o) { - return ma7xx_calibrate_direction_and_pole_pair_count() && ma7xx_calibrate_offset_and_rectification(); + return ma7xx_calibrate_direction_and_pole_pair_count(s, o) && ma7xx_calibrate_offset_and_rectification(s, o); } /** @@ -260,10 +264,10 @@ uint16_t ma7xx_write_reg(Sensor *s, uint8_t reg, uint8_t value) uint8_t ma7xx_read_reg(Sensor *s, uint8_t reg) { uint16_t cmd[2] = {MA_CMD_READ | (reg << 8), 0}; - uint16_t result = ssp_write_multi(s->params.ma7xx_params.ssp_struct, cmd, 2u); + uint16_t result = ssp_write_multi(s->config.ss_config.ma7xx_config.ssp_struct, cmd, 2u); if (result != 0) { return false; } - return ssp_read_one(s->params.ma7xx_params.ssp_struct) >> 8; + return ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 8; } \ No newline at end of file diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index a7c0825d..263c363e 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -21,6 +21,7 @@ #include typedef struct Sensor Sensor; +typedef struct Observer Observer; typedef union SensorSpecificConfig SensorSpecificConfig; #if defined BOARD_REV_R3 @@ -61,16 +62,16 @@ typedef struct bool ma7xx_init_with_defaults(Sensor *s); bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c); void ma7xx_deinit(Sensor *s); -void ma7xx_clear_rec_table(Sensor *s); +void ma7xx_reset(Sensor *s); bool ma7xx_rec_is_calibrated(Sensor *s); int16_t *ma7xx_get_rec_table_ptr(Sensor *s); uint8_t ma7xx_get_errors(Sensor *s); void ma7xx_send_angle_cmd(Sensor *s); int16_t ma7xx_get_angle_raw(Sensor *s); int16_t ma7xx_get_angle_rectified(Sensor *s); -void ma7xx_calibrate(Sensor *s); +void ma7xx_calibrate(Sensor *s, Observer *o); void ma7xx_update(Sensor *s, bool check_error); uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); uint8_t ma7xx_read_reg(Sensor *s, uint8_t); -bool ma7xx_calibrate_offset_and_rectification(Sensor *s); -bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s); +bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o); +bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 50a33e74..de009965 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -52,35 +52,27 @@ void sensor_deinit(Sensor *s) void sensor_reset(Sensor *s) { - s->reset_func(); + s->reset_func(s); } void sensors_init_with_defaults(void) { ma7xx_init_with_defaults(&(sensors[0])); - sensor_commutation = &(sensors[0]); - sensor_position = &(sensors[0]); + commutation_sensor_p = &(sensors[0]); + position_sensor_p = &(sensors[0]); } void sensors_get_config(SensorsConfig *config_) { - +#warning "Update implementation" } void sensors_restore_config(SensorsConfig *config_) { - +#warning "Update implementation" } -// Interface functions - -static inline int sensor_get_connection(Sensor *sensor) -{ - // Derive pointer array offset - return sensor - sensors; -} - -static inline void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) +void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) { if (controller_get_state() == STATE_IDLE && new_connection != sensor_get_connection(*target_sensor) @@ -100,24 +92,26 @@ static inline void sensor_set_connection(Sensor** target_sensor, Sensor** other_ } } -sensor_connection_t commutation_sensor_get_connection(void) +// Interface functions + +static inline sensor_connection_t commutation_sensor_get_connection(void) { - return sensor_get_connection(sensor_commutation); + return sensor_get_connection(commutation_sensor_p); } void commutation_sensor_set_connection(sensor_connection_t new_connection) { - sensor_set_connection(&(sensor_commutation), &(sensor_position), new_connection); + sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); } -sensor_connection_t position_sensor_get_connection(void) +inline sensor_connection_t position_sensor_get_connection(void) { - return ssensor_get_connection(sensor_position); + return ssensor_get_connection(position_sensor_p); } void position_sensor_set_connection(sensor_connection_t new_connection) { - sensor_set_connection(&(sensor_position), &(sensor_commutation), new_connection); + sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); } void sensor_external_spi_set_type(sensor_type_t type) @@ -128,7 +122,7 @@ void sensor_external_spi_set_type(sensor_type_t type) { sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type = type; - sensors_init_with_defaults(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); + sensors_init_with_defaults(); } } diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 6d64bb87..72a796be 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -100,8 +100,8 @@ struct SensorsConfig { // index same as the members of `sensor_connection_t` Sensor sensors[SENSOR_COUNT]; -Sensor *sensor_commutation; -Sensor *sensor_position; +Sensor *commutation_sensor_p; +Sensor *position_sensor_p; uint32_t get_next_sensor_id(void); bool sensor_init_with_config(Sensor *s, SensorConfig *c); @@ -112,6 +112,14 @@ void sensors_init_with_defaults(void); void sensors_get_config(SensorsConfig *config_); void sensors_restore_config(SensorsConfig *config_); +static inline sensor_connection_t sensor_get_connection(Sensor *sensor) +{ + // Derive pointer array offset + return sensor - sensors; +} + +void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection); + static inline int16_t sensor_get_angle(Sensor *s) { return s->get_angle_func(s); @@ -173,6 +181,11 @@ static inline uint8_t sensor_get_errors(Sensor *s) return s->get_errors_func(s); } +static inline void sensor_invalidate(Sensor *s) +{ + s->current = false; +} + // Interface functions sensor_connection_t commutation_sensor_get_connection(void); diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 8a100a6c..47453567 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -134,12 +134,19 @@ void system_enter_dfu(void) void system_reset_calibration(void) { ADC_reset(); - encoder_reset(); - observer_reset(); + sensors_reset(); + observers_init_with_defaults(); motor_reset_calibration(); wait_pwm_cycles(5000); } +void system_reset_calibration(void) +{ + motor_reset_calibration(); + sensor_reset(commutation_sensor); + sensor_reset(position_sensor); +} + TM_RAMFUNC float system_get_Vbus(void) { return state.Vbus; diff --git a/firmware/src/system/system.h b/firmware/src/system/system.h index 5a51cce2..6a431cfd 100644 --- a/firmware/src/system/system.h +++ b/firmware/src/system/system.h @@ -39,22 +39,23 @@ void system_reset(void); void system_enter_dfu(void); void system_reset_calibration(void); -inline uint8_t system_get_fw_version_string(char *buffer) +static inline uint8_t system_get_fw_version_string(char *buffer) { memcpy(buffer, GIT_VERSION, 4); return 4; } -inline uint32_t system_get_uid(void) +static inline uint32_t system_get_uid(void) { return PAC55XX_INFO1->UNIQUEID[0] ^ PAC55XX_INFO1->UNIQUEID[1] ^ PAC55XX_INFO1->UNIQUEID[2]; } -inline uint32_t system_get_hw_revision(void) +static inline uint32_t system_get_hw_revision(void) { return BOARD_REV_IDX; } +void system_reset_calibration(void); float system_get_Vbus(void); bool system_get_calibrated(void); uint8_t system_get_errors(void); From 8572f36710001f2cad809ffea2203be4e81f874d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 11 Dec 2023 22:52:39 +0200 Subject: [PATCH 030/219] minor fixes --- firmware/src/sensor/ma7xx.c | 4 ++-- firmware/src/sensor/ma7xx.h | 2 +- firmware/src/sensor/sensor.c | 8 ++++---- firmware/src/sensor/sensor.h | 4 ++-- firmware/src/ssp/ssp_func.c | 2 +- firmware/src/uart/uart_interface.c | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 5eb076c7..ecccbbf0 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -43,7 +43,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) s->config.ss_config = *c; ssp_init(s->config.ss_config.ma7xx_config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet - ma7xx_send_angle_cmd(&s); + ma7xx_send_angle_cmd(s); ma7xx_update(&s, false); return true; } @@ -225,7 +225,7 @@ ALWAYS_INLINE void ma7xx_update(Sensor *s, bool check_error) s->state.ma7xx_state.angle = angle; } -ALWAYS_INLINE void ma7xx_calibrate(Sensor *s, Observer *o) +ALWAYS_INLINE bool ma7xx_calibrate(Sensor *s, Observer *o) { return ma7xx_calibrate_direction_and_pole_pair_count(s, o) && ma7xx_calibrate_offset_and_rectification(s, o); } diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 263c363e..199b6f62 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -69,7 +69,7 @@ uint8_t ma7xx_get_errors(Sensor *s); void ma7xx_send_angle_cmd(Sensor *s); int16_t ma7xx_get_angle_raw(Sensor *s); int16_t ma7xx_get_angle_rectified(Sensor *s); -void ma7xx_calibrate(Sensor *s, Observer *o); +bool ma7xx_calibrate(Sensor *s, Observer *o); void ma7xx_update(Sensor *s, bool check_error); uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); uint8_t ma7xx_read_reg(Sensor *s, uint8_t); diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index de009965..c5a6b419 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -17,7 +17,7 @@ bool sensor_init_with_config(Sensor *s, SensorConfig *c) if (SENSOR_TYPE_MA7XX == c->type) { #endif - return ma7xx_init_with_config(s, c); + return ma7xx_init_with_config(s, &(c->ss_config)); #ifdef BOARD_REV_R5 } else if (SENSOR_TYPE_HALL == c->type) @@ -36,13 +36,13 @@ bool sensor_init_with_config(Sensor *s, SensorConfig *c) void sensor_deinit(Sensor *s) { #ifdef BOARD_REV_R5 - if (SENSOR_TYPE_MA7XX == s->type) + if (SENSOR_TYPE_MA7XX == s->config.type) { #endif ma7xx_deinit(s); #ifdef BOARD_REV_R5 } - else if (SENSOR_TYPE_HALL == s->type) + else if (SENSOR_TYPE_HALL == s->config.type) { hall_deinit(s); } @@ -104,7 +104,7 @@ void commutation_sensor_set_connection(sensor_connection_t new_connection) sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); } -inline sensor_connection_t position_sensor_get_connection(void) +static inline sensor_connection_t position_sensor_get_connection(void) { return ssensor_get_connection(position_sensor_p); } diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 72a796be..5c1635f1 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -188,9 +188,9 @@ static inline void sensor_invalidate(Sensor *s) // Interface functions -sensor_connection_t commutation_sensor_get_connection(void); +static inline sensor_connection_t commutation_sensor_get_connection(void); void commutation_sensor_set_connection(sensor_connection_t new_connection); -sensor_connection_t position_sensor_get_connection(void); +static inline sensor_connection_t position_sensor_get_connection(void); void position_sensor_set_connection(sensor_connection_t new_connection); static inline sensor_type_t sensor_external_spi_get_type(void) diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index 158df463..23cbe8a9 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -787,7 +787,7 @@ void ssp_deinit(SSP_TYPE ssp) break; } ssp_interrupt_disable(ssp); - ssp_ptr->CON.SSPEN = SSP_CONTROL_DISNABLE; + ssp_ptr->CON.SSPEN = SSP_CONTROL_DISABLE; } //============================================================================== diff --git a/firmware/src/uart/uart_interface.c b/firmware/src/uart/uart_interface.c index 6861c7ab..bd411df8 100644 --- a/firmware/src/uart/uart_interface.c +++ b/firmware/src/uart/uart_interface.c @@ -125,7 +125,7 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'p': // pos estimate - ret_val = observer_get_pos_estimate_user_frame(); + ret_val = position_observer_get_pos_estimate_user_frame(); break; case 'P': // pos setpoint @@ -133,7 +133,7 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'v': // vel estimate - ret_val = (int32_t)observer_get_vel_estimate_user_frame(); + ret_val = (int32_t)position_observer_get_vel_estimate_user_frame(); break; case 'V': // vel setpoint From c0ac69a472b94252de7c587a9426ab85e5b0c823 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 11 Dec 2023 22:52:51 +0200 Subject: [PATCH 031/219] delete duplicate definition --- firmware/src/system/system.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 47453567..68851246 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -140,13 +140,6 @@ void system_reset_calibration(void) wait_pwm_cycles(5000); } -void system_reset_calibration(void) -{ - motor_reset_calibration(); - sensor_reset(commutation_sensor); - sensor_reset(position_sensor); -} - TM_RAMFUNC float system_get_Vbus(void) { return state.Vbus; From 3fc28d945356cb858e466a1f8e18d2c7e8301fdc Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 22 Dec 2023 11:23:37 +0200 Subject: [PATCH 032/219] various misnaming fixes --- firmware/src/sensor/hall.c | 10 ++++----- firmware/src/sensor/hall.h | 3 ++- firmware/src/sensor/ma7xx.c | 15 +++++++------ firmware/src/sensor/sensor.c | 39 ++++++++++++++++++++++------------ firmware/src/sensor/sensor.h | 38 ++++++++++++++++++++++++++++----- firmware/src/ssp/ssp_func.c | 41 ++++++++++++++++++++++++++++++++++++ firmware/src/system/system.c | 14 +++++++----- 7 files changed, 123 insertions(+), 37 deletions(-) diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 5fc186ab..76a58200 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -61,24 +61,24 @@ void hall_reset(Sensor *s) } -ALWAYS_INLINE uint8_t hall_get_errors(Sensor *s) +uint8_t hall_get_errors(Sensor *s) { return s->state.hall_state.errors; } -ALWAYS_INLINE int16_t hall_get_angle(Sensor *s) +int16_t hall_get_angle(Sensor *s) { return s->state.hall_state.angle; } -ALWAYS_INLINE void hall_update(Sensor *s, bool check_error) +void hall_update(Sensor *s, bool check_error) { const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; s->state.hall_state.sector = sector; s->state.hall_state.angle = s->config.ss_config.hall_config.sector_map[s->state.hall_state.sector]; } -ALWAYS_INLINE uint8_t hall_get_sector(Sensor *s) +uint8_t hall_get_sector(Sensor *s) { return s->state.hall_state.sector; } @@ -88,7 +88,7 @@ bool hall_sector_map_is_calibrated(Sensor *s) return s->config.ss_config.hall_config.sector_map_calibrated; } -bool hall_calibrate_sequence(Sensor *s) +bool hall_calibrate_sequence(Sensor *s, Observer *o) { HallSensorConfig *c = &(s->config.ss_config.hall_config); (void)memset(c->sector_map, 0, sizeof(c->sector_map)); diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index cf81cf46..2925806c 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -20,6 +20,7 @@ #include typedef struct Sensor Sensor; +typedef struct Observer Observer; typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct @@ -46,6 +47,6 @@ void hall_update(Sensor *s, bool check_error); uint8_t hall_get_sector(Sensor *s); bool hall_sector_map_is_calibrated(Sensor *s); -bool hall_calibrate_sequence(Sensor *s); +bool hall_calibrate_sequence(Sensor *s, Observer *o); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index ecccbbf0..3251c632 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -35,6 +35,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) { s->get_angle_func = ma7xx_get_angle_rectified; s->update_func = ma7xx_update; + s->prepare_func = ma7xx_send_angle_cmd; s->reset_func = ma7xx_reset; s->get_errors_func = ma7xx_get_errors; s->is_calibrated_func = ma7xx_rec_is_calibrated; @@ -44,7 +45,7 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) ssp_init(s->config.ss_config.ma7xx_config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); - ma7xx_update(&s, false); + ma7xx_update(s, false); return true; } @@ -182,22 +183,22 @@ bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) return success; } -ALWAYS_INLINE uint8_t ma7xx_get_errors(Sensor *s) +uint8_t ma7xx_get_errors(Sensor *s) { return s->state.ma7xx_state.errors; } -ALWAYS_INLINE void ma7xx_send_angle_cmd(Sensor *s) +void ma7xx_send_angle_cmd(Sensor *s) { ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, MA_CMD_ANGLE); } -ALWAYS_INLINE int16_t ma7xx_get_angle_raw(Sensor *s) +int16_t ma7xx_get_angle_raw(Sensor *s) { return s->state.ma7xx_state.angle; } -ALWAYS_INLINE int16_t ma7xx_get_angle_rectified(Sensor *s) +int16_t ma7xx_get_angle_rectified(Sensor *s) { const MA7xxSensorConfig *sc = &(s->config.ss_config.ma7xx_config); const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); @@ -208,7 +209,7 @@ ALWAYS_INLINE int16_t ma7xx_get_angle_rectified(Sensor *s) return angle + off_interp; } -ALWAYS_INLINE void ma7xx_update(Sensor *s, bool check_error) +void ma7xx_update(Sensor *s, bool check_error) { const int16_t angle = ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 3; @@ -225,7 +226,7 @@ ALWAYS_INLINE void ma7xx_update(Sensor *s, bool check_error) s->state.ma7xx_state.angle = angle; } -ALWAYS_INLINE bool ma7xx_calibrate(Sensor *s, Observer *o) +bool ma7xx_calibrate(Sensor *s, Observer *o) { return ma7xx_calibrate_direction_and_pole_pair_count(s, o) && ma7xx_calibrate_offset_and_rectification(s, o); } diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index c5a6b419..88dbc605 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -9,6 +9,28 @@ uint32_t get_next_sensor_id(void) return sensor_id++; } +bool sensor_init_with_connection(Sensor *s, sensor_connection_t connection) +{ + SensorConfig c; + if (connection == SENSOR_CONNECTION_ONBOARD_SPI) + { + + } + else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) + { + + } + else if (connection == SENSOR_CONNECTION_HALL) + { + + } + else + { + return false; + } + return sensor_init_with_config(s, &c); +} + bool sensor_init_with_config(Sensor *s, SensorConfig *c) { if (s->initialized == false) @@ -22,15 +44,12 @@ bool sensor_init_with_config(Sensor *s, SensorConfig *c) } else if (SENSOR_TYPE_HALL == c->type) { - return hall_init_with_config(s, c); + return hall_init_with_config(s, &(c->ss_config)); } #endif // ... (similar branches for other sensor types) } - else - { - return false; - } + return false; } void sensor_deinit(Sensor *s) @@ -94,21 +113,13 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor // Interface functions -static inline sensor_connection_t commutation_sensor_get_connection(void) -{ - return sensor_get_connection(commutation_sensor_p); -} + void commutation_sensor_set_connection(sensor_connection_t new_connection) { sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); } -static inline sensor_connection_t position_sensor_get_connection(void) -{ - return ssensor_get_connection(position_sensor_p); -} - void position_sensor_set_connection(sensor_connection_t new_connection) { sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 5c1635f1..ad4e99bc 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -30,12 +30,14 @@ typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct SensorConfig SensorConfig; typedef union SensorSpecificState SensorSpecificState; typedef struct SensorsConfig SensorsConfig; +typedef struct Observer Observer; typedef void (*sensor_init_func_t)(Sensor *); typedef bool (*sensor_is_calibrated_func_t)(Sensor *); -typedef bool (*sensor_calibrate_func_t)(Sensor *); +typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); typedef int16_t (*sensor_get_angle_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); +typedef void (*sensor_prepare_func_t)(Sensor *); typedef void (*sensor_update_func_t)(Sensor *, bool); typedef uint8_t (*sensor_get_errors_func_t)(Sensor *); @@ -84,6 +86,7 @@ struct Sensor { // typedefd earlier sensor_get_angle_func_t get_angle_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; + sensor_prepare_func_t prepare_func; sensor_get_errors_func_t get_errors_func; bool initialized : 1; bool current : 1; @@ -171,9 +174,9 @@ static inline bool sensor_get_calibrated(Sensor *s) return s->is_calibrated_func(s); } -static inline bool sensor_calibrate(Sensor *s) +static inline bool sensor_calibrate(Sensor *s, Observer *o) { - return s->calibrate_func(s); + return s->calibrate_func(s, o); } static inline uint8_t sensor_get_errors(Sensor *s) @@ -186,13 +189,38 @@ static inline void sensor_invalidate(Sensor *s) s->current = false; } +static inline void sensor_prepare(Sensor *s) +{ + if (s->prepare_func && s->current == false) + { + s->prepare_func(s); + } +} + // Interface functions -static inline sensor_connection_t commutation_sensor_get_connection(void); +static inline sensor_connection_t commutation_sensor_get_connection(void) +{ + return sensor_get_connection(commutation_sensor_p); +} + void commutation_sensor_set_connection(sensor_connection_t new_connection); -static inline sensor_connection_t position_sensor_get_connection(void); + +static inline sensor_connection_t position_sensor_get_connection(void) +{ + return sensor_get_connection(position_sensor_p); +} + void position_sensor_set_connection(sensor_connection_t new_connection); +static inline void sensors_reset(void) +{ + for (int i=0; i #include #include +#include #include extern char _eram; @@ -147,7 +148,9 @@ TM_RAMFUNC float system_get_Vbus(void) TM_RAMFUNC bool system_get_calibrated(void) { - return motor_get_calibrated() & encoder_get_calibrated(); + return (motor_get_calibrated() && + sensor_get_calibrated(commutation_sensor_p) && + sensor_get_calibrated(position_sensor_p)); } TM_RAMFUNC uint8_t system_get_errors(void) @@ -157,10 +160,11 @@ TM_RAMFUNC uint8_t system_get_errors(void) TM_RAMFUNC bool errors_exist(void) { - return (controller_get_errors() | - encoder_get_errors() | - motor_get_errors() | - planner_get_errors() | + return (controller_get_errors() || + sensor_get_errors(commutation_sensor_p) || + sensor_get_errors(position_sensor_p) | + motor_get_errors() || + planner_get_errors() || system_get_errors()); } From 72871cb530c0ad17084b7f8092f2890a66133349 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 23 Dec 2023 17:32:37 +0200 Subject: [PATCH 033/219] builds --- firmware/src/sensor/sensor.c | 5 ++--- firmware/src/sensor/sensor.h | 1 + firmware/src/system/system.c | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 88dbc605..796e7e01 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -9,9 +9,10 @@ uint32_t get_next_sensor_id(void) return sensor_id++; } -bool sensor_init_with_connection(Sensor *s, sensor_connection_t connection) +bool sensor_init_with_defaults(Sensor *s) { SensorConfig c; + sensor_connection_t connection = sensor_get_connection(s); if (connection == SENSOR_CONNECTION_ONBOARD_SPI) { @@ -113,8 +114,6 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor // Interface functions - - void commutation_sensor_set_connection(sensor_connection_t new_connection) { sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index ad4e99bc..b54c0529 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -107,6 +107,7 @@ Sensor *commutation_sensor_p; Sensor *position_sensor_p; uint32_t get_next_sensor_id(void); +bool sensor_init_with_defaults(Sensor *s); bool sensor_init_with_config(Sensor *s, SensorConfig *c); void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index f23c55f4..e1c26132 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -22,6 +22,7 @@ #include #include #include +#include #include extern char _eram; From df02b22c37038bbd5523c014c900952863250ac8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 29 Dec 2023 20:06:50 +0200 Subject: [PATCH 034/219] add instrumentation timer for debug --- firmware/src/main.c | 2 +- firmware/src/timer/timer.c | 41 ++++++++++++++++++++++++++++---------- firmware/src/timer/timer.h | 7 ++----- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/firmware/src/main.c b/firmware/src/main.c index 7239d197..603e56e9 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -42,7 +42,7 @@ int main(void) UART_Init(); ADC_init(); CAN_init(); - Timer_Init(); + timers_init(); Watchdog_init(); __enable_irq(); diff --git a/firmware/src/timer/timer.c b/firmware/src/timer/timer.c index 78d84361..932b9cd5 100644 --- a/firmware/src/timer/timer.c +++ b/firmware/src/timer/timer.c @@ -18,22 +18,43 @@ #include "src/common.h" #include "timer.h" -void Timer_Init(void) +void timers_init(void) { - // Configure Timer A Controls - pac5xxx_timer_clock_config(TimerA, TXCTL_CS_ACLK, TXCTL_PS_DIV); // Configure timer clock input for ACLK, divider + // Timer A -- PWM + + // Timer clock input for ACLK, divider + pac5xxx_timer_clock_config(TimerA, TXCTL_CS_ACLK, TXCTL_PS_DIV); + // Timer frequency and count mode pac5xxx_timer_base_config(TimerA, (TIMER_FREQ_HZ/(2*PWM_FREQ_HZ)), AUTO_RELOAD, - TxCTL_MODE_UPDOWN, TIMER_SLAVE_SYNC_DISABLE); // Configure timer frequency and count mode + TxCTL_MODE_UPDOWN, TIMER_SLAVE_SYNC_DISABLE); // Configure Dead time generators - PAC55XX_TIMERA->CTL.DTGCLK = BEFORE_ACLK_DIVIDER; // 0--> The DTGCLK is the clock before the TACTL.CLKDIV clock divider. - // 1--> The DTGCLK is the clock after the TACTL.CLKDIV clock divider. - - pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL0), RED_DEATH_TIMET, FED_DEATH_TIMET); // Configure DTGA0 for phase U - pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL1), RED_DEATH_TIMET, FED_DEATH_TIMET); // Configure DTGA1 for phase V - pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL2), RED_DEATH_TIMET, FED_DEATH_TIMET); // Configure DTGA2 for phase W + // 0--> The DTGCLK is the clock before the TACTL.CLKDIV clock divider. + // 1--> The DTGCLK is the clock after the TACTL.CLKDIV clock divider. + PAC55XX_TIMERA->CTL.DTGCLK = BEFORE_ACLK_DIVIDER; + + // Configure DTGA0, 1, 2 for phase U, V, W + pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL0), RED_DEATH_TIMET, FED_DEATH_TIMET); + pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL1), RED_DEATH_TIMET, FED_DEATH_TIMET); + pac5xxx_dtg_config2(&(PAC55XX_TIMERA->DTGCTL2), RED_DEATH_TIMET, FED_DEATH_TIMET); PAC55XX_TIMERA->CCTR4.CTR = 0; PAC55XX_TIMERA->CCTR5.CTR = 0; PAC55XX_TIMERA->CCTR6.CTR = 0; + +#if defined(DEBUG) + + // Timer B -- Performance Instrumentation (ddebug only) + + // Configure timer clock input for ACLK, divider + pac5xxx_timer_clock_config(TimerB, TXCTL_CS_ACLK, TXCTL_PS_DIV); + // Configure timer frequency and count mode + pac5xxx_timer_base_config(TimerB, (TIMER_FREQ_HZ/(PWM_FREQ_HZ/100)), AUTO_RELOAD, + TxCTL_MODE_UPDOWN, TIMER_SLAVE_SYNC_DISABLE); + + PAC55XX_TIMERB->CCTR4.CTR = 0; + PAC55XX_TIMERB->CCTR5.CTR = 0; + PAC55XX_TIMERB->CCTR6.CTR = 0; + +#endif } diff --git a/firmware/src/timer/timer.h b/firmware/src/timer/timer.h index a2be559e..4edd6717 100644 --- a/firmware/src/timer/timer.h +++ b/firmware/src/timer/timer.h @@ -15,8 +15,7 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#ifndef TIMER_TIMER_H_ -#define TIMER_TIMER_H_ +#pragma once #define RED_DEATH_TIMET 250 //Set rising edge death-time, if TACTL.DTGCLK is 0b, 50--> 1us #define FED_DEATH_TIMET 250 //Set failling edge death-time, if TACTL.DTGCLK is 0b, 50--> 1us @@ -39,6 +38,4 @@ typedef enum SINGLE_SHOT = 1, // The timer single shot }TXCTL_SINGLE_Type; -void Timer_Init(void); - -#endif /* TIMER_TIMER_H_ */ +void timers_init(void); From 62eb2b421975d88cf3ddd858a9467819478b5233 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 29 Dec 2023 21:01:30 +0200 Subject: [PATCH 035/219] update includes --- avlos_config.yaml | 2 +- firmware/src/can/can_endpoints.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/avlos_config.yaml b/avlos_config.yaml index e4e5e1d6..c3cc5ec5 100644 --- a/avlos_config.yaml +++ b/avlos_config.yaml @@ -13,7 +13,7 @@ generators: - - src/adc/adc.h - src/system/system.h - - src/sensor/sensor.h + - src/sensor/iface.h - src/observer/observer.h - src/motor/motor.h - src/scheduler/scheduler.h diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index a90f201d..faab559f 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include From aa8f43bfa336bbf458cdc47c523453cd213e67ef Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 29 Dec 2023 21:03:25 +0200 Subject: [PATCH 036/219] introduce separate interface header and source file for access to sensors --- firmware/src/controller/controller.c | 14 +-- firmware/src/observer/observer.c | 6 +- firmware/src/sensor/hall.c | 3 +- firmware/src/sensor/iface.c | 27 ++++++ firmware/src/sensor/iface.h | 72 ++++++++++++++ firmware/src/sensor/ma7xx.c | 138 +++++++++++++-------------- firmware/src/sensor/ma7xx.h | 9 -- firmware/src/sensor/sensor.c | 60 ++++++------ firmware/src/sensor/sensor.h | 80 +++------------- firmware/src/system/system.c | 2 +- 10 files changed, 215 insertions(+), 196 deletions(-) create mode 100644 firmware/src/sensor/iface.c create mode 100644 firmware/src/sensor/iface.h diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 1e2a615e..892eba84 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -16,7 +16,7 @@ // * along with this program. If not, see . #include "src/system/system.h" -#include +#include #include #include "src/adc/adc.h" #include "src/motor/motor.h" @@ -121,16 +121,8 @@ void Controller_ControlLoop(void) { state.is_calibrating = true; system_reset_calibration(); - #warning "Update implementation" - // (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); - // if (SENSOR_MA7XX == encoder_get_type()) - // { - // (void)(calibrate_direction_and_pole_pair_count() && calibrate_offset_and_rectification()); - // } - // else if (SENSOR_HALL == encoder_get_type()) - // { - // (void)calibrate_hall_sequence(); - // } + (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); + (void)(sensors_calibrate()); state.is_calibrating = false; controller_set_state(STATE_IDLE); } diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 6c5287e7..c79c46a0 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -64,12 +64,14 @@ void observers_init_with_defaults(void) void observers_get_config(ObserversConfig *config_) { -#warning "Update implementation" + config_->config_commutation = commutation_observer.config; + config_->config_position = position_observer.config; } void observers_restore_config(ObserversConfig *config_) { -#warning "Update implementation" + commutation_observer.config = config_->config_commutation; + position_observer.config = config_->config_position; } void commutation_observer_set_bandwidth(float bw) diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 76a58200..afb18483 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -58,7 +58,8 @@ void hall_deinit(Sensor *s) void hall_reset(Sensor *s) { - + memset(s->config.ss_config.hall_config.sector_map, 0, sizeof(s->config.ss_config.hall_config.sector_map)); + s->config.ss_config.hall_config.sector_map_calibrated = false; } uint8_t hall_get_errors(Sensor *s) diff --git a/firmware/src/sensor/iface.c b/firmware/src/sensor/iface.c new file mode 100644 index 00000000..da9e3e7f --- /dev/null +++ b/firmware/src/sensor/iface.c @@ -0,0 +1,27 @@ + +#include +#include + +// Interface functions + +void commutation_sensor_set_connection(sensor_connection_t new_connection) +{ + sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); +} + +void position_sensor_set_connection(sensor_connection_t new_connection) +{ + sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); +} + +void sensor_external_spi_set_type(sensor_type_t type) +{ + if (controller_get_state() == STATE_IDLE + && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX + && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type) + { + sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type = type; + sensors_init_with_defaults(); + } +} diff --git a/firmware/src/sensor/iface.h b/firmware/src/sensor/iface.h new file mode 100644 index 00000000..e76c1b79 --- /dev/null +++ b/firmware/src/sensor/iface.h @@ -0,0 +1,72 @@ + +#pragma once + +#include +#include + +// Interface functions + +static inline sensor_connection_t commutation_sensor_get_connection(void) +{ + return sensor_get_connection(commutation_sensor_p); +} + +void commutation_sensor_set_connection(sensor_connection_t new_connection); + +static inline sensor_connection_t position_sensor_get_connection(void) +{ + return sensor_get_connection(position_sensor_p); +} + +void position_sensor_set_connection(sensor_connection_t new_connection); + +static inline void sensors_reset(void) +{ + for (int i=0; i #include -bool ma7xx_init_with_defaults(Sensor *s) -{ - SensorSpecificConfig c = {0}; - c.ma7xx_config.ssp_port = ONBOARD_SENSOR_SSP_PORT; - return ma7xx_init_with_config(s, &c); -} - bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) { s->get_angle_func = ma7xx_get_angle_rectified; @@ -73,74 +66,73 @@ int16_t *ma7xx_get_rec_table_ptr(Sensor *s) bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) { -#warning "Update implementation" - // // Size below is an arbitrary large number ie > ECN_SIZE * npp - // float error_ticks[ECN_SIZE * 20]; - // const int16_t npp = motor_get_pole_pairs(); - // const int16_t n = ECN_SIZE * npp; - // const int16_t nconv = 100; - // const float delta = 2 * PI * npp / (n * nconv); - // const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); - // float e_pos_ref = 0.f; - // const float I_setpoint = motor_get_I_cal(); - // int16_t *lut = s->config.ss_config.ma7xx_config.rec_table; - // set_epos_and_wait(e_pos_ref, I_setpoint); - // wait_pwm_cycles(5000); - // const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); + // Size below is an arbitrary large number ie > ECN_SIZE * npp + float error_ticks[ECN_SIZE * 20]; + const int16_t npp = motor_get_pole_pairs(); + const int16_t n = ECN_SIZE * npp; + const int16_t nconv = 100; + const float delta = 2 * PI * npp / (n * nconv); + const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); + float e_pos_ref = 0.f; + const float I_setpoint = motor_get_I_cal(); + int16_t *lut = s->config.ss_config.ma7xx_config.rec_table; + set_epos_and_wait(e_pos_ref, I_setpoint); + wait_pwm_cycles(5000); + const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); - // for (uint32_t i = 0; i < n; i++) - // { - // for (uint8_t j = 0; j < nconv; j++) - // { - // e_pos_ref += delta; - // set_epos_and_wait(e_pos_ref, I_setpoint); - // } - // wait_for_control_loop_interrupt(); - // const float pos_meas = observer_get_pos_estimate(observers[s->idx]); - // error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - // } - // for (uint32_t i = 0; i < n; i++) - // { - // for (uint8_t j = 0; j < nconv; j++) - // { - // e_pos_ref -= delta; - // set_epos_and_wait(e_pos_ref, I_setpoint); - // } - // wait_for_control_loop_interrupt(); - // const float pos_meas = observer_get_pos_estimate(observers[s->idx]); - // error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - // } - // gate_driver_set_duty_cycle(&three_phase_zero); - // gate_driver_disable(); + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref += delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + wait_for_control_loop_interrupt(); + const float pos_meas = observer_get_pos_estimate(o); + error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref -= delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + wait_for_control_loop_interrupt(); + const float pos_meas = observer_get_pos_estimate(o); + error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + gate_driver_set_duty_cycle(&three_phase_zero); + gate_driver_disable(); - // // FIR filtering and map measurements to lut - // for (int16_t i=0; i n - 1) - // { - // read_idx -= n; - // } - // acc += error_ticks[read_idx]; - // } - // acc = acc / ((float)(ECN_SIZE * 2)); - // int16_t write_idx = i + offset_idx; - // if (write_idx > (ECN_SIZE - 1)) - // { - // write_idx -= ECN_SIZE; - // } - // lut[write_idx] = (int16_t)acc; - // } - // wait_pwm_cycles(5000); - // s->config.ss_config.ma7xx_config.rec_calibrated = true; - // return true; + // FIR filtering and map measurements to lut + for (int16_t i=0; i n - 1) + { + read_idx -= n; + } + acc += error_ticks[read_idx]; + } + acc = acc / ((float)(ECN_SIZE * 2)); + int16_t write_idx = i + offset_idx; + if (write_idx > (ECN_SIZE - 1)) + { + write_idx -= ECN_SIZE; + } + lut[write_idx] = (int16_t)acc; + } + wait_pwm_cycles(5000); + s->config.ss_config.ma7xx_config.rec_calibrated = true; + return true; } bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 199b6f62..ebb19da6 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -24,14 +24,6 @@ typedef struct Sensor Sensor; typedef struct Observer Observer; typedef union SensorSpecificConfig SensorSpecificConfig; -#if defined BOARD_REV_R3 -#define ONBOARD_SENSOR_SSP_PORT SSPD -#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD -#elif defined BOARD_REV_R5 || defined BOARD_REV_M5 -#define ONBOARD_SENSOR_SSP_PORT SSPC -#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC -#endif - #define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) #define MAX_ALLOWED_DELTA_ADD (MAX_ALLOWED_DELTA + ENCODER_TICKS) #define MAX_ALLOWED_DELTA_SUB (MAX_ALLOWED_DELTA - ENCODER_TICKS) @@ -59,7 +51,6 @@ typedef struct int16_t angle; } MA7xxSensorState; -bool ma7xx_init_with_defaults(Sensor *s); bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 796e7e01..389fdd16 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -1,6 +1,7 @@ -#include + #include +#include static uint32_t sensor_id = 1; // 0 implicitly treated as missing value @@ -11,19 +12,25 @@ uint32_t get_next_sensor_id(void) bool sensor_init_with_defaults(Sensor *s) { + // Here we check the sensor connection, either + // ONBOARD, EXTERNAL_SPI or EXTERNAL_HALL. We need + // to do this here in order to set up the config + // struct accordingly. SensorConfig c; sensor_connection_t connection = sensor_get_connection(s); if (connection == SENSOR_CONNECTION_ONBOARD_SPI) { - + c.type = SENSOR_TYPE_MA7XX; + c.ss_config.ma7xx_config.ssp_port = ONBOARD_SENSOR_SSP_PORT; } else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) { - + c.type = SENSOR_TYPE_MA7XX; + c.ss_config.ma7xx_config.ssp_port = EXTERNAL_SENSOR_SSP_PORT; } else if (connection == SENSOR_CONNECTION_HALL) { - + c.type = SENSOR_TYPE_HALL; } else { @@ -77,19 +84,34 @@ void sensor_reset(Sensor *s) void sensors_init_with_defaults(void) { - ma7xx_init_with_defaults(&(sensors[0])); + sensor_init_with_defaults(&(sensors[0])); commutation_sensor_p = &(sensors[0]); position_sensor_p = &(sensors[0]); } void sensors_get_config(SensorsConfig *config_) { -#warning "Update implementation" + for (int i=0; iconfig[i] = sensors[i].config; + } + config_->commutation_connection = sensor_get_connection(commutation_sensor_p); + config_->position_connection = sensor_get_connection(position_sensor_p); } void sensors_restore_config(SensorsConfig *config_) { -#warning "Update implementation" + for (int i=0; iconfig[i]; + } + commutation_sensor_p = config_->commutation_connection + sensors; + sensor_init_with_config(commutation_sensor_p, &(commutation_sensor_p->config)); + position_sensor_p = config_->position_connection + sensors; + if (commutation_sensor_p != position_sensor_p) + { + sensor_init_with_config(position_sensor_p, &(position_sensor_p->config)); + } } void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) @@ -112,27 +134,3 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor } } -// Interface functions - -void commutation_sensor_set_connection(sensor_connection_t new_connection) -{ - sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); -} - -void position_sensor_set_connection(sensor_connection_t new_connection) -{ - sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); -} - -void sensor_external_spi_set_type(sensor_type_t type) -{ - if (controller_get_state() == STATE_IDLE - && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX - && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type) - { - sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); - sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type = type; - sensors_init_with_defaults(); - } -} - diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index b54c0529..cb4b9298 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -21,10 +21,19 @@ #include #include #include -#include #define SENSOR_COUNT 3 +#if defined BOARD_REV_R3 +#define ONB§OARD_SENSOR_SSP_PORT SSPD +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD +#elif defined BOARD_REV_R5 || defined BOARD_REV_M5 +#define ONBOARD_SENSOR_SSP_PORT SSPC +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC +#define EXTERNAL_SENSOR_SSP_PORT SSPC +#define EXTERNAL_SENSOR_SSP_STRUCT PAC55XX_SSPC +#endif + typedef struct Sensor Sensor; typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct SensorConfig SensorConfig; @@ -32,7 +41,6 @@ typedef union SensorSpecificState SensorSpecificState; typedef struct SensorsConfig SensorsConfig; typedef struct Observer Observer; -typedef void (*sensor_init_func_t)(Sensor *); typedef bool (*sensor_is_calibrated_func_t)(Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); typedef int16_t (*sensor_get_angle_func_t)(Sensor *); @@ -80,7 +88,6 @@ union SensorSpecificState{ struct Sensor { // typedefd earlier SensorConfig config; SensorSpecificState state; - sensor_init_func_t init_func; sensor_is_calibrated_func_t is_calibrated_func; sensor_calibrate_func_t calibrate_func; sensor_get_angle_func_t get_angle_func; @@ -94,8 +101,8 @@ struct Sensor { // typedefd earlier struct SensorsConfig { SensorConfig config[SENSOR_COUNT]; - uint32_t commutation_id; - uint32_t position_id; + sensor_connection_t commutation_connection; + sensor_connection_t position_connection; }; // The sequence in the `sensors` array is determined so that @@ -197,66 +204,3 @@ static inline void sensor_prepare(Sensor *s) s->prepare_func(s); } } - -// Interface functions - -static inline sensor_connection_t commutation_sensor_get_connection(void) -{ - return sensor_get_connection(commutation_sensor_p); -} - -void commutation_sensor_set_connection(sensor_connection_t new_connection); - -static inline sensor_connection_t position_sensor_get_connection(void) -{ - return sensor_get_connection(position_sensor_p); -} - -void position_sensor_set_connection(sensor_connection_t new_connection); - -static inline void sensors_reset(void) -{ - for (int i=0; i #include #include -#include +#include #include #include From 64ae2cdf35c3cd43b3d3c1533716140b5bede293 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Jan 2024 13:58:49 +0200 Subject: [PATCH 037/219] update imports --- firmware/src/can/can_endpoints.c | 2 +- firmware/src/controller/controller.c | 2 +- firmware/src/nvm/nvm.h | 2 +- firmware/src/observer/observer.h | 2 +- firmware/src/system/system.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index faab559f..55060356 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 892eba84..9a4c1ef0 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -16,7 +16,7 @@ // * along with this program. If not, see . #include "src/system/system.h" -#include +#include #include #include "src/adc/adc.h" #include "src/motor/motor.h" diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index 8cf684c4..0ba31fc5 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 38cd40fe..b8450753 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -20,7 +20,7 @@ #include #include -#include +#include typedef struct Observer Observer; diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 4258e0c1..e1c26132 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include From f3311754351cbc109e015de4d260a86ddb066f3c Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Jan 2024 13:59:58 +0200 Subject: [PATCH 038/219] refactor sensor structure --- firmware/src/observer/observer.h | 4 +- firmware/src/sensor/hall.c | 72 ++++++---------- firmware/src/sensor/hall.h | 43 +++++++--- firmware/src/sensor/iface.c | 27 ------ firmware/src/sensor/iface.h | 72 ---------------- firmware/src/sensor/ma7xx.c | 136 ++++++------------------------ firmware/src/sensor/ma7xx.h | 121 +++++++++++++++++++++++---- firmware/src/sensor/sensor.c | 131 ++++------------------------- firmware/src/sensor/sensor.h | 95 +++------------------ firmware/src/sensor/sensors.c | 117 ++++++++++++++++++++++++++ firmware/src/sensor/sensors.h | 137 +++++++++++++++++++++++++++++++ firmware/src/system/system.c | 8 +- 12 files changed, 477 insertions(+), 486 deletions(-) delete mode 100644 firmware/src/sensor/iface.c delete mode 100644 firmware/src/sensor/iface.h create mode 100644 firmware/src/sensor/sensors.c create mode 100644 firmware/src/sensor/sensors.h diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index b8450753..2a51edbf 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -120,7 +120,7 @@ static inline float observer_get_vel_estimate(Observer *o) static inline float observer_get_epos(Observer *o) { - if (SENSOR_TYPE_HALL == sensor_get_type(o->sensor_ptr)) + if (SENSOR_TYPE_HALL == o->sensor_ptr->config.type) { return o->pos_estimate_wrapped * twopi_by_hall_sectors; } @@ -129,7 +129,7 @@ static inline float observer_get_epos(Observer *o) static inline float observer_get_evel(Observer *o) { - if (SENSOR_TYPE_HALL == sensor_get_type(o->sensor_ptr)) + if (SENSOR_TYPE_HALL == o->sensor_ptr->config.type) { return o->vel_estimate * twopi_by_hall_sectors; } diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index afb18483..354a263a 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -26,23 +26,25 @@ bool hall_init_with_defaults(Sensor *s) { - SensorSpecificConfig c = {0}; + HallSensorConfig c = {0}; return hall_init_with_config(s, &c); } -bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) +bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) { - s->get_angle_func = hall_get_angle; - s->update_func = hall_update; - s->reset_func = hall_reset; - s->get_errors_func = hall_get_errors; - s->is_calibrated_func = hall_sector_map_is_calibrated; - s->calibrate_func = hall_calibrate_sequence; - s->config.type = SENSOR_TYPE_HALL; - s->config.ss_config = *c; - s->state.hall_state.hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); - s->state.hall_state.hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); - s->state.hall_state.hw_defaults[2] = pac5xxx_tile_register_read(ADDR_CFGAIO9); + HallSensor *ms = (HallSensor *)s; + ms->base.get_angle_func = hall_get_angle; + ms->base.update_func = hall_update; + ms->base.reset_func = hall_reset; + ms->base.deinit_func = hall_deinit; + ms->base.get_errors_func = hall_get_errors; + ms->base.is_calibrated_func = hall_sector_map_is_calibrated; + ms->base.calibrate_func = hall_calibrate_sequence; + ms->base.config.type = SENSOR_TYPE_HALL; + ms->config = *c; + ms->hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); + ms->hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); + ms->hw_defaults[2] = pac5xxx_tile_register_read(ADDR_CFGAIO9); pac5xxx_tile_register_write(ADDR_CFGAIO7, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO8, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO9, AIO6789_IO_MODE | AIO_INPUT); @@ -51,47 +53,23 @@ bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c) void hall_deinit(Sensor *s) { - pac5xxx_tile_register_write(ADDR_CFGAIO7, s->state.hall_state.hw_defaults[0]); - pac5xxx_tile_register_write(ADDR_CFGAIO8, s->state.hall_state.hw_defaults[1]); - pac5xxx_tile_register_write(ADDR_CFGAIO9, s->state.hall_state.hw_defaults[2]); + HallSensor *ms = (HallSensor *)s; + pac5xxx_tile_register_write(ADDR_CFGAIO7, ms->hw_defaults[0]); + pac5xxx_tile_register_write(ADDR_CFGAIO8, ms->hw_defaults[1]); + pac5xxx_tile_register_write(ADDR_CFGAIO9, ms->hw_defaults[2]); } void hall_reset(Sensor *s) { - memset(s->config.ss_config.hall_config.sector_map, 0, sizeof(s->config.ss_config.hall_config.sector_map)); - s->config.ss_config.hall_config.sector_map_calibrated = false; -} - -uint8_t hall_get_errors(Sensor *s) -{ - return s->state.hall_state.errors; -} - -int16_t hall_get_angle(Sensor *s) -{ - return s->state.hall_state.angle; -} - -void hall_update(Sensor *s, bool check_error) -{ - const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; - s->state.hall_state.sector = sector; - s->state.hall_state.angle = s->config.ss_config.hall_config.sector_map[s->state.hall_state.sector]; -} - -uint8_t hall_get_sector(Sensor *s) -{ - return s->state.hall_state.sector; -} - -bool hall_sector_map_is_calibrated(Sensor *s) -{ - return s->config.ss_config.hall_config.sector_map_calibrated; + HallSensor *ms = (HallSensor *)s; + memset(ms->config.sector_map, 0, sizeof(ms->config.sector_map)); + ms->config.sector_map_calibrated = false; } bool hall_calibrate_sequence(Sensor *s, Observer *o) { - HallSensorConfig *c = &(s->config.ss_config.hall_config); + HallSensor *ms = (HallSensor *)s; + HallSensorConfig *c = &(ms->config); (void)memset(c->sector_map, 0, sizeof(c->sector_map)); c->sector_map_calibrated = false; uint8_t *sector_map = c->sector_map; @@ -153,7 +131,7 @@ bool hall_calibrate_sequence(Sensor *s, Observer *o) } else { - s->state.hall_state.errors |= SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED; + ms->errors |= SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED; } return success; } \ No newline at end of file diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 2925806c..10aaa552 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -17,11 +17,9 @@ #pragma once -#include +#include -typedef struct Sensor Sensor; typedef struct Observer Observer; -typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct { @@ -31,22 +29,45 @@ typedef struct typedef struct { + Sensor base; + HallSensorConfig config; uint8_t errors; uint16_t angle; uint8_t sector; uint8_t hw_defaults[3]; -} HallSensorState; +} HallSensor; bool hall_init_with_defaults(Sensor *s); -bool hall_init_with_config(Sensor *s, SensorSpecificConfig *c); +bool hall_init_with_config(Sensor *s, const HallSensorConfig *c); void hall_deinit(Sensor *s); void hall_reset(Sensor *s); -uint8_t hall_get_errors(Sensor *s); -int16_t hall_get_angle(Sensor *s); -void hall_update(Sensor *s, bool check_error); -uint8_t hall_get_sector(Sensor *s); - -bool hall_sector_map_is_calibrated(Sensor *s); bool hall_calibrate_sequence(Sensor *s, Observer *o); +static inline uint8_t hall_get_errors(const Sensor *s) +{ + return ((HallSensor *)s)->errors; +} + +static inline int16_t hall_get_angle(const Sensor *s) +{ + return ((HallSensor *)s)->angle; +} + +static inline void hall_update(Sensor *s, bool check_error) +{ + HallSensor *ms = (HallSensor *)s; + const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; + ms->sector = sector; + ms->angle = ms->config.sector_map[ms->sector]; +} + +static inline uint8_t hall_get_sector(const Sensor *s) +{ + return ((const HallSensor *)s)->sector; +} + +static inline bool hall_sector_map_is_calibrated(const Sensor *s) +{ + return ((const HallSensor *)s)->config.sector_map_calibrated; +} diff --git a/firmware/src/sensor/iface.c b/firmware/src/sensor/iface.c deleted file mode 100644 index da9e3e7f..00000000 --- a/firmware/src/sensor/iface.c +++ /dev/null @@ -1,27 +0,0 @@ - -#include -#include - -// Interface functions - -void commutation_sensor_set_connection(sensor_connection_t new_connection) -{ - sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); -} - -void position_sensor_set_connection(sensor_connection_t new_connection) -{ - sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); -} - -void sensor_external_spi_set_type(sensor_type_t type) -{ - if (controller_get_state() == STATE_IDLE - && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX - && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type) - { - sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI])); - sensors[SENSOR_CONNECTION_EXTERNAL_SPI].config.type = type; - sensors_init_with_defaults(); - } -} diff --git a/firmware/src/sensor/iface.h b/firmware/src/sensor/iface.h deleted file mode 100644 index e76c1b79..00000000 --- a/firmware/src/sensor/iface.h +++ /dev/null @@ -1,72 +0,0 @@ - -#pragma once - -#include -#include - -// Interface functions - -static inline sensor_connection_t commutation_sensor_get_connection(void) -{ - return sensor_get_connection(commutation_sensor_p); -} - -void commutation_sensor_set_connection(sensor_connection_t new_connection); - -static inline sensor_connection_t position_sensor_get_connection(void) -{ - return sensor_get_connection(position_sensor_p); -} - -void position_sensor_set_connection(sensor_connection_t new_connection); - -static inline void sensors_reset(void) -{ - for (int i=0; i #include -#include #include #include #include #include #include -bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) +bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port) { - s->get_angle_func = ma7xx_get_angle_rectified; - s->update_func = ma7xx_update; - s->prepare_func = ma7xx_send_angle_cmd; - s->reset_func = ma7xx_reset; - s->get_errors_func = ma7xx_get_errors; - s->is_calibrated_func = ma7xx_rec_is_calibrated; - s->calibrate_func = ma7xx_calibrate; - s->config.type = SENSOR_TYPE_MA7XX; - s->config.ss_config = *c; - ssp_init(s->config.ss_config.ma7xx_config.ssp_port, SSP_MS_MASTER, 0, 0); + MA7xxSensorConfig c = {0}; + c.ssp_port = port; + return ma7xx_init_with_config(s, &c); +} + + bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c) +{ + MA7xxSensor *ms = (MA7xxSensor *)s; + ms->base.get_angle_func = ma7xx_get_angle_rectified; + ms->base.update_func = ma7xx_update; + ms->base.prepare_func = ma7xx_send_angle_cmd; + ms->base.reset_func = ma7xx_reset; + ms->base.deinit_func = ma7xx_deinit; + ms->base.get_errors_func = ma7xx_get_errors; + ms->base.is_calibrated_func = ma7xx_rec_is_calibrated; + ms->base.calibrate_func = ma7xx_calibrate; + ms->base.config.type = SENSOR_TYPE_MA7XX; + ms->config = *c; + ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); ma7xx_update(s, false); @@ -44,28 +52,19 @@ bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c) void ma7xx_deinit(Sensor *s) { - ssp_deinit(s->config.ss_config.ma7xx_config.ssp_port); + ssp_deinit(((MA7xxSensor *)s)->config.ssp_port); } void ma7xx_reset(Sensor *s) { - MA7xxSensorConfig *c = &(s->config.ss_config.ma7xx_config); + MA7xxSensorConfig *c = &(((MA7xxSensor *)s)->config); (void)memset(c->rec_table, 0, sizeof(c->rec_table)); c->rec_calibrated = false; } -bool ma7xx_rec_is_calibrated(Sensor *s) -{ - return s->config.ss_config.ma7xx_config.rec_calibrated; -} - -int16_t *ma7xx_get_rec_table_ptr(Sensor *s) -{ - return s->config.ss_config.ma7xx_config.rec_table; -} - bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) { + MA7xxSensor *ms = (MA7xxSensor *)s; // Size below is an arbitrary large number ie > ECN_SIZE * npp float error_ticks[ECN_SIZE * 20]; const int16_t npp = motor_get_pole_pairs(); @@ -75,7 +74,7 @@ bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); float e_pos_ref = 0.f; const float I_setpoint = motor_get_I_cal(); - int16_t *lut = s->config.ss_config.ma7xx_config.rec_table; + int16_t *lut = ms->config.rec_table; set_epos_and_wait(e_pos_ref, I_setpoint); wait_pwm_cycles(5000); const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); @@ -131,7 +130,7 @@ bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) lut[write_idx] = (int16_t)acc; } wait_pwm_cycles(5000); - s->config.ss_config.ma7xx_config.rec_calibrated = true; + ms->config.rec_calibrated = true; return true; } @@ -175,92 +174,7 @@ bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) return success; } -uint8_t ma7xx_get_errors(Sensor *s) -{ - return s->state.ma7xx_state.errors; -} - -void ma7xx_send_angle_cmd(Sensor *s) -{ - ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, MA_CMD_ANGLE); -} - -int16_t ma7xx_get_angle_raw(Sensor *s) -{ - return s->state.ma7xx_state.angle; -} - -int16_t ma7xx_get_angle_rectified(Sensor *s) -{ - const MA7xxSensorConfig *sc = &(s->config.ss_config.ma7xx_config); - const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); - const int16_t angle = s->state.ma7xx_state.angle; - const int16_t off_1 = sc->rec_table[angle>>offset_bits]; - const int16_t off_2 = sc->rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); - return angle + off_interp; -} - -void ma7xx_update(Sensor *s, bool check_error) -{ - const int16_t angle = ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 3; - - if (check_error) - { - const int16_t delta = s->state.ma7xx_state.angle - angle; - if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && - ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && - ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) - { - s->state.ma7xx_state.errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; - } - } - s->state.ma7xx_state.angle = angle; -} - bool ma7xx_calibrate(Sensor *s, Observer *o) { return ma7xx_calibrate_direction_and_pole_pair_count(s, o) && ma7xx_calibrate_offset_and_rectification(s, o); } - -/** - * @brief Write to a register of the sensor - * - * @param reg The 5-bit register address - * @param value The value to write - * @return uint16_t - */ -uint16_t ma7xx_write_reg(Sensor *s, uint8_t reg, uint8_t value) -{ - uint16_t cmd = MA_CMD_WRITE | reg << 8 | value; - uint32_t result = ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, cmd); - - // Delay at least 20ms to let the encoder write to memory - delay_us(20100); - result |= ssp_write_one(s->config.ss_config.ma7xx_config.ssp_struct, 0); - - // The encoder returns the value written to memory, so check that it is the same as what we wrote - uint8_t retval = ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 8; - if ((retval != value) || (result != 0)) - { - return false; - } - return true; -} - -/** - * @brief Read from a register of the sensor - * - * @param register The 5-bit register address - * @return uint8_t - */ -uint8_t ma7xx_read_reg(Sensor *s, uint8_t reg) -{ - uint16_t cmd[2] = {MA_CMD_READ | (reg << 8), 0}; - uint16_t result = ssp_write_multi(s->config.ss_config.ma7xx_config.ssp_struct, cmd, 2u); - if (result != 0) - { - return false; - } - return ssp_read_one(s->config.ss_config.ma7xx_config.ssp_struct) >> 8; -} \ No newline at end of file diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index ebb19da6..c7b32b82 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -17,12 +17,11 @@ #pragma once -#include #include +#include +#include -typedef struct Sensor Sensor; typedef struct Observer Observer; -typedef union SensorSpecificConfig SensorSpecificConfig; #define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) #define MAX_ALLOWED_DELTA_ADD (MAX_ALLOWED_DELTA + ENCODER_TICKS) @@ -47,22 +46,114 @@ typedef struct typedef struct { + Sensor base; + MA7xxSensorConfig config; uint8_t errors; int16_t angle; -} MA7xxSensorState; +} MA7xxSensor; -bool ma7xx_init_with_config(Sensor *s, SensorSpecificConfig *c); +bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port); +bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); -bool ma7xx_rec_is_calibrated(Sensor *s); -int16_t *ma7xx_get_rec_table_ptr(Sensor *s); -uint8_t ma7xx_get_errors(Sensor *s); -void ma7xx_send_angle_cmd(Sensor *s); -int16_t ma7xx_get_angle_raw(Sensor *s); -int16_t ma7xx_get_angle_rectified(Sensor *s); -bool ma7xx_calibrate(Sensor *s, Observer *o); -void ma7xx_update(Sensor *s, bool check_error); -uint16_t ma7xx_write_reg(Sensor *s, uint8_t, uint8_t); -uint8_t ma7xx_read_reg(Sensor *s, uint8_t); bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o); bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); +bool ma7xx_calibrate(Sensor *s, Observer *o); + +static inline bool ma7xx_rec_is_calibrated(const Sensor *s) +{ + return ((const MA7xxSensor *)s)->config.rec_calibrated; +} + +static inline int16_t *ma7xx_get_rec_table_ptr(Sensor *s) +{ + return ((MA7xxSensor *)s)->config.rec_table; +} + +static inline uint8_t ma7xx_get_errors(const Sensor *s) +{ + return ((const MA7xxSensor *)s)->errors; +} + +static inline void ma7xx_send_angle_cmd(const Sensor *s) +{ + ssp_write_one(((const MA7xxSensor *)s)->config.ssp_struct, MA_CMD_ANGLE); +} + +static inline int16_t ma7xx_get_angle_raw(const Sensor *s) +{ + return ((const MA7xxSensor *)s)->angle; +} + +static inline int16_t ma7xx_get_angle_rectified(const Sensor *s) +{ + const MA7xxSensor *ms = (const MA7xxSensor *)s; + const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); + const int16_t angle = ms->angle; + const int16_t off_1 = ms->config.rec_table[angle>>offset_bits]; + const int16_t off_2 = ms->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + return angle + off_interp; +} + +static inline void ma7xx_update(Sensor *s, bool check_error) +{ + MA7xxSensor *ms = (MA7xxSensor *)s; + const int16_t angle = ssp_read_one(ms->config.ssp_struct) >> 3; + + if (check_error) + { + const int16_t delta = ms->angle - angle; + if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && + ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && + ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + { + ms->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; + } + } + ms->angle = angle; +} + +/** + * @brief Write to a register of the sensor + * + * @param reg The 5-bit register address + * @param value The value to write + * @return uint16_t + */ +static inline uint16_t ma7xx_write_reg(const Sensor *s, uint8_t reg, uint8_t value) +{ + const MA7xxSensor *ms = (const MA7xxSensor *)s; + uint16_t cmd = MA_CMD_WRITE | reg << 8 | value; + uint32_t result = ssp_write_one(ms->config.ssp_struct, cmd); + + // Delay at least 20ms to let the encoder write to memory + delay_us(20100); + result |= ssp_write_one(ms->config.ssp_struct, 0); + + // The encoder returns the value written to memory, so check that it is the same as what we wrote + uint8_t retval = ssp_read_one(ms->config.ssp_struct) >> 8; + if ((retval != value) || (result != 0)) + { + return false; + } + return true; +} + +/** + * @brief Read from a register of the sensor + * + * @param register The 5-bit register address + * @return uint8_t + */ +static inline uint8_t ma7xx_read_reg(const Sensor *s, uint8_t reg) +{ + const MA7xxSensor *ms = (const MA7xxSensor *)s; + uint16_t cmd[2] = {MA_CMD_READ | (reg << 8), 0}; + uint16_t result = ssp_write_multi(ms->config.ssp_struct, cmd, 2u); + if (result != 0) + { + return false; + } + return ssp_read_one(ms->config.ssp_struct) >> 8; +} \ No newline at end of file diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 389fdd16..9c3ab04d 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -1,7 +1,22 @@ +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . -#include #include +#include static uint32_t sensor_id = 1; // 0 implicitly treated as missing value @@ -10,71 +25,11 @@ uint32_t get_next_sensor_id(void) return sensor_id++; } -bool sensor_init_with_defaults(Sensor *s) -{ - // Here we check the sensor connection, either - // ONBOARD, EXTERNAL_SPI or EXTERNAL_HALL. We need - // to do this here in order to set up the config - // struct accordingly. - SensorConfig c; - sensor_connection_t connection = sensor_get_connection(s); - if (connection == SENSOR_CONNECTION_ONBOARD_SPI) - { - c.type = SENSOR_TYPE_MA7XX; - c.ss_config.ma7xx_config.ssp_port = ONBOARD_SENSOR_SSP_PORT; - } - else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) - { - c.type = SENSOR_TYPE_MA7XX; - c.ss_config.ma7xx_config.ssp_port = EXTERNAL_SENSOR_SSP_PORT; - } - else if (connection == SENSOR_CONNECTION_HALL) - { - c.type = SENSOR_TYPE_HALL; - } - else - { - return false; - } - return sensor_init_with_config(s, &c); -} -bool sensor_init_with_config(Sensor *s, SensorConfig *c) -{ - if (s->initialized == false) - { -#ifdef BOARD_REV_R5 - if (SENSOR_TYPE_MA7XX == c->type) - { -#endif - return ma7xx_init_with_config(s, &(c->ss_config)); -#ifdef BOARD_REV_R5 - } - else if (SENSOR_TYPE_HALL == c->type) - { - return hall_init_with_config(s, &(c->ss_config)); - } -#endif - // ... (similar branches for other sensor types) - } - return false; -} void sensor_deinit(Sensor *s) { -#ifdef BOARD_REV_R5 - if (SENSOR_TYPE_MA7XX == s->config.type) - { -#endif - ma7xx_deinit(s); -#ifdef BOARD_REV_R5 - } - else if (SENSOR_TYPE_HALL == s->config.type) - { - hall_deinit(s); - } -#endif - // ... (similar branches for other sensor types) + s->deinit_func(s); } void sensor_reset(Sensor *s) @@ -82,55 +37,3 @@ void sensor_reset(Sensor *s) s->reset_func(s); } -void sensors_init_with_defaults(void) -{ - sensor_init_with_defaults(&(sensors[0])); - commutation_sensor_p = &(sensors[0]); - position_sensor_p = &(sensors[0]); -} - -void sensors_get_config(SensorsConfig *config_) -{ - for (int i=0; iconfig[i] = sensors[i].config; - } - config_->commutation_connection = sensor_get_connection(commutation_sensor_p); - config_->position_connection = sensor_get_connection(position_sensor_p); -} - -void sensors_restore_config(SensorsConfig *config_) -{ - for (int i=0; iconfig[i]; - } - commutation_sensor_p = config_->commutation_connection + sensors; - sensor_init_with_config(commutation_sensor_p, &(commutation_sensor_p->config)); - position_sensor_p = config_->position_connection + sensors; - if (commutation_sensor_p != position_sensor_p) - { - sensor_init_with_config(position_sensor_p, &(position_sensor_p->config)); - } -} - -void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) -{ - if (controller_get_state() == STATE_IDLE - && new_connection != sensor_get_connection(*target_sensor) - && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) - { - if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) - { - sensor_deinit(*target_sensor); - } - - *target_sensor = &(sensors[new_connection]); - - if (new_connection != sensor_get_connection(*other_sensor)) - { - sensor_init_with_defaults(*target_sensor); - } - } -} - diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index cb4b9298..1380748f 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -18,9 +18,8 @@ #pragma once #include +#include #include -#include -#include #define SENSOR_COUNT 3 @@ -35,19 +34,17 @@ #endif typedef struct Sensor Sensor; -typedef union SensorSpecificConfig SensorSpecificConfig; typedef struct SensorConfig SensorConfig; -typedef union SensorSpecificState SensorSpecificState; -typedef struct SensorsConfig SensorsConfig; typedef struct Observer Observer; -typedef bool (*sensor_is_calibrated_func_t)(Sensor *); +typedef bool (*sensor_is_calibrated_func_t)(const Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); -typedef int16_t (*sensor_get_angle_func_t)(Sensor *); +typedef int16_t (*sensor_get_angle_func_t)(const Sensor *); +typedef void (*sensor_deinit_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); -typedef void (*sensor_prepare_func_t)(Sensor *); +typedef void (*sensor_prepare_func_t)(const Sensor *); typedef void (*sensor_update_func_t)(Sensor *, bool); -typedef uint8_t (*sensor_get_errors_func_t)(Sensor *); +typedef uint8_t (*sensor_get_errors_func_t)(const Sensor *); typedef enum { SENSOR_TYPE_INVALID = 0, @@ -65,32 +62,17 @@ typedef enum { SENSOR_CONNECTION_MAX } sensor_connection_t; -union SensorSpecificConfig { - MA7xxSensorConfig ma7xx_config; - HallSensorConfig hall_config; - // AS504xSensorConfig as5047_config; - // AMT22SensorConfig amt22_config; -}; - struct SensorConfig { - SensorSpecificConfig ss_config; uint32_t id; sensor_type_t type; }; -union SensorSpecificState{ - MA7xxSensorState ma7xx_state; - HallSensorState hall_state; - // AS504xSensorState as5047_state; - // AMT22SensorState amt22_state; -}; - struct Sensor { // typedefd earlier SensorConfig config; - SensorSpecificState state; sensor_is_calibrated_func_t is_calibrated_func; sensor_calibrate_func_t calibrate_func; sensor_get_angle_func_t get_angle_func; + sensor_deinit_func_t deinit_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; sensor_prepare_func_t prepare_func; @@ -99,43 +81,10 @@ struct Sensor { // typedefd earlier bool current : 1; }; -struct SensorsConfig { - SensorConfig config[SENSOR_COUNT]; - sensor_connection_t commutation_connection; - sensor_connection_t position_connection; -}; - -// The sequence in the `sensors` array is determined so that -// 0: onboard sensor, 1: external spi and 3: hall sensor -// index same as the members of `sensor_connection_t` -Sensor sensors[SENSOR_COUNT]; - -Sensor *commutation_sensor_p; -Sensor *position_sensor_p; - uint32_t get_next_sensor_id(void); -bool sensor_init_with_defaults(Sensor *s); -bool sensor_init_with_config(Sensor *s, SensorConfig *c); void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); -void sensors_init_with_defaults(void); -void sensors_get_config(SensorsConfig *config_); -void sensors_restore_config(SensorsConfig *config_); - -static inline sensor_connection_t sensor_get_connection(Sensor *sensor) -{ - // Derive pointer array offset - return sensor - sensors; -} - -void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection); - -static inline int16_t sensor_get_angle(Sensor *s) -{ - return s->get_angle_func(s); -} - static inline void sensor_update(Sensor *s, bool check_error) { if (s->current == false) @@ -145,6 +94,11 @@ static inline void sensor_update(Sensor *s, bool check_error) } } +static inline void sensor_invalidate(Sensor *s) +{ + s->current = false; +} + static inline uint16_t sensor_get_ticks(Sensor *s) { #ifdef BOARD_REV_R5 if (SENSOR_TYPE_MA7XX == s->config.type) { @@ -172,31 +126,6 @@ static inline float sensor_ticks_to_eangle(Sensor *s) #endif } -static inline sensor_type_t sensor_get_type(Sensor *s) -{ - return s->config.type; -} - -static inline bool sensor_get_calibrated(Sensor *s) -{ - return s->is_calibrated_func(s); -} - -static inline bool sensor_calibrate(Sensor *s, Observer *o) -{ - return s->calibrate_func(s, o); -} - -static inline uint8_t sensor_get_errors(Sensor *s) -{ - return s->get_errors_func(s); -} - -static inline void sensor_invalidate(Sensor *s) -{ - s->current = false; -} - static inline void sensor_prepare(Sensor *s) { if (s->prepare_func && s->current == false) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c new file mode 100644 index 00000000..b8103b48 --- /dev/null +++ b/firmware/src/sensor/sensors.c @@ -0,0 +1,117 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#include +#include + +bool sensor_init_with_defaults(Sensor *s) +{ + // Here we check the sensor connection, either + // ONBOARD, EXTERNAL_SPI or EXTERNAL_HALL. We need + // to do this here in order to set up the config + // struct accordingly. + sensor_connection_t connection = sensor_get_connection(s); + if (connection == SENSOR_CONNECTION_ONBOARD_SPI) + { + return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT); + } + else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) + { + return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT); + } + else if (connection == SENSOR_CONNECTION_HALL) + { + return hall_init_with_defaults(s); + } + return false; +} + +void sensors_init_with_defaults(void) +{ + sensor_init_with_defaults(&(sensors[0].sensor)); + commutation_sensor_p = &(sensors[0].sensor); + position_sensor_p = &(sensors[0].sensor); +} + +void sensors_get_config(SensorsConfig *config_) +{ + // for (int i=0; iconfig[i] = sensors[i].config; + // } + // config_->commutation_connection = sensor_get_connection(commutation_sensor_p); + // config_->position_connection = sensor_get_connection(position_sensor_p); +} + +void sensors_restore_config(SensorsConfig *config_) +{ + // for (int i=0; iconfig[i]; + // } + // commutation_sensor_p = config_->commutation_connection + sensors; + // sensor_init_with_config(commutation_sensor_p, &(commutation_sensor_p->config)); + // position_sensor_p = config_->position_connection + sensors; + // if (commutation_sensor_p != position_sensor_p) + // { + // sensor_init_with_config(position_sensor_p, &(position_sensor_p->config)); + // } +} + +// Interface functions + +void commutation_sensor_set_connection(sensor_connection_t new_connection) +{ + sensor_set_connection(&(commutation_sensor_p), &(position_sensor_p), new_connection); +} + +void position_sensor_set_connection(sensor_connection_t new_connection) +{ + sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); +} + +void sensor_external_spi_set_type(sensor_type_t type) +{ + if (controller_get_state() == STATE_IDLE + && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX + && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + { + sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type = type; + sensors_init_with_defaults(); + } +} + +void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) +{ + if (controller_get_state() == STATE_IDLE + && new_connection != sensor_get_connection(*target_sensor) + && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) + { + if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) + { + sensor_deinit(*target_sensor); + } + + *target_sensor = &(sensors[new_connection].sensor); + + if (new_connection != sensor_get_connection(*other_sensor)) + { + sensor_init_with_defaults(*target_sensor); + } + } +} \ No newline at end of file diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h new file mode 100644 index 00000000..c6a5a712 --- /dev/null +++ b/firmware/src/sensor/sensors.h @@ -0,0 +1,137 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#pragma once + +#include +#include +#include + +typedef struct Observer Observer; + +extern Observer commutation_observer; +extern Observer position_observer; + +typedef union +{ + Sensor sensor; + MA7xxSensor ma7xx_sensor; + HallSensor hall_sensor; +} GenSensor; + +typedef union +{ + SensorConfig sensor_config; + MA7xxSensorConfig ma7xx_sensor_config; + HallSensorConfig hall_sensor_config; +} GenSensorConfig; + +typedef struct +{ + GenSensorConfig config[SENSOR_COUNT]; + sensor_connection_t commutation_connection; + sensor_connection_t position_connection; +} SensorsConfig; + +// The sequence in the `sensors` array is determined so that +// 0: onboard sensor, 1: external spi and 3: hall sensor +// index same as the members of `sensor_connection_t` +GenSensor sensors[SENSOR_COUNT]; + +Sensor *commutation_sensor_p; +Sensor *position_sensor_p; + +static inline sensor_connection_t sensor_get_connection(const Sensor *sensor) +{ + // Derive pointer array offset + const GenSensor *s = (const GenSensor *)sensor; + return s - sensors; +} + +void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection); + +bool sensor_init_with_defaults(Sensor *s); +void sensors_init_with_defaults(void); +void sensors_get_config(SensorsConfig *config_); +void sensors_restore_config(SensorsConfig *config_); + +// Interface functions + +static inline sensor_connection_t commutation_sensor_get_connection(void) +{ + return sensor_get_connection(commutation_sensor_p); +} + +void commutation_sensor_set_connection(sensor_connection_t new_connection); + +static inline sensor_connection_t position_sensor_get_connection(void) +{ + return sensor_get_connection(position_sensor_p); +} + +void position_sensor_set_connection(sensor_connection_t new_connection); + +static inline void sensors_reset(void) +{ + for (int i=0; icalibrate_func(commutation_sensor_p, &commutation_observer); + position_sensor_p->calibrate_func(position_sensor_p, &position_observer); +} + +static inline sensor_type_t sensor_external_spi_get_type(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type; +} + +void sensor_external_spi_set_type(sensor_type_t type); + +static inline bool sensor_onboard_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].sensor.is_calibrated_func(&(sensors[SENSOR_CONNECTION_ONBOARD_SPI].sensor)); +} + +static inline bool sensor_external_spi_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.is_calibrated_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); +} + +static inline bool sensor_hall_get_is_calibrated(void) +{ + return sensors[SENSOR_CONNECTION_HALL].sensor.is_calibrated_func(&(sensors[SENSOR_CONNECTION_HALL].sensor)); +} + +static inline uint8_t sensor_onboard_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_ONBOARD_SPI].sensor.get_errors_func(&(sensors[SENSOR_CONNECTION_ONBOARD_SPI].sensor)); +} + +static inline uint8_t sensor_external_spi_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.get_errors_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); +} + +static inline uint8_t sensor_hall_get_errors(void) +{ + return sensors[SENSOR_CONNECTION_HALL].sensor.get_errors_func(&(sensors[SENSOR_CONNECTION_HALL].sensor)); +} diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index e1c26132..f6251634 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -150,8 +150,8 @@ TM_RAMFUNC float system_get_Vbus(void) TM_RAMFUNC bool system_get_calibrated(void) { return (motor_get_calibrated() && - sensor_get_calibrated(commutation_sensor_p) && - sensor_get_calibrated(position_sensor_p)); + commutation_sensor_p->is_calibrated_func(commutation_sensor_p) && + position_sensor_p->is_calibrated_func(position_sensor_p)); } TM_RAMFUNC uint8_t system_get_errors(void) @@ -162,8 +162,8 @@ TM_RAMFUNC uint8_t system_get_errors(void) TM_RAMFUNC bool errors_exist(void) { return (controller_get_errors() || - sensor_get_errors(commutation_sensor_p) || - sensor_get_errors(position_sensor_p) | + commutation_sensor_p->get_errors_func(commutation_sensor_p) || + position_sensor_p->get_errors_func(position_sensor_p) || motor_get_errors() || planner_get_errors() || system_get_errors()); From de23e093524b0317f8c647258a8a0d44233ee752 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Jan 2024 13:36:53 +0200 Subject: [PATCH 039/219] make offset and pole pair calibration sensor-generic --- firmware/src/sensor/hall.c | 2 +- firmware/src/sensor/ma7xx.c | 123 ++-------------------------------- firmware/src/sensor/ma7xx.h | 32 +-------- firmware/src/sensor/sensor.c | 117 ++++++++++++++++++++++++++++++-- firmware/src/sensor/sensor.h | 26 +++++-- firmware/src/sensor/sensors.c | 15 +++-- firmware/src/sensor/sensors.h | 5 +- 7 files changed, 154 insertions(+), 166 deletions(-) diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 354a263a..46ee8beb 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -33,7 +33,7 @@ bool hall_init_with_defaults(Sensor *s) bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) { HallSensor *ms = (HallSensor *)s; - ms->base.get_angle_func = hall_get_angle; + ms->base.get_raw_angle_func = hall_get_angle; ms->base.update_func = hall_update; ms->base.reset_func = hall_reset; ms->base.deinit_func = hall_deinit; diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 09301e95..de364f1f 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -23,17 +23,18 @@ #include #include -bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port) +bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { MA7xxSensorConfig c = {0}; c.ssp_port = port; + c.ssp_struct = ssp_struct; return ma7xx_init_with_config(s, &c); } bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c) { MA7xxSensor *ms = (MA7xxSensor *)s; - ms->base.get_angle_func = ma7xx_get_angle_rectified; + ms->base.get_raw_angle_func = ma7xx_get_raw_angle; ms->base.update_func = ma7xx_update; ms->base.prepare_func = ma7xx_send_angle_cmd; ms->base.reset_func = ma7xx_reset; @@ -57,124 +58,10 @@ void ma7xx_deinit(Sensor *s) void ma7xx_reset(Sensor *s) { - MA7xxSensorConfig *c = &(((MA7xxSensor *)s)->config); - (void)memset(c->rec_table, 0, sizeof(c->rec_table)); - c->rec_calibrated = false; -} - -bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o) -{ - MA7xxSensor *ms = (MA7xxSensor *)s; - // Size below is an arbitrary large number ie > ECN_SIZE * npp - float error_ticks[ECN_SIZE * 20]; - const int16_t npp = motor_get_pole_pairs(); - const int16_t n = ECN_SIZE * npp; - const int16_t nconv = 100; - const float delta = 2 * PI * npp / (n * nconv); - const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); - float e_pos_ref = 0.f; - const float I_setpoint = motor_get_I_cal(); - int16_t *lut = ms->config.rec_table; - set_epos_and_wait(e_pos_ref, I_setpoint); - wait_pwm_cycles(5000); - const uint16_t offset_idx = ma7xx_get_angle_raw(s) >> (ENCODER_BITS - ECN_BITS); - - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref += delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(o); - error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - for (uint32_t i = 0; i < n; i++) - { - for (uint8_t j = 0; j < nconv; j++) - { - e_pos_ref -= delta; - set_epos_and_wait(e_pos_ref, I_setpoint); - } - wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(o); - error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); - } - gate_driver_set_duty_cycle(&three_phase_zero); - gate_driver_disable(); - - // FIR filtering and map measurements to lut - for (int16_t i=0; i n - 1) - { - read_idx -= n; - } - acc += error_ticks[read_idx]; - } - acc = acc / ((float)(ECN_SIZE * 2)); - int16_t write_idx = i + offset_idx; - if (write_idx > (ECN_SIZE - 1)) - { - write_idx -= ECN_SIZE; - } - lut[write_idx] = (int16_t)acc; - } - wait_pwm_cycles(5000); - ms->config.rec_calibrated = true; - return true; -} - -bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) -{ - const float epos_target = CAL_PHASE_TURNS * TWOPI; - const float I_setpoint = motor_get_I_cal(); - bool success = true; - set_epos_and_wait(0, I_setpoint); - wait_pwm_cycles(CAL_STAY_LEN); - const float epos_start = observer_get_pos_estimate(o); - float epos_end = 0; - // Move to target epos - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(epos_target * ((float)i / CAL_DIR_LEN), I_setpoint); - } - set_epos_and_wait(epos_target, I_setpoint); - wait_pwm_cycles(CAL_STAY_LEN); - // Find pole pairs - if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; - return false; - } - else - { - epos_end = observer_get_pos_estimate(o); - } - // Move back to start epos - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(epos_target * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); - } - gate_driver_set_duty_cycle(&three_phase_zero); - if (success && epos_start > epos_end) - { - motor_set_phases_swapped(true); - } - return success; + sensor_reset(s); } bool ma7xx_calibrate(Sensor *s, Observer *o) { - return ma7xx_calibrate_direction_and_pole_pair_count(s, o) && ma7xx_calibrate_offset_and_rectification(s, o); + return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); } diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index c7b32b82..2f57ab25 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -23,12 +23,6 @@ typedef struct Observer Observer; -#define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) -#define MAX_ALLOWED_DELTA_ADD (MAX_ALLOWED_DELTA + ENCODER_TICKS) -#define MAX_ALLOWED_DELTA_SUB (MAX_ALLOWED_DELTA - ENCODER_TICKS) -#define MIN_ALLOWED_DELTA_ADD (-MAX_ALLOWED_DELTA + ENCODER_TICKS) -#define MIN_ALLOWED_DELTA_SUB (-MAX_ALLOWED_DELTA - ENCODER_TICKS) - typedef enum { MA_CMD_NOP = 0x0000, MA_CMD_ANGLE = 0x0000, @@ -40,8 +34,6 @@ typedef struct { SSP_TYPE ssp_port; PAC55XX_SSP_TYPEDEF *ssp_struct; - int16_t rec_table[ECN_SIZE]; - bool rec_calibrated; } MA7xxSensorConfig; typedef struct @@ -52,22 +44,15 @@ typedef struct int16_t angle; } MA7xxSensor; -bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port); +bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); -bool ma7xx_calibrate_offset_and_rectification(Sensor *s, Observer *o); -bool ma7xx_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); bool ma7xx_calibrate(Sensor *s, Observer *o); static inline bool ma7xx_rec_is_calibrated(const Sensor *s) { - return ((const MA7xxSensor *)s)->config.rec_calibrated; -} - -static inline int16_t *ma7xx_get_rec_table_ptr(Sensor *s) -{ - return ((MA7xxSensor *)s)->config.rec_table; + return s->config.rec_calibrated; } static inline uint8_t ma7xx_get_errors(const Sensor *s) @@ -80,22 +65,11 @@ static inline void ma7xx_send_angle_cmd(const Sensor *s) ssp_write_one(((const MA7xxSensor *)s)->config.ssp_struct, MA_CMD_ANGLE); } -static inline int16_t ma7xx_get_angle_raw(const Sensor *s) +static inline int16_t ma7xx_get_raw_angle(const Sensor *s) { return ((const MA7xxSensor *)s)->angle; } -static inline int16_t ma7xx_get_angle_rectified(const Sensor *s) -{ - const MA7xxSensor *ms = (const MA7xxSensor *)s; - const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); - const int16_t angle = ms->angle; - const int16_t off_1 = ms->config.rec_table[angle>>offset_bits]; - const int16_t off_2 = ms->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); - return angle + off_interp; -} - static inline void ma7xx_update(Sensor *s, bool check_error) { MA7xxSensor *ms = (MA7xxSensor *)s; diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 9c3ab04d..87795bbe 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -16,6 +16,7 @@ // * along with this program. If not, see . #include +#include #include static uint32_t sensor_id = 1; // 0 implicitly treated as missing value @@ -25,15 +26,119 @@ uint32_t get_next_sensor_id(void) return sensor_id++; } - - -void sensor_deinit(Sensor *s) +void sensor_reset(Sensor *s) { - s->deinit_func(s); + (void)memset(s->config.rec_table, 0, sizeof(s->config.rec_table)); + s->config.rec_calibrated = false; } -void sensor_reset(Sensor *s) +bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) { - s->reset_func(s); + // Size below is an arbitrary large number ie > ECN_SIZE * npp + float error_ticks[ECN_SIZE * 20]; + const int16_t npp = motor_get_pole_pairs(); + const int16_t n = ECN_SIZE * npp; + const int16_t nconv = 100; + const float delta = 2 * PI * npp / (n * nconv); + const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); + float e_pos_ref = 0.f; + const float I_setpoint = motor_get_I_cal(); + int16_t *lut = s->config.rec_table; + set_epos_and_wait(e_pos_ref, I_setpoint); + wait_pwm_cycles(5000); + const uint16_t offset_idx = (s->get_raw_angle_func(s)) >> (ENCODER_BITS - ECN_BITS); + + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref += delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + wait_for_control_loop_interrupt(); + const float pos_meas = observer_get_pos_estimate(o); + error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + for (uint32_t i = 0; i < n; i++) + { + for (uint8_t j = 0; j < nconv; j++) + { + e_pos_ref -= delta; + set_epos_and_wait(e_pos_ref, I_setpoint); + } + wait_for_control_loop_interrupt(); + const float pos_meas = observer_get_pos_estimate(o); + error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + } + gate_driver_set_duty_cycle(&three_phase_zero); + gate_driver_disable(); + + // FIR filtering and map measurements to lut + for (int16_t i=0; i n - 1) + { + read_idx -= n; + } + acc += error_ticks[read_idx]; + } + acc = acc / ((float)(ECN_SIZE * 2)); + int16_t write_idx = i + offset_idx; + if (write_idx > (ECN_SIZE - 1)) + { + write_idx -= ECN_SIZE; + } + lut[write_idx] = (int16_t)acc; + } + wait_pwm_cycles(5000); + s->config.rec_calibrated = true; + return true; } +bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) +{ + const float epos_target = CAL_PHASE_TURNS * TWOPI; + const float I_setpoint = motor_get_I_cal(); + bool success = true; + set_epos_and_wait(0, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + const float epos_start = observer_get_pos_estimate(o); + float epos_end = 0; + // Move to target epos + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(epos_target * ((float)i / CAL_DIR_LEN), I_setpoint); + } + set_epos_and_wait(epos_target, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + // Find pole pairs + if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; + return false; + } + else + { + epos_end = observer_get_pos_estimate(o); + } + // Move back to start epos + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(epos_target * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); + } + gate_driver_set_duty_cycle(&three_phase_zero); + if (success && epos_start > epos_end) + { + motor_set_phases_swapped(true); + } + return success; +} \ No newline at end of file diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 1380748f..d1648c1a 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -21,7 +21,11 @@ #include #include -#define SENSOR_COUNT 3 +#define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) +#define MAX_ALLOWED_DELTA_ADD (MAX_ALLOWED_DELTA + ENCODER_TICKS) +#define MAX_ALLOWED_DELTA_SUB (MAX_ALLOWED_DELTA - ENCODER_TICKS) +#define MIN_ALLOWED_DELTA_ADD (-MAX_ALLOWED_DELTA + ENCODER_TICKS) +#define MIN_ALLOWED_DELTA_SUB (-MAX_ALLOWED_DELTA - ENCODER_TICKS) #if defined BOARD_REV_R3 #define ONB§OARD_SENSOR_SSP_PORT SSPD @@ -39,7 +43,7 @@ typedef struct Observer Observer; typedef bool (*sensor_is_calibrated_func_t)(const Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); -typedef int16_t (*sensor_get_angle_func_t)(const Sensor *); +typedef int16_t (*sensor_get_raw_angle_func_t)(const Sensor *); typedef void (*sensor_deinit_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); typedef void (*sensor_prepare_func_t)(const Sensor *); @@ -65,13 +69,15 @@ typedef enum { struct SensorConfig { uint32_t id; sensor_type_t type; + int16_t rec_table[ECN_SIZE]; + bool rec_calibrated; }; struct Sensor { // typedefd earlier SensorConfig config; sensor_is_calibrated_func_t is_calibrated_func; sensor_calibrate_func_t calibrate_func; - sensor_get_angle_func_t get_angle_func; + sensor_get_raw_angle_func_t get_raw_angle_func; sensor_deinit_func_t deinit_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; @@ -82,8 +88,19 @@ struct Sensor { // typedefd earlier }; uint32_t get_next_sensor_id(void); -void sensor_deinit(Sensor *s); void sensor_reset(Sensor *s); +bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); +bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); + +static inline int16_t sensor_get_angle_rectified(const Sensor *s) +{ + const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); + const int16_t angle = s->get_raw_angle_func(s); + const int16_t off_1 = s->config.rec_table[angle>>offset_bits]; + const int16_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + return angle + off_interp; +} static inline void sensor_update(Sensor *s, bool check_error) { @@ -133,3 +150,4 @@ static inline void sensor_prepare(Sensor *s) s->prepare_func(s); } } + diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index b8103b48..f0358348 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -27,11 +27,11 @@ bool sensor_init_with_defaults(Sensor *s) sensor_connection_t connection = sensor_get_connection(s); if (connection == SENSOR_CONNECTION_ONBOARD_SPI) { - return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT); + return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); } else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) { - return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT); + return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); } else if (connection == SENSOR_CONNECTION_HALL) { @@ -53,8 +53,8 @@ void sensors_get_config(SensorsConfig *config_) // { // config_->config[i] = sensors[i].config; // } - // config_->commutation_connection = sensor_get_connection(commutation_sensor_p); - // config_->position_connection = sensor_get_connection(position_sensor_p); + config_->commutation_connection = sensor_get_connection(commutation_sensor_p); + config_->position_connection = sensor_get_connection(position_sensor_p); } void sensors_restore_config(SensorsConfig *config_) @@ -90,7 +90,8 @@ void sensor_external_spi_set_type(sensor_type_t type) && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) { - sensor_deinit(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); + Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); + s->deinit_func(s); sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type = type; sensors_init_with_defaults(); } @@ -104,7 +105,7 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor { if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) { - sensor_deinit(*target_sensor); + (*target_sensor)->deinit_func(*target_sensor); } *target_sensor = &(sensors[new_connection].sensor); @@ -114,4 +115,4 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor sensor_init_with_defaults(*target_sensor); } } -} \ No newline at end of file +} diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index c6a5a712..427e5619 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -21,6 +21,8 @@ #include #include +#define SENSOR_COUNT 3 + typedef struct Observer Observer; extern Observer commutation_observer; @@ -89,7 +91,8 @@ static inline void sensors_reset(void) { for (int i=0; ireset_func(s); } } From 6a96b18757119645051d723451addc34fc1882d1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Jan 2024 13:37:07 +0200 Subject: [PATCH 040/219] add as5047 sensor --- firmware/src/sensor/as5047.c | 67 +++++++++++++++++++++++++++ firmware/src/sensor/as5047.h | 87 ++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 firmware/src/sensor/as5047.c create mode 100644 firmware/src/sensor/as5047.h diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c new file mode 100644 index 00000000..280da790 --- /dev/null +++ b/firmware/src/sensor/as5047.c @@ -0,0 +1,67 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#include +#include +#include +#include +#include +#include +#include + +bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { + AS5047PSensorConfig c = {0}; + c.ssp_port = port; + c.ssp_struct = ssp_struct; + return as5047p_init_with_config(s, &c); +} + +bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { + AS5047PSensor *as = (AS5047PSensor *)s; + as->base.get_raw_angle_func = ma7xx_get_raw_angle; + as->base.update_func = as5047p_update; + as->base.prepare_func = as5047p_send_angle_cmd; + as->base.reset_func = as5047p_reset; + as->base.deinit_func = as5047p_deinit; + as->base.get_errors_func = as5047p_get_errors; + as->base.is_calibrated_func = as5047p_is_calibrated; + as->base.calibrate_func = as5047p_calibrate; + as->base.config.type = SENSOR_TYPE_AS5047; + as->config = *c; + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 0, 0); + delay_us(10000); // Example delay, adjust based on AS5047P datasheet + + as5047p_send_angle_cmd(s); + as5047p_update(s, false); + + return true; +} + +void as5047p_deinit(Sensor *s) +{ + ssp_deinit(((AS5047PSensor *)s)->config.ssp_port); +} + +void as5047p_reset(Sensor *s) +{ + sensor_reset(s); +} + +bool as5047p_calibrate(Sensor *s, Observer *o) +{ + return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); +} diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h new file mode 100644 index 00000000..c18910cb --- /dev/null +++ b/firmware/src/sensor/as5047.h @@ -0,0 +1,87 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#pragma once + +#include +#include +#include + +typedef struct Observer Observer; + +typedef enum { + AS5047P_CMD_NOP = 0x0000, + AS5047P_CMD_READ_ANGLE = 0x3FFF // Adjust based on the AS5047P datasheet +} AS5047PCommand; + +typedef struct +{ + SSP_TYPE ssp_port; + PAC55XX_SSP_TYPEDEF *ssp_struct; + // Add any additional configuration parameters needed for AS5047P +} AS5047PSensorConfig; + +typedef struct +{ + Sensor base; + AS5047PSensorConfig config; + uint8_t errors; + uint16_t angle; +} AS5047PSensor; + +bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); +bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); +void as5047p_deinit(Sensor *s); +void as5047p_reset(Sensor *s); +bool as5047p_calibrate(Sensor *s, Observer *o); + +bool as5047p_is_calibrated(const Sensor *s) +{ + return s->config.rec_calibrated; +} + +static inline uint8_t as5047p_get_errors(const Sensor *s) +{ + return ((const AS5047PSensor *)s)->errors; +} + +static inline void as5047p_send_angle_cmd(const Sensor *s) +{ + ssp_write_one(((const AS5047PSensor *)s)->config.ssp_struct, AS5047P_CMD_READ_ANGLE); +} + +static inline uint16_t as5047p_get_raw_angle(const Sensor *s) +{ + return ((const AS5047PSensor *)s)->angle; +} + +static inline void as5047p_update(Sensor *s, bool check_error) +{ + AS5047PSensor *as = (AS5047PSensor *)s; + const int16_t angle = ssp_read_one(as->config.ssp_struct) & 0x3FFF; // Mask to get the angle value + if (check_error) + { + const int16_t delta = as->angle - angle; + if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && + ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && + ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + { + as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; + } + } + as->angle = angle; +} \ No newline at end of file From ab7998df91a74ed6c4bfbf820c4e360f5cbf4f84 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Jan 2024 13:37:24 +0200 Subject: [PATCH 041/219] minor fixes --- avlos_config.yaml | 2 +- firmware/src/common.h | 16 ++++++++-------- firmware/src/observer/observer.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/avlos_config.yaml b/avlos_config.yaml index c3cc5ec5..531bcc84 100644 --- a/avlos_config.yaml +++ b/avlos_config.yaml @@ -13,7 +13,7 @@ generators: - - src/adc/adc.h - src/system/system.h - - src/sensor/iface.h + - src/sensor/sensors.h - src/observer/observer.h - src/motor/motor.h - src/scheduler/scheduler.h diff --git a/firmware/src/common.h b/firmware/src/common.h index 2096a6b6..8668bc12 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -89,14 +89,6 @@ #define ERROR_FLAG_MAX_SIZE (5u) -#define ENCODER_BITS (13) -#define ENCODER_TICKS (1 << ENCODER_BITS) -#define ENCODER_TICKS_FLOAT ((float)(ENCODER_TICKS)) - -#define HALL_SECTORS (6) -#define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) -#define CAL_DIR_LEN_PER_SECTOR (CAL_DIR_LEN / HALL_SECTORS) - #if defined BOARD_REV_R32 || defined BOARD_REV_R33 #define BOARD_REV_R3 #elif defined BOARD_REV_R50 || BOARD_REV_R51 || defined BOARD_REV_R52 @@ -133,6 +125,14 @@ #define TIMER_FREQ_HZ (ACLK_FREQ_HZ >> TXCTL_PS_DIV) +#define ENCODER_BITS (13) +#define ENCODER_TICKS (1 << ENCODER_BITS) +#define ENCODER_TICKS_FLOAT ((float)(ENCODER_TICKS)) + +#define HALL_SECTORS (6) +#define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) +#define CAL_DIR_LEN_PER_SECTOR (CAL_DIR_LEN / HALL_SECTORS) + static const float one_by_sqrt3 = 0.57735026919f; static const float two_by_sqrt3 = 1.15470053838f; static const float threehalfpi = 4.7123889f; diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 2a51edbf..50440ff9 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -66,7 +66,7 @@ static inline void observer_update(Observer *o) { const float sensor_ticks = sensor_get_ticks(o->sensor_ptr); const float sensor_half_ticks = sensor_ticks * 0.5f; - const int16_t angle_meas = o->sensor_ptr->get_angle_func(o->sensor_ptr); + const int16_t angle_meas = sensor_get_angle_rectified(o->sensor_ptr); const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; if (delta_pos_meas < -sensor_half_ticks) From 89e8209653f6c3147c4ef8a5e49c8d0283724502 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 9 Jan 2024 02:33:50 +0200 Subject: [PATCH 042/219] set initialize variable on init --- firmware/src/sensor/as5047.c | 3 ++- firmware/src/sensor/hall.c | 2 ++ firmware/src/sensor/ma7xx.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 280da790..c72bfdf9 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -47,13 +47,14 @@ bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { as5047p_send_angle_cmd(s); as5047p_update(s, false); - + s->initialized = true; return true; } void as5047p_deinit(Sensor *s) { ssp_deinit(((AS5047PSensor *)s)->config.ssp_port); + s->initialized = false; } void as5047p_reset(Sensor *s) diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 46ee8beb..4c4f4a40 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -48,6 +48,7 @@ bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) pac5xxx_tile_register_write(ADDR_CFGAIO7, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO8, AIO6789_IO_MODE | AIO_INPUT); pac5xxx_tile_register_write(ADDR_CFGAIO9, AIO6789_IO_MODE | AIO_INPUT); + s->initialized = true; return true; } @@ -57,6 +58,7 @@ void hall_deinit(Sensor *s) pac5xxx_tile_register_write(ADDR_CFGAIO7, ms->hw_defaults[0]); pac5xxx_tile_register_write(ADDR_CFGAIO8, ms->hw_defaults[1]); pac5xxx_tile_register_write(ADDR_CFGAIO9, ms->hw_defaults[2]); + s->initialized = false; } void hall_reset(Sensor *s) diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index de364f1f..cfe5cc19 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -48,12 +48,14 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); ma7xx_update(s, false); + s->initialized = true; return true; } void ma7xx_deinit(Sensor *s) { ssp_deinit(((MA7xxSensor *)s)->config.ssp_port); + s->initialized = false; } void ma7xx_reset(Sensor *s) From ca0b0371a1b530ad0b46717f05ed28165d76735f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 9 Jan 2024 02:34:08 +0200 Subject: [PATCH 043/219] default values for the sensors struct --- firmware/src/sensor/sensors.c | 42 +++++++++++++++++++++++++++++++++++ firmware/src/sensor/sensors.h | 4 ++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index f0358348..b4b86e09 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -18,6 +18,48 @@ #include #include +GenSensor sensors[SENSOR_COUNT] = { + {.sensor = { + .config = { .type = SENSOR_TYPE_MA7XX }, + .is_calibrated_func = ma7xx_rec_is_calibrated, + .calibrate_func = ma7xx_calibrate, + .get_raw_angle_func = ma7xx_get_raw_angle, + .deinit_func = ma7xx_deinit, + .reset_func = ma7xx_reset, + .update_func = ma7xx_update, + .prepare_func = ma7xx_send_angle_cmd, + .get_errors_func = ma7xx_get_errors, + .initialized = false, + .current = false + }}, + {.sensor = { + .config = { .type = SENSOR_TYPE_MA7XX }, + .is_calibrated_func = ma7xx_rec_is_calibrated, + .calibrate_func = ma7xx_calibrate, + .get_raw_angle_func = ma7xx_get_raw_angle, + .deinit_func = ma7xx_deinit, + .reset_func = ma7xx_reset, + .update_func = ma7xx_update, + .prepare_func = ma7xx_send_angle_cmd, + .get_errors_func = ma7xx_get_errors, + .initialized = false, + .current = false + }}, + {.sensor = { + .config = { .type = SENSOR_TYPE_HALL }, + .is_calibrated_func = hall_sector_map_is_calibrated, + .calibrate_func = hall_calibrate_sequence, + .get_raw_angle_func = hall_get_angle, + .deinit_func = hall_deinit, + .reset_func = hall_reset, + .update_func = hall_update, + .prepare_func = 0x0, + .get_errors_func = hall_get_errors, + .initialized = false, + .current = false + }} +}; + bool sensor_init_with_defaults(Sensor *s) { // Here we check the sensor connection, either diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 427e5619..a4582c80 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -50,9 +50,9 @@ typedef struct } SensorsConfig; // The sequence in the `sensors` array is determined so that -// 0: onboard sensor, 1: external spi and 3: hall sensor +// 0: onboard sensor, 1: external spi and 2: hall sensor // index same as the members of `sensor_connection_t` -GenSensor sensors[SENSOR_COUNT]; +extern GenSensor sensors[SENSOR_COUNT]; Sensor *commutation_sensor_p; Sensor *position_sensor_p; From 65e7b2692e11bddc3aed3d95c8b24c0530a883d5 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 9 Jan 2024 02:34:16 +0200 Subject: [PATCH 044/219] fix timer frequency --- firmware/src/timer/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/timer/timer.c b/firmware/src/timer/timer.c index 932b9cd5..95c317a3 100644 --- a/firmware/src/timer/timer.c +++ b/firmware/src/timer/timer.c @@ -49,7 +49,7 @@ void timers_init(void) // Configure timer clock input for ACLK, divider pac5xxx_timer_clock_config(TimerB, TXCTL_CS_ACLK, TXCTL_PS_DIV); // Configure timer frequency and count mode - pac5xxx_timer_base_config(TimerB, (TIMER_FREQ_HZ/(PWM_FREQ_HZ/100)), AUTO_RELOAD, + pac5xxx_timer_base_config(TimerB, (TIMER_FREQ_HZ/(PWM_FREQ_HZ*100)), AUTO_RELOAD, TxCTL_MODE_UPDOWN, TIMER_SLAVE_SYNC_DISABLE); PAC55XX_TIMERB->CCTR4.CTR = 0; From 32c7f79bb7dcf0ca3454138c57302510e6f3e761 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 10 Jan 2024 16:26:25 +0200 Subject: [PATCH 045/219] Change sensor bits to 16 --- firmware/src/common.h | 2 +- firmware/src/controller/homing_planner.c | 8 +++---- firmware/src/motor/motor.c | 2 +- firmware/src/motor/motor.h | 2 +- firmware/src/sensor/as5047.c | 19 +++++++++-------- firmware/src/sensor/hall.c | 17 ++++++++------- firmware/src/sensor/ma7xx.c | 19 +++++++++-------- firmware/src/sensor/ma7xx.h | 2 +- firmware/src/sensor/sensor.h | 27 +++--------------------- firmware/src/sensor/sensors.c | 12 +++-------- 10 files changed, 43 insertions(+), 67 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index 8668bc12..a92e17c7 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -125,7 +125,7 @@ #define TIMER_FREQ_HZ (ACLK_FREQ_HZ >> TXCTL_PS_DIV) -#define ENCODER_BITS (13) +#define ENCODER_BITS (16) #define ENCODER_TICKS (1 << ENCODER_BITS) #define ENCODER_TICKS_FLOAT ((float)(ENCODER_TICKS)) diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index 0feb9667..f9393963 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -8,12 +8,12 @@ #include static HomingPlannerConfig config = { - .homing_velocity = -8192.0f, // ticks/s + .homing_velocity = ENCODER_TICKS_FLOAT, // ticks/s .max_homing_t = 20.0f, // s - .max_stay_vel = 4000.0f, // ticks/s - .max_stay_dpos = 1000.0f, // ticks + .max_stay_vel = (ENCODER_TICKS_FLOAT/2.0f), // ticks/s + .max_stay_dpos = (ENCODER_TICKS_FLOAT/8.0f), // ticks .max_stay_t = 1.0f, // s - .retract_distance = 1000.0f // ticks + .retract_distance = (ENCODER_TICKS_FLOAT/8.0f) // ticks }; static HomingPlannerState state = {0}; diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index c4814de3..8e5e6bad 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -166,7 +166,7 @@ bool motor_calibrate_inductance(void) return true; } -TM_RAMFUNC uint8_t motor_find_pole_pairs(uint16_t ticks, float mpos_start, float mpos_end, float epos_rad) +TM_RAMFUNC uint8_t motor_find_pole_pairs(uint32_t ticks, float mpos_start, float mpos_end, float epos_rad) { const float mpos_diff = our_fabsf(mpos_end - mpos_start); float mpos_diff_rad = TWOPI * mpos_diff / ticks; diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 51187ea5..7c00ffb7 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -79,7 +79,7 @@ bool motor_calibrate_resistance(void); bool motor_calibrate_inductance(void); uint8_t motor_get_pole_pairs(void); -uint8_t motor_find_pole_pairs(uint16_t ticks, float mpos_start, float mpos_end, float epos_rad); +uint8_t motor_find_pole_pairs(uint32_t ticks, float mpos_start, float mpos_end, float epos_rad); void motor_set_pole_pairs(uint8_t pairs); float motor_get_phase_resistance(void); diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index c72bfdf9..4f20028e 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -32,15 +32,16 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; - as->base.get_raw_angle_func = ma7xx_get_raw_angle; - as->base.update_func = as5047p_update; - as->base.prepare_func = as5047p_send_angle_cmd; - as->base.reset_func = as5047p_reset; - as->base.deinit_func = as5047p_deinit; - as->base.get_errors_func = as5047p_get_errors; - as->base.is_calibrated_func = as5047p_is_calibrated; - as->base.calibrate_func = as5047p_calibrate; - as->base.config.type = SENSOR_TYPE_AS5047; + s->get_raw_angle_func = ma7xx_get_raw_angle; + s->update_func = as5047p_update; + s->prepare_func = as5047p_send_angle_cmd; + s->reset_func = as5047p_reset; + s->deinit_func = as5047p_deinit; + s->get_errors_func = as5047p_get_errors; + s->is_calibrated_func = as5047p_is_calibrated; + s->calibrate_func = as5047p_calibrate; + s->config.type = SENSOR_TYPE_AS5047; + s->ticks = ENCODER_TICKS; as->config = *c; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 4c4f4a40..9458bef6 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -33,14 +33,15 @@ bool hall_init_with_defaults(Sensor *s) bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) { HallSensor *ms = (HallSensor *)s; - ms->base.get_raw_angle_func = hall_get_angle; - ms->base.update_func = hall_update; - ms->base.reset_func = hall_reset; - ms->base.deinit_func = hall_deinit; - ms->base.get_errors_func = hall_get_errors; - ms->base.is_calibrated_func = hall_sector_map_is_calibrated; - ms->base.calibrate_func = hall_calibrate_sequence; - ms->base.config.type = SENSOR_TYPE_HALL; + s->get_raw_angle_func = hall_get_angle; + s->update_func = hall_update; + s->reset_func = hall_reset; + s->deinit_func = hall_deinit; + s->get_errors_func = hall_get_errors; + s->is_calibrated_func = hall_sector_map_is_calibrated; + s->calibrate_func = hall_calibrate_sequence; + s->config.type = SENSOR_TYPE_HALL; + s->ticks = HALL_SECTORS; ms->config = *c; ms->hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); ms->hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index cfe5cc19..08e2d3c0 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -34,15 +34,16 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c) { MA7xxSensor *ms = (MA7xxSensor *)s; - ms->base.get_raw_angle_func = ma7xx_get_raw_angle; - ms->base.update_func = ma7xx_update; - ms->base.prepare_func = ma7xx_send_angle_cmd; - ms->base.reset_func = ma7xx_reset; - ms->base.deinit_func = ma7xx_deinit; - ms->base.get_errors_func = ma7xx_get_errors; - ms->base.is_calibrated_func = ma7xx_rec_is_calibrated; - ms->base.calibrate_func = ma7xx_calibrate; - ms->base.config.type = SENSOR_TYPE_MA7XX; + s->get_raw_angle_func = ma7xx_get_raw_angle; + s->update_func = ma7xx_update; + s->prepare_func = ma7xx_send_angle_cmd; + s->reset_func = ma7xx_reset; + s->deinit_func = ma7xx_deinit; + s->get_errors_func = ma7xx_get_errors; + s->is_calibrated_func = ma7xx_rec_is_calibrated; + s->calibrate_func = ma7xx_calibrate; + s->config.type = SENSOR_TYPE_MA7XX; + s->ticks = ENCODER_TICKS; ms->config = *c; ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 2f57ab25..8ffbe72a 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -73,7 +73,7 @@ static inline int16_t ma7xx_get_raw_angle(const Sensor *s) static inline void ma7xx_update(Sensor *s, bool check_error) { MA7xxSensor *ms = (MA7xxSensor *)s; - const int16_t angle = ssp_read_one(ms->config.ssp_struct) >> 3; + const int16_t angle = ssp_read_one(ms->config.ssp_struct); if (check_error) { diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index d1648c1a..7c88dd8c 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -83,6 +83,7 @@ struct Sensor { // typedefd earlier sensor_update_func_t update_func; sensor_prepare_func_t prepare_func; sensor_get_errors_func_t get_errors_func; + uint32_t ticks; bool initialized : 1; bool current : 1; }; @@ -116,31 +117,9 @@ static inline void sensor_invalidate(Sensor *s) s->current = false; } -static inline uint16_t sensor_get_ticks(Sensor *s) { -#ifdef BOARD_REV_R5 - if (SENSOR_TYPE_MA7XX == s->config.type) { -#endif - // We need to derive this during call, because the motor pole pairs - // may change after calibration, or after user input - return 6 * motor_get_pole_pairs(); -#ifdef BOARD_REV_R5 - } - return twopi_by_hall_sectors; -#endif -} - -static inline float sensor_ticks_to_eangle(Sensor *s) +static inline uint16_t sensor_get_ticks(Sensor *s) { -#ifdef BOARD_REV_R5 - if (SENSOR_TYPE_MA7XX == s->config.type) { -#endif - // We need to derive this during call, because the motor pole pairs - // may change after calibration, or after user input - return twopi_by_enc_ticks * motor_get_pole_pairs(); -#ifdef BOARD_REV_R5 - } - return twopi_by_hall_sectors; -#endif + return s->ticks; } static inline void sensor_prepare(Sensor *s) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index b4b86e09..253471a5 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -28,9 +28,7 @@ GenSensor sensors[SENSOR_COUNT] = { .reset_func = ma7xx_reset, .update_func = ma7xx_update, .prepare_func = ma7xx_send_angle_cmd, - .get_errors_func = ma7xx_get_errors, - .initialized = false, - .current = false + .get_errors_func = ma7xx_get_errors }}, {.sensor = { .config = { .type = SENSOR_TYPE_MA7XX }, @@ -41,9 +39,7 @@ GenSensor sensors[SENSOR_COUNT] = { .reset_func = ma7xx_reset, .update_func = ma7xx_update, .prepare_func = ma7xx_send_angle_cmd, - .get_errors_func = ma7xx_get_errors, - .initialized = false, - .current = false + .get_errors_func = ma7xx_get_errors }}, {.sensor = { .config = { .type = SENSOR_TYPE_HALL }, @@ -54,9 +50,7 @@ GenSensor sensors[SENSOR_COUNT] = { .reset_func = hall_reset, .update_func = hall_update, .prepare_func = 0x0, - .get_errors_func = hall_get_errors, - .initialized = false, - .current = false + .get_errors_func = hall_get_errors }} }; From 03c2b44a02ec16ee0ccc77e618d904563fc2db22 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 11 Jan 2024 01:13:31 +0200 Subject: [PATCH 046/219] consolidate sensor return types --- firmware/src/observer/observer.c | 10 ++-------- firmware/src/observer/observer.h | 2 +- firmware/src/sensor/as5047.h | 8 ++++---- firmware/src/sensor/hall.h | 4 ++-- firmware/src/sensor/ma7xx.h | 8 ++++---- firmware/src/sensor/sensor.h | 14 +++++++------- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index c79c46a0..d51af118 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -21,12 +21,6 @@ #include #include -static ObserverConfig config = { - .track_bw = 350.0f, - .kp = 0.0f, - .ki = 0.0f, -}; - bool observer_init_with_defaults(Observer *o, Sensor *s) { ObserverConfig c = {.track_bw=350}; @@ -51,8 +45,8 @@ void observer_set_bandwidth(Observer *o, float bw) if (bw > 0.0f) { o->config.track_bw = bw; - o->config.kp = 2.0f * config.track_bw; - o->config.ki = 0.25f * (config.kp * config.kp); + o->config.kp = 2.0f * o->config.track_bw; + o->config.ki = 0.25f * (o->config.kp * o->config.kp); } } diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 50440ff9..400e4405 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -66,7 +66,7 @@ static inline void observer_update(Observer *o) { const float sensor_ticks = sensor_get_ticks(o->sensor_ptr); const float sensor_half_ticks = sensor_ticks * 0.5f; - const int16_t angle_meas = sensor_get_angle_rectified(o->sensor_ptr); + const int32_t angle_meas = sensor_get_angle_rectified(o->sensor_ptr); const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; if (delta_pos_meas < -sensor_half_ticks) diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index c18910cb..0b94686f 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -40,7 +40,7 @@ typedef struct Sensor base; AS5047PSensorConfig config; uint8_t errors; - uint16_t angle; + int32_t angle; } AS5047PSensor; bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); @@ -64,7 +64,7 @@ static inline void as5047p_send_angle_cmd(const Sensor *s) ssp_write_one(((const AS5047PSensor *)s)->config.ssp_struct, AS5047P_CMD_READ_ANGLE); } -static inline uint16_t as5047p_get_raw_angle(const Sensor *s) +static inline int32_t as5047p_get_raw_angle(const Sensor *s) { return ((const AS5047PSensor *)s)->angle; } @@ -72,10 +72,10 @@ static inline uint16_t as5047p_get_raw_angle(const Sensor *s) static inline void as5047p_update(Sensor *s, bool check_error) { AS5047PSensor *as = (AS5047PSensor *)s; - const int16_t angle = ssp_read_one(as->config.ssp_struct) & 0x3FFF; // Mask to get the angle value + const int32_t angle = ssp_read_one(as->config.ssp_struct) & 0x3FFF; // Mask to get the angle value if (check_error) { - const int16_t delta = as->angle - angle; + const int32_t delta = as->angle - angle; if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 10aaa552..cccfdd9c 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -32,7 +32,7 @@ typedef struct Sensor base; HallSensorConfig config; uint8_t errors; - uint16_t angle; + int32_t angle; uint8_t sector; uint8_t hw_defaults[3]; } HallSensor; @@ -48,7 +48,7 @@ static inline uint8_t hall_get_errors(const Sensor *s) return ((HallSensor *)s)->errors; } -static inline int16_t hall_get_angle(const Sensor *s) +static inline int32_t hall_get_angle(const Sensor *s) { return ((HallSensor *)s)->angle; } diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 8ffbe72a..72d213ac 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -41,7 +41,7 @@ typedef struct Sensor base; MA7xxSensorConfig config; uint8_t errors; - int16_t angle; + int32_t angle; } MA7xxSensor; bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); @@ -65,7 +65,7 @@ static inline void ma7xx_send_angle_cmd(const Sensor *s) ssp_write_one(((const MA7xxSensor *)s)->config.ssp_struct, MA_CMD_ANGLE); } -static inline int16_t ma7xx_get_raw_angle(const Sensor *s) +static inline int32_t ma7xx_get_raw_angle(const Sensor *s) { return ((const MA7xxSensor *)s)->angle; } @@ -73,11 +73,11 @@ static inline int16_t ma7xx_get_raw_angle(const Sensor *s) static inline void ma7xx_update(Sensor *s, bool check_error) { MA7xxSensor *ms = (MA7xxSensor *)s; - const int16_t angle = ssp_read_one(ms->config.ssp_struct); + const int32_t angle = ssp_read_one(ms->config.ssp_struct); if (check_error) { - const int16_t delta = ms->angle - angle; + const int32_t delta = ms->angle - angle; if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 7c88dd8c..181364a4 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -43,7 +43,7 @@ typedef struct Observer Observer; typedef bool (*sensor_is_calibrated_func_t)(const Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); -typedef int16_t (*sensor_get_raw_angle_func_t)(const Sensor *); +typedef int32_t (*sensor_get_raw_angle_func_t)(const Sensor *); typedef void (*sensor_deinit_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); typedef void (*sensor_prepare_func_t)(const Sensor *); @@ -93,13 +93,13 @@ void sensor_reset(Sensor *s); bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); -static inline int16_t sensor_get_angle_rectified(const Sensor *s) +static inline int32_t sensor_get_angle_rectified(const Sensor *s) { const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); - const int16_t angle = s->get_raw_angle_func(s); - const int16_t off_1 = s->config.rec_table[angle>>offset_bits]; - const int16_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int16_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + const int32_t angle = s->get_raw_angle_func(s); + const int32_t off_1 = s->config.rec_table[angle>>offset_bits]; + const int32_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int32_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); return angle + off_interp; } @@ -117,7 +117,7 @@ static inline void sensor_invalidate(Sensor *s) s->current = false; } -static inline uint16_t sensor_get_ticks(Sensor *s) +static inline uint32_t sensor_get_ticks(Sensor *s) { return s->ticks; } From 15b4f3b7ac62903b297234d4d633fe858859d4d4 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 11 Jan 2024 02:35:00 +0200 Subject: [PATCH 047/219] fix typo --- firmware/src/sensor/sensor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 181364a4..a7af3d93 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -28,7 +28,7 @@ #define MIN_ALLOWED_DELTA_SUB (-MAX_ALLOWED_DELTA - ENCODER_TICKS) #if defined BOARD_REV_R3 -#define ONB§OARD_SENSOR_SSP_PORT SSPD +#define ONBOARD_SENSOR_SSP_PORT SSPD #define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD #elif defined BOARD_REV_R5 || defined BOARD_REV_M5 #define ONBOARD_SENSOR_SSP_PORT SSPC From f354bf1ede34d2e7ee554a5b5f841e4bb0e33013 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 25 Jan 2024 23:36:32 +0200 Subject: [PATCH 048/219] remove unused function --- firmware/src/sensor/sensor.c | 7 ------- firmware/src/sensor/sensor.h | 1 - 2 files changed, 8 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 87795bbe..1386e7f7 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -19,13 +19,6 @@ #include #include -static uint32_t sensor_id = 1; // 0 implicitly treated as missing value - -uint32_t get_next_sensor_id(void) -{ - return sensor_id++; -} - void sensor_reset(Sensor *s) { (void)memset(s->config.rec_table, 0, sizeof(s->config.rec_table)); diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index a7af3d93..9dc7f74b 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -88,7 +88,6 @@ struct Sensor { // typedefd earlier bool current : 1; }; -uint32_t get_next_sensor_id(void); void sensor_reset(Sensor *s); bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); From 44cdd48679f8983fa184bd9cdb795283fad82c25 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 25 Jan 2024 23:36:58 +0200 Subject: [PATCH 049/219] implement more initialization functions --- firmware/src/sensor/sensors.c | 75 +++++++++++++++++++++++------------ firmware/src/sensor/sensors.h | 11 +++-- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 253471a5..f1b784ac 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -61,19 +61,36 @@ bool sensor_init_with_defaults(Sensor *s) // to do this here in order to set up the config // struct accordingly. sensor_connection_t connection = sensor_get_connection(s); - if (connection == SENSOR_CONNECTION_ONBOARD_SPI) + switch (connection) { - return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); + case SENSOR_CONNECTION_ONBOARD_SPI: + return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); + break; + case SENSOR_CONNECTION_EXTERNAL_SPI: + return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + case SENSOR_CONNECTION_HALL: + return hall_init_with_defaults(s); + break; + default: + break; } - else if (connection == SENSOR_CONNECTION_EXTERNAL_SPI) - { - return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); - } - else if (connection == SENSOR_CONNECTION_HALL) + return false; +} + +bool sensor_init_with_configs(Sensor *s, SensorConfig *sc, GenSensorConfig *gsc) +{ + switch (sc->type) { - return hall_init_with_defaults(s); + case SENSOR_TYPE_MA7XX: + ma7xx_init_with_config(s, &(gsc->ma7xx_sensor_config)); + break; + case SENSOR_TYPE_HALL: + hall_init_with_config(s, &(gsc->hall_sensor_config)); + break; + default: + break; } - return false; } void sensors_init_with_defaults(void) @@ -85,30 +102,36 @@ void sensors_init_with_defaults(void) void sensors_get_config(SensorsConfig *config_) { - // for (int i=0; iconfig[i] = sensors[i].config; - // } + // Serialize SensorConfig array + for (int i = 0; i < SENSOR_COUNT; ++i) { + config_->config[i] = sensors[i].sensor.config; + } + + // Serialize GenSensorConfig array + for (int i = 0; i < SENSOR_COUNT; ++i) { + sensors[i].sensor.get_ss_config_func(sensors[i].sensor, &(config_->ss_config[i])); + } config_->commutation_connection = sensor_get_connection(commutation_sensor_p); config_->position_connection = sensor_get_connection(position_sensor_p); } void sensors_restore_config(SensorsConfig *config_) { - // for (int i=0; iconfig[i]; - // } - // commutation_sensor_p = config_->commutation_connection + sensors; - // sensor_init_with_config(commutation_sensor_p, &(commutation_sensor_p->config)); - // position_sensor_p = config_->position_connection + sensors; - // if (commutation_sensor_p != position_sensor_p) - // { - // sensor_init_with_config(position_sensor_p, &(position_sensor_p->config)); - // } -} + // Assuming there are functions to set the commutation and position sensor pointers + // based on the sensor_connection_t value. If not, this part needs to be adapted. + sensor_set_pointer_with_connection(&commutation_sensor_p, config_->commutation_connection); + sensor_set_pointer_with_connection(&position_sensor_p, config_->position_connection); -// Interface functions + // Restore SensorConfig array + for (int i = 0; i < SENSOR_COUNT; ++i) { + sensors[i].sensor.config = config_->config[i]; + if ((sensors[i].sensor.initialized == false) && + (commutation_sensor_p == &(sensors[i].sensor) || position_sensor_p == &(sensors[i].sensor))) + { + sensor_init_with_configs(commutation_sensor_p, &(config_->config[i]), &(config_->ss_config[i])); + } + } +} void commutation_sensor_set_connection(sensor_connection_t new_connection) { diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index a4582c80..11e8231b 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -37,14 +37,14 @@ typedef union typedef union { - SensorConfig sensor_config; MA7xxSensorConfig ma7xx_sensor_config; HallSensorConfig hall_sensor_config; } GenSensorConfig; typedef struct { - GenSensorConfig config[SENSOR_COUNT]; + SensorConfig config[SENSOR_COUNT]; + GenSensorConfig ss_config[SENSOR_COUNT]; sensor_connection_t commutation_connection; sensor_connection_t position_connection; } SensorsConfig; @@ -64,6 +64,11 @@ static inline sensor_connection_t sensor_get_connection(const Sensor *sensor) return s - sensors; } +static inline void sensor_set_pointer_with_connection(Sensor **sensor, sensor_connection_t connection) +{ + *sensor = (Sensor *)(&(sensors[connection])); +} + void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection); bool sensor_init_with_defaults(Sensor *s); @@ -71,8 +76,6 @@ void sensors_init_with_defaults(void); void sensors_get_config(SensorsConfig *config_); void sensors_restore_config(SensorsConfig *config_); -// Interface functions - static inline sensor_connection_t commutation_sensor_get_connection(void) { return sensor_get_connection(commutation_sensor_p); From 91a7ff3a3d86575c8c5cdc6ebcbc18b384cdab3d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 28 Jan 2024 18:48:44 +0200 Subject: [PATCH 050/219] refactor sensor initialization --- firmware/src/can/can_endpoints.c | 4 +- firmware/src/sensor/as5047.c | 24 +++-- firmware/src/sensor/as5047.h | 3 +- firmware/src/sensor/hall.c | 28 ++++-- firmware/src/sensor/hall.h | 2 + firmware/src/sensor/ma7xx.c | 30 ++++-- firmware/src/sensor/ma7xx.h | 2 + firmware/src/sensor/sensor.h | 8 +- firmware/src/sensor/sensors.c | 97 ++++++++++--------- firmware/src/sensor/sensors.h | 23 ++++- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 4 +- 11 files changed, 137 insertions(+), 88 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 55060356..297af1f6 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -790,7 +790,7 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = sensor_external_spi_get_type(); + v = sensor_external_spi_get_type_avlos(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -798,7 +798,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { uint8_t v; memcpy(&v, buffer, sizeof(v)); - sensor_external_spi_set_type(v); + sensor_external_spi_set_type_avlos(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 4f20028e..2e1bc48f 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -23,6 +23,20 @@ #include #include +void as5047p_make_blank_sensor(Sensor *s) +{ + s->config.type = SENSOR_TYPE_AS5047; + s->ticks = ENCODER_TICKS; + s->get_raw_angle_func = ma7xx_get_raw_angle; + s->update_func = as5047p_update; + s->prepare_func = as5047p_send_angle_cmd; + s->reset_func = as5047p_reset; + s->deinit_func = as5047p_deinit; + s->get_errors_func = as5047p_get_errors; + s->is_calibrated_func = as5047p_is_calibrated; + s->calibrate_func = as5047p_calibrate; +} + bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { AS5047PSensorConfig c = {0}; c.ssp_port = port; @@ -32,16 +46,6 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; - s->get_raw_angle_func = ma7xx_get_raw_angle; - s->update_func = as5047p_update; - s->prepare_func = as5047p_send_angle_cmd; - s->reset_func = as5047p_reset; - s->deinit_func = as5047p_deinit; - s->get_errors_func = as5047p_get_errors; - s->is_calibrated_func = as5047p_is_calibrated; - s->calibrate_func = as5047p_calibrate; - s->config.type = SENSOR_TYPE_AS5047; - s->ticks = ENCODER_TICKS; as->config = *c; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index 0b94686f..3240bae3 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -43,13 +43,14 @@ typedef struct int32_t angle; } AS5047PSensor; +void as5047p_make_blank_sensor(Sensor *s); bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); void as5047p_deinit(Sensor *s); void as5047p_reset(Sensor *s); bool as5047p_calibrate(Sensor *s, Observer *o); -bool as5047p_is_calibrated(const Sensor *s) +static inline bool as5047p_is_calibrated(const Sensor *s) { return s->config.rec_calibrated; } diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 9458bef6..d537490a 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -24,6 +24,20 @@ #define AIO6789_IO_MODE 0x00 #define AIO_INPUT 0x00 +void hall_make_blank_sensor(Sensor *s) +{ + s->config.type = SENSOR_TYPE_HALL; + s->ticks = HALL_SECTORS; + s->get_raw_angle_func = hall_get_angle; + s->update_func = hall_update; + s->reset_func = hall_reset; + s->deinit_func = hall_deinit; + s->get_errors_func = hall_get_errors; + s->is_calibrated_func = hall_sector_map_is_calibrated; + s->calibrate_func = hall_calibrate_sequence; + s->get_ss_config_func = hall_get_ss_config; +} + bool hall_init_with_defaults(Sensor *s) { HallSensorConfig c = {0}; @@ -33,15 +47,6 @@ bool hall_init_with_defaults(Sensor *s) bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) { HallSensor *ms = (HallSensor *)s; - s->get_raw_angle_func = hall_get_angle; - s->update_func = hall_update; - s->reset_func = hall_reset; - s->deinit_func = hall_deinit; - s->get_errors_func = hall_get_errors; - s->is_calibrated_func = hall_sector_map_is_calibrated; - s->calibrate_func = hall_calibrate_sequence; - s->config.type = SENSOR_TYPE_HALL; - s->ticks = HALL_SECTORS; ms->config = *c; ms->hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); ms->hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); @@ -137,4 +142,9 @@ bool hall_calibrate_sequence(Sensor *s, Observer *o) ms->errors |= SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED; } return success; +} + +void hall_get_ss_config(Sensor *s, void* buffer) +{ + } \ No newline at end of file diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index cccfdd9c..eea8f9e1 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -37,11 +37,13 @@ typedef struct uint8_t hw_defaults[3]; } HallSensor; +void hall_make_blank_sensor(Sensor *s); bool hall_init_with_defaults(Sensor *s); bool hall_init_with_config(Sensor *s, const HallSensorConfig *c); void hall_deinit(Sensor *s); void hall_reset(Sensor *s); bool hall_calibrate_sequence(Sensor *s, Observer *o); +void hall_get_ss_config(Sensor *s, void* buffer); static inline uint8_t hall_get_errors(const Sensor *s) { diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 08e2d3c0..08051ddb 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -23,6 +23,21 @@ #include #include +void ma7xx_make_blank_sensor(Sensor *s) +{ + s->config.type = SENSOR_TYPE_MA7XX; + s->ticks = ENCODER_TICKS; + s->is_calibrated_func = ma7xx_rec_is_calibrated; + s->calibrate_func = ma7xx_calibrate; + s->get_raw_angle_func = ma7xx_get_raw_angle; + s->deinit_func = ma7xx_deinit; + s->reset_func = ma7xx_reset; + s->update_func = ma7xx_update; + s->prepare_func = ma7xx_send_angle_cmd; + s->get_errors_func = ma7xx_get_errors; + s->get_ss_config_func = ma7xx_get_ss_config; +} + bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { MA7xxSensorConfig c = {0}; @@ -34,16 +49,6 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c) { MA7xxSensor *ms = (MA7xxSensor *)s; - s->get_raw_angle_func = ma7xx_get_raw_angle; - s->update_func = ma7xx_update; - s->prepare_func = ma7xx_send_angle_cmd; - s->reset_func = ma7xx_reset; - s->deinit_func = ma7xx_deinit; - s->get_errors_func = ma7xx_get_errors; - s->is_calibrated_func = ma7xx_rec_is_calibrated; - s->calibrate_func = ma7xx_calibrate; - s->config.type = SENSOR_TYPE_MA7XX; - s->ticks = ENCODER_TICKS; ms->config = *c; ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet @@ -68,3 +73,8 @@ bool ma7xx_calibrate(Sensor *s, Observer *o) { return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); } + +void ma7xx_get_ss_config(Sensor *s, void* buffer) +{ + +} diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 72d213ac..8ffd443f 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -44,11 +44,13 @@ typedef struct int32_t angle; } MA7xxSensor; +void ma7xx_make_blank_sensor(Sensor *s); bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); bool ma7xx_calibrate(Sensor *s, Observer *o); +void ma7xx_get_ss_config(Sensor *s, void* buffer); static inline bool ma7xx_rec_is_calibrated(const Sensor *s) { diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 9dc7f74b..b0328904 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -48,14 +48,15 @@ typedef void (*sensor_deinit_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); typedef void (*sensor_prepare_func_t)(const Sensor *); typedef void (*sensor_update_func_t)(Sensor *, bool); +typedef void (*sensor_get_ss_config_func_t)(Sensor* sensor, void* buffer); typedef uint8_t (*sensor_get_errors_func_t)(const Sensor *); typedef enum { SENSOR_TYPE_INVALID = 0, SENSOR_TYPE_MA7XX = 1, - SENSOR_TYPE_HALL = 2, - SENSOR_TYPE_AS5047 = 3, - SENSOR_TYPE_AMT22 = 4, + SENSOR_TYPE_AS5047 = 2, + SENSOR_TYPE_AMT22 = 3, + SENSOR_TYPE_HALL = 4, SENSOR_TYPE_MAX } sensor_type_t; @@ -82,6 +83,7 @@ struct Sensor { // typedefd earlier sensor_reset_func_t reset_func; sensor_update_func_t update_func; sensor_prepare_func_t prepare_func; + sensor_get_ss_config_func_t get_ss_config_func; sensor_get_errors_func_t get_errors_func; uint32_t ticks; bool initialized : 1; diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index f1b784ac..d802df1e 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -18,41 +18,7 @@ #include #include -GenSensor sensors[SENSOR_COUNT] = { - {.sensor = { - .config = { .type = SENSOR_TYPE_MA7XX }, - .is_calibrated_func = ma7xx_rec_is_calibrated, - .calibrate_func = ma7xx_calibrate, - .get_raw_angle_func = ma7xx_get_raw_angle, - .deinit_func = ma7xx_deinit, - .reset_func = ma7xx_reset, - .update_func = ma7xx_update, - .prepare_func = ma7xx_send_angle_cmd, - .get_errors_func = ma7xx_get_errors - }}, - {.sensor = { - .config = { .type = SENSOR_TYPE_MA7XX }, - .is_calibrated_func = ma7xx_rec_is_calibrated, - .calibrate_func = ma7xx_calibrate, - .get_raw_angle_func = ma7xx_get_raw_angle, - .deinit_func = ma7xx_deinit, - .reset_func = ma7xx_reset, - .update_func = ma7xx_update, - .prepare_func = ma7xx_send_angle_cmd, - .get_errors_func = ma7xx_get_errors - }}, - {.sensor = { - .config = { .type = SENSOR_TYPE_HALL }, - .is_calibrated_func = hall_sector_map_is_calibrated, - .calibrate_func = hall_calibrate_sequence, - .get_raw_angle_func = hall_get_angle, - .deinit_func = hall_deinit, - .reset_func = hall_reset, - .update_func = hall_update, - .prepare_func = 0x0, - .get_errors_func = hall_get_errors - }} -}; +GenSensor sensors[SENSOR_COUNT] = {0}; bool sensor_init_with_defaults(Sensor *s) { @@ -64,12 +30,15 @@ bool sensor_init_with_defaults(Sensor *s) switch (connection) { case SENSOR_CONNECTION_ONBOARD_SPI: + ma7xx_make_blank_sensor(s); return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); break; case SENSOR_CONNECTION_EXTERNAL_SPI: + ma7xx_make_blank_sensor(s); return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); break; case SENSOR_CONNECTION_HALL: + hall_make_blank_sensor(s); return hall_init_with_defaults(s); break; default: @@ -83,19 +52,28 @@ bool sensor_init_with_configs(Sensor *s, SensorConfig *sc, GenSensorConfig *gsc) switch (sc->type) { case SENSOR_TYPE_MA7XX: - ma7xx_init_with_config(s, &(gsc->ma7xx_sensor_config)); + ma7xx_make_blank_sensor(s); + return ma7xx_init_with_config(s, &(gsc->ma7xx_sensor_config)); break; case SENSOR_TYPE_HALL: - hall_init_with_config(s, &(gsc->hall_sensor_config)); + hall_make_blank_sensor(s); + return hall_init_with_config(s, &(gsc->hall_sensor_config)); + break; + case SENSOR_TYPE_AS5047: + as5047p_make_blank_sensor(s); + return as5047p_init_with_config(s, &(gsc->as5047p_sensor_config)); break; default: break; } + return false; } void sensors_init_with_defaults(void) { sensor_init_with_defaults(&(sensors[0].sensor)); + ma7xx_make_blank_sensor(&(sensors[1].sensor)); + hall_make_blank_sensor(&(sensors[2].sensor)); commutation_sensor_p = &(sensors[0].sensor); position_sensor_p = &(sensors[0].sensor); } @@ -103,13 +81,15 @@ void sensors_init_with_defaults(void) void sensors_get_config(SensorsConfig *config_) { // Serialize SensorConfig array - for (int i = 0; i < SENSOR_COUNT; ++i) { + for (int i = 0; i < SENSOR_COUNT; ++i) + { config_->config[i] = sensors[i].sensor.config; } // Serialize GenSensorConfig array - for (int i = 0; i < SENSOR_COUNT; ++i) { - sensors[i].sensor.get_ss_config_func(sensors[i].sensor, &(config_->ss_config[i])); + for (int i = 0; i < SENSOR_COUNT; ++i) + { + sensors[i].sensor.get_ss_config_func(&(sensors[i].sensor), &(config_->ss_config[i])); } config_->commutation_connection = sensor_get_connection(commutation_sensor_p); config_->position_connection = sensor_get_connection(position_sensor_p); @@ -123,10 +103,12 @@ void sensors_restore_config(SensorsConfig *config_) sensor_set_pointer_with_connection(&position_sensor_p, config_->position_connection); // Restore SensorConfig array - for (int i = 0; i < SENSOR_COUNT; ++i) { + for (int i = 0; i < SENSOR_COUNT; ++i) + { sensors[i].sensor.config = config_->config[i]; - if ((sensors[i].sensor.initialized == false) && - (commutation_sensor_p == &(sensors[i].sensor) || position_sensor_p == &(sensors[i].sensor))) + if ((sensors[i].sensor.initialized == false) + && (commutation_sensor_p == &(sensors[i].sensor) + || position_sensor_p == &(sensors[i].sensor))) { sensor_init_with_configs(commutation_sensor_p, &(config_->config[i]), &(config_->ss_config[i])); } @@ -143,15 +125,34 @@ void position_sensor_set_connection(sensor_connection_t new_connection) sensor_set_connection(&(position_sensor_p), &(commutation_sensor_p), new_connection); } -void sensor_external_spi_set_type(sensor_type_t type) +void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options type) { - if (controller_get_state() == STATE_IDLE - && type > SENSOR_TYPE_INVALID && type < SENSOR_TYPE_MAX - && type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + sensor_type_t internal_type; + bool valid = false; + switch (type) + { + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + internal_type = SENSOR_TYPE_MA7XX; + valid = true; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + internal_type = SENSOR_TYPE_AS5047; + valid = true; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + internal_type = SENSOR_TYPE_AMT22; + valid = true; + break; + default: + break; + } + if (valid + && (controller_get_state() == STATE_IDLE) + && (internal_type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type)) { Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); s->deinit_func(s); - sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type = type; + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type = internal_type; sensors_init_with_defaults(); } } diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 11e8231b..c8befedd 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -19,6 +19,7 @@ #include #include +#include #include #define SENSOR_COUNT 3 @@ -33,12 +34,14 @@ typedef union Sensor sensor; MA7xxSensor ma7xx_sensor; HallSensor hall_sensor; + AS5047PSensor as5047p_sensor; } GenSensor; typedef union { MA7xxSensorConfig ma7xx_sensor_config; HallSensorConfig hall_sensor_config; + AS5047PSensorConfig as5047p_sensor_config; } GenSensorConfig; typedef struct @@ -105,12 +108,26 @@ static inline void sensors_calibrate(void) position_sensor_p->calibrate_func(position_sensor_p, &position_observer); } -static inline sensor_type_t sensor_external_spi_get_type(void) +static inline sensors_setup_external_spi_type_options sensor_external_spi_get_type_avlos(void) { - return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type; + switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + { + case SENSOR_TYPE_MA7XX: + return SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX; + break; + case SENSOR_TYPE_AS5047: + return SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047; + break; + case SENSOR_TYPE_AMT22: + return SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22; + break; + default: + return SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX; + break; + } } -void sensor_external_spi_set_type(sensor_type_t type); +void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options type); static inline bool sensor_onboard_get_is_calibrated(void) { diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 61398a2d..3d7d3615 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -352,8 +352,8 @@ remote_attributes: - name: type options: [MA7XX, AS5047, AMT22] meta: {export: True} - getter_name: sensor_external_spi_get_type - setter_name: sensor_external_spi_set_type + getter_name: sensor_external_spi_get_type_avlos + setter_name: sensor_external_spi_set_type_avlos summary: The type of external sensor type. Either MA7XX, AS5047 or AMT22. - name: calibrated dtype: bool From 997d2604ea2539d281429472db7594413f50fd7f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 31 Jan 2024 12:43:26 +0200 Subject: [PATCH 051/219] fix size of returned firmware version --- firmware/src/system/system.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/firmware/src/system/system.h b/firmware/src/system/system.h index 6a431cfd..a33dddc3 100644 --- a/firmware/src/system/system.h +++ b/firmware/src/system/system.h @@ -41,8 +41,9 @@ void system_reset_calibration(void); static inline uint8_t system_get_fw_version_string(char *buffer) { - memcpy(buffer, GIT_VERSION, 4); - return 4; + const uint8_t size = fminf(sizeof(GIT_VERSION), 8); + memcpy(buffer, GIT_VERSION, size); + return size; } static inline uint32_t system_get_uid(void) From 62474240152863180a63afee43ec558d13734a57 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 2 Feb 2024 15:47:34 +0200 Subject: [PATCH 052/219] add new bootloader definition --- .../specs/{dfu.yaml => dfu_1_0_x.yaml} | 0 studio/Python/tinymovr/specs/dfu_1_1_x.yaml | 68 +++++++++++++++++++ 2 files changed, 68 insertions(+) rename studio/Python/tinymovr/specs/{dfu.yaml => dfu_1_0_x.yaml} (100%) create mode 100644 studio/Python/tinymovr/specs/dfu_1_1_x.yaml diff --git a/studio/Python/tinymovr/specs/dfu.yaml b/studio/Python/tinymovr/specs/dfu_1_0_x.yaml similarity index 100% rename from studio/Python/tinymovr/specs/dfu.yaml rename to studio/Python/tinymovr/specs/dfu_1_0_x.yaml diff --git a/studio/Python/tinymovr/specs/dfu_1_1_x.yaml b/studio/Python/tinymovr/specs/dfu_1_1_x.yaml new file mode 100644 index 00000000..e26d1b03 --- /dev/null +++ b/studio/Python/tinymovr/specs/dfu_1_1_x.yaml @@ -0,0 +1,68 @@ + +name: tm_dfu +remote_attributes: + - name: protocol_hash + dtype: uint32 + getter_name: _system_get_proto_hash_and_trigger_dfu + summary: The Avlos protocol hash. + - name: uid + dtype: uint32 + getter_name: system_get_uid + summary: The unique device ID, unique to each PAC55xx chip produced. + - name: hw_revision + dtype: uint32 + getter_name: system_get_hw_revision + summary: The hardware revision. + - name: reset + summary: Reset the device. + caller_name: system_reset + dtype: void + arguments: [] + meta: {reload_data: True} + - name: node_id + summary: The node id + getter_name: CAN_get_ID + dtype: uint8 + - name: error + options: [NONE, START_EXECUTION_STACK_POINTER_OUT_OF_RANGE, START_EXECUTION_ADDRESS_OUT_OF_RANGE, START_EXECUTION_ADDRESS_LSB_NOT_SET] + getter_name: system_get_error + summary: The last error encountered in DFU + - name: read_flash_32 + summary: Read a 32 bit value from the flash + caller_name: nvm_read_flash_32 + dtype: uint32 + arguments: + - name: address + dtype: uint32 + - name: write_scratch_32 + summary: Write a 32 bit value to the scratchpad + caller_name: nvm_write_scratch_32 + dtype: void + arguments: + - name: offset_word32 + dtype: uint8 + - name: value + dtype: uint32 + - name: read_scratch_32 + summary: Read a 32 bit value from the scratchpad + caller_name: nvm_read_scratch_32 + dtype: uint32 + arguments: + - name: offset_word32 + dtype: uint8 + - name: commit + summary: Commit the 128 bit scratchpad to the specified flash address. Pass the current protocol hash for validation. + caller_name: nvm_commit + dtype: uint32 + arguments: + - name: address + dtype: uint32 + - name: hash_validation + dtype: uint32 + - name: erase_all + summary: Erase all flash. Pass the current protocol hash for validation. + caller_name: nvm_erase_all + dtype: uint32 + arguments: + - name: hash_validation + dtype: uint32 From 47afcec9243b26e2b0c53b56b91d90bd3ec5fa4b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:18:05 +0200 Subject: [PATCH 053/219] fix erroneous functions pointers --- firmware/src/sensor/as5047.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 2e1bc48f..df3bf3ff 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -27,7 +27,7 @@ void as5047p_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_AS5047; s->ticks = ENCODER_TICKS; - s->get_raw_angle_func = ma7xx_get_raw_angle; + s->get_raw_angle_func = as5047p_get_raw_angle; s->update_func = as5047p_update; s->prepare_func = as5047p_send_angle_cmd; s->reset_func = as5047p_reset; @@ -35,6 +35,7 @@ void as5047p_make_blank_sensor(Sensor *s) s->get_errors_func = as5047p_get_errors; s->is_calibrated_func = as5047p_is_calibrated; s->calibrate_func = as5047p_calibrate; + s->get_ss_config_func = as5047p_get_ss_config; } bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { From f14bbb049bf327b38bc573fd54bb31076a84f418 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:18:19 +0200 Subject: [PATCH 054/219] update SPI config --- firmware/src/sensor/as5047.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index df3bf3ff..6b65c22d 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -48,7 +48,7 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; as->config = *c; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 0, 0); + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 32, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet as5047p_send_angle_cmd(s); From 812b660893a1d003da42b7fa693096bb63a277da Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:19:37 +0200 Subject: [PATCH 055/219] allow setting clock multiplier in SPI init HAL --- firmware/src/sensor/ma7xx.c | 2 +- firmware/src/sensor/sensor.h | 4 ++-- firmware/src/ssp/ssp_func.c | 8 ++++---- firmware/src/ssp/ssp_func.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 08051ddb..c96a8ee8 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -50,7 +50,7 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s { MA7xxSensor *ms = (MA7xxSensor *)s; ms->config = *c; - ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 0, 0); + ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); ma7xx_update(s, false); diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index b0328904..be6847c8 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -33,8 +33,8 @@ #elif defined BOARD_REV_R5 || defined BOARD_REV_M5 #define ONBOARD_SENSOR_SSP_PORT SSPC #define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC -#define EXTERNAL_SENSOR_SSP_PORT SSPC -#define EXTERNAL_SENSOR_SSP_STRUCT PAC55XX_SSPC +#define EXTERNAL_SENSOR_SSP_PORT SSPD +#define EXTERNAL_SENSOR_SSP_STRUCT PAC55XX_SSPD #endif typedef struct Sensor Sensor; diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index feadd95d..10a4fa98 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -739,7 +739,7 @@ void ssp_interrupt_disable(SSP_TYPE ssp) } } -void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t cph, uint8_t cpol) +void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint8_t cph, uint8_t cpol) { PAC55XX_SSP_TYPEDEF *ssp_ptr; @@ -777,13 +777,13 @@ void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t cph, uint8_t cpol) // SSPCLK = PCLK / ((SSPxCLK.M + 1)*SSPxCLK.N) = 150000000 / ((2+1) x 6) = 8.47MHz // SSPCLK = PCLK / ((SSPxCLK.M + 1)*SSPxCLK.N) = 150000000 / ((2+1) x 4) = 12.5MHz ssp_ptr->CLK.M = 2; - ssp_ptr->CLK.N = 4; // N must be even value from 2 to 254 + ssp_ptr->CLK.N = clkn_div; // N must be even value from 2 to 254 ssp_ptr->CON.FRF = SSP_FRAME_FORMAT_SPI; // Frame Format, SPI frame format ssp_ptr->CON.MS = ms_mode; // Master/Slave mode, master mode ssp_ptr->CON.LSBFIRST = SSP_ENDIAN_MSB; // Endian Order, MSB transmit 1st ssp_ptr->CON.LBM = SSP_LP_NORMAL; // Loopback Mode, no loopback mode - ssp_ptr->CON.CPH = cph; // Clock Out Phase, SPI captures data at 2nd edge transition of the frame - ssp_ptr->CON.CPO = cpol; // Clock Out Polarity, SPI clock active high + ssp_ptr->CON.CPH = cph; // Clock Out Phase + ssp_ptr->CON.CPO = cpol; // Clock Out Polarity ssp_ptr->CON.DSS = SSP_DATA_SIZE_16; // Data Size Select, 16 bit data ssp_ptr->CON.SOD = SSP_OUTPUT_NOT_DRIVE; // Slave Output Disable diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index 6fbcd3f2..2cd36c57 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -31,7 +31,7 @@ typedef enum volatile uint16_t ssp_data[10]; volatile uint16_t data_num; -extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t cph, uint8_t cpol); +extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint8_t cph, uint8_t cpol); extern void ssp_deinit(SSP_TYPE ssp); extern uint32_t ssp_write_one(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t data); extern uint32_t ssp_write_multi(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t *data, uint32_t byte_num); From 70a630ab04c86a149a2cb1966eab31671baa9ad1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:20:07 +0200 Subject: [PATCH 056/219] add SPI mode mini cheat sheet --- firmware/src/ssp/ssp_func.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index 2cd36c57..5cc80f40 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -16,6 +16,13 @@ #include "src/common.h" +// SPI mode Clock polarity Clock phase +// (CPOL) (CPHA) +// 0 0 0 +// 1 0 1 +// 2 1 0 +// 3 1 1 + #define DF_SSP_BUSY_TICK (25000u) // use to check the busy tick // Interrupt Enable Enumeration Type From 8e86d265495c1eb60a407cc706b481cbbca5fd7f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:20:33 +0200 Subject: [PATCH 057/219] add raw sensor angle reporting to device spec --- docs/protocol/reference.rst | 401 ++++++++++++------ firmware/src/can/can_endpoints.c | 28 +- firmware/src/can/can_endpoints.h | 78 ++-- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 10 + 4 files changed, 362 insertions(+), 155 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index cd71da92..4a5d9a58 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -10,11 +10,12 @@ protocol_hash ------------------------------------------------------------------- ID: 0 + Type: uint32 -The Avlos protocol hash. +The Avlos protocol hash. @@ -22,11 +23,12 @@ uid ------------------------------------------------------------------- ID: 1 + Type: uint32 -The unique device ID, unique to each PAC55xx chip produced. +The unique device ID, unique to each PAC55xx chip produced. @@ -34,11 +36,12 @@ fw_version ------------------------------------------------------------------- ID: 2 + Type: str -The firmware version. +The firmware version. @@ -46,11 +49,12 @@ hw_revision ------------------------------------------------------------------- ID: 3 + Type: uint32 -The hardware revision. +The hardware revision. @@ -58,59 +62,64 @@ Vbus ------------------------------------------------------------------- ID: 4 + Type: float + Units: volt The measured bus voltage. - Ibus ------------------------------------------------------------------- ID: 5 + Type: float + Units: ampere The estimated bus current. Only estimates current drawn by motor. - power ------------------------------------------------------------------- ID: 6 + Type: float + Units: watt The estimated power. Only estimates power drawn by motor. - temp ------------------------------------------------------------------- ID: 7 + Type: float + Units: degree_Celsius The internal temperature of the PAC55xx MCU. - calibrated ------------------------------------------------------------------- ID: 8 + Type: bool -Whether the system has been calibrated. +Whether the system has been calibrated. @@ -118,83 +127,98 @@ errors ------------------------------------------------------------------- ID: 9 + Type: uint8 + Any system errors, as a bitmask Flags: + - UNDERVOLTAGE + - DRIVER_FAULT + - CHARGE_PUMP_FAULT_STAT + - CHARGE_PUMP_FAULT + - DRV10_DISABLE + - DRV32_DISABLE -- DRV54_DISABLE +- DRV54_DISABLE save_config() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 10 + Return Type: void -Save configuration to non-volatile memory. +Save configuration to non-volatile memory. erase_config() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 11 + Return Type: void -Erase the config stored in non-volatile memory and reset the device. +Erase the config stored in non-volatile memory and reset the device. reset() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 12 + Return Type: void -Reset the device. +Reset the device. enter_dfu() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 13 + Return Type: void -Enter DFU mode. +Enter DFU mode. scheduler.errors ------------------------------------------------------------------- ID: 14 + Type: uint8 + Any scheduler errors, as a bitmask Flags: -- CONTROL_BLOCK_REENTERED +- CONTROL_BLOCK_REENTERED controller.state ------------------------------------------------------------------- ID: 15 + Type: uint8 -The state of the controller. +The state of the controller. @@ -202,11 +226,12 @@ controller.mode ------------------------------------------------------------------- ID: 16 + Type: uint8 -The control mode of the controller. +The control mode of the controller. @@ -214,51 +239,59 @@ controller.warnings ------------------------------------------------------------------- ID: 17 + Type: uint8 + Any controller warnings, as a bitmask Flags: + - VELOCITY_LIMITED + - CURRENT_LIMITED -- MODULATION_LIMITED +- MODULATION_LIMITED controller.errors ------------------------------------------------------------------- ID: 18 + Type: uint8 + Any controller errors, as a bitmask Flags: -- CURRENT_LIMIT_EXCEEDED +- CURRENT_LIMIT_EXCEEDED controller.position.setpoint ------------------------------------------------------------------- ID: 19 + Type: float + Units: tick The position setpoint. - controller.position.p_gain ------------------------------------------------------------------- ID: 20 + Type: float -The proportional gain of the position controller. +The proportional gain of the position controller. @@ -266,35 +299,38 @@ controller.velocity.setpoint ------------------------------------------------------------------- ID: 21 + Type: float + Units: tick / second The velocity setpoint. - controller.velocity.limit ------------------------------------------------------------------- ID: 22 + Type: float + Units: tick / second The velocity limit. - controller.velocity.p_gain ------------------------------------------------------------------- ID: 23 + Type: float -The proportional gain of the velocity controller. +The proportional gain of the velocity controller. @@ -302,11 +338,12 @@ controller.velocity.i_gain ------------------------------------------------------------------- ID: 24 + Type: float -The integral gain of the velocity controller. +The integral gain of the velocity controller. @@ -316,23 +353,25 @@ controller.velocity.deadband ------------------------------------------------------------------- ID: 25 + Type: float + Units: tick The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. - controller.velocity.increment ------------------------------------------------------------------- ID: 26 + Type: float -Max velocity setpoint increment (ramping) rate. Set to 0 to disable. +Max velocity setpoint increment (ramping) rate. Set to 0 to disable. @@ -340,71 +379,77 @@ controller.current.Iq_setpoint ------------------------------------------------------------------- ID: 27 + Type: float + Units: ampere The Iq setpoint. - controller.current.Id_setpoint ------------------------------------------------------------------- ID: 28 + Type: float + Units: ampere The Id setpoint. - controller.current.Iq_limit ------------------------------------------------------------------- ID: 29 + Type: float + Units: ampere The Iq limit. - controller.current.Iq_estimate ------------------------------------------------------------------- ID: 30 + Type: float + Units: ampere The Iq estimate. - controller.current.bandwidth ------------------------------------------------------------------- ID: 31 + Type: float + Units: hertz The current controller bandwidth. - controller.current.Iq_p_gain ------------------------------------------------------------------- ID: 32 + Type: float -The current controller proportional gain. +The current controller proportional gain. @@ -412,97 +457,106 @@ controller.current.max_Ibus_regen ------------------------------------------------------------------- ID: 33 + Type: float + Units: ampere The max current allowed to be fed back to the power source before flux braking activates. - controller.current.max_Ibrake ------------------------------------------------------------------- ID: 34 + Type: float + Units: ampere The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. - controller.voltage.Vq_setpoint ------------------------------------------------------------------- ID: 35 + Type: float + Units: volt The Vq setpoint. - calibrate() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 36 + Return Type: void -Calibrate the device. +Calibrate the device. idle() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 37 + Return Type: void -Set idle mode, disabling the driver. +Set idle mode, disabling the driver. position_mode() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 38 + Return Type: void -Set position control mode. +Set position control mode. velocity_mode() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 39 + Return Type: void -Set velocity control mode. +Set velocity control mode. current_mode() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- ID: 40 + Return Type: void -Set current control mode. +Set current control mode. -set_pos_vel_setpoints(pos_setpoint, vel_setpoint) -> float -------------------------------------------------------------------- +set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint) -> float +-------------------------------------------------------------------------------------------- ID: 41 + Return Type: float -Set the position and velocity setpoints in one go, and retrieve the position estimate +Set the position and velocity setpoints in one go, and retrieve the position estimate .. _api-can-rate: @@ -510,11 +564,12 @@ comms.can.rate ------------------------------------------------------------------- ID: 42 + Type: uint32 -The baud rate of the CAN interface. +The baud rate of the CAN interface. @@ -522,11 +577,12 @@ comms.can.id ------------------------------------------------------------------- ID: 43 + Type: uint32 -The ID of the CAN interface. +The ID of the CAN interface. @@ -534,35 +590,38 @@ motor.R ------------------------------------------------------------------- ID: 44 + Type: float + Units: ohm The motor Resistance value. - motor.L ------------------------------------------------------------------- ID: 45 + Type: float + Units: henry The motor Inductance value. - motor.pole_pairs ------------------------------------------------------------------- ID: 46 + Type: uint8 -The motor pole pair count. +The motor pole pair count. @@ -570,25 +629,29 @@ motor.type ------------------------------------------------------------------- ID: 47 + Type: uint8 + The type of the motor. Either high current or gimbal. Options: + - HIGH_CURRENT -- GIMBAL +- GIMBAL motor.offset ------------------------------------------------------------------- ID: 48 + Type: float -User-defined offset of the motor. +User-defined offset of the motor. @@ -596,11 +659,12 @@ motor.direction ------------------------------------------------------------------- ID: 49 + Type: int8 -User-defined direction of the motor. +User-defined direction of the motor. @@ -608,11 +672,12 @@ motor.calibrated ------------------------------------------------------------------- ID: 50 + Type: bool -Whether the motor has been calibrated. +Whether the motor has been calibrated. @@ -620,38 +685,44 @@ motor.I_cal ------------------------------------------------------------------- ID: 51 + Type: float + Units: ampere The calibration current. - motor.errors ------------------------------------------------------------------- ID: 52 + Type: uint8 + Any motor/calibration errors, as a bitmask Flags: + - PHASE_RESISTANCE_OUT_OF_RANGE + - PHASE_INDUCTANCE_OUT_OF_RANGE -- INVALID_POLE_PAIRS +- INVALID_POLE_PAIRS sensors.setup.onboard.calibrated ------------------------------------------------------------------- ID: 53 + Type: bool -Whether the sensor has been calibrated. +Whether the sensor has been calibrated. @@ -659,40 +730,48 @@ sensors.setup.onboard.errors ------------------------------------------------------------------- ID: 54 + Type: uint8 + Any sensor errors, as a bitmask Flags: + - CALIBRATION_FAILED -- READING_UNSTABLE +- READING_UNSTABLE sensors.setup.external_spi.type ------------------------------------------------------------------- ID: 55 + Type: uint8 + The type of external sensor type. Either MA7XX, AS5047 or AMT22. Options: + - MA7XX + - AS5047 -- AMT22 +- AMT22 sensors.setup.external_spi.calibrated ------------------------------------------------------------------- ID: 56 + Type: bool -Whether the sensor has been calibrated. +Whether the sensor has been calibrated. @@ -700,25 +779,29 @@ sensors.setup.external_spi.errors ------------------------------------------------------------------- ID: 57 + Type: uint8 + Any sensor errors, as a bitmask Flags: + - CALIBRATION_FAILED -- READING_UNSTABLE +- READING_UNSTABLE sensors.setup.hall.calibrated ------------------------------------------------------------------- ID: 58 + Type: bool -Whether the sensor has been calibrated. +Whether the sensor has been calibrated. @@ -726,352 +809,418 @@ sensors.setup.hall.errors ------------------------------------------------------------------- ID: 59 + Type: uint8 + Any sensor errors, as a bitmask Flags: + - CALIBRATION_FAILED -- READING_UNSTABLE +- READING_UNSTABLE sensors.select.position.connection ------------------------------------------------------------------- ID: 60 + Type: uint8 + The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. Options: + - ONBOARD + - EXTERNAL_SPI -- HALL +- HALL sensors.select.position.bandwidth ------------------------------------------------------------------- ID: 61 + Type: float + Units: hertz The position sensor observer bandwidth. +sensors.select.position.raw_angle +------------------------------------------------------------------- + +ID: 62 + +Type: int32 + + + +The raw position sensor angle. + + sensors.select.position.position_estimate ------------------------------------------------------------------- -ID: 62 +ID: 63 + Type: float + Units: tick The filtered position sensor position estimate. - sensors.select.position.velocity_estimate ------------------------------------------------------------------- -ID: 63 +ID: 64 + Type: float + Units: tick / second The filtered position sensor velocity estimate. - sensors.select.commutation.connection ------------------------------------------------------------------- -ID: 64 +ID: 65 + Type: uint8 + The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. Options: + - ONBOARD + - EXTERNAL_SPI -- HALL +- HALL sensors.select.commutation.bandwidth ------------------------------------------------------------------- -ID: 65 +ID: 66 + Type: float + Units: hertz The commutation sensor observer bandwidth. +sensors.select.commutation.raw_angle +------------------------------------------------------------------- + +ID: 67 + +Type: int32 + + + +The raw commutation sensor angle. + + sensors.select.commutation.position_estimate ------------------------------------------------------------------- -ID: 66 +ID: 68 + Type: float + Units: tick The filtered commutation sensor position estimate. - sensors.select.commutation.velocity_estimate ------------------------------------------------------------------- -ID: 67 +ID: 69 + Type: float + Units: tick / second The filtered commutation sensor velocity estimate. - traj_planner.max_accel ------------------------------------------------------------------- -ID: 68 +ID: 70 + Type: float + Units: tick / second The max allowed acceleration of the generated trajectory. - traj_planner.max_decel ------------------------------------------------------------------- -ID: 69 +ID: 71 + Type: float + Units: tick / second ** 2 The max allowed deceleration of the generated trajectory. - traj_planner.max_vel ------------------------------------------------------------------- -ID: 70 +ID: 72 + Type: float + Units: tick / second The max allowed cruise velocity of the generated trajectory. - traj_planner.t_accel ------------------------------------------------------------------- -ID: 71 +ID: 73 + Type: float + Units: second In time mode, the acceleration time of the generated trajectory. - traj_planner.t_decel ------------------------------------------------------------------- -ID: 72 +ID: 74 + Type: float + Units: second In time mode, the deceleration time of the generated trajectory. - traj_planner.t_total ------------------------------------------------------------------- -ID: 73 +ID: 75 + Type: float + Units: second In time mode, the total time of the generated trajectory. +move_to(float pos_setpoint) -> void +-------------------------------------------------------------------------------------------- -move_to(pos_setpoint) -> void -------------------------------------------------------------------- +ID: 76 -ID: 74 Return Type: void + Move to target position respecting velocity and acceleration limits. +move_to_tlimit(float pos_setpoint) -> void +-------------------------------------------------------------------------------------------- -move_to_tlimit(pos_setpoint) -> void -------------------------------------------------------------------- +ID: 77 -ID: 75 Return Type: void -Move to target position respecting time limits for each sector. +Move to target position respecting time limits for each sector. traj_planner.errors ------------------------------------------------------------------- -ID: 76 +ID: 78 + Type: uint8 + Any errors in the trajectory planner, as a bitmask Flags: + - INVALID_INPUT -- VCRUISE_OVER_LIMIT +- VCRUISE_OVER_LIMIT homing.velocity ------------------------------------------------------------------- -ID: 77 +ID: 79 + Type: float + Units: tick / second The velocity at which the motor performs homing. - homing.max_homing_t ------------------------------------------------------------------- -ID: 78 +ID: 80 + Type: float + Units: second The maximum time the motor is allowed to travel before homing times out and aborts. - homing.retract_dist ------------------------------------------------------------------- -ID: 79 +ID: 81 + Type: float + Units: tick The retraction distance the motor travels after the endstop has been found. - homing.warnings ------------------------------------------------------------------- -ID: 80 +ID: 82 + Type: uint8 + Any homing warnings, as a bitmask Flags: -- HOMING_TIMEOUT +- HOMING_TIMEOUT homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 81 +ID: 83 + Type: float + Units: tick / second The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. - homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 82 +ID: 84 + Type: float + Units: tick The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. - homing.stall_detect.t ------------------------------------------------------------------- -ID: 83 +ID: 85 + Type: float + Units: second The time to remain in stall detection mode before the motor is considered stalled. - home() -> void -------------------------------------------------------------------- +-------------------------------------------------------------------------------------------- + +ID: 86 -ID: 84 Return Type: void -Perform the homing operation. +Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 85 +ID: 87 + Type: bool -Whether the watchdog is enabled or not. +Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 86 +ID: 88 + Type: bool -Whether the watchdog has been triggered or not. +Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 87 +ID: 89 + Type: float + Units: second The watchdog timeout period. - diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 297af1f6..4bceaf25 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,8 +18,8 @@ #include -uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 72748215; +uint8_t (*avlos_endpoints[90])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_raw_angle, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_raw_angle, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint32_t avlos_proto_hash = 3151575871; uint32_t _avlos_get_proto_hash(void) { @@ -888,6 +888,18 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_sensors_select_position_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + int32_t v; + v = sensor_position_get_raw_angle(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { @@ -948,6 +960,18 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_sensors_select_commutation_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + int32_t v; + v = sensor_commutation_get_raw_angle(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index a77673c8..3c1903c7 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -125,7 +125,7 @@ typedef enum } sensors_select_commutation_connection_options; extern uint32_t avlos_proto_hash; -extern uint8_t (*avlos_endpoints[88])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +extern uint8_t (*avlos_endpoints[90])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -872,12 +872,24 @@ uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buf */ uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_sensors_select_position_raw_angle +* +* The raw position sensor angle. +* +* Endpoint ID: 62 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_select_position_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_sensors_select_position_position_estimate * * The filtered position sensor position estimate. * -* Endpoint ID: 62 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -889,7 +901,7 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ * * The filtered position sensor velocity estimate. * -* Endpoint ID: 63 +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -901,7 +913,7 @@ uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_ * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 64 +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -913,19 +925,31 @@ uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * * * The commutation sensor observer bandwidth. * -* Endpoint ID: 65 +* Endpoint ID: 66 * * @param buffer * @param buffer_len */ uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_sensors_select_commutation_raw_angle +* +* The raw commutation sensor angle. +* +* Endpoint ID: 67 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_select_commutation_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_sensors_select_commutation_position_estimate * * The filtered commutation sensor position estimate. * -* Endpoint ID: 66 +* Endpoint ID: 68 * * @param buffer * @param buffer_len @@ -937,7 +961,7 @@ uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uin * * The filtered commutation sensor velocity estimate. * -* Endpoint ID: 67 +* Endpoint ID: 69 * * @param buffer * @param buffer_len @@ -949,7 +973,7 @@ uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uin * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 68 +* Endpoint ID: 70 * * @param buffer * @param buffer_len @@ -961,7 +985,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 69 +* Endpoint ID: 71 * * @param buffer * @param buffer_len @@ -973,7 +997,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 70 +* Endpoint ID: 72 * * @param buffer * @param buffer_len @@ -985,7 +1009,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 71 +* Endpoint ID: 73 * * @param buffer * @param buffer_len @@ -997,7 +1021,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 72 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -1009,7 +1033,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 73 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -1021,7 +1045,7 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting velocity and acceleration limits. * -* Endpoint ID: 74 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -1033,7 +1057,7 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting time limits for each sector. * -* Endpoint ID: 75 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -1045,7 +1069,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 76 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -1057,7 +1081,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 77 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -1069,7 +1093,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 78 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -1081,7 +1105,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 79 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -1093,7 +1117,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 80 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -1105,7 +1129,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 81 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -1117,7 +1141,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 82 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1129,7 +1153,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 83 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1141,7 +1165,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 84 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1153,7 +1177,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 85 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1165,7 +1189,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 86 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1177,7 +1201,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 87 +* Endpoint ID: 89 * * @param buffer * @param buffer_len diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 3d7d3615..dd3524da 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -394,6 +394,11 @@ remote_attributes: getter_name: position_observer_get_bandwidth setter_name: position_observer_set_bandwidth summary: The position sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_position_get_raw_angle + summary: The raw position sensor angle. - name: position_estimate dtype: float unit: ticks @@ -421,6 +426,11 @@ remote_attributes: getter_name: commutation_observer_get_bandwidth setter_name: commutation_observer_set_bandwidth summary: The commutation sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_commutation_get_raw_angle + summary: The raw commutation sensor angle. - name: position_estimate dtype: float unit: ticks From 155e5cf61e9c386ba9c254ebed612a3711dc9566 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 19:21:09 +0200 Subject: [PATCH 058/219] use pointer to each sensor pointer --- firmware/src/observer/observer.c | 8 ++++---- firmware/src/observer/observer.h | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index d51af118..a7b82b0d 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -21,13 +21,13 @@ #include #include -bool observer_init_with_defaults(Observer *o, Sensor *s) +bool observer_init_with_defaults(Observer *o, Sensor **s) { ObserverConfig c = {.track_bw=350}; return observer_init_with_config(o, s, &c); } -bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c) +bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c) { o->sensor_ptr = s; o->config = *c; @@ -52,8 +52,8 @@ void observer_set_bandwidth(Observer *o, float bw) void observers_init_with_defaults(void) { - observer_init_with_defaults(&commutation_observer, commutation_sensor_p); - observer_init_with_defaults(&position_observer, position_sensor_p); + observer_init_with_defaults(&commutation_observer, &commutation_sensor_p); + observer_init_with_defaults(&position_observer, &position_sensor_p); } void observers_get_config(ObserversConfig *config_) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 400e4405..ea33fc52 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -34,7 +34,7 @@ typedef struct struct Observer { ObserverConfig config; - Sensor *sensor_ptr; + Sensor **sensor_ptr; int32_t pos_sector; float pos_estimate_wrapped; float vel_estimate; @@ -50,8 +50,8 @@ typedef struct { Observer commutation_observer; Observer position_observer; -bool observer_init_with_defaults(Observer *o, Sensor *s); -bool observer_init_with_config(Observer *o, Sensor *s, ObserverConfig *c); +bool observer_init_with_defaults(Observer *o, Sensor **s); +bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c); float observer_get_bandwidth(Observer *o); void observer_set_bandwidth(Observer *o, float bw); @@ -64,9 +64,9 @@ static inline void observer_update(Observer *o) { if (o->current == false) { - const float sensor_ticks = sensor_get_ticks(o->sensor_ptr); + const float sensor_ticks = sensor_get_ticks(*(o->sensor_ptr)); const float sensor_half_ticks = sensor_ticks * 0.5f; - const int32_t angle_meas = sensor_get_angle_rectified(o->sensor_ptr); + const int32_t angle_meas = sensor_get_angle_rectified(*(o->sensor_ptr)); const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; if (delta_pos_meas < -sensor_half_ticks) @@ -102,13 +102,13 @@ static inline void observer_invalidate(Observer *o) static inline float observer_get_pos_estimate(Observer *o) { - const float primary = sensor_get_ticks(o->sensor_ptr) * o->pos_sector; + const float primary = sensor_get_ticks(*(o->sensor_ptr)) * o->pos_sector; return primary + o->pos_estimate_wrapped; } static inline float observer_get_diff(Observer *o, float target) { - const float primary = sensor_get_ticks(o->sensor_ptr) * o->pos_sector; + const float primary = sensor_get_ticks(*(o->sensor_ptr)) * o->pos_sector; const float diff_sector = target - primary; return diff_sector - o->pos_estimate_wrapped; } @@ -120,7 +120,7 @@ static inline float observer_get_vel_estimate(Observer *o) static inline float observer_get_epos(Observer *o) { - if (SENSOR_TYPE_HALL == o->sensor_ptr->config.type) + if (SENSOR_TYPE_HALL == (*(o->sensor_ptr))->config.type) { return o->pos_estimate_wrapped * twopi_by_hall_sectors; } @@ -129,7 +129,7 @@ static inline float observer_get_epos(Observer *o) static inline float observer_get_evel(Observer *o) { - if (SENSOR_TYPE_HALL == o->sensor_ptr->config.type) + if (SENSOR_TYPE_HALL == (*(o->sensor_ptr))->config.type) { return o->vel_estimate * twopi_by_hall_sectors; } From 957a9dfd19bf660092c746f27dd5166c2ac4bee8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 3 Feb 2024 20:12:22 +0200 Subject: [PATCH 059/219] add fw_version bootloader endpoint --- studio/Python/tinymovr/specs/dfu_1_1_x.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/studio/Python/tinymovr/specs/dfu_1_1_x.yaml b/studio/Python/tinymovr/specs/dfu_1_1_x.yaml index e26d1b03..1cef75e1 100644 --- a/studio/Python/tinymovr/specs/dfu_1_1_x.yaml +++ b/studio/Python/tinymovr/specs/dfu_1_1_x.yaml @@ -9,6 +9,10 @@ remote_attributes: dtype: uint32 getter_name: system_get_uid summary: The unique device ID, unique to each PAC55xx chip produced. + - name: fw_version + dtype: string + getter_name: system_get_fw_version_string + summary: The bootloader firmware version. - name: hw_revision dtype: uint32 getter_name: system_get_hw_revision From 902408aa92768e216f288b121aa7bd3802499596 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 4 Feb 2024 16:58:27 +0200 Subject: [PATCH 060/219] add size of config object --- docs/protocol/reference.rst | 165 +++++++++-------- firmware/src/can/can_endpoints.c | 16 +- firmware/src/can/can_endpoints.h | 166 ++++++++++-------- firmware/src/nvm/nvm.c | 2 + firmware/src/nvm/nvm.h | 2 + firmware/src/system/system.h | 7 + .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 4 + 7 files changed, 207 insertions(+), 155 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 4a5d9a58..36076d5f 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -194,11 +194,24 @@ Return Type: void Enter DFU mode. -scheduler.errors +config_size ------------------------------------------------------------------- ID: 14 +Type: uint32 + + + +Size (in bytes) of the configuration object. + + + +scheduler.errors +------------------------------------------------------------------- + +ID: 15 + Type: uint8 @@ -212,7 +225,7 @@ Flags: controller.state ------------------------------------------------------------------- -ID: 15 +ID: 16 Type: uint8 @@ -225,7 +238,7 @@ The state of the controller. controller.mode ------------------------------------------------------------------- -ID: 16 +ID: 17 Type: uint8 @@ -238,7 +251,7 @@ The control mode of the controller. controller.warnings ------------------------------------------------------------------- -ID: 17 +ID: 18 Type: uint8 @@ -257,7 +270,7 @@ Flags: controller.errors ------------------------------------------------------------------- -ID: 18 +ID: 19 Type: uint8 @@ -272,7 +285,7 @@ Flags: controller.position.setpoint ------------------------------------------------------------------- -ID: 19 +ID: 20 Type: float @@ -285,7 +298,7 @@ The position setpoint. controller.position.p_gain ------------------------------------------------------------------- -ID: 20 +ID: 21 Type: float @@ -298,7 +311,7 @@ The proportional gain of the position controller. controller.velocity.setpoint ------------------------------------------------------------------- -ID: 21 +ID: 22 Type: float @@ -311,7 +324,7 @@ The velocity setpoint. controller.velocity.limit ------------------------------------------------------------------- -ID: 22 +ID: 23 Type: float @@ -324,7 +337,7 @@ The velocity limit. controller.velocity.p_gain ------------------------------------------------------------------- -ID: 23 +ID: 24 Type: float @@ -337,7 +350,7 @@ The proportional gain of the velocity controller. controller.velocity.i_gain ------------------------------------------------------------------- -ID: 24 +ID: 25 Type: float @@ -352,7 +365,7 @@ The integral gain of the velocity controller. controller.velocity.deadband ------------------------------------------------------------------- -ID: 25 +ID: 26 Type: float @@ -365,7 +378,7 @@ The deadband of the velocity integrator. A region around the position setpoint w controller.velocity.increment ------------------------------------------------------------------- -ID: 26 +ID: 27 Type: float @@ -378,7 +391,7 @@ Max velocity setpoint increment (ramping) rate. Set to 0 to disable. controller.current.Iq_setpoint ------------------------------------------------------------------- -ID: 27 +ID: 28 Type: float @@ -391,7 +404,7 @@ The Iq setpoint. controller.current.Id_setpoint ------------------------------------------------------------------- -ID: 28 +ID: 29 Type: float @@ -404,7 +417,7 @@ The Id setpoint. controller.current.Iq_limit ------------------------------------------------------------------- -ID: 29 +ID: 30 Type: float @@ -417,7 +430,7 @@ The Iq limit. controller.current.Iq_estimate ------------------------------------------------------------------- -ID: 30 +ID: 31 Type: float @@ -430,7 +443,7 @@ The Iq estimate. controller.current.bandwidth ------------------------------------------------------------------- -ID: 31 +ID: 32 Type: float @@ -443,7 +456,7 @@ The current controller bandwidth. controller.current.Iq_p_gain ------------------------------------------------------------------- -ID: 32 +ID: 33 Type: float @@ -456,7 +469,7 @@ The current controller proportional gain. controller.current.max_Ibus_regen ------------------------------------------------------------------- -ID: 33 +ID: 34 Type: float @@ -469,7 +482,7 @@ The max current allowed to be fed back to the power source before flux braking a controller.current.max_Ibrake ------------------------------------------------------------------- -ID: 34 +ID: 35 Type: float @@ -482,7 +495,7 @@ The max current allowed to be dumped to the motor windings during flux braking. controller.voltage.Vq_setpoint ------------------------------------------------------------------- -ID: 35 +ID: 36 Type: float @@ -495,7 +508,7 @@ The Vq setpoint. calibrate() -> void -------------------------------------------------------------------------------------------- -ID: 36 +ID: 37 Return Type: void @@ -506,7 +519,7 @@ Calibrate the device. idle() -> void -------------------------------------------------------------------------------------------- -ID: 37 +ID: 38 Return Type: void @@ -517,7 +530,7 @@ Set idle mode, disabling the driver. position_mode() -> void -------------------------------------------------------------------------------------------- -ID: 38 +ID: 39 Return Type: void @@ -528,7 +541,7 @@ Set position control mode. velocity_mode() -> void -------------------------------------------------------------------------------------------- -ID: 39 +ID: 40 Return Type: void @@ -539,7 +552,7 @@ Set velocity control mode. current_mode() -> void -------------------------------------------------------------------------------------------- -ID: 40 +ID: 41 Return Type: void @@ -550,7 +563,7 @@ Set current control mode. set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint) -> float -------------------------------------------------------------------------------------------- -ID: 41 +ID: 42 Return Type: float @@ -563,7 +576,7 @@ Set the position and velocity setpoints in one go, and retrieve the position est comms.can.rate ------------------------------------------------------------------- -ID: 42 +ID: 43 Type: uint32 @@ -576,7 +589,7 @@ The baud rate of the CAN interface. comms.can.id ------------------------------------------------------------------- -ID: 43 +ID: 44 Type: uint32 @@ -589,7 +602,7 @@ The ID of the CAN interface. motor.R ------------------------------------------------------------------- -ID: 44 +ID: 45 Type: float @@ -602,7 +615,7 @@ The motor Resistance value. motor.L ------------------------------------------------------------------- -ID: 45 +ID: 46 Type: float @@ -615,7 +628,7 @@ The motor Inductance value. motor.pole_pairs ------------------------------------------------------------------- -ID: 46 +ID: 47 Type: uint8 @@ -628,7 +641,7 @@ The motor pole pair count. motor.type ------------------------------------------------------------------- -ID: 47 +ID: 48 Type: uint8 @@ -645,7 +658,7 @@ Options: motor.offset ------------------------------------------------------------------- -ID: 48 +ID: 49 Type: float @@ -658,7 +671,7 @@ User-defined offset of the motor. motor.direction ------------------------------------------------------------------- -ID: 49 +ID: 50 Type: int8 @@ -671,7 +684,7 @@ User-defined direction of the motor. motor.calibrated ------------------------------------------------------------------- -ID: 50 +ID: 51 Type: bool @@ -684,7 +697,7 @@ Whether the motor has been calibrated. motor.I_cal ------------------------------------------------------------------- -ID: 51 +ID: 52 Type: float @@ -697,7 +710,7 @@ The calibration current. motor.errors ------------------------------------------------------------------- -ID: 52 +ID: 53 Type: uint8 @@ -716,7 +729,7 @@ Flags: sensors.setup.onboard.calibrated ------------------------------------------------------------------- -ID: 53 +ID: 54 Type: bool @@ -729,7 +742,7 @@ Whether the sensor has been calibrated. sensors.setup.onboard.errors ------------------------------------------------------------------- -ID: 54 +ID: 55 Type: uint8 @@ -746,7 +759,7 @@ Flags: sensors.setup.external_spi.type ------------------------------------------------------------------- -ID: 55 +ID: 56 Type: uint8 @@ -765,7 +778,7 @@ Options: sensors.setup.external_spi.calibrated ------------------------------------------------------------------- -ID: 56 +ID: 57 Type: bool @@ -778,7 +791,7 @@ Whether the sensor has been calibrated. sensors.setup.external_spi.errors ------------------------------------------------------------------- -ID: 57 +ID: 58 Type: uint8 @@ -795,7 +808,7 @@ Flags: sensors.setup.hall.calibrated ------------------------------------------------------------------- -ID: 58 +ID: 59 Type: bool @@ -808,7 +821,7 @@ Whether the sensor has been calibrated. sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 59 +ID: 60 Type: uint8 @@ -825,7 +838,7 @@ Flags: sensors.select.position.connection ------------------------------------------------------------------- -ID: 60 +ID: 61 Type: uint8 @@ -844,7 +857,7 @@ Options: sensors.select.position.bandwidth ------------------------------------------------------------------- -ID: 61 +ID: 62 Type: float @@ -857,7 +870,7 @@ The position sensor observer bandwidth. sensors.select.position.raw_angle ------------------------------------------------------------------- -ID: 62 +ID: 63 Type: int32 @@ -870,7 +883,7 @@ The raw position sensor angle. sensors.select.position.position_estimate ------------------------------------------------------------------- -ID: 63 +ID: 64 Type: float @@ -883,7 +896,7 @@ The filtered position sensor position estimate. sensors.select.position.velocity_estimate ------------------------------------------------------------------- -ID: 64 +ID: 65 Type: float @@ -896,7 +909,7 @@ The filtered position sensor velocity estimate. sensors.select.commutation.connection ------------------------------------------------------------------- -ID: 65 +ID: 66 Type: uint8 @@ -915,7 +928,7 @@ Options: sensors.select.commutation.bandwidth ------------------------------------------------------------------- -ID: 66 +ID: 67 Type: float @@ -928,7 +941,7 @@ The commutation sensor observer bandwidth. sensors.select.commutation.raw_angle ------------------------------------------------------------------- -ID: 67 +ID: 68 Type: int32 @@ -941,7 +954,7 @@ The raw commutation sensor angle. sensors.select.commutation.position_estimate ------------------------------------------------------------------- -ID: 68 +ID: 69 Type: float @@ -954,7 +967,7 @@ The filtered commutation sensor position estimate. sensors.select.commutation.velocity_estimate ------------------------------------------------------------------- -ID: 69 +ID: 70 Type: float @@ -967,7 +980,7 @@ The filtered commutation sensor velocity estimate. traj_planner.max_accel ------------------------------------------------------------------- -ID: 70 +ID: 71 Type: float @@ -980,7 +993,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 71 +ID: 72 Type: float @@ -993,7 +1006,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 72 +ID: 73 Type: float @@ -1006,7 +1019,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 73 +ID: 74 Type: float @@ -1019,7 +1032,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 74 +ID: 75 Type: float @@ -1032,7 +1045,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 75 +ID: 76 Type: float @@ -1045,7 +1058,7 @@ In time mode, the total time of the generated trajectory. move_to(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 76 +ID: 77 Return Type: void @@ -1056,7 +1069,7 @@ Move to target position respecting velocity and acceleration limits. move_to_tlimit(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 77 +ID: 78 Return Type: void @@ -1067,7 +1080,7 @@ Move to target position respecting time limits for each sector. traj_planner.errors ------------------------------------------------------------------- -ID: 78 +ID: 79 Type: uint8 @@ -1084,7 +1097,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 79 +ID: 80 Type: float @@ -1097,7 +1110,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 80 +ID: 81 Type: float @@ -1110,7 +1123,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 81 +ID: 82 Type: float @@ -1123,7 +1136,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 82 +ID: 83 Type: uint8 @@ -1138,7 +1151,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 83 +ID: 84 Type: float @@ -1151,7 +1164,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 84 +ID: 85 Type: float @@ -1164,7 +1177,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 85 +ID: 86 Type: float @@ -1177,7 +1190,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void -------------------------------------------------------------------------------------------- -ID: 86 +ID: 87 Return Type: void @@ -1188,7 +1201,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 87 +ID: 88 Type: bool @@ -1201,7 +1214,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 88 +ID: 89 Type: bool @@ -1214,7 +1227,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 89 +ID: 90 Type: float diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 4bceaf25..ba4a682e 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,8 +18,8 @@ #include -uint8_t (*avlos_endpoints[90])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_raw_angle, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_raw_angle, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 3151575871; +uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_raw_angle, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_raw_angle, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint32_t avlos_proto_hash = 92779529; uint32_t _avlos_get_proto_hash(void) { @@ -171,6 +171,18 @@ uint8_t avlos_enter_dfu(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cm return AVLOS_RET_CALL; } +uint8_t avlos_config_size(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint32_t v; + v = system_get_config_size(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 3c1903c7..06632fec 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -125,7 +125,7 @@ typedef enum } sensors_select_commutation_connection_options; extern uint32_t avlos_proto_hash; -extern uint8_t (*avlos_endpoints[90])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +extern uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -296,12 +296,24 @@ uint8_t avlos_reset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); */ uint8_t avlos_enter_dfu(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_config_size +* +* Size (in bytes) of the configuration object. +* +* Endpoint ID: 14 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_config_size(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_scheduler_errors * * Any scheduler errors, as a bitmask * -* Endpoint ID: 14 +* Endpoint ID: 15 * * @param buffer * @param buffer_len @@ -313,7 +325,7 @@ uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The state of the controller. * -* Endpoint ID: 15 +* Endpoint ID: 16 * * @param buffer * @param buffer_len @@ -325,7 +337,7 @@ uint8_t avlos_controller_state(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The control mode of the controller. * -* Endpoint ID: 16 +* Endpoint ID: 17 * * @param buffer * @param buffer_len @@ -337,7 +349,7 @@ uint8_t avlos_controller_mode(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Any controller warnings, as a bitmask * -* Endpoint ID: 17 +* Endpoint ID: 18 * * @param buffer * @param buffer_len @@ -349,7 +361,7 @@ uint8_t avlos_controller_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any controller errors, as a bitmask * -* Endpoint ID: 18 +* Endpoint ID: 19 * * @param buffer * @param buffer_len @@ -361,7 +373,7 @@ uint8_t avlos_controller_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Co * * The position setpoint. * -* Endpoint ID: 19 +* Endpoint ID: 20 * * @param buffer * @param buffer_len @@ -373,7 +385,7 @@ uint8_t avlos_controller_position_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The proportional gain of the position controller. * -* Endpoint ID: 20 +* Endpoint ID: 21 * * @param buffer * @param buffer_len @@ -385,7 +397,7 @@ uint8_t avlos_controller_position_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The velocity setpoint. * -* Endpoint ID: 21 +* Endpoint ID: 22 * * @param buffer * @param buffer_len @@ -397,7 +409,7 @@ uint8_t avlos_controller_velocity_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The velocity limit. * -* Endpoint ID: 22 +* Endpoint ID: 23 * * @param buffer * @param buffer_len @@ -409,7 +421,7 @@ uint8_t avlos_controller_velocity_limit(uint8_t * buffer, uint8_t * buffer_len, * * The proportional gain of the velocity controller. * -* Endpoint ID: 23 +* Endpoint ID: 24 * * @param buffer * @param buffer_len @@ -421,7 +433,7 @@ uint8_t avlos_controller_velocity_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The integral gain of the velocity controller. * -* Endpoint ID: 24 +* Endpoint ID: 25 * * @param buffer * @param buffer_len @@ -433,7 +445,7 @@ uint8_t avlos_controller_velocity_i_gain(uint8_t * buffer, uint8_t * buffer_len, * * The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. * -* Endpoint ID: 25 +* Endpoint ID: 26 * * @param buffer * @param buffer_len @@ -445,7 +457,7 @@ uint8_t avlos_controller_velocity_deadband(uint8_t * buffer, uint8_t * buffer_le * * Max velocity setpoint increment (ramping) rate. Set to 0 to disable. * -* Endpoint ID: 26 +* Endpoint ID: 27 * * @param buffer * @param buffer_len @@ -457,7 +469,7 @@ uint8_t avlos_controller_velocity_increment(uint8_t * buffer, uint8_t * buffer_l * * The Iq setpoint. * -* Endpoint ID: 27 +* Endpoint ID: 28 * * @param buffer * @param buffer_len @@ -469,7 +481,7 @@ uint8_t avlos_controller_current_Iq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Id setpoint. * -* Endpoint ID: 28 +* Endpoint ID: 29 * * @param buffer * @param buffer_len @@ -481,7 +493,7 @@ uint8_t avlos_controller_current_Id_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Iq limit. * -* Endpoint ID: 29 +* Endpoint ID: 30 * * @param buffer * @param buffer_len @@ -493,7 +505,7 @@ uint8_t avlos_controller_current_Iq_limit(uint8_t * buffer, uint8_t * buffer_len * * The Iq estimate. * -* Endpoint ID: 30 +* Endpoint ID: 31 * * @param buffer * @param buffer_len @@ -505,7 +517,7 @@ uint8_t avlos_controller_current_Iq_estimate(uint8_t * buffer, uint8_t * buffer_ * * The current controller bandwidth. * -* Endpoint ID: 31 +* Endpoint ID: 32 * * @param buffer * @param buffer_len @@ -517,7 +529,7 @@ uint8_t avlos_controller_current_bandwidth(uint8_t * buffer, uint8_t * buffer_le * * The current controller proportional gain. * -* Endpoint ID: 32 +* Endpoint ID: 33 * * @param buffer * @param buffer_len @@ -529,7 +541,7 @@ uint8_t avlos_controller_current_Iq_p_gain(uint8_t * buffer, uint8_t * buffer_le * * The max current allowed to be fed back to the power source before flux braking activates. * -* Endpoint ID: 33 +* Endpoint ID: 34 * * @param buffer * @param buffer_len @@ -541,7 +553,7 @@ uint8_t avlos_controller_current_max_Ibus_regen(uint8_t * buffer, uint8_t * buff * * The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. * -* Endpoint ID: 34 +* Endpoint ID: 35 * * @param buffer * @param buffer_len @@ -553,7 +565,7 @@ uint8_t avlos_controller_current_max_Ibrake(uint8_t * buffer, uint8_t * buffer_l * * The Vq setpoint. * -* Endpoint ID: 35 +* Endpoint ID: 36 * * @param buffer * @param buffer_len @@ -565,7 +577,7 @@ uint8_t avlos_controller_voltage_Vq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * Calibrate the device. * -* Endpoint ID: 36 +* Endpoint ID: 37 * * @param buffer * @param buffer_len @@ -577,7 +589,7 @@ uint8_t avlos_controller_calibrate(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Set idle mode, disabling the driver. * -* Endpoint ID: 37 +* Endpoint ID: 38 * * @param buffer * @param buffer_len @@ -589,7 +601,7 @@ uint8_t avlos_controller_idle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Set position control mode. * -* Endpoint ID: 38 +* Endpoint ID: 39 * * @param buffer * @param buffer_len @@ -601,7 +613,7 @@ uint8_t avlos_controller_position_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set velocity control mode. * -* Endpoint ID: 39 +* Endpoint ID: 40 * * @param buffer * @param buffer_len @@ -613,7 +625,7 @@ uint8_t avlos_controller_velocity_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set current control mode. * -* Endpoint ID: 40 +* Endpoint ID: 41 * * @param buffer * @param buffer_len @@ -625,7 +637,7 @@ uint8_t avlos_controller_current_mode(uint8_t * buffer, uint8_t * buffer_len, Av * * Set the position and velocity setpoints in one go, and retrieve the position estimate * -* Endpoint ID: 41 +* Endpoint ID: 42 * * @param buffer * @param buffer_len @@ -637,7 +649,7 @@ uint8_t avlos_controller_set_pos_vel_setpoints(uint8_t * buffer, uint8_t * buffe * * The baud rate of the CAN interface. * -* Endpoint ID: 42 +* Endpoint ID: 43 * * @param buffer * @param buffer_len @@ -649,7 +661,7 @@ uint8_t avlos_comms_can_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comma * * The ID of the CAN interface. * -* Endpoint ID: 43 +* Endpoint ID: 44 * * @param buffer * @param buffer_len @@ -661,7 +673,7 @@ uint8_t avlos_comms_can_id(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The motor Resistance value. * -* Endpoint ID: 44 +* Endpoint ID: 45 * * @param buffer * @param buffer_len @@ -673,7 +685,7 @@ uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor Inductance value. * -* Endpoint ID: 45 +* Endpoint ID: 46 * * @param buffer * @param buffer_len @@ -685,7 +697,7 @@ uint8_t avlos_motor_L(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor pole pair count. * -* Endpoint ID: 46 +* Endpoint ID: 47 * * @param buffer * @param buffer_len @@ -697,7 +709,7 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The type of the motor. Either high current or gimbal. * -* Endpoint ID: 47 +* Endpoint ID: 48 * * @param buffer * @param buffer_len @@ -709,7 +721,7 @@ uint8_t avlos_motor_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * User-defined offset of the motor. * -* Endpoint ID: 48 +* Endpoint ID: 49 * * @param buffer * @param buffer_len @@ -721,7 +733,7 @@ uint8_t avlos_motor_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * User-defined direction of the motor. * -* Endpoint ID: 49 +* Endpoint ID: 50 * * @param buffer * @param buffer_len @@ -733,7 +745,7 @@ uint8_t avlos_motor_direction(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Whether the motor has been calibrated. * -* Endpoint ID: 50 +* Endpoint ID: 51 * * @param buffer * @param buffer_len @@ -745,7 +757,7 @@ uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The calibration current. * -* Endpoint ID: 51 +* Endpoint ID: 52 * * @param buffer * @param buffer_len @@ -757,7 +769,7 @@ uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Any motor/calibration errors, as a bitmask * -* Endpoint ID: 52 +* Endpoint ID: 53 * * @param buffer * @param buffer_len @@ -769,7 +781,7 @@ uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the sensor has been calibrated. * -* Endpoint ID: 53 +* Endpoint ID: 54 * * @param buffer * @param buffer_len @@ -781,7 +793,7 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe * * Any sensor errors, as a bitmask * -* Endpoint ID: 54 +* Endpoint ID: 55 * * @param buffer * @param buffer_len @@ -793,7 +805,7 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le * * The type of external sensor type. Either MA7XX, AS5047 or AMT22. * -* Endpoint ID: 55 +* Endpoint ID: 56 * * @param buffer * @param buffer_len @@ -805,7 +817,7 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer * * Whether the sensor has been calibrated. * -* Endpoint ID: 56 +* Endpoint ID: 57 * * @param buffer * @param buffer_len @@ -817,7 +829,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * -* Endpoint ID: 57 +* Endpoint ID: 58 * * @param buffer * @param buffer_len @@ -829,7 +841,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * -* Endpoint ID: 58 +* Endpoint ID: 59 * * @param buffer * @param buffer_len @@ -841,7 +853,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * -* Endpoint ID: 59 +* Endpoint ID: 60 * * @param buffer * @param buffer_len @@ -853,7 +865,7 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, * * The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 60 +* Endpoint ID: 61 * * @param buffer * @param buffer_len @@ -865,7 +877,7 @@ uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buf * * The position sensor observer bandwidth. * -* Endpoint ID: 61 +* Endpoint ID: 62 * * @param buffer * @param buffer_len @@ -877,7 +889,7 @@ uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buff * * The raw position sensor angle. * -* Endpoint ID: 62 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -889,7 +901,7 @@ uint8_t avlos_sensors_select_position_raw_angle(uint8_t * buffer, uint8_t * buff * * The filtered position sensor position estimate. * -* Endpoint ID: 63 +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -901,7 +913,7 @@ uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_ * * The filtered position sensor velocity estimate. * -* Endpoint ID: 64 +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -913,7 +925,7 @@ uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_ * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 65 +* Endpoint ID: 66 * * @param buffer * @param buffer_len @@ -925,7 +937,7 @@ uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * * * The commutation sensor observer bandwidth. * -* Endpoint ID: 66 +* Endpoint ID: 67 * * @param buffer * @param buffer_len @@ -937,7 +949,7 @@ uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * b * * The raw commutation sensor angle. * -* Endpoint ID: 67 +* Endpoint ID: 68 * * @param buffer * @param buffer_len @@ -949,7 +961,7 @@ uint8_t avlos_sensors_select_commutation_raw_angle(uint8_t * buffer, uint8_t * b * * The filtered commutation sensor position estimate. * -* Endpoint ID: 68 +* Endpoint ID: 69 * * @param buffer * @param buffer_len @@ -961,7 +973,7 @@ uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uin * * The filtered commutation sensor velocity estimate. * -* Endpoint ID: 69 +* Endpoint ID: 70 * * @param buffer * @param buffer_len @@ -973,7 +985,7 @@ uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uin * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 70 +* Endpoint ID: 71 * * @param buffer * @param buffer_len @@ -985,7 +997,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 71 +* Endpoint ID: 72 * * @param buffer * @param buffer_len @@ -997,7 +1009,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 72 +* Endpoint ID: 73 * * @param buffer * @param buffer_len @@ -1009,7 +1021,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 73 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -1021,7 +1033,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 74 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -1033,7 +1045,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 75 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -1045,7 +1057,7 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting velocity and acceleration limits. * -* Endpoint ID: 76 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -1057,7 +1069,7 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position respecting time limits for each sector. * -* Endpoint ID: 77 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -1069,7 +1081,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 78 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -1081,7 +1093,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 79 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -1093,7 +1105,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 80 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -1105,7 +1117,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 81 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -1117,7 +1129,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 82 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -1129,7 +1141,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 83 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1141,7 +1153,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 84 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1153,7 +1165,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 85 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1165,7 +1177,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 86 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1177,7 +1189,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 87 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1189,7 +1201,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 88 +* Endpoint ID: 89 * * @param buffer * @param buffer_len @@ -1201,7 +1213,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 89 +* Endpoint ID: 90 * * @param buffer * @param buffer_len diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index ca634838..75658f14 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -23,6 +23,8 @@ static struct NVMStruct s; +const uint32_t config_size = sizeof(struct NVMStruct); + bool nvm_save_config(void) { bool commited = false; diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index 0ba31fc5..8e257eee 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -41,6 +41,8 @@ struct NVMStruct { char version[16]; }; +extern const uint32_t config_size; + bool nvm_save_config(void); bool nvm_load_config(void); void nvm_erase(void); diff --git a/firmware/src/system/system.h b/firmware/src/system/system.h index a33dddc3..93e29604 100644 --- a/firmware/src/system/system.h +++ b/firmware/src/system/system.h @@ -39,6 +39,8 @@ void system_reset(void); void system_enter_dfu(void); void system_reset_calibration(void); +extern const uint32_t config_size; + static inline uint8_t system_get_fw_version_string(char *buffer) { const uint8_t size = fminf(sizeof(GIT_VERSION), 8); @@ -56,6 +58,11 @@ static inline uint32_t system_get_hw_revision(void) return BOARD_REV_IDX; } +static inline uint32_t system_get_config_size(void) +{ + return config_size; +} + void system_reset_calibration(void); float system_get_Vbus(void); bool system_get_calibrated(void); diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index dd3524da..9b341231 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -74,6 +74,10 @@ remote_attributes: dtype: void arguments: [] meta: {reload_data: True} + - name: config_size + summary: Size (in bytes) of the configuration object. + getter_name: system_get_config_size + dtype: uint32 - name: scheduler remote_attributes: - name: errors From 542c0f1aa84d78b83e6ad4233d4168474e70b5e6 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 4 Feb 2024 16:58:52 +0200 Subject: [PATCH 061/219] basic sensor working with m5 --- firmware/src/sensor/as5047.c | 5 +++++ firmware/src/sensor/as5047.h | 4 +++- firmware/src/sensor/sensors.c | 22 ++++++++++++++++++---- firmware/src/sensor/sensors.h | 10 ++++++++++ firmware/src/ssp/ssp_func.c | 24 ++++++++++++++++++++++-- 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 6b65c22d..f8ce84a1 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -72,3 +72,8 @@ bool as5047p_calibrate(Sensor *s, Observer *o) { return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); } + +void as5047p_get_ss_config(Sensor *s, void* buffer) +{ + +} \ No newline at end of file diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index 3240bae3..b1a603d4 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -49,6 +49,7 @@ bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); void as5047p_deinit(Sensor *s); void as5047p_reset(Sensor *s); bool as5047p_calibrate(Sensor *s, Observer *o); +void as5047p_get_ss_config(Sensor *s, void* buffer); static inline bool as5047p_is_calibrated(const Sensor *s) { @@ -73,7 +74,8 @@ static inline int32_t as5047p_get_raw_angle(const Sensor *s) static inline void as5047p_update(Sensor *s, bool check_error) { AS5047PSensor *as = (AS5047PSensor *)s; - const int32_t angle = ssp_read_one(as->config.ssp_struct) & 0x3FFF; // Mask to get the angle value + volatile uint16_t read_value = ssp_read_one(as->config.ssp_struct); + const int32_t angle = read_value & 0x3FFF; // Mask to get the angle value if (check_error) { const int32_t delta = as->angle - angle; diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index d802df1e..81e5e360 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -34,8 +34,19 @@ bool sensor_init_with_defaults(Sensor *s) return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); break; case SENSOR_CONNECTION_EXTERNAL_SPI: - ma7xx_make_blank_sensor(s); - return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + switch (s->config.type) + { + case SENSOR_TYPE_MA7XX: + ma7xx_make_blank_sensor(s); + return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + case SENSOR_TYPE_AS5047: + as5047p_make_blank_sensor(s); + return as5047p_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + default: + break; + } break; case SENSOR_CONNECTION_HALL: hall_make_blank_sensor(s); @@ -151,9 +162,12 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options && (internal_type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type)) { Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); - s->deinit_func(s); + if (s->initialized) + { + s->deinit_func(s); + } sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type = internal_type; - sensors_init_with_defaults(); + sensor_init_with_defaults(s); } } diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index c8befedd..779fd2d9 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -158,3 +158,13 @@ static inline uint8_t sensor_hall_get_errors(void) { return sensors[SENSOR_CONNECTION_HALL].sensor.get_errors_func(&(sensors[SENSOR_CONNECTION_HALL].sensor)); } + +static inline int32_t sensor_commutation_get_raw_angle(void) +{ + return commutation_sensor_p->get_raw_angle_func(commutation_sensor_p); +} + +static inline int32_t sensor_position_get_raw_angle(void) +{ + return position_sensor_p->get_raw_angle_func(position_sensor_p); +} diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index 10a4fa98..72d0ed11 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -598,6 +598,26 @@ void SSPD_IO_Select_PG4567(SSP_MS_TYPE ms_mode) PAC55XX_SCC->PGMUXSEL.w |= 0x55550000; // Set Port Pin as SSP } +// void SSPD_IO_Select_PD45PF45(SSP_MS_TYPE ms_mode) +// { +// if (ms_mode == SSP_MS_MASTER) +// { +// PAC55XX_GPIOD->MODE.P4 = IO_PUSH_PULL_OUTPUT; // MOSI +// PAC55XX_GPIOD->MODE.P5 = IO_HIGH_IMPEDENCE_INPUT; // MISO +// PAC55XX_GPIOF->MODE.P4 = IO_PUSH_PULL_OUTPUT; // SCLK +// PAC55XX_GPIOF->MODE.P5 = IO_PUSH_PULL_OUTPUT; // SS + +// PAC55XX_SCC->PDPUEN.P4 = 0; +// PAC55XX_SCC->PDPUEN.P5 = 1; +// PAC55XX_SCC->PFPUEN.P4 = 0; +// PAC55XX_SCC->PFPUEN.P5 = 0; +// } +// PAC55XX_SCC->PDMUXSEL.w &= 0xFFFF00FF; // Clear Port Pin selection +// PAC55XX_SCC->PDMUXSEL.w |= 0x00007700; // Set Port Pin as SSP +// PAC55XX_SCC->PFMUXSEL.w &= 0xFFFF00FF; // Clear Port Pin selection +// PAC55XX_SCC->PFMUXSEL.w |= 0x00005500; // Set Port Pin as SSP +// } + //============================================================================== ///@brief /// Choose the SSP and Enable the IO you want @@ -641,9 +661,9 @@ void ssp_io_config(SSP_TYPE ssp, SSP_MS_TYPE ms_mode) case SSPD: // Select ssp D peripheral choose one! - SSPD_IO_Select_PD4567(ms_mode); +// SSPD_IO_Select_PD4567(ms_mode); // SSPD_IO_Select_PE4567(ms_mode); -// SSPD_IO_Select_PF4567(ms_mode); + SSPD_IO_Select_PF4567(ms_mode); // SSPD_IO_Select_PG0123(ms_mode); // SSPD_IO_Select_PG4567(ms_mode); break; From 0f74d1543b9f5588ab56da571b8686b4d045be01 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 4 Feb 2024 16:59:30 +0200 Subject: [PATCH 062/219] update DFU script to support DFU fw 1.1.x --- studio/Python/tinymovr/dfu.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/studio/Python/tinymovr/dfu.py b/studio/Python/tinymovr/dfu.py index 4b1c8d3e..1b33542e 100644 --- a/studio/Python/tinymovr/dfu.py +++ b/studio/Python/tinymovr/dfu.py @@ -15,6 +15,7 @@ import sys import os import time +import inspect from pathlib import Path import can import yaml @@ -88,12 +89,22 @@ def upload_bin(device, bin_path): """ total_size = os.path.getsize(bin_path) # Get the total size of .bin file uploaded_size = 0 + print("\nErasing flash...") - result = device.erase_all() + + # Check if the erase_all function supports hash_validation parameter + if 'hash_validation' in inspect.signature(device.erase_all).parameters: + # Call erase_all with hash_validation, using the device's specified hash + result = device.erase_all(device.hash_uint32) + else: + # If not, call erase_all without hash_validation + result = device.erase_all() + if result != 0: print("\nError while erasing!") return print("Done.") + with Progress() as progress: task2 = progress.add_task("[orange]Flashing...", total=total_size) with open(bin_path, "rb") as bin_file: @@ -110,7 +121,13 @@ def upload_bin(device, bin_path): time.sleep(1e-5) # Commit the data in scratchpad to flash memory and get checksum - device_checksum = device.commit(flash_addr) + # Check if the commit function supports hash_validation parameter + if 'hash_validation' in inspect.signature(device.commit).parameters: + # Call commit with hash_validation, using the device's specified hash + device_checksum = device.commit(flash_addr, device.hash_uint32) + else: + # If not, call commit without hash_validation + device_checksum = device.commit(flash_addr) local_checksum = calculate_local_checksum(chunk) From 4860a57e1018b77edffe90fe836c28a7b714d314 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 6 Feb 2024 23:30:04 +0200 Subject: [PATCH 063/219] update enums --- avlos_config.yaml | 2 + docs/protocol/reference.rst | 16 ++ firmware/src/adc/adc.c | 5 +- firmware/src/can/can_endpoints.c | 2 +- firmware/src/can/can_endpoints.h | 116 +-------------- firmware/src/controller/controller.c | 68 ++++----- firmware/src/controller/controller.h | 40 ++--- firmware/src/controller/homing_planner.c | 4 +- firmware/src/controller/trajectory_planner.c | 4 +- firmware/src/nvm/nvm.c | 4 +- firmware/src/sensor/sensors.c | 4 +- firmware/src/tm_enums.h | 140 ++++++++++++++++++ firmware/src/uart/uart_interface.c | 12 +- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 4 +- 14 files changed, 225 insertions(+), 196 deletions(-) create mode 100644 firmware/src/tm_enums.h diff --git a/avlos_config.yaml b/avlos_config.yaml index 531bcc84..7ac383bd 100644 --- a/avlos_config.yaml +++ b/avlos_config.yaml @@ -5,10 +5,12 @@ generators: generator_c: enabled: true paths: + output_enums: ./firmware/src/tm_enums.h output_header: ./firmware/src/can/can_endpoints.h output_impl: ./firmware/src/can/can_endpoints.c header_includes: - src/common.h + - src/tm_enums.h impl_includes: - - src/adc/adc.h diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 36076d5f..de515a5d 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -233,7 +233,13 @@ Type: uint8 The state of the controller. +Options: + +- IDLE +- CALIBRATE + +- CL_CONTROL controller.mode ------------------------------------------------------------------- @@ -246,7 +252,17 @@ Type: uint8 The control mode of the controller. +Options: + +- CURRENT + +- VELOCITY + +- POSITION + +- TRAJECTORY +- HOMING controller.warnings ------------------------------------------------------------------- diff --git a/firmware/src/adc/adc.c b/firmware/src/adc/adc.c index 64bb5c06..30a5441a 100644 --- a/firmware/src/adc/adc.c +++ b/firmware/src/adc/adc.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -265,13 +266,13 @@ TM_RAMFUNC void ADC_update(void) { switch (controller_get_state()) { - case STATE_CALIBRATE: + case CONTROLLER_STATE_CALIBRATE: { adc_config.I_phase_offset.A += (((float)PAC55XX_ADC->DTSERES6.VAL * SHUNT_SCALING_FACTOR) - adc_config.I_phase_offset.A) * adc_state.I_phase_offset_D; adc_config.I_phase_offset.B += (((float)PAC55XX_ADC->DTSERES8.VAL * SHUNT_SCALING_FACTOR) - adc_config.I_phase_offset.B) * adc_state.I_phase_offset_D; adc_config.I_phase_offset.C += (((float)PAC55XX_ADC->DTSERES10.VAL * SHUNT_SCALING_FACTOR) - adc_config.I_phase_offset.C) * adc_state.I_phase_offset_D; } - case STATE_CL_CONTROL: + case CONTROLLER_STATE_CL_CONTROL: { const float i_a = (((float)PAC55XX_ADC->DTSERES14.VAL * SHUNT_SCALING_FACTOR) - adc_config.I_phase_offset.A); const float i_b = (((float)PAC55XX_ADC->DTSERES16.VAL * SHUNT_SCALING_FACTOR) - adc_config.I_phase_offset.B); diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index ba4a682e..209b7adb 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -19,7 +19,7 @@ uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_raw_angle, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_raw_angle, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 92779529; +uint32_t avlos_proto_hash = 484227084; uint32_t _avlos_get_proto_hash(void) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 06632fec..65fc139b 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -8,121 +8,7 @@ #pragma once #include - -typedef enum -{ - AVLOS_RET_NOACTION, - AVLOS_RET_READ = 1, - AVLOS_RET_WRITE = 2, - AVLOS_RET_CALL = 3 -} Avlos_Return; - -typedef enum -{ - AVLOS_CMD_WRITE, - AVLOS_CMD_READ = 1 -} Avlos_Command; - -typedef enum -{ - ERRORS_NONE = 0, - ERRORS_UNDERVOLTAGE = (1 << 0), - ERRORS_DRIVER_FAULT = (1 << 1), - ERRORS_CHARGE_PUMP_FAULT_STAT = (1 << 2), - ERRORS_CHARGE_PUMP_FAULT = (1 << 3), - ERRORS_DRV10_DISABLE = (1 << 4), - ERRORS_DRV32_DISABLE = (1 << 5), - ERRORS_DRV54_DISABLE = (1 << 6) -} errors_flags; - -typedef enum -{ - SCHEDULER_ERRORS_NONE = 0, - SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED = (1 << 0) -} scheduler_errors_flags; - -typedef enum -{ - CONTROLLER_WARNINGS_NONE = 0, - CONTROLLER_WARNINGS_VELOCITY_LIMITED = (1 << 0), - CONTROLLER_WARNINGS_CURRENT_LIMITED = (1 << 1), - CONTROLLER_WARNINGS_MODULATION_LIMITED = (1 << 2) -} controller_warnings_flags; - -typedef enum -{ - CONTROLLER_ERRORS_NONE = 0, - CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED = (1 << 0) -} controller_errors_flags; - -typedef enum -{ - MOTOR_ERRORS_NONE = 0, - MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE = (1 << 0), - MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE = (1 << 1), - MOTOR_ERRORS_INVALID_POLE_PAIRS = (1 << 2) -} motor_errors_flags; - -typedef enum -{ - SENSORS_SETUP_ONBOARD_ERRORS_NONE = 0, - SENSORS_SETUP_ONBOARD_ERRORS_CALIBRATION_FAILED = (1 << 0), - SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE = (1 << 1) -} sensors_setup_onboard_errors_flags; - -typedef enum -{ - SENSORS_SETUP_EXTERNAL_SPI_ERRORS_NONE = 0, - SENSORS_SETUP_EXTERNAL_SPI_ERRORS_CALIBRATION_FAILED = (1 << 0), - SENSORS_SETUP_EXTERNAL_SPI_ERRORS_READING_UNSTABLE = (1 << 1) -} sensors_setup_external_spi_errors_flags; - -typedef enum -{ - SENSORS_SETUP_HALL_ERRORS_NONE = 0, - SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED = (1 << 0), - SENSORS_SETUP_HALL_ERRORS_READING_UNSTABLE = (1 << 1) -} sensors_setup_hall_errors_flags; - -typedef enum -{ - TRAJ_PLANNER_ERRORS_NONE = 0, - TRAJ_PLANNER_ERRORS_INVALID_INPUT = (1 << 0), - TRAJ_PLANNER_ERRORS_VCRUISE_OVER_LIMIT = (1 << 1) -} traj_planner_errors_flags; - -typedef enum -{ - HOMING_WARNINGS_NONE = 0, - HOMING_WARNINGS_HOMING_TIMEOUT = (1 << 0) -} homing_warnings_flags; - -typedef enum -{ - MOTOR_TYPE_HIGH_CURRENT = 0, - MOTOR_TYPE_GIMBAL = 1 -} motor_type_options; - -typedef enum -{ - SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX = 0, - SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047 = 1, - SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22 = 2 -} sensors_setup_external_spi_type_options; - -typedef enum -{ - SENSORS_SELECT_POSITION_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_POSITION_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_POSITION_CONNECTION_HALL = 2 -} sensors_select_position_connection_options; - -typedef enum -{ - SENSORS_SELECT_COMMUTATION_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_COMMUTATION_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_COMMUTATION_CONNECTION_HALL = 2 -} sensors_select_commutation_connection_options; +#include extern uint32_t avlos_proto_hash; extern uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 9a4c1ef0..7cf47a46 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -34,8 +34,8 @@ static inline bool Controller_LimitVelocity(float min_limit, float max_limit, fl static MotionPlan motion_plan; static ControllerState state = { - .state = STATE_IDLE, - .mode = CTRL_CURRENT, + .state = CONTROLLER_STATE_IDLE, + .mode = CONTROLLER_MODE_CURRENT, .errors = CONTROLLER_ERRORS_NONE, .is_calibrating = false, @@ -112,26 +112,26 @@ void Controller_ControlLoop(void) { state.errors |= CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED; } - if (errors_exist() && (state.state != STATE_IDLE)) + if (errors_exist() && (state.state != CONTROLLER_STATE_IDLE)) { - controller_set_state(STATE_IDLE); + controller_set_state(CONTROLLER_STATE_IDLE); } - if (state.state == STATE_CALIBRATE) + if (state.state == CONTROLLER_STATE_CALIBRATE) { state.is_calibrating = true; system_reset_calibration(); (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); (void)(sensors_calibrate()); state.is_calibrating = false; - controller_set_state(STATE_IDLE); + controller_set_state(CONTROLLER_STATE_IDLE); } - else if (state.state == STATE_CL_CONTROL) + else if (state.state == CONTROLLER_STATE_CL_CONTROL) { // Check the watchdog and revert to idle if it has timed out if (Watchdog_triggered()) { - controller_set_state(STATE_IDLE); + controller_set_state(CONTROLLER_STATE_IDLE); Watchdog_reset(); } else @@ -151,22 +151,22 @@ TM_RAMFUNC void CLControlStep(void) { switch (state.mode) { - case CTRL_TRAJECTORY: + case CONTROLLER_MODE_TRAJECTORY: state.t_plan += PWM_PERIOD_S; // This will set state.pos_setpoint state.vel_setpoint (in user frame) if (!traj_planner_evaluate(state.t_plan, &motion_plan)) { // Drop to position mode on error or completion - controller_set_mode(CTRL_POSITION); + controller_set_mode(CONTROLLER_MODE_POSITION); state.t_plan = 0; } break; - case CTRL_HOMING: + case CONTROLLER_MODE_HOMING: // This will set state.pos_setpoint state.vel_setpoint (in user frame) if (!homing_planner_evaluate()) { // Drop to position mode on error or completion - controller_set_mode(CTRL_POSITION); + controller_set_mode(CONTROLLER_MODE_POSITION); } break; default: break; @@ -190,7 +190,7 @@ TM_RAMFUNC void CLControlStep(void) float vel_setpoint = state.vel_ramp_setpoint ; float vel_setpoint_integrator = state.vel_ramp_setpoint ; - if (state.mode >= CTRL_POSITION) + if (state.mode >= CONTROLLER_MODE_POSITION) { const float delta_pos = observer_get_diff(&position_observer, state.pos_setpoint); const float delta_pos_integrator = sgnf(delta_pos) * our_fmaxf(0, fabsf(delta_pos) - config.vel_integrator_deadband); @@ -201,7 +201,7 @@ TM_RAMFUNC void CLControlStep(void) const float vel_estimate = observer_get_vel_estimate(&position_observer); float Iq_setpoint = state.Iq_setpoint; - if (state.mode >= CTRL_VELOCITY) + if (state.mode >= CONTROLLER_MODE_VELOCITY) { const float delta_vel = vel_setpoint - vel_estimate; const float delta_vel_integrator = vel_setpoint_integrator - vel_estimate; @@ -305,64 +305,64 @@ TM_RAMFUNC void CLControlStep(void) } -TM_RAMFUNC ControlState controller_get_state(void) +TM_RAMFUNC controller_state_options controller_get_state(void) { return state.state; } -TM_RAMFUNC void controller_set_state(ControlState new_state) +TM_RAMFUNC void controller_set_state(controller_state_options new_state) { if ((new_state != state.state) && (false == state.is_calibrating)) { - if ((new_state == STATE_CL_CONTROL) && (state.state == STATE_IDLE) && (!errors_exist()) && motor_get_calibrated()) + if ((new_state == CONTROLLER_STATE_CL_CONTROL) && (state.state == CONTROLLER_STATE_IDLE) && (!errors_exist()) && motor_get_calibrated()) { state.pos_setpoint = observer_get_pos_estimate(&position_observer); gate_driver_enable(); - state.state = STATE_CL_CONTROL; + state.state = CONTROLLER_STATE_CL_CONTROL; } - else if ((new_state == STATE_CALIBRATE) && (state.state == STATE_IDLE) && (!errors_exist())) + else if ((new_state == CONTROLLER_STATE_CALIBRATE) && (state.state == CONTROLLER_STATE_IDLE) && (!errors_exist())) { gate_driver_enable(); - state.state = STATE_CALIBRATE; + state.state = CONTROLLER_STATE_CALIBRATE; } - else // state != STATE_IDLE --> Got to idle state anyway + else // state != CONTROLLER_STATE_IDLE --> Got to idle state anyway { gate_driver_set_duty_cycle(&three_phase_zero); gate_driver_disable(); - state.state = STATE_IDLE; + state.state = CONTROLLER_STATE_IDLE; } } } -TM_RAMFUNC ControlMode controller_get_mode(void) +TM_RAMFUNC controller_mode_options controller_get_mode(void) { return state.mode; } -TM_RAMFUNC void controller_set_mode(ControlMode new_mode) +TM_RAMFUNC void controller_set_mode(controller_mode_options new_mode) { if (new_mode != state.mode) { switch (new_mode) { - case CTRL_HOMING: - state.mode = CTRL_HOMING; + case CONTROLLER_MODE_HOMING: + state.mode = CONTROLLER_MODE_HOMING; break; - case CTRL_TRAJECTORY: - state.mode = CTRL_TRAJECTORY; + case CONTROLLER_MODE_TRAJECTORY: + state.mode = CONTROLLER_MODE_TRAJECTORY; break; - case CTRL_POSITION: - state.mode = CTRL_POSITION; + case CONTROLLER_MODE_POSITION: + state.mode = CONTROLLER_MODE_POSITION; break; - case CTRL_VELOCITY: - state.mode = CTRL_VELOCITY; + case CONTROLLER_MODE_VELOCITY: + state.mode = CONTROLLER_MODE_VELOCITY; break; - case CTRL_CURRENT: - state.mode = CTRL_CURRENT; + case CONTROLLER_MODE_CURRENT: + state.mode = CONTROLLER_MODE_CURRENT; break; default: diff --git a/firmware/src/controller/controller.h b/firmware/src/controller/controller.h index 370349f7..5d524f0e 100644 --- a/firmware/src/controller/controller.h +++ b/firmware/src/controller/controller.h @@ -19,30 +19,14 @@ #define CONTROLLER_CONTROLLER_H_ #include +#include #include #include -typedef enum -{ - STATE_IDLE = 0, - STATE_CALIBRATE = 1, - STATE_CL_CONTROL = 2 -} ControlState; - -typedef enum -{ - CTRL_CURRENT = 0, - CTRL_VELOCITY = 1, - CTRL_POSITION = 2, - CTRL_TRAJECTORY = 3, - CTRL_HOMING = 4 -} ControlMode; - typedef struct { - // TODO: State.state is very confusing, name appropriately - ControlState state; - ControlMode mode; + controller_state_options state; + controller_mode_options mode; uint8_t warnings; uint8_t errors; bool is_calibrating; @@ -85,17 +69,17 @@ typedef struct void Controller_ControlLoop(void); -ControlState controller_get_state(void); -void controller_set_state(ControlState new_state); +controller_state_options controller_get_state(void); +void controller_set_state(controller_state_options new_state); -ControlMode controller_get_mode(void); -void controller_set_mode(ControlMode mode); +controller_mode_options controller_get_mode(void); +void controller_set_mode(controller_mode_options mode); -inline void controller_calibrate(void) {controller_set_state(STATE_CALIBRATE);} -inline void controller_idle(void) {controller_set_state(STATE_IDLE);} -inline void controller_position_mode(void) {controller_set_mode(CTRL_POSITION);controller_set_state(STATE_CL_CONTROL);} -inline void controller_velocity_mode(void) {controller_set_mode(CTRL_VELOCITY);controller_set_state(STATE_CL_CONTROL);} -inline void controller_current_mode(void) {controller_set_mode(CTRL_CURRENT);controller_set_state(STATE_CL_CONTROL);} +inline void controller_calibrate(void) {controller_set_state(CONTROLLER_STATE_CALIBRATE);} +inline void controller_idle(void) {controller_set_state(CONTROLLER_STATE_IDLE);} +inline void controller_position_mode(void) {controller_set_mode(CONTROLLER_MODE_POSITION);controller_set_state(CONTROLLER_STATE_CL_CONTROL);} +inline void controller_velocity_mode(void) {controller_set_mode(CONTROLLER_MODE_VELOCITY);controller_set_state(CONTROLLER_STATE_CL_CONTROL);} +inline void controller_current_mode(void) {controller_set_mode(CONTROLLER_MODE_CURRENT);controller_set_state(CONTROLLER_STATE_CL_CONTROL);} float controller_get_pos_setpoint_user_frame(void); void controller_set_pos_setpoint_user_frame(float value); diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index f9393963..ac7b8c17 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -20,11 +20,11 @@ static HomingPlannerState state = {0}; bool homing_planner_home(void) { - if (!errors_exist() && controller_get_mode() != CTRL_HOMING) + if (!errors_exist() && controller_get_mode() != CONTROLLER_MODE_HOMING) { state.stay_t_current = 0; state.home_t_current = 0; - controller_set_mode(CTRL_HOMING); + controller_set_mode(CONTROLLER_MODE_HOMING); state.warnings = HOMING_WARNINGS_NONE; return true; } diff --git a/firmware/src/controller/trajectory_planner.c b/firmware/src/controller/trajectory_planner.c index 0c7445dc..9036eba3 100644 --- a/firmware/src/controller/trajectory_planner.c +++ b/firmware/src/controller/trajectory_planner.c @@ -40,7 +40,7 @@ bool planner_move_to_tlimit(float p_target) if (!errors_exist() && planner_prepare_plan_tlimit(p_target, config.deltat_total, config.deltat_accel, config.deltat_decel, &motion_plan)) { controller_set_motion_plan(motion_plan); - controller_set_mode(CTRL_TRAJECTORY); + controller_set_mode(CONTROLLER_MODE_TRAJECTORY); response = true; } return response; @@ -53,7 +53,7 @@ bool planner_move_to_vlimit(float p_target) if (!errors_exist() && planner_prepare_plan_vlimit(p_target, config.max_vel, config.max_accel, config.max_decel, &motion_plan)) { controller_set_motion_plan(motion_plan); - controller_set_mode(CTRL_TRAJECTORY); + controller_set_mode(CONTROLLER_MODE_TRAJECTORY); response = true; } return response; diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index 75658f14..4e877737 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -40,7 +40,7 @@ bool nvm_save_config(void) s.traj_planner_config = *traj_planner_get_config(); strlcpy(s.version, GIT_VERSION, sizeof(s.version)); memcpy(data, &s, sizeof(struct NVMStruct)); - if (STATE_IDLE == controller_get_state()) + if (CONTROLLER_STATE_IDLE == controller_get_state()) { uint8_t *dataBuffer = data; __disable_irq(); @@ -75,7 +75,7 @@ bool nvm_load_config(void) void nvm_erase(void) { - if (STATE_IDLE == controller_get_state()) + if (CONTROLLER_STATE_IDLE == controller_get_state()) { flash_erase_page(SETTINGS_PAGE); system_reset(); diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 81e5e360..0a6e215d 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -158,7 +158,7 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options break; } if (valid - && (controller_get_state() == STATE_IDLE) + && (controller_get_state() == CONTROLLER_STATE_IDLE) && (internal_type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type)) { Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); @@ -173,7 +173,7 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) { - if (controller_get_state() == STATE_IDLE + if (controller_get_state() == CONTROLLER_STATE_IDLE && new_connection != sensor_get_connection(*target_sensor) && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) { diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h new file mode 100644 index 00000000..16c7f8db --- /dev/null +++ b/firmware/src/tm_enums.h @@ -0,0 +1,140 @@ +/* +* This file was automatically generated using Avlos. +* https://github.com/tinymovr/avlos +* +* Any changes to this file will be overwritten when +* content is regenerated. +*/ + +#pragma once + +typedef enum +{ + AVLOS_RET_NOACTION, + AVLOS_RET_READ = 1, + AVLOS_RET_WRITE = 2, + AVLOS_RET_CALL = 3 +} Avlos_Return; + +typedef enum +{ + AVLOS_CMD_WRITE, + AVLOS_CMD_READ = 1 +} Avlos_Command; + +typedef enum +{ + ERRORS_NONE = 0, + ERRORS_UNDERVOLTAGE = (1 << 0), + ERRORS_DRIVER_FAULT = (1 << 1), + ERRORS_CHARGE_PUMP_FAULT_STAT = (1 << 2), + ERRORS_CHARGE_PUMP_FAULT = (1 << 3), + ERRORS_DRV10_DISABLE = (1 << 4), + ERRORS_DRV32_DISABLE = (1 << 5), + ERRORS_DRV54_DISABLE = (1 << 6) +} errors_flags; + +typedef enum +{ + SCHEDULER_ERRORS_NONE = 0, + SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED = (1 << 0) +} scheduler_errors_flags; + +typedef enum +{ + CONTROLLER_WARNINGS_NONE = 0, + CONTROLLER_WARNINGS_VELOCITY_LIMITED = (1 << 0), + CONTROLLER_WARNINGS_CURRENT_LIMITED = (1 << 1), + CONTROLLER_WARNINGS_MODULATION_LIMITED = (1 << 2) +} controller_warnings_flags; + +typedef enum +{ + CONTROLLER_ERRORS_NONE = 0, + CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED = (1 << 0) +} controller_errors_flags; + +typedef enum +{ + MOTOR_ERRORS_NONE = 0, + MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE = (1 << 0), + MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE = (1 << 1), + MOTOR_ERRORS_INVALID_POLE_PAIRS = (1 << 2) +} motor_errors_flags; + +typedef enum +{ + SENSORS_SETUP_ONBOARD_ERRORS_NONE = 0, + SENSORS_SETUP_ONBOARD_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_onboard_errors_flags; + +typedef enum +{ + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_NONE = 0, + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_EXTERNAL_SPI_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_external_spi_errors_flags; + +typedef enum +{ + SENSORS_SETUP_HALL_ERRORS_NONE = 0, + SENSORS_SETUP_HALL_ERRORS_CALIBRATION_FAILED = (1 << 0), + SENSORS_SETUP_HALL_ERRORS_READING_UNSTABLE = (1 << 1) +} sensors_setup_hall_errors_flags; + +typedef enum +{ + TRAJ_PLANNER_ERRORS_NONE = 0, + TRAJ_PLANNER_ERRORS_INVALID_INPUT = (1 << 0), + TRAJ_PLANNER_ERRORS_VCRUISE_OVER_LIMIT = (1 << 1) +} traj_planner_errors_flags; + +typedef enum +{ + HOMING_WARNINGS_NONE = 0, + HOMING_WARNINGS_HOMING_TIMEOUT = (1 << 0) +} homing_warnings_flags; + +typedef enum +{ + CONTROLLER_STATE_IDLE = 0, + CONTROLLER_STATE_CALIBRATE = 1, + CONTROLLER_STATE_CL_CONTROL = 2 +} controller_state_options; + +typedef enum +{ + CONTROLLER_MODE_CURRENT = 0, + CONTROLLER_MODE_VELOCITY = 1, + CONTROLLER_MODE_POSITION = 2, + CONTROLLER_MODE_TRAJECTORY = 3, + CONTROLLER_MODE_HOMING = 4 +} controller_mode_options; + +typedef enum +{ + MOTOR_TYPE_HIGH_CURRENT = 0, + MOTOR_TYPE_GIMBAL = 1 +} motor_type_options; + +typedef enum +{ + SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX = 0, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047 = 1, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22 = 2 +} sensors_setup_external_spi_type_options; + +typedef enum +{ + SENSORS_SELECT_POSITION_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_POSITION_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_POSITION_CONNECTION_HALL = 2 +} sensors_select_position_connection_options; + +typedef enum +{ + SENSORS_SELECT_COMMUTATION_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_COMMUTATION_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_COMMUTATION_CONNECTION_HALL = 2 +} sensors_select_commutation_connection_options; diff --git a/firmware/src/uart/uart_interface.c b/firmware/src/uart/uart_interface.c index bd411df8..71168466 100644 --- a/firmware/src/uart/uart_interface.c +++ b/firmware/src/uart/uart_interface.c @@ -36,18 +36,18 @@ void UART_WriteAddr(uint8_t addr, int32_t data) controller_set_Iq_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(0); controller_set_pos_setpoint_user_frame(data); - controller_set_mode(CTRL_POSITION); + controller_set_mode(CONTROLLER_MODE_POSITION); break; case 'V': // vel setpoint controller_set_Iq_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(data); - controller_set_mode(CTRL_VELOCITY); + controller_set_mode(CONTROLLER_MODE_VELOCITY); controller_set_vel_setpoint_user_frame((float)data); break; case 'I': // current setpoint - controller_set_mode(CTRL_CURRENT); + controller_set_mode(CONTROLLER_MODE_CURRENT); controller_set_Iq_setpoint_user_frame((float)data * ONE_OVER_UART_I_SCALING_FACTOR); break; @@ -181,15 +181,15 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'Q': // calibrate - controller_set_state(STATE_CALIBRATE); + controller_set_state(CONTROLLER_STATE_CALIBRATE); break; case 'A': // closed loop - controller_set_state(STATE_CL_CONTROL); + controller_set_state(CONTROLLER_STATE_CL_CONTROL); break; case 'Z': // idle - controller_set_state(STATE_IDLE); + controller_set_state(CONTROLLER_STATE_IDLE); break; case 'R': // reset mcu diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 9b341231..cdd45fb5 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -88,13 +88,13 @@ remote_attributes: - name: controller remote_attributes: - name: state - dtype: uint8 + options: [IDLE, CALIBRATE, CL_CONTROL] meta: {dynamic: True} getter_name: controller_get_state setter_name: controller_set_state summary: The state of the controller. - name: mode - dtype: uint8 + options: [CURRENT, VELOCITY, POSITION, TRAJECTORY, HOMING] meta: {dynamic: True} getter_name: controller_get_mode setter_name: controller_set_mode From b6f5ac9d07f40fa07a234f96b0a3b00b525d2bd7 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 6 Feb 2024 23:30:24 +0200 Subject: [PATCH 064/219] fix sensor sector calculation --- firmware/src/observer/observer.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index ea33fc52..c2de7120 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -29,7 +29,6 @@ typedef struct float track_bw; float kp; float ki; - uint8_t sensor_id; } ObserverConfig; struct Observer { @@ -102,7 +101,7 @@ static inline void observer_invalidate(Observer *o) static inline float observer_get_pos_estimate(Observer *o) { - const float primary = sensor_get_ticks(*(o->sensor_ptr)) * o->pos_sector; + const float primary = ((int32_t)sensor_get_ticks(*(o->sensor_ptr))) * o->pos_sector; return primary + o->pos_estimate_wrapped; } From b4c5fca3596d4c694e860a37ad2e66b6ca13145c Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 6 Feb 2024 23:31:22 +0200 Subject: [PATCH 065/219] set value of dropdown control --- studio/Python/tinymovr/gui/widgets.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/studio/Python/tinymovr/gui/widgets.py b/studio/Python/tinymovr/gui/widgets.py index 6914b827..bba15ec1 100644 --- a/studio/Python/tinymovr/gui/widgets.py +++ b/studio/Python/tinymovr/gui/widgets.py @@ -238,6 +238,9 @@ def _add_to_tree_cb(self): ) self.treeWidget().setItemWidget(self, 1, self.combo_box_container) + def set_text(self, value): + self.combo_box_container.combo.setCurrentIndex(self._tm_node.options[value]) + @QtCore.Slot() def _on_combobox_changed(self, index): self._tm_node.set_value(index) From d5e382d7a5a9eb7f693cc5a76ec3dda3e64a7faa Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 7 Feb 2024 21:27:40 +0200 Subject: [PATCH 066/219] introduce common sensor resolution --- firmware/src/common.h | 9 ++++---- firmware/src/controller/homing_planner.c | 8 +++---- firmware/src/controller/trajectory_planner.c | 4 ++-- firmware/src/observer/observer.h | 23 ++++++++++---------- firmware/src/sensor/as5047.c | 2 +- firmware/src/sensor/as5047.h | 14 +++++++++--- firmware/src/sensor/ma7xx.c | 2 +- firmware/src/sensor/ma7xx.h | 14 +++++++++--- firmware/src/sensor/sensor.c | 6 ++--- firmware/src/sensor/sensor.h | 8 +------ 10 files changed, 50 insertions(+), 40 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index a92e17c7..6edf67b9 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -125,9 +125,10 @@ #define TIMER_FREQ_HZ (ACLK_FREQ_HZ >> TXCTL_PS_DIV) -#define ENCODER_BITS (16) -#define ENCODER_TICKS (1 << ENCODER_BITS) -#define ENCODER_TICKS_FLOAT ((float)(ENCODER_TICKS)) +#define SENSOR_COMMON_RES_BITS (13) +#define SENSOR_COMMON_RES_TICKS (1 << SENSOR_COMMON_RES_BITS) +#define SENSOR_COMMON_RES_HALF_TICKS (SENSOR_COMMON_RES_TICKS/2) +#define SENSOR_COMMON_RES_TICKS_FLOAT ((float)(SENSOR_COMMON_RES_TICKS)) #define HALL_SECTORS (6) #define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) @@ -139,7 +140,7 @@ static const float threehalfpi = 4.7123889f; static const float pi = PI; static const float halfpi = PI * 0.5f; static const float quarterpi = PI * 0.25f; -static const float twopi_by_enc_ticks = TWOPI / ENCODER_TICKS; +static const float twopi_by_enc_ticks = TWOPI / SENSOR_COMMON_RES_TICKS; static const float twopi_by_hall_sectors = TWOPI / HALL_SECTORS; _Static_assert(TIMER_FREQ_HZ % (2*PWM_FREQ_HZ) == 0, "Timer frequency not an integer multiple of PWM frequency"); diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index ac7b8c17..c98e0771 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -8,12 +8,12 @@ #include static HomingPlannerConfig config = { - .homing_velocity = ENCODER_TICKS_FLOAT, // ticks/s + .homing_velocity = SENSOR_COMMON_RES_TICKS_FLOAT, // ticks/s .max_homing_t = 20.0f, // s - .max_stay_vel = (ENCODER_TICKS_FLOAT/2.0f), // ticks/s - .max_stay_dpos = (ENCODER_TICKS_FLOAT/8.0f), // ticks + .max_stay_vel = (SENSOR_COMMON_RES_TICKS_FLOAT/2.0f), // ticks/s + .max_stay_dpos = (SENSOR_COMMON_RES_TICKS_FLOAT/8.0f), // ticks .max_stay_t = 1.0f, // s - .retract_distance = (ENCODER_TICKS_FLOAT/8.0f) // ticks + .retract_distance = (SENSOR_COMMON_RES_TICKS_FLOAT/8.0f) // ticks }; static HomingPlannerState state = {0}; diff --git a/firmware/src/controller/trajectory_planner.c b/firmware/src/controller/trajectory_planner.c index 9036eba3..5ff670d0 100644 --- a/firmware/src/controller/trajectory_planner.c +++ b/firmware/src/controller/trajectory_planner.c @@ -23,8 +23,8 @@ #include static TrajPlannerConfig config = { - .max_accel = ENCODER_TICKS_FLOAT, - .max_decel = ENCODER_TICKS_FLOAT, + .max_accel = SENSOR_COMMON_RES_TICKS_FLOAT, + .max_decel = SENSOR_COMMON_RES_TICKS_FLOAT, .max_vel = 50000.0f, .deltat_accel = 2.0f, .deltat_decel = 2.0f, diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index c2de7120..c83f609a 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -63,30 +63,29 @@ static inline void observer_update(Observer *o) { if (o->current == false) { - const float sensor_ticks = sensor_get_ticks(*(o->sensor_ptr)); - const float sensor_half_ticks = sensor_ticks * 0.5f; - const int32_t angle_meas = sensor_get_angle_rectified(*(o->sensor_ptr)); + const float sensor_res_norm_factor = SENSOR_COMMON_RES_TICKS_FLOAT / sensor_get_ticks(*(o->sensor_ptr)); + const float angle_meas = sensor_get_angle_rectified(*(o->sensor_ptr)) * sensor_res_norm_factor; const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; - if (delta_pos_meas < -sensor_half_ticks) + if (delta_pos_meas < -SENSOR_COMMON_RES_HALF_TICKS) { - delta_pos_meas += sensor_ticks; + delta_pos_meas += SENSOR_COMMON_RES_TICKS; } - else if (delta_pos_meas >= sensor_half_ticks) + else if (delta_pos_meas >= SENSOR_COMMON_RES_HALF_TICKS) { - delta_pos_meas -= sensor_ticks; + delta_pos_meas -= SENSOR_COMMON_RES_TICKS; } const float delta_pos_error = delta_pos_meas - delta_pos_est; const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); o->pos_estimate_wrapped += incr_pos; if (o->pos_estimate_wrapped < 0) { - o->pos_estimate_wrapped += sensor_ticks; + o->pos_estimate_wrapped += SENSOR_COMMON_RES_TICKS; o->pos_sector -= 1; } - else if (o->pos_estimate_wrapped >= sensor_ticks) + else if (o->pos_estimate_wrapped >= SENSOR_COMMON_RES_TICKS) { - o->pos_estimate_wrapped -= sensor_ticks; + o->pos_estimate_wrapped -= SENSOR_COMMON_RES_TICKS; o->pos_sector += 1; } o->vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; @@ -101,13 +100,13 @@ static inline void observer_invalidate(Observer *o) static inline float observer_get_pos_estimate(Observer *o) { - const float primary = ((int32_t)sensor_get_ticks(*(o->sensor_ptr))) * o->pos_sector; + const float primary = SENSOR_COMMON_RES_TICKS * o->pos_sector; return primary + o->pos_estimate_wrapped; } static inline float observer_get_diff(Observer *o, float target) { - const float primary = sensor_get_ticks(*(o->sensor_ptr)) * o->pos_sector; + const float primary = SENSOR_COMMON_RES_TICKS * o->pos_sector; const float diff_sector = target - primary; return diff_sector - o->pos_estimate_wrapped; } diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index f8ce84a1..e66caa60 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -26,7 +26,7 @@ void as5047p_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_AS5047; - s->ticks = ENCODER_TICKS; + s->ticks = AS5047_TICKS; s->get_raw_angle_func = as5047p_get_raw_angle; s->update_func = as5047p_update; s->prepare_func = as5047p_send_angle_cmd; diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index b1a603d4..abae9610 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -21,6 +21,14 @@ #include #include +#define AS5047_BITS (14) // The bits we READ, not the advertised resolution +#define AS5047_TICKS (1 << AS5047_BITS) +#define AS5047_MAX_ALLOWED_DELTA (AS5047_TICKS / 6) +#define AS5047_MAX_ALLOWED_DELTA_ADD (AS5047_MAX_ALLOWED_DELTA + AS5047_TICKS) +#define AS5047_MAX_ALLOWED_DELTA_SUB (AS5047_MAX_ALLOWED_DELTA - AS5047_TICKS) +#define AS5047_MIN_ALLOWED_DELTA_ADD (-AS5047_MAX_ALLOWED_DELTA + AS5047_TICKS) +#define AS5047_MIN_ALLOWED_DELTA_SUB (-AS5047_MAX_ALLOWED_DELTA - AS5047_TICKS) + typedef struct Observer Observer; typedef enum { @@ -79,9 +87,9 @@ static inline void as5047p_update(Sensor *s, bool check_error) if (check_error) { const int32_t delta = as->angle - angle; - if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && - ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && - ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + if ( ((delta > AS5047_MAX_ALLOWED_DELTA) || (delta < -AS5047_MAX_ALLOWED_DELTA)) && + ((delta > AS5047_MAX_ALLOWED_DELTA_ADD) || (delta < AS5047_MIN_ALLOWED_DELTA_ADD)) && + ((delta > AS5047_MAX_ALLOWED_DELTA_SUB) || (delta < AS5047_MIN_ALLOWED_DELTA_SUB)) ) { as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; } diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index c96a8ee8..1de6fe47 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -26,7 +26,7 @@ void ma7xx_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_MA7XX; - s->ticks = ENCODER_TICKS; + s->ticks = MA7XX_TICKS; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; s->get_raw_angle_func = ma7xx_get_raw_angle; diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 8ffd443f..4f194d8a 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -21,6 +21,14 @@ #include #include +#define MA7XX_BITS (16) // The bits we READ, not the advertised resolution +#define MA7XX_TICKS (1 << MA7XX_BITS) +#define MA7XX_MAX_ALLOWED_DELTA (MA7XX_TICKS / 6) +#define MA7XX_MAX_ALLOWED_DELTA_ADD (MA7XX_MAX_ALLOWED_DELTA + MA7XX_TICKS) +#define MA7XX_MAX_ALLOWED_DELTA_SUB (MA7XX_MAX_ALLOWED_DELTA - MA7XX_TICKS) +#define MA7XX_MIN_ALLOWED_DELTA_ADD (-MA7XX_MAX_ALLOWED_DELTA + MA7XX_TICKS) +#define MA7XX_MIN_ALLOWED_DELTA_SUB (-MA7XX_MAX_ALLOWED_DELTA - MA7XX_TICKS) + typedef struct Observer Observer; typedef enum { @@ -80,9 +88,9 @@ static inline void ma7xx_update(Sensor *s, bool check_error) if (check_error) { const int32_t delta = ms->angle - angle; - if ( ((delta > MAX_ALLOWED_DELTA) || (delta < -MAX_ALLOWED_DELTA)) && - ((delta > MAX_ALLOWED_DELTA_ADD) || (delta < MIN_ALLOWED_DELTA_ADD)) && - ((delta > MAX_ALLOWED_DELTA_SUB) || (delta < MIN_ALLOWED_DELTA_SUB)) ) + if ( ((delta > MA7XX_MAX_ALLOWED_DELTA) || (delta < -MA7XX_MAX_ALLOWED_DELTA)) && + ((delta > MA7XX_MAX_ALLOWED_DELTA_ADD) || (delta < MA7XX_MIN_ALLOWED_DELTA_ADD)) && + ((delta > MA7XX_MAX_ALLOWED_DELTA_SUB) || (delta < MA7XX_MIN_ALLOWED_DELTA_SUB)) ) { ms->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; } diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 1386e7f7..ed22508f 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -33,13 +33,13 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) const int16_t n = ECN_SIZE * npp; const int16_t nconv = 100; const float delta = 2 * PI * npp / (n * nconv); - const float e_pos_to_ticks = ((float)ENCODER_TICKS) / (2 * PI * npp); + const float e_pos_to_ticks = ((float)SENSOR_COMMON_RES_TICKS) / (2 * PI * npp); float e_pos_ref = 0.f; const float I_setpoint = motor_get_I_cal(); int16_t *lut = s->config.rec_table; set_epos_and_wait(e_pos_ref, I_setpoint); wait_pwm_cycles(5000); - const uint16_t offset_idx = (s->get_raw_angle_func(s)) >> (ENCODER_BITS - ECN_BITS); + const uint16_t offset_idx = (s->get_raw_angle_func(s)) >> (SENSOR_COMMON_RES_BITS - ECN_BITS); for (uint32_t i = 0; i < n; i++) { @@ -113,7 +113,7 @@ bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) set_epos_and_wait(epos_target, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); // Find pole pairs - if (!motor_find_pole_pairs(ENCODER_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) + if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) { uint8_t *error_ptr = motor_get_error_ptr(); *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index be6847c8..4cb8e6fa 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -21,12 +21,6 @@ #include #include -#define MAX_ALLOWED_DELTA (ENCODER_TICKS / 6) -#define MAX_ALLOWED_DELTA_ADD (MAX_ALLOWED_DELTA + ENCODER_TICKS) -#define MAX_ALLOWED_DELTA_SUB (MAX_ALLOWED_DELTA - ENCODER_TICKS) -#define MIN_ALLOWED_DELTA_ADD (-MAX_ALLOWED_DELTA + ENCODER_TICKS) -#define MIN_ALLOWED_DELTA_SUB (-MAX_ALLOWED_DELTA - ENCODER_TICKS) - #if defined BOARD_REV_R3 #define ONBOARD_SENSOR_SSP_PORT SSPD #define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD @@ -96,7 +90,7 @@ bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); static inline int32_t sensor_get_angle_rectified(const Sensor *s) { - const uint8_t offset_bits = (ENCODER_BITS - ECN_BITS); + const uint8_t offset_bits = (sensor_get_bits(s) - ECN_BITS); const int32_t angle = s->get_raw_angle_func(s); const int32_t off_1 = s->config.rec_table[angle>>offset_bits]; const int32_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; From 24a2d36b24b3bb7ff05aa6ce082af2ddabbd2652 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 13 Feb 2024 01:58:09 +0200 Subject: [PATCH 067/219] introduce new transformations system to transform between different reference frames --- docs/protocol/reference.rst | 285 +++++++++-------- firmware/src/adc/adc.c | 12 +- firmware/src/can/can_endpoints.c | 116 ++++--- firmware/src/can/can_endpoints.h | 294 ++++++++++-------- firmware/src/common.h | 5 - firmware/src/controller/controller.c | 159 ++++------ firmware/src/controller/controller.h | 57 ++-- firmware/src/controller/homing_planner.c | 6 +- firmware/src/gatedriver/gatedriver.c | 20 -- firmware/src/gatedriver/gatedriver.h | 24 +- firmware/src/motor/motor.c | 44 --- firmware/src/motor/motor.h | 13 - firmware/src/observer/observer.h | 66 +++- firmware/src/sensor/as5047.c | 1 + firmware/src/sensor/hall.c | 1 + firmware/src/sensor/hall.h | 7 + firmware/src/sensor/ma7xx.c | 1 + firmware/src/sensor/sensor.c | 2 +- firmware/src/sensor/sensor.h | 27 +- firmware/src/system/system.c | 24 +- firmware/src/system/system.h | 1 + firmware/src/tm_enums.h | 35 ++- firmware/src/uart/uart_interface.c | 8 +- firmware/src/xf1.h | 67 ++++ .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 88 +++--- 25 files changed, 752 insertions(+), 611 deletions(-) create mode 100644 firmware/src/xf1.h diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index de515a5d..feb60ba0 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -138,6 +138,19 @@ Flags: - UNDERVOLTAGE +warnings +------------------------------------------------------------------- + +ID: 10 + +Type: uint8 + + + +Any system warnings, as a bitmask + +Flags: + - DRIVER_FAULT - CHARGE_PUMP_FAULT_STAT @@ -153,7 +166,7 @@ Flags: save_config() -> void -------------------------------------------------------------------------------------------- -ID: 10 +ID: 11 Return Type: void @@ -164,7 +177,7 @@ Save configuration to non-volatile memory. erase_config() -> void -------------------------------------------------------------------------------------------- -ID: 11 +ID: 12 Return Type: void @@ -175,7 +188,7 @@ Erase the config stored in non-volatile memory and reset the device. reset() -> void -------------------------------------------------------------------------------------------- -ID: 12 +ID: 13 Return Type: void @@ -186,7 +199,7 @@ Reset the device. enter_dfu() -> void -------------------------------------------------------------------------------------------- -ID: 13 +ID: 14 Return Type: void @@ -197,7 +210,7 @@ Enter DFU mode. config_size ------------------------------------------------------------------- -ID: 14 +ID: 15 Type: uint32 @@ -210,7 +223,7 @@ Size (in bytes) of the configuration object. scheduler.errors ------------------------------------------------------------------- -ID: 15 +ID: 16 Type: uint8 @@ -225,7 +238,7 @@ Flags: controller.state ------------------------------------------------------------------- -ID: 16 +ID: 17 Type: uint8 @@ -244,7 +257,7 @@ Options: controller.mode ------------------------------------------------------------------- -ID: 17 +ID: 18 Type: uint8 @@ -267,7 +280,7 @@ Options: controller.warnings ------------------------------------------------------------------- -ID: 18 +ID: 19 Type: uint8 @@ -286,7 +299,7 @@ Flags: controller.errors ------------------------------------------------------------------- -ID: 19 +ID: 20 Type: uint8 @@ -301,20 +314,20 @@ Flags: controller.position.setpoint ------------------------------------------------------------------- -ID: 20 +ID: 21 Type: float Units: tick -The position setpoint. +The position setpoint in the user reference frame. controller.position.p_gain ------------------------------------------------------------------- -ID: 21 +ID: 22 Type: float @@ -327,20 +340,20 @@ The proportional gain of the position controller. controller.velocity.setpoint ------------------------------------------------------------------- -ID: 22 +ID: 23 Type: float Units: tick / second -The velocity setpoint. +The velocity setpoint in the user reference frame. controller.velocity.limit ------------------------------------------------------------------- -ID: 23 +ID: 24 Type: float @@ -353,7 +366,7 @@ The velocity limit. controller.velocity.p_gain ------------------------------------------------------------------- -ID: 24 +ID: 25 Type: float @@ -366,7 +379,7 @@ The proportional gain of the velocity controller. controller.velocity.i_gain ------------------------------------------------------------------- -ID: 25 +ID: 26 Type: float @@ -381,7 +394,7 @@ The integral gain of the velocity controller. controller.velocity.deadband ------------------------------------------------------------------- -ID: 26 +ID: 27 Type: float @@ -394,7 +407,7 @@ The deadband of the velocity integrator. A region around the position setpoint w controller.velocity.increment ------------------------------------------------------------------- -ID: 27 +ID: 28 Type: float @@ -407,33 +420,33 @@ Max velocity setpoint increment (ramping) rate. Set to 0 to disable. controller.current.Iq_setpoint ------------------------------------------------------------------- -ID: 28 +ID: 29 Type: float Units: ampere -The Iq setpoint. +The Iq setpoint in the user reference frame. controller.current.Id_setpoint ------------------------------------------------------------------- -ID: 29 +ID: 30 Type: float Units: ampere -The Id setpoint. +The Id setpoint in the user reference frame. controller.current.Iq_limit ------------------------------------------------------------------- -ID: 30 +ID: 31 Type: float @@ -446,20 +459,20 @@ The Iq limit. controller.current.Iq_estimate ------------------------------------------------------------------- -ID: 31 +ID: 32 Type: float Units: ampere -The Iq estimate. +The Iq estimate in the user reference frame. controller.current.bandwidth ------------------------------------------------------------------- -ID: 32 +ID: 33 Type: float @@ -472,7 +485,7 @@ The current controller bandwidth. controller.current.Iq_p_gain ------------------------------------------------------------------- -ID: 33 +ID: 34 Type: float @@ -485,7 +498,7 @@ The current controller proportional gain. controller.current.max_Ibus_regen ------------------------------------------------------------------- -ID: 34 +ID: 35 Type: float @@ -498,7 +511,7 @@ The max current allowed to be fed back to the power source before flux braking a controller.current.max_Ibrake ------------------------------------------------------------------- -ID: 35 +ID: 36 Type: float @@ -511,7 +524,7 @@ The max current allowed to be dumped to the motor windings during flux braking. controller.voltage.Vq_setpoint ------------------------------------------------------------------- -ID: 36 +ID: 37 Type: float @@ -524,7 +537,7 @@ The Vq setpoint. calibrate() -> void -------------------------------------------------------------------------------------------- -ID: 37 +ID: 38 Return Type: void @@ -535,7 +548,7 @@ Calibrate the device. idle() -> void -------------------------------------------------------------------------------------------- -ID: 38 +ID: 39 Return Type: void @@ -546,7 +559,7 @@ Set idle mode, disabling the driver. position_mode() -> void -------------------------------------------------------------------------------------------- -ID: 39 +ID: 40 Return Type: void @@ -557,7 +570,7 @@ Set position control mode. velocity_mode() -> void -------------------------------------------------------------------------------------------- -ID: 40 +ID: 41 Return Type: void @@ -568,7 +581,7 @@ Set velocity control mode. current_mode() -> void -------------------------------------------------------------------------------------------- -ID: 41 +ID: 42 Return Type: void @@ -579,20 +592,20 @@ Set current control mode. set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint) -> float -------------------------------------------------------------------------------------------- -ID: 42 +ID: 43 Return Type: float -Set the position and velocity setpoints in one go, and retrieve the position estimate +Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate .. _api-can-rate: comms.can.rate ------------------------------------------------------------------- -ID: 43 +ID: 44 Type: uint32 @@ -605,7 +618,7 @@ The baud rate of the CAN interface. comms.can.id ------------------------------------------------------------------- -ID: 44 +ID: 45 Type: uint32 @@ -618,7 +631,7 @@ The ID of the CAN interface. motor.R ------------------------------------------------------------------- -ID: 45 +ID: 46 Type: float @@ -631,7 +644,7 @@ The motor Resistance value. motor.L ------------------------------------------------------------------- -ID: 46 +ID: 47 Type: float @@ -644,7 +657,7 @@ The motor Inductance value. motor.pole_pairs ------------------------------------------------------------------- -ID: 47 +ID: 48 Type: uint8 @@ -657,7 +670,7 @@ The motor pole pair count. motor.type ------------------------------------------------------------------- -ID: 48 +ID: 49 Type: uint8 @@ -671,81 +684,107 @@ Options: - GIMBAL -motor.offset +motor.calibrated ------------------------------------------------------------------- -ID: 49 +ID: 50 -Type: float +Type: bool -User-defined offset of the motor. +Whether the motor has been calibrated. -motor.direction +motor.I_cal ------------------------------------------------------------------- -ID: 50 - -Type: int8 +ID: 51 +Type: float +Units: ampere -User-defined direction of the motor. +The calibration current. -motor.calibrated +motor.errors ------------------------------------------------------------------- -ID: 51 +ID: 52 -Type: bool +Type: uint8 -Whether the motor has been calibrated. +Any motor/calibration errors, as a bitmask +Flags: +- PHASE_RESISTANCE_OUT_OF_RANGE -motor.I_cal +- PHASE_INDUCTANCE_OUT_OF_RANGE + +- INVALID_POLE_PAIRS + +sensors.user_frame.position_estimate ------------------------------------------------------------------- -ID: 52 +ID: 53 Type: float -Units: ampere +Units: tick -The calibration current. +The filtered position estimate in the user reference frame. -motor.errors +sensors.user_frame.velocity_estimate ------------------------------------------------------------------- -ID: 53 +ID: 54 -Type: uint8 +Type: float +Units: tick / second +The filtered velocity estimate in the user reference frame. -Any motor/calibration errors, as a bitmask -Flags: -- PHASE_RESISTANCE_OUT_OF_RANGE +sensors.user_frame.offset +------------------------------------------------------------------- + +ID: 55 + +Type: float + +Units: tick + +The user defined offset. + + + +sensors.user_frame.multiplier +------------------------------------------------------------------- + +ID: 56 + +Type: float + + + +The user defined multipler. -- PHASE_INDUCTANCE_OUT_OF_RANGE -- INVALID_POLE_PAIRS sensors.setup.onboard.calibrated ------------------------------------------------------------------- -ID: 54 +ID: 57 Type: bool @@ -758,7 +797,7 @@ Whether the sensor has been calibrated. sensors.setup.onboard.errors ------------------------------------------------------------------- -ID: 55 +ID: 58 Type: uint8 @@ -775,7 +814,7 @@ Flags: sensors.setup.external_spi.type ------------------------------------------------------------------- -ID: 56 +ID: 59 Type: uint8 @@ -794,7 +833,7 @@ Options: sensors.setup.external_spi.calibrated ------------------------------------------------------------------- -ID: 57 +ID: 60 Type: bool @@ -807,7 +846,7 @@ Whether the sensor has been calibrated. sensors.setup.external_spi.errors ------------------------------------------------------------------- -ID: 58 +ID: 61 Type: uint8 @@ -824,7 +863,7 @@ Flags: sensors.setup.hall.calibrated ------------------------------------------------------------------- -ID: 59 +ID: 62 Type: bool @@ -837,7 +876,7 @@ Whether the sensor has been calibrated. sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 60 +ID: 63 Type: uint8 @@ -851,10 +890,10 @@ Flags: - READING_UNSTABLE -sensors.select.position.connection +sensors.select.position_sensor.connection ------------------------------------------------------------------- -ID: 61 +ID: 64 Type: uint8 @@ -870,10 +909,10 @@ Options: - HALL -sensors.select.position.bandwidth +sensors.select.position_sensor.bandwidth ------------------------------------------------------------------- -ID: 62 +ID: 65 Type: float @@ -883,10 +922,10 @@ The position sensor observer bandwidth. -sensors.select.position.raw_angle +sensors.select.position_sensor.raw_angle ------------------------------------------------------------------- -ID: 63 +ID: 66 Type: int32 @@ -896,36 +935,36 @@ The raw position sensor angle. -sensors.select.position.position_estimate +sensors.select.position_sensor.position_estimate ------------------------------------------------------------------- -ID: 64 +ID: 67 Type: float Units: tick -The filtered position sensor position estimate. +The filtered position estimate in the position sensor reference frame. -sensors.select.position.velocity_estimate +sensors.select.position_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 65 +ID: 68 Type: float Units: tick / second -The filtered position sensor velocity estimate. +The filtered velocity estimate in the position sensor reference frame. -sensors.select.commutation.connection +sensors.select.commutation_sensor.connection ------------------------------------------------------------------- -ID: 66 +ID: 69 Type: uint8 @@ -941,10 +980,10 @@ Options: - HALL -sensors.select.commutation.bandwidth +sensors.select.commutation_sensor.bandwidth ------------------------------------------------------------------- -ID: 67 +ID: 70 Type: float @@ -954,10 +993,10 @@ The commutation sensor observer bandwidth. -sensors.select.commutation.raw_angle +sensors.select.commutation_sensor.raw_angle ------------------------------------------------------------------- -ID: 68 +ID: 71 Type: int32 @@ -967,36 +1006,36 @@ The raw commutation sensor angle. -sensors.select.commutation.position_estimate +sensors.select.commutation_sensor.position_estimate ------------------------------------------------------------------- -ID: 69 +ID: 72 Type: float Units: tick -The filtered commutation sensor position estimate. +The filtered position estimate in the commutation sensor reference frame. -sensors.select.commutation.velocity_estimate +sensors.select.commutation_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 70 +ID: 73 Type: float Units: tick / second -The filtered commutation sensor velocity estimate. +The filtered velocity estimate in the commutation sensor reference frame. traj_planner.max_accel ------------------------------------------------------------------- -ID: 71 +ID: 74 Type: float @@ -1009,7 +1048,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 72 +ID: 75 Type: float @@ -1022,7 +1061,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 73 +ID: 76 Type: float @@ -1035,7 +1074,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 74 +ID: 77 Type: float @@ -1048,7 +1087,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 75 +ID: 78 Type: float @@ -1061,7 +1100,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 76 +ID: 79 Type: float @@ -1074,29 +1113,29 @@ In time mode, the total time of the generated trajectory. move_to(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 77 +ID: 80 Return Type: void -Move to target position respecting velocity and acceleration limits. +Move to target position in the user reference frame respecting velocity and acceleration limits. move_to_tlimit(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 78 +ID: 81 Return Type: void -Move to target position respecting time limits for each sector. +Move to target position in the user reference frame respecting time limits for each sector. traj_planner.errors ------------------------------------------------------------------- -ID: 79 +ID: 82 Type: uint8 @@ -1113,7 +1152,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 80 +ID: 83 Type: float @@ -1126,7 +1165,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 81 +ID: 84 Type: float @@ -1139,7 +1178,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 82 +ID: 85 Type: float @@ -1152,7 +1191,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 83 +ID: 86 Type: uint8 @@ -1167,7 +1206,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 84 +ID: 87 Type: float @@ -1180,7 +1219,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 85 +ID: 88 Type: float @@ -1193,7 +1232,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 86 +ID: 89 Type: float @@ -1206,7 +1245,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void -------------------------------------------------------------------------------------------- -ID: 87 +ID: 90 Return Type: void @@ -1217,7 +1256,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 88 +ID: 91 Type: bool @@ -1230,7 +1269,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 89 +ID: 92 Type: bool @@ -1243,7 +1282,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 90 +ID: 93 Type: float diff --git a/firmware/src/adc/adc.c b/firmware/src/adc/adc.c index 30a5441a..c9ca1123 100644 --- a/firmware/src/adc/adc.c +++ b/firmware/src/adc/adc.c @@ -250,16 +250,8 @@ TM_RAMFUNC float ADC_get_mcu_temp(void) TM_RAMFUNC void ADC_get_phase_currents(FloatTriplet *phc) { phc->A = adc_state.I_phase_meas.A; - if (motor_phases_swapped()) - { - phc->B = adc_state.I_phase_meas.C; - phc->C = adc_state.I_phase_meas.B; - } - else - { - phc->B = adc_state.I_phase_meas.B; - phc->C = adc_state.I_phase_meas.C; - } + phc->B = adc_state.I_phase_meas.B; + phc->C = adc_state.I_phase_meas.C; } TM_RAMFUNC void ADC_update(void) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 209b7adb..3e2bb558 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,8 +18,8 @@ #include -uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_offset, &avlos_motor_direction, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_connection, &avlos_sensors_select_position_bandwidth, &avlos_sensors_select_position_raw_angle, &avlos_sensors_select_position_position_estimate, &avlos_sensors_select_position_velocity_estimate, &avlos_sensors_select_commutation_connection, &avlos_sensors_select_commutation_bandwidth, &avlos_sensors_select_commutation_raw_angle, &avlos_sensors_select_commutation_position_estimate, &avlos_sensors_select_commutation_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 484227084; +uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint32_t avlos_proto_hash = 1958736319; uint32_t _avlos_get_proto_hash(void) { @@ -143,6 +143,18 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = system_get_warnings(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_save_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { nvm_save_config(); @@ -349,7 +361,7 @@ uint8_t avlos_controller_velocity_i_gain(uint8_t * buffer, uint8_t * buffer_len, { if (AVLOS_CMD_READ == cmd) { float v; - v = controller_get_vel_integrator_gain(); + v = controller_get_vel_integral_gain(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -357,7 +369,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - controller_set_vel_integrator_gain(v); + controller_set_vel_integral_gain(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -367,7 +379,7 @@ uint8_t avlos_controller_velocity_deadband(uint8_t * buffer, uint8_t * buffer_le { if (AVLOS_CMD_READ == cmd) { float v; - v = controller_get_vel_integrator_deadband(); + v = controller_get_vel_integral_deadband(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -375,7 +387,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - controller_set_vel_integrator_deadband(v); + controller_set_vel_integral_deadband(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -696,11 +708,23 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_motor_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + bool v; + v = motor_get_calibrated(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = motor_get_user_offset(); + v = motor_get_I_cal(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -708,35 +732,41 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - motor_set_user_offset(v); + motor_set_I_cal(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; } -uint8_t avlos_motor_direction(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { - int8_t v; - v = motor_get_user_direction(); + uint8_t v; + v = motor_get_errors(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; } -else if (AVLOS_CMD_WRITE == cmd) { - int8_t v; - memcpy(&v, buffer, sizeof(v)); - motor_set_user_direction(v); - return AVLOS_RET_WRITE; + return AVLOS_RET_NOACTION; +} + +uint8_t avlos_sensors_user_frame_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + float v; + v = user_frame_get_pos_estimate(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; } return AVLOS_RET_NOACTION; } -uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_user_frame_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { - bool v; - v = motor_get_calibrated(); + float v; + v = user_frame_get_vel_estimate(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -744,11 +774,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_user_frame_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = motor_get_I_cal(); + v = get_position_observer_to_user_offset(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -756,21 +786,27 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - motor_set_I_cal(v); + set_position_observer_to_user_offset(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; } -uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_user_frame_multiplier(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { - uint8_t v; - v = motor_get_errors(); + float v; + v = get_position_observer_to_user_multiplier(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; } +else if (AVLOS_CMD_WRITE == cmd) { + float v; + memcpy(&v, buffer, sizeof(v)); + set_position_observer_to_user_multiplier(v); + return AVLOS_RET_WRITE; + } return AVLOS_RET_NOACTION; } @@ -864,7 +900,7 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_sensor_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; @@ -882,7 +918,7 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_sensor_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; @@ -900,7 +936,7 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_sensor_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { int32_t v; @@ -912,11 +948,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_sensor_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = position_observer_get_pos_estimate_user_frame(); + v = position_observer_get_pos_estimate(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -924,11 +960,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_position_sensor_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = position_observer_get_vel_estimate_user_frame(); + v = position_observer_get_vel_estimate(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -936,7 +972,7 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_sensor_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; @@ -954,7 +990,7 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_sensor_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; @@ -972,7 +1008,7 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_sensor_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { int32_t v; @@ -984,11 +1020,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_sensor_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = commutation_observer_get_pos_estimate_user_frame(); + v = commutation_observer_get_pos_estimate(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -996,11 +1032,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_sensors_select_commutation_sensor_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { float v; - v = commutation_observer_get_vel_estimate_user_frame(); + v = commutation_observer_get_vel_estimate(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 65fc139b..0f05e7c9 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -11,7 +11,7 @@ #include extern uint32_t avlos_proto_hash; -extern uint8_t (*avlos_endpoints[91])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +extern uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -134,12 +134,24 @@ uint8_t avlos_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c */ uint8_t avlos_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_warnings +* +* Any system warnings, as a bitmask +* +* Endpoint ID: 10 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_save_config * * Save configuration to non-volatile memory. * -* Endpoint ID: 10 +* Endpoint ID: 11 * * @param buffer * @param buffer_len @@ -151,7 +163,7 @@ uint8_t avlos_save_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Erase the config stored in non-volatile memory and reset the device. * -* Endpoint ID: 11 +* Endpoint ID: 12 * * @param buffer * @param buffer_len @@ -163,7 +175,7 @@ uint8_t avlos_erase_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Reset the device. * -* Endpoint ID: 12 +* Endpoint ID: 13 * * @param buffer * @param buffer_len @@ -175,7 +187,7 @@ uint8_t avlos_reset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); * * Enter DFU mode. * -* Endpoint ID: 13 +* Endpoint ID: 14 * * @param buffer * @param buffer_len @@ -187,7 +199,7 @@ uint8_t avlos_enter_dfu(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cm * * Size (in bytes) of the configuration object. * -* Endpoint ID: 14 +* Endpoint ID: 15 * * @param buffer * @param buffer_len @@ -199,7 +211,7 @@ uint8_t avlos_config_size(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Any scheduler errors, as a bitmask * -* Endpoint ID: 15 +* Endpoint ID: 16 * * @param buffer * @param buffer_len @@ -211,7 +223,7 @@ uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The state of the controller. * -* Endpoint ID: 16 +* Endpoint ID: 17 * * @param buffer * @param buffer_len @@ -223,7 +235,7 @@ uint8_t avlos_controller_state(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The control mode of the controller. * -* Endpoint ID: 17 +* Endpoint ID: 18 * * @param buffer * @param buffer_len @@ -235,7 +247,7 @@ uint8_t avlos_controller_mode(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Any controller warnings, as a bitmask * -* Endpoint ID: 18 +* Endpoint ID: 19 * * @param buffer * @param buffer_len @@ -247,7 +259,7 @@ uint8_t avlos_controller_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any controller errors, as a bitmask * -* Endpoint ID: 19 +* Endpoint ID: 20 * * @param buffer * @param buffer_len @@ -257,9 +269,9 @@ uint8_t avlos_controller_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Co /* * avlos_controller_position_setpoint * -* The position setpoint. +* The position setpoint in the user reference frame. * -* Endpoint ID: 20 +* Endpoint ID: 21 * * @param buffer * @param buffer_len @@ -271,7 +283,7 @@ uint8_t avlos_controller_position_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The proportional gain of the position controller. * -* Endpoint ID: 21 +* Endpoint ID: 22 * * @param buffer * @param buffer_len @@ -281,9 +293,9 @@ uint8_t avlos_controller_position_p_gain(uint8_t * buffer, uint8_t * buffer_len, /* * avlos_controller_velocity_setpoint * -* The velocity setpoint. +* The velocity setpoint in the user reference frame. * -* Endpoint ID: 22 +* Endpoint ID: 23 * * @param buffer * @param buffer_len @@ -295,7 +307,7 @@ uint8_t avlos_controller_velocity_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The velocity limit. * -* Endpoint ID: 23 +* Endpoint ID: 24 * * @param buffer * @param buffer_len @@ -307,7 +319,7 @@ uint8_t avlos_controller_velocity_limit(uint8_t * buffer, uint8_t * buffer_len, * * The proportional gain of the velocity controller. * -* Endpoint ID: 24 +* Endpoint ID: 25 * * @param buffer * @param buffer_len @@ -319,7 +331,7 @@ uint8_t avlos_controller_velocity_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The integral gain of the velocity controller. * -* Endpoint ID: 25 +* Endpoint ID: 26 * * @param buffer * @param buffer_len @@ -331,7 +343,7 @@ uint8_t avlos_controller_velocity_i_gain(uint8_t * buffer, uint8_t * buffer_len, * * The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. * -* Endpoint ID: 26 +* Endpoint ID: 27 * * @param buffer * @param buffer_len @@ -343,7 +355,7 @@ uint8_t avlos_controller_velocity_deadband(uint8_t * buffer, uint8_t * buffer_le * * Max velocity setpoint increment (ramping) rate. Set to 0 to disable. * -* Endpoint ID: 27 +* Endpoint ID: 28 * * @param buffer * @param buffer_len @@ -353,9 +365,9 @@ uint8_t avlos_controller_velocity_increment(uint8_t * buffer, uint8_t * buffer_l /* * avlos_controller_current_Iq_setpoint * -* The Iq setpoint. +* The Iq setpoint in the user reference frame. * -* Endpoint ID: 28 +* Endpoint ID: 29 * * @param buffer * @param buffer_len @@ -365,9 +377,9 @@ uint8_t avlos_controller_current_Iq_setpoint(uint8_t * buffer, uint8_t * buffer_ /* * avlos_controller_current_Id_setpoint * -* The Id setpoint. +* The Id setpoint in the user reference frame. * -* Endpoint ID: 29 +* Endpoint ID: 30 * * @param buffer * @param buffer_len @@ -379,7 +391,7 @@ uint8_t avlos_controller_current_Id_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Iq limit. * -* Endpoint ID: 30 +* Endpoint ID: 31 * * @param buffer * @param buffer_len @@ -389,9 +401,9 @@ uint8_t avlos_controller_current_Iq_limit(uint8_t * buffer, uint8_t * buffer_len /* * avlos_controller_current_Iq_estimate * -* The Iq estimate. +* The Iq estimate in the user reference frame. * -* Endpoint ID: 31 +* Endpoint ID: 32 * * @param buffer * @param buffer_len @@ -403,7 +415,7 @@ uint8_t avlos_controller_current_Iq_estimate(uint8_t * buffer, uint8_t * buffer_ * * The current controller bandwidth. * -* Endpoint ID: 32 +* Endpoint ID: 33 * * @param buffer * @param buffer_len @@ -415,7 +427,7 @@ uint8_t avlos_controller_current_bandwidth(uint8_t * buffer, uint8_t * buffer_le * * The current controller proportional gain. * -* Endpoint ID: 33 +* Endpoint ID: 34 * * @param buffer * @param buffer_len @@ -427,7 +439,7 @@ uint8_t avlos_controller_current_Iq_p_gain(uint8_t * buffer, uint8_t * buffer_le * * The max current allowed to be fed back to the power source before flux braking activates. * -* Endpoint ID: 34 +* Endpoint ID: 35 * * @param buffer * @param buffer_len @@ -439,7 +451,7 @@ uint8_t avlos_controller_current_max_Ibus_regen(uint8_t * buffer, uint8_t * buff * * The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. * -* Endpoint ID: 35 +* Endpoint ID: 36 * * @param buffer * @param buffer_len @@ -451,7 +463,7 @@ uint8_t avlos_controller_current_max_Ibrake(uint8_t * buffer, uint8_t * buffer_l * * The Vq setpoint. * -* Endpoint ID: 36 +* Endpoint ID: 37 * * @param buffer * @param buffer_len @@ -463,7 +475,7 @@ uint8_t avlos_controller_voltage_Vq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * Calibrate the device. * -* Endpoint ID: 37 +* Endpoint ID: 38 * * @param buffer * @param buffer_len @@ -475,7 +487,7 @@ uint8_t avlos_controller_calibrate(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Set idle mode, disabling the driver. * -* Endpoint ID: 38 +* Endpoint ID: 39 * * @param buffer * @param buffer_len @@ -487,7 +499,7 @@ uint8_t avlos_controller_idle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Set position control mode. * -* Endpoint ID: 39 +* Endpoint ID: 40 * * @param buffer * @param buffer_len @@ -499,7 +511,7 @@ uint8_t avlos_controller_position_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set velocity control mode. * -* Endpoint ID: 40 +* Endpoint ID: 41 * * @param buffer * @param buffer_len @@ -511,7 +523,7 @@ uint8_t avlos_controller_velocity_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set current control mode. * -* Endpoint ID: 41 +* Endpoint ID: 42 * * @param buffer * @param buffer_len @@ -521,9 +533,9 @@ uint8_t avlos_controller_current_mode(uint8_t * buffer, uint8_t * buffer_len, Av /* * avlos_controller_set_pos_vel_setpoints * -* Set the position and velocity setpoints in one go, and retrieve the position estimate +* Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate * -* Endpoint ID: 42 +* Endpoint ID: 43 * * @param buffer * @param buffer_len @@ -535,7 +547,7 @@ uint8_t avlos_controller_set_pos_vel_setpoints(uint8_t * buffer, uint8_t * buffe * * The baud rate of the CAN interface. * -* Endpoint ID: 43 +* Endpoint ID: 44 * * @param buffer * @param buffer_len @@ -547,7 +559,7 @@ uint8_t avlos_comms_can_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comma * * The ID of the CAN interface. * -* Endpoint ID: 44 +* Endpoint ID: 45 * * @param buffer * @param buffer_len @@ -559,7 +571,7 @@ uint8_t avlos_comms_can_id(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The motor Resistance value. * -* Endpoint ID: 45 +* Endpoint ID: 46 * * @param buffer * @param buffer_len @@ -571,7 +583,7 @@ uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor Inductance value. * -* Endpoint ID: 46 +* Endpoint ID: 47 * * @param buffer * @param buffer_len @@ -583,7 +595,7 @@ uint8_t avlos_motor_L(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor pole pair count. * -* Endpoint ID: 47 +* Endpoint ID: 48 * * @param buffer * @param buffer_len @@ -595,7 +607,7 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The type of the motor. Either high current or gimbal. * -* Endpoint ID: 48 +* Endpoint ID: 49 * * @param buffer * @param buffer_len @@ -603,71 +615,95 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com uint8_t avlos_motor_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_motor_offset +* avlos_motor_calibrated * -* User-defined offset of the motor. +* Whether the motor has been calibrated. * -* Endpoint ID: 49 +* Endpoint ID: 50 * * @param buffer * @param buffer_len */ -uint8_t avlos_motor_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_motor_direction +* avlos_motor_I_cal * -* User-defined direction of the motor. +* The calibration current. * -* Endpoint ID: 50 +* Endpoint ID: 51 * * @param buffer * @param buffer_len */ -uint8_t avlos_motor_direction(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_motor_calibrated +* avlos_motor_errors * -* Whether the motor has been calibrated. +* Any motor/calibration errors, as a bitmask * -* Endpoint ID: 51 +* Endpoint ID: 52 * * @param buffer * @param buffer_len */ -uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_motor_I_cal +* avlos_sensors_user_frame_position_estimate * -* The calibration current. +* The filtered position estimate in the user reference frame. * -* Endpoint ID: 52 +* Endpoint ID: 53 * * @param buffer * @param buffer_len */ -uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_user_frame_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_motor_errors +* avlos_sensors_user_frame_velocity_estimate * -* Any motor/calibration errors, as a bitmask +* The filtered velocity estimate in the user reference frame. * -* Endpoint ID: 53 +* Endpoint ID: 54 * * @param buffer * @param buffer_len */ -uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_user_frame_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_user_frame_offset +* +* The user defined offset. +* +* Endpoint ID: 55 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_user_frame_offset(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + +/* +* avlos_sensors_user_frame_multiplier +* +* The user defined multipler. +* +* Endpoint ID: 56 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_user_frame_multiplier(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_sensors_setup_onboard_calibrated * * Whether the sensor has been calibrated. * -* Endpoint ID: 54 +* Endpoint ID: 57 * * @param buffer * @param buffer_len @@ -679,7 +715,7 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe * * Any sensor errors, as a bitmask * -* Endpoint ID: 55 +* Endpoint ID: 58 * * @param buffer * @param buffer_len @@ -691,7 +727,7 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le * * The type of external sensor type. Either MA7XX, AS5047 or AMT22. * -* Endpoint ID: 56 +* Endpoint ID: 59 * * @param buffer * @param buffer_len @@ -703,7 +739,7 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer * * Whether the sensor has been calibrated. * -* Endpoint ID: 57 +* Endpoint ID: 60 * * @param buffer * @param buffer_len @@ -715,7 +751,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * -* Endpoint ID: 58 +* Endpoint ID: 61 * * @param buffer * @param buffer_len @@ -727,7 +763,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * -* Endpoint ID: 59 +* Endpoint ID: 62 * * @param buffer * @param buffer_len @@ -739,7 +775,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * -* Endpoint ID: 60 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -747,131 +783,131 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_connection +* avlos_sensors_select_position_sensor_connection * * The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 61 +* Endpoint ID: 64 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_sensor_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_bandwidth +* avlos_sensors_select_position_sensor_bandwidth * * The position sensor observer bandwidth. * -* Endpoint ID: 62 +* Endpoint ID: 65 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_sensor_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_raw_angle +* avlos_sensors_select_position_sensor_raw_angle * * The raw position sensor angle. * -* Endpoint ID: 63 +* Endpoint ID: 66 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_sensor_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_position_estimate +* avlos_sensors_select_position_sensor_position_estimate * -* The filtered position sensor position estimate. +* The filtered position estimate in the position sensor reference frame. * -* Endpoint ID: 64 +* Endpoint ID: 67 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_sensor_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_position_velocity_estimate +* avlos_sensors_select_position_sensor_velocity_estimate * -* The filtered position sensor velocity estimate. +* The filtered velocity estimate in the position sensor reference frame. * -* Endpoint ID: 65 +* Endpoint ID: 68 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_position_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_position_sensor_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_connection +* avlos_sensors_select_commutation_sensor_connection * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 66 +* Endpoint ID: 69 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_sensor_connection(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_bandwidth +* avlos_sensors_select_commutation_sensor_bandwidth * * The commutation sensor observer bandwidth. * -* Endpoint ID: 67 +* Endpoint ID: 70 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_sensor_bandwidth(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_raw_angle +* avlos_sensors_select_commutation_sensor_raw_angle * * The raw commutation sensor angle. * -* Endpoint ID: 68 +* Endpoint ID: 71 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_sensor_raw_angle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_position_estimate +* avlos_sensors_select_commutation_sensor_position_estimate * -* The filtered commutation sensor position estimate. +* The filtered position estimate in the commutation sensor reference frame. * -* Endpoint ID: 69 +* Endpoint ID: 72 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_sensor_position_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_sensors_select_commutation_velocity_estimate +* avlos_sensors_select_commutation_sensor_velocity_estimate * -* The filtered commutation sensor velocity estimate. +* The filtered velocity estimate in the commutation sensor reference frame. * -* Endpoint ID: 70 +* Endpoint ID: 73 * * @param buffer * @param buffer_len */ -uint8_t avlos_sensors_select_commutation_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_sensors_select_commutation_sensor_velocity_estimate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_traj_planner_max_accel * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 71 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -883,7 +919,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 72 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -895,7 +931,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 73 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -907,7 +943,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 74 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -919,7 +955,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 75 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -931,7 +967,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 76 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -941,9 +977,9 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos /* * avlos_traj_planner_move_to * -* Move to target position respecting velocity and acceleration limits. +* Move to target position in the user reference frame respecting velocity and acceleration limits. * -* Endpoint ID: 77 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -953,9 +989,9 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos /* * avlos_traj_planner_move_to_tlimit * -* Move to target position respecting time limits for each sector. +* Move to target position in the user reference frame respecting time limits for each sector. * -* Endpoint ID: 78 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -967,7 +1003,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 79 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -979,7 +1015,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 80 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -991,7 +1027,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 81 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1003,7 +1039,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 82 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1015,7 +1051,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 83 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1027,7 +1063,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 84 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1039,7 +1075,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 85 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1051,7 +1087,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 86 +* Endpoint ID: 89 * * @param buffer * @param buffer_len @@ -1063,7 +1099,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 87 +* Endpoint ID: 90 * * @param buffer * @param buffer_len @@ -1075,7 +1111,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 88 +* Endpoint ID: 91 * * @param buffer * @param buffer_len @@ -1087,7 +1123,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 89 +* Endpoint ID: 92 * * @param buffer * @param buffer_len @@ -1099,7 +1135,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 90 +* Endpoint ID: 93 * * @param buffer * @param buffer_len diff --git a/firmware/src/common.h b/firmware/src/common.h index 6edf67b9..8b8ee745 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -130,10 +130,6 @@ #define SENSOR_COMMON_RES_HALF_TICKS (SENSOR_COMMON_RES_TICKS/2) #define SENSOR_COMMON_RES_TICKS_FLOAT ((float)(SENSOR_COMMON_RES_TICKS)) -#define HALL_SECTORS (6) -#define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) -#define CAL_DIR_LEN_PER_SECTOR (CAL_DIR_LEN / HALL_SECTORS) - static const float one_by_sqrt3 = 0.57735026919f; static const float two_by_sqrt3 = 1.15470053838f; static const float threehalfpi = 4.7123889f; @@ -141,7 +137,6 @@ static const float pi = PI; static const float halfpi = PI * 0.5f; static const float quarterpi = PI * 0.25f; static const float twopi_by_enc_ticks = TWOPI / SENSOR_COMMON_RES_TICKS; -static const float twopi_by_hall_sectors = TWOPI / HALL_SECTORS; _Static_assert(TIMER_FREQ_HZ % (2*PWM_FREQ_HZ) == 0, "Timer frequency not an integer multiple of PWM frequency"); diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 7cf47a46..8bb83c0f 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -42,8 +42,8 @@ static ControllerState state = { .I_phase_meas = {0.0f, 0.0f, 0.0f}, .modulation_values = {0.0f, 0.0f, 0.0f}, - .Iq_est = 0.0f, - .Id_est = 0.0f, + .Iq_estimate = 0.0f, + .Id_estimate = 0.0f, .Ibus_est = 0.0f, .power_est = 0.0f, @@ -56,10 +56,10 @@ static ControllerState state = { .Vq_setpoint = 0.0f, - .vel_integrator_Iq = 0.0f, + .vel_integrator = 0.0f, - .Iq_integrator_Vq = 0.0f, - .Id_integrator_Vd = 0.0f, + .Iq_integrator = 0.0f, + .Id_integrator = 0.0f, .t_plan = 0.0f}; @@ -70,12 +70,12 @@ static ControllerConfig config = { .I_limit = 10.0f, .pos_gain = 20.0f, .vel_gain = 8.0e-5f, - .vel_integrator_gain = 0.00020f, - .vel_integrator_deadband = 200.0f, + .vel_integral_gain = 0.00020f, + .vel_integral_deadband = 200.0f, .I_bw = 2000.0, .I_gain = 0.0f, - .Iq_integrator_gain = 0.0f, - .Id_integrator_gain = 0.0f, + .Iq_integral_gain = 0.0f, + .Id_integral_gain = 0.0f, .I_k = 0.3f, .vel_increment = 100.0f, // ticks/cycle .max_Ibus_regen = 0.0f, @@ -88,12 +88,12 @@ static ControllerConfig config = { .I_limit = 4.0f, .pos_gain = 8.0f, .vel_gain = 5.0e-5f, - .vel_integrator_gain = 0.00020f, - .vel_integrator_deadband = 200.0f, + .vel_integral_gain = 0.00020f, + .vel_integral_deadband = 200.0f, .I_bw = 2000.0, .I_gain = 0.0f, - .Iq_integrator_gain = 0.0f, - .Id_integrator_gain = 0.0f, + .Iq_integral_gain = 0.0f, + .Id_integral_gain = 0.0f, .I_k = 0.3f, .vel_increment = 100.0f, // ticks/cycle .max_Ibus_regen = 0.0f, @@ -139,10 +139,6 @@ void Controller_ControlLoop(void) CLControlStep(); } } - else - { - // pass - } wait_for_control_loop_interrupt(); } } @@ -188,44 +184,42 @@ TM_RAMFUNC void CLControlStep(void) // separate because the latter takes into account a user-configurable deadband // around the position setpoint, where the integrator "sees" no error float vel_setpoint = state.vel_ramp_setpoint ; - float vel_setpoint_integrator = state.vel_ramp_setpoint ; + float vel_setpoint_integral = state.vel_ramp_setpoint ; if (state.mode >= CONTROLLER_MODE_POSITION) { const float delta_pos = observer_get_diff(&position_observer, state.pos_setpoint); - const float delta_pos_integrator = sgnf(delta_pos) * our_fmaxf(0, fabsf(delta_pos) - config.vel_integrator_deadband); + const float delta_pos_integral = sgnf(delta_pos) * our_fmaxf(0, fabsf(delta_pos) - config.vel_integral_deadband); vel_setpoint += delta_pos * config.pos_gain; - vel_setpoint_integrator += delta_pos_integrator * config.pos_gain; + vel_setpoint_integral += delta_pos_integral * config.pos_gain; } const float vel_estimate = observer_get_vel_estimate(&position_observer); float Iq_setpoint = state.Iq_setpoint; - if (state.mode >= CONTROLLER_MODE_VELOCITY) + if (state.mode >= CONTROLLER_MODE_VELOCITY) { const float delta_vel = vel_setpoint - vel_estimate; - const float delta_vel_integrator = vel_setpoint_integrator - vel_estimate; // Velocity limiting will be done later on based on the estimate - Iq_setpoint += delta_vel * config.vel_gain; - Iq_setpoint += state.vel_integrator_Iq; - state.vel_integrator_Iq += delta_vel_integrator * PWM_PERIOD_S * config.vel_integrator_gain; + Iq_setpoint += apply_velocity_transformation(delta_vel * config.vel_gain + state.vel_integrator, &position_sensor_to_commutation_sensor); + state.vel_integrator += (vel_setpoint_integral - vel_estimate) * PWM_PERIOD_S * config.vel_integral_gain; } else { - state.vel_integrator_Iq = 0.0f; + state.vel_integrator = 0.0f; } // Velocity-dependent current limiting if (Controller_LimitVelocity(-config.vel_limit, config.vel_limit, vel_estimate, config.vel_gain, &Iq_setpoint) == true) { - state.vel_integrator_Iq *= 0.995f; + state.vel_integrator *= 0.995f; state.warnings |= CONTROLLER_WARNINGS_VELOCITY_LIMITED; } // Absolute current & velocity integrator limiting if (our_clampc(&Iq_setpoint, -config.I_limit, config.I_limit) == true) { - state.vel_integrator_Iq *= 0.995f; + state.vel_integrator *= 0.995f; state.warnings |= CONTROLLER_WARNINGS_CURRENT_LIMITED; } @@ -240,6 +234,7 @@ TM_RAMFUNC void CLControlStep(void) state.Id_setpoint = 0.0f; } + #warning REVISE THIS const float e_phase = observer_get_epos(&commutation_observer); const float c_I = fast_cos(e_phase); const float s_I = fast_sin(e_phase); @@ -248,6 +243,7 @@ TM_RAMFUNC void CLControlStep(void) float Vq; if (motor_get_is_gimbal() == true) { + #warning REVISE THIS const float e_phase_vel = observer_get_evel(&commutation_observer); Vd = -e_phase_vel * motor_get_phase_inductance() * Iq_setpoint; Vq = motor_get_phase_resistance() * Iq_setpoint; @@ -264,23 +260,23 @@ TM_RAMFUNC void CLControlStep(void) const float Id = (c_I * Ialpha) + (s_I * Ibeta); const float Iq = (c_I * Ibeta) - (s_I * Ialpha); - state.Id_est += config.I_k * (Id - state.Id_est); - state.Iq_est += config.I_k * (Iq - state.Iq_est); + state.Id_estimate += config.I_k * (Id - state.Id_estimate); + state.Iq_estimate += config.I_k * (Iq - state.Iq_estimate); - const float delta_Id = state.Id_setpoint - state.Id_est; - const float delta_Iq = Iq_setpoint - state.Iq_est; + const float delta_Id = state.Id_setpoint - state.Id_estimate; + const float delta_Iq = Iq_setpoint - state.Iq_estimate; - state.Id_integrator_Vd += delta_Id * PWM_PERIOD_S * config.Id_integrator_gain; - state.Iq_integrator_Vq += delta_Iq * PWM_PERIOD_S * config.Iq_integrator_gain; + state.Id_integrator += delta_Id * PWM_PERIOD_S * config.Id_integral_gain; + state.Iq_integrator += delta_Iq * PWM_PERIOD_S * config.Iq_integral_gain; - Vd = (delta_Id * config.I_gain) + state.Id_integrator_Vd; - Vq = (delta_Iq * config.I_gain) + state.Iq_integrator_Vq; + Vd = (delta_Id * config.I_gain) + state.Id_integrator; + Vq = (delta_Iq * config.I_gain) + state.Iq_integrator; } state.Vq_setpoint = Vq; float mod_q = Vq / Vbus_voltage; float mod_d = Vd / Vbus_voltage; - state.Ibus_est = state.Iq_est * mod_q + state.Id_est * mod_d; + state.Ibus_est = state.Iq_estimate * mod_q + state.Id_estimate * mod_d; state.power_est = state.Ibus_est * Vbus_voltage; // dq modulation limiter @@ -290,14 +286,17 @@ TM_RAMFUNC void CLControlStep(void) { mod_q *= dq_mod_scale_factor; mod_d *= dq_mod_scale_factor; - state.Id_integrator_Vd *= I_INTEGRATOR_DECAY_FACTOR; - state.Iq_integrator_Vq *= I_INTEGRATOR_DECAY_FACTOR; + state.Id_integrator *= I_INTEGRATOR_DECAY_FACTOR; + state.Iq_integrator *= I_INTEGRATOR_DECAY_FACTOR; state.warnings |= CONTROLLER_WARNINGS_MODULATION_LIMITED; } + const float mod_q_motor_frame = apply_velocity_transformation(mod_q, &commutation_sensor_to_motor); + const float mod_d_motor_frame = apply_velocity_transformation(mod_d, &commutation_sensor_to_motor); + // Inverse Park transform - float mod_a = (c_I * mod_d) - (s_I * mod_q); - float mod_b = (c_I * mod_q) + (s_I * mod_d); + float mod_a = (c_I * mod_d_motor_frame) - (s_I * mod_q_motor_frame); + float mod_b = (c_I * mod_q_motor_frame) + (s_I * mod_d_motor_frame); SVM(mod_a, mod_b, &state.modulation_values.A, &state.modulation_values.B, &state.modulation_values.C); @@ -371,80 +370,54 @@ TM_RAMFUNC void controller_set_mode(controller_mode_options new_mode) } } -TM_RAMFUNC float controller_get_pos_setpoint_user_frame(void) +TM_RAMFUNC float controller_get_Iq_estimate_user_frame(void) { - return (state.pos_setpoint - motor_get_user_offset()) * motor_get_user_direction(); + return apply_velocity_transformation(state.Iq_estimate, &commutation_sensor_to_user); } -TM_RAMFUNC void controller_set_pos_setpoint_user_frame(float value) +TM_RAMFUNC float controller_get_pos_setpoint_user_frame(void) { - // direction is either 1 or -1 so we can multiply instead of divide - state.pos_setpoint = value * motor_get_user_direction() + motor_get_user_offset(); + return apply_transformation(state.pos_setpoint, &position_sensor_to_user); } TM_RAMFUNC float controller_get_vel_setpoint_user_frame(void) { - return state.vel_setpoint * motor_get_user_direction(); -} - -TM_RAMFUNC void controller_set_vel_setpoint_user_frame(float value) -{ - // direction is either 1 or -1 so we can multiply instead of divide - state.vel_setpoint = value * motor_get_user_direction(); + return apply_velocity_transformation(state.vel_setpoint, &position_sensor_to_user); } TM_RAMFUNC float controller_get_Iq_estimate(void) { - return state.Iq_est; + return state.Iq_estimate; } - -TM_RAMFUNC float controller_get_Iq_setpoint(void) +TM_RAMFUNC float controller_get_Iq_setpoint_user_frame(void) { - return state.Iq_setpoint; + return apply_velocity_transformation(state.Iq_setpoint, &commutation_sensor_to_user); } -TM_RAMFUNC void controller_set_Iq_setpoint(float value) +TM_RAMFUNC float controller_get_Id_setpoint_user_frame(void) { - state.Iq_setpoint = value; + return apply_velocity_transformation(state.Id_setpoint, &commutation_sensor_to_user); } -TM_RAMFUNC float controller_get_Iq_estimate_user_frame(void) +TM_RAMFUNC void controller_set_pos_setpoint_user_frame(float value) { - return state.Iq_est * motor_get_user_direction(); + state.pos_setpoint = apply_transformation(value, &user_to_position_sensor); } -TM_RAMFUNC float controller_get_Iq_setpoint_user_frame(void) +TM_RAMFUNC void controller_set_vel_setpoint_user_frame(float value) { - return state.Iq_setpoint * motor_get_user_direction(); + state.vel_setpoint = apply_velocity_transformation(value, &user_to_position_sensor); } TM_RAMFUNC void controller_set_Iq_setpoint_user_frame(float value) { - state.Iq_setpoint = value * motor_get_user_direction(); -} + state.Iq_setpoint = apply_velocity_transformation(value, &user_to_commutation_sensor); -TM_RAMFUNC float controller_get_Id_setpoint_user_frame(void) -{ - return state.Id_setpoint; } TM_RAMFUNC float controller_get_Vq_setpoint_user_frame(void) { - return state.Vq_setpoint * motor_get_user_direction(); -} - -TM_RAMFUNC float controller_set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint) -{ - controller_set_pos_setpoint_user_frame(pos_setpoint); - controller_set_vel_setpoint_user_frame(vel_setpoint); - return observer_get_pos_estimate_user_frame(&position_observer); -} - -void controller_get_modulation_values(FloatTriplet *dc) -{ - dc->A = state.modulation_values.A; - dc->B = state.modulation_values.B; - dc->C = state.modulation_values.C; + return apply_velocity_transformation(state.Vq_setpoint, &commutation_sensor_to_user); } float controller_get_pos_gain(void) @@ -473,29 +446,29 @@ void controller_set_vel_gain(float gain) } } -float controller_get_vel_integrator_gain(void) +float controller_get_vel_integral_gain(void) { - return config.vel_integrator_gain; + return config.vel_integral_gain; } -void controller_set_vel_integrator_gain(float gain) +void controller_set_vel_integral_gain(float gain) { if (gain >= 0.0f) { - config.vel_integrator_gain = gain; + config.vel_integral_gain = gain; } } -float controller_get_vel_integrator_deadband(void) +float controller_get_vel_integral_deadband(void) { - return config.vel_integrator_deadband; + return config.vel_integral_deadband; } -void controller_set_vel_integrator_deadband(float value) +void controller_set_vel_integral_deadband(float value) { if (value >= 0.0f) { - config.vel_integrator_deadband = value; + config.vel_integral_deadband = value; } } @@ -621,8 +594,8 @@ TM_RAMFUNC void controller_update_I_gains(void) { config.I_gain = config.I_bw * motor_get_phase_inductance(); float plant_pole = motor_get_phase_resistance() / motor_get_phase_inductance(); - config.Iq_integrator_gain = plant_pole * config.I_gain; - config.Id_integrator_gain = config.Iq_integrator_gain; + config.Iq_integral_gain = plant_pole * config.I_gain; + config.Id_integral_gain = config.Iq_integral_gain; } TM_RAMFUNC uint8_t controller_get_warnings(void) diff --git a/firmware/src/controller/controller.h b/firmware/src/controller/controller.h index 5d524f0e..30a6c9fa 100644 --- a/firmware/src/controller/controller.h +++ b/firmware/src/controller/controller.h @@ -15,8 +15,7 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#ifndef CONTROLLER_CONTROLLER_H_ -#define CONTROLLER_CONTROLLER_H_ +#pragma once #include #include @@ -32,19 +31,19 @@ typedef struct bool is_calibrating; FloatTriplet I_phase_meas; FloatTriplet modulation_values; - float Iq_est; - float Id_est; + float Iq_estimate; + float Id_estimate; float Ibus_est; float power_est; - float pos_setpoint; - float vel_setpoint; + float pos_setpoint; // expressed in position frame + float vel_setpoint; // expressed in position frame float vel_ramp_setpoint; - float Iq_setpoint; - float Id_setpoint; - float Vq_setpoint; - float vel_integrator_Iq; - float Iq_integrator_Vq; - float Id_integrator_Vd; + float Iq_setpoint; // expressed in commutation frame + float Id_setpoint; // expressed in commutation frame + float Vq_setpoint; // expressed in commutation frame + float vel_integrator; + float Iq_integrator; + float Id_integrator; float t_plan; } ControllerState; @@ -55,12 +54,12 @@ typedef struct float I_limit; float pos_gain; float vel_gain; - float vel_integrator_gain; - float vel_integrator_deadband; + float vel_integral_gain; + float vel_integral_deadband; float I_bw; float I_gain; - float Iq_integrator_gain; - float Id_integrator_gain; + float Iq_integral_gain; + float Id_integral_gain; float I_k; float vel_increment; float max_Ibus_regen; @@ -81,34 +80,31 @@ inline void controller_position_mode(void) {controller_set_mode(CONTROLLER_MODE_ inline void controller_velocity_mode(void) {controller_set_mode(CONTROLLER_MODE_VELOCITY);controller_set_state(CONTROLLER_STATE_CL_CONTROL);} inline void controller_current_mode(void) {controller_set_mode(CONTROLLER_MODE_CURRENT);controller_set_state(CONTROLLER_STATE_CL_CONTROL);} +float controller_get_Iq_estimate_user_frame(void); + float controller_get_pos_setpoint_user_frame(void); -void controller_set_pos_setpoint_user_frame(float value); float controller_get_vel_setpoint_user_frame(void); +float controller_get_Iq_setpoint_user_frame(void); +float controller_get_Id_setpoint_user_frame(void); + +void controller_set_pos_setpoint_user_frame(float value); void controller_set_vel_setpoint_user_frame(float value); +void controller_set_Iq_setpoint_user_frame(float value); float controller_get_Iq_estimate(void); -float controller_get_Iq_setpoint(void); -void controller_set_Iq_setpoint(float value); - -float controller_get_Iq_estimate_user_frame(void); -float controller_get_Iq_setpoint_user_frame(void); -void controller_set_Iq_setpoint_user_frame(float value); -float controller_get_Id_setpoint_user_frame(void); float controller_get_Vq_setpoint_user_frame(void); float controller_set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint); -void controller_get_modulation_values(FloatTriplet *dc); - float controller_get_pos_gain(void); void controller_set_pos_gain(float gain); float controller_get_vel_gain(void); void controller_set_vel_gain(float gain); -float controller_get_vel_integrator_gain(void); -void controller_set_vel_integrator_gain(float gain); -float controller_get_vel_integrator_deadband(void); -void controller_set_vel_integrator_deadband(float gain); +float controller_get_vel_integral_gain(void); +void controller_set_vel_integral_gain(float gain); +float controller_get_vel_integral_deadband(void); +void controller_set_vel_integral_deadband(float gain); float controller_get_Iq_gain(void); float controller_get_I_bw(void); void controller_set_I_bw(float bw); @@ -138,4 +134,3 @@ uint8_t controller_get_errors(void); ControllerConfig *controller_get_config(void); void controller_restore_config(ControllerConfig *config_); -#endif /* CONTROLLER_CONTROLLER_H_ */ diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index c98e0771..d25ce58c 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -57,8 +57,10 @@ TM_RAMFUNC bool homing_planner_evaluate() if (state.stay_t_current >= config.max_stay_t) { // First time the endstop is considered found, reset origins and setpoints - motor_set_user_offset(0); - motor_set_user_offset(observer_pos); + user_to_position_sensor.offset = observer_pos; + position_sensor_to_user = derive_inverse_transformation(&user_to_position_sensor); + user_to_commutation_sensor = combine_transformations(&user_to_position_sensor, &position_sensor_to_commutation_sensor); + commutation_sensor_to_user = derive_inverse_transformation(&user_to_commutation_sensor); controller_set_pos_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(0); } diff --git a/firmware/src/gatedriver/gatedriver.c b/firmware/src/gatedriver/gatedriver.c index 0572390c..62108839 100644 --- a/firmware/src/gatedriver/gatedriver.c +++ b/firmware/src/gatedriver/gatedriver.c @@ -15,7 +15,6 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#include #include #include @@ -60,22 +59,3 @@ TM_RAMFUNC void gate_driver_disable(void) PAC55XX_GPIOB->OUTMASK.w = 0x00; } -TM_RAMFUNC bool gate_driver_is_enabled(void) -{ - return ((pac5xxx_tile_register_read(ADDR_ENDRV) & 0x1) == 1); -} - -TM_RAMFUNC void gate_driver_set_duty_cycle(const FloatTriplet *dutycycles) -{ - m1_u_set_duty(dutycycles->A); - if (motor_phases_swapped()) - { - m1_v_set_duty(dutycycles->C); - m1_w_set_duty(dutycycles->B); - } - else - { - m1_v_set_duty(dutycycles->B); - m1_w_set_duty(dutycycles->C); - } -} diff --git a/firmware/src/gatedriver/gatedriver.h b/firmware/src/gatedriver/gatedriver.h index ae09bcfc..06478212 100644 --- a/firmware/src/gatedriver/gatedriver.h +++ b/firmware/src/gatedriver/gatedriver.h @@ -15,33 +15,39 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#ifndef GATEDRIVER_GATEDRIVER_H_ -#define GATEDRIVER_GATEDRIVER_H_ +#pragma once +#include void gate_driver_enable(void); void gate_driver_disable(void); -bool gate_driver_is_enabled(void); -void gate_driver_set_duty_cycle(const FloatTriplet *dc); - -//============================================= -// Motor Driver Duty Cycle Macro Functions -//============================================= static inline void m1_u_set_duty(const float duty) { uint16_t val = ((uint16_t)(duty * (TIMER_FREQ_HZ/PWM_FREQ_HZ) )) >>1; PAC55XX_TIMERA->CCTR4.CTR = val; } + static inline void m1_v_set_duty(const float duty) { uint16_t val = ((uint16_t)(duty * (TIMER_FREQ_HZ/PWM_FREQ_HZ) )) >>1; PAC55XX_TIMERA->CCTR5.CTR = val; } + static inline void m1_w_set_duty(const float duty) { uint16_t val = ((uint16_t)(duty * (TIMER_FREQ_HZ/PWM_FREQ_HZ) )) >>1; PAC55XX_TIMERA->CCTR6.CTR = val; } -#endif /* GATEDRIVER_GATEDRIVER_H_ */ +static inline void gate_driver_set_duty_cycle(const FloatTriplet *dutycycles) +{ + m1_u_set_duty(dutycycles->A); + m1_v_set_duty(dutycycles->B); + m1_w_set_duty(dutycycles->C); +} + +static inline bool gate_driver_is_enabled(void) +{ + return ((pac5xxx_tile_register_read(ADDR_ENDRV) & 0x1) == 1); +} diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index 8e5e6bad..73f1abe6 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -30,16 +30,12 @@ static MotorConfig config = { .phase_resistance = MIN_PHASE_RESISTANCE, .phase_inductance = MIN_PHASE_INDUCTANCE, - .user_offset = 0.0f, - .user_direction = 1, - .I_cal = 6.0f, .resistance_calibrated = false, .inductance_calibrated = false, .poles_calibrated = false, - .phases_swapped = false, .is_gimbal = false}; #elif defined BOARD_REV_M5 @@ -49,16 +45,12 @@ static MotorConfig config = { .phase_resistance = MIN_PHASE_RESISTANCE, .phase_inductance = MIN_PHASE_INDUCTANCE, - .user_offset = 0.0f, - .user_direction = 1, - .I_cal = 1.2f, .resistance_calibrated = false, .inductance_calibrated = false, .poles_calibrated = false, - .phases_swapped = false, .is_gimbal = false}; #endif @@ -80,10 +72,7 @@ void motor_reset_calibration() config.resistance_calibrated = false; config.inductance_calibrated = false; } - config.user_offset = 0.0f; - config.user_direction = 1; config.poles_calibrated = false; - config.phases_swapped = false; } bool motor_calibrate_resistance(void) @@ -264,16 +253,6 @@ TM_RAMFUNC void motor_set_I_cal(float I) } } -TM_RAMFUNC bool motor_phases_swapped(void) -{ - return config.phases_swapped; -} - -TM_RAMFUNC void motor_set_phases_swapped(bool swapped) -{ - config.phases_swapped = swapped; -} - TM_RAMFUNC bool motor_get_calibrated(void) { return config.resistance_calibrated && config.inductance_calibrated && config.poles_calibrated; @@ -289,29 +268,6 @@ TM_RAMFUNC void motor_set_is_gimbal(bool gimbal) config.is_gimbal = gimbal; } -TM_RAMFUNC float motor_get_user_offset(void) -{ - return config.user_offset; -} - -TM_RAMFUNC void motor_set_user_offset(float offset) -{ - config.user_offset = offset; -} - -TM_RAMFUNC int8_t motor_get_user_direction(void) -{ - return config.user_direction; -} - -TM_RAMFUNC void motor_set_user_direction(int8_t dir) -{ - if ((dir == -1) || (dir == 1)) - { - config.user_direction = dir; - } -} - TM_RAMFUNC uint8_t motor_get_errors(void) { return state.errors; diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 7c00ffb7..27a5616a 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -56,16 +56,12 @@ typedef struct float phase_resistance; float phase_inductance; - float user_offset; - float user_direction; - float I_cal; bool resistance_calibrated; bool inductance_calibrated; bool poles_calibrated; - bool phases_swapped; bool is_gimbal; } MotorConfig; @@ -93,20 +89,11 @@ void motor_set_phase_R_and_L(float R, float L); float motor_get_I_cal(void); void motor_set_I_cal(float I); -bool motor_phases_swapped(void); -void motor_set_phases_swapped(bool swapped); - bool motor_get_calibrated(void); bool motor_get_is_gimbal(void); void motor_set_is_gimbal(bool gimbal); -float motor_get_user_offset(void); -void motor_set_user_offset(float offset); - -int8_t motor_get_user_direction(void); -void motor_set_user_direction(int8_t dir); - uint8_t motor_get_errors(void); uint8_t *motor_get_error_ptr(void); diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index c83f609a..5a3a5c6c 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -21,6 +21,7 @@ #include #include #include +#include typedef struct Observer Observer; @@ -44,11 +45,28 @@ struct Observer { typedef struct { ObserverConfig config_commutation; ObserverConfig config_position; + FrameTransformation position_sensor_to_user; + FrameTransformation user_to_position_sensor; + FrameTransformation position_sensor_to_commutation_sensor; + FrameTransformation commutation_sensor_to_position_sensor; + FrameTransformation commutation_sensor_to_user; + FrameTransformation user_to_commutation_sensor; + FrameTransformation commutation_sensor_to_motor; + FrameTransformation motor_to_commutation_sensor; } ObserversConfig; Observer commutation_observer; Observer position_observer; +FrameTransformation position_sensor_to_user; +FrameTransformation user_to_position_sensor; +FrameTransformation position_sensor_to_commutation_sensor; +FrameTransformation commutation_sensor_to_position_sensor; +FrameTransformation commutation_sensor_to_user; +FrameTransformation user_to_commutation_sensor; +FrameTransformation commutation_sensor_to_motor; +FrameTransformation motor_to_commutation_sensor; + bool observer_init_with_defaults(Observer *o, Sensor **s); bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c); @@ -134,17 +152,29 @@ static inline float observer_get_evel(Observer *o) return o->vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); } -static inline float observer_get_pos_estimate_user_frame(Observer *o) +// Interface functions + +static inline float get_position_observer_to_user_offset(void) { - return (observer_get_pos_estimate(o) - motor_get_user_offset()) * motor_get_user_direction(); + return position_sensor_to_user.offset; } -static inline float observer_get_vel_estimate_user_frame(Observer *o) +static inline float get_position_observer_to_user_multiplier(void) { - return o->vel_estimate * motor_get_user_direction(); + return position_sensor_to_user.multiplier; } -// Interface functions +static inline void set_position_observer_to_user_offset(float value) +{ + position_sensor_to_user.offset = value; + commutation_sensor_to_user = combine_transformations(&commutation_sensor_to_position_sensor, &position_sensor_to_user); +} + +static inline void set_position_observer_to_user_multiplier(float value) +{ + position_sensor_to_user.offset = value; + commutation_sensor_to_user = combine_transformations(&commutation_sensor_to_position_sensor, &position_sensor_to_user); +} static inline float commutation_observer_get_bandwidth(void) { @@ -160,22 +190,32 @@ static inline float position_observer_get_bandwidth(void) void position_observer_set_bandwidth(float bw); -static inline float commutation_observer_get_pos_estimate_user_frame(void) +static inline float commutation_observer_get_pos_estimate(void) +{ + return observer_get_pos_estimate(&commutation_observer); +} + +static inline float commutation_observer_get_vel_estimate(void) +{ + return observer_get_vel_estimate(&commutation_observer); +} + +static inline float position_observer_get_pos_estimate(void) { - return observer_get_pos_estimate_user_frame(&commutation_observer); + return observer_get_pos_estimate(&position_observer); } -static inline float commutation_observer_get_vel_estimate_user_frame(void) +static inline float position_observer_get_vel_estimate(void) { - return observer_get_vel_estimate_user_frame(&commutation_observer); + return observer_get_vel_estimate(&position_observer); } -static inline float position_observer_get_pos_estimate_user_frame(void) +static inline float user_frame_get_pos_estimate(void) { - return observer_get_pos_estimate_user_frame(&position_observer); + return apply_transformation(observer_get_pos_estimate(&position_observer), &position_sensor_to_user); } -static inline float position_observer_get_vel_estimate_user_frame(void) +static inline float user_frame_get_vel_estimate(void) { - return observer_get_vel_estimate_user_frame(&position_observer); + return apply_velocity_transformation(observer_get_vel_estimate(&position_observer), &position_sensor_to_user);; } \ No newline at end of file diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index e66caa60..f7528bd2 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -26,6 +26,7 @@ void as5047p_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_AS5047; + s->bits = AS5047_BITS; s->ticks = AS5047_TICKS; s->get_raw_angle_func = as5047p_get_raw_angle; s->update_func = as5047p_update; diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index d537490a..0accc5fb 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -27,6 +27,7 @@ void hall_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_HALL; + s->bits = HALL_BITS; s->ticks = HALL_SECTORS; s->get_raw_angle_func = hall_get_angle; s->update_func = hall_update; diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index eea8f9e1..04fada48 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -19,6 +19,13 @@ #include +#define HALL_BITS (3) +#define HALL_SECTORS (HALL_BITS - 2) +#define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) +#define CAL_DIR_LEN_PER_SECTOR (CAL_DIR_LEN / HALL_SECTORS) + +static const float twopi_by_hall_sectors = TWOPI / HALL_SECTORS; + typedef struct Observer Observer; typedef struct diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 1de6fe47..ca099387 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -26,6 +26,7 @@ void ma7xx_make_blank_sensor(Sensor *s) { s->config.type = SENSOR_TYPE_MA7XX; + s->bits = MA7XX_BITS; s->ticks = MA7XX_TICKS; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->calibrate_func = ma7xx_calibrate; diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index ed22508f..4b886023 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -131,7 +131,7 @@ bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) gate_driver_set_duty_cycle(&three_phase_zero); if (success && epos_start > epos_end) { - motor_set_phases_swapped(true); + #warning IMPLEMENT THIS } return success; } \ No newline at end of file diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 4cb8e6fa..bdb4275f 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -79,6 +79,7 @@ struct Sensor { // typedefd earlier sensor_prepare_func_t prepare_func; sensor_get_ss_config_func_t get_ss_config_func; sensor_get_errors_func_t get_errors_func; + uint8_t bits; uint32_t ticks; bool initialized : 1; bool current : 1; @@ -88,16 +89,6 @@ void sensor_reset(Sensor *s); bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); -static inline int32_t sensor_get_angle_rectified(const Sensor *s) -{ - const uint8_t offset_bits = (sensor_get_bits(s) - ECN_BITS); - const int32_t angle = s->get_raw_angle_func(s); - const int32_t off_1 = s->config.rec_table[angle>>offset_bits]; - const int32_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; - const int32_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); - return angle + off_interp; -} - static inline void sensor_update(Sensor *s, bool check_error) { if (s->current == false) @@ -112,7 +103,12 @@ static inline void sensor_invalidate(Sensor *s) s->current = false; } -static inline uint32_t sensor_get_ticks(Sensor *s) +static inline uint8_t sensor_get_bits(const Sensor *s) +{ + return s->bits; +} + +static inline uint32_t sensor_get_ticks(const Sensor *s) { return s->ticks; } @@ -125,3 +121,12 @@ static inline void sensor_prepare(Sensor *s) } } +static inline int32_t sensor_get_angle_rectified(const Sensor *s) +{ + const uint8_t offset_bits = (sensor_get_bits(s) - ECN_BITS); + const int32_t angle = s->get_raw_angle_func(s); + const int32_t off_1 = s->config.rec_table[angle>>offset_bits]; + const int32_t off_2 = s->config.rec_table[((angle>>offset_bits) + 1) % ECN_SIZE]; + const int32_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); + return angle + off_interp; +} diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index f6251634..e53b1fe0 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -106,19 +106,6 @@ TM_RAMFUNC void system_update(void) { state.errors |= ERRORS_UNDERVOLTAGE; } - // const uint8_t drv_status = pac5xxx_tile_register_read(ADDR_STATDRV); - // if (drv_status > 0) - // { - // state.errors |= ((drv_status & 0x56) << 1); - // } - // const uint8_t drv_fault = pac5xxx_tile_register_read(ADDR_DRV_FLT); - // if (drv_fault > 0) - // { - // // We use 0x5 mask because we ignore CHARGE_PUMP_FAULT_STAT - // // for the time being, as it seems to always be set, and - // // ERRORS_DRVXX_DISABLE, as it seems to give spurious errors. - // state.errors |= ((drv_fault & 0x5) << 1); - // } } void system_reset(void) @@ -159,6 +146,17 @@ TM_RAMFUNC uint8_t system_get_errors(void) return state.errors; } +TM_RAMFUNC uint8_t system_get_warnings(void) +{ + // As the user request rate is less than the update + // rate, and the warnings do not affect system integrity + // evaluation, it is better to fetch the registers per + // request + const uint8_t warnings = ((pac5xxx_tile_register_read(ADDR_STATDRV) & 0x56)) | + ((pac5xxx_tile_register_read(ADDR_DRV_FLT) & 0x5)); + return warnings; +} + TM_RAMFUNC bool errors_exist(void) { return (controller_get_errors() || diff --git a/firmware/src/system/system.h b/firmware/src/system/system.h index 93e29604..7ebaa358 100644 --- a/firmware/src/system/system.h +++ b/firmware/src/system/system.h @@ -67,6 +67,7 @@ void system_reset_calibration(void); float system_get_Vbus(void); bool system_get_calibrated(void); uint8_t system_get_errors(void); +uint8_t system_get_warnings(void); bool errors_exist(void); #endif /* SYSTEM_SYSTEM_H_ */ diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index 16c7f8db..fb009616 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -25,15 +25,20 @@ typedef enum typedef enum { ERRORS_NONE = 0, - ERRORS_UNDERVOLTAGE = (1 << 0), - ERRORS_DRIVER_FAULT = (1 << 1), - ERRORS_CHARGE_PUMP_FAULT_STAT = (1 << 2), - ERRORS_CHARGE_PUMP_FAULT = (1 << 3), - ERRORS_DRV10_DISABLE = (1 << 4), - ERRORS_DRV32_DISABLE = (1 << 5), - ERRORS_DRV54_DISABLE = (1 << 6) + ERRORS_UNDERVOLTAGE = (1 << 0) } errors_flags; +typedef enum +{ + WARNINGS_NONE = 0, + WARNINGS_DRIVER_FAULT = (1 << 0), + WARNINGS_CHARGE_PUMP_FAULT_STAT = (1 << 1), + WARNINGS_CHARGE_PUMP_FAULT = (1 << 2), + WARNINGS_DRV10_DISABLE = (1 << 3), + WARNINGS_DRV32_DISABLE = (1 << 4), + WARNINGS_DRV54_DISABLE = (1 << 5) +} warnings_flags; + typedef enum { SCHEDULER_ERRORS_NONE = 0, @@ -127,14 +132,14 @@ typedef enum typedef enum { - SENSORS_SELECT_POSITION_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_POSITION_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_POSITION_CONNECTION_HALL = 2 -} sensors_select_position_connection_options; + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_HALL = 2 +} sensors_select_position_sensor_connection_options; typedef enum { - SENSORS_SELECT_COMMUTATION_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_COMMUTATION_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_COMMUTATION_CONNECTION_HALL = 2 -} sensors_select_commutation_connection_options; + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_HALL = 2 +} sensors_select_commutation_sensor_connection_options; diff --git a/firmware/src/uart/uart_interface.c b/firmware/src/uart/uart_interface.c index 71168466..5166208b 100644 --- a/firmware/src/uart/uart_interface.c +++ b/firmware/src/uart/uart_interface.c @@ -52,7 +52,7 @@ void UART_WriteAddr(uint8_t addr, int32_t data) break; case 'G': // velocity integrator gain - controller_set_vel_integrator_gain((float)data * ONE_OVER_UART_VEL_INT_SCALING_FACTOR); + controller_set_vel_integral_gain((float)data * ONE_OVER_UART_VEL_INT_SCALING_FACTOR); break; case 'Y': // Position gain @@ -125,7 +125,7 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'p': // pos estimate - ret_val = position_observer_get_pos_estimate_user_frame(); + ret_val = user_frame_get_pos_estimate(); break; case 'P': // pos setpoint @@ -133,7 +133,7 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'v': // vel estimate - ret_val = (int32_t)position_observer_get_vel_estimate_user_frame(); + ret_val = (int32_t)user_frame_get_vel_estimate(); break; case 'V': // vel setpoint @@ -149,7 +149,7 @@ int32_t UART_ReadAddr(uint8_t addr) break; case 'G': // velocity integrator setpoint - ret_val = (int32_t)(controller_get_vel_integrator_gain() * UART_VEL_INT_SCALING_FACTOR); + ret_val = (int32_t)(controller_get_vel_integral_gain() * UART_VEL_INT_SCALING_FACTOR); break; case 'H': // phase resistance diff --git a/firmware/src/xf1.h b/firmware/src/xf1.h new file mode 100644 index 00000000..ea684b36 --- /dev/null +++ b/firmware/src/xf1.h @@ -0,0 +1,67 @@ +#pragma once + +#include // For fabsf() - single precision absolute value + +#define DEFAULT_TRANSFORM (FrameTransformation){.offset = 0.0f, .multiplier = 1.0f} + +// Structure to represent a 1D transformation from one frame to another +typedef struct { + float offset; // Offset to be added or subtracted + float multiplier; // Multiplier to scale and indicate direction +} FrameTransformation; + +// Function to apply the transformation +// Applies the transformation in the form: (value * multiplier) + offset +static inline float apply_transformation(float value, const FrameTransformation* transformation) { + return (value * transformation->multiplier) + transformation->offset; +} + +// Function to apply the transformation to a velocity (ignoring offset) +static inline float apply_velocity_transformation(float velocity, const FrameTransformation* transformation) { + return velocity * transformation->multiplier; +} + +// Function to derive the inverse of a given transformation +static inline FrameTransformation derive_inverse_transformation(const FrameTransformation* original) { + FrameTransformation inverse; + // The inverse multiplier is the reciprocal of the original multiplier + inverse.multiplier = 1.0f / original->multiplier; + // To find the offset for the inverse, negate the original offset and then scale it by the inverse multiplier + inverse.offset = -original->offset * inverse.multiplier; + return inverse; +} + +// Function to derive a FrameTransformation based on positions in two frames +static inline FrameTransformation derive_transformation(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { + FrameTransformation transformation; + + float sourceDelta = measuredSource - commandedSource; + float targetDelta = measuredTarget - commandedTarget; + + if (sourceDelta == 0) { + // If there's no change in source, the multiplier should be set to 1 + // and the offset is simply the difference between target and source positions + transformation.multiplier = 1.0f; + transformation.offset = commandedTarget - commandedSource; + } else { + // Calculate multiplier, incorporating direction based on the delta values + transformation.multiplier = targetDelta / sourceDelta; + // Calculate offset using one pair of points + transformation.offset = commandedTarget - (commandedSource * transformation.multiplier); + } + + return transformation; +} + +// Function to combine two transformations +static inline FrameTransformation combine_transformations(const FrameTransformation* first, const FrameTransformation* second) { + FrameTransformation combined; + + // The combined multiplier is the product of the two multipliers + combined.multiplier = first->multiplier * second->multiplier; + + // The combined offset is the first offset plus the second offset scaled by the first multiplier + combined.offset = first->offset + (second->offset * first->multiplier); + + return combined; +} diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index cdd45fb5..91b1a746 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -47,10 +47,15 @@ remote_attributes: getter_name: system_get_calibrated summary: Whether the system has been calibrated. - name: errors - flags: [UNDERVOLTAGE, DRIVER_FAULT, CHARGE_PUMP_FAULT_STAT, CHARGE_PUMP_FAULT, DRV10_DISABLE, DRV32_DISABLE, DRV54_DISABLE] + flags: [UNDERVOLTAGE] meta: {dynamic: True} getter_name: system_get_errors summary: Any system errors, as a bitmask + - name: warnings + flags: [DRIVER_FAULT, CHARGE_PUMP_FAULT_STAT, CHARGE_PUMP_FAULT, DRV10_DISABLE, DRV32_DISABLE, DRV54_DISABLE] + meta: {dynamic: True} + getter_name: system_get_warnings + summary: Any system warnings, as a bitmask - name: save_config summary: Save configuration to non-volatile memory. caller_name: nvm_save_config @@ -117,7 +122,7 @@ remote_attributes: meta: {jog_step: 100} getter_name: controller_get_pos_setpoint_user_frame setter_name: controller_set_pos_setpoint_user_frame - summary: The position setpoint. + summary: The position setpoint in the user reference frame. - name: p_gain dtype: float meta: {export: True} @@ -132,7 +137,7 @@ remote_attributes: meta: {jog_step: 200} getter_name: controller_get_vel_setpoint_user_frame setter_name: controller_set_vel_setpoint_user_frame - summary: The velocity setpoint. + summary: The velocity setpoint in the user reference frame. - name: limit dtype: float unit: tick/sec @@ -149,15 +154,15 @@ remote_attributes: - name: i_gain dtype: float meta: {export: True} - getter_name: controller_get_vel_integrator_gain - setter_name: controller_set_vel_integrator_gain + getter_name: controller_get_vel_integral_gain + setter_name: controller_set_vel_integral_gain summary: The integral gain of the velocity controller. - name: deadband dtype: float unit: tick meta: {export: True} - getter_name: controller_get_vel_integrator_deadband - setter_name: controller_set_vel_integrator_deadband + getter_name: controller_get_vel_integral_deadband + setter_name: controller_set_vel_integral_deadband rst_target: integrator-deadband summary: The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. - name: increment @@ -174,13 +179,13 @@ remote_attributes: meta: {jog_step: 0.005} getter_name: controller_get_Iq_setpoint_user_frame setter_name: controller_set_Iq_setpoint_user_frame - summary: The Iq setpoint. + summary: The Iq setpoint in the user reference frame. - name: Id_setpoint dtype: float unit: ampere meta: {dynamic: True} getter_name: controller_get_Id_setpoint_user_frame - summary: The Id setpoint. + summary: The Id setpoint in the user reference frame. - name: Iq_limit dtype: float unit: ampere @@ -192,7 +197,7 @@ remote_attributes: unit: ampere meta: {dynamic: True} getter_name: controller_get_Iq_estimate_user_frame - summary: The Iq estimate. + summary: The Iq estimate in the user reference frame. - name: bandwidth dtype: float unit: Hz @@ -251,7 +256,7 @@ remote_attributes: dtype: void arguments: [] - name: set_pos_vel_setpoints - summary: Set the position and velocity setpoints in one go, and retrieve the position estimate + summary: Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate caller_name: controller_set_pos_vel_setpoints dtype: float arguments: @@ -306,18 +311,6 @@ remote_attributes: getter_name: motor_get_is_gimbal setter_name: motor_set_is_gimbal summary: The type of the motor. Either high current or gimbal. - - name: offset - dtype: float - meta: {export: True} - getter_name: motor_get_user_offset - setter_name: motor_set_user_offset - summary: User-defined offset of the motor. - - name: direction - dtype: int8 - meta: {export: True} - getter_name: motor_get_user_direction - setter_name: motor_set_user_direction - summary: User-defined direction of the motor. - name: calibrated dtype: bool meta: {dynamic: True} @@ -337,6 +330,31 @@ remote_attributes: summary: Any motor/calibration errors, as a bitmask - name: sensors remote_attributes: + - name: user_frame + remote_attributes: + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: user_frame_get_pos_estimate + summary: The filtered position estimate in the user reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: user_frame_get_vel_estimate + summary: The filtered velocity estimate in the user reference frame. + - name: offset + dtype: float + unit: ticks + getter_name: get_position_observer_to_user_offset + setter_name: set_position_observer_to_user_offset + summary: The user defined offset. + - name: multiplier + dtype: float + getter_name: get_position_observer_to_user_multiplier + setter_name: set_position_observer_to_user_multiplier + summary: The user defined multipler. - name: setup remote_attributes: - name: onboard @@ -383,7 +401,7 @@ remote_attributes: summary: Any sensor errors, as a bitmask - name: select remote_attributes: - - name: position + - name: position_sensor remote_attributes: - name: connection options: [ONBOARD, EXTERNAL_SPI, HALL] @@ -407,15 +425,15 @@ remote_attributes: dtype: float unit: ticks meta: {dynamic: True} - getter_name: position_observer_get_pos_estimate_user_frame - summary: The filtered position sensor position estimate. + getter_name: position_observer_get_pos_estimate + summary: The filtered position estimate in the position sensor reference frame. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} - getter_name: position_observer_get_vel_estimate_user_frame - summary: The filtered position sensor velocity estimate. - - name: commutation + getter_name: position_observer_get_vel_estimate + summary: The filtered velocity estimate in the position sensor reference frame. + - name: commutation_sensor remote_attributes: - name: connection options: [ONBOARD, EXTERNAL_SPI, HALL] @@ -439,14 +457,14 @@ remote_attributes: dtype: float unit: ticks meta: {dynamic: True} - getter_name: commutation_observer_get_pos_estimate_user_frame - summary: The filtered commutation sensor position estimate. + getter_name: commutation_observer_get_pos_estimate + summary: The filtered position estimate in the commutation sensor reference frame. - name: velocity_estimate dtype: float unit: ticks/second meta: {dynamic: True} - getter_name: commutation_observer_get_vel_estimate_user_frame - summary: The filtered commutation sensor velocity estimate. + getter_name: commutation_observer_get_vel_estimate + summary: The filtered velocity estimate in the commutation sensor reference frame. - name: traj_planner remote_attributes: - name: max_accel @@ -492,7 +510,7 @@ remote_attributes: setter_name: planner_set_deltat_total summary: In time mode, the total time of the generated trajectory. - name: move_to - summary: Move to target position respecting velocity and acceleration limits. + summary: Move to target position in the user reference frame respecting velocity and acceleration limits. caller_name: planner_move_to_vlimit dtype: void arguments: @@ -500,7 +518,7 @@ remote_attributes: dtype: float unit: tick - name: move_to_tlimit - summary: Move to target position respecting time limits for each sector. + summary: Move to target position in the user reference frame respecting time limits for each sector. caller_name: planner_move_to_tlimit dtype: void arguments: From 84a3c489f7666ca674d5d1c8f0dfa92b3c0920e4 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 13 Feb 2024 19:48:17 +0200 Subject: [PATCH 068/219] revise transforms --- firmware/src/can/can_endpoints.c | 4 +- firmware/src/controller/controller.c | 41 ++++----- firmware/src/controller/controller.h | 2 + firmware/src/controller/homing_planner.c | 10 +-- firmware/src/observer/observer.h | 90 ++++++++++--------- firmware/src/sensor/as5047.c | 2 +- firmware/src/sensor/ma7xx.c | 2 +- firmware/src/sensor/sensor.c | 46 ++++++---- firmware/src/sensor/sensor.h | 2 +- firmware/src/xf1.h | 22 ++--- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 2 +- 11 files changed, 121 insertions(+), 102 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 3e2bb558..e2557ca2 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -19,7 +19,7 @@ uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 1958736319; +uint32_t avlos_proto_hash = 211282378; uint32_t _avlos_get_proto_hash(void) { @@ -593,7 +593,7 @@ uint8_t avlos_controller_set_pos_vel_setpoints(uint8_t * buffer, uint8_t * buffe float vel_setpoint; memcpy(&vel_setpoint, buffer+_offset, sizeof(vel_setpoint)); _offset += sizeof(vel_setpoint); - float ret_val = controller_set_pos_vel_setpoints(pos_setpoint, vel_setpoint); + float ret_val = controller_set_pos_vel_setpoints_user_frame(pos_setpoint, vel_setpoint); memcpy(buffer, &ret_val, sizeof(ret_val)); *buffer_len = sizeof(ret_val); diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 8bb83c0f..815bda11 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -188,7 +188,7 @@ TM_RAMFUNC void CLControlStep(void) if (state.mode >= CONTROLLER_MODE_POSITION) { - const float delta_pos = observer_get_diff(&position_observer, state.pos_setpoint); + const float delta_pos = get_diff_position_sensor_frame(state.pos_setpoint); const float delta_pos_integral = sgnf(delta_pos) * our_fmaxf(0, fabsf(delta_pos) - config.vel_integral_deadband); vel_setpoint += delta_pos * config.pos_gain; vel_setpoint_integral += delta_pos_integral * config.pos_gain; @@ -201,7 +201,7 @@ TM_RAMFUNC void CLControlStep(void) { const float delta_vel = vel_setpoint - vel_estimate; // Velocity limiting will be done later on based on the estimate - Iq_setpoint += apply_velocity_transformation(delta_vel * config.vel_gain + state.vel_integrator, &position_sensor_to_commutation_sensor); + Iq_setpoint += apply_velocity_transform(delta_vel * config.vel_gain + state.vel_integrator, &position_sensor_to_motor); state.vel_integrator += (vel_setpoint_integral - vel_estimate) * PWM_PERIOD_S * config.vel_integral_gain; } else @@ -234,8 +234,7 @@ TM_RAMFUNC void CLControlStep(void) state.Id_setpoint = 0.0f; } - #warning REVISE THIS - const float e_phase = observer_get_epos(&commutation_observer); + const float e_phase = observer_get_epos_motor_frame(); const float c_I = fast_cos(e_phase); const float s_I = fast_sin(e_phase); @@ -243,8 +242,7 @@ TM_RAMFUNC void CLControlStep(void) float Vq; if (motor_get_is_gimbal() == true) { - #warning REVISE THIS - const float e_phase_vel = observer_get_evel(&commutation_observer); + const float e_phase_vel = observer_get_evel_motor_frame(); Vd = -e_phase_vel * motor_get_phase_inductance() * Iq_setpoint; Vq = motor_get_phase_resistance() * Iq_setpoint; } @@ -291,12 +289,9 @@ TM_RAMFUNC void CLControlStep(void) state.warnings |= CONTROLLER_WARNINGS_MODULATION_LIMITED; } - const float mod_q_motor_frame = apply_velocity_transformation(mod_q, &commutation_sensor_to_motor); - const float mod_d_motor_frame = apply_velocity_transformation(mod_d, &commutation_sensor_to_motor); - // Inverse Park transform - float mod_a = (c_I * mod_d_motor_frame) - (s_I * mod_q_motor_frame); - float mod_b = (c_I * mod_q_motor_frame) + (s_I * mod_d_motor_frame); + float mod_a = (c_I * mod_d) - (s_I * mod_q); + float mod_b = (c_I * mod_q) + (s_I * mod_d); SVM(mod_a, mod_b, &state.modulation_values.A, &state.modulation_values.B, &state.modulation_values.C); @@ -372,17 +367,17 @@ TM_RAMFUNC void controller_set_mode(controller_mode_options new_mode) TM_RAMFUNC float controller_get_Iq_estimate_user_frame(void) { - return apply_velocity_transformation(state.Iq_estimate, &commutation_sensor_to_user); + return apply_velocity_transform(state.Iq_estimate, &motor_to_user); } TM_RAMFUNC float controller_get_pos_setpoint_user_frame(void) { - return apply_transformation(state.pos_setpoint, &position_sensor_to_user); + return apply_transform(state.pos_setpoint, &position_sensor_to_user); } TM_RAMFUNC float controller_get_vel_setpoint_user_frame(void) { - return apply_velocity_transformation(state.vel_setpoint, &position_sensor_to_user); + return apply_velocity_transform(state.vel_setpoint, &position_sensor_to_user); } TM_RAMFUNC float controller_get_Iq_estimate(void) @@ -391,33 +386,39 @@ TM_RAMFUNC float controller_get_Iq_estimate(void) } TM_RAMFUNC float controller_get_Iq_setpoint_user_frame(void) { - return apply_velocity_transformation(state.Iq_setpoint, &commutation_sensor_to_user); + return apply_velocity_transform(state.Iq_setpoint, &motor_to_user); } TM_RAMFUNC float controller_get_Id_setpoint_user_frame(void) { - return apply_velocity_transformation(state.Id_setpoint, &commutation_sensor_to_user); + return apply_velocity_transform(state.Id_setpoint, &motor_to_user); } TM_RAMFUNC void controller_set_pos_setpoint_user_frame(float value) { - state.pos_setpoint = apply_transformation(value, &user_to_position_sensor); + state.pos_setpoint = apply_transform(value, &user_to_position_sensor); } TM_RAMFUNC void controller_set_vel_setpoint_user_frame(float value) { - state.vel_setpoint = apply_velocity_transformation(value, &user_to_position_sensor); + state.vel_setpoint = apply_velocity_transform(value, &user_to_position_sensor); } TM_RAMFUNC void controller_set_Iq_setpoint_user_frame(float value) { - state.Iq_setpoint = apply_velocity_transformation(value, &user_to_commutation_sensor); + state.Iq_setpoint = apply_velocity_transform(value, &user_to_motor); +} +float controller_set_pos_vel_setpoints_user_frame(float pos_setpoint, float vel_setpoint) +{ + controller_set_pos_setpoint_user_frame(pos_setpoint); + controller_set_vel_setpoint_user_frame(vel_setpoint); + return user_frame_get_pos_estimate(); } TM_RAMFUNC float controller_get_Vq_setpoint_user_frame(void) { - return apply_velocity_transformation(state.Vq_setpoint, &commutation_sensor_to_user); + return apply_velocity_transform(state.Vq_setpoint, &motor_to_user); } float controller_get_pos_gain(void) diff --git a/firmware/src/controller/controller.h b/firmware/src/controller/controller.h index 30a6c9fa..209a8260 100644 --- a/firmware/src/controller/controller.h +++ b/firmware/src/controller/controller.h @@ -91,6 +91,8 @@ void controller_set_pos_setpoint_user_frame(float value); void controller_set_vel_setpoint_user_frame(float value); void controller_set_Iq_setpoint_user_frame(float value); +float controller_set_pos_vel_setpoints_user_frame(float pos_setpoint, float vel_setpoint); + float controller_get_Iq_estimate(void); float controller_get_Vq_setpoint_user_frame(void); diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index d25ce58c..8e04d271 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -50,17 +50,17 @@ TM_RAMFUNC bool homing_planner_evaluate() controller_set_pos_setpoint_user_frame(next_pos_setpoint); controller_set_vel_setpoint_user_frame(config.homing_velocity); - const float observer_pos = observer_get_pos_estimate_user_frame(&position_observer); - if (fabsf(observer_get_vel_estimate_user_frame(&position_observer)) < config.max_stay_vel && fabsf(current_pos_setpoint - observer_pos) > config.max_stay_dpos) + const float observer_pos = user_frame_get_pos_estimate(); + if (fabsf(user_frame_get_vel_estimate()) < config.max_stay_vel && fabsf(current_pos_setpoint - observer_pos) > config.max_stay_dpos) { state.stay_t_current += PWM_PERIOD_S; if (state.stay_t_current >= config.max_stay_t) { // First time the endstop is considered found, reset origins and setpoints user_to_position_sensor.offset = observer_pos; - position_sensor_to_user = derive_inverse_transformation(&user_to_position_sensor); - user_to_commutation_sensor = combine_transformations(&user_to_position_sensor, &position_sensor_to_commutation_sensor); - commutation_sensor_to_user = derive_inverse_transformation(&user_to_commutation_sensor); + position_sensor_to_user = derive_inverse_transform(&user_to_position_sensor); + user_to_motor = combine_transforms(&user_to_position_sensor, &position_sensor_to_motor); + motor_to_user = derive_inverse_transform(&user_to_motor); controller_set_pos_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(0); } diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 5a3a5c6c..f8361b08 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -45,27 +45,27 @@ struct Observer { typedef struct { ObserverConfig config_commutation; ObserverConfig config_position; - FrameTransformation position_sensor_to_user; - FrameTransformation user_to_position_sensor; - FrameTransformation position_sensor_to_commutation_sensor; - FrameTransformation commutation_sensor_to_position_sensor; - FrameTransformation commutation_sensor_to_user; - FrameTransformation user_to_commutation_sensor; - FrameTransformation commutation_sensor_to_motor; - FrameTransformation motor_to_commutation_sensor; + FrameTransform position_sensor_to_user; + FrameTransform user_to_position_sensor; + FrameTransform position_sensor_to_motor; + FrameTransform motor_to_position_sensor; + FrameTransform commutation_sensor_to_motor; + FrameTransform motor_to_commutation_sensor; + FrameTransform motor_to_user; + FrameTransform user_to_motor; } ObserversConfig; Observer commutation_observer; Observer position_observer; -FrameTransformation position_sensor_to_user; -FrameTransformation user_to_position_sensor; -FrameTransformation position_sensor_to_commutation_sensor; -FrameTransformation commutation_sensor_to_position_sensor; -FrameTransformation commutation_sensor_to_user; -FrameTransformation user_to_commutation_sensor; -FrameTransformation commutation_sensor_to_motor; -FrameTransformation motor_to_commutation_sensor; +FrameTransform position_sensor_to_user; +FrameTransform user_to_position_sensor; +FrameTransform position_sensor_to_motor; +FrameTransform motor_to_position_sensor; +FrameTransform commutation_sensor_to_motor; +FrameTransform motor_to_commutation_sensor; +FrameTransform motor_to_user; +FrameTransform user_to_motor; bool observer_init_with_defaults(Observer *o, Sensor **s); bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c); @@ -122,11 +122,11 @@ static inline float observer_get_pos_estimate(Observer *o) return primary + o->pos_estimate_wrapped; } -static inline float observer_get_diff(Observer *o, float target) +static inline float get_diff_position_sensor_frame(float target) { - const float primary = SENSOR_COMMON_RES_TICKS * o->pos_sector; + const float primary = SENSOR_COMMON_RES_TICKS * position_observer.pos_sector; const float diff_sector = target - primary; - return diff_sector - o->pos_estimate_wrapped; + return diff_sector - position_observer.pos_estimate_wrapped; } static inline float observer_get_vel_estimate(Observer *o) @@ -134,24 +134,6 @@ static inline float observer_get_vel_estimate(Observer *o) return o->vel_estimate; } -static inline float observer_get_epos(Observer *o) -{ - if (SENSOR_TYPE_HALL == (*(o->sensor_ptr))->config.type) - { - return o->pos_estimate_wrapped * twopi_by_hall_sectors; - } - return o->pos_estimate_wrapped * twopi_by_enc_ticks * motor_get_pole_pairs(); -} - -static inline float observer_get_evel(Observer *o) -{ - if (SENSOR_TYPE_HALL == (*(o->sensor_ptr))->config.type) - { - return o->vel_estimate * twopi_by_hall_sectors; - } - return o->vel_estimate * twopi_by_enc_ticks * motor_get_pole_pairs(); -} - // Interface functions static inline float get_position_observer_to_user_offset(void) @@ -167,13 +149,11 @@ static inline float get_position_observer_to_user_multiplier(void) static inline void set_position_observer_to_user_offset(float value) { position_sensor_to_user.offset = value; - commutation_sensor_to_user = combine_transformations(&commutation_sensor_to_position_sensor, &position_sensor_to_user); } static inline void set_position_observer_to_user_multiplier(float value) { position_sensor_to_user.offset = value; - commutation_sensor_to_user = combine_transformations(&commutation_sensor_to_position_sensor, &position_sensor_to_user); } static inline float commutation_observer_get_bandwidth(void) @@ -212,10 +192,38 @@ static inline float position_observer_get_vel_estimate(void) static inline float user_frame_get_pos_estimate(void) { - return apply_transformation(observer_get_pos_estimate(&position_observer), &position_sensor_to_user); + return apply_transform(position_observer_get_pos_estimate(), &position_sensor_to_user); } static inline float user_frame_get_vel_estimate(void) { - return apply_velocity_transformation(observer_get_vel_estimate(&position_observer), &position_sensor_to_user);; + return apply_velocity_transform(position_observer_get_vel_estimate(), &position_sensor_to_user); +} + +static inline float motor_frame_get_pos_estimate(void) +{ + return apply_transform(commutation_observer_get_pos_estimate(), &commutation_sensor_to_motor); +} + +static inline float motor_frame_get_vel_estimate(void) +{ + return apply_velocity_transform(commutation_observer_get_vel_estimate(), &commutation_sensor_to_motor); +} + +static inline float observer_get_epos_motor_frame(void) +{ + if (SENSOR_TYPE_HALL == ((*(commutation_observer.sensor_ptr))->config.type)) + { + return motor_frame_get_pos_estimate() * twopi_by_hall_sectors; + } + return motor_frame_get_pos_estimate() * twopi_by_enc_ticks * motor_get_pole_pairs(); +} + +static inline float observer_get_evel_motor_frame(void) +{ + if (SENSOR_TYPE_HALL == ((*(commutation_observer.sensor_ptr))->config.type)) + { + return motor_frame_get_vel_estimate() * twopi_by_hall_sectors; + } + return motor_frame_get_vel_estimate() * twopi_by_enc_ticks * motor_get_pole_pairs(); } \ No newline at end of file diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index f7528bd2..c962f49e 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -71,7 +71,7 @@ void as5047p_reset(Sensor *s) bool as5047p_calibrate(Sensor *s, Observer *o) { - return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); + return calibrate_pole_pair_count_and_transforms(s, o) && sensor_calibrate_offset_and_rectification(s, o); } void as5047p_get_ss_config(Sensor *s, void* buffer) diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index ca099387..045cc9e9 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -72,7 +72,7 @@ void ma7xx_reset(Sensor *s) bool ma7xx_calibrate(Sensor *s, Observer *o) { - return sensor_calibrate_direction_and_pole_pair_count(s, o) && sensor_calibrate_offset_and_rectification(s, o); + return calibrate_pole_pair_count_and_transforms(s, o) && sensor_calibrate_offset_and_rectification(s, o); } void ma7xx_get_ss_config(Sensor *s, void* buffer) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 4b886023..1aba3893 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -96,42 +96,50 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) return true; } -bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o) +bool calibrate_pole_pair_count_and_transforms(Sensor *s, Observer *o) { - const float epos_target = CAL_PHASE_TURNS * TWOPI; + const float I_setpoint = motor_get_I_cal(); - bool success = true; set_epos_and_wait(0, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); - const float epos_start = observer_get_pos_estimate(o); - float epos_end = 0; - // Move to target epos + + const float motor_frame_end = CAL_PHASE_TURNS * TWOPI; + const float commutation_frame_start = commutation_observer_get_pos_estimate(); + const float position_frame_start = position_observer_get_pos_estimate(); + + // Move to end for (uint32_t i = 0; i < CAL_DIR_LEN; i++) { - set_epos_and_wait(epos_target * ((float)i / CAL_DIR_LEN), I_setpoint); + set_epos_and_wait(motor_frame_end * ((float)i / CAL_DIR_LEN), I_setpoint); } - set_epos_and_wait(epos_target, I_setpoint); + + set_epos_and_wait(motor_frame_end, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); + float commutation_frame_end = commutation_observer_get_pos_estimate(); + float position_frame_end = position_observer_get_pos_estimate(); + // Find pole pairs - if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, epos_start, observer_get_pos_estimate(o), epos_target)) + if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) { uint8_t *error_ptr = motor_get_error_ptr(); *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; return false; } - else - { - epos_end = observer_get_pos_estimate(o); - } + // Move back to start epos for (uint32_t i = 0; i < CAL_DIR_LEN; i++) { - set_epos_and_wait(epos_target * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); + set_epos_and_wait(motor_frame_end * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); } gate_driver_set_duty_cycle(&three_phase_zero); - if (success && epos_start > epos_end) - { - #warning IMPLEMENT THIS - } - return success; + + // Derive transforms + position_sensor_to_motor = derive_transform(position_frame_start, 0, position_frame_end, motor_frame_end); + motor_to_position_sensor = derive_inverse_transform(&position_sensor_to_motor); + commutation_sensor_to_motor = derive_transform(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); + motor_to_commutation_sensor = derive_inverse_transform(&commutation_sensor_to_motor); + user_to_motor = combine_transforms(&user_to_position_sensor, &position_sensor_to_motor); + motor_to_user = derive_inverse_transform(&user_to_motor); + + return true; } \ No newline at end of file diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index bdb4275f..48d23683 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -87,7 +87,7 @@ struct Sensor { // typedefd earlier void sensor_reset(Sensor *s); bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); -bool sensor_calibrate_direction_and_pole_pair_count(Sensor *s, Observer *o); +bool calibrate_pole_pair_count_and_transforms(Sensor *s, Observer *o); static inline void sensor_update(Sensor *s, bool check_error) { diff --git a/firmware/src/xf1.h b/firmware/src/xf1.h index ea684b36..95d9aa20 100644 --- a/firmware/src/xf1.h +++ b/firmware/src/xf1.h @@ -2,28 +2,28 @@ #include // For fabsf() - single precision absolute value -#define DEFAULT_TRANSFORM (FrameTransformation){.offset = 0.0f, .multiplier = 1.0f} +#define DEFAULT_TRANSFORM (FrameTransform){.offset = 0.0f, .multiplier = 1.0f} // Structure to represent a 1D transformation from one frame to another typedef struct { float offset; // Offset to be added or subtracted float multiplier; // Multiplier to scale and indicate direction -} FrameTransformation; +} FrameTransform; // Function to apply the transformation // Applies the transformation in the form: (value * multiplier) + offset -static inline float apply_transformation(float value, const FrameTransformation* transformation) { +static inline float apply_transform(float value, const FrameTransform* transformation) { return (value * transformation->multiplier) + transformation->offset; } // Function to apply the transformation to a velocity (ignoring offset) -static inline float apply_velocity_transformation(float velocity, const FrameTransformation* transformation) { +static inline float apply_velocity_transform(float velocity, const FrameTransform* transformation) { return velocity * transformation->multiplier; } // Function to derive the inverse of a given transformation -static inline FrameTransformation derive_inverse_transformation(const FrameTransformation* original) { - FrameTransformation inverse; +static inline FrameTransform derive_inverse_transform(const FrameTransform* original) { + FrameTransform inverse; // The inverse multiplier is the reciprocal of the original multiplier inverse.multiplier = 1.0f / original->multiplier; // To find the offset for the inverse, negate the original offset and then scale it by the inverse multiplier @@ -31,9 +31,9 @@ static inline FrameTransformation derive_inverse_transformation(const FrameTrans return inverse; } -// Function to derive a FrameTransformation based on positions in two frames -static inline FrameTransformation derive_transformation(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { - FrameTransformation transformation; +// Function to derive a FrameTransform based on positions in two frames +static inline FrameTransform derive_transform(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { + FrameTransform transformation; float sourceDelta = measuredSource - commandedSource; float targetDelta = measuredTarget - commandedTarget; @@ -54,8 +54,8 @@ static inline FrameTransformation derive_transformation(float commandedSource, f } // Function to combine two transformations -static inline FrameTransformation combine_transformations(const FrameTransformation* first, const FrameTransformation* second) { - FrameTransformation combined; +static inline FrameTransform combine_transforms(const FrameTransform* first, const FrameTransform* second) { + FrameTransform combined; // The combined multiplier is the product of the two multipliers combined.multiplier = first->multiplier * second->multiplier; diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 91b1a746..2e319536 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -257,7 +257,7 @@ remote_attributes: arguments: [] - name: set_pos_vel_setpoints summary: Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate - caller_name: controller_set_pos_vel_setpoints + caller_name: controller_set_pos_vel_setpoints_user_frame dtype: float arguments: - name: pos_setpoint From 2e5658a425a24faf54f6bf71baec656db50ef8d2 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 25 Feb 2024 19:38:59 +0200 Subject: [PATCH 069/219] move to header --- firmware/src/can/can_endpoints.c | 1 - firmware/src/can/can_endpoints.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index e2557ca2..812f512c 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -19,7 +19,6 @@ uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; -uint32_t avlos_proto_hash = 211282378; uint32_t _avlos_get_proto_hash(void) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 0f05e7c9..92dd45b0 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -extern uint32_t avlos_proto_hash; +static const uint32_t avlos_proto_hash = 211282378; extern uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); From ef51d9ac6ec1f914fe40c30f718a6ddc09bb2337 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 25 Feb 2024 21:10:17 +0200 Subject: [PATCH 070/219] use 1 to 1 transform for commutation --- firmware/src/sensor/sensor.c | 7 +++++-- firmware/src/xf1.h | 19 ++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 1aba3893..aa5c9a64 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -134,12 +134,15 @@ bool calibrate_pole_pair_count_and_transforms(Sensor *s, Observer *o) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - position_sensor_to_motor = derive_transform(position_frame_start, 0, position_frame_end, motor_frame_end); + position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end); motor_to_position_sensor = derive_inverse_transform(&position_sensor_to_motor); - commutation_sensor_to_motor = derive_transform(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); + commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); motor_to_commutation_sensor = derive_inverse_transform(&commutation_sensor_to_motor); user_to_motor = combine_transforms(&user_to_position_sensor, &position_sensor_to_motor); motor_to_user = derive_inverse_transform(&user_to_motor); + // Not needed + // position_sensor_to_user + // user_to_position_sensor return true; } \ No newline at end of file diff --git a/firmware/src/xf1.h b/firmware/src/xf1.h index 95d9aa20..fd9488de 100644 --- a/firmware/src/xf1.h +++ b/firmware/src/xf1.h @@ -32,7 +32,7 @@ static inline FrameTransform derive_inverse_transform(const FrameTransform* orig } // Function to derive a FrameTransform based on positions in two frames -static inline FrameTransform derive_transform(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { +static inline FrameTransform derive_transform_2p(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { FrameTransform transformation; float sourceDelta = measuredSource - commandedSource; @@ -53,6 +53,23 @@ static inline FrameTransform derive_transform(float commandedSource, float measu return transformation; } +static inline FrameTransform derive_dir_transform_2p(float As, float Bs, float At, float Bt) { + FrameTransform transform; + + // Calculate the direction of the movement in both frames + float sourceDirection = Bs - As; + float targetDirection = Bt - At; + + // Determine the multiplier based on the direction comparison + transform.multiplier = (sourceDirection * targetDirection > 0) ? 1.0f : -1.0f; + + // Use the first pair of points and the determined multiplier to calculate the offset + // If the multiplier is 1.0, offset = At - As; if -1.0, offset = At + As + transform.offset = At - (As * transform.multiplier); + + return transform; +} + // Function to combine two transformations static inline FrameTransform combine_transforms(const FrameTransform* first, const FrameTransform* second) { FrameTransform combined; From 5de6b0d758a3a15cfe8b43322b77b13ff54114d4 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 25 Feb 2024 21:25:53 +0200 Subject: [PATCH 071/219] remove unneeded onversion --- firmware/src/sensor/sensor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index aa5c9a64..9cc8c58d 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -50,7 +50,7 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) } wait_for_control_loop_interrupt(); const float pos_meas = observer_get_pos_estimate(o); - error_ticks[i] = (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + error_ticks[i] = e_pos_ref * e_pos_to_ticks - pos_meas; } for (uint32_t i = 0; i < n; i++) { @@ -61,7 +61,7 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) } wait_for_control_loop_interrupt(); const float pos_meas = observer_get_pos_estimate(o); - error_ticks[n - i - 1] += (int16_t)(e_pos_ref * e_pos_to_ticks - pos_meas); + error_ticks[n - i - 1] += e_pos_ref * e_pos_to_ticks - pos_meas; } gate_driver_set_duty_cycle(&three_phase_zero); gate_driver_disable(); From eb1b5797291f5798e935d11148b8bdf14dd35489 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 25 Feb 2024 21:28:45 +0200 Subject: [PATCH 072/219] promote data types --- firmware/src/sensor/sensor.c | 18 +++++++++--------- firmware/src/sensor/sensor.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 9cc8c58d..f386333a 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -28,22 +28,22 @@ void sensor_reset(Sensor *s) bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) { // Size below is an arbitrary large number ie > ECN_SIZE * npp - float error_ticks[ECN_SIZE * 20]; + float error_ticks[ECN_SIZE * 24]; const int16_t npp = motor_get_pole_pairs(); const int16_t n = ECN_SIZE * npp; const int16_t nconv = 100; const float delta = 2 * PI * npp / (n * nconv); const float e_pos_to_ticks = ((float)SENSOR_COMMON_RES_TICKS) / (2 * PI * npp); - float e_pos_ref = 0.f; + float e_pos_ref = 0; const float I_setpoint = motor_get_I_cal(); - int16_t *lut = s->config.rec_table; + int32_t *lut = s->config.rec_table; set_epos_and_wait(e_pos_ref, I_setpoint); wait_pwm_cycles(5000); - const uint16_t offset_idx = (s->get_raw_angle_func(s)) >> (SENSOR_COMMON_RES_BITS - ECN_BITS); + const int32_t offset_idx = (s->get_raw_angle_func(s)) >> (SENSOR_COMMON_RES_BITS - ECN_BITS); for (uint32_t i = 0; i < n; i++) { - for (uint8_t j = 0; j < nconv; j++) + for (int16_t j = 0; j < nconv; j++) { e_pos_ref += delta; set_epos_and_wait(e_pos_ref, I_setpoint); @@ -54,7 +54,7 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) } for (uint32_t i = 0; i < n; i++) { - for (uint8_t j = 0; j < nconv; j++) + for (int16_t j = 0; j < nconv; j++) { e_pos_ref -= delta; set_epos_and_wait(e_pos_ref, I_setpoint); @@ -72,7 +72,7 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) float acc = 0; for (int16_t j = 0; j < ECN_SIZE; j++) { - int16_t read_idx = -ECN_SIZE / 2 + j + i * npp; + int32_t read_idx = -ECN_SIZE / 2 + j + i * npp; if (read_idx < 0) { read_idx += n; @@ -84,12 +84,12 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) acc += error_ticks[read_idx]; } acc = acc / ((float)(ECN_SIZE * 2)); - int16_t write_idx = i + offset_idx; + int32_t write_idx = i + offset_idx; if (write_idx > (ECN_SIZE - 1)) { write_idx -= ECN_SIZE; } - lut[write_idx] = (int16_t)acc; + lut[write_idx] = (int32_t)acc; } wait_pwm_cycles(5000); s->config.rec_calibrated = true; diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 48d23683..c101bc86 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -64,7 +64,7 @@ typedef enum { struct SensorConfig { uint32_t id; sensor_type_t type; - int16_t rec_table[ECN_SIZE]; + int32_t rec_table[ECN_SIZE]; bool rec_calibrated; }; From 1f8b4f2d2c94715114f8f45aab51042491211dbe Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 25 Feb 2024 21:29:01 +0200 Subject: [PATCH 073/219] enforce minimum trip current value --- firmware/src/common.h | 6 ++++++ firmware/src/controller/controller.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index 8b8ee745..a610aeeb 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -123,6 +123,12 @@ #define BOARD_REV_IDX 21 #endif +#if defined BOARD_REV_R3 || defined BOARD_REV_R5 +#define MIN_TRIP_CURRENT (5.0f) // A +#elif defined BOARD_REV_M5 +#define MIN_TRIP_CURRENT (1.0f) // A +#endif + #define TIMER_FREQ_HZ (ACLK_FREQ_HZ >> TXCTL_PS_DIV) #define SENSOR_COMMON_RES_BITS (13) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 815bda11..1545e920 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -107,8 +107,8 @@ void Controller_ControlLoop(void) { state.warnings = 0; const float Iq = controller_get_Iq_estimate(); - if ((Iq > (config.I_limit * I_TRIP_MARGIN)) || - (Iq < -(config.I_limit * I_TRIP_MARGIN))) + const float Iq_trip = our_fmaxf(config.I_limit * I_TRIP_MARGIN, MIN_TRIP_CURRENT); + if (our_fabsf(Iq) > Iq_trip) { state.errors |= CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED; } From b41a79d8954003896cc2e1dd4ca0071f780fb30e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 26 Feb 2024 01:22:48 +0200 Subject: [PATCH 074/219] refactor calibration routines --- firmware/src/sensor/as5047.c | 6 ---- firmware/src/sensor/as5047.h | 1 - firmware/src/sensor/ma7xx.c | 6 ---- firmware/src/sensor/ma7xx.h | 1 - firmware/src/sensor/sensor.c | 53 +---------------------------------- firmware/src/sensor/sensor.h | 3 +- firmware/src/sensor/sensors.c | 52 ++++++++++++++++++++++++++++++++++ firmware/src/sensor/sensors.h | 17 +++++++++-- 8 files changed, 69 insertions(+), 70 deletions(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index c962f49e..d70bbf1c 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -35,7 +35,6 @@ void as5047p_make_blank_sensor(Sensor *s) s->deinit_func = as5047p_deinit; s->get_errors_func = as5047p_get_errors; s->is_calibrated_func = as5047p_is_calibrated; - s->calibrate_func = as5047p_calibrate; s->get_ss_config_func = as5047p_get_ss_config; } @@ -69,11 +68,6 @@ void as5047p_reset(Sensor *s) sensor_reset(s); } -bool as5047p_calibrate(Sensor *s, Observer *o) -{ - return calibrate_pole_pair_count_and_transforms(s, o) && sensor_calibrate_offset_and_rectification(s, o); -} - void as5047p_get_ss_config(Sensor *s, void* buffer) { diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index abae9610..f7a7524b 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -56,7 +56,6 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); void as5047p_deinit(Sensor *s); void as5047p_reset(Sensor *s); -bool as5047p_calibrate(Sensor *s, Observer *o); void as5047p_get_ss_config(Sensor *s, void* buffer); static inline bool as5047p_is_calibrated(const Sensor *s) diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 045cc9e9..52179d44 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -29,7 +29,6 @@ void ma7xx_make_blank_sensor(Sensor *s) s->bits = MA7XX_BITS; s->ticks = MA7XX_TICKS; s->is_calibrated_func = ma7xx_rec_is_calibrated; - s->calibrate_func = ma7xx_calibrate; s->get_raw_angle_func = ma7xx_get_raw_angle; s->deinit_func = ma7xx_deinit; s->reset_func = ma7xx_reset; @@ -70,11 +69,6 @@ void ma7xx_reset(Sensor *s) sensor_reset(s); } -bool ma7xx_calibrate(Sensor *s, Observer *o) -{ - return calibrate_pole_pair_count_and_transforms(s, o) && sensor_calibrate_offset_and_rectification(s, o); -} - void ma7xx_get_ss_config(Sensor *s, void* buffer) { diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 4f194d8a..128ca7a7 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -57,7 +57,6 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); -bool ma7xx_calibrate(Sensor *s, Observer *o); void ma7xx_get_ss_config(Sensor *s, void* buffer); static inline bool ma7xx_rec_is_calibrated(const Sensor *s) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index f386333a..fc6075d6 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -25,7 +25,7 @@ void sensor_reset(Sensor *s) s->config.rec_calibrated = false; } -bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) +bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) { // Size below is an arbitrary large number ie > ECN_SIZE * npp float error_ticks[ECN_SIZE * 24]; @@ -95,54 +95,3 @@ bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o) s->config.rec_calibrated = true; return true; } - -bool calibrate_pole_pair_count_and_transforms(Sensor *s, Observer *o) -{ - - const float I_setpoint = motor_get_I_cal(); - set_epos_and_wait(0, I_setpoint); - wait_pwm_cycles(CAL_STAY_LEN); - - const float motor_frame_end = CAL_PHASE_TURNS * TWOPI; - const float commutation_frame_start = commutation_observer_get_pos_estimate(); - const float position_frame_start = position_observer_get_pos_estimate(); - - // Move to end - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(motor_frame_end * ((float)i / CAL_DIR_LEN), I_setpoint); - } - - set_epos_and_wait(motor_frame_end, I_setpoint); - wait_pwm_cycles(CAL_STAY_LEN); - float commutation_frame_end = commutation_observer_get_pos_estimate(); - float position_frame_end = position_observer_get_pos_estimate(); - - // Find pole pairs - if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; - return false; - } - - // Move back to start epos - for (uint32_t i = 0; i < CAL_DIR_LEN; i++) - { - set_epos_and_wait(motor_frame_end * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); - } - gate_driver_set_duty_cycle(&three_phase_zero); - - // Derive transforms - position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end); - motor_to_position_sensor = derive_inverse_transform(&position_sensor_to_motor); - commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); - motor_to_commutation_sensor = derive_inverse_transform(&commutation_sensor_to_motor); - user_to_motor = combine_transforms(&user_to_position_sensor, &position_sensor_to_motor); - motor_to_user = derive_inverse_transform(&user_to_motor); - // Not needed - // position_sensor_to_user - // user_to_position_sensor - - return true; -} \ No newline at end of file diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index c101bc86..d2bbbfc4 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -86,8 +86,7 @@ struct Sensor { // typedefd earlier }; void sensor_reset(Sensor *s); -bool sensor_calibrate_offset_and_rectification(Sensor *s, Observer *o); -bool calibrate_pole_pair_count_and_transforms(Sensor *s, Observer *o); +bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o); static inline void sensor_update(Sensor *s, bool check_error) { diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 0a6e215d..3d3afaaa 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -16,6 +16,7 @@ // * along with this program. If not, see . #include +#include #include GenSensor sensors[SENSOR_COUNT] = {0}; @@ -190,3 +191,54 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor } } } + +bool sensors_calibrate_pole_pair_count_and_transforms(void) +{ + + const float I_setpoint = motor_get_I_cal(); + set_epos_and_wait(0, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + + const float motor_frame_end = CAL_PHASE_TURNS * TWOPI; + const float commutation_frame_start = commutation_observer_get_pos_estimate(); + const float position_frame_start = position_observer_get_pos_estimate(); + + // Move to end + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(motor_frame_end * ((float)i / CAL_DIR_LEN), I_setpoint); + } + + set_epos_and_wait(motor_frame_end, I_setpoint); + wait_pwm_cycles(CAL_STAY_LEN); + float commutation_frame_end = commutation_observer_get_pos_estimate(); + float position_frame_end = position_observer_get_pos_estimate(); + + // Find pole pairs + if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; + return false; + } + + // Move back to start epos + for (uint32_t i = 0; i < CAL_DIR_LEN; i++) + { + set_epos_and_wait(motor_frame_end * (1.0f - ((float)i / CAL_DIR_LEN)), I_setpoint); + } + gate_driver_set_duty_cycle(&three_phase_zero); + + // Derive transforms + position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end); + motor_to_position_sensor = derive_inverse_transform(&position_sensor_to_motor); + commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); + motor_to_commutation_sensor = derive_inverse_transform(&commutation_sensor_to_motor); + user_to_motor = combine_transforms(&user_to_position_sensor, &position_sensor_to_motor); + motor_to_user = derive_inverse_transform(&user_to_motor); + // Not needed + // position_sensor_to_user + // user_to_position_sensor + + return true; +} \ No newline at end of file diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 779fd2d9..3b4c7d97 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -92,6 +92,7 @@ static inline sensor_connection_t position_sensor_get_connection(void) } void position_sensor_set_connection(sensor_connection_t new_connection); +bool sensors_calibrate_pole_pair_count_and_transforms(void); static inline void sensors_reset(void) { @@ -104,8 +105,20 @@ static inline void sensors_reset(void) static inline void sensors_calibrate(void) { - commutation_sensor_p->calibrate_func(commutation_sensor_p, &commutation_observer); - position_sensor_p->calibrate_func(position_sensor_p, &position_observer); + if (position_sensor_p->calibrate_func) + { + position_sensor_p->calibrate_func(position_sensor_p, &position_observer); + } + if ((commutation_sensor_p != position_sensor_p) && (commutation_sensor_p->calibrate_func)) + { + commutation_sensor_p->calibrate_func(commutation_sensor_p, &commutation_observer); + } + sensors_calibrate_pole_pair_count_and_transforms(); + sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer); + if (commutation_sensor_p != position_sensor_p) + { + sensor_calibrate_eccentricity_compensation(position_sensor_p, &position_observer); + } } static inline sensors_setup_external_spi_type_options sensor_external_spi_get_type_avlos(void) From f447057652e644bba9fb802c69701f339edb058a Mon Sep 17 00:00:00 2001 From: Eugene Date: Fri, 1 Mar 2024 11:24:26 +1100 Subject: [PATCH 075/219] Make the scheduler state volatile --- firmware/src/scheduler/scheduler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index 6082b1a5..e5e57758 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -31,7 +31,7 @@ volatile uint32_t msTicks = 0; -SchedulerState state = {0}; +static volatile SchedulerState state = {0}; void WaitForControlLoopInterrupt(void) { From 9e340fda96d2d499b13d2d566aa6e8e6281bdbab Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 2 Mar 2024 16:02:24 +0200 Subject: [PATCH 076/219] integrate reference frames diagram --- docs/sensors/reference_frames.png | Bin 0 -> 56800 bytes docs/sensors/sensors.rst | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 docs/sensors/reference_frames.png diff --git a/docs/sensors/reference_frames.png b/docs/sensors/reference_frames.png new file mode 100644 index 0000000000000000000000000000000000000000..9116a89d3b28050394e81bdfc7743ec954e0e012 GIT binary patch literal 56800 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 SIrF**{5jaVe0$rPc>F)bS Date: Sun, 3 Mar 2024 20:25:28 +0200 Subject: [PATCH 077/219] add references --- docs/hardware/guide.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/hardware/guide.rst b/docs/hardware/guide.rst index 59aaff11..62836767 100644 --- a/docs/hardware/guide.rst +++ b/docs/hardware/guide.rst @@ -73,9 +73,9 @@ Sensor Magnet and Mounting Tips * Ensure the sensor magnet is firmly attached to the motor shaft, otherwise it may slip out of sync. Use strong adhesive to secure. -* It is possible to have the magnet on the rear side of the PCB, i.e. opposite of the magnet sensor IC, but the gap needs to be reduced to account for the PCB thickness. This has been verified by MPS in `this forum post `_, quoted below: +* It is possible to have the magnet on the rear side of the PCB, i.e. opposite of the magnet sensor IC, but the gap needs to be reduced to account for the PCB thickness. This has been verified by MPS in a forum post[1]_, quoted below: *[...] this type of arrangement is possible, what really matters in the end is that there is enough magnetic field reaching the sensor. - Of course the minimum distance is imposed by the thickness of the PCB, so it puts some constraints on the design, that you have to take into account when chosing the magnet (you can use our online simulation tool for that). But as long as the PCB is not acting as a magnetic shield (due to copper plane), then it is fine.* + Of course the minimum distance is imposed by the thickness of the PCB, so it puts some constraints on the design, that you have to take into account when choosing the magnet (you can use our online simulation tool for that). But as long as the PCB is not acting as a magnetic shield (due to copper plane), then it is fine.* * Calibration needs to be performed without any loads on the motor. If the motor is coupled to a load, the sensor offset angle may not be determined correctly, leading to a sub-optimal setup. @@ -118,7 +118,7 @@ Connect the CAN bus header to one of the two CAN sockets on the board. It is not * Tinymovr M5.x: you will need to provide an external 120Ω termination resistor. -In small setups with few nodes and short wires, it is better to enable just a single termination resistor, either on one Tinymovr board or on the CAN adapter. In setups with many nodes and long cables, you may need to enable termination resistors in both terminal nodes. +In small setups with few nodes and short wires, it is better to enable just a single termination resistor, either on one Tinymovr board or on the CAN adapter. In setups with many nodes and long cables, you may need to enable termination resistors in both terminal nodes. A typical CAN driver has an “open-drain” output structure, meaning that the dominant edge is actively driven and the recessive edge is not. Therefore, properly terminating the bus is very important because it ensures that the recessive edge decays properly, and in time for the next bit's sample point [2]_. .. warning:: The UART pins in Tinymovr R5.1 have the silkscreen reversed. If you are planning to use UART with R5.1, consult :ref:`r51-erratum-1`. @@ -148,4 +148,8 @@ Multiple nodes can be connected in a single CAN Bus network by means of daisy-ch .. image:: daisy_chain.png :width: 800 - :alt: Connecting multiple nodes by daisy-chaining \ No newline at end of file + :alt: Connecting multiple nodes by daisy-chaining + + +.. [1] MPS forum post on mounting MA702 and magnet on opposite sides of PCB: https://forum.monolithicpower.com/t/mounting-ma702-and-magnet-on-opposite-sides-of-pcb/1609 +.. [2] Split Termination, Texas Instruments. Available at `https://www.ti.com/document-viewer/lit/html/SSZTB40#:~:text=for%20each%20termination.-,Split%20Termination,typically%20between%201%2D100nF`. \ No newline at end of file From b5142c22f15d2c74ae79caad329a58a1c622aaf7 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 01:28:13 +0200 Subject: [PATCH 078/219] add files --- .vscode/settings.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 145202f9..73380aa3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,7 +26,9 @@ "vector": "c", "motor.h": "c", "trajectory_planner.h": "c", - "xf1.h": "c" + "xf1.h": "c", + "controller.h": "c", + "observer.h": "c" }, "python.testing.unittestArgs": [ "-v", From 85d1d79d95fd38e0329c8535b9cbbec2498701b9 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 01:28:24 +0200 Subject: [PATCH 079/219] fix accessor --- firmware/src/observer/observer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 61d0f5a0..21967ae4 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -136,7 +136,7 @@ static inline void set_position_observer_to_user_offset(float value) static inline void set_position_observer_to_user_multiplier(float value) { - frame_position_sensor_to_user_p()->offset = value; + frame_position_sensor_to_user_p()->multiplier = value; } static inline float commutation_observer_get_bandwidth(void) From 2f2f1db6a6eeba97ec6baaf22cfdabab4a0a701e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 01:29:39 +0200 Subject: [PATCH 080/219] fix calibration frame issues --- firmware/src/sensor/sensor.c | 18 ++++++------------ firmware/src/sensor/sensor.h | 4 +++- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index fc6075d6..d29daf95 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -25,7 +25,7 @@ void sensor_reset(Sensor *s) s->config.rec_calibrated = false; } -bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) +bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTransform *xf_motor_to_sensor) { // Size below is an arbitrary large number ie > ECN_SIZE * npp float error_ticks[ECN_SIZE * 24]; @@ -39,7 +39,6 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) int32_t *lut = s->config.rec_table; set_epos_and_wait(e_pos_ref, I_setpoint); wait_pwm_cycles(5000); - const int32_t offset_idx = (s->get_raw_angle_func(s)) >> (SENSOR_COMMON_RES_BITS - ECN_BITS); for (uint32_t i = 0; i < n; i++) { @@ -49,8 +48,8 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) set_epos_and_wait(e_pos_ref, I_setpoint); } wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(o); - error_ticks[i] = e_pos_ref * e_pos_to_ticks - pos_meas; + const float pos_meas_sensor_frame = observer_get_pos_estimate(o); + error_ticks[i] = apply_transform(e_pos_ref * e_pos_to_ticks, xf_motor_to_sensor) - pos_meas_sensor_frame; } for (uint32_t i = 0; i < n; i++) { @@ -60,8 +59,8 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) set_epos_and_wait(e_pos_ref, I_setpoint); } wait_for_control_loop_interrupt(); - const float pos_meas = observer_get_pos_estimate(o); - error_ticks[n - i - 1] += e_pos_ref * e_pos_to_ticks - pos_meas; + const float pos_meas_sensor_frame = observer_get_pos_estimate(o); + error_ticks[n - i - 1] += apply_transform(e_pos_ref * e_pos_to_ticks, xf_motor_to_sensor) - pos_meas_sensor_frame; } gate_driver_set_duty_cycle(&three_phase_zero); gate_driver_disable(); @@ -84,12 +83,7 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o) acc += error_ticks[read_idx]; } acc = acc / ((float)(ECN_SIZE * 2)); - int32_t write_idx = i + offset_idx; - if (write_idx > (ECN_SIZE - 1)) - { - write_idx -= ECN_SIZE; - } - lut[write_idx] = (int32_t)acc; + lut[i] = (int32_t)acc; } wait_pwm_cycles(5000); s->config.rec_calibrated = true; diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index d2bbbfc4..1391ae75 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -18,6 +18,7 @@ #pragma once #include +#include #include #include @@ -86,7 +87,8 @@ struct Sensor { // typedefd earlier }; void sensor_reset(Sensor *s); -bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o); +bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTransform *xf_motor_to_sensor); + static inline void sensor_update(Sensor *s, bool check_error) { From f9ef80f8733d383f03c17392209e976f2ca326ea Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 01:29:50 +0200 Subject: [PATCH 081/219] init with default transforms --- firmware/src/xfs.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/firmware/src/xfs.h b/firmware/src/xfs.h index ed5425a0..85450ffd 100644 --- a/firmware/src/xfs.h +++ b/firmware/src/xfs.h @@ -29,7 +29,10 @@ typedef struct { FrameTransform user_to_motor; } FramesConfig; -static FramesConfig frames; +static FramesConfig frames = { + .position_sensor_to_user = DEFAULT_TRANSFORM, + .user_to_position_sensor = DEFAULT_TRANSFORM +}; static inline void frames_get_config(FramesConfig *_config) { From eef606cdc97926e81692dd5fff51c5f41dbc24c6 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 01:30:10 +0200 Subject: [PATCH 082/219] fix eccentricity and frames calibration --- firmware/src/sensor/sensors.c | 17 ++++++++++++++--- firmware/src/sensor/sensors.h | 5 +++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 05357508..6eb42e63 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -222,6 +222,8 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) return false; } + volatile float motor_frame_end_ticks = SENSOR_COMMON_RES_TICKS * (motor_frame_end / (TWOPI * motor_get_pole_pairs())); + // Move back to start epos for (uint32_t i = 0; i < CAL_DIR_LEN; i++) { @@ -230,10 +232,19 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - frames.position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end); - frames.motor_to_position_sensor = derive_inverse_transform(frame_position_sensor_to_motor_p()); - frames.commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end); + frames.commutation_sensor_to_motor = derive_transform_1p(commutation_frame_end - commutation_frame_start, motor_frame_end_ticks); frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); + if (commutation_sensor_p == position_sensor_p) + { + frames.position_sensor_to_motor = frames.commutation_sensor_to_motor; + frames.motor_to_position_sensor = frames.motor_to_commutation_sensor; + } + else + { + frames.position_sensor_to_motor = derive_transform_2p(position_frame_start, position_frame_end, 0, motor_frame_end_ticks); + frames.motor_to_position_sensor = derive_inverse_transform(frame_position_sensor_to_motor_p()); + } + frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); // Not needed diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 3b4c7d97..56fc57c8 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -17,6 +17,7 @@ #pragma once +#include #include #include #include @@ -114,10 +115,10 @@ static inline void sensors_calibrate(void) commutation_sensor_p->calibrate_func(commutation_sensor_p, &commutation_observer); } sensors_calibrate_pole_pair_count_and_transforms(); - sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer); + sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer, frame_motor_to_commutation_sensor_p()); if (commutation_sensor_p != position_sensor_p) { - sensor_calibrate_eccentricity_compensation(position_sensor_p, &position_observer); + sensor_calibrate_eccentricity_compensation(position_sensor_p, &position_observer, frame_motor_to_position_sensor_p()); } } From 47c22759aa1713c55a612c1f2015c6f7acff917b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 12:18:28 +0200 Subject: [PATCH 083/219] update transform library --- firmware/src/sensor/sensors.c | 2 +- firmware/src/xf1.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 6eb42e63..18d6476e 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -232,7 +232,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - frames.commutation_sensor_to_motor = derive_transform_1p(commutation_frame_end - commutation_frame_start, motor_frame_end_ticks); + frames.commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, commutation_frame_end, 0, motor_frame_end_ticks); frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); if (commutation_sensor_p == position_sensor_p) { diff --git a/firmware/src/xf1.h b/firmware/src/xf1.h index fd9488de..46433e3f 100644 --- a/firmware/src/xf1.h +++ b/firmware/src/xf1.h @@ -32,28 +32,28 @@ static inline FrameTransform derive_inverse_transform(const FrameTransform* orig } // Function to derive a FrameTransform based on positions in two frames -static inline FrameTransform derive_transform_2p(float commandedSource, float measuredSource, float commandedTarget, float measuredTarget) { +static inline FrameTransform derive_transform_2p(float As, float At, float Bs, float Bt) { FrameTransform transformation; - float sourceDelta = measuredSource - commandedSource; - float targetDelta = measuredTarget - commandedTarget; + float sourceDelta = Bs - As; + float targetDelta = Bt - At; if (sourceDelta == 0) { // If there's no change in source, the multiplier should be set to 1 // and the offset is simply the difference between target and source positions transformation.multiplier = 1.0f; - transformation.offset = commandedTarget - commandedSource; + transformation.offset = At - As; } else { // Calculate multiplier, incorporating direction based on the delta values transformation.multiplier = targetDelta / sourceDelta; // Calculate offset using one pair of points - transformation.offset = commandedTarget - (commandedSource * transformation.multiplier); + transformation.offset = At - (As * transformation.multiplier); } return transformation; } -static inline FrameTransform derive_dir_transform_2p(float As, float Bs, float At, float Bt) { +static inline FrameTransform derive_dir_transform_2p(float As, float At, float Bs, float Bt) { FrameTransform transform; // Calculate the direction of the movement in both frames From fefef8e3cc662896a3190e7d94c1db571f125e6b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 12:19:36 +0200 Subject: [PATCH 084/219] add pdf and epub builds --- .readthedocs.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 9712e405..7f5014e3 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -20,3 +20,8 @@ sphinx: python: install: - requirements: docs/requirements.txt + +# Build PDF & ePub +formats: + - epub + - pdf From 3d3d683c503d3f3cea655faaf94f2e321b2d345a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 14 Mar 2024 22:27:33 +0200 Subject: [PATCH 085/219] make struct extern --- firmware/src/xfs.c | 8 ++++++++ firmware/src/xfs.h | 5 +---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 firmware/src/xfs.c diff --git a/firmware/src/xfs.c b/firmware/src/xfs.c new file mode 100644 index 00000000..41ee8cb3 --- /dev/null +++ b/firmware/src/xfs.c @@ -0,0 +1,8 @@ + + +#include + +FramesConfig frames = { + .position_sensor_to_user = DEFAULT_TRANSFORM, + .user_to_position_sensor = DEFAULT_TRANSFORM +}; \ No newline at end of file diff --git a/firmware/src/xfs.h b/firmware/src/xfs.h index 85450ffd..727aff49 100644 --- a/firmware/src/xfs.h +++ b/firmware/src/xfs.h @@ -29,10 +29,7 @@ typedef struct { FrameTransform user_to_motor; } FramesConfig; -static FramesConfig frames = { - .position_sensor_to_user = DEFAULT_TRANSFORM, - .user_to_position_sensor = DEFAULT_TRANSFORM -}; +extern FramesConfig frames; static inline void frames_get_config(FramesConfig *_config) { From 7bed2fecd78c1941f803b098fe9fa11803a06414 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:08:37 +0200 Subject: [PATCH 086/219] add back dwt counter --- docs/protocol/reference.rst | 169 +++++++++++++++------------- firmware/src/can/can_endpoints.c | 14 ++- firmware/src/can/can_endpoints.h | 172 +++++++++++++++-------------- firmware/src/scheduler/scheduler.c | 41 ++++--- firmware/src/scheduler/scheduler.h | 13 ++- firmware/src/system/system.c | 5 + 6 files changed, 232 insertions(+), 182 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index feb60ba0..d9122073 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -220,11 +220,24 @@ Size (in bytes) of the configuration object. -scheduler.errors +scheduler.load ------------------------------------------------------------------- ID: 16 +Type: uint32 + + + +Processor load in ticks per PWM cycle. + + + +scheduler.errors +------------------------------------------------------------------- + +ID: 17 + Type: uint8 @@ -238,7 +251,7 @@ Flags: controller.state ------------------------------------------------------------------- -ID: 17 +ID: 18 Type: uint8 @@ -257,7 +270,7 @@ Options: controller.mode ------------------------------------------------------------------- -ID: 18 +ID: 19 Type: uint8 @@ -280,7 +293,7 @@ Options: controller.warnings ------------------------------------------------------------------- -ID: 19 +ID: 20 Type: uint8 @@ -299,7 +312,7 @@ Flags: controller.errors ------------------------------------------------------------------- -ID: 20 +ID: 21 Type: uint8 @@ -314,7 +327,7 @@ Flags: controller.position.setpoint ------------------------------------------------------------------- -ID: 21 +ID: 22 Type: float @@ -327,7 +340,7 @@ The position setpoint in the user reference frame. controller.position.p_gain ------------------------------------------------------------------- -ID: 22 +ID: 23 Type: float @@ -340,7 +353,7 @@ The proportional gain of the position controller. controller.velocity.setpoint ------------------------------------------------------------------- -ID: 23 +ID: 24 Type: float @@ -353,7 +366,7 @@ The velocity setpoint in the user reference frame. controller.velocity.limit ------------------------------------------------------------------- -ID: 24 +ID: 25 Type: float @@ -366,7 +379,7 @@ The velocity limit. controller.velocity.p_gain ------------------------------------------------------------------- -ID: 25 +ID: 26 Type: float @@ -379,7 +392,7 @@ The proportional gain of the velocity controller. controller.velocity.i_gain ------------------------------------------------------------------- -ID: 26 +ID: 27 Type: float @@ -394,7 +407,7 @@ The integral gain of the velocity controller. controller.velocity.deadband ------------------------------------------------------------------- -ID: 27 +ID: 28 Type: float @@ -407,7 +420,7 @@ The deadband of the velocity integrator. A region around the position setpoint w controller.velocity.increment ------------------------------------------------------------------- -ID: 28 +ID: 29 Type: float @@ -420,7 +433,7 @@ Max velocity setpoint increment (ramping) rate. Set to 0 to disable. controller.current.Iq_setpoint ------------------------------------------------------------------- -ID: 29 +ID: 30 Type: float @@ -433,7 +446,7 @@ The Iq setpoint in the user reference frame. controller.current.Id_setpoint ------------------------------------------------------------------- -ID: 30 +ID: 31 Type: float @@ -446,7 +459,7 @@ The Id setpoint in the user reference frame. controller.current.Iq_limit ------------------------------------------------------------------- -ID: 31 +ID: 32 Type: float @@ -459,7 +472,7 @@ The Iq limit. controller.current.Iq_estimate ------------------------------------------------------------------- -ID: 32 +ID: 33 Type: float @@ -472,7 +485,7 @@ The Iq estimate in the user reference frame. controller.current.bandwidth ------------------------------------------------------------------- -ID: 33 +ID: 34 Type: float @@ -485,7 +498,7 @@ The current controller bandwidth. controller.current.Iq_p_gain ------------------------------------------------------------------- -ID: 34 +ID: 35 Type: float @@ -498,7 +511,7 @@ The current controller proportional gain. controller.current.max_Ibus_regen ------------------------------------------------------------------- -ID: 35 +ID: 36 Type: float @@ -511,7 +524,7 @@ The max current allowed to be fed back to the power source before flux braking a controller.current.max_Ibrake ------------------------------------------------------------------- -ID: 36 +ID: 37 Type: float @@ -524,7 +537,7 @@ The max current allowed to be dumped to the motor windings during flux braking. controller.voltage.Vq_setpoint ------------------------------------------------------------------- -ID: 37 +ID: 38 Type: float @@ -537,7 +550,7 @@ The Vq setpoint. calibrate() -> void -------------------------------------------------------------------------------------------- -ID: 38 +ID: 39 Return Type: void @@ -548,7 +561,7 @@ Calibrate the device. idle() -> void -------------------------------------------------------------------------------------------- -ID: 39 +ID: 40 Return Type: void @@ -559,7 +572,7 @@ Set idle mode, disabling the driver. position_mode() -> void -------------------------------------------------------------------------------------------- -ID: 40 +ID: 41 Return Type: void @@ -570,7 +583,7 @@ Set position control mode. velocity_mode() -> void -------------------------------------------------------------------------------------------- -ID: 41 +ID: 42 Return Type: void @@ -581,7 +594,7 @@ Set velocity control mode. current_mode() -> void -------------------------------------------------------------------------------------------- -ID: 42 +ID: 43 Return Type: void @@ -592,7 +605,7 @@ Set current control mode. set_pos_vel_setpoints(float pos_setpoint, float vel_setpoint) -> float -------------------------------------------------------------------------------------------- -ID: 43 +ID: 44 Return Type: float @@ -605,7 +618,7 @@ Set the position and velocity setpoints in the user reference frame in one go, a comms.can.rate ------------------------------------------------------------------- -ID: 44 +ID: 45 Type: uint32 @@ -618,7 +631,7 @@ The baud rate of the CAN interface. comms.can.id ------------------------------------------------------------------- -ID: 45 +ID: 46 Type: uint32 @@ -631,7 +644,7 @@ The ID of the CAN interface. motor.R ------------------------------------------------------------------- -ID: 46 +ID: 47 Type: float @@ -644,7 +657,7 @@ The motor Resistance value. motor.L ------------------------------------------------------------------- -ID: 47 +ID: 48 Type: float @@ -657,7 +670,7 @@ The motor Inductance value. motor.pole_pairs ------------------------------------------------------------------- -ID: 48 +ID: 49 Type: uint8 @@ -670,7 +683,7 @@ The motor pole pair count. motor.type ------------------------------------------------------------------- -ID: 49 +ID: 50 Type: uint8 @@ -687,7 +700,7 @@ Options: motor.calibrated ------------------------------------------------------------------- -ID: 50 +ID: 51 Type: bool @@ -700,7 +713,7 @@ Whether the motor has been calibrated. motor.I_cal ------------------------------------------------------------------- -ID: 51 +ID: 52 Type: float @@ -713,7 +726,7 @@ The calibration current. motor.errors ------------------------------------------------------------------- -ID: 52 +ID: 53 Type: uint8 @@ -732,7 +745,7 @@ Flags: sensors.user_frame.position_estimate ------------------------------------------------------------------- -ID: 53 +ID: 54 Type: float @@ -745,7 +758,7 @@ The filtered position estimate in the user reference frame. sensors.user_frame.velocity_estimate ------------------------------------------------------------------- -ID: 54 +ID: 55 Type: float @@ -758,7 +771,7 @@ The filtered velocity estimate in the user reference frame. sensors.user_frame.offset ------------------------------------------------------------------- -ID: 55 +ID: 56 Type: float @@ -771,7 +784,7 @@ The user defined offset. sensors.user_frame.multiplier ------------------------------------------------------------------- -ID: 56 +ID: 57 Type: float @@ -784,7 +797,7 @@ The user defined multipler. sensors.setup.onboard.calibrated ------------------------------------------------------------------- -ID: 57 +ID: 58 Type: bool @@ -797,7 +810,7 @@ Whether the sensor has been calibrated. sensors.setup.onboard.errors ------------------------------------------------------------------- -ID: 58 +ID: 59 Type: uint8 @@ -814,7 +827,7 @@ Flags: sensors.setup.external_spi.type ------------------------------------------------------------------- -ID: 59 +ID: 60 Type: uint8 @@ -833,7 +846,7 @@ Options: sensors.setup.external_spi.calibrated ------------------------------------------------------------------- -ID: 60 +ID: 61 Type: bool @@ -846,7 +859,7 @@ Whether the sensor has been calibrated. sensors.setup.external_spi.errors ------------------------------------------------------------------- -ID: 61 +ID: 62 Type: uint8 @@ -863,7 +876,7 @@ Flags: sensors.setup.hall.calibrated ------------------------------------------------------------------- -ID: 62 +ID: 63 Type: bool @@ -876,7 +889,7 @@ Whether the sensor has been calibrated. sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 63 +ID: 64 Type: uint8 @@ -893,7 +906,7 @@ Flags: sensors.select.position_sensor.connection ------------------------------------------------------------------- -ID: 64 +ID: 65 Type: uint8 @@ -912,7 +925,7 @@ Options: sensors.select.position_sensor.bandwidth ------------------------------------------------------------------- -ID: 65 +ID: 66 Type: float @@ -925,7 +938,7 @@ The position sensor observer bandwidth. sensors.select.position_sensor.raw_angle ------------------------------------------------------------------- -ID: 66 +ID: 67 Type: int32 @@ -938,7 +951,7 @@ The raw position sensor angle. sensors.select.position_sensor.position_estimate ------------------------------------------------------------------- -ID: 67 +ID: 68 Type: float @@ -951,7 +964,7 @@ The filtered position estimate in the position sensor reference frame. sensors.select.position_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 68 +ID: 69 Type: float @@ -964,7 +977,7 @@ The filtered velocity estimate in the position sensor reference frame. sensors.select.commutation_sensor.connection ------------------------------------------------------------------- -ID: 69 +ID: 70 Type: uint8 @@ -983,7 +996,7 @@ Options: sensors.select.commutation_sensor.bandwidth ------------------------------------------------------------------- -ID: 70 +ID: 71 Type: float @@ -996,7 +1009,7 @@ The commutation sensor observer bandwidth. sensors.select.commutation_sensor.raw_angle ------------------------------------------------------------------- -ID: 71 +ID: 72 Type: int32 @@ -1009,7 +1022,7 @@ The raw commutation sensor angle. sensors.select.commutation_sensor.position_estimate ------------------------------------------------------------------- -ID: 72 +ID: 73 Type: float @@ -1022,7 +1035,7 @@ The filtered position estimate in the commutation sensor reference frame. sensors.select.commutation_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 73 +ID: 74 Type: float @@ -1035,7 +1048,7 @@ The filtered velocity estimate in the commutation sensor reference frame. traj_planner.max_accel ------------------------------------------------------------------- -ID: 74 +ID: 75 Type: float @@ -1048,7 +1061,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 75 +ID: 76 Type: float @@ -1061,7 +1074,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 76 +ID: 77 Type: float @@ -1074,7 +1087,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 77 +ID: 78 Type: float @@ -1087,7 +1100,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 78 +ID: 79 Type: float @@ -1100,7 +1113,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 79 +ID: 80 Type: float @@ -1113,7 +1126,7 @@ In time mode, the total time of the generated trajectory. move_to(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 80 +ID: 81 Return Type: void @@ -1124,7 +1137,7 @@ Move to target position in the user reference frame respecting velocity and acce move_to_tlimit(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 81 +ID: 82 Return Type: void @@ -1135,7 +1148,7 @@ Move to target position in the user reference frame respecting time limits for e traj_planner.errors ------------------------------------------------------------------- -ID: 82 +ID: 83 Type: uint8 @@ -1152,7 +1165,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 83 +ID: 84 Type: float @@ -1165,7 +1178,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 84 +ID: 85 Type: float @@ -1178,7 +1191,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 85 +ID: 86 Type: float @@ -1191,7 +1204,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 86 +ID: 87 Type: uint8 @@ -1206,7 +1219,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 87 +ID: 88 Type: float @@ -1219,7 +1232,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 88 +ID: 89 Type: float @@ -1232,7 +1245,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 89 +ID: 90 Type: float @@ -1245,7 +1258,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void -------------------------------------------------------------------------------------------- -ID: 90 +ID: 91 Return Type: void @@ -1256,7 +1269,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 91 +ID: 92 Type: bool @@ -1269,7 +1282,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 92 +ID: 93 Type: bool @@ -1282,7 +1295,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 93 +ID: 94 Type: float diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 812f512c..ccb89843 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,7 +18,7 @@ #include -uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint8_t (*avlos_endpoints[95])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; uint32_t _avlos_get_proto_hash(void) { @@ -194,6 +194,18 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_scheduler_load(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint32_t v; + v = scheduler_get_load(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 92dd45b0..fc9ec31b 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,8 +10,8 @@ #include #include -static const uint32_t avlos_proto_hash = 211282378; -extern uint8_t (*avlos_endpoints[94])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +static const uint32_t avlos_proto_hash = 1081327478; +extern uint8_t (*avlos_endpoints[95])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -206,12 +206,24 @@ uint8_t avlos_enter_dfu(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cm */ uint8_t avlos_config_size(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_scheduler_load +* +* Processor load in ticks per PWM cycle. +* +* Endpoint ID: 16 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_scheduler_load(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_scheduler_errors * * Any scheduler errors, as a bitmask * -* Endpoint ID: 16 +* Endpoint ID: 17 * * @param buffer * @param buffer_len @@ -223,7 +235,7 @@ uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The state of the controller. * -* Endpoint ID: 17 +* Endpoint ID: 18 * * @param buffer * @param buffer_len @@ -235,7 +247,7 @@ uint8_t avlos_controller_state(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The control mode of the controller. * -* Endpoint ID: 18 +* Endpoint ID: 19 * * @param buffer * @param buffer_len @@ -247,7 +259,7 @@ uint8_t avlos_controller_mode(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Any controller warnings, as a bitmask * -* Endpoint ID: 19 +* Endpoint ID: 20 * * @param buffer * @param buffer_len @@ -259,7 +271,7 @@ uint8_t avlos_controller_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any controller errors, as a bitmask * -* Endpoint ID: 20 +* Endpoint ID: 21 * * @param buffer * @param buffer_len @@ -271,7 +283,7 @@ uint8_t avlos_controller_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Co * * The position setpoint in the user reference frame. * -* Endpoint ID: 21 +* Endpoint ID: 22 * * @param buffer * @param buffer_len @@ -283,7 +295,7 @@ uint8_t avlos_controller_position_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The proportional gain of the position controller. * -* Endpoint ID: 22 +* Endpoint ID: 23 * * @param buffer * @param buffer_len @@ -295,7 +307,7 @@ uint8_t avlos_controller_position_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The velocity setpoint in the user reference frame. * -* Endpoint ID: 23 +* Endpoint ID: 24 * * @param buffer * @param buffer_len @@ -307,7 +319,7 @@ uint8_t avlos_controller_velocity_setpoint(uint8_t * buffer, uint8_t * buffer_le * * The velocity limit. * -* Endpoint ID: 24 +* Endpoint ID: 25 * * @param buffer * @param buffer_len @@ -319,7 +331,7 @@ uint8_t avlos_controller_velocity_limit(uint8_t * buffer, uint8_t * buffer_len, * * The proportional gain of the velocity controller. * -* Endpoint ID: 25 +* Endpoint ID: 26 * * @param buffer * @param buffer_len @@ -331,7 +343,7 @@ uint8_t avlos_controller_velocity_p_gain(uint8_t * buffer, uint8_t * buffer_len, * * The integral gain of the velocity controller. * -* Endpoint ID: 26 +* Endpoint ID: 27 * * @param buffer * @param buffer_len @@ -343,7 +355,7 @@ uint8_t avlos_controller_velocity_i_gain(uint8_t * buffer, uint8_t * buffer_len, * * The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. * -* Endpoint ID: 27 +* Endpoint ID: 28 * * @param buffer * @param buffer_len @@ -355,7 +367,7 @@ uint8_t avlos_controller_velocity_deadband(uint8_t * buffer, uint8_t * buffer_le * * Max velocity setpoint increment (ramping) rate. Set to 0 to disable. * -* Endpoint ID: 28 +* Endpoint ID: 29 * * @param buffer * @param buffer_len @@ -367,7 +379,7 @@ uint8_t avlos_controller_velocity_increment(uint8_t * buffer, uint8_t * buffer_l * * The Iq setpoint in the user reference frame. * -* Endpoint ID: 29 +* Endpoint ID: 30 * * @param buffer * @param buffer_len @@ -379,7 +391,7 @@ uint8_t avlos_controller_current_Iq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Id setpoint in the user reference frame. * -* Endpoint ID: 30 +* Endpoint ID: 31 * * @param buffer * @param buffer_len @@ -391,7 +403,7 @@ uint8_t avlos_controller_current_Id_setpoint(uint8_t * buffer, uint8_t * buffer_ * * The Iq limit. * -* Endpoint ID: 31 +* Endpoint ID: 32 * * @param buffer * @param buffer_len @@ -403,7 +415,7 @@ uint8_t avlos_controller_current_Iq_limit(uint8_t * buffer, uint8_t * buffer_len * * The Iq estimate in the user reference frame. * -* Endpoint ID: 32 +* Endpoint ID: 33 * * @param buffer * @param buffer_len @@ -415,7 +427,7 @@ uint8_t avlos_controller_current_Iq_estimate(uint8_t * buffer, uint8_t * buffer_ * * The current controller bandwidth. * -* Endpoint ID: 33 +* Endpoint ID: 34 * * @param buffer * @param buffer_len @@ -427,7 +439,7 @@ uint8_t avlos_controller_current_bandwidth(uint8_t * buffer, uint8_t * buffer_le * * The current controller proportional gain. * -* Endpoint ID: 34 +* Endpoint ID: 35 * * @param buffer * @param buffer_len @@ -439,7 +451,7 @@ uint8_t avlos_controller_current_Iq_p_gain(uint8_t * buffer, uint8_t * buffer_le * * The max current allowed to be fed back to the power source before flux braking activates. * -* Endpoint ID: 35 +* Endpoint ID: 36 * * @param buffer * @param buffer_len @@ -451,7 +463,7 @@ uint8_t avlos_controller_current_max_Ibus_regen(uint8_t * buffer, uint8_t * buff * * The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. * -* Endpoint ID: 36 +* Endpoint ID: 37 * * @param buffer * @param buffer_len @@ -463,7 +475,7 @@ uint8_t avlos_controller_current_max_Ibrake(uint8_t * buffer, uint8_t * buffer_l * * The Vq setpoint. * -* Endpoint ID: 37 +* Endpoint ID: 38 * * @param buffer * @param buffer_len @@ -475,7 +487,7 @@ uint8_t avlos_controller_voltage_Vq_setpoint(uint8_t * buffer, uint8_t * buffer_ * * Calibrate the device. * -* Endpoint ID: 38 +* Endpoint ID: 39 * * @param buffer * @param buffer_len @@ -487,7 +499,7 @@ uint8_t avlos_controller_calibrate(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Set idle mode, disabling the driver. * -* Endpoint ID: 39 +* Endpoint ID: 40 * * @param buffer * @param buffer_len @@ -499,7 +511,7 @@ uint8_t avlos_controller_idle(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * Set position control mode. * -* Endpoint ID: 40 +* Endpoint ID: 41 * * @param buffer * @param buffer_len @@ -511,7 +523,7 @@ uint8_t avlos_controller_position_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set velocity control mode. * -* Endpoint ID: 41 +* Endpoint ID: 42 * * @param buffer * @param buffer_len @@ -523,7 +535,7 @@ uint8_t avlos_controller_velocity_mode(uint8_t * buffer, uint8_t * buffer_len, A * * Set current control mode. * -* Endpoint ID: 42 +* Endpoint ID: 43 * * @param buffer * @param buffer_len @@ -535,7 +547,7 @@ uint8_t avlos_controller_current_mode(uint8_t * buffer, uint8_t * buffer_len, Av * * Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate * -* Endpoint ID: 43 +* Endpoint ID: 44 * * @param buffer * @param buffer_len @@ -547,7 +559,7 @@ uint8_t avlos_controller_set_pos_vel_setpoints(uint8_t * buffer, uint8_t * buffe * * The baud rate of the CAN interface. * -* Endpoint ID: 44 +* Endpoint ID: 45 * * @param buffer * @param buffer_len @@ -559,7 +571,7 @@ uint8_t avlos_comms_can_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comma * * The ID of the CAN interface. * -* Endpoint ID: 45 +* Endpoint ID: 46 * * @param buffer * @param buffer_len @@ -571,7 +583,7 @@ uint8_t avlos_comms_can_id(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The motor Resistance value. * -* Endpoint ID: 46 +* Endpoint ID: 47 * * @param buffer * @param buffer_len @@ -583,7 +595,7 @@ uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor Inductance value. * -* Endpoint ID: 47 +* Endpoint ID: 48 * * @param buffer * @param buffer_len @@ -595,7 +607,7 @@ uint8_t avlos_motor_L(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor pole pair count. * -* Endpoint ID: 48 +* Endpoint ID: 49 * * @param buffer * @param buffer_len @@ -607,7 +619,7 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The type of the motor. Either high current or gimbal. * -* Endpoint ID: 49 +* Endpoint ID: 50 * * @param buffer * @param buffer_len @@ -619,7 +631,7 @@ uint8_t avlos_motor_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * Whether the motor has been calibrated. * -* Endpoint ID: 50 +* Endpoint ID: 51 * * @param buffer * @param buffer_len @@ -631,7 +643,7 @@ uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The calibration current. * -* Endpoint ID: 51 +* Endpoint ID: 52 * * @param buffer * @param buffer_len @@ -643,7 +655,7 @@ uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Any motor/calibration errors, as a bitmask * -* Endpoint ID: 52 +* Endpoint ID: 53 * * @param buffer * @param buffer_len @@ -655,7 +667,7 @@ uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The filtered position estimate in the user reference frame. * -* Endpoint ID: 53 +* Endpoint ID: 54 * * @param buffer * @param buffer_len @@ -667,7 +679,7 @@ uint8_t avlos_sensors_user_frame_position_estimate(uint8_t * buffer, uint8_t * b * * The filtered velocity estimate in the user reference frame. * -* Endpoint ID: 54 +* Endpoint ID: 55 * * @param buffer * @param buffer_len @@ -679,7 +691,7 @@ uint8_t avlos_sensors_user_frame_velocity_estimate(uint8_t * buffer, uint8_t * b * * The user defined offset. * -* Endpoint ID: 55 +* Endpoint ID: 56 * * @param buffer * @param buffer_len @@ -691,7 +703,7 @@ uint8_t avlos_sensors_user_frame_offset(uint8_t * buffer, uint8_t * buffer_len, * * The user defined multipler. * -* Endpoint ID: 56 +* Endpoint ID: 57 * * @param buffer * @param buffer_len @@ -703,7 +715,7 @@ uint8_t avlos_sensors_user_frame_multiplier(uint8_t * buffer, uint8_t * buffer_l * * Whether the sensor has been calibrated. * -* Endpoint ID: 57 +* Endpoint ID: 58 * * @param buffer * @param buffer_len @@ -715,7 +727,7 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe * * Any sensor errors, as a bitmask * -* Endpoint ID: 58 +* Endpoint ID: 59 * * @param buffer * @param buffer_len @@ -727,7 +739,7 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le * * The type of external sensor type. Either MA7XX, AS5047 or AMT22. * -* Endpoint ID: 59 +* Endpoint ID: 60 * * @param buffer * @param buffer_len @@ -739,7 +751,7 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer * * Whether the sensor has been calibrated. * -* Endpoint ID: 60 +* Endpoint ID: 61 * * @param buffer * @param buffer_len @@ -751,7 +763,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * -* Endpoint ID: 61 +* Endpoint ID: 62 * * @param buffer * @param buffer_len @@ -763,7 +775,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * -* Endpoint ID: 62 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -775,7 +787,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * -* Endpoint ID: 63 +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -787,7 +799,7 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, * * The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 64 +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -799,7 +811,7 @@ uint8_t avlos_sensors_select_position_sensor_connection(uint8_t * buffer, uint8_ * * The position sensor observer bandwidth. * -* Endpoint ID: 65 +* Endpoint ID: 66 * * @param buffer * @param buffer_len @@ -811,7 +823,7 @@ uint8_t avlos_sensors_select_position_sensor_bandwidth(uint8_t * buffer, uint8_t * * The raw position sensor angle. * -* Endpoint ID: 66 +* Endpoint ID: 67 * * @param buffer * @param buffer_len @@ -823,7 +835,7 @@ uint8_t avlos_sensors_select_position_sensor_raw_angle(uint8_t * buffer, uint8_t * * The filtered position estimate in the position sensor reference frame. * -* Endpoint ID: 67 +* Endpoint ID: 68 * * @param buffer * @param buffer_len @@ -835,7 +847,7 @@ uint8_t avlos_sensors_select_position_sensor_position_estimate(uint8_t * buffer, * * The filtered velocity estimate in the position sensor reference frame. * -* Endpoint ID: 68 +* Endpoint ID: 69 * * @param buffer * @param buffer_len @@ -847,7 +859,7 @@ uint8_t avlos_sensors_select_position_sensor_velocity_estimate(uint8_t * buffer, * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 69 +* Endpoint ID: 70 * * @param buffer * @param buffer_len @@ -859,7 +871,7 @@ uint8_t avlos_sensors_select_commutation_sensor_connection(uint8_t * buffer, uin * * The commutation sensor observer bandwidth. * -* Endpoint ID: 70 +* Endpoint ID: 71 * * @param buffer * @param buffer_len @@ -871,7 +883,7 @@ uint8_t avlos_sensors_select_commutation_sensor_bandwidth(uint8_t * buffer, uint * * The raw commutation sensor angle. * -* Endpoint ID: 71 +* Endpoint ID: 72 * * @param buffer * @param buffer_len @@ -883,7 +895,7 @@ uint8_t avlos_sensors_select_commutation_sensor_raw_angle(uint8_t * buffer, uint * * The filtered position estimate in the commutation sensor reference frame. * -* Endpoint ID: 72 +* Endpoint ID: 73 * * @param buffer * @param buffer_len @@ -895,7 +907,7 @@ uint8_t avlos_sensors_select_commutation_sensor_position_estimate(uint8_t * buff * * The filtered velocity estimate in the commutation sensor reference frame. * -* Endpoint ID: 73 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -907,7 +919,7 @@ uint8_t avlos_sensors_select_commutation_sensor_velocity_estimate(uint8_t * buff * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 74 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -919,7 +931,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 75 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -931,7 +943,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 76 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -943,7 +955,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 77 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -955,7 +967,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 78 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -967,7 +979,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 79 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -979,7 +991,7 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting velocity and acceleration limits. * -* Endpoint ID: 80 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -991,7 +1003,7 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting time limits for each sector. * -* Endpoint ID: 81 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -1003,7 +1015,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 82 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -1015,7 +1027,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 83 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1027,7 +1039,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 84 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1039,7 +1051,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 85 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1051,7 +1063,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 86 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1063,7 +1075,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 87 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1075,7 +1087,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 88 +* Endpoint ID: 89 * * @param buffer * @param buffer_len @@ -1087,7 +1099,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 89 +* Endpoint ID: 90 * * @param buffer * @param buffer_len @@ -1099,7 +1111,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 90 +* Endpoint ID: 91 * * @param buffer * @param buffer_len @@ -1111,7 +1123,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 91 +* Endpoint ID: 92 * * @param buffer * @param buffer_len @@ -1123,7 +1135,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 92 +* Endpoint ID: 93 * * @param buffer * @param buffer_len @@ -1135,7 +1147,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 93 +* Endpoint ID: 94 * * @param buffer * @param buffer_len diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index d6a002c7..cfb7c9fd 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -31,46 +31,47 @@ volatile uint32_t msTicks = 0; -static volatile SchedulerState state = {0}; +volatile SchedulerState scheduler_state = {0}; void wait_for_control_loop_interrupt(void) { - - while (!state.adc_interrupt) + while (!scheduler_state.adc_interrupt) { - if (state.can_interrupt) + if (scheduler_state.can_interrupt) { // Handle CAN CAN_process_interrupt(); // Only clear the flag if all messages in the CAN RX buffer have been processed if (PAC55XX_CAN->SR.RBS == 0) { - state.can_interrupt = false; + scheduler_state.can_interrupt = false; } } - else if (state.uart_message_interrupt) + else if (scheduler_state.uart_message_interrupt) { // Handle UART - state.uart_message_interrupt = false; + scheduler_state.uart_message_interrupt = false; UART_process_message(); } - else if (state.wwdt_interrupt) + else if (scheduler_state.wwdt_interrupt) { - state.wwdt_interrupt = false; + scheduler_state.wwdt_interrupt = false; WWDT_process_interrupt(); } else { - state.busy = false; + scheduler_state.busy = false; + scheduler_state.load = DWT->CYCCNT; // Go back to sleep __DSB(); __ISB(); __WFI(); } } - state.busy = true; - state.adc_interrupt = false; + scheduler_state.busy = true; + scheduler_state.adc_interrupt = false; + DWT->CYCCNT = 0; // We have to service the control loop by updating // current measurements and encoder estimates. sensor_invalidate(commutation_sensor_p); @@ -95,22 +96,22 @@ void ADC_IRQHandler(void) // the control deadline is not missed, // i.e. the previous control loop is complete prior // to the ADC triggering the next - if ((gate_driver_is_enabled() == true) && (state.busy == true)) + if (gate_driver_is_enabled() && scheduler_state.busy) { - state.errors |= SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED; + scheduler_state.errors |= SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED; // We do not change the control state here, to // avoid any concurrency issues } else { - state.adc_interrupt = true; + scheduler_state.adc_interrupt = true; } } void CAN_IRQHandler(void) { pac5xxx_can_int_clear_RI(); - state.can_interrupt = true; + scheduler_state.can_interrupt = true; } void SysTick_Handler(void) @@ -122,18 +123,14 @@ void SysTick_Handler(void) void UART_ReceiveMessageHandler(void) { - state.uart_message_interrupt = true; + scheduler_state.uart_message_interrupt = true; } void Wdt_IRQHandler(void) { - state.wwdt_interrupt = true; + scheduler_state.wwdt_interrupt = true; PAC55XX_WWDT->WWDTLOCK = WWDTLOCK_REGS_WRITE_AVALABLE; // Interrupt flag needs to be cleared here PAC55XX_WWDT->WWDTFLAG.IF = 1; } -TM_RAMFUNC uint8_t scheduler_get_errors(void) -{ - return state.errors; -} diff --git a/firmware/src/scheduler/scheduler.h b/firmware/src/scheduler/scheduler.h index ca6d889f..26e0f987 100644 --- a/firmware/src/scheduler/scheduler.h +++ b/firmware/src/scheduler/scheduler.h @@ -24,10 +24,21 @@ typedef struct bool uart_message_interrupt; bool wwdt_interrupt; bool busy; + uint32_t load; uint8_t errors; } SchedulerState; +extern volatile SchedulerState scheduler_state; + void wait_for_control_loop_interrupt(void); -uint8_t scheduler_get_errors(void); +static inline uint8_t scheduler_get_errors(void) +{ + return scheduler_state.errors; +} + +static inline uint32_t scheduler_get_load(void) +{ + return scheduler_state.load; +} \ No newline at end of file diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index e53b1fe0..94da8a23 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -86,6 +86,11 @@ void system_init(void) // Ensure ADC GP0 register is zero, to bypass DFU mode on next boot pac5xxx_tile_register_write(ADDR_GP0, 0); + // Configure reporting of mcu cycles + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; + DWT->CYCCNT = 0; + DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; + // Configure error handling SCB->CCR |= 0x10; From f017b31b53a29aefd65d6929f2dd0da81abb1790 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:09:01 +0200 Subject: [PATCH 087/219] disable reading the peripheral at every cycle --- firmware/src/gatedriver/gatedriver.c | 6 ++++++ firmware/src/gatedriver/gatedriver.h | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/firmware/src/gatedriver/gatedriver.c b/firmware/src/gatedriver/gatedriver.c index 62108839..3ca8b329 100644 --- a/firmware/src/gatedriver/gatedriver.c +++ b/firmware/src/gatedriver/gatedriver.c @@ -18,6 +18,8 @@ #include #include +GateDriverState gate_driver_state = {0}; + TM_RAMFUNC void gate_driver_enable(void) { // Select PWMA peripheral for Port B @@ -39,6 +41,8 @@ TM_RAMFUNC void gate_driver_enable(void) pac5xxx_tile_register_write(ADDR_CFGDRV4, pac5xxx_tile_register_read(ADDR_CFGDRV4) | 0x1); // BBM is bit 0 + + gate_driver_state.enabled = ((pac5xxx_tile_register_read(ADDR_ENDRV) & 0x1) == 1); } TM_RAMFUNC void gate_driver_disable(void) @@ -57,5 +61,7 @@ TM_RAMFUNC void gate_driver_disable(void) // Turn on output enables PAC55XX_GPIOB->OUTMASK.w = 0x00; + + gate_driver_state.enabled = ((pac5xxx_tile_register_read(ADDR_ENDRV) & 0x1) == 1); } diff --git a/firmware/src/gatedriver/gatedriver.h b/firmware/src/gatedriver/gatedriver.h index 06478212..3bfd4d37 100644 --- a/firmware/src/gatedriver/gatedriver.h +++ b/firmware/src/gatedriver/gatedriver.h @@ -22,6 +22,12 @@ void gate_driver_enable(void); void gate_driver_disable(void); +typedef struct { + bool enabled; +} GateDriverState; + +extern GateDriverState gate_driver_state; + static inline void m1_u_set_duty(const float duty) { uint16_t val = ((uint16_t)(duty * (TIMER_FREQ_HZ/PWM_FREQ_HZ) )) >>1; @@ -49,5 +55,5 @@ static inline void gate_driver_set_duty_cycle(const FloatTriplet *dutycycles) static inline bool gate_driver_is_enabled(void) { - return ((pac5xxx_tile_register_read(ADDR_ENDRV) & 0x1) == 1); + return gate_driver_state.enabled; } From 21fd6d649c95e61ce6540582822b0372e68eafa0 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:09:46 +0200 Subject: [PATCH 088/219] only prepare sensor once --- firmware/src/sensor/sensor.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 1391ae75..01dfaa1c 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -83,7 +83,8 @@ struct Sensor { // typedefd earlier uint8_t bits; uint32_t ticks; bool initialized : 1; - bool current : 1; + bool prepared : 1; + bool updated : 1; }; void sensor_reset(Sensor *s); @@ -92,16 +93,17 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTra static inline void sensor_update(Sensor *s, bool check_error) { - if (s->current == false) + if (s->updated == false) { s->update_func(s, check_error); - s->current = true; + s->updated = true; } } static inline void sensor_invalidate(Sensor *s) { - s->current = false; + s->updated = false; + s->prepared = false; } static inline uint8_t sensor_get_bits(const Sensor *s) @@ -116,9 +118,10 @@ static inline uint32_t sensor_get_ticks(const Sensor *s) static inline void sensor_prepare(Sensor *s) { - if (s->prepare_func && s->current == false) + if (s->prepare_func && s->prepared == false) { s->prepare_func(s); + s->prepared = true; } } From f8f9cbe51ebda311144966f682b8335e14359399 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:09:58 +0200 Subject: [PATCH 089/219] remove unused timer --- firmware/src/timer/timer.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/firmware/src/timer/timer.c b/firmware/src/timer/timer.c index 95c317a3..3aa255ac 100644 --- a/firmware/src/timer/timer.c +++ b/firmware/src/timer/timer.c @@ -42,19 +42,4 @@ void timers_init(void) PAC55XX_TIMERA->CCTR5.CTR = 0; PAC55XX_TIMERA->CCTR6.CTR = 0; -#if defined(DEBUG) - - // Timer B -- Performance Instrumentation (ddebug only) - - // Configure timer clock input for ACLK, divider - pac5xxx_timer_clock_config(TimerB, TXCTL_CS_ACLK, TXCTL_PS_DIV); - // Configure timer frequency and count mode - pac5xxx_timer_base_config(TimerB, (TIMER_FREQ_HZ/(PWM_FREQ_HZ*100)), AUTO_RELOAD, - TxCTL_MODE_UPDOWN, TIMER_SLAVE_SYNC_DISABLE); - - PAC55XX_TIMERB->CCTR4.CTR = 0; - PAC55XX_TIMERB->CCTR5.CTR = 0; - PAC55XX_TIMERB->CCTR6.CTR = 0; - -#endif } From 6b2446625831c7b1b7c1bafd40298cb142054c41 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:10:14 +0200 Subject: [PATCH 090/219] add load endpoint to spec --- studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 2e319536..19039f78 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -85,6 +85,11 @@ remote_attributes: dtype: uint32 - name: scheduler remote_attributes: + - name: load + summary: Processor load in ticks per PWM cycle. + getter_name: scheduler_get_load + meta: {dynamic: True} + dtype: uint32 - name: errors flags: [CONTROL_BLOCK_REENTERED] meta: {dynamic: True} From 768a0eab96a76b314902ced499922d6045469d42 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 15 Mar 2024 11:10:26 +0200 Subject: [PATCH 091/219] fix transforms --- firmware/src/sensor/sensors.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 18d6476e..47d61a3e 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -194,7 +194,6 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor bool sensors_calibrate_pole_pair_count_and_transforms(void) { - const float I_setpoint = motor_get_I_cal(); set_epos_and_wait(0, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); @@ -232,7 +231,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - frames.commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, commutation_frame_end, 0, motor_frame_end_ticks); + frames.commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end_ticks); frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); if (commutation_sensor_p == position_sensor_p) { @@ -241,15 +240,12 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) } else { - frames.position_sensor_to_motor = derive_transform_2p(position_frame_start, position_frame_end, 0, motor_frame_end_ticks); + frames.position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks); frames.motor_to_position_sensor = derive_inverse_transform(frame_position_sensor_to_motor_p()); } frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); - // Not needed - // position_sensor_to_user - // user_to_position_sensor return true; } \ No newline at end of file From 8b7678a7ba01fde34cee8c6dfc598d452f5fce2f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 17 Mar 2024 13:38:08 +0200 Subject: [PATCH 092/219] make const --- firmware/src/controller/controller.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 3dc487b8..ee2e9f7a 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -290,8 +290,8 @@ TM_RAMFUNC void CLControlStep(void) } // Inverse Park transform - float mod_a = (c_I * mod_d) - (s_I * mod_q); - float mod_b = (c_I * mod_q) + (s_I * mod_d); + const float mod_a = (c_I * mod_d) - (s_I * mod_q); + const float mod_b = (c_I * mod_q) + (s_I * mod_d); SVM(mod_a, mod_b, &state.modulation_values.A, &state.modulation_values.B, &state.modulation_values.C); @@ -583,8 +583,8 @@ void controller_restore_config(ControllerConfig *config_) config = *config_; } -static inline bool Controller_LimitVelocity(float min_limit, float max_limit, float vel_estimate, - float vel_gain, float *I) +static inline bool Controller_LimitVelocity(const float min_limit, const float max_limit, const float vel_estimate, + const float vel_gain, float *I) { float Imax = (max_limit - vel_estimate) * vel_gain; float Imin = (min_limit - vel_estimate) * vel_gain; From 7714f35bc7812571925112d20c936679105c9539 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 17 Mar 2024 13:38:24 +0200 Subject: [PATCH 093/219] fix velocity limiting issue --- firmware/src/controller/controller.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index ee2e9f7a..30535967 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -210,7 +210,8 @@ TM_RAMFUNC void CLControlStep(void) } // Velocity-dependent current limiting - if (Controller_LimitVelocity(-config.vel_limit, config.vel_limit, vel_estimate, config.vel_gain, &Iq_setpoint) == true) + const float vel_estimate_motor_frame = apply_velocity_transform(vel_estimate, frame_position_sensor_to_motor_p()); + if (Controller_LimitVelocity(-config.vel_limit, config.vel_limit, vel_estimate_motor_frame, config.vel_gain, &Iq_setpoint) == true) { state.vel_integrator *= 0.995f; state.warnings |= CONTROLLER_WARNINGS_VELOCITY_LIMITED; From 91cc22d26095a284e82886c107659a2bf71b8bcf Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 17 Mar 2024 13:38:40 +0200 Subject: [PATCH 094/219] make const --- firmware/src/utils/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index 3b978a4b..498d9a0a 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -91,7 +91,7 @@ static inline void delay_us(uint32_t us) pac_delay_asm(us * 16u); } -static inline bool our_clampc(float *d, float min, float max) +static inline bool our_clampc(float *d, const float min, const float max) { const float t = *d < min ? min : *d; *d = t > max ? max : t; From eea549780fc065dfe4d5b66f50907adb440afc64 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 17 Mar 2024 13:38:52 +0200 Subject: [PATCH 095/219] rename can state struct --- firmware/src/can/can.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/src/can/can.c b/firmware/src/can/can.c index d48ce0f7..38354d7a 100644 --- a/firmware/src/can/can.c +++ b/firmware/src/can/can.c @@ -35,7 +35,7 @@ static CANConfig config = { .kbaud_rate = CAN_BAUD_1000KHz, .heartbeat_period = 1000}; -static CANState state ={0}; +static CANState can_state ={0}; extern volatile uint32_t msTicks; @@ -148,7 +148,7 @@ void CAN_process_interrupt(void) uint8_t response_type = callback(can_msg_buffer, &data_length, (uint8_t)rtr); if ((AVLOS_RET_READ == response_type || AVLOS_RET_CALL == response_type) && (data_length > 0)) { - state.last_msg_ms = msTicks; + can_state.last_msg_ms = msTicks; can_transmit_extended(data_length, rx_id, can_msg_buffer); } } @@ -167,10 +167,10 @@ void CAN_restore_config(CANConfig *config_) void CAN_update(void) { // Transmit heartbeat - const uint32_t msg_diff = msTicks - state.last_msg_ms; + const uint32_t msg_diff = msTicks - can_state.last_msg_ms; if (msg_diff >= config.heartbeat_period && PAC55XX_CAN->SR.TBS != 0) { - state.last_msg_ms = msTicks; + can_state.last_msg_ms = msTicks; uint32_t proto_hash = _avlos_get_proto_hash(); uint8_t buf[8]; memcpy(buf, &proto_hash, sizeof(proto_hash)); From 7b7532cde603edd1d99d9b986ba790284a00c9ab Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 18 Mar 2024 14:06:16 +0200 Subject: [PATCH 096/219] update spec with new function signatures --- firmware/src/can/can_endpoints.c | 8 ++++---- firmware/src/can/can_endpoints.h | 2 +- studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index ccb89843..96e79c60 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -789,7 +789,7 @@ uint8_t avlos_sensors_user_frame_offset(uint8_t * buffer, uint8_t * buffer_len, { if (AVLOS_CMD_READ == cmd) { float v; - v = get_position_observer_to_user_offset(); + v = frame_user_to_position_sensor_get_offset(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -797,7 +797,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - set_position_observer_to_user_offset(v); + frame_user_to_position_sensor_set_offset(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; @@ -807,7 +807,7 @@ uint8_t avlos_sensors_user_frame_multiplier(uint8_t * buffer, uint8_t * buffer_l { if (AVLOS_CMD_READ == cmd) { float v; - v = get_position_observer_to_user_multiplier(); + v = frame_user_to_position_sensor_get_multiplier(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; @@ -815,7 +815,7 @@ if (AVLOS_CMD_READ == cmd) { else if (AVLOS_CMD_WRITE == cmd) { float v; memcpy(&v, buffer, sizeof(v)); - set_position_observer_to_user_multiplier(v); + frame_user_to_position_sensor_set_multiplier(v); return AVLOS_RET_WRITE; } return AVLOS_RET_NOACTION; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index fc9ec31b..080660bc 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -static const uint32_t avlos_proto_hash = 1081327478; +static const uint32_t avlos_proto_hash = 2686843087; extern uint8_t (*avlos_endpoints[95])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 19039f78..4e956e43 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -352,13 +352,13 @@ remote_attributes: - name: offset dtype: float unit: ticks - getter_name: get_position_observer_to_user_offset - setter_name: set_position_observer_to_user_offset + getter_name: frame_user_to_position_sensor_get_offset + setter_name: frame_user_to_position_sensor_set_offset summary: The user defined offset. - name: multiplier dtype: float - getter_name: get_position_observer_to_user_multiplier - setter_name: set_position_observer_to_user_multiplier + getter_name: frame_user_to_position_sensor_get_multiplier + setter_name: frame_user_to_position_sensor_set_multiplier summary: The user defined multipler. - name: setup remote_attributes: From ca485cb38195d2f4c0917725371d46b66e403379 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 18 Mar 2024 14:07:04 +0200 Subject: [PATCH 097/219] consolidate ref frame updates --- firmware/src/controller/homing_planner.c | 5 +-- firmware/src/observer/observer.h | 20 ----------- firmware/src/sensor/sensors.c | 12 ++----- firmware/src/xfs.c | 2 +- firmware/src/xfs.h | 45 +++++++++++++++++++++++- 5 files changed, 49 insertions(+), 35 deletions(-) diff --git a/firmware/src/controller/homing_planner.c b/firmware/src/controller/homing_planner.c index 5e8bbf0b..5285c814 100644 --- a/firmware/src/controller/homing_planner.c +++ b/firmware/src/controller/homing_planner.c @@ -58,10 +58,7 @@ TM_RAMFUNC bool homing_planner_evaluate() if (state.stay_t_current >= config.max_stay_t) { // First time the endstop is considered found, reset origins and setpoints - frames.user_to_position_sensor.offset = observer_pos; - frames.position_sensor_to_user = derive_inverse_transform(frame_user_to_position_sensor_p()); - frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); - frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); + frame_user_to_position_sensor_set_offset(observer_pos); controller_set_pos_setpoint_user_frame(0); controller_set_vel_setpoint_user_frame(0); } diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 21967ae4..75ef2e76 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -119,26 +119,6 @@ static inline float observer_get_vel_estimate(Observer *o) // Interface functions -static inline float get_position_observer_to_user_offset(void) -{ - return frame_position_sensor_to_user_p()->offset; -} - -static inline float get_position_observer_to_user_multiplier(void) -{ - return frame_position_sensor_to_user_p()->multiplier; -} - -static inline void set_position_observer_to_user_offset(float value) -{ - frame_position_sensor_to_user_p()->offset = value; -} - -static inline void set_position_observer_to_user_multiplier(float value) -{ - frame_position_sensor_to_user_p()->multiplier = value; -} - static inline float commutation_observer_get_bandwidth(void) { return observer_get_bandwidth(&commutation_observer); diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 47d61a3e..8c52a9a1 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -231,21 +231,15 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - frames.commutation_sensor_to_motor = derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end_ticks); - frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); + frame_set_commutation_sensor_to_motor(derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end_ticks)); if (commutation_sensor_p == position_sensor_p) { - frames.position_sensor_to_motor = frames.commutation_sensor_to_motor; - frames.motor_to_position_sensor = frames.motor_to_commutation_sensor; + frame_set_position_sensor_to_motor(frames.commutation_sensor_to_motor); } else { - frames.position_sensor_to_motor = derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks); - frames.motor_to_position_sensor = derive_inverse_transform(frame_position_sensor_to_motor_p()); + frame_set_position_sensor_to_motor(derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks)); } - - frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); - frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); return true; } \ No newline at end of file diff --git a/firmware/src/xfs.c b/firmware/src/xfs.c index 41ee8cb3..ad94e4cb 100644 --- a/firmware/src/xfs.c +++ b/firmware/src/xfs.c @@ -5,4 +5,4 @@ FramesConfig frames = { .position_sensor_to_user = DEFAULT_TRANSFORM, .user_to_position_sensor = DEFAULT_TRANSFORM -}; \ No newline at end of file +}; diff --git a/firmware/src/xfs.h b/firmware/src/xfs.h index 727aff49..0c236443 100644 --- a/firmware/src/xfs.h +++ b/firmware/src/xfs.h @@ -79,4 +79,47 @@ static inline FrameTransform *frame_motor_to_user_p(void) static inline FrameTransform *frame_user_to_motor_p(void) { return &(frames.user_to_motor); -} \ No newline at end of file +} + +static inline float frame_user_to_position_sensor_get_offset(void) +{ + return frame_user_to_position_sensor_p()->offset; +} + +static inline float frame_user_to_position_sensor_get_multiplier(void) +{ + return frame_user_to_position_sensor_p()->multiplier; +} + +static inline void frame_user_to_position_sensor_set_offset(float value) +{ + frames.user_to_position_sensor.offset = value; + frames.position_sensor_to_user = derive_inverse_transform(frame_user_to_position_sensor_p()); + frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); + frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); +} + +static inline void frame_user_to_position_sensor_set_multiplier(float value) +{ + if (value != 0) + { + frames.user_to_position_sensor.multiplier = value; + frames.position_sensor_to_user = derive_inverse_transform(frame_user_to_position_sensor_p()); + frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); + frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); + } +} + +static inline void frame_set_commutation_sensor_to_motor(const FrameTransform value) +{ + frames.commutation_sensor_to_motor = value; + frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); +} + +static inline void frame_set_position_sensor_to_motor(const FrameTransform value) +{ + frames.position_sensor_to_motor = value; + frames.motor_to_position_sensor = derive_inverse_transform(&value); + frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); + frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); +} From 1a43b346acc795ba479188f7b2d30c7015fb2168 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 18 Mar 2024 14:27:14 +0200 Subject: [PATCH 098/219] update docs with transform explanation --- docs/sensors/sensors.rst | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index 7cf5d626..6e65639e 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -9,10 +9,54 @@ This document provides information and guides for using the various angle sensor Reference Frames **************** +In the context of Tinymovr motor control, reference frames are essential for understanding the transformation of sensor data and user setpoints into motor control signals. The following diagram depicts the reference frames and their interconnections: + +The diagram below illustrates the flow of data from the physical sensors through various observers and frames, finally reaching the motor. + .. image:: reference_frames.jpg :width: 800 :alt: Diagram of the reference frames used in the firmware +Position Sensor Frame (PSF) +--------------------------- + +The Position Sensor Frame (PSF) corresponds to the filtered position sensor data. The main function of this frame is to provide feedback on the estimated position and velocity of the rotor, and therefore provide feedback to the position and velocity control loops. As the homing and trajectory planners also rely on position and velocity estimates, this frame also affects those functions. + +Commutation Sensor Frame (CSF) +------------------------------ + +The Commutation Sensor Frame (CSF) corresponds to the filtered commutation sensor data. In ths simplest scenario, the position and commutation sensors are the same, as such the PSF and CSF are identical. The main function of this frame is to provide the estimated rotor angle to the current control loop, so that the electrical angle is derived in the Motor Frame, for Field Oriented Control. + +Motor Frame (MF) +---------------- + +The origin of the Motor Frame (MF) corresponds to the zero electrical angle of the electrical cycle energized during calibration. This is the frame used by current control, and related dq, inverse Park and SVPWM transforms. + +User Frame (UF) +--------------- + +The User Frame is the interface exposed to the Tinymovr API, allowing the user to command the motor using position, veocity and current setpoints. This frame is related to the PSF, so that the user commands are predominantly based on the position data, with the commutation aspect being internally managed by the firmware's observer algorithms. + +Frame Transforms +---------------- + +Data from the Position and Commutation Sensors is forwarded to their respective observers. The observers are responsible for filtering the sensor readings and providing position and velocity estimates. This processed data is then translated into two separate frames: + +1. The Position Sensor Frame, which carries the filtered position data. +2. The Commutation Sensor Frame, which ensures the motor's proper electrical commutation. + +These frames are then employed to inform the Motor Frame, which is the final reference before actuating the motor. + +As a summary, the following ransforms are derived during calibration and are stored in the Tinymovr firmware: + +1. UF <-> PSF +2. PSF <-> CSF +3. CSF <-> MF +4. UF <-> MF + +Tinymovr makes use of the XF1 library, which has been developed for this purpose and offers convenience functions to perform transforms, derive transforms from data, as well as inverse and constrained transforms. + + Observer bandwidth ****************** From 28dbe88e299c1523e670baf2aa9cd954ec27e7a4 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 19 Mar 2024 02:46:02 +0200 Subject: [PATCH 099/219] elaborate on sensor setup --- docs/sensors/sensors.rst | 161 +++++++++++++++++++++++++++++---------- 1 file changed, 121 insertions(+), 40 deletions(-) diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index 6e65639e..13bcec04 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -1,11 +1,51 @@ Sensors and Encoders #################### + Overview ******** This document provides information and guides for using the various angle sensor and encoder types supported by Tinymovr. + +Hardware Setup +************** + +Hall Effect Sensor +================== + +To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the Tinymovr board. The pinout for the Hall effect sensor connector is shown below. + +.. image:: hall_pinout.jpg + :width: 800 + :alt: Hall effect sensor connection diagram + +.. note:: + The diagram shows the connector side of the board, i.e. the side where the CAN, UART and SPI connectors, and also the DC-link capacitors are located. + +Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled T is currently not in use. In addition, the 3.3V power supply and the GND need to be connected to the sensor as well. + +.. note:: + Tinymovr R5.2 and above supply 5V on the FLEX1 power supply pin. You can safely connect this to the Hall effect sensor + terminal. + + Tinymovr R5.1 supplies 3.3V on the AUX power supply pin. If your sensor uses 5V, or if it needs more than 50mA, you'll need to provide power externally, e.g. through a dedicated buck converter. + +Example +------- + +The figure below shows an example of wiring a hub motor to Tinymovr, using the embedded Hall effect sensors of the motor for commutation. Note that the power and ground are connected to an external 5V power supply. Alternatively, if your Hall effect sensors are compatible with 3.3V input, you can connect the leads to the onboard connectors. + +.. image:: hubmotor_diagram.png + :width: 800 + :alt: Wiring diagram for connection of hub motor to Tinymovr + + +Units +***** + +In Tinymovr, a 'tick' traditionally represents 1/8192 of a full mechanical rotation. The system utilizes floating-point values, thereby allowing resolution beyond the granularity of a single tick — down to the precision defined by the IEEE754 standard. This means that even when high-resolution sensors (with 16, 18, 20 or more bits) are employed, their precision is fully retained. Internally, sensor measurements are scaled to conform with the 8192-tick representation. In addition, using the Tinymovr client library, you can define commands in any angle unit you with, such as turns, rads, degrees etc. This gives you freedom in your application beyond the tick representation. + + Reference Frames **************** @@ -18,27 +58,27 @@ The diagram below illustrates the flow of data from the physical sensors through :alt: Diagram of the reference frames used in the firmware Position Sensor Frame (PSF) ---------------------------- +=========================== The Position Sensor Frame (PSF) corresponds to the filtered position sensor data. The main function of this frame is to provide feedback on the estimated position and velocity of the rotor, and therefore provide feedback to the position and velocity control loops. As the homing and trajectory planners also rely on position and velocity estimates, this frame also affects those functions. Commutation Sensor Frame (CSF) ------------------------------- +============================== The Commutation Sensor Frame (CSF) corresponds to the filtered commutation sensor data. In ths simplest scenario, the position and commutation sensors are the same, as such the PSF and CSF are identical. The main function of this frame is to provide the estimated rotor angle to the current control loop, so that the electrical angle is derived in the Motor Frame, for Field Oriented Control. Motor Frame (MF) ----------------- +================ The origin of the Motor Frame (MF) corresponds to the zero electrical angle of the electrical cycle energized during calibration. This is the frame used by current control, and related dq, inverse Park and SVPWM transforms. User Frame (UF) ---------------- +=============== The User Frame is the interface exposed to the Tinymovr API, allowing the user to command the motor using position, veocity and current setpoints. This frame is related to the PSF, so that the user commands are predominantly based on the position data, with the commutation aspect being internally managed by the firmware's observer algorithms. Frame Transforms ----------------- +================ Data from the Position and Commutation Sensors is forwarded to their respective observers. The observers are responsible for filtering the sensor readings and providing position and velocity estimates. This processed data is then translated into two separate frames: @@ -57,15 +97,10 @@ As a summary, the following ransforms are derived during calibration and are sto Tinymovr makes use of the XF1 library, which has been developed for this purpose and offers convenience functions to perform transforms, derive transforms from data, as well as inverse and constrained transforms. -Observer bandwidth -****************** - -Tinymovr uses an observer in order to filter readings from the sensors. The bandwidth value corresponds to the desired observer bandwidth. It is a configurable value and depends on the dynamics that you wish to achieve with your motor. Keep in mind that high bandwidth values used with motors with fewer pole pairs will make the motors oscillate around the setpoint and have a rough tracking performance (perceivable "knocks" when the rotor moves). On the other hand, too low of a bandwidth value may cause the motor to lose tracking in highly dynamic motions. If you are certain such motions will not be possible (e.g. in heavy moving platforms) you may reduce the bandwidth to ensure smoother motion. - Onboard Magnetic **************** -All Tinymovr controllers feature an onboard magnetic absolute angle sensor that allows high precision angle measurement for efficient commutation and high bandwidth motor control. This is enabled by default and does not require any specific setup, apart from initial angle sensor/motor calibration. +All Tinymovr controllers feature an onboard magnetic absolute angle sensor that allows high precision angle measurement for efficient commutation and highly dynamic motor control. This is enabled by default and does not require any specific setup, apart from initial reference frame calibration. The onboard angle sensor is enabled by default, so no special configuration is necessary. Should you need to switch to the onboard sensor, use the following commands: @@ -78,64 +113,105 @@ The onboard angle sensor is enabled by default, so no special configuration is n The value of 300Hz in bandwidth is the default value configured based on the charasteristics of the onboard angle sensor. + +Sensor Configuration +******************** + +The sensor configuration cinsists of two steps. The first step concerns the setup of the individual sensors being used, and the second step concerns sensor selection. The corresponding sections in the device spec are `tmx.sensors.setup`, and `tmx.sensors.select`. + +Sensor Setup +============ + +Onboard Magnetic Sensor +----------------------- + +The Onboard Magnetic Sensor does not require any configuration. In this section the calibration state and any sensor errors can be seen. + + +External SPI Sensor +------------------- + +The External SPI Sensor requires the correct sensor type to be set before enabling it. Three sensors are currently supported, the MPS MA7xx series, the AMS AS504x series, and the CUI AMT22 series. In addition, here you can see the calibration state and sensor errors. + + Hall Effect Sensor -****************** +------------------ -Tinymovr R5 supports external Hall effect sensors for commutation and positioning. Hall effect sensors generate a specific sequence in the 3 phase Hall effect sensor signal as the rotor moves. By reading this sequence, the rotor position is determined in one of six 60 degree sectors along the electrical cycle. +Hall effect sensors generate a specific sequence in the 3 phase Hall effect sensor signal as the rotor moves. By reading this sequence, the rotor position is determined in one of six 60 degree sectors along the electrical cycle. -Hardware Setup --------------- +The Hall Effect Sensor does not require any configuration. In this section the calibration state and any sensor errors can be seen. -To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the Tinymovr board. The pinout for the Hall effect sensor connector is shown below. -.. image:: hall_pinout.jpg - :width: 800 - :alt: Hall effect sensor connection diagram +Sensor Selection +================ -.. note:: - The diagram shows the connector side of the board, i.e. the side where the CAN, UART and SPI connectors, and also the DC-link capacitors are located. +Sensor selection can be performed for positioning and for commutation. In both cases, the selection should be performed after hardware setup and any sensor setup has been fully completed, namely if using external sensors, the selection of the sensor type. The selection is among ONBOARD, EXTERNAL_SPI and HALL sensors. Once selection is complete, the Tinymovr needs to undergo calibration. -Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled T is currently not in use. In addition, the 3.3V power supply and the GND need to be connected to the sensor as well. -.. note:: - Tinymovr supplies 3.3V on the AUX power supply pin. If your sensor uses 5V, or if it needs more than 50mA, you'll need to provide power externally, e.g. through a dedicated buck converter. +Examples +******** -Example -======= +External AS5047 Sensor +====================== -The figure below shows an example of wiring a hub motor to Tinymovr, using the embedded Hall effect sensors of the motor for commutation. Note that the power and ground are connected to an external 5V power supply. Alternatively, if your Hall effect sensors are compatible with 3.3V input, you can connect the leads to the onboard connectors. +Ensure the hardware is properly connected. -.. image:: hubmotor_diagram.png - :width: 800 - :alt: Wiring diagram for connection of hub motor to Tinymovr +Then, configure the external sensor type as follows: -Configuration -------------- +.. code-block:: python -As a first step you need to configure the sensor type and observer bandwidth. + tmx.encoder.type = 1 + tmx.encoder.bandwidth = 100 + +Then select the `EXTERNAL_SPI` sensor for each of the position and commutation sensors: .. code-block:: python tmx.encoder.type = 1 tmx.encoder.bandwidth = 100 -This sets the type to Hall effect sensor, and the observer bandwidth to 100Hz. Note that the change of the sensor type will not propagate until the next reset; in effect, the `encoder.type` variable value will still show as the previous one, here as 0, until you finish configuration and reset. +At this point, you are ready to perform motor/sensor calibration. This will measure the R and L values of the motor, derive frame transforms and eccentricity compensation tables. -Next, you need to set the motor pole pairs: +.. code-block:: python + + tmx.controller.calibrate() + +After calibration finishes, you should be able to control the motor: .. code-block:: python - tmx.motor.pole_pairs = 15 - -As a final step, save configuration and reset: + tmx.controller.velocity_mode() + tmx.controller.velocity.setpoint = 8192 # 60 rpm + +The motor should now move at a constant velocity. + +Once you have determined that the motor behaves as expected, set to idle and perform another config save to persist the configuration: .. code-block:: python + tmx.controller.idle() tmx.save_config() - tmx.reset() # sensor type change is applied after reset -The board needs to be reset following saving of the config, to enable the sensor type change. For safety reasons, any change to the sensor type is only enabled at next boot. +Hall Effect Sensor +============= +Ensure the hardware is properly connected. + +Then select the `HALL` sensor for each of the position and commutation sensors, and configure the observer bandwidth as follows: + +.. code-block:: python + + tmx.encoder.type = 1 + tmx.encoder.bandwidth = 100 + +This sets the type to Hall effect sensor, and the observer bandwidth to 100Hz. + +Next, you need to set the motor pole pairs: + +.. code-block:: python + + tmx.motor.pole_pairs = 15 + Next comes tuning of gains. Gains are determined on the resolution of a full mechanical turn fo the motor. When using the onboard magnetic sensor, the resolution is fixed to 8192 ticks. However, when using the Hall effect sensor, the mechanical resolution is variable, and amounts to `6 * pole_pair_count`. As such, if you have a 15 pp motor, your mechanical resolution would be 90. Because of this vast change in resolution (almost 2 orders of magnitude), the gains need to be updated: @@ -169,3 +245,8 @@ Once you have determined that the motor behaves as expected, set to idle and per tmx.controller.idle() tmx.save_config() + +Observer bandwidth +****************** + +Tinymovr uses a second order observer that filters readings from the sensors, and maintains a position and velocity state. The bandwidth value corresponds to the desired observer bandwidth. It is a configurable value and depends on the dynamics that you wish to achieve with your motor. Keep in mind that high bandwidth values used with motors with fewer pole pairs will make the motors oscillate around the setpoint and have a rough tracking performance (perceivable "knocks" when the rotor moves). On the other hand, too low of a bandwidth value may cause the motor to lose tracking in highly dynamic motions. If you are certain such motions will not be possible (e.g. in heavy moving platforms) you may reduce the bandwidth to ensure smoother motion. \ No newline at end of file From df2f0815b3635f330c2232d75bb96b9940486799 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 19 Mar 2024 02:47:03 +0200 Subject: [PATCH 100/219] optimize some operations --- firmware/src/controller/controller.c | 5 +++-- firmware/src/observer/observer.c | 2 ++ firmware/src/observer/observer.h | 9 +++++---- firmware/src/sensor/hall.c | 1 + firmware/src/sensor/ma7xx.c | 1 + firmware/src/sensor/sensor.h | 6 ++++++ 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 30535967..379674c4 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -226,6 +226,7 @@ TM_RAMFUNC void CLControlStep(void) // Flux braking const float Vbus_voltage = system_get_Vbus(); + const float one_over_Vbus_voltage = 1.0f / Vbus_voltage; if (config.max_Ibrake > 0) { state.Id_setpoint = our_clamp(-state.Ibus_est*Vbus_voltage, 0, config.max_Ibrake); @@ -273,8 +274,8 @@ TM_RAMFUNC void CLControlStep(void) } state.Vq_setpoint = Vq; - float mod_q = Vq / Vbus_voltage; - float mod_d = Vd / Vbus_voltage; + float mod_q = Vq * one_over_Vbus_voltage; + float mod_d = Vd * one_over_Vbus_voltage; state.Ibus_est = state.Iq_estimate * mod_q + state.Id_estimate * mod_d; state.power_est = state.Ibus_est * Vbus_voltage; diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 9b94722d..4f5789ec 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -47,6 +47,8 @@ void observer_set_bandwidth(Observer *o, float bw) o->config.track_bw = bw; o->config.kp = 2.0f * o->config.track_bw; o->config.ki = 0.25f * (o->config.kp * o->config.kp); + o->config.kp_period = o->config.kp * PWM_PERIOD_S; + o->config.ki_period = o->config.ki * PWM_PERIOD_S; } } diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 75ef2e76..3cb9cdc0 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -30,6 +30,8 @@ typedef struct float track_bw; float kp; float ki; + float kp_period; + float ki_period; } ObserverConfig; struct Observer { @@ -64,8 +66,7 @@ static inline void observer_update(Observer *o) { if (o->current == false) { - const float sensor_res_norm_factor = SENSOR_COMMON_RES_TICKS_FLOAT / sensor_get_ticks(*(o->sensor_ptr)); - const float angle_meas = sensor_get_angle_rectified(*(o->sensor_ptr)) * sensor_res_norm_factor; + const float angle_meas = sensor_get_angle_rectified_normalized(*(o->sensor_ptr)); const float delta_pos_est = PWM_PERIOD_S * o->vel_estimate; float delta_pos_meas = angle_meas - o->pos_estimate_wrapped; if (delta_pos_meas < -SENSOR_COMMON_RES_HALF_TICKS) @@ -77,7 +78,7 @@ static inline void observer_update(Observer *o) delta_pos_meas -= SENSOR_COMMON_RES_TICKS; } const float delta_pos_error = delta_pos_meas - delta_pos_est; - const float incr_pos = delta_pos_est + (PWM_PERIOD_S * o->config.kp * delta_pos_error); + const float incr_pos = delta_pos_est + (o->config.kp_period * delta_pos_error); o->pos_estimate_wrapped += incr_pos; if (o->pos_estimate_wrapped < 0) { @@ -89,7 +90,7 @@ static inline void observer_update(Observer *o) o->pos_estimate_wrapped -= SENSOR_COMMON_RES_TICKS; o->pos_sector += 1; } - o->vel_estimate += PWM_PERIOD_S * o->config.ki * delta_pos_error; + o->vel_estimate += o->config.ki_period * delta_pos_error; o->current = true; } } diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 0accc5fb..2af795b7 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -29,6 +29,7 @@ void hall_make_blank_sensor(Sensor *s) s->config.type = SENSOR_TYPE_HALL; s->bits = HALL_BITS; s->ticks = HALL_SECTORS; + s->normalization_factor = SENSOR_COMMON_RES_TICKS_FLOAT / s->ticks; s->get_raw_angle_func = hall_get_angle; s->update_func = hall_update; s->reset_func = hall_reset; diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 52179d44..fc0099f3 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -28,6 +28,7 @@ void ma7xx_make_blank_sensor(Sensor *s) s->config.type = SENSOR_TYPE_MA7XX; s->bits = MA7XX_BITS; s->ticks = MA7XX_TICKS; + s->normalization_factor = SENSOR_COMMON_RES_TICKS_FLOAT / s->ticks; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->get_raw_angle_func = ma7xx_get_raw_angle; s->deinit_func = ma7xx_deinit; diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 01dfaa1c..97fd5d3d 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -82,6 +82,7 @@ struct Sensor { // typedefd earlier sensor_get_errors_func_t get_errors_func; uint8_t bits; uint32_t ticks; + float normalization_factor; bool initialized : 1; bool prepared : 1; bool updated : 1; @@ -134,3 +135,8 @@ static inline int32_t sensor_get_angle_rectified(const Sensor *s) const int32_t off_interp = off_1 + ((off_2 - off_1)* (angle - ((angle>>offset_bits)<>offset_bits); return angle + off_interp; } + +static inline float sensor_get_angle_rectified_normalized(const Sensor *s) +{ + return sensor_get_angle_rectified(s) * s->normalization_factor; +} \ No newline at end of file From a97c99d2037ce7f661212b07c1dcd35d16111e88 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 19 Mar 2024 02:47:21 +0200 Subject: [PATCH 101/219] increase ssp rate for external sensor --- firmware/src/sensor/as5047.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index d70bbf1c..122d6c98 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -28,6 +28,7 @@ void as5047p_make_blank_sensor(Sensor *s) s->config.type = SENSOR_TYPE_AS5047; s->bits = AS5047_BITS; s->ticks = AS5047_TICKS; + s->normalization_factor = SENSOR_COMMON_RES_TICKS_FLOAT / s->ticks; s->get_raw_angle_func = as5047p_get_raw_angle; s->update_func = as5047p_update; s->prepare_func = as5047p_send_angle_cmd; @@ -48,7 +49,7 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; as->config = *c; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 32, 1, 0); + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet as5047p_send_angle_cmd(s); From cac39eefa029275613b8c9ab7f4f65c7c0472e8a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 19 Mar 2024 02:47:36 +0200 Subject: [PATCH 102/219] enable inverter before proceeding --- firmware/src/sensor/sensor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index d29daf95..724d043a 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -63,6 +63,7 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTra error_ticks[n - i - 1] += apply_transform(e_pos_ref * e_pos_to_ticks, xf_motor_to_sensor) - pos_meas_sensor_frame; } gate_driver_set_duty_cycle(&three_phase_zero); + // temporarily disable the inverter, as the following computations will probably exceed a single PWM cycle gate_driver_disable(); // FIR filtering and map measurements to lut @@ -85,6 +86,7 @@ bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTra acc = acc / ((float)(ECN_SIZE * 2)); lut[i] = (int32_t)acc; } + gate_driver_enable(); wait_pwm_cycles(5000); s->config.rec_calibrated = true; return true; From 6365ae20321405916905ad62081ad70875ebf10a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 02:10:01 +0200 Subject: [PATCH 103/219] fix hall sector count --- firmware/src/sensor/hall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 04fada48..5652d91c 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -20,7 +20,7 @@ #include #define HALL_BITS (3) -#define HALL_SECTORS (HALL_BITS - 2) +#define HALL_SECTORS ((1 << HALL_BITS) - 2) #define HALL_SECTOR_ANGLE (TWOPI / HALL_SECTORS) #define CAL_DIR_LEN_PER_SECTOR (CAL_DIR_LEN / HALL_SECTORS) From 784ec63eb7be84db82eb6dbe9c400b5b0bf39280 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 02:10:15 +0200 Subject: [PATCH 104/219] report hall angle as full circle in ticks --- firmware/src/sensor/hall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 5652d91c..640e77c0 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -67,7 +67,7 @@ static inline void hall_update(Sensor *s, bool check_error) HallSensor *ms = (HallSensor *)s; const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; ms->sector = sector; - ms->angle = ms->config.sector_map[ms->sector]; + ms->angle = ms->config.sector_map[ms->sector] * s->normalization_factor; } static inline uint8_t hall_get_sector(const Sensor *s) From 550f1c761abc51fcaa9da0dcd9aa6aadb5a070c5 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 02:10:30 +0200 Subject: [PATCH 105/219] adapt caibration procedure to accommodate hall sensors --- firmware/src/sensor/sensors.c | 19 +++++++++++-------- firmware/src/sensor/sensors.h | 9 +++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 8c52a9a1..2465b68d 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -210,18 +210,21 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) set_epos_and_wait(motor_frame_end, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); - float commutation_frame_end = commutation_observer_get_pos_estimate(); - float position_frame_end = position_observer_get_pos_estimate(); + const float commutation_frame_end = commutation_observer_get_pos_estimate(); + const float position_frame_end = position_observer_get_pos_estimate(); - // Find pole pairs - if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) + // Find pole pairs if not Hall; otherwise have to be defined manually + if (commutation_sensor_p->config.type != SENSOR_TYPE_HALL) { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; - return false; + if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; + return false; + } } - volatile float motor_frame_end_ticks = SENSOR_COMMON_RES_TICKS * (motor_frame_end / (TWOPI * motor_get_pole_pairs())); + const float motor_frame_end_ticks = SENSOR_COMMON_RES_TICKS * (motor_frame_end / (TWOPI * motor_get_pole_pairs())); // Move back to start epos for (uint32_t i = 0; i < CAL_DIR_LEN; i++) diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 56fc57c8..b9ff6edc 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -114,9 +114,14 @@ static inline void sensors_calibrate(void) { commutation_sensor_p->calibrate_func(commutation_sensor_p, &commutation_observer); } + sensors_calibrate_pole_pair_count_and_transforms(); - sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer, frame_motor_to_commutation_sensor_p()); - if (commutation_sensor_p != position_sensor_p) + + if (commutation_sensor_p->config.type != SENSOR_TYPE_HALL) + { + sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer, frame_motor_to_commutation_sensor_p()); + } + if (commutation_sensor_p != position_sensor_p && position_sensor_p->config.type != SENSOR_TYPE_HALL) { sensor_calibrate_eccentricity_compensation(position_sensor_p, &position_observer, frame_motor_to_position_sensor_p()); } From 52baf443eea20566b8fe5c3abe34c6b1fd5bed07 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 19:08:26 +0200 Subject: [PATCH 106/219] use sensor type getter --- firmware/src/sensor/sensor.h | 5 +++++ firmware/src/sensor/sensors.c | 2 +- firmware/src/sensor/sensors.h | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 97fd5d3d..46e230b8 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -117,6 +117,11 @@ static inline uint32_t sensor_get_ticks(const Sensor *s) return s->ticks; } +static inline sensor_type_t sensor_get_type(const Sensor *s) +{ + return s->config.type; +} + static inline void sensor_prepare(Sensor *s) { if (s->prepare_func && s->prepared == false) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 2465b68d..c9c11108 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -214,7 +214,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) const float position_frame_end = position_observer_get_pos_estimate(); // Find pole pairs if not Hall; otherwise have to be defined manually - if (commutation_sensor_p->config.type != SENSOR_TYPE_HALL) + if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) { if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) { diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index b9ff6edc..7eb78e3e 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -117,11 +117,11 @@ static inline void sensors_calibrate(void) sensors_calibrate_pole_pair_count_and_transforms(); - if (commutation_sensor_p->config.type != SENSOR_TYPE_HALL) + if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) { sensor_calibrate_eccentricity_compensation(commutation_sensor_p, &commutation_observer, frame_motor_to_commutation_sensor_p()); } - if (commutation_sensor_p != position_sensor_p && position_sensor_p->config.type != SENSOR_TYPE_HALL) + if (commutation_sensor_p != position_sensor_p && sensor_get_type(position_sensor_p) != SENSOR_TYPE_HALL) { sensor_calibrate_eccentricity_compensation(position_sensor_p, &position_observer, frame_motor_to_position_sensor_p()); } From 9f976699b9e76efda6ec7c393a4561eab42d887d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 19:14:07 +0200 Subject: [PATCH 107/219] update hall sensor config docs --- .../{hall_pinout.jpg => hall_pinout_R51.jpg} | Bin ...r_diagram.png => hubmotor_diagram_R51.png} | Bin docs/sensors/sensors.rst | 55 ++++++++++-------- 3 files changed, 31 insertions(+), 24 deletions(-) rename docs/sensors/{hall_pinout.jpg => hall_pinout_R51.jpg} (100%) rename docs/sensors/{hubmotor_diagram.png => hubmotor_diagram_R51.png} (100%) diff --git a/docs/sensors/hall_pinout.jpg b/docs/sensors/hall_pinout_R51.jpg similarity index 100% rename from docs/sensors/hall_pinout.jpg rename to docs/sensors/hall_pinout_R51.jpg diff --git a/docs/sensors/hubmotor_diagram.png b/docs/sensors/hubmotor_diagram_R51.png similarity index 100% rename from docs/sensors/hubmotor_diagram.png rename to docs/sensors/hubmotor_diagram_R51.png diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index 13bcec04..655eb0fa 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -16,14 +16,15 @@ Hall Effect Sensor To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the Tinymovr board. The pinout for the Hall effect sensor connector is shown below. -.. image:: hall_pinout.jpg +.. image:: hall_pinout_R52.jpg :width: 800 - :alt: Hall effect sensor connection diagram + :alt: Hall effect sensor connection diagram for Tinymovr R5.2 -.. note:: - The diagram shows the connector side of the board, i.e. the side where the CAN, UART and SPI connectors, and also the DC-link capacitors are located. +.. image:: hall_pinout_R51.jpg + :width: 800 + :alt: Hall effect sensor connection diagram for Tinymovr R5.1 -Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled T is currently not in use. In addition, the 3.3V power supply and the GND need to be connected to the sensor as well. +Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled AUX/T is an input for a thermistor, but is currently not in use. In addition, power supply and GND pins need to be connected to the sensor. .. note:: Tinymovr R5.2 and above supply 5V on the FLEX1 power supply pin. You can safely connect this to the Hall effect sensor + terminal. @@ -33,11 +34,15 @@ Note the U, V and W pins. These need to be connected to the respective pins of t Example ------- -The figure below shows an example of wiring a hub motor to Tinymovr, using the embedded Hall effect sensors of the motor for commutation. Note that the power and ground are connected to an external 5V power supply. Alternatively, if your Hall effect sensors are compatible with 3.3V input, you can connect the leads to the onboard connectors. +The figures below shows an example of wiring a hubwheel motor to Tinymovr R5.2 and R5.1 respectively, using the embedded Hall effect sensors of the motor for commutation. + +.. image:: hubmotor_diagram_R52.png + :width: 800 + :alt: Wiring diagram for connection of hub motor to Tinymovr R5.2 -.. image:: hubmotor_diagram.png +.. image:: hubmotor_diagram_R51.png :width: 800 - :alt: Wiring diagram for connection of hub motor to Tinymovr + :alt: Wiring diagram for connection of hub motor to Tinymovr R5.1 Units @@ -53,7 +58,7 @@ In the context of Tinymovr motor control, reference frames are essential for und The diagram below illustrates the flow of data from the physical sensors through various observers and frames, finally reaching the motor. -.. image:: reference_frames.jpg +.. image:: reference_frames.png :width: 800 :alt: Diagram of the reference frames used in the firmware @@ -117,7 +122,7 @@ The value of 300Hz in bandwidth is the default value configured based on the cha Sensor Configuration ******************** -The sensor configuration cinsists of two steps. The first step concerns the setup of the individual sensors being used, and the second step concerns sensor selection. The corresponding sections in the device spec are `tmx.sensors.setup`, and `tmx.sensors.select`. +The sensor configuration consists of two steps. The first step concerns the setup of the individual sensors being used, and the second step concerns sensor selection. The corresponding sections in the device spec are `tmx.sensors.setup`, and `tmx.sensors.select`. Sensor Setup ============ @@ -160,15 +165,14 @@ Then, configure the external sensor type as follows: .. code-block:: python - tmx.encoder.type = 1 - tmx.encoder.bandwidth = 100 + tmx.sensors.setup.external_spi.type = AS5047 Then select the `EXTERNAL_SPI` sensor for each of the position and commutation sensors: .. code-block:: python - tmx.encoder.type = 1 - tmx.encoder.bandwidth = 100 + tmx.sensors.select.commutation_sensor.connection = EXTERNAL_SPI + tmx.sensors.select.position_sensor.connection = EXTERNAL_SPI At this point, you are ready to perform motor/sensor calibration. This will measure the R and L values of the motor, derive frame transforms and eccentricity compensation tables. @@ -193,7 +197,7 @@ Once you have determined that the motor behaves as expected, set to idle and per tmx.save_config() Hall Effect Sensor -============= +================== Ensure the hardware is properly connected. @@ -201,10 +205,12 @@ Then select the `HALL` sensor for each of the position and commutation sensors, .. code-block:: python - tmx.encoder.type = 1 - tmx.encoder.bandwidth = 100 + tmx.sensors.select.commutation_sensor.connection = HALL + tmx.sensors.select.position_sensor.connection = HALL + tmx.sensors.select.commutation_sensor.bandwidth = 200 + tmx.sensors.select.position_sensor.bandwidth = 20 -This sets the type to Hall effect sensor, and the observer bandwidth to 100Hz. +This sets the type to Hall effect sensor, and each of the commutation and position observer bandwidths. The commutation observer is set to a higher bandwidth value, in order to ensure that commutation is accurate and a runoff scenario is avoided. Next, you need to set the motor pole pairs: @@ -212,16 +218,17 @@ Next, you need to set the motor pole pairs: tmx.motor.pole_pairs = 15 -Next comes tuning of gains. Gains are determined on the resolution of a full mechanical turn fo the motor. When using the onboard magnetic sensor, the resolution is fixed to 8192 ticks. However, when using the Hall effect sensor, the mechanical resolution is variable, and amounts to `6 * pole_pair_count`. As such, if you have a 15 pp motor, your mechanical resolution would be 90. +Next comes tuning of gains. Gains are determined on the tick count of a full mechanical turn of the motor. When using the an absolute sensor, the tick count is fixed to 8192 ticks (the resolution can be higher as the tick count is a floating point value). -Because of this vast change in resolution (almost 2 orders of magnitude), the gains need to be updated: +When using the Hall effect sensor, the tick count is defined as 8192 ticks in an electrical cycle. Thus, your mechanical cycle tick count is variable, depending on the pole pair count of your motor. +Because of this it is possible that the gains need to be updated. Below we present an example of values that work well with a 15 pp hoverboard motor: .. code-block:: python tmx.controller.position.p_gain = 5 - tmx.controller.velocity.p_gain = 0.07 + tmx.controller.velocity.p_gain = 0.00001 -The values above are just an example using a 15 pp hoverboard motor. For your own motor, you need to determine these experimentally. In position control mode, start by raising the default velocity gain until your motor experiences oscillations. The back up by a factor of two, and repeat the same for position control. This simple tuning heuristic does not result in an optimal configuration but the gains are workable. +For your own motor, you need to determine these experimentally. Take a look at :ref:`Tuning` for more information. At this point, you are ready to perform motor/sensor calibration. This will measure the R and L values of the motor, as well as the hall effect sensor sequence. @@ -229,7 +236,7 @@ At this point, you are ready to perform motor/sensor calibration. This will meas tmx.controller.calibrate() -After calibration finishes, you should be able to control the motor: +After calibration finishes, you should be able to control the motor. Note that the default reference frame for the hall sensors maps to 8192 ticks per motor electrical cycle. You can change this by modifying the .. code-block:: python @@ -246,7 +253,7 @@ Once you have determined that the motor behaves as expected, set to idle and per tmx.save_config() -Observer bandwidth +Observer Bandwidth ****************** Tinymovr uses a second order observer that filters readings from the sensors, and maintains a position and velocity state. The bandwidth value corresponds to the desired observer bandwidth. It is a configurable value and depends on the dynamics that you wish to achieve with your motor. Keep in mind that high bandwidth values used with motors with fewer pole pairs will make the motors oscillate around the setpoint and have a rough tracking performance (perceivable "knocks" when the rotor moves). On the other hand, too low of a bandwidth value may cause the motor to lose tracking in highly dynamic motions. If you are certain such motions will not be possible (e.g. in heavy moving platforms) you may reduce the bandwidth to ensure smoother motion. \ No newline at end of file From 244b8578be2120afd18be0a591dd25a3f22066d6 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 20 Mar 2024 19:27:37 +0200 Subject: [PATCH 108/219] add get config implementations --- firmware/src/sensor/as5047.c | 3 ++- firmware/src/sensor/hall.c | 3 ++- firmware/src/sensor/ma7xx.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 122d6c98..a72b25c1 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -71,5 +71,6 @@ void as5047p_reset(Sensor *s) void as5047p_get_ss_config(Sensor *s, void* buffer) { - + const AS5047PSensor *ss = ((const AS5047PSensor *)s); + memcpy(buffer, &(ss->config), sizeof(ss->config)); } \ No newline at end of file diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 2af795b7..84308a6d 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -148,5 +148,6 @@ bool hall_calibrate_sequence(Sensor *s, Observer *o) void hall_get_ss_config(Sensor *s, void* buffer) { - + const HallSensor *ss = ((const HallSensor *)s); + memcpy(buffer, &(ss->config), sizeof(ss->config)); } \ No newline at end of file diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index fc0099f3..68bfc2ea 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -72,5 +72,6 @@ void ma7xx_reset(Sensor *s) void ma7xx_get_ss_config(Sensor *s, void* buffer) { - + const MA7xxSensor *ss = ((const MA7xxSensor *)s); + memcpy(buffer, &(ss->config), sizeof(ss->config)); } From 21d613fbcb7b2c35ec13c64b904ed1e374ee48b1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 21 Mar 2024 11:26:12 +0200 Subject: [PATCH 109/219] remove unused functions --- firmware/src/nvm/flash_func.c | 56 ----------------------------------- firmware/src/nvm/flash_func.h | 2 -- 2 files changed, 58 deletions(-) diff --git a/firmware/src/nvm/flash_func.c b/firmware/src/nvm/flash_func.c index 13233a89..c015dd4e 100644 --- a/firmware/src/nvm/flash_func.c +++ b/firmware/src/nvm/flash_func.c @@ -157,60 +157,4 @@ PAC5XXX_RAMFUNC void flash_write(uint8_t *p_dest, uint8_t *p_src, uint32_t size_ } -//================================================================================================ -/// @brief Write to Flash location that is 16 byte aligned with a mulitple of 4 words -/// -/// @note Pay careful attention to alignment destination and source addresses along with -/// the number of words to write. If these are not correct and Error will be returned -/// -/// @param p_dest: pointer to destination Flash to write, must be 16 byte aligned -/// @param p_src: pointer to source buffer to write, must be 32-bit aligned -/// @param size_32bit_words: size in 32-bit words of the Flash to write, must be a multiple of 4 -/// -/// @retval PAC5XXX_OK: All is OK, PAC5XXX_ERROR: An error occurred -/// -//================================================================================================= -TM_RAMFUNC uint32_t flash_write_16byte_aligned(uint32_t *p_dest, uint32_t *p_src, uint32_t size_32bit_words) -{ - - // If destination is not 16-byte aligned OR source isn't 32-bit aligned OR size is not a multiple of 16 bytes, then return an error - if( ((uint32_t)p_dest & 0xF) || ((uint32_t)p_src & 0x3) || (size_32bit_words % 4) ) - return PAC5XXX_ERROR; - - // Enable Write Access to FLash Controller - PAC55XX_MEMCTL->FLASHLOCK = FLASH_LOCK_ALLOW_WRITE_ERASE_FLASH; - - // Ensure Flash write Word Count starts at 0 - PAC55XX_MEMCTL->MEMCTL.WRITEWORDCNT = 0; - - // Write data buffer to FLASH - for(uint32_t i = 0; i < size_32bit_words; i++) - { - p_dest[i] = p_src[i]; - } - - // Make sure were not still busy writing and add delay before allowing read/fetch access to flash - while(PAC55XX_MEMCTL->MEMSTATUS.WBUSY) { } // wait for Flash Write WBUSY bit to be 0 - pac_delay_asm_ramfunc(320); // delay 20uS after WBUSY=0 - - // Disable Write Access to FLash Controller - PAC55XX_MEMCTL->FLASHLOCK = 0; - - return PAC5XXX_OK; -} - -//============================================================================== -/// -/// @brief Write Flash with a single 32bit value -/// -/// @param dest_addr: Flash Destination address ( Should be A multiple of 4 ) -/// @param data: 32-bit data to be programmed -/// -/// @retval None -/// -//============================================================================== -TM_RAMFUNC void flash_write_word(uint32_t * p_dest, uint32_t value) -{ - flash_write((uint8_t *)p_dest, (uint8_t *)&value, 4); // Destination, Source, size_bytes -} diff --git a/firmware/src/nvm/flash_func.h b/firmware/src/nvm/flash_func.h index d9ed7b92..281018e0 100644 --- a/firmware/src/nvm/flash_func.h +++ b/firmware/src/nvm/flash_func.h @@ -22,6 +22,4 @@ extern void flash_erase_page(uint32_t page_num); extern void flash_erase_key(uint32_t key); extern void flash_write(uint8_t *p_dest, uint8_t *p_src, uint32_t size_bytes); extern void flash_write_word(uint32_t * p_dest, uint32_t value); -extern uint32_t flash_write_16byte_aligned(uint32_t *p_dest, uint32_t *p_src, uint32_t size_32bit_words); -extern uint32_t write_flash(uint32_t dest_addr, uint32_t num_words, uint32_t *src); #endif From 9f16f9c9279a636d778fab4ee7c530226a36892f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 21 Mar 2024 11:38:44 +0200 Subject: [PATCH 110/219] erase as many pages as needed --- firmware/src/nvm/nvm.c | 5 ++++- firmware/src/nvm/nvm.h | 8 +++++--- firmware/src/utils/utils.h | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index 5e82eb71..a6f35222 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -79,7 +79,10 @@ void nvm_erase(void) { if (CONTROLLER_STATE_IDLE == controller_get_state()) { - flash_erase_page(SETTINGS_PAGE); + for (uint8_t i=0; i #include -#define SETTINGS_PAGE (120) -#define SETTINGS_PAGE_HEX (0x0001E000) - struct NVMStruct { uint8_t node_id_1; uint8_t node_id_2; @@ -43,6 +40,11 @@ struct NVMStruct { char version[16]; }; +#define SETTINGS_PAGE (120) +#define SETTINGS_PAGE_HEX (0x0001E000) +#define NVM_PAGE_SIZE (1024) +#define SETTINGS_PAGE_COUNT (DIVIDE_AND_ROUND_UP(sizeof(struct NVMStruct), NVM_PAGE_SIZE)) + extern const uint32_t config_size; bool nvm_save_config(void); diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index 498d9a0a..22db35fb 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -22,6 +22,8 @@ #include "src/common.h" +#define DIVIDE_AND_ROUND_UP(numerator, divisor) (((numerator) + (divisor) - 1) / (divisor)) + extern void wait_for_control_loop_interrupt(void); #if __ARM_FEATURE_FMA && __ARM_FP&4 && !__SOFTFP__ && !BROKEN_VFP_ASM From 634af52a6bba21f3e963a2d582cf8b54663360ca Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 26 Mar 2024 19:00:08 +0200 Subject: [PATCH 111/219] use separate update params function --- firmware/src/observer/observer.c | 15 +++++++++++---- firmware/src/observer/observer.h | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 4f5789ec..8b0c16cd 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -35,6 +35,14 @@ bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c) return true; } +void observer_update_params(Observer *o) +{ + o->config.kp = 2.0f * o->config.track_bw; + o->config.ki = 0.25f * (o->config.kp * o->config.kp); + o->config.kp_period = o->config.kp * PWM_PERIOD_S; + o->config.ki_period = o->config.ki * PWM_PERIOD_S; +} + float observer_get_bandwidth(Observer *o) { return o->config.track_bw; @@ -45,10 +53,7 @@ void observer_set_bandwidth(Observer *o, float bw) if (bw > 0.0f) { o->config.track_bw = bw; - o->config.kp = 2.0f * o->config.track_bw; - o->config.ki = 0.25f * (o->config.kp * o->config.kp); - o->config.kp_period = o->config.kp * PWM_PERIOD_S; - o->config.ki_period = o->config.ki * PWM_PERIOD_S; + observer_update_params(o); } } @@ -68,6 +73,8 @@ void observers_restore_config(ObserversConfig *_config) { commutation_observer.config = _config->config_commutation; position_observer.config = _config->config_position; + observer_update_params(&commutation_observer); + observer_update_params(&position_observer); } void commutation_observer_set_bandwidth(float bw) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index 3cb9cdc0..c4bc4660 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -54,6 +54,7 @@ Observer position_observer; bool observer_init_with_defaults(Observer *o, Sensor **s); bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c); +void observer_update_params(Observer *o); float observer_get_bandwidth(Observer *o); void observer_set_bandwidth(Observer *o, float bw); From 3ede56ee19d93f201998b9d69eaf11c1171f3a27 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 26 Mar 2024 19:00:39 +0200 Subject: [PATCH 112/219] remove unneeded declarations --- firmware/src/sensor/as5047.c | 1 - firmware/src/sensor/as5047.h | 2 -- firmware/src/sensor/hall.h | 2 -- firmware/src/sensor/ma7xx.c | 1 - firmware/src/sensor/ma7xx.h | 2 -- firmware/src/sensor/sensors.c | 2 -- 6 files changed, 10 deletions(-) diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index a72b25c1..d5309792 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -20,7 +20,6 @@ #include #include #include -#include #include void as5047p_make_blank_sensor(Sensor *s) diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index f7a7524b..afd86c18 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -29,8 +29,6 @@ #define AS5047_MIN_ALLOWED_DELTA_ADD (-AS5047_MAX_ALLOWED_DELTA + AS5047_TICKS) #define AS5047_MIN_ALLOWED_DELTA_SUB (-AS5047_MAX_ALLOWED_DELTA - AS5047_TICKS) -typedef struct Observer Observer; - typedef enum { AS5047P_CMD_NOP = 0x0000, AS5047P_CMD_READ_ANGLE = 0x3FFF // Adjust based on the AS5047P datasheet diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index 640e77c0..a3c39dce 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -26,8 +26,6 @@ static const float twopi_by_hall_sectors = TWOPI / HALL_SECTORS; -typedef struct Observer Observer; - typedef struct { uint8_t sector_map[8]; diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 68bfc2ea..0cc4a9f7 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -20,7 +20,6 @@ #include #include #include -#include #include void ma7xx_make_blank_sensor(Sensor *s) diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 128ca7a7..21cf8beb 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -29,8 +29,6 @@ #define MA7XX_MIN_ALLOWED_DELTA_ADD (-MA7XX_MAX_ALLOWED_DELTA + MA7XX_TICKS) #define MA7XX_MIN_ALLOWED_DELTA_SUB (-MA7XX_MAX_ALLOWED_DELTA - MA7XX_TICKS) -typedef struct Observer Observer; - typedef enum { MA_CMD_NOP = 0x0000, MA_CMD_ANGLE = 0x0000, diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index c9c11108..f4af560f 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -109,8 +109,6 @@ void sensors_get_config(SensorsConfig *config_) void sensors_restore_config(SensorsConfig *config_) { - // Assuming there are functions to set the commutation and position sensor pointers - // based on the sensor_connection_t value. If not, this part needs to be adapted. sensor_set_pointer_with_connection(&commutation_sensor_p, config_->commutation_connection); sensor_set_pointer_with_connection(&position_sensor_p, config_->position_connection); From c8f0a8f59880e7aa26d2d40b077e671a2588e57e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 26 Mar 2024 19:00:46 +0200 Subject: [PATCH 113/219] init all members --- firmware/src/xfs.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/firmware/src/xfs.c b/firmware/src/xfs.c index ad94e4cb..ba1f4939 100644 --- a/firmware/src/xfs.c +++ b/firmware/src/xfs.c @@ -4,5 +4,11 @@ FramesConfig frames = { .position_sensor_to_user = DEFAULT_TRANSFORM, - .user_to_position_sensor = DEFAULT_TRANSFORM + .user_to_position_sensor = DEFAULT_TRANSFORM, + .position_sensor_to_motor = DEFAULT_TRANSFORM, + .motor_to_position_sensor = DEFAULT_TRANSFORM, + .commutation_sensor_to_motor = DEFAULT_TRANSFORM, + .motor_to_commutation_sensor = DEFAULT_TRANSFORM, + .motor_to_user = DEFAULT_TRANSFORM, + .user_to_motor = DEFAULT_TRANSFORM }; From 818898e36a2c8ee225d87cf99316121094856d1b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 26 Mar 2024 19:01:06 +0200 Subject: [PATCH 114/219] add initial amt22 support --- firmware/src/sensor/amt22.c | 75 +++++++++++++++++++++++++++++ firmware/src/sensor/amt22.h | 91 +++++++++++++++++++++++++++++++++++ firmware/src/sensor/sensors.c | 8 +++ firmware/src/sensor/sensors.h | 3 ++ 4 files changed, 177 insertions(+) create mode 100644 firmware/src/sensor/amt22.c create mode 100644 firmware/src/sensor/amt22.h diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c new file mode 100644 index 00000000..0dc5d563 --- /dev/null +++ b/firmware/src/sensor/amt22.c @@ -0,0 +1,75 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#include +#include +#include +#include +#include +#include + +void amt22_make_blank_sensor(Sensor *s) +{ + s->config.type = SENSOR_TYPE_AMT22; + s->bits = AMT22_BITS; + s->ticks = AMT22_TICKS; + s->normalization_factor = SENSOR_COMMON_RES_TICKS_FLOAT / s->ticks; + s->get_raw_angle_func = amt22_get_raw_angle; + s->update_func = amt22_update; + s->prepare_func = amt22_send_angle_cmd; + s->reset_func = amt22_reset; + s->deinit_func = amt22_deinit; + s->get_errors_func = amt22_get_errors; + s->is_calibrated_func = amt22_is_calibrated; + s->get_ss_config_func = amt22_get_ss_config; +} + +bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { + AMT22SensorConfig c = {0}; + c.ssp_port = port; + c.ssp_struct = ssp_struct; + return amt22_init_with_config(s, &c); +} + +bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) { + AMT22Sensor *as = (AMT22Sensor *)s; + as->config = *c; + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 1, 0); + delay_us(10000); // Example delay, you might need to adjust this based on the AMT22's datasheet or your specific hardware setup + + amt22_send_angle_cmd(s); // This function might need to be adjusted if AMT22 uses different commands or procedures to initiate angle measurement + amt22_update(s, false); // Update function will likely need adjustments for reading and interpreting AMT22 data correctly + s->initialized = true; + return true; +} + +void amt22_deinit(Sensor *s) +{ + ssp_deinit(((AMT22Sensor *)s)->config.ssp_port); + s->initialized = false; +} + +void amt22_reset(Sensor *s) +{ + sensor_reset(s); +} + +void amt22_get_ss_config(Sensor *s, void* buffer) +{ + const AMT22Sensor *ss = ((const AMT22Sensor *)s); + memcpy(buffer, &(ss->config), sizeof(ss->config)); +} diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h new file mode 100644 index 00000000..c7705544 --- /dev/null +++ b/firmware/src/sensor/amt22.h @@ -0,0 +1,91 @@ + +// * This file is part of the Tinymovr-Firmware distribution +// * (https://github.com/yconst/tinymovr-firmware). +// * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, version 3. +// * +// * This program is distributed in the hope that it will be useful, but +// * WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// * General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see . + +#pragma once + +#include +#include +#include + +#define AMT22_BITS (14) // Assuming a 14-bit resolution for consistency +#define AMT22_TICKS (1 << AMT22_BITS) +#define AMT22_MAX_ALLOWED_DELTA (AMT22_TICKS / 6) +#define AMT22_MAX_ALLOWED_DELTA_ADD (AMT22_MAX_ALLOWED_DELTA + AMT22_TICKS) +#define AMT22_MAX_ALLOWED_DELTA_SUB (AMT22_MAX_ALLOWED_DELTA - AMT22_TICKS) +#define AMT22_MIN_ALLOWED_DELTA_ADD (-AMT22_MAX_ALLOWED_DELTA + AMT22_TICKS) +#define AMT22_MIN_ALLOWED_DELTA_SUB (-AMT22_MAX_ALLOWED_DELTA - AMT22_TICKS) + +typedef struct Observer Observer; + +// Define commands relevant to the AMT22 here. For simplicity, removed commands specific to the AS5047. +typedef enum { + AMT22_CMD_READ_ANGLE = 0xFFFF // Placeholder command; update based on the AMT22 datasheet +} AMT22Command; + +typedef struct +{ + SSP_TYPE ssp_port; + PAC55XX_SSP_TYPEDEF *ssp_struct; + // Add any additional configuration parameters needed for AMT22 +} AMT22SensorConfig; + +typedef struct +{ + Sensor base; + AMT22SensorConfig config; + uint8_t errors; + int32_t angle; +} AMT22Sensor; + +void amt22_make_blank_sensor(Sensor *s); +bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); +bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c); +void amt22_deinit(Sensor *s); +void amt22_reset(Sensor *s); +void amt22_get_ss_config(Sensor *s, void* buffer); + +static inline bool amt22_is_calibrated(const Sensor *s) +{ + return s->config.rec_calibrated; +} + +static inline uint8_t amt22_get_errors(const Sensor *s) +{ + return ((const AMT22Sensor *)s)->errors; +} + +static inline void amt22_send_angle_cmd(const Sensor *s) +{ + ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); +} + +static inline int32_t amt22_get_raw_angle(const Sensor *s) +{ + return ((const AMT22Sensor *)s)->angle; +} + +static inline void amt22_update(Sensor *s, bool check_error) +{ + AMT22Sensor *as = (AMT22Sensor *)s; + volatile uint16_t read_value = ssp_read_one(as->config.ssp_struct); + const int32_t angle = read_value & 0x3FFF; // Mask to get the angle value, assuming 14-bit resolution + if (check_error) + { + // Implement error checking specific to the AMT22, if necessary + } + as->angle = angle; +} diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index f4af560f..ebce6f4f 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -45,6 +45,10 @@ bool sensor_init_with_defaults(Sensor *s) as5047p_make_blank_sensor(s); return as5047p_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); break; + case SENSOR_TYPE_AMT22: + amt22_make_blank_sensor(s); + return amt22_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; default: break; } @@ -75,6 +79,10 @@ bool sensor_init_with_configs(Sensor *s, SensorConfig *sc, GenSensorConfig *gsc) as5047p_make_blank_sensor(s); return as5047p_init_with_config(s, &(gsc->as5047p_sensor_config)); break; + case SENSOR_TYPE_AMT22: + amt22_make_blank_sensor(s); + return amt22_init_with_config(s, &(gsc->amt22_sensor_config)); + break; default: break; } diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 7eb78e3e..7846fb8c 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #define SENSOR_COUNT 3 @@ -36,6 +37,7 @@ typedef union MA7xxSensor ma7xx_sensor; HallSensor hall_sensor; AS5047PSensor as5047p_sensor; + AMT22Sensor amt22_sensor; } GenSensor; typedef union @@ -43,6 +45,7 @@ typedef union MA7xxSensorConfig ma7xx_sensor_config; HallSensorConfig hall_sensor_config; AS5047PSensorConfig as5047p_sensor_config; + AMT22SensorConfig amt22_sensor_config; } GenSensorConfig; typedef struct From 48d53bd253b832d8e1cb8972995afee234ad1761 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 27 Mar 2024 18:11:10 +0200 Subject: [PATCH 115/219] minor fixes --- firmware/src/sensor/amt22.c | 8 ++++---- firmware/src/sensor/amt22.h | 9 +++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index 0dc5d563..a62c8a2d 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -48,11 +48,11 @@ bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) { AMT22Sensor *as = (AMT22Sensor *)s; as->config = *c; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 1, 0); - delay_us(10000); // Example delay, you might need to adjust this based on the AMT22's datasheet or your specific hardware setup + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 0, 0); + delay_us(10000); - amt22_send_angle_cmd(s); // This function might need to be adjusted if AMT22 uses different commands or procedures to initiate angle measurement - amt22_update(s, false); // Update function will likely need adjustments for reading and interpreting AMT22 data correctly + amt22_send_angle_cmd(s); + amt22_update(s, false); s->initialized = true; return true; } diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index c7705544..080a7bc6 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -29,18 +29,14 @@ #define AMT22_MIN_ALLOWED_DELTA_ADD (-AMT22_MAX_ALLOWED_DELTA + AMT22_TICKS) #define AMT22_MIN_ALLOWED_DELTA_SUB (-AMT22_MAX_ALLOWED_DELTA - AMT22_TICKS) -typedef struct Observer Observer; - -// Define commands relevant to the AMT22 here. For simplicity, removed commands specific to the AS5047. typedef enum { - AMT22_CMD_READ_ANGLE = 0xFFFF // Placeholder command; update based on the AMT22 datasheet + AMT22_CMD_READ_ANGLE = 0xFFFF } AMT22Command; typedef struct { SSP_TYPE ssp_port; PAC55XX_SSP_TYPEDEF *ssp_struct; - // Add any additional configuration parameters needed for AMT22 } AMT22SensorConfig; typedef struct @@ -82,7 +78,8 @@ static inline void amt22_update(Sensor *s, bool check_error) { AMT22Sensor *as = (AMT22Sensor *)s; volatile uint16_t read_value = ssp_read_one(as->config.ssp_struct); - const int32_t angle = read_value & 0x3FFF; // Mask to get the angle value, assuming 14-bit resolution + // TODO: Add parity check + const int32_t angle = read_value & 0x3FFF; if (check_error) { // Implement error checking specific to the AMT22, if necessary From 7afb8682637e23b1b6264f5ad145604be174f159 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Apr 2024 12:47:41 +0300 Subject: [PATCH 116/219] update tests for new firmware --- studio/Python/tests/test_board.py | 61 ++++++++++++------------ studio/Python/tests/test_board_config.py | 51 ++++++++++++++++++++ 2 files changed, 81 insertions(+), 31 deletions(-) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 6316d2ca..8bc652fe 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -28,17 +28,17 @@ A = ureg.ampere ticks = ureg.ticks s = ureg.second -tsleep = 0.19 +tsleep = 0.20 class TestBoard(TMTestCase): - def test_a_encoder(self): + def test_a_sensor_readings(self): """ - Test encoder readings + Test sensor readings """ pos_estimates = [] for _ in range(500): - pos_estimates.append(self.tm.encoder.position_estimate) + pos_estimates.append(self.tm.sensors.user_frame.position_estimate) time.sleep(0.001) # apparently the statistics lib works with quantities only self.assertLess(st.pstdev(pos_estimates) * ticks, 5 * ticks) @@ -92,7 +92,7 @@ def test_d_position_control(self): self.tm.controller.position.setpoint = i * 1000 * ticks time.sleep(tsleep) self.assertAlmostEqual( - i * 1000 * ticks, self.tm.encoder.position_estimate, delta=1000 * ticks + i * 1000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) def test_e_velocity_control(self): @@ -112,25 +112,25 @@ def test_e_velocity_control(self): target = i * 20000 * ticks / s self.tm.controller.velocity.setpoint = target time.sleep(tsleep) - velocity_pairs.append((target, self.tm.encoder.velocity_estimate)) + velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): target = (R - i) * 20000 * ticks / s self.tm.controller.velocity.setpoint = target time.sleep(tsleep) - velocity_pairs.append((target, self.tm.encoder.velocity_estimate)) + velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): target = -i * 20000 * ticks / s self.tm.controller.velocity.setpoint = target time.sleep(tsleep) - velocity_pairs.append((target, self.tm.encoder.velocity_estimate)) + velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): target = (i - R) * 20000 * ticks / s self.tm.controller.velocity.setpoint = target time.sleep(tsleep) - velocity_pairs.append((target, self.tm.encoder.velocity_estimate)) + velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for target, estimate in velocity_pairs: self.assertAlmostEqual(target, estimate, delta=30000 * ticks / s) @@ -144,14 +144,14 @@ def test_f_random_pos_control(self): self.tm.controller.position_mode() self.check_state(2) - for _ in range(10): + for _ in range(15): new_pos = random.uniform(-24000, 24000) self.tm.controller.position.setpoint = new_pos * ticks time.sleep(0.35) self.assertAlmostEqual( - self.tm.encoder.position_estimate, + self.tm.sensors.user_frame.position_estimate, self.tm.controller.position.setpoint, - delta=1900 * ticks, + delta=2000 * ticks, ) def test_g_limits(self): @@ -176,14 +176,14 @@ def test_g_limits(self): time.sleep(0.5) self.assertAlmostEqual( 30000 * ticks / s, - self.tm.encoder.velocity_estimate, + self.tm.sensors.user_frame.velocity_estimate, delta=5000 * ticks / s, ) self.tm.controller.velocity.setpoint = -400000 * ticks / s time.sleep(0.5) self.assertAlmostEqual( -30000 * ticks / s, - self.tm.encoder.velocity_estimate, + self.tm.sensors.user_frame.velocity_estimate, delta=5000 * ticks / s, ) @@ -242,35 +242,34 @@ def test_j_gimbal_mode(self): for i in range(10): self.tm.controller.position.setpoint = i * 1000 * ticks - time.sleep(0.2) + time.sleep(0.3) self.assertAlmostEqual( - i * 1000 * ticks, self.tm.encoder.position_estimate, delta=1000 * ticks + i * 1000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) - time.sleep(0.4) - def test_k_rotor_offset_and_direction(self): + def test_k_rotor_offset_and_multiplier(self): """ - Test rotor offset and direction + Test rotor offset and multiplier """ self.check_state(0) self.try_calibrate() self.tm.controller.position_mode() self.check_state(2) - self.assertEqual(self.tm.motor.offset, 0) - self.assertEqual(self.tm.motor.direction, 1) + self.assertEqual(self.tm.sensors.user_frame.offset, 0) + self.assertEqual(self.tm.sensors.user_frame.multiplier, 1) - offset = self.tm.encoder.position_estimate - self.tm.motor.offset = offset - self.assertAlmostEqual(self.tm.encoder.position_estimate, 0, delta=100) + offset = self.tm.sensors.user_frame.position_estimate + self.tm.sensors.user_frame.offset = offset + self.assertAlmostEqual(self.tm.sensors.user_frame.position_estimate, 0, delta=100) - self.tm.motor.direction = -1 - self.assertAlmostEqual(self.tm.encoder.position_estimate, 0, delta=100) + self.tm.sensors.user_frame.multiplier = -1 + self.assertAlmostEqual(self.tm.sensors.user_frame.position_estimate, 0, delta=100) self.tm.controller.position.setpoint = offset time.sleep(0.5) - self.tm.motor.offset = 0 - self.tm.motor.direction = -1 + self.tm.sensors.user_frame.offset = 0 + self.tm.sensors.user_frame.multiplier = -1 self.assertAlmostEqual(self.tm.controller.position.setpoint, 0, delta=100) # def test_l_read_write_endpoints(self): @@ -317,7 +316,7 @@ def test_m_recalibrate(self): self.tm.controller.position_mode() pos_estimates = [] for k in range(50): - pos_estimates.append(self.tm.encoder.position_estimate) + pos_estimates.append(self.tm.sensors.user_frame.position_estimate) time.sleep(0.05) self.tm.controller.idle() self.assertLess(st.pstdev(pos_estimates) * ticks, 100 * ticks) @@ -340,7 +339,7 @@ def test_n_velocity_ramp(self): self.tm.controller.velocity_mode() self.tm.controller.velocity.setpoint = 200000 for k in range(100): - vel_estimates.append(self.tm.encoder.velocity_estimate.magnitude) + vel_estimates.append(self.tm.sensors.user_frame.velocity_estimate.magnitude) t_points.append(k * interval) time.sleep(interval) self.tm.controller.idle() @@ -355,7 +354,7 @@ def test_o_composite_set_get(self): # Ensure we're idle self.check_state(0) self.try_calibrate() - pos_estimate_ref = self.tm.encoder.position_estimate + pos_estimate_ref = self.tm.sensors.user_frame.position_estimate pos_estimate_comp = self.tm.controller.set_pos_vel_setpoints(0, 0) * ticks self.assertAlmostEqual(pos_estimate_ref, pos_estimate_comp, delta=200*ticks) diff --git a/studio/Python/tests/test_board_config.py b/studio/Python/tests/test_board_config.py index f9f8dd9c..b5be5e1f 100644 --- a/studio/Python/tests/test_board_config.py +++ b/studio/Python/tests/test_board_config.py @@ -27,6 +27,7 @@ A = ureg.ampere tick = ureg.ticks s = ureg.second +tsleep = 0.20 class TestBoardConfig(TMTestCase): @@ -111,6 +112,56 @@ def test_c_parameter_persistence(self): self.tm.erase_config() time.sleep(0.2) + def test_d_position_control_w_loaded_config(self): + """ + Test position control after saving and loading config. + WARNING: This will perform one NVRAM write and two erase cycles. + """ + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.try_calibrate() + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(15): + new_pos = random.uniform(-24000, 24000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.controller.idle() + + time.sleep(0.1) + + self.tm.save_config() + + time.sleep(0.2) + + self.reset_and_wait() + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(15): + new_pos = random.uniform(-24000, 24000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + if __name__ == "__main__": unittest.main() From 2b806984bef95476211a9d0c40edd0e1f548039a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Apr 2024 12:48:00 +0300 Subject: [PATCH 117/219] refactor sensor initialization --- firmware/src/sensor/sensors.c | 59 ++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index ebce6f4f..d4c30302 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -21,40 +21,74 @@ GenSensor sensors[SENSOR_COUNT] = {0}; -bool sensor_init_with_defaults(Sensor *s) +void sensor_make_blank(Sensor *s) { // Here we check the sensor connection, either // ONBOARD, EXTERNAL_SPI or EXTERNAL_HALL. We need // to do this here in order to set up the config // struct accordingly. + s->initialized = false; sensor_connection_t connection = sensor_get_connection(s); switch (connection) { case SENSOR_CONNECTION_ONBOARD_SPI: ma7xx_make_blank_sensor(s); - return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); break; case SENSOR_CONNECTION_EXTERNAL_SPI: switch (s->config.type) { case SENSOR_TYPE_MA7XX: ma7xx_make_blank_sensor(s); - return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); break; case SENSOR_TYPE_AS5047: as5047p_make_blank_sensor(s); - return as5047p_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); break; case SENSOR_TYPE_AMT22: amt22_make_blank_sensor(s); - return amt22_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); break; default: + ma7xx_make_blank_sensor(s); break; } break; case SENSOR_CONNECTION_HALL: hall_make_blank_sensor(s); + break; + default: + break; + } +} + +bool sensor_init_with_defaults(Sensor *s) +{ + sensor_make_blank(s); + // Here we check the sensor connection, either + // ONBOARD, EXTERNAL_SPI or EXTERNAL_HALL. We need + // to do this here in order to set up the config + // struct accordingly. + sensor_connection_t connection = sensor_get_connection(s); + switch (connection) + { + case SENSOR_CONNECTION_ONBOARD_SPI: + return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); + break; + case SENSOR_CONNECTION_EXTERNAL_SPI: + switch (s->config.type) + { + case SENSOR_TYPE_MA7XX: + return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + case SENSOR_TYPE_AS5047: + return as5047p_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + case SENSOR_TYPE_AMT22: + return amt22_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + break; + default: + break; + } + break; + case SENSOR_CONNECTION_HALL: return hall_init_with_defaults(s); break; default: @@ -65,22 +99,19 @@ bool sensor_init_with_defaults(Sensor *s) bool sensor_init_with_configs(Sensor *s, SensorConfig *sc, GenSensorConfig *gsc) { + sensor_make_blank(s); switch (sc->type) { case SENSOR_TYPE_MA7XX: - ma7xx_make_blank_sensor(s); return ma7xx_init_with_config(s, &(gsc->ma7xx_sensor_config)); break; case SENSOR_TYPE_HALL: - hall_make_blank_sensor(s); return hall_init_with_config(s, &(gsc->hall_sensor_config)); break; case SENSOR_TYPE_AS5047: - as5047p_make_blank_sensor(s); return as5047p_init_with_config(s, &(gsc->as5047p_sensor_config)); break; case SENSOR_TYPE_AMT22: - amt22_make_blank_sensor(s); return amt22_init_with_config(s, &(gsc->amt22_sensor_config)); break; default: @@ -92,8 +123,8 @@ bool sensor_init_with_configs(Sensor *s, SensorConfig *sc, GenSensorConfig *gsc) void sensors_init_with_defaults(void) { sensor_init_with_defaults(&(sensors[0].sensor)); - ma7xx_make_blank_sensor(&(sensors[1].sensor)); - hall_make_blank_sensor(&(sensors[2].sensor)); + sensor_make_blank(&(sensors[1].sensor)); + sensor_make_blank(&(sensors[2].sensor)); commutation_sensor_p = &(sensors[0].sensor); position_sensor_p = &(sensors[0].sensor); } @@ -128,7 +159,11 @@ void sensors_restore_config(SensorsConfig *config_) && (commutation_sensor_p == &(sensors[i].sensor) || position_sensor_p == &(sensors[i].sensor))) { - sensor_init_with_configs(commutation_sensor_p, &(config_->config[i]), &(config_->ss_config[i])); + sensor_init_with_configs(&(sensors[i].sensor), &(config_->config[i]), &(config_->ss_config[i])); + } + else if (sensors[i].sensor.initialized == false) + { + sensor_make_blank(&(sensors[i].sensor)); } } } From 259548614e9a2618ddaba57aa229d0e1ef60b4d1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Apr 2024 12:48:09 +0300 Subject: [PATCH 118/219] refactor observer initialization --- firmware/src/observer/observer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 8b0c16cd..42f4331c 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -71,8 +71,8 @@ void observers_get_config(ObserversConfig *_config) void observers_restore_config(ObserversConfig *_config) { - commutation_observer.config = _config->config_commutation; - position_observer.config = _config->config_position; + observer_init_with_config(&commutation_observer, &commutation_sensor_p, &(_config->config_commutation)); + observer_init_with_config(&position_observer, &position_sensor_p, &(_config->config_position)); observer_update_params(&commutation_observer); observer_update_params(&position_observer); } From cac5428947a24c030dca85a2f454c341cab60a93 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Apr 2024 12:55:34 +0300 Subject: [PATCH 119/219] add condition to support R3.x boards --- firmware/src/sensor/sensors.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index d4c30302..f5db637a 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -72,6 +72,7 @@ bool sensor_init_with_defaults(Sensor *s) case SENSOR_CONNECTION_ONBOARD_SPI: return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); break; +#if defined BOARD_REV_R5 || defined BOARD_REV_M5 case SENSOR_CONNECTION_EXTERNAL_SPI: switch (s->config.type) { @@ -88,9 +89,11 @@ bool sensor_init_with_defaults(Sensor *s) break; } break; + case SENSOR_CONNECTION_HALL: return hall_init_with_defaults(s); break; +#endif default: break; } From 45a82b9f6a37ec65cd2cd9bc6a68ce7532171155 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 1 Apr 2024 15:49:05 +0300 Subject: [PATCH 120/219] update tests --- studio/Python/tests/test_base_function.py | 2 +- studio/Python/tests/test_rates.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/studio/Python/tests/test_base_function.py b/studio/Python/tests/test_base_function.py index a56c6837..49848f1f 100644 --- a/studio/Python/tests/test_base_function.py +++ b/studio/Python/tests/test_base_function.py @@ -32,7 +32,7 @@ def test_position_control(self): self.tm.controller.position.setpoint = i * 3000 * ticks time.sleep(0.25) self.assertAlmostEqual( - i * 3000 * ticks, self.tm.encoder.position_estimate, delta=1000 * ticks + i * 3000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) diff --git a/studio/Python/tests/test_rates.py b/studio/Python/tests/test_rates.py index 3634649c..47dcbb2b 100644 --- a/studio/Python/tests/test_rates.py +++ b/studio/Python/tests/test_rates.py @@ -33,7 +33,7 @@ def test_round_trip_time(self): elapsed_time() sum = 0 for _ in range(iterations): - sum += self.tm.encoder.position_estimate + sum += self.tm.sensors.user_frame.position_estimate res = elapsed_time() print("Round-trip time (2 packets): " + str(res / iterations) + " seconds") From 5719ab49d9dfb62e9f25fb12c29599823d1bcc84 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 02:04:57 +0300 Subject: [PATCH 121/219] update figures --- docs/sensors/AS5047_M52.jpg | Bin 0 -> 601349 bytes docs/sensors/connectors_R51.jpg | Bin 0 -> 612196 bytes docs/sensors/connectors_R52.jpg | Bin 0 -> 615825 bytes docs/sensors/hall_pinout_R51.jpg | Bin 110967 -> 0 bytes docs/sensors/hubmotor_diagram_R52.jpg | Bin 0 -> 713869 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/sensors/AS5047_M52.jpg create mode 100644 docs/sensors/connectors_R51.jpg create mode 100644 docs/sensors/connectors_R52.jpg delete mode 100644 docs/sensors/hall_pinout_R51.jpg create mode 100644 docs/sensors/hubmotor_diagram_R52.jpg diff --git a/docs/sensors/AS5047_M52.jpg b/docs/sensors/AS5047_M52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2fac2db7f1e92bf6f6a56c0062af9925e89a4d9a GIT binary patch literal 601349 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 z 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%0A4TQj4_Zl{F0!A!+GN;zA=bzk0hSm5IxoDfxn7t; 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%0Am&c?lQ$6=NJFBKTS7MszWx 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 z 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¨w?DoxwLz@KU0yh{EvjN&;az{T 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

R@;i@^8D+AIH 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 z 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

  • je!rG^Wzb}xeqRM)?MYc%9=@y?aPn|rrP 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

    ZWedi;9~GBmLnk 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�!$U1yt#vf?=W(L;s$_x10 zAK3{T9=x9?dPiR653F6^FV;l#ll^ow&hBIExRK?*r$s)*Oee^&nBNe1R1lf}oQM0Q zrHb-?kHWXIN?BJ1EC^<&yZteR};P=bA@B5sZF`bDx}^5av4i)Bx;xSk{}CzYI4 zn!`gD2C)#(RLw5}?b47C{FWrH0%)8;^afBWrynGYARwA5!Wbw5_Sn5td}!kC+qT_+ zPx%U9YKXG4gCYV%r2@lET{v}d+V5}(0yV!J)WffDqb<@qCU}`gm@AMHSY#c#-EVL8 z_V=Uwf%$tGpIEs2uy0j{IXK+=dhymZ!i^OmY}?nfHe1V;sOEhJRaIV`WU&0~aPq$S zSihZ2jpTKu6rqpQ9sW=;@X`8B(&EwG+9Cj^1Gb`vW&ab+{atf`-Wy`qz_I@Sx*&E% z{zVppb8di6UoC#3EirEAsKY%t#<_j zc?d9jFK<#b^$t?$_+pQNTd%mlw@zw~>UY4@_UXh8M>`h+2IO-IbP|A;<`*H+&0t&( zeFga(-=IiadOIv&#!=D(agVXZtl&sQX!mO)zt+{C<6iT(n!1cRK;rkK!g*j(BJ+P> z1>q%eq7S~zo}^2mZy~{TGy#{L^8?t5SYWQ^isYH`t7PFQe*q`AlkvC+f1zn54rL!X zg*V1p`STk|HinX_JRFpp8yc5izK}nEQt#ji_hQLtDIvb9j|8H7FQYH8U#VCL)9|>P zlkV19f1Y9+>aUYQ4>yi$p^?(tKI6^t6Ir3y44$g;hVqA+$42m@EZzk(9x?k$l^-Il zE`lH0pe#BbJG<6=OPcSFkccbMy}xXW*z;rO-v;Y$-rWHMez5_CbJOU9-oBi03%l!F zi_;dQ5b4&WvbxzHVo$4|y!Q<~uOVaPPdx9`^`4piO$OWM!-op{DX6y@y2^L5^4F{V zj1UD4#fD4r)7`&bv!xW#va-->yX{hCK#IU_ECyjpr5`NcTlTXm<3~Nm6&SGhbV3vewiH z{Vr+Xt|4WmuQVYhP-7JtY4FZ|M@&7?V8e*f=6`rd@#1{LQFlM|^WQ{80q>9f56A}3 z@xHgJpQD>~t*-p*Cl)o(eZu&0XIW)_hc zP#WuE=G2*i7Rujx7BFWGGBs1^!~jQekLZ^OcE>XLtZl8fl2Lk&{=d(Jcb2|*1xj%n zm;?(PRp@1VH*VI+TXKc3@K-%}u8~Sh_Nzl4)0yiPwM#pW{`uQC1KWWU;t%X`%><`? zs;JW?g8HDix;GkIe`ug^{QHD)iB7rL+c?u-c5>y>d3V^KtoF1!#+YVu9kUzu5_{}5 zqxo@a$5R$1tDwSy^&gHR@idh^sYWKD#kHdGD|F!;((yuuCtWp{Sbx1f@d0JHMN7LI z=*a&aIFsV_&wv;|p~V-QezCdp^S6Ygg!j3chMhHW>RRf*)t(j3`3@bcruJ;HSDc_o zA$M%GR@*mr4HxTnuK4Ezb-okbtxEB@zj1l_Wq|<0si7*5rh7ui=yAby^Rf#|n^nXX)hZdOU)C)I zsL%7L-LosSIm#feO$VPbElfkF_&H5=>UB&dhUdFpu-xTlRv!=}-P*_Ql`8h$v^w~H z!uF%pA8HC~fg9PW35u!`xr^4x0;Rlmcf^;$da>$|)~D3my?=ypo$fG+fSGV7DY1Ir zZW-sbv($^}y*`gMF3Dd0_^>Dbo1l%2jiG$+ zmeMzRt>!GdlhK{U(|xFQJx|5C5E=)_EVT1!m~!*iqa=n(i8*86w0s`=*`ZM9!`tyk`{37I_`tqW>VFdw?-0xe5J4c`MAl)eR3-?^8X4Smjc@;-P!prX8e_>qn+ODmx zASJESqPS!dq;=A==^5nhmb9;F&ppg^Oa?u6%u2^(EXwMuLU3H>r!ZKf$K?3Am$TK8 z#`H(c+y#YYNaNr7b>X+loi5Dj>TouRz5Vz$N!McVbp{4&n8VH|TGc+1N=p=8t@70H zTrW>7UIK0cwZf>cMuHXQN_0az|K4y1q4#Zu5`vM;+%xt3d@mF3uh!rkE-mj*e`A?M zbFK!QE5JqL@im1k;@dtWbJm20lioT6!zE`5=8R0k`=(tad3D4df4y#MyGppX_V!0p z;3FD0R+BnK%=dP?AKSNp-PRg()D`p=mm=vk-$+koiL%@_nekb}2#XaYO1_RtLU~1I z?3!KP;fp4sCpp{h)?a7vlHqOKOT#+v+lDkZ>?tcH0TzqveR$_eIccriU8zXxs6_nrVyq+jc2+gJU zw|E6|1NJz~a?rM)wSjPkq$M=8es{m?f`CR@zk8>_D#a1+ov^%1{)Ja_UmY14H60x> z$2lik&dz`yvv;NqM`1EMpHnC#J zk=7(Hd}b7zSgoP!(~6^lUt?xl`!lb?A4_Vm`=vPSr4jQv3*?_%9u9G^*^DRk(G;!e zJd}p%#3c`k=Za2!^n;>)sfHtHE5?1gvybBT;am8=xh4FIB9pw%$EWJ7IJWDU&A+;S zO%plo*LiAd0l#c541b0@w% z13``AY#ZkrloDM5@Ooii+0OL<#W^d1U1PjieV;0YJz{=7z)jr+MZ8$H8e1{b{o9SE zJ}iw0ZYbLbqKF4q; zRR!MlMk6!+sjSY2-{m5?6h3|567s{5ebWZS+!3aMfHZ2lzk3$lEJHq{OyZ)pVbxG3(<2?CHj$Qdy7=q6r3!h|gCiJk)@bI z%B-voT@cqYmE+Ahjcy%zsr!VY^s00P_$_-+#!Iane8_i;_SEJQQ$_uN!rk)K{en_k z*Uzv@XQ>$lB2XALjf7D3LZ9w}6pv-*FNtW7*4(-Jt zTMtQ2IG0_jHtC>Bbeotri7AR-`L>xe8Qq+Qx2Aoi+h+KKLwj-Nd>U)u346IOn_Hw= zTGZ5H;Zg5!-D(PZ`9^!zuLZAN;i1b7rNT+y1s)B_v1Bd$`?xsGKu!GZgUq~A-CZEi zx^gN(^2{wME9pZg-Wxh)jyV1LC3B(L?&+rKb`8xOj4qz^wMh$XA&b8Og)5rD_Zjc4 z@2?`<>#n6_BqO70O3tpD`qnB_(Ti8*u1GY{NECmjfn&p_8#Qrp%a#@3vO>Pkh323B znwRxGvq~@EzFC0IP<0RO7LfSuD%4*PkD~}o-y-lEM%O;ABu1qQ3^an`hQO2GH>l_s z^1Jxmetq%HO`$)qIK+V0QW?2R{DlQ9kc%#`L~_o>dq3(npzLcurt0FaF?|+KtB-pN z`!~>p{R@QpdSZxpvnLk+iRaxPhs9=n|z`o3gX3+<= zy{q0AvEH=`f^Rb}6={n<7`|5hboYbc&ie-2S4Y4q%d~sgQGgr4?tkJ1N1Et`mw65P zXNOfUEtRg~aldv|Qr)P5C`)p2)01{5-VTM5S-nfw%hSl5aM|YG zkDnf7v2fU4Y*)RLl}G9iOgf=7`PR^_W&4(QU%QP*c`aQjUrXxTx2UDvxoO?v-Jm(C(A9uq#gvjQ?cx-Bi^hXMz7*f8L5% zGM0E&jg*~mLE;tM)2{5qXJ99S$5~}}cS2j!wyqI#XCvlI zcbFF*>i>aV5h3o3<4Wo9sfJ+1Q}eFg4pVcXrO^lGuT6~F$J+Ud6_u9;s4R$jUlHe% zk+Az6)`ypIRTJ6o(0fNuT~6$>^C6ckesz>?gx74u*P2y%d$vO`#zA`4_6deNeQn#& z-)2CnZlBHp`uP=Xr@Z$cSQ~lt=hKZ-oY_C$zHb={RVww@{4G1q&5?Mpk5GB1ynfJ~ zvfb9!RHgWGb5zC5;$-9}!7338LPA8lSnMF9bh(#eL6RW*>Co9I?^`DhQ9JE7TCdli z?q`UKI>^v^jC2A#^5_<7L(UMrciFRidUeaatU_{B?QnG)@371@(QZLCS9#E}HcKe# zZ8mhz5EkNY8~Y_+nN2luaH9bxQx-kl>VMN>nPEQAg_QA@Y(iE8O$6Pbv{a`(m8Q14 zD1NE%4@~XVR*W%!<2_b*1Vb{D-rd4~o*Y)^Ov^vscKX7nsU72qpeOxhej-caN4dZ3 zf72wt=?c^X*DHB+?^GYZ_z8Q@PyLFRkF+&?lcE|{CeA`nYfa@G5|FSTKTcsSnabCe z#E$H+=~ne$DPE}e_!5si^hR~Rp{Rl95{YO%x!6yW{(RrpRSQ>^w`4_t>ezN`cp&!3 znhg32AX5V5m~YEZ8C&XbdhCGml4pJVeCXhn3zs5{BHE7Cy!p%~!M2LgW&z6JgEAkr zXc}fO55)`Jz4YMCgUBPwP5X}~V_xtpXMk8k2&r(I@kj%~%3hOc+h_b`wj55m4=uLu z3|;yEn0ohkrvLx{e_qN`4xQ9!Oc9k3QgfK4UOD8jN>a{R<&?v6$axNxlD1HknB*`L zl2ZvIWu#0dL@`Fpabp-}uis;Of4-OBKd;LxWqTeT&&T8WxZQ8}>y60q480KFHekBY zTL*RitA29uRopZ|sC|Q6#1kM=O+q3unAIK%-GJ=^;3%O4vofV24Qt^ta9x~^|Ad67 z(G?Hj>1=6e7)uOiDwf;?rw+6bilngP2XTvyT%wBp0=Qz_z&efO5){`VHKw$|Ur!ZP zL&E)%5LR(OM-7m4{27r_+L0etR|QVMCl6#F=_XeO7F63lWGs#AP|x+qhX}#)ApVKV zq{sAw0_o~lPh5X7IERaG0M*k~gsSk2>YEudrnlGts)i%NW+)gH^LPw4E(QffQB-&! zU}AyG21*8ZR-;|HkYIT+3`%vYunJTV8)8OkxbF$462}*InhHej}lI<%mI2 z41EJBhYpbr17q-*@J79(`i669*^2Iy1XP%i-?JWeim+tPHOd+Wkbcr+XONA;#zG;8 z6(k74L=goukZF3HU>{L<8gXSkiSzxS-G~vS3V~;xG;0(SRxfw^Q)MAInkXcwkt*8D z4&wmHUlGLaf`SMkfUhJA;=!0Obecc7^q?vRfY`H^5D;vPgl!C6TtYw1I}w1>GHf?B$;s0e+-+z{puXj2>T3uS}p!UD1IJpCp| zG=IYs__r7VG)qEV`Jm{_^|8OQdI!|p3~<~H;ek{aT$2zGAtXTLfGDu~aRx4fnIS!b zWPltVz_0-aqsWAhk(dxy>902-3n2Dqec*w67B9lXb`gyUXa#E=wHVY7$&UaaRH_*= z25Xe(K|4m)aEXar7^vd&q2NMF9O1%NB(Q*PCal#_PHv;h-^GDAGF3RU+HzRPmcFqE zf<%t%yJwG;NJ;xSV*f8(&2veTW}Sii#bv%j&bFH?k&D6aZ-K-S|AU-k!v8TtC)rGc zv@dW;g?*9H2_iQ6O0Y2oZqolGo-t6ygeyEB+zOG9@ukg#!=w?Pm1P=E$-{kY}z$ zS_1)pe=$9v;B`c=L8DBGJVLF#=X(G< zLazfjb@4=nca6<@NM%4RMzFULet}-BaWt?Ii1|Yu4^j<-K*pc*(^>A+7I3fJ#H0+c zh6F8ww4w-|KoT?v2deODtFnmJVeoAkjQ=2xKrR*%ktmYUSMh_FnDVC9Na_n1#FYsH zErD_1(-oBnAq@~Y^&gqHc=<(Nf}FU?9snKIm(G~X;<_KDQFau{|-zp zJh6{b(#k1>xU3His-h((M~(n=F_^x2mmrO-j;Iq?GZavfky=wiJBqNd?q~gsN#AG^ zMnE;lqgJk-`yZz45w@4pyVxR6Z5t2s7YhZ8+Z(_JqcTJf#Nv&hpGP`;?OClVB0+G3cV)}H4U76} zzd{l?uxtOYv_ezEsX_YBdkdWt_jtlo>i2wdY`^Rx{zsc^bf&iwqxq6v?zcn3zG{A@ z!rOpbNh@N!-b}?wZPp>`9@aF{ei@cGCBr)QAw2Ya$J#?ZQF;dUg`o&7g0aYNVevCZ z``Oietu;x2@HQG4aA>=yuAZaq==g2tR+D#aZECM^FULd=PrV2ngD@`khRNV`$K48y zyNaEQ^>=zwLw^+Q-|TM}T$`s{8Qc?~pK|9=K;iMW&A7*7sxQyQe!wde-$!g=tYV-Z zk1oAzUb%g5f7i^9owZ9=$(*7`u>J$EL( z7%TJ5VViQs%RFB{tSK)r=jG^w=Z^E4|3Q?#%^!M}suASy*yHn@8|!%PL8^OOwV~i( z-OO~jaxk)=>Nd?voX>I$+yMMP69D7OoIG}0jysp}CEp?8&ZYPI=e=}UmeE3*)vQ?TYV| zLeEqw6rYiK!SydZV=c2cr~1QzO7cilnYDkBwameK4{NOq*O@+A5?XXC4ak0}Mz=bd5@*{+v$ zH>7qeN@)=%{GYZ#8Lw!HEX zR9h14g%g~_Hy^{}+t_Ricq{3IN2XH<_e%nRe&ZsFbru^=xY=e+o z<%BO2eX~BrKS4&1_4d;t&Wg>dk?*fEm9M(XOCqvykFT*?&-_jgo-P}XLOiN`pSV>xDW{JrZK00ztTOBKQr+PLVbJsAhOn+kX%!e(G`>yScQm2ej{%&*6jb zRlamKr85Bp^)+S7I?+w|IYI}-!V+Lf{ayC}EDA8dh40zH4DgcIEc) zrb}acE@WA5)e+#^Hww>dp_iA%#3WpKTS*~Z?u1=Qu)CEMyU$cEHK}b!bV2shv6!C3 zi)9YmRKbECKaXW1c33cJ_l=Y}7v5|Ap4feS*HBH~t0YgdNkB*5<8y_q`GbabIWny> zh*6iMEf_$x$Qt^FKbi35o6F_S95p}4p}spWxBly~X>b09t)}38?Xy9tMMRZOkZ0*~ z=tkf9gvxsN?4P{nO}J9pu%wKw$>rx4${ZnjNF4@5ua!kpc*P2`-_j3q!xq!4mxhb| zp3P?gT>;KgP=41L=(By;VA5xQiF-}m?Yq^@#Ptet&NS~vxZZK9-4`{sJ6F;H zaRQ)eprb^-%*(_4O+37Y-h<(R^k}Z41z74~+tG*vQMQ>@X-OkvTh`KzZ0*{9Cp7>q zZ!eNfp=$JU5V59oxr-kJ__Yh?zoRu964TDe80J$p(0adgEMjO`yo2xiR}XpT2q#gy$nL7w&s7JSW;U#9ZyfpjEIGk*u;2PAabpI+9ip_V z?JI?Ms8eh$!%*Y*Ft2GS)#XZrDzl&+4b{!GQW~eJAzh}Tp193*n%=`VDrSwYWn*dP zMmyg*Km8JM`aBNEM`!VyFH}%~&rfge_-f5$MKhMtMNILo;n(-uS8+vFDZ*&*~adfN*Mr^N@KU@{e*j}xm%)XlJ)os*P-qaIy=n;v0 zMbkJbQ`OyX^3>zNHD}ll+{(oMI0;*NqPZT z=rt*3bYDN8skl*mXe3VJqJQ+MqvbC(zkaOrZKHFI5?=o}6!84}Ne!oZnU||vbUMD5 z(rA~p3-48WH_7X|!;dnKF6~p+b|(u&--ayqgXIC0?ap^4ig)D=!zz9oU4JBVy$f<< zrt#zEIc`rUwRN;3i1R(APdf-mjJ^{TdFhFhHPWT%Wa;~l_K!_VayECLl{26a6b@G> zVfH37hd1)AbFtZWiiz0%%7Dm{?x^Po8Cw?w`0aC&_z~&?#Ywd<3lTMVOf1wT9U6>zGmHLnk>dpO{XweRY;K zqucMP!}Sx0_l;7nO5YJRG(ApC3U`&h@2u&HKBgNekO58URd#~WQ>_;46f_EW35vDL zKp!A!Q1z;d^n#~tI5g{%HQ@v+Ssmm=deDr|*$GL5Pe>oEW2a@K+{f|!9i2ysi)h~I zGF!_B%tCmy$SuG7&RQFv5{fHrZ-yOu#r>z^Zjuw&D=fVIlqwdF3C2|SCoMia_Y1Fu zV4tl3l~8Y5VhrT0X$(ACYaZQ%fEr|3rtT*eD)$(2)AERqzS(IQIicf6Yp>wX)Nj2a z*unmgZ0;vDo@hRj+~-rKoaO8t^wQ~Y+LPCjH;gvn@1m2@8ED>t<1rdWa)KX5>RsHH zZ+A)``fxSxhr!?INu>3(bccQJz{RFX4}aTXN9mIq*{yZl^gJ$oG|jh;_~e@_oA=|q z(L|d1X}WDLWhZSsWhnlkxCZ z-ND@Ueqicu)8(#&pQzpBk;u~rUp+4Da`D=hme*OcjFSFX$~%N7Qik^O7G8wx8yFpV z!}DQ0Fb?vH8m+z;;bh=#H}wMdtYVYlA#+2p4M=Ft`Jq8=cMsAlvUyqm>0)M{I$jO& zhVs^>iO!}h2JkF~WV1bVH`S_omUwHKZ@n85M3HGdo}lY}xmomR>h8YUz7Y52+9EUh z9b4OOwbX;bs400(x4StQcbLkGw`S;I=i)NrDS{2!QkLcG#R*T@)roaA6Mb6+PcoeV zszIH&2Sx7WSLPxa}yj70u%@HsTF zmHH^@5cixN#;jDcgRA{GCzkA^F|ry2D156I!;FQNA`yO?RkrD{U!Og*X-9!a#A(h- zq*$QR-s~R&WuvS^k3tmln*LFHKJ8Gx`Z~gfc+9Qs`>^`bS3!k$?&{eW|3n*Ufd}9= zZWR&X28=BVo0dSdXcA-M8EZE<;AfwovSLet&&67GesopO?2VvfP$c)}cBDWj;>fM* zdu_Kxc)v`&Vh!1>pV9!&*gQr^cD9OwwlZ8aG$lKKxQ$jMt@-qvTT&gS@MW4lrK^9U zY&2B$Dfs!zyYI$;Zuf$fwk$Jw$&xI1N}9sEw5-ZPxP`7@TMH?00uzr!4h7-y<=-odOF`|)PpFU`CG=fMhpZ~LiIH+a=bw$Hx~x}%LXWu4Q*1T~KeTiv-i z7WP+OMr(Ik<%5S}=?S-O{5^|~as4dFB`dunMnJJ|v@}xx%yFJ~;8_(kP`3DNyi=da zpvi{ZGJQw9;BZMs)6aMI#(B+cp3N)4NsL(fr@gNC72S!rWJp~O#wyKpd8a|Z5str+F_+){ZkTq;TPuLkr$&c@eA ztWX8-F2ql#M}DjOw7bR$)SouhRAgSf7=s$f$T5PEv}+XIL( z_^qbo&)-0c=UJNAt)je_pzJjl@3g_g4$Y{Vt3_ZeJm-Z=&vafg=m zKO!f>Z`K(DuR30r!anDK-_$FhJ1f0mcRxCsd4BNU4vh%k@6Bb#g}kCm6+XBHvmdg_ z=Du7f3zOqL5G71Rwf31}^z*~D^WPVZP90BFN(B3$h@^n=jNkpqAkW6pcXhCkU5#m4 zxd8NY!@Any6%a`9f1HffoJF~{mqvS{Xrx1&Cx9DbwM#Ipx!q$Wl9VJ@iVBaMDsyZ;iatSf%tKZwI6?%S_UaQK9Nna`PnCb%=! zhSfDy=@wQsd6Bvv!9kYiR(QAO=-b=ojh;uSnIn4av)rN~Q~J^c6Jp_P{gptl6||=g zfIfsrIf^j^Glix&s!KkK0tc#DWjv6`5+$&)p;S>|C!WwENuh*$7olKf-$>9`(3yUO zg1{FxaAvbk{Vf};L9uKq3YQTc3D~sI4xrPmchkgfixJE!JX3THXqcP{im9-L5UihHX?;}P_+rF7Vu2RII)a~}euDo|I5 z&RQ$j==Bo;`z=RTPEvmppmZwPS!7M$uAhv5={#jG$%%p?teuL4k0awZn0fgl8zD7hs<# z+(d4bh;np)0p6lz$K*pc+!QKwK+Z!3%O7J7#td#)fTHeE_Zl<)-$&dKg#q@LGkZh?sV*=~-6wU)*~y=tA0Enr{%)d;|jn!Cp9^JcBGj{$bHM z>Wwk7C`#JW9f>l*WvnZRLv9T?7O{Yph^;PtM^(x=yRJFEQ<6unjJU%=uK=c?wFQ{+ z!M2yqmY4>wdO?k<(FQ@ZQfFzGFky2>kK1oCz0Qg4MdUfe0wvKdgmWGHe@B-#4r3CIMV}aPl}MqLLZK-Hpi}>4>qD<1 z^3CMq5o^A`X^KKrBNz*6o6(06j#$5le&>*X~i0mH!z?4ZDNb8cSPV4=lqQum}DffT_k6{GyvLFs-Xm2vzRCxtEZUKfjHN- z@aG}8JnNUp5}U|ety_tTj9xej4lA{BE$kAY2x7?0jtuS!3Hp~a1Zp}vSeZE_(-Zpc z)zzSDMrecqhP6Np*Dw*1 z-WYO{kOhvV1>D2iFzRYfJyJ9qj<2MN_Q3zK0)rz;gbv>p9a%>et%jnGn4(0oql8(^ z3zfH9TSOhANK@6%KXH78m0$(dggJ`rtQ?pmY+~#~2vbIKtStv=T9(2N7?RG5oj8r3Qgu z$$r*Hv_l|KsP{8^fS6PzC#XLeIGsfG6^mR8$7L0O1R9nr7)nsLDT5Ja*~qr>u(1w~ ziLel$`EhWsK@3p6n?ck;e7-?2vZeL!Q}j_Hm?3Q(Lv&sfJe3dlEPRl`Q?ZqSh0RWO zx%!7Hi6$imBt!MUjUPvl7v97tCb~u`!NU=cU8PS(LeBuOA%N>`X<+7yX&bn%z#qO? zeWa7pDh3Xl0S0@ApY;E=m8xq7|i;hj`Kf-bj}n3x_^gD4qenGR@tacuquR|iDjl|@I1k7(kge<-{EAivz1X<%``2u9thM&XTJ zwOHI+{ZO!%_j2ToUED`$InA3YKe!)9!Znj$koxaL88i2r!XF&YPZ>@1%3W2(h~GO0 zWD8L|ZpHMjKSq~|d3^+47_?Nj(^ueFu!dAxpq?Y3YQ~J7Qf2sm01R^%+EcjFIjr!d zdWMQ~?V|M9BR1Nv@+KWiX4AAUH|lmBkUG(tz7y6CwU&&`isyxelpJX(wDr=udvJJr zxZaS5?Wgm^qQW!BW@reb!b5r{$Ie<+o7>QHy{wOp01mON&Wv-kl<6O>ME7hIazQjd zAVJWuCf%|)SIsz1v|eTwP~kgBMs>qu-JK!IwBM~eIwVo80R>R16 z@||J+M5ao{wflF1(|#7-&oaY*3xe zDFi(wcePwz3(GXLi&>f-EB`?jZP$o~?yHs)yZe$|0NO%{J$tgo0p4#1(@21JD#=w{T zmeV3-DQ6A_3W-l(B<9v-PXDNmL>;F5vnPwE8b4L2Fcq@H&Z)lsIEMfcotb}~(ldAq zDUb9z7}#4{;AY3KIWyo#{`zMIXcJk3Z>LU7u}xlm2+xw`RdAAZ+RF$4%DLvhAsMuM z2y*Va%uTC>R(eOYp9B|R+giG-ZMk1j9BxVva`2Wn8Jo7VKfKiU@K3srO3mi|=|B6v z`xcX2d-mxm9M=x@RK8ziKgjMjoU+|?u5csf_j#8stm1lRtKdMyv05I6>0{cMR+Cp> zwm*;bEF!JDd(K`tX=2x(vk(0aCs+7MJUD!L`@109lo1WAg+8Xa(=v1ZwDN+3z-P_IQfGrOllu?*N|k68b3P zAfps!h*jtU&&8K+g+Zm9L@=rTMgJ=QUp{9WNPf`A12c$phj1_R|C)KGho0djyjDnR z--`1tFQY%4?7k1A9{O+4mva#)rEXwwZ3Ku5OAxavtPulg{r}gog9qD(zj?7BcJtx- z#Qay(7b0{YfvgDO>ILSuST4}?*E?24$wTW8A&8V{T9@%bN6^Y8eLU$Y=n`FDoIx@u z_%;v%3Zfj5nB86{+ncYq4?bRMMxobi&k56?d$1hJ;vnz&e~?W}F}e<0Lch512p2o1 zPu9av`^#2} zntbCtSomb?&?TQH^uzJOx9eSdS>SS-A*p`!ofJ%mOHZ~UxX^cmMgev3rh>MmFp{AN zc)hZQKL5a@wSRaYnzDw`?P_O0z*e^v=f_;avKMiDR~3p4)Dg4>h4C7+q`+1gcUjd; zv3pwd*$@LNT(Bn+FWRr4zJKjTs9y8aOUoCCjNDLn{&w>}4;uf2$oCDZoaRW!&_n|c zW$HL@jLjHfC^SKKkdPO+7%;cXjtn*w`KGv}pxurZ`d+*9t?{r-{Nt%(sj$7xrURQ# zG){=CWj)^bJ<9YgMYDsaBiQVZX37MW^m4Ld>nMLznpV1KW-C$gS?Qi}g@OZ763Y$( z@l!(v5A}P7$)A!!Z?Fg3a(OE9nj3y8r{64jkBih1ho-H=o$~0??A+uutxor;~<%6H*pZ z*a&O^4ee^?5t@#&*>^*fxAXB9;CH+Y&VS`K>@E)` zE_5u;dkwU08YWfRCsbdXMYl$dwIkT(==f{1Mu#KpYpR3H_IB3Gd)Oh@=oO{A?;F}k zuLa&dHMDC(;N=YX)$5*WPJDtTfq2-fyK4F*TK(DzqVh@MY*s6Vco*%7mMhV!X7=2p z=4)|wvGF9l+@C%d(ERb9_0%Z!QR8rUWMOm`EqPs(-|XLU|3L;zw~Z%9 zJwJ3U_i`)oKS)4nX9xFZ&RnTL{3M#Wx7G{)fsJ)USn>vkmH~syTi^cp2<1XZ=&mP| zft8w=YS9&FF_Dbk2%eNSA^@=U=SS^v(j@=p80DIde&DOgeJI7WEY~ibd29$at75c{ zL7u7|KVACcKyM9aN$}clmu-_!-(1kHJ8~i7F-2Tweo(NvU5n#AbeWYEZ^xw1@KV_e zd{a8nKA}dpvyF~zqXlM4A3!&jbHTWu{STsoXXE=c;nHoxc8T%a;=Q?c3+1RA)oWDg z(cL_2)1N;~ar`DQ?oMW)r$af9i9-q-FrSTJA-b43YW0~hQZl!i5pma30K$qiuh)+^ zQ@MqV0mHpR&b{n`_~}H?)XI(ui&o8sm0r(Hp(f~9(@__`%<~~e9oz5YY{JDiCMxXN zd%B2?UURuuX&PC>-sov774uw3j5pa!ZsW+d8KvEFf5a>^uATF!t>7Bom?7$J4m#hR z@!lo3(nXoRO7jF`>MD;HQo86}$^JUm+yhj@2)k0AEA@}>JN=6}+95?}YMz+y->2$S zNB6n3NA{q*NU4M`-m{iyUh+JQ%7oA*cw&K-a5+|eq z7gpj5DDDVfMKAG>gX61C4C!ZN0hM?YC6P+DvNL||1>V9smVYgop6YaoGyRQVTYK;+ zKX(je1HWQTJTaGFugD{5j>3w_xpryeVV5sHl{0c2T(L1?6rmtsb_J&PbKLOpz|y{c ztF9TCvYg+vx_6|(@zZzd!>=$0UCm$@9^R+HCLQ}NzGv;q(zse%rp8WMbF?#Gi~-tr z1ZbYyxCw}jM!cqJXe=6Y-$<&EloY8xSNT`C?)>h2v0@mn-TlV#*ROtupQi#)Q%hS< zxo^z4*>+3!SMni;&)z#l@{>pZ9C(v^=$hx|dyQ8%27u<>JH!N{Zs)^Ud~p9@-s^L` zJM40%AnlcXNSaGWlnO7riPP#WSzk8nr1?2rmyj{P(d4dL@%g?@$DL)a6Oh-wHDdQj zNOXTsJA8vq=S)Q^?Ai6ESN7D7GjG$!oVm(Bti9(}X{WDwOjeeZ1Ukdm-IYwu?c>fn z+0*33w0nG;*Q`FNhwl4-R2EWxEO@_reM6lzCkRn@ouA21K*>E&f&gxqPF~y!s#)AY40`O{@A?h^g=bg)*HnY zHd8fAQTJ9(4UaWFkbaOQ8F7tGx9RfbK9Giu(><2tp4|4g3cZ@#y7OhozW0(F2*mCD zWXads+GL4?#p>0Jpdb0K=$R^g=ZPB6bLImq!DzCGKvw(+>@UU)S0@HJ?dw|{h%_~m z(@1jDAiM8On7>p)_A@ZQqLE~&86Z=e{3)?n{jE>X9dnIROvfBH*^R0E+r0I3{_s?( zZyNev&>a^I8YwG^wdp2hywmJH^<&L_Y8K(1hB8C_8K*XQ%Y}CS_MFEAsU3>b{nl0P z=xAo|egE2%-+fbQr^#v99~TasKJe;jXTn>@q+p95_@)K4G5q zfY%vhpTmJ3&0+LfZ0*LC5YCJ3b=p&~xl z`!{%AD4edFE&pG1FG%-Ymqb^hpiT@4X?dPnm7&8BZO!m9z>#_FdKg$)TYQCu-=6lw z49_wX)I1L4G6=X8tWhu3I(p8VEEFw_R)zoF4U=zxfmjo*3|D^xPSQufO)*}l_|yjU zyrDXi){NqX-fO*b8w{5135ZPKMBn7dGL?9d`Vt~t zN%SftYaGasz_jaZ*X6nhYu2BiCWI4y`&$VEBs!O&mO&6KY`Wc;79kO=L^e*g0xl^a zD>4oktszIoC`dSSvY);W9CI{KICoFz5PF+8Ar8{2DKnQyu4f3Ho6pOa-dY*t-Q7*gF)&TVQ|#1*i#yvw)%l zcK$$Qq3coIVyG|RQkat=NQIX|3Ks(Ga?BXvL9#R@x>06%d!(7HP$Li?w<31}0-Msx zScATh=QSt^Pw);vAwY3cS`CwfafI99+(l^8x`4I*t@J^Kj4&*Lv28(A6~3-#3vY|4 zL8LV1q&1Yc)qE-x=uW^X3bqDPjiQ8O%rb^+U<2S983vAw>=2s$??g-1*T)q!<0j+i z)o^TvyQ(l_L$l*tf3@F9GpNz+z{x>T*=B&509>-wII`@B^jHl4O_;QG7X<@YR|~y5 z0K3nGDoSwCUjwH?C$_9>w|hax3)qAN(IT!Q8n%X|y8zAt*k~M_dbcFYBp{phag)m+ zrUlrjz@UMPBxUC0-#pQ*6Aht_QHO!*1@c9+UewjBY}I2(=>cGp-l75*BsQqU4q*`OXsO9ej@4#=4k?T|yb9{L_*`g#)CYWZox1>Dp3BnM~%8I8b?Rc3LBV%Mgt&CFu?%~ zEg)~|HH){35||wVCHVlM?HN3g(eMCL=6tda)zUSPIv)02Sola|sNks8Aa&KyhstEN zwz87{7Zf6WQXC4+55tzJ0t`hojt*1#J34o5jmRkh0JAh-^GVvWqL5P05ROhV*$|ld zr?mB@GUq`ykY2X1+H*s3x&vbLRJ2M2VXN01$}AHOHAr|kNLZFy)9E1>whM_K!V|L; z>4%o+Bw}NhMHb*;U?0l61Wx1x5+?sRphF~u0714xRSTFg31CzLtFd?sLqcS7I>VLl z6ApwonozkqliwHS-jY9FAOz8n|H&qIgUXK)BAkcjfEv3~Jg?+&! zK`EnMLC4mUilL(lPy3AFSXp`0hcypj!HJ=wFA-_h!q+~bI?n}V9w7P)cj0p4G)s6m zJY#h$+BwW!XzM@GztRh7WNrZvt3;C4prJe3auE$u;I>FIf}y3=j?(A#Z?!1Yj}3uX z;81+SZdL~fbYb=rX&q7l!mI~ycc$~3@S;>vICG(4`K~^{0b2(?cfG;K8T#^(0qD

    Ze|9&q{^j0*L_z0e<3*!$bY3(4_Gr+nbZirqXUrfFt(6Ay zB`ziMiZiJRAikijj#)g?L77kMS=}zr8Ir>YPAwAejx}tawuVy4|6bQKzgvo@iA2Ot zwolSXJ(r-}voktZYhvPP3BA`UxK3sMhOx~ja2dEotU6*PLgt#wuYnVgdRl(*4n7Jh*Bs+AQU$e~XWcgNf&bEnx|DQ_iL7*DUs`_O zACxA(?+SyjZPddQ?2xNk@IM(}3^1nrJ5zye3$vcaFWSz3rU_CAc-;+o&WQ9tkT;1~ zbI&FdLXQg#a9^ebCHnM9e7+^+59%Lyku3g;0$WxMY)3t8i>!kwvm?g%t1&Aw)>ls+?2Asmmvh?%V&ume zyY-WH%QqJkSwl$k4Ro=}BhG^b^aDZ#$4z z1$EIUT8{FcYr;OMxwp@O!Phci33`XV%UwY(mKvZ)AA}*KFP$KR*?%h#Dh3Q2(?LBRapQxys zeVO0HgEF6rpSU5ju-6Q`aTBEh`lpIFj%rxU+Ba1Mhme;T@nDJqp_;6XjwTU*tbz;x#y+2q?qCRlPBH7eVLaEG;yZt| zeF??Cqg6P6bsS7IrCkeUDh?9`x#GBif}$Nzawk`_S73XJxtI;$iJoC4bdrLZK`4`n}*@=LZF1encW=%so5Zk(C2vT}od0$=B* z^wln5XjqpGx$g!vBK0_t19c?`Q1fUB(F=D8yd_Lj5CRd&>L-k#567@9Nc#Sd*M&ejmI%xB6%>BS?}4@_l7bb1YbTEm-JaknEShso8DqKJ zcc#q+Z>U_iL8I{ez3o1wQ)gO#Bxhf3JL~Iz?6ijUUKRltf8v9E?49}@eBZxwH%gqS zirXlC!SkLa_af(dk*o7p*b-wdteSMMYP!?ebDOtS&;*ISIzmj z=+hrAJ>!^rURCZ&e&wYIloY;csZM?a*x-rjig^!>M1$_K5?W7itq{=Jm%f%$ujf?L zxgwn7qLglHtl9kjlZlcNwb<&r_pa$9X}v1X{e2yVpZZ$0=kcq6xkqZ3!l-kBuhEu-Q>C}u9cZRy!Q zT`>LID28`}|A2UF`d{=aiEjpsCvst45H`)~azFGp_!O-AL2K14 zjxVH{u8i1pt2M`QN-p+IiF(H8rngQHk7GX-Z&p*z@FyhnbR`lNeUdmHFVzaHH$F_X z;n*lClK;WK`$vX7yNUaK<#jys4m$-u;6K)=t|Ok*GGr>apu$@T+Y{3+yT$Iegr1&1 zk@eAaQ3Fh4VL#YvMC1w>ZYzm>TI@oG0Bm`zl_N+BR%?HzolRx9}qKxQBFIrs)=9=T2%M-`0*BSOU*x~-u*anXM4OL7Sh5hbKK{u9od9lThA1Tlj=?KbO zZa;ZF@alJV7CY}$$dw@)uf&?@3*+{Mf8hzV^SPPrpT~di&QqWHB|mjre#;?QV#_-+ zm1mhgFP_AHmIQUZiFa)l-&)f6@8v4t9f=z)=Uw63h!QWen*I29f;B^MAY?D`Uf{NO z+)%)vDNjfN#QJI~OcOzugu@A9{oRoTBCASbyg2I*>dS+`E9ZUWud-*R9y1EnNd7bF zDLvCudx^fLP{i{8US3K0=F2-+zqpR)yyjbQd-TR=uRo|&kMX;f`&8(8cp`&5%3O?v zZO<+8^>g|UIe((v=WYB%pY;@OrF;xVMy%_;sLYFl}S$*xKDZOh424^ zQvJ-TJKzSwmuloNZtnhPQ5Ls_+h^#c>x1q2z=@WgJ@zN|$O2<9+ zv4Mo@HnrGe75W;wBB3Pln@v|CxgY6=r7s+_))5$iC$xI^MZZLWbnv93K$XZg5-~dH zr`365J*}pvdv7S|UR<4n5zJ$1HsNPIm0u)(_BnmG>YZg2$hY%*v&;d2dnGOpVfUgMAjpA+hRv(#+HwJvH*j zlynT9ue&rUn-@y)3z(FYQv5_8d-mc(Vgrfi(wh?8PD&PsB{ruh)@vU$sx|TdRx)_i z3+KI^;Mo1(&$o#U(Y$NyFu@~mVVB^V>1^!ZdX`migM9w3ZS|9h)n7tGZk#Ju z#}K((UCyvtJ9f+n-q+rzGOc~ndW1$bFavzwkNYjtnYKWBGs*mDS!79ZyczJ~`*-Vd zdm3}XwcF*xkeyad#ggME<+uY4aI$tJkDTuX?xE|ofbz1X_b=FI$Xu$5m;CChlq zteDz~Dl9B|IOZ1i>`228BP>SOFn2vcSA+|xFi+x1-U_pVW7X#j-Rhh#7uoGd`@Be8 z;6k{RhRCcEYIGo&!Vm^QUQW~ov=Awv4R1JT@ipJ|NYj}wzkYe=m{vX*dM+h;B*Lqjfn58qZ=lvaD*X~O^3fZcXflN^;zEoBTHc;%AT>8|a#k(TrjGeS! zM8w z3`;kENNxP!E=eQg#X0>Nf{HdvgpHAl=-KvPBT5l~OcBka8e;Q|pwI}_R4B+n5PC$w zxO)Q8iy^-Bh-(P~Cj!Hd_$)4ImjT>H3Wk9w!Be6A9@1%3sCR~|0=cCfEU5%?9pqXP zP4298cis;C+bhGwz8kjoap5RG9jiveRbw;^4kZ(ovOhhe$MnbryQ@3*yOSchgMUyN z8uL^9H2OeMpcQNan;PlB<*KkQF|;_0Jhm+!%4Z81p$K!ubD!+suYuwDXCpNK4(lg6 zfLCO<#5L#+`EQL#vAmG*=1T%`Gc_Ln>6joygIu4AK`-}Ww!axti1yA= z;s#?1Af6V-(Ac#KUp-UA4UGk-T?d7Xfr$LiP$(d#Vs_H?n)*G22t9nm3rW`x%;~aa zBQ1WB8N)z2zyPH>zLy@=zJVS0&|%Z5&*c!Sc>s9Qr-wrCtHm+$?5IOs$ml}nm7&mP zk>**MOFlBw673^^>5K`D$R(jRKBWXI=8|T#eg<7Zu;DQKIxHBntF`ZxzuQFD^%6cV zkft7*DerYG^h)t#fS-u3-U-02!yNnr*pv&8%NaN{Vr6hO0PteSKz8Z+JL-CPlFE8z zeC2EZvjl^dCA)CF8$?0PW`Bt@)}FQG3NTX;;u(5h;*hqJw9Je&|FA4HzXkQ@*lY3R zX^k4uVKrvj2+0TwvI3-7IK1h25Ft>cf{kfrXX&TsATtJmq_sWgj>)~pvX_giF~dlx zf#}IugsVda1E@5$u+S9BdGfHTw(#|c@Wk#A^f@V11LFdsMY9jX0Ce_Ht+9+^CgFbk zk`w7Y`}G)CsL6&Y#aliQY%8HlN(L5$k%ds-LJ6)?q*z$H3`v9ZXjYHx)$|5I^w$tn z$}!VpO)}nWG*wop@5KzGNoq;6Sa2>-8;O<+`;E{h{A{PjOk&*T!2{8Ib%<)4! zhgYhlB#9@h@whlf4t(24q~_k6@r?9s2zr}*<1J1J4frIQJr*2)L&x$+_fIh;;IKXj zm7{tf#vWmfjr>p8FI4|Qq05Yf;0^zZke#!OD93?n7E_3~`wadZ1wakCtVR&Oc}+w@ z=sGRtNFrK*$_mV35c>h3Qrlo<$?Cm9WGz7AfVjMjK5!Bdph+@br;{r|69-g-&<+Ht zKM?ZKFfCzrB1H*8uS6!)7u|QA2CKQ?M{`R<2hR&CM-ako_&@&vP|yl#sXcHJ_;;97 zg9rP?Fl3+wl;=7YtN|20aeiiq2TXRY4Lox}5?_tk9YfD$K|@JVXwqC7p+RYCr(TXEN_aj+z|(njGPXF zgd%%Sh?xI^*942~mhu=;2Ei4Tn$5yUVG8Y3&!z#qT$pA8MaZV1{214Q{F>-H^>6zO zwZ%XI4=maER|lnK@wuWH8gq&_49jY%Vd{Xy3kG;>%tt%XJXZWScTuvihRjMlf3?e! zjARfc$Pz!l5jU!qZ_lQAF?Xg;%+z=;JpE#kP^p$E6rMQioE8a0~GRAAB&XT5Gq z89yy)?2N4V%@LB8)(}ZA3(<{(;gJ&*4;}X+C0*CPgxNH??Cxr!AHBAxERO z|BYWH{PEu@elzU9p==BpDc}*Ag5@6g^FfEuLJ_}^FDqxzwmIsFqC-RcMjF+H-6s)J zG(^Tx*S7*&gTfB05-ln~=sb;lUWs_JL|<65H+F<8-hoEyRN%FRVy+{s6t9}@RSaEF z)5wWS{O8Qq=b%RRO7g|Bzlw)p0sS3PoNp=-6O7kw<`~P_h=t<4)ntVG#6rUk)tP{1# z+vpNoEt!F8cs~4Q&6PurjZHMutO4;=Cj-QYntm0Jbq$H(_31mu-+q_evCG>k`h4lD zuHr>(A77$9@L>5XeS#gf|KZg87rW}S(<3f4uI86!zY2==!*YJz@(Ypdq}BeWG|OV(mDPa{Zf_RUMVh> zdBNxX(@mT3*_J6Al`~qux?~+~uhwkM6a9KRYc?)hNyfe@vj2PI>4)l{PB2o|XWxkp zsCt}bZaMt@Jhf|A&Qty5;UG1>Xbs_YlU5BbZ&<0!sC)waT7v_Z896Y(w*o889wlf2 z*NUvL)JXE-_V1S*lQ^=5W?C{EJnP{1P`aes)K9t9H+3T-SGQoz%MrDvfaeXgeaD@P z0u1+P4B8r|9ctWs`R;t@nX;|q_x~oYzZC!Buk=TkC$pokLO*y{(++GKyfoXno}V^q&MGBk243> zm@vv1rBjDJ<=5+KN!<&S=+6^3xx2kp({#)a9nz<=Ttew~s!T|8x8la_y)R-sZ|!Zb zeYfiJxteq2Fi)%Vm$$?X&bb?(FwEE6Y23KM_VnYSAMbJO>F;jh#(4LLY|$Q@)1Gb* zOC3%fG3H$1X?b5sPWL$TB}#qH(jo#wJtDfFpSbzS37zM0gt{C&dOn%DxxY2ZHs@Oo z7JS(j9I0SohL~YN@r{t*hYiviTzIHpqk0WlsYsb+!pBSO4vCg0!irA1O7q>P@G90A@GYDsj_i|8~R@IxRrf{2dL>;MY0mKab- zfZ#5a{BO~P~l+1 zo0Y1Kt2S*&a&YPSa&sm9#&8g!uZO#H=4;MY?!D@{xP;Ej_e@$^mPt&l_)zj>3;6*CKx9oj($cV#qj{R;(YxeG}}{tIlN z|A$JnTYknDEBE+)MIzNyp4Q?nF6P+jMX6BEu5X6R-#OpEa9pi!H&t#{VN`z+k@^wc>Ecf7QhhK}Z@~)nr@F5cI2kmYQJ6s6sp+_m|3re9ov30dHOrD;RnP_>HMeJy6NvAl3*Mo09T@ZlkLhR?X;^cwYkRknl z)UDT32yg4wV;OE?x?8TkO6(*K+7H5tFsKhav$&e4S$dmKKK3==_z=E~S+Murt?Pyt zzsfDhQ-4;JkMD_hR;JN>Sj}3lgN}oFQi4kDpHFtYpQPN?Z97q;<7(cOlN1ts(*0UT zD8pj*xKm0}%qE{!S5{`p-FJ2>@i_y575&6;`OPIOA!Kpox|;_aTh$e?f<7A`(YjN- zJwfO59#2MR^ofqtZBeaeDo#t<6c4qrnDuLXToeP$q@U@OGcdawj!T;$vXo zwl>=uXs_D-z*fRXPjuYqjKX5ZGGWPId*;3EbZ`WMX|}fPpD53XrLYOYkPW**LNqx7 zrBw!?%+Zwrwp0zV0bUDY?g|Et!!Y^(nELj3rrS6ENzuU}l~88&sMI4w)Es81Cn~Y0 z6GaZCk|ND1hAl}tutlLHQ_?C4<(Qmh4wb_yL{1~-I1Dq}`dy#(e1E^+A5X8IwtWuw z=lDSDcbyy>)D-0! zYo5e>ohh%`pbUXVw(gd6FRx=c9vO*K=A+I2G&ymrhFW+p$p|1>Yd>M7a43npRI{an!&2Z(2V{G^H-)_%py^VFk z4CUYXc0OcpucG3`lI1N%dh&q@wgt^b#eemWdXMNPoVi=~SZ!aO&BB*?e+mi_>_jyU zEjwc)WJ@&Wl2@mA&1ObZfl z1^)}G1eAv&h+Iq*^Gsc4Kny2K*Ok1+6^mc+5^lQ)v%S@ElWqtFQESisVE$-_I4y_M0 z@yD&K#&c~lX=`MPgUqy%9&Rk`_fOsQWOE&EZAj)X`VlteCe&$#hq&R@_RdQuGTuDWC`@CX3cBL; z{6d~d@gv91kLZr2dWLgnZ#nEcE_>^fuhm@#BRk8pNbTT8u3FE)$iT&qTB+~9d1Owz z%@El3qvi94f%!8hT0US>Ru@gE+zL^`+{h`7^y--(cI%0@dEJ|rn;2ZUHMQwfF85m% zv9pbEDtP#T2(Kf_sBmDP3Ff>~HfL%&p%;5(RU8abQ&>dz95*!9|Wb?+g*dHy-mgkRx02j`f z#&MXIr5V(YrFmcskWkkcBf1s%??8okt@(QyYN!e4`?p%m4fFlv)#h{v=zV5gRLxhN zaCY*T1uqW8i=l2rqqP1c@#dzdg}LwZVtSH)^s0PVvB%ILmATdS)!U z6D-!UttwWb@~g(BHkYlVD-T|E?USbGv9q6?K2I_4`bj6u`x&2kPj*tMtQ2qJ4%{A5 zVDyAu**Bq(n6G%DMWFlS;>)&-Py5wl9Ut8>K6leb-S?kyHLs!A>Z(QlTKkShu`XXZ z6wsD#)YnYGSJ`0a);@*;nmr^TFv)AsWnh-hNM2?esO@p-Ok#dq1=Q-p?wV5ZX}Y9~ zqfElMj?NT1k>g$IT7za{nrR+3p#|EMAf1v^=ibX$0d75gXmkr?TZZCE&eSp^mUp9p zERo4eO-`J@Y$xWC7A0~->)1fot=Zk*~%5@0^%sty<1GqG!ncfUhe;P7=p1M|ZGf!;S zY~0-S)P`&iCZ_-cK%ZB}hu4rA+W6){6biXlZ@hYv?d%M%q>+nBcEqHca(teKK1#14%z%dZvNqtcg?)V}+6*K3KVNe{#AbiB^yzNq&-rUT~ z&2YQ_lgZ#jk@57N&tSWJ(NQoTAy0iMAOS%W>4xafKHVTQ_HAFy&gBY03)POg$!ekt zq2;xnr*2=2*;L{{Pg%{8o81vGl^^GY`<$~PZ~D%e!`7<~X9djt`zq-MF=GC6*=NOn z=AZqT^90eS#c{`-GWxf%(F7kJx)XlQT3 zfCwt^ZY2t)un&SngAOP%0(WO>?q7g1{-~k?;^0XpiGQjGX3iY!o|wp+QXQuA_e@{b zFCQPd=wNbmbj%ubOi4d%Bdu-b92(uH`seq^h4}Nc+ck_^m@JjI;5+(KE0F`6=$?TI zhtq%aa=PMZjhXxnRv1;X)>Kr;jz}}M_?(v(Z4aMfQgD9$1nKx-y z3C%og-*OpjO)Wd-3(ow5-6J^E50N1+OOfK~o@cDlTE)vNZ0i;R5!^r zU`YS#6^+Nnnjr9rV0L}d(u_-?)!Sq`lDPV#R0Con1sc%d%L?pCoTx}4ImMNV9rHlq zxY9Re3^4Cu*!p&r;zA2kB`E2Vvg**90nK$vf)>EU16z$bO}y>CR3JGcXOXq&korneFm<0qhrUmQCk$+DL94Un<$dacC^uj) zXHG5jmjGA59*?ORPcDG@YUZBA>rIx>*sFj*|ctt`PF&r_iEU`mvQ?$r0F;<_n zCAPXn(K3DiphjEuEJpATjEAJgnHbuCc%@(|h+3l9(n(i14d&Np+0>joz_VLiYcOHc zcML^4Vw(_Af)K|ub3oC`K^pl~BVH=Inuyhor<(L%HYk%C~h(FDn)VcG$s z2+{)h36RVEM7Uk5X@8VAw2xbq@utzTwxN`U0VHchRtUVD8<#meC%%FFpcJssV6TS! zIc6!qoDfG#PP_z-9dFNM3nm)fk`UC1C&wEdH1Qj64JOSaDgsEa28b4D(aYuo2EbHN zGWRQ76>wL}XTX)iy?qX;2HXXlR;qOYR^UoD>+?s9RZDlRyh~!MRvXWn`OdjDN>e2) zZDd+ll&N-;{02>VeQw@35bi;00m7{SJ!4o|syJNnyRWD}?$FzRqtI#%C*9RBff{oS zt^@}_4&i+$?DiX!J*d%#A#xg%6y)Jl76`nzZiAdURaQD;NWTHUr z45b-L9_261|+|7%t2xdwYb3n9^4~Eh<(Dc9^))Yu2L+<$?gE=p(w7rWUA!B ztmP|Jo3Pgg1G-8q@9v(I1u4b5vW@fVeP@!Tn1oAMw1JJ}F-C+(N!4g1S9WNaoH=tD zul@+Z*r#)^tIEQ2kd7H|DX1nHrUpyE{F8hjNm=cU=| zZ<`f zg}A*aXFpevz4XENs~qo-Yzd+93Sq`_dpXmBxqCa4T)=@|bHGtS;9Ts3?|zP-^jnhv z%g=4S3j7V7H^mgf1<*-oB3nreIjoN``ro=YQ{Ijo+QZc=>)o`_(4p$hF6KDK`J3F; z**QWzU;0OB%!hsV)2f3S4Dz>fvu}$>E@RKG4ao&%y$981`f-!RJa9Qj;nCZ)wTMc56S1yzk-LOyXQYvIpM>zIHD^( zX={#xNcW75^$(`9-Lu&IarZlKp3{?zkD1O~%ilA3Ni(TGsdp}}&}s8t@AH=TjlKHD zKTnO3^oOYr%3+rJcS}+Ac{9wPV)~OF@inT6BDt`7J13b;-z5vOXhjHozob#)0p_`) zu`nx8JxWHs&jAQ)fd9*Ry;j@T{bq5s&*C4U*zzxdgMsYp%^n|z5%?gF zbDQF}=%gJ06{2w7<^A;BQ~g_d1`k|}_eni)nC5}qTO0EDlYRF#P89XQC^czjnnN|U z-%6r5t|>MH^J(G6iLHmqdvWB&wu7g>Pal7Js!X35YEr$6_d{w%S;UC1J5tYGnb@C{ z6?kI5d92^MAM<0BZR}K4H{#{UO7&xbOh(a~cZXQb)hav=KiED1q*s`_u-bUAg@VIK z4h@aEgWHmVPbYuW!M~~63c6zzw2CgB+XvuFZ$KN3L*Q-E8_tcIb3p(=2yJqXL2-eW zS$duml`JKCpkijlEpaWWoZnd<4z8PMteQaTZIf=iOAL=6x}|aQY3U;A{;h1J^)MK; z3?9ReZ>)s=R^SHmrSfY|VIiN?x0>d-g3zd{Ei5{ShN+yE27+xt1ut6-D}<#K+H&D_ z(zYQge>k`Q%<&k~yX7fv`Gq{xndCpT#7U6?W!~!FZyPTZ-e^?Hw!^U z-C!>gFG=fuU}n)nyA}I+&D$Rrf2>$w&v?jiO7ffGu*_!4`>V|DF;;vPOpVAchwq=} z7$ItoO??{{B}b$)4!Tj}>OX_TqcfqT)Juftgyq zTxwl(K$P4%w8<3ksFNh(F@S}BiBtNGinnII3S-f1i;D+~q2RH&eJ|iB^{alPN>rkP z6ZMd4m5HT`vSmUP^dY3esSiaDm`@|H9vIHYU zQbJ|Ac67Uv4=FmupVKPF8DM7&(_l}^IOWI{DQ^2NR$^`raZHs{4_lKoVB9S?kU7w9 z_%&lvxX8O~Zf7rLB%zzKs?zTV?M8;z_*psoqpTEb`TZN1^;$o?nht(4Hr0*o-PFBm zowP&s>(qBmexx+-^**q_YEBV)-AAI?nbOw8mw^XP7>Uf6Pp8?BS`~?Yk=7&}Z-4z1S^VeWW%h zC>|q*)o#TqznWa=rFjGOa-oLBLU8r8P-6pF0h=*MM?)~C1&!*+ghaOUK*V9&O$f0E zOwb;_=RO8cq%WojV44cI;$Tuo()xj1fXvu)--pJk$C^PUs;DsQtKs|uZ^QX{W9QDv z>dCe$394s* z?TS|u{Q=SEGkt=$Y-|EWy*uBWyeBZX%(iFp^_;&7^?IXqhb>$Df)jE|S!1j-S#=No zuCv%;xN`l8j5nt|bjDm`jk{y_J+m@)KpOZ$eje~i(^|q%Q8||!pYN^v^HUt?#7W@2 zs0@fvyP-0R9}xCJC0QPHtm?j_SzO+K670wbNz*Ezcz}TI5K{GsC3VQv$)Iht9s%=r z3rnTM^b{5|AG*wuuVYd=p|;EE`i=UA_<#sn1^GQzqw5izp#-HLV$46AmdVuF%|0A? zh@amZ0yJ7ACFWX z7X92fI$gZ~LM+%OG3G`>T6$@#_>Za+fx>Ys#3^&AbHjuTL+^2D`h}KvPEKFg5l&lSe$xGc|j?ZW7V58?Vc5;89U91n1l)Y9{bxR3W3R(C4prgm39S< zegvgdkA&#pOP)scE;$bA2f1Zk=dVA@o88hsa^jSm+`ZjyarKUU$4J|s7_Euk(fjQ6 zcCaduclE%!8(})Iw6_Hy! z!yn(>fHIn8Mei6FupBcr^B0!>*b?MR;jF-Ck1wIrr1vCuO%Mh6) z9m6Yvw2e#eJ*cF3t5hja&V`w*J#$Paa|p9j{gURZ$@Xkok90+mvz<#!Ntb3KRW+-; z;8bmUF0Dp7d5K)bHq$ZF%Y=W+y)Mxs-oxf9TC5eZ!@#G=Vtp24?c2*1$24UZ%B&@i zPh4KaNa)EIZX-tyb&c$JMVHB}7{G8JUwl|wyU^qP(wMJzWjdwG+rzIe2FbK%S^z8L z-TXo_>MPY8p>v$>Oll(WFaA!~k5Y&4r$h{>iX4CXEf@Qg#M z(&~R-yps8L429Yzqs>rA$Vz=GRyPT_ZTz>XtwS*&8Zv>4Tl~8Oazh=Iua*EH(d_c9 zp8{dZH22#e_F^J%^&fnJr7?W%7w9tZDt^yDKojNt)H@LJx)2z{YF*F&ipFC|JwcvdI2h? zXu>;tV+Rvzb*_yUL4;P?E;;FU$w@0&v^i+|NjS@hZ7%=R68B-$Rou}cE3EeS7OHki z|3;<0czZ%m)I%RY z3b;%B`q0@nkG`BNr#Y~Mfa`(VTlv_L+Vx{6ohHl^A3YHOw;2}j{x@nLKHsPuB;_AF zvc$W0J}&x=dV?S6ytA>%qrX+R#VLIL3XH;8~;GAH4B-L(|sYGPZb~z|KGRXxdXpzub%s7x$M0j;D$g zM~*OhP6mgRN+V%K2yQ;`X?~^Nk~7lz%=qilQF4Q8xU#Yxw3F(WFWymOyyIM==oHGY zZ-J%bq_8;enm%>@*rbf@r)2guE6s?r*q>4Kq|1m`n9HE;vE5NoQ+3^27Rp!R{?*;* z)Vh$E8;-Jow>=mv>@Gszdifncmneu4FAuXDw#+k1&;oi;XEv0ypX4jybJ43{y7xk@?mZ zf(XAe&wSqmZ+IF#T#DS*%tnV?+vM3NpVM6x0x`~=pt}vOtBBmdFGQ2%meeRmfC%Q| zqoMg@0f?Q*N2We#b6R3&DfilVeO#FQ^g_i`60@Y-51;@$))aE-{*S%#zpia8IR5Qi z;@YNFJ_V{Ct2gEPJj&X?M{{(;)jl@}b$Z-bRJSwtUk=4RI{Y?ZGJnW70kdLc<2kpU zmcv2pe{B^vByTMnz+D|NknsVg#uMvpE>j#1<72+~fP3x4iceHSmBX?wc~8t-FO%y~ z!s0p9QpuKcn3*{@^R2WPIKX&2N_VXJhHyuI#)QLW&ovD-e9EaU=aOs+FiLGHCl{yw z2&!GzEm&Gn+B*45xWXi>m3E=8FevD7a92j&TRh2xtb7Ba1*S8M#s4iudEcdg=O^Uz z!W|09t$(6dyDU#=m61q0BZvVSv5}iW0Han!ZWWrZA=?A1Bru`9ip0I3D!Y}uZ(Ad6spU0 zHQ^k&u>)|wckN>Bj9}J_;=Af@QPM0~5SMF#=d?^iM*HAimo4@EZagjV5+!D};;l+` z#T#5dw0^IbHipp9-T@*SIXn}ehTgBBPTs!(kiXeMtT~;#zB-r`MwQVfu(-I#2vTWj zGSMif&fcI-WSUnF?ZrXF4tUK{#pg063I*k|CD>}*M;%G2)FmZcT9g!n_>51q`qG^d z@n59Ss$ibnF(XYQM_$$#z(fOV1&lU4&81S6{X}&j^94^9fwvIQC8B{NfW~$64&ShH z*<=F3AKRs%pTwrQcvn&G{Xavp88(ffPBk!5pnvk&3kL((LbYs0RUqfrH#N>mZbjQ5 z;fkvWJ4Q@q<`EA1HsBPn03kw39wDoWHFIwdt2XWXh!lEKa#(oGD7Gq2e+-M8NS+%WF6-;@#4tFbkO+`A zr7rFhNp)Y|-xprXBzqvo@lN1mxv9G^lmj}|DAf{+#zkImk+7-2Nij+aY}GtfkrWgcBzM}$13-~VH2{XuT3dW&$+qoZXCRwG;?*qz5DiLB z@6LjRynh%OGVG2qozu@N(8JF40sxh5OZWE((lY~B)@{980BEY(h$kd?Iobi7H01_^eW~qvg zGykJX3i2v=u*A^k1c&~k+u=;z7#!w+B|^zVB1;vX06f)~B8neSh!T?@aORF6;|hR! zwj^$s=~_=hXd%#r#?4Ydq{!gKL()wcQXuDv0uUKfq_V#jMz=3OT7wS^LgWAlz=ss2 z;i|#}fY3=4x{wM!f)4@>R-%Ui$uW|nu4Lqy1pE)KljwLulzbOxeih}cMo=Jy!$Z0N z_GPC2AbZ^v^7+S4dkIU>_|K;t@<2MQi=lE#DG{-AGbJir}o zxU{eL&oL{A)z~2!86uBYworT(C52o!kc&CV#?BvNWl< zJi+s_>`M;SLJR!&xS+=5iE2|I+D8x&Oa4Nprr!%;GD2H`|kE?(iQP8ja~pXa>J20b-A2- z9*K)H@um9UA2KbF3F?XPlTOZjF;P#_c%UH?iLU;scGUA!E%jT&lAs4h8W%j($Q$|N zJ9d4XSH?~@k>hEq&x0|fWH@iHMHX0OO{_Kv_V1hbACH*} zleiv&hA~R|d0>s|=-1GWBsLF6L?#bZCm^AgXr?}x0L@hA&ZS&h9=>VpJw$QSzp|5K zC00hDnc9J0*x)Xr=JIn1;osk%U+>QSlAq4Gr%OJaa75m@lWD_e6fGn0G2QETuX+*#!{LYytNx%@P7)rP!gUqO{i zZ0HbZe2uC`+BHpWh;_ znLVx6kT0#4*;=}%4_QmfX1aZXs!_u%f!yU#3kl;H9E%yps$~hMk^;s;Lj$`(`$VEg zn>aza>1C$Z^OJD={as6)j6Ul#Sb3w4n}@$IL`{zCc1BO8cqn|eJk?8FO^mGZ2?=n! z`6A^-Q_^{>(PLF#bg`s=?ThXYIn3}+r|lg3nA@Ik>Tfrq-?p!8vd71UrxDnkflV{} zEyWqna?cApV;o>le`OvF5BeRbNY$TKB^`a=7F583kgJTjFq8k9$=0smp$GL#MM> zZR5IhrXMzB^J~@luecRG>AhNG6%lK4(^x+lvOD>j+~;FGV{b0$xP~;%j5=+p zcGu@o^$D=gi3khry1{h0=-N~kUwc1npZ6B>(XBFO%tKcv-NH4;LR>FZBUP6LcH+G3 zborYoViag+B3iNm_2}hu>eT?&>zAZRJkft z*K5jbV7?8b)nmQ@N{kf4mNt8EckZ(1T*GTN4DbCD;|w0Uw|_V%U8;Qy418$cA4@8C zPaf&swd%AfyljQoY72`Fq?6kvBjm+k1F%{c1E0c|Hdz^h|;+(%?Tkdzy)B6V2TGb@P z+`$yW4-}`jd)b9nY|&M=wm+(+=9TKS<3a^&=$GG<)0BJTP#+E4LUf`l zo9=`D1!mmUw|wb^QCJ$lQGCrS%E4e*X7K}t5bKt{sk$nF4S72C4|XRf2(44n+gb3=gHv7m=2l2_)@|DNEw5&dj*W+E`qA}v z#*LC6^Kkf?L6#WB=~|t`FG1Dz{AylX8PE(En`{TuzvsLWJLpQkZh}tE+tyo;Y*s%P zqm4f&`OJlEY<1b8(aAs2Up=ykCvv+>Cu zc@vMXRl&y7k=o4-HlYffk|kuOo2uyTrN!00&_i^mp+Sj^E zjKtsaXI%&nYshUBr4LFId)NjS!NPf(F`*K<)of*tp2FUAv^mg)9E(2x^}YX6l->L2 z;@s~axBrz8cuX#=>fpqS00KleXQ?lj#<`93e@b1nHp9rJr86X{1K60F06FrT!0T{@ z9rz;4&-r#ylfQZ%X7$;-(Y#sc_l*E5U$ikLM|yE<*h~`)p){zxo5*mIbN`L{dLcd< zxHIRL9o&o8^%iZinz8E9Fw^Rxc`Kd=SY}E-?+uot%FD4&*ux2!BS#J>-l3dsxSco~ z72=rLHY{Fnqta<&N6~ACJ;WCmD}I?e5stnuxn_FbMZSK`mu%Z~gS}=qGYjoJ?Bzlj z5wCOligWlWc`QN@zOwJavjj)SZ=Pqhz*GE;6kSP(?_g-Iq1}{0EzJB3;+#$WE_W~M z$J&mCh1vnMl|Y#@G@-PYe^zes)@r=%((2vIPG2;Esq9z3FaMH%^KL7f&bQoGR?9pX z@NwC)6O{UV#_SX5TgMnU1x$vTTeVZ(Q7RggLNI)ae-B}0mxqerddY^bxi<%z+&?5Y zdFhTCwg;xV7iY8jSH6z-NjN0E&MxZKvh9CgIptAzf5Wpv$N1Zvwhg&WxdKjhQlgjR zQ(o)r7+~FRU_wGOjTTHjiZVSnLHHOmszej$xU3Mp53IC*lVpB>Gbob0AS+p+owW3} zSWlUufN<=l{HEFws(AlP=@9MEnaP$B?KNFN0%a>V?j;WLyl zry@sX0v-Z=Y|1c6e`DLwlFuF%$2|u59K<%u?ZQuFLIdba44fj}rBXP0_Di z_ISJ)j&-*2VmMb44IHiXA~Sk|Ivk%yE$i#*ucgIic0Wt03#Kx5m@>8~S`V>IaGdx+{HiL9Ql?OQg06%^#>k!j64r zlOggtHOI_np!LVhpONqXFI$siV}P&&(E>ydBD~Fwd!RJN1hjn3>SUO1xRQT#Xu#NV zqa%|JoQcw)*#z$b9)Hpp6?5JB5EEAE^v1WZwM8^t@3>gp!P5OlIp;HV9*UL#yudl` zNh$>Ws5QW@n*-ftDBXc*4H8oQnWTUENGbpWAXI|a3R3LsLqmtKq~Q&qHzb1v z)lM!%WdPYa!jIsK62V)ECOFboi15&n5-FKP{;4VcJF{&Y<(pTLI=TSEjU1XAhzbq% z=QuQpH76N*Nv(o2^&{Qz3Hsj5_GsJ{y=Ajrn3=JfJLZzK;W}JpA93`!OOE1tcQ8 z>sv|>s{3W^kbrWn&e!F<#v42pY)$&YS?iP<(EFhq6#9F`D0Pv7ezlD6G?S3BPJQ4x zf*b*envxP~sn3)}%kp?5mY_nVBLO|G(QK2$v&zwggTyE{wjon%5WqRCoU1!SoxP4) z%4(6$I}c+3in4>7LKU5HSd<7a3TiM@k#txr#m-a*D+y1s)zAWX8Di>?WEud7GVC-P zolUJoV{25)vE!ei*$2r`Q~XA7p(JT0dTM;m?H&>!-A!?0sFwA)sdg*&HA&DMs{obU+BaZ4K7>a7@9KvD^8tpBmFGRA z?heO*u`s8f^lx}F&cvC3b}+1!s}%{oOmZM^bo8!O&qrhofu(lJHh4K+j*S-34qnD` z5O)1)NiYtc?wFI^?wR1OvVt@tdwVtg`*-=0-BDp3%gsx~rQ$ao;0&bl6Yvn$q)-OS zq5TS)21sC?O9F5J+c9^?SvX>=oIk{!vM>ZF99EjaP~#2Z6iabP=5gEw2y&|I_UG7Y z69DvwjRywFbVRj@n+NYGQUr1TY++T0|CCI6H zLZIhPq(KLh1r%mbV&})%qYVJ{IUv5~l_U}sSF6fY9T3c_A{!Dia}=Pbdb$)pCBdH{ zk&K*Veg(#J`x`K>LT1K}xy4xNEc7=0Mxfx(-bl93@T(xOuBpoG5f-kSf}=zGFLXc4 zmuPH*hlg zjZ~321K}=8c!l1!;ZFp91DXttBwp=*TXdu1C33hKo7RALAt4JS+&UJmUnc!Ri&|K1 zN@SYJN#295b%V05fwjX8wvnpU+rKO^Q-?>#%>uU}ir)ei)iNIQAjyw6-GIpHbCE|F zesxz(nRIqLbul|xpFe=|1)(s&>}qV2%P#K_KwrHqgOSN_^BzJl+vO8r<^@DES6PMy zbxC(HLiPpS25AlpZ6MVhtns+?0VGMluz>lMdzJQz&45m0=dOcpn_!S4A_Qbx7UH+EJ4+veh#lS+Sz*358Vy6s;Lr@I`r$gqM>}gQb^2{q zE_mnoWmR<3!G~7Tznsx(CuKBB_9wX+$ki`<*nPI%Mc#C>PW&Zz=h)X&yDiT--@=Kp zHb(xNb2oo{bMV{>>Q4D1%T742w0oa#xFI*HcVu*PPU7GUX-8;uch_xa^@*d}Ydfr- zU8qSP@R+@~!Ihq1;Lu^Z^~#du$}>a8u|_A2#i>1%Xi8Ng+rIVw;j7y^nA4CctG43ZNJ>> zCvkBJYId?dcY_vUiaMfZnFsBEGFIQaV{<9dil5F<=+J>;#hK@46XU{Zy$DUZbWv1wDK~zJ3$csCL>kbda8V7Cg{*`RVK1opS z_1L{C?Rx#T*hiJ8lI9r3^;S2ljKA%bok!=G`(g6&-mnHwl=lLs=n?& z`XcWB={$ywcYUZMsrK2A{Tn{KP9jBV3`noT5L`|Ds|lG^8~NnbI6$A6FsF0#tFS_& z?z7y8xJD=Uk6+d$ZV0jQPHE2y=A5vo+t`<`e0!|-cwf;n`j%_~Euu~Co!s#J;f$Tr z2h)5jY=ZAqfA(p-=5=B4V_i{x<>ux~9W{Jgv(NF%v;`4c(rz+K_V2}$RF9i}i+lff zv}J5*RnjQ;-6U@Ugki*Yk$EVzhV^oBHtG`_scHZ*X!Bk6nkKOYkMLecW;_tf1Mt|G+O3iXjzZ2oZ$EZs`?XwZF)h*%(h zLv$CBB^7CM4^#4{2QG15U!1XWGR}teMwJbb|v^E9o~3AN^o|Jm1qt?>AF ziSQC7iFGiBQqrmrhP6+E4+VS%B^QQHBG#1bGDG+&G^O=JB-G*x7aKHMW%D(KqAd*XyMV{dh4<1bbaozNdFRZ3Htz&- z-;%!y^W!(hs+~StZfSWqZQl(0+JcxE;yt^(_&Lu_09gz1q7=$GoLf(>sO6?mQ~6^{ zBs-=*zELKAeE(r>G;rVypO5mfj#71h?f>#m9!Os zpD#SNKnO4>^a_bD1i&sWf}|1rDet9~vC8D_7i?t$dtFvjAI=WSh9q5i2*k;sZuOt= zKZ~{TaY+rdzdWVDtN1$@I)+Ty&5;+SA@iRF2n0N%<=BbfX<^= zmKgdb6dLSTuiimbHqX=dU-zez6rxGQ;&+*B2gka*BnU!6{!a zpY*L;!B7@X_LG9VMdt&VBW)8dGkf`j`ThJtOGhX7cCV zP4^RaZoOykaiZAn){o&|4G&5$ltNn`KVpJa-MN)dNPC{p{n@s+s_kaZ#IrpwI@>wl zzYCscDj@|5jFX(;2jkR}fo&IMu)X;@kf9tVH+`!+~@$%^&^#QRq zle{7uIyTQLf36pq93PRlWmi`{FC`aRZ0xezLJYAJCAZoyIt!?Ypg4({y?<*df?->4WuC1ytNe5t@oLMWWuIN2z$0eGbm$-u3UV0ahI#{WXHKLTDz za1OKK&pP*?dKXej#e8%bJx5^!#C1NomH%yGd%O6Y$WcIaIv%?D&}15c3k*IFM7Hf{w9W*Ov7 zy7q1y@0}QG14%dG7$b3+c>`hH{36LwOW>TB^r;00bc-^J{gxRuK|yY(hu;C;A=!{1Z zr3~NDzqffP;q&^oH&KU9k!6KJPQ>;RmbyEGOFrtPn@%uFi*Rq_2o`VEixd_*UBz>L zoMPce4k4G{c;XF>pp%h8KUIvG9Pnq+ctNFdAvsQ09D-)hiGz@Z!&T6-e<~7qK^Cg` zF-r1%C*7BhpLN1Ey~ml|JaesAPR%uOx$Ua@wai$PutIzKrPSuci|-qC5DBUEUu2(S z!AiJvZkPc7Uk+IjI444W2~09uX!}JrS;)U=>7}QR{6?u!=J5f)QFm^o38*nAL9`P4 zI^E-dvz>55v_}YWk`jx5O8|wc0+?lGBLEoagbV&`OMnSTh*f#wysR07eFeBG_#7{Q z#pRE&k>tz3(EdeP6UaB7aBJ^jP>UyM%ZB3gY+bgngj&l7MVM|H+vVdZ2)J41maBcZ zR9qTx9Wv5l66Q(wY31~zlQCBdRfVOxNi^@NL`T@`=&(U$oIVC6Nl8Q4EyxM1*E~dP zTEw3_b|~rWgR8jr-EI>5?2YaHVyhAhuES3+x7hiU4=;tJ1;uuL-!6B_@`Tc}yT*$H z70R#px5}biVmM4aJNp;o-!`XfwK+X75bCp(ZaQ7yj%r~Bo8;K|QH3G$11xS!CWIqr zxh|8Fz}=)9+^5U)s$|7lDoHEw?C&dMw==uCsRsIYNdYxE0C`=MUNqB}(HGyfecE2U zM7t;0OS(7n;|bT|#Nh_+qU--yuc%h>zWKT}=Gy-9wL#L<;P1+?Z0_u%CYhrT`CPF1 zx$&*tyGcCIPcUFC4*Sb6AZ7pQ@`WL~e1G6HgbahUt4h*DPsrINQIvOl8G19c8T@}V zx#27@NHal%-L#J*c2v;0hCDKe$AIO9JThdRkR-v>h}eZqzd`GtLmQuqyFh8loty=5jh3KUzzC1uBDR1j^a=}hG7jgn&38<)0uE=Tu=8yn zzgMtw>nbIOBbh47`5_=GFV*26E_D#=Sbt_G?Cht@fEaw zCLlp=VY1X+;Ms(Qk%Vy$7fw-H;aI5_aa%vHljpDM-qvc;?4%M{^XaaEpo1TeGM_Zr^l z*RV@W!9){`euO(#xd!|4)MTmKuMu!u<6jWiAy>%wn@qRWZ&w$DwG0J;u_;n?8`Rx~ z9oo*KU(&y7j3L-Q&_)7TD3+E_qh<8lz^42~^cKN;Zm z`6kT(g{SVjJW%%pZnRTj?W%ojE)#((Bxh7;W#^};mNAK66&NfobmBpzsW6EDDUfq( zogKh@_18jnEQ{@PQte5+G9J6#{IR4t(^bH|iryA9?+NHX{^L&u=7)Yl z{c+YLE;92H5FS8)FhY` z0DT1DwVDh;KrmdLC$z!xm~%{|c!c0zNVhHQ;0QFg+fRs4ArQdwTH|VQu7vr9yy?ip zd<;1Ie}bG+tb77Qoa+Ec$7KsnCqus(g7YXm0E`VbxM}2#-VH;A2*(E>mdG)NGv>hK z@W2ivk7yUnEn#u1jXA8$LoLEYgnt7o3*QggvBeJ;L?f^YPbeJ&f#^3Hvjq@H1S~`N zhzr5-i_K!>Sz#DjDd294T-a_Zu1HJ~QQm-b404$d!RGOCAV*BN#K?e$u}iY@>|ur$ z|3*pChmq&A3mM5h%w77_a4q3^+@;kmhKmWCdpSP8W-RSF@51Y z`Rm4*k?sj_GOhCmjiHn7Z$XNicr>MABqgcNP9LDtERPp1^^f$Rq6hs2A5^9i@AwzphE}=0E+Q$r2Zj6^H&tVH~O{ zDo=&9`=3EW@^7GRENo~POpEQ@_baSZEhT2-?R~A!V)n0<*{_ta2(7k9d%@DXi;X|J zZ>}cZ*HYemK-VBDmU!RcUDUnzM2|K`T8>%kfusFudkgAx4j9}aUO05c#^{yDGnOMJ zgYqtuS&zB(-cSSGGIly=;!Dhhm<}t=SMsDE%1e!`x9$7svr2Jv+1a(JKJL*64ZQBm zdD8;_%9rmQpq8=X4kjocs=NR6ksx}1k;oz45gNnFUhwXR)|v-)x|DDul@EW(YO3gU zS3MUPxDlI|@coJMS?9!IZOZCp$Ll+thgqBolX<@~PB@L>eG=3bWCygZ{e+4+FtkcL z(Lk^D3=Vdm)uyG@r}8;C8?B!ij&13c3x51U3OXepV)<(8Yu%B z6-6HBRE4-Lhf_fKroh786<$C}q&@p!_X_UDS1 z=y47#u)AyQCa)Ln;?7or3shiamC9e6d+e-D4bQ41KK`{`{&CWoU;EEsbz9ryf}cN( zH#(Pj@voYR4hve^)iTzv`-%P+a=vXfQht_xESB%4{I=64XI)aF)x*SJ1qbP}M^x_6 zx1P?hO}zNS?xlA?9CrHN(9G=*&%PdUXJ=OFp)X>TLXN!*WSnq)*NL@u{3qbN;qYRg zyu2Or)R2NB<2zP;-fnFgJ(){6e#Usy%E-x2<|o4KBNlh2*~LC4O?^+h5I=t;Si5B3 z=5mi!6x^@2=bAg2cFfc0w4E3HSeFbvtPc1+A;&nD=4x%ho%w=+Zh%ZTo=9;g5^0_) zhL!UOte|$VXnP>tbJl`+=s$10g#cDCSIzIw0C^f|-+e7a%>G2nU_-g>O#l@AB3cK+ zwp6WtSc{+M%&lP(hO?)cqw>tFK%b+{Z^}mnOELJSlcViI?PE`!=`lP%!wAK{wYmSA zJ7{4Bo^Kfy1(*bgi7V^t?ar?K@VEno z`f?UuQCbOs%D)hW)}Qj4+&UOAdAxG{P2~@TcGh<)Kh-Xq*!V#)_Vfvhzj}|Ed)6H^ zjb9zNQHSq`C^?!~JMOxA86crQ6zpJ#xSg>xS5eh?1^NIN(eV(hZdxEl7wdz9Mm-O+ zYY~e4gHpZ)%eDX5<-ID8it$FT$BY}jf5VJ~*sF8(o z=?&F&N`s-rFOXOnR>&Lv9~0R=o6Ckuk_%?0$2L32Fww6)l$@%XYQn-6%3US4l=3*7 z&xer<1C(k{f95T`{Hfw=-JuW9SlZd`zFjw1cH{8kb=Q`tYO1oSGml|6ymgU_SE6{( z+JM|rHrrxu$PK;zGA;dspycsF%B1{OYok6TJz;@4(RXQ-qk7#ci(jfHoMWZ$JJZhz z-;-i4IhlI(g*;(gSQ7YXpHc&6#YdJZ+b4ODKu&Keo`qY5g>y|E5!8GU?L|;ffbH<~ zF&w^uFa;vIh^DJv<6Q)O5{DK`c9Aa4VXx!hJ^?JI8D=$_&`QML(T~FXQY2qE`*coh z^^nF=7?2Q6T=$+oVoOf)-M)a0wC^ zM{F2!q?Ey7!55K7FbW*gWK%a-#T(|3 z`aTNkprOO_+Cp#9y^-`~r0rYze1 zD0F{hd(*$dGk4N*^40+@w_1Y_{iYvuZ_*mG9Se$c=j5oTrtZ#peZ9hbIV=D`cf_N7 z?IZFPJs-UH+MlQs`?9Dnsax27i^BMLy*g!It?1>hgr{X`Y1S*de`JS#{M2XdkWg<@ z$9z0|Z9wquoC70egS`K(yMu&%%~PAbhaFDhHp|x)UJkq$a3KGE!KuC9KhMVAl3b}> z8+Nm&p&JbIjuqyPvB{@o;-6-^cZ{8K8zOA|Ilfc#Pzimp*lsBL!iVl+yqgWc4gp@)4Qty z1uW8Ool%cj){aw^1xBY%X4Bt(`_~~$w(v+vKYqsxew#+rt%i`ss4eqxA2^5&U8^DrCiBtY%#feZ^H-n^K}j$i7*S183vKCy3A z&;Ek5!aV&)GVa%zAWg{)+WPC$$zQ!P?C;%Bckr`IIZQhE#^&>M9lxV`i{I7@ z)N*g1q++`&ht+qh#%(cuVdm8N#F3aKbqoGqwfe8oRGS9^TY~eRh)$b2Xj~HrUBdeh z*ur?yRUMpSh?3R1n}r#dpKfZZ3OQya@)$>dEz|epVq^QR%H( z%}x_gQHQKgp}IJ@`R8>V<;%N*jz1yK1kb-;ec?%HDvD2f z+EBS}8E@pZw@6_9)V7cVW53z*;Fq4cB81s^7qG_EH}Slp4-eFA?vq}-Fsik7r`qTB zSBM%VB&O48Xg+)`8FrQT+jA&aKjmxFnkYSAC5kGp8@z+Mj`#Cm`K`;G7lTmr;o?&} z{ntBdZyDMP*4*nAILY5P7*|y}0R_qVE_s*?-l2a!3E6vwH@a<>wsby?3LAG-zWl^h zTM)fCnPWWAd3!(eeD8D)PtLX5@?BMGgvRjebTO!sa4B6`4S@%8q}-LncyPeB(=`SF z%_D~W)SV^w*eT`*>^d?jZvgzsW`8Cc(Gv)tn8!`#E+!wQMoeJIPk^0%!-oBDy z$#MmW<{j?kyW|o(7?1W9#$7EBua}M4x#Qk>a}Uq!DwZ3=`F9+7dtuRhf@9|ZPA1U` zlPlJ=Sw`kb*jsS%N+<0>Vn5*+^9Q+#^jIU8-b}`YtIK~_RKG_0(gwW7ykQ`!an^H` z)IsM{Hy@81ohD?{wRJEf`1oXx#QcDOD0ZKtiL9z&|@+F~FjvDcVU zo@nCaL@^^I@dLF0FiZ^$dhRN0vE1;1eSOb2dEM9T-Z{KRcMv6gCNRkZ5$EZDb- zF*p38x%8zdvTdSi=C1AD!ji(G_|4#|TXn*=O7K{=>rAV=Y=f`E53 znWI_I;@;S^!9iWtPQ7-bsp+Tj{tgG~b;JB*`zPO*)^9{fyZyM3lu`6s>5K8Hw9MZ3 z3-g78f$tGcr99yMCU9|v41n7?htz){Jwkfn5JL^0a zjxOnt>+;R7zcS}q=95V4k1x~NsoI*V{x?Kx)!niM&~uM}9#avc_IghD5bb;dBe+f+ z4X!LQ7B+&#DEUqfR8zx263=;5EUubr=fuC;zij}pKvto)pHT!DSSk4IBrV9jc z!p60om79+0P+B$z9MeoDaw$XWg{3M~Mx0ex%K>eL1312)zlRgwQrnh>k%n1Lzg2Agvjk6t^ERrwsqf zg^-x!*@WqC482?IxR5P#^fvo^s39gjvo2CWh%Ou_{jjIWzBiXkIQ9MA+ePK|j zqNuV;HXj&$kUwv0cdu1-c~!0oJRwn}oSTUx?VFZdrmOm<_;~nxqJ)A3JP^c+YoxG_ zwUN=}Q+rILB2TyoeS9NT76Yv{To{dK za+0+??(5kM#WJK8+EH0%>Ar{_oSQg4iGNiDy9J1vjP1^G!i84*t^7o0)2x0bU7Bye=s>K?317A)allh64w?|ZTGK#K2lA2xsVpxk-6@#oy zqYy0(^IV;Bw;}~~XV8igM{vRWB5wjLN;!Uece1&U=vb^~(YOjV z2$2<%v+eHKCOWQSYAMt;nXD}=m7*1=4PylZ6k;u2;@0vzIfawE0Hi~c8xW7RaNEer z(_~rRfuh;=;JW=>Qkwt(md_YfFl@nN$$2p4{DpO&lcUxzO<_U`L`0lX!B}$luV^au%w8Xx}9&WAQHuW9=C6;vyPoYjt+7D}SK`lo8F- z5yC0phqq9J)F5T_mKLh)+Bv)n<$WCjumWt%UW@je;&-E{DX=C;xP(bj9VX#QD$GW1U#1HV}RiRt&UA zyf{Wd+WdIGJV%N!p#Uk_%<9bz09wrQ^!K6o|z z%qMZxy!+M1iORY+YcIvR*k(oVYW-*=d}W7C`>S1f@6rs?RFn<2;@hI$-b;C*$za}G zz5DETerv^npSnjMZQVX+7%#N^Y|lpNAMW|JOVnegH0EL4=-1e0i-#@>4-(@|Ed&jt zd|t*iDqbCpteC4FHh+YZS6x+D4)~0@R>%71!U_6v->I3j9r)DUg$~=YwLE53)&8KG zGk-36g$K%bZ>l{>!-SU^y}2J8w7*}j>rHu7a){lg@bLMajGGRf?e5uiUnC@(<{y># zgx`#+o*yS3Iul<>&bn04(XCt0ub@$o!&ZqHt`H;w#5ww9-k{a>R`>|GwrC+9%vnEB?f*zU>7e(?}HEZ;|HquJfM|6DTVY`(K%g-N}Y?yQLC1+w)P z{5jE8)0=#x3w7#;n{p{(rawQuU7sl{rhKjT8aM;K-JpEgv$Y}b>6<^O(e_NMVK+z3 z2KwcA^^)cAy=Jl!_q}bDI<8AU{UB3v?M-_ktL)M805$ue#6jlcOua1cx0hpQaL*ka zuDToUawvAF?x=1*F1Tbk0X)+g=_4)-qgU$EY z*gw+IXQOId(Axyr7SwSjk3RhWN|C-dHPp7>p-QD*4H42>>$zuMxC2T$!5<7x8s?X1 z$U8|*rgTe6Ra$(}VaJ)II4wso)$poZo?D;Q_#8E8^{AE=(7s z`~=m$NjvmRaYp`AJ%P3I|1P5z6t$IY71>kt2T|5895g6LhrrXGO`{3gp}j=*R`j_) zJ|xAS^t0s~Nx1lXtnXld5WCUyrpl>}Ru-|W7KOU0!_y(b;4Zs=|}idpI6 z#*3J{Mo#TO5Oyr=4MtX+px0cBhO zj?#)%n(H)FU%xqk5;L515Jh+qFz|04I>;@0K_!-7lIu+p7|g9`LllQZ2I*U3gXGI@ zKH#`XhI9RuPXaN4L}7qiP%l)dc-U|%BFNwdip0QQ$Ptd+Me?%b7<5UkAk5-3(cjYCI<2~(;L4!3}c0Qlt>XCyA%FB z`gVPugVrPY`#N^J%T6Su=HwPWw_o$2(&BTx!QF->!f@im!=4duz7%f-`8HDrk7XIH zn9t{iA}Gv6cC4HO)M{6DT>x%9G}}O%7rev;A&k&Lgx&}DIjczr6VAoZ>as0=P$HpM zXUQwTvIs&=x3GQ3US}jcZe^1Zd=QkQQihuRLq(uosQhUWt|}o6I7ds8+^OOvP%^y3 z;FL=0bDD6UJHJ|V8?S!#?B7t_;{H)#W6#a+A13;xN=pkq>qY<58?9NrHs>>`RBhvL+@9o!#$KyWh_t)P%6`*O662T-@ucU;i z8x33VOR^{%J^=4$J{{Fb^JmoR&WF%Q%e-(1wkt~xDguSJK5z$TJlrm9EH^T z#N1zRGvsK?#ALUu4pbJT2yjrGCe2Mu>ab)uNVJ#EZ5!^4^gsKKXZMV*p@u*Gyf!VS=%g? z{jXojrm<>GXIW-oFgid*No*)Xxm^5BoJBG*F7U^|#uLJ!BrzqNfVY8O@K69&x7FX| z_07J#STkE+uZIpVhTJpKp5(=C5~C)o`AAzo{rS>G{d1FadY_0_l_m1tTaP1_LhXwV8>23txsl2G8UbGdR|tW(t5ZUuX#G0w{wHi>9qejnCI2iZ{=nqhC^Xabyu zGD-4-GWqGD@7ov@dAnGQfPXA&3&Rhpn&KkRG?|8gVn}+TE=**+PpLYR@OZu;D6eoK zm-XDv*nIlxwH`@K_bKTA5;|Y>WK29_6=f9{>#FZ6dndn#&LL$!1{^GP1)3|@zW-vk zckYMj4ta%|*msOQ3eg&M}}9gw9n2+mz0yriek6^ zHZwETlcqF`Unr{A+B|o7m5h8OrYx9?AS0pU}{~*EOqg#$x0yT&qPm^)(!a zu_27)f~>6uX*x_TABflcLGli}zW^L)Llfkt$XFQ;XbK42T9p-EF3f(wf~vzl&p0yY zblP{PWgiU;ZDhsAjsLLG&&a~1D{Nssx^)%yfrSvGCt9+SB&04rWOig?E`QTY!EI-9 zato4|hr;`^(jrB#o4W~?Z4ptQdc=Rf!QJ+{?RS;DPf5g+ZN@+S`hH&ak8I5|T-24y z21poNgZhK2<2}z$WO}?~(-D2O{3{iq;;J6v8{SS7-Cf+5$)?HSMk>=}I=QY6>l4FjF~cdXwMQ`{lJ=T2 zCqa=_vrCl0{V*V^h3`mBgX!l(3u3A?vS+5jEa$oiCU%s9_Gk0#A32SQ_G ztwxDe)a|ga8ut(=f~7&Xwveq?59PJ+M(;b4%P3nEoRNf0w<@PO*+k^k9i}>oCrC#u zxdT4#Vy?s#qq_|&WkwSSnqti3-x7Qsz9t&(?EV#c3n%#M-`wRZ`fKzzY^j@LMKy*P zg?_U&h*y1x!U2yA+X~ld19on4NJHPBIp; zbe}&L@QmGvyzgURIuHFpom`-&5LV*yl3`fw5B5Pq-tYoPsfV*8?(cGsHDn1k3kEij zzIcUtOv`=@16d4=RbQB)pr?{ z6snKf*-YqXo-Fxg=P|Cdy&%$XDmHhPjnsFs|h zxO!uGuItIk{BD`yr0;UL3snoxYZE_z&M)>Uc|YygS&%s8ul@Fk3PW@OjY~0pRiSfa zK&p*pM#l{&2A$9s{#v0#=Z|E`zxIx~oTqPL(&}V?IA8MEHka+r&FU9++RE3Mo?BaC zI)7TAwYK%3Pb85~6{mT4o)I!0R8AZwzgdP^s zc)V$6t_R3C|LVU?o0lt$VqMW;g}ocZHE&W(BG~W%6@US$zu@hUe^6?a1`SP}Noy9Q zUM4?0u#Y8o-X@jWJsf8G5XD#Qy1aM%e3dfq>m6YMD(b}~X~X=fbwGhQU&ZG zo&B%V62XX}CB zixPG!r(~ORrwbV*ESQUEpqdn;gd&_M#k9CHz(_!T?t->jea92EMi{-Wa`Zf{bI+Da z1nEi~7pqz;5yXo>$}^U#&KOyec>WfC2$j_XtlS_THlO!caPljJ%h@w>L=AUDS)%_L z6{ASjdI8(|G)xt0IRI5p&Dw57VQC0&FMvcE#?_o>aa=L>G+IcAXJtf~sPdN~g-*Fu zxgd$9$R>GA0KCKEg?FRk2ZBY(XM{DBN5*)?bCCxEATexVEOoX{bmnv&`L%2>;MD-g zA@~>XxCq)(D9F!?m%q#Tc>DjTZR^y1vyLiLQ-Q%sCFV})$|2tZ)p)dZk^?Q4PcdXY zZQL8Yhkrv8i^J$GpFuaKRTRJkgMp!Q2nCRfET4Afk$AQoK5OyeHyQ1$kAR4fI-e8~ zT{%!!d-SLpl^;445EKr1Mo}`UvrsY>wWWP72_ehuMp4BH6k>+@9~530NHGA10!Zc( z#ZxPy5up`4Aby-7I>@yo0={WAyI<9VrRp^@!n;7DWbz^RU*5uL{g7PGGZv%h7@0&R{%qe1UAxHQDnA^~r@S_Ll}a z1dQI_F*FK|BDz=`@L4ta0df@t0~YWmFtzF-UR0yTH?)v6Uwag8t9 zfT3K zFv>IrjWzNRVII(Jgf%JufJVOP$H6@rgU3cls7`W$L40svG1xj<$^Erl{sH%adnCFB zaj`m1wMatFl^x$kTvcXFHyvk{I{W@YJ_txd;vib6k4-R8bsJZfjDRlmC-xu-s1Z<6 z4k_jY0+1m62jUo^XH?NK;_}iow{>NcAX!wLk6%TlYIdOTw(|ctu|X?twJK= zaW{fL@_;~dgveESjPE%9Eq_5^5hi$c`3kb;fF*pYg&|i-n>yy}$r$4f7+0uJC{*K1 z5}|B^I?8)GxEIg*JJEGlppQ7YW=^?zsA@_zScf*B4;~`)oZiK8@N*M)R^;fILI)y@ z2!c?{f{ZKP1+VdRTc>2>dsz3vaD`ZF&89>pS8i4n2vE_e#a;jssReOx5BV}7k#PDL zYOTUN zwuWxNa1LEs9nzKzQQO{lg`AxhNr@D_^u;)UTYxCMafYP`#I3|@_z z>_SQLUtB&7@ev6E^qhgxDGlb}n3`Kmr?jg}Os%f;-*FzzaXy*MM?;)4o1zKf zTGc5RK`T{Oxk(g?dh|ToI+U({4crsF^FV&z?E@_i z=c(9TXll!R5_w-4Dpo@gkwXe zGqao=_kGDNC@L#`6{2Nly|(bwaW(Xzb8FYn*L|h$*dFV<(UY|)N=9C4CwoWp8`ic} z2~Haavqd-6fA5@rT2kpvCE;yV{15D->`!lfmn@TVF=2R*rb9=J>DJfNf^9DzPuuwy zs2vn!dVm>>x7arOkDK@Eu;ha>xor;jKGWIBsl%_%X|1-_En(<{ zu5+@YecP8Fsz`aGlnw++ruJbEBqXE`yRkQwlV9n=(MV z%llNyyw8%@M-v5^Wr=t}@M?L7c(q&sD~G4xMCcDXw#z%LpYOrz-m%Qsm3Z5`@^Ty@ z@F@Qk7XpNKz5%I}*6DRq6lTPghZ>)b`=|!Ioi8kW_@TABk!9$4zO^~<^u9Cn9{=>I z`mMNziah(Sn!bAL$i%hNB6iy-LV3}gcUbEE+jZ) zH8_hWZFHaALfe%dkGmcB)1vC|*0&1!z2tr9z?mC24bQ*3c*6BV2|7wpN_OW9O5&*9 zW<*>525aM7XQ+}wSn{cMb(QxKCo}g?s-<6fI;|k z-CHxKS~txUq`2I~Vx4H$krM`pp5qsVhq#(uAHuk$_Q3$Rk1ngiOrvPhoVSPOSL? zYz87NzBHv~TCh(2_%yxk>&YDB$z6dN#F`Jbh2j4;b%@A29Ms0oe9LkaENf{L+jJtg z;q%vT2lUB~DXEzP`lfP;pKaZwlZ;E2JSipWDPJr0{a~35i+g=DW_R{@G;f($2`~QG z?{lf=aVDtAB`huuYB`~u&yJaXmwGsaSB~>+KX+-JWM^vB=%LuBzh)1r6&A9D^=xh< zt*aat&;}T~?MW#_+~U~I7+$CWLu^wd{IA6wnxq8PammkU+R)-uShqqNlARVG$`I^JPGY|rNzBQ_c3(A^>u6G&UU6uj9As9lZeu$B611zqeEx%q%8$0gzL0yR z+6-N5n`cH^Dky6oA3kQ@^Xlx)@EPS~r9KB2qG`{+X>B*Ub{$EC+$8t&SIb+UY&2~q zvZmq-COQZG^XIIFy&hF4dM}wX!-fljJ@g%I9(WqwYOA?Gu^-YiJEfbWbI&6`Hy^Lu zp8H!i?tAgG=fs#uupdHS|9GKXN5!^Prd2+%E_4W#@I+a+=E743Q`XWlaT)zNelH^g zN<0Zfxi_X0-T8HfCMLTrYYuD0`WVZZ*!(JfaUjVUDL`C1(3ID{C)1(7UZ!(pS@JC| zU-Bz%Jxi1+Mht9pw%f|W&K0*z*(<#=GWMSNgBlVkzz=I^Z~FO6%((N?!>~enQ|x}f zSEnxGyZt7^@oLvAaGkxr%*ZFHT9=%XO+Tnk+IisKj1%g$p@J~k1{dYCWaJ;Ibi-7q zH1BMkvJw~ZGOw-Yq@$d3A3u~SFmgI)7=N>V@PIV^5Le33a3>gcxh6bP^EFc*pj=&< zY0*45zRM!aUs3#fLf$ujl{cfQ`FZZj6#0kUwacd*CyLM^8!EGR{Mt_ImuT{eC?y^u z9Z4K;5L-AT)Ofvjs%-b1@IP~9-BG*r3o;y6j7>Dii_v8}2Op=ulG@^P%1hwuZrf9{ z*LX*(?2{ZKzEzi{t*^c8V%q6>zdo&X_QN)Uf@6PzTE)OvzPsLeJ(j{K@wQJ%f>Au+R-u{%}E3x+AC^p>qiU=8aWa(4X0~Fb&B@IqjX-ex@sZ`_|s=9QKye@ME@&@yPy;ynJOe z$vbRIsOHf)rv%!O8``_n1`<}LGAsHvUKj{yPK4Ke2>bxkj*$0n$5J;mc?CNEHxzUo^l5eI2hv@DrWg(@bN*h%+A;)r?h1+eaE=jE`3`E(x9X^)2#+hP|i-4UKu+( zoj|7i^nQ7@lZ9nJm&nh!e_V(EYpU0x4Q@!hVs4Gi=6WagmkqI^=|_Ja`f@X2%ihfR z`!Nsp&J@+eyZ$`4TB6_s74orm(~sYwMLIT6+PnI9EolqOVYrX~+MHklVOVm@gla*e zwTG8R=D$0Qt}f^3DCK94&`nA{+S|N|y{oM(98y}`^P|+nkbPtzy$0C|1V6%-_n0~L zj1U3B(;QhKa!g!LYyWZktQ_B33&khyyqKmLM}lp1&~-`Tbz zDY|jUmRO#D|7(6>JY%6{@sHTNqN=Pkt z=)HW@%biNI({elTzxu2X-f~cV*z^6`vAB|n>q(Sfqd&CFWOlpiy|k%q_H)c+u8EA! zOv_%r!3^)7{CeXuJO2~wW7Nrv_gkF}`ihh8EQm^PzTtZZ09p$d6S(>(o|4$NQL7_A zO+ag%hhA07W*!OW<&x>$6<0JZD`%lO2FkO(H&#<>CFxM6u$x`)uSR#1CD%BU2;KIAe@twMNwOTh)LQKnYMYfMq==}2FkUZ0y6)=R}r<8Ulvmmy2j&{$F~v-#m- zkjE?Avmm1I?A6NPeuEbO(L=r4z*1)8!rHOI#xZuFgcbCav}y`6=dlrzJJe;U7F!3H ziC5r~+VeAe>Qk0XS!oeI;K)kV&fRv6lX^GJ?iEL#`O++U=S*)&)_sL|GB)hnBGcHj zf<#|uMeEZ+R{6qgq}5{UCh7=fYC%Ko+v7BG>r3IdFW%V~kK=u4#I*PV%{$DwxigqZ(himm zHHF{YJ5jI2!^CW>n%eH=cR8gGXx%d5uha>)L<_T?bHB_?^!7c=y3@BspvUap z>rI`fO(OrEUow>*X6W6>FVD<>^=a15et*Hdb*jHc;*itSai?MJ_C3t74~=tIv7rW^ zPp-TgcyunaIs6SN=G`-I!q-dekb{_^JrVW=`;4Aw_xlnK?eTnN99O<iG zteB48Qp}U$YYq;FDXWC2+EiD08L-FsLd%{JCw~n} z5Hob}Oh!<}aeDF4>8f3$3Bp!*qOwJiZr$$pj`b^;Dj-ElQcfX4nO>Qi+J4A6{!8-| zGk2&NHQ}jhkZYZ3YHIN_phSe?;2;}(d-b1$o;!ArSB>i+iv?qvN6{M& zC>NWbYHMhiwr6jQaxA^slmE#_=NmRkQ>>$6i~p6vyxdNyQ<6gJE*l$N?5wsQO{6yw zC6-@#i0wL|-}AEoy+@k2Qc=LvTGjc|QznpE0rGfirT`Zr4hK z3(v}rq|2g)s8@5**8D=-kA;SY95?R=(jU3W@c#Av9lcHckIyZOH7Md$1GF{%pxEXN zfJcX{_}Q>#tUP3*N7JVCcI#QYt!uYCv|*pE{D|)5yV0Ms#qRL5&>Nrlatr$=J|<3b zNCup)$OQ|qOSn4y z)nz@6fM(>e?CI7&C@G_<=hNU~P6yFcJ25hU%2~YJ1y%j!tBDOw{2C6jXB(X8p_mlO zZqYF+@mpZ1rb=fM>Q-})^weofS08@qZT%&{CtYS4#!oEkv+^-#aDy>ue@kY{EWLkA z5@AKmJ;l^5W9)|>&XVitm6Y*8h_7-S`1!UqL@m=Rtj6V#Z&>f37rbj#P;mlE)0+wG?^c_ zK@wb~TEV-*6E!9_7DJ)oy(Pk<5oSza$h`7$glP~@tt+3_EE{{d?LUMPuKu#T>|__R z{i?u%hFe_HU(tdx5|1{YpC#Lmr&DE>i*`PW z+uQ6<{VlHT5{qzxL!F)!X$~q#74S>7{6QUla(?MAXw@*V*PG?cFP+Rk;yv5K7)u5U zG;&cD&Neu{ASJpspkK&aYy{`dl@SAGE_%Zi#ja$(HT-AsHKMb%st9`-VFYj9su|=p zu9%$Mr!iMQ2sHq}QNhQDHoROm_`64`~VgP)l_ID~ab+{-QBrV5lgg_5d`nhIDXBHy%Tg zbHszDSrzXVr@0(?SpPnvXcw0HTxTI~CpyR%yi$;BHSnx>$(NTyo6qpm7z<SHk`aT-8WGD= zDt~JrNNEc!a(c-8sf;nrUMn>II0EE@%(2C5-WK;}gFaO-GB1*%zlEAhVIqr1ho3}? z!6!+M;gzS)a4OCsF2$%pUrV+sT8K3Ee{8W8PK2_CMi5KQ59v=;s5Esai?Vz@fpNWz z*y;eDijwLC!BvE^#(e{LFeu)3ATI=dlF-R&@3{iZBQPU_oeBCm8l;Q3IM6#D1+!TI zV-Te^E=`_0i+?T1{uT=mVF=`{kfj6VI}JskQwMPoVJ<%o`DLeRQ~$!?-mPha7?o0JP+Y10=EC@Vnq9z?CbnyQipij!b89^9!Bj&*7RW1p^* z;2LsE_;uX~2MxAeXlo6%!0iP{?bG*$1yP*rSgz(fxXR!|x>@<)?;DOlwTD8Eh96a; z3|eI&P{5iLPE>AgoCI|T60w*nZ4EdnP`{qMQnP~o5vz1?_z1~6%$7yN_-6|!cEnCRNzW^q4Pez)LC?)*WK z;MQxag0}S=b;OG%o6SQ-d0&fyrUbIQtMQ7#cpVETe}Z{LXR3M&q`NyMAh=vysMTWC zO<^U|btk)ECZO~JbTky&bD>sOe7O=VjPLj&VFYS`CO3F$QB6G5_qEE@;9lR~>K8diz!*XlBRd&l36@m zi<8O!Q69C{_uwnt(eF`iT~yv+eAH>wHiR#^#)}rDQaL8NV$D*Xtb<*`3%xL6n=63fkO9&_>dl~sTtpty0rxc}7+&RL78OyRr9r`+$Gks)7w-%N2ML)uPh8Zc@gNrZ3)9CV`v~}jYVI-j4(a&DH}J%SoNC-K-{9=} zrP)s8VsQ<^h|N7Vrq?@4GO$Zy?hicS?>*)J5Sr)M(U8e*bIbckV#;@=|8zudLQ(Le^x- z*dxb*OLG#1pO_)+$0B8&9%|EuQw4#R6pLo{;<^#X!MWh5Yklm2Fv5}R_v=^ZhPBKInX;GI*5S}FKR(cj6Q7bWDFt3?*ZXiT&%~Zx=YvwWyANeR0t*Gw0nhLI$ zMhy+J4feR^Hl%7wgM}oIKWkQE_vj5pzF8)o*wcf4gZAWIBJ}Jw@I|&2B0eUr^yzL} z_m15T)BA47znOX{TAI5MYkTuoJSkFlH_xSg?_m}z^HkNmJr9W1Vgzm@VN9a-fn6TR zApcJu^U(nmm$!U?cag%`po?g0{y}w7hMH@3ae2$m^H};_9RSllnSn~STq3e;<(!_p zT}IXvlwmT# znnffQ7E&mb-*DkZ;u1N^yRoJ|!0uR{B`Zn=CE?Ae0}k-Q_E(^|1JO2O1Unr~S7hl9 zHGVhI|7`0qAbhy9CJ9Fjz?Or{8f%;hW;KoUlwPlE*z=LFIh z$)Ex-rOX;f(uoZ#R^WpGf{L54lQ}iPKocH@v>RdrQ$PwT=-RLl?XU_pw~r};AIKaO zT;U3UP*aLIyEs28HUn3T54+y~2;F0pP)pj}?4NvKE-TH+`sB;4O5f{pe#q}Xb==JS zJCPQv<&Z|(cC*KJ(P-d)#WT~yc&Gjj_?|2HBk=;NQBwD_SWOL`9Zej)yA%HMIKO}l zAiMg$8f|);abM)P`M`w87hN|WKOeWf3B$jB4IA3tdtob$5-9o%WYI4e8zbgdKV%1fmQtzHaU{u2L#^oc8PwDo?=@ zKjSU2;PB7;X2GDMqAtC|hhM+=sNAC`o?G3it4nc-&dTa|tox>0%cTOBI)nicQJ2Zg{uxLkbiT8Z>MBQ7txY+NtCR26-~ zb}3o5a!-lv>DW>)hXAc$71W3$v^myD7?*tRlfyQoi~_h~{x&(r96Nt;DJzu5mg`Kc zQlOLS>TMkpmhExJygJ59lHbO(ah9?qf35!WZb5YI8kEe&-+AZ|o#z3h%xF(I3U;b_ zsE}3E1wxae94`rr3KTPXVqJ}qZI93u#!Ys)+Xs4UxAClgD8A%e%)6HLZz)0MndN)2 zDnHPj$iZ2-%u24WIMDBZn4%OQcd>Qak#d8C=UB&1*ty~pa(mLPZlE0$iTy&QTHS6% z>r^twoFM84GZw2eN;c6I?LryV{a!Nv)=S25d zhB$94I6sAzoH-> zZ!&>8+x)}4uDCG$*T;gk?+dA1qZqPV#w`ZaDda*9!GIyZTXvVP#Fk4@zl%5QiAwf$ zxERwL^49sDV37z5NF(qKz4U>&*WRJ$JBRY|!vPZWa^qV@71z+6?w*+-I`WX~vW|Jz ztP#Z~j#4NqtTi1l3#uuPB=$Q!G%iT_U_r|<#-{%a2*DgNd@5SD>?nNXQJ&*HG;b2& zxtC)4C{BTF340mMzi4kIm#brcpb~XNXB9P#I;lIdQZAo4x`H!C@-6dfS-1Htp$iFD ze9>r^rR|QMvKb9`V$W^DLO7m>G-5@9K<}wN&N^B2W9G#7lbarS*f`vNTCY|eI_26c zS}+y;ARI~3PB^@Z&|f5j;1Q?bE5 zVLahxwG>A#1cWrh`Z5l$5Dt;=da!`IOPu58gC^Y8j+Gxx=9sLV8h8>_xl0tA=ju zP*&blNv)s;X%B+x1_}mo^UEElwG1}DdL3MP$hkCL>-xPxmsqzZAu)qK?%k`!M zFX&5j*D(Y2&)D6=|I*8xet+(sOcV31R;cYxVTF(lhfD&DPQihl2UmpP;d@n^E%#Gm zx(ZO0hf=jSEWeZ5N@9474 ze>|mV(2X-uV9ECLS3;rb0jVa;V1wk5TpRE4V{cP8#nh?r#*C-Lu7h)n;Rh#ZJPpoF z0f3kqtwx0js$M<*Wry7yc}-&NK8ZwIC<2#eFrStIBDU zX%(8%t0yIW!Q3{uv0g4Jw&8Kyk_c+|k$Sn68%uA)Q@6j#sG6sFX0c5I^leGj1X1+} zry92SY3cW?*oYt6LMROFxumyss%dbLR+D*u?5c^6X3D;bY+YRAds}wH9V!yOt>|hx!tmxl_O(z zzh5G+)o`}zq+xD(S+{%CyiQhk!|hvlU5+2%(PIs1YYU0q{`^t-drf?Q=XmG2KB)`t zR0CFSl&7(D0md3KsB}5F)`vyouq_CnhD3BO_yy9xwACPuUi0x(Zd@199yJjzy^NSdtYj&r_XuVR2Cwh^gG%70st+DWsu_5AdlJ zUv5UEoe-3!(){@dU1!i>!-yqgN#ZGDNn)PBL$*6;40K~2$`uJr?&DVSXc@qiunG@&udgN(pT5WN7;+sLQp!6G%`c=15J;!YV#St`nk zXelIY??*qaSt$_?Ap%0|$bn|w95VlFMjcByJJ5F&ehDyUd4s$wYk?8`3i{YAlDWWN zVdH2{Q6(A}ZbLMVL^xdRxEIQc9#mdpr#K2ckjj5g{Ktg`&k&skesg8?B00+_nK|2h zA96+n({f%^A7iPGNxXC+pYi#7D+~4>lyw+r*TjnU@Bs4F0#7*YNt7p#V%sk^QG$00d5{Fpjk6<9q!a2l`bxd-v#jTJL zG0;%BFNMZT<29eFd$Lx2TVekJbGMp7>sdennl@<-MhD1F~6=m7LqaZ_N zL6J-cY?aIIRA>RtECVog_-d{qfP5HYHO8d~W0C)cwGVt+@ONtnQwk~Km}X{c;R14_ z2ytKJ9oHy<#b<`Jm=-QLgr;M%C5d1V-p*a1aQnjuVG=MY5(CCu+V_SYifHp?ibV3j z6YBppwgO}7*@|0F5*r>5c*$7MWGLXz7Nr&_cH*BYHy0q7AYfvJb*L&TJ{gp(nuK%z zKc>Ds9?G_Te>7!MqE*D0ic+a$sm3xU^@KLsH$^o{l6~K1ETLtLEworFX%dpMWnapW zCuC$BG8$qmWf%;`JiqfEz2DF8^LhVxUd?vj_jR4uc^>C+9*1&O+KgnS8{_thW}53T zke>T~gqNj<0#|ilm*Gi$e^*+VFxg0~hXAMRdSV=Y!a(^^!+)sP)-dW1TMEL(a%Wls z>8&xIP=x!m+*Sni;oLh|NlH~3WR9pCMO91z{V4JgT5T9^RO>6QXGQZ zJ5+fCmf+1T9|Upr`ubxw#lz#8xtdLdM41izL^D!wwsneFs-l2s5& ztOgV^1X*ey2lPmJs6p)pwm;@lq>mU>nkJ*kzcnj3-DL-YFi!eY3&&yI!$X4y&Y|hi z9+fi=2xeqkkVu2*Uu-6tTWSYV6G&8=9;sje?5o&qW?op}&>IG<)Sa0c8AM#z-icqT z*(U8{O;VDGC|3rlV(_g;hNJ0uKeW8cv0ft+;P#CNK@#|`@_ptcM%HtXP#!QHka7N> zTJ2IQuMvgkQl0sO=9ipI6nc@;(hl__VAjLHxqOImHR(qi0zo4KxC2;is*_Ywrk-SXAQxgt?!sX2g9&r&?sbE2Z^7tJ%`*lI?D#xBNM;0DJ7GQW%ufN+TBg#^Rs zx4s*fff=HeI30v<8+~^h1)>y$A`+UwfMp259UgDU9ca2?oeKCv3F9f#vG@?|~-c3)0^=fDW&Me>L%Z(WlE>@4CzM1ULpJedUkQF!% zUQLaTfIojme#1JTt^!M3e z4CH(PG~A6a(%!)sJUxF}jAar^513C+epd8DS_G2H#3iuY5w}6Z48f*Zd2%C8F=t3t zPN2Ror%|ZwY;cb*sQcto-k9;q*Va;j&Rp5dNjIPTJyG(lV*OD`OGY>1iE{GC46e=FlXCTSr4~cYayybXjA_PQfg9o86Bzc~<=& z^G#_&mY)UBESy8RS4!Z8g}GIK<7=$+qM!TD&(!76w(c1I{rfV<`}qUS1B8aXp3AH2 z-+eWR%7|X{qrIddAq(G}rCV`v2bbwUe{_feT4vWm=rxbHAj$%`+kN~fX1HFD)KgMT zT&79Vx3cW<*o-zxA01hEX&gSQX}U4IhjPb z!iJl15vs1YJQZwrs@ZwT2i9%5;LwL<#Jx9K$;-L-a_PU;=r^F#HlR+%1^&2jFxLdD zDL|T+h{s%Lvt6SHt_f+;LA2ctW7>$(53)#rY>GOLa8AkpQxt7L6h;3-9ow7x`Tn=6 zT4F3HiuRJTWq|bzQ~T=i*N~_@pW(q+1AGV~A`0P29M;#vcm!D9AW;U=Helx?kqESv zAkf2-g}=g5MS*oD2a#=vM9w}~zmHPpA+s6K#YO}JWnc(EF zZb=fOb+YlLTLhL{GaZO-^24MlBX)4ooHH|8f9h9Da_hB=(_}?lz2}G&J4|59J9o~) z!c{Wn&Ebv`s_Ao*T>g8_qTKLvOJ1~$Twh^a(7rY*@_F`Ue(KjnKlJ=R*^l8(UtU;) zU2J__`lSoVCaa8ownYxxhDm$!NWA)8sX?KnGhRcFO8uuqGG^7P2Mv|N$_>EnBheKxiC6lW! zk7aN>9y)g%lg^K3eKv?@yt!N4G+cx}8kE;ncHq1@`fhaU@a4TbHmG(neQiaahIj$U zT6Kp|RtW7zhmL==U}a&v9-R2LY;65K4R+3>2l^9t4yi?J-0oPKwZ3LV_GzEC-2Pkk z5W~IQxxVW@yzH7*{XSV}L6*a>KzOy4-8-nr=^tTk4hxY5fet!LP)s1fP<+sA5SE#b zi(DZHm&+x8&og`}IK#7;^ko)f?b*a|E7S{~j+15gWwlRPi-zL$)FQ4PX}3IckHL8kF!wS=oTn{wY!sW~U{$gySA&uaH_zT$1imz(}GyXUE|@}Dv< zllseLSqJEYtL;pl%AQE~fBY(Q{6CbcpB0bTL!p++dNEFnszvAw`S1O7(b|Lgby4cv zE4tmL%;EjMN78+ZwyK7|NZN=!X};|z@uPvJ>5``02)$ed;F$GWe@}XPVI*sURNqEo z;lwje6Kx@glQ&wHIpc=wN6ez;mVo|AlXM#9`9kF`U-D^N`Bq zt(WQ-dra+AYO2PLrzY9URB&4uqoyN<$`*GwwcKs^I=P~m)3^5#o-OO3g}G#NlUqj# zKlLTP%l4mB-!!ZWYxqBcnS8EgajAmalvQj7wFM!G{vwZteBUim`MazHdrqlgW8c$- z?zi)6svJ<;KAn3!LryX-lD+$yaZm!K6lBW2@_R#I*X)O)ASZnXC_|B;B;0QMPq~nO zE0$F!5ws+7)*Iz;O`#C&KrHE4_tM~lAH*Kivr?0I1$myGX*^gQkn4sh$ zu>hK`Q0YE*kwarP9ga-FERokF1lzBdV1_EmZP>RM$vyKj))FKxC0sSrj!tlqf{LcD zexFLr=wJD>L@RmebH5hd2WN$tT2*OH(zufL6_VQeIUP7$&@;0SR_u~qDjhQN@!kfB zdNVCoMqTBb0OLI)@Ut3`Y~zU$X-c zhjL!Bd;RUL)80yj{rL641=#1Oog?>ET#}x)S(qGV#)4$8@v-&g^zh7_m0A)fVx{#Z zisX9&&#JsNlM?5R$cNl2SzWw;#QM04O!3foM-kOU$lze zds1Z|8(rF3UP;Z{rMD`o02=-f6nd_0z9L(jvwYvOAT;S$r;9}A@f8d_EAm1doQKOo z9gopfLh9vzx2-rGU|4Ww*tK?(*)B3J6v@uF>JRIxZmrSxG+upG(RMrexOU`fYPPEN z3UmI1s0?T!!aZBHY3J7OI&O+uPQ2r=G$KB@ak(cuL`CP~U$Hfd<@%dX`@J!94yjcP zZA3eu9Q&%2CJ1H{i0iX`FJyPde*L=rK|VB7)kO-d55Ly;a)Q$0bXS8XA7UumYyAMF(EN)$OsN!*@1=` zGJ@G@gW_Zbd0U6n#N39-{u__l2Q>2r&su86i8SKzY6_CY#SXD4%qhFN5!0r1Cf`Jd zl#lSD|1}w1$~m&AV{OmgPs@wE6qHweH)DpbM;ZT^F2~>%8e~&%8J@W+IJD%|!~Ukm z_}Cnq@!HvQ(q2z{W;hOpiUaNaWvtxoy&k<+Wbo+V<~b!D^V+hg9+FOiAIQQs#Gj+O zF{TORWYL>UNbYH3Kp|45jlqquvO?xtkYa}4_QBz&LQhoSf~};;tOIx4Ni-i`Yb(&k z0`+&d?-po}d?kKc({#Sm=JspWal4b&#$qpAIQOsdV)k!igJmff zE$nx6FdB_>x2k?OwK&!rTl~b)*rQ3*C{kB^I7nVOv;8=mohP#lFpsBchG9XA@fn2O z!n%I@(u1?-DF!+sNI|t8&!zZTp=C8rj=ol(qPVZHT)ZLF9VJmoqbHD(j105PXOTDT zd-K^JAiO@2P4|DOQ8SHug$*>3itu1=^Y5GoAsY^;;SM<+<*)^U&i&8X z3@JS(rf^AR`6kNS=3*qBh&`T{rGtzVM#*m_7cUGR*!MFh?Pm%4^^>I(r}lb`3R_$ za+E-=)LvDV!2%CkFx)R{~lfZG!i9GL8&h%Ld_YYsJBaRzc50!msr_3$f{cop)!QLNWOiN6#w zD9A8eOh@kKU6Fi0>vrEspUe9Bw z0ReW<0M4XDRPkn9hoYDR+8r<~y@)>1c8N!2%jh|2CjEyBgsE%;1d5Rz`YjIpM8bRRKpu|%7%{wESsz^|$H9+q(hD{QfCloXYm0tPY+Ld_&ztrSqDdGw6!<06|T z4>E#!(K4E~)i;GZKzR$G_^bQ)96A=opug3faq)41BM0en%RB=6kv6LHpBm*H}!Kd6KYm~MJgP*N_u1%&Q%E< z_Hi?q;41*x4Cy~f)i7@NgRc>b%TSoqtwy0rkmm*~QiJj@DM_>0nwF@yqHQ^%S1R1T z)0v4aTrTU!8;Ueh9j6&fA)p~5y(*C6bF#2bCMOAuRweX2VGejG+4-YN9@SdDHdJTs z^a=5?kB+!PM`PdllC6@>UW7w?61hF384yamdTW9OkQ)9L65#75Ka!Lf*s#z! zVZ3z|G6K0}#Toc3r2H{X#9M#C6tZvF3!E87G=gSek}R&3NxLa3*-m7dA6cR=y@Hk$ zoVyfy*r1AK(0!w{g1)7-^RVt97#aN`w-A>=$(&; zkTLxS5?i=&3q+4NO42^QurmeX?O4a9BKBfC5OgmO*}ZgFOv;sfF}bxkc^`61p*}-E zHss1E=1i;@WCOwwI61Vk_<+G}42OS#<%*K_B`1Q}l^BcP$KZZFSCbUOficZ12V}M#b^-$QI|sG}=vk9Z zV9?R>Be+M2Nk_oUcs3LmJS?dPWDH{SJme{N?(^eT>}(PcuK;Bs4K7ss5DJxT7&!)H^6)|aLpj#<2kGVT?5yoWOFk?3X*rW znL8HIK9QQ;71&dN?_PoHUy6Zl7CMlduP_qvN_KiE(758=qxEjwq+(pvTkTF>CxoKW zJaPG+sHK_UhFZZym&s#v<%ei`>tM-)V^-PHC6a{F1f^BMNySR&&QZ)CVLrlkSjS;gy`5on%br zy^b^*Pw?5+Z0Re#obhTeG+jjp9*9^mWjVH_03A5!UCS_VW|-Y^4lw$QCM@iAu3!rFz>N`gi>dDMUGk^%Qg(Gl~n7Cz{Sj=V6!c*Eh2ld{j_c)@tGY*M1tIR$9{k>vX z9UUwqd5!H;t7@VSt_%8i_?e8Ig3vNfC>!_nMPGQ|eFwAE%_qO-{f;)NC9Ww&3(pHw zHixhM)Qz$7x@0$c#4t*yRnLDSm7PB(VlMb$>*<-7=6QSb-OdYj+b-{aZ~SMu$=R)R zEbOuXrT$nY(MF@%5p?niPz7M}t%n7*s@Y4W4V=QrW`8X?T2CfLp)p$Ok`9R-20 zfnaAlM!ZpWJxj2qy9&3!Z`Y_zmF#^V*}FOFSr}Un5iWg$*u_w_q_qG1c4$*ahlgPp=FzwCZEkNYWuy-3WXYwxU|F#I zaRcNqf%atDToPH;8%&>n_6P5D=-)tM?k1ctAY|w(UDIju+xNus#YjxZ3f3;w6)~Sr z+Ld-c=k70A7uTDH>2pi&oX{bw`)wYTt-dTnz*V;t($Zeqd)y~zd^X(B_~Pp3#nDF3 zZWa3NO~FiEwjM7)OmfTXJ(Hxzgk{Sj4883Y{In9Rp8h)A?P{paV+dC@ zaLPiZn{KWWm^1cde^?xU_`8K^bJyAwLR`_Z#3y?*oNvW1R6<$krq(&e*Yw3*I7?iZ zqVAWJR7h6)Y^X6xx$h^HdCAMQT2Cgm=c~iFvxh*;4=w#_?e^?WR>6*CT^Uqb_T`Ip zyNg4VRHEqVqb6EjVq|$sLx^;I2)MpDj9a? zM{a~2yOVw}b$^~>W9Xr`DxSXF?~HDm9e3wC$)QQg2J^1fDfw?p6U&w^5SATq>Du!e z*MA={s6GTgl#E{XhS*?+^dHH=um95YP|svp=7LQc!h2S0DZ@8M`{#$$4;@I285=z9 zHYSv9(E!)GRF_QXPqk$thXmk`usUJuB5mP$JP_I6Af=M}ceJ9MIInOcHbrEz=6lCA zR^nG9gpTFTBN51u1^6-nP4xd{nP5;^OqiWpgo_vZh$E7th$bnN?igg#K+~ZOnesrA zTcm#gL+dcCF`qisT?_Bs(3pH1asy|^FT(4Ke!-;bV%yZE4=$8i-f!a=cutK(4EUa8 z_5uh6qvsZL9}U-GO{#1@?P+u<8U1(cQqiJm*0E&kbFa07^Y*N`lqB~0IQ!jQ73x1u|9*6yiQ z=e{>M+R|=xv$#whdph;3{NcR&u?oA_`v2sAI4nxmS16NkquhOBnV#n7G>W^UW2Mj` zlqzU4IF)5PQ@1qT*V)f8lRsk0m21s=k~-{jsfBqf-1S-;Q@L8b{qB9ag@?O$hI*Yp z6T({_6#YE?!FW5%B{>ML8P{I~%MG^FuCT1K=cH-`wsY-Uf8@9E=d6DIhZa(mA~E_jlqv*wu(k#W1>$tCHAPRw^ct)-PB9&O1ozy!=pRYQd)W3ql>^3l?flAF8-5sq{WTZ>Pt$ zrnA$wT*slAW>`vLIesdm2m3#bXkTa^v3c@ihq6e0^NRfr3qwZYT#iI9u)l$o=+L*0 zBgG*^<5H94&u^+PR1bR}jM-PCG;+yawl`noBbUk+F5xIaJ2)YzfbruN zF{}p>u$Q%NDaQIg_cO@m4Zp8%nab1K)EzVFqGFm$ayWCATwrCeEg(HA-(dNcKKMpp z13-syOYT7Lr3G(B7(1xJA4`vWvwO!A=6)I*f4B3|Xk2PzanIOO$!SU4(#Yl3fApzd z(|5rENXE3{ETmc^^iJqKK1jkfKegb=gg>h^jXzx)`eiTLb^rBEE^oBRX1g-Vm#?O3 z)EzUK;V+{l|1?Z=9-TeQ%qgm5mdwSoqF#nS-}2(;5$8O^5a(6W)V{lxyOtSR%uACv z^X$I8+b+M-smu#?h!n6^#buno-OObD=?-L^4u}u~Dns8k{_cupkF{4bql;V=CGzFY zD0;1@M&Cp%lHh*GjQ5n@bLB~L&gW%ETU>A2@ZpKc{XNM=C8q?TTTZjn?HAgg2-VjPVB1$SgM62@ z)mk1o@|}!xf*)uQaV)s<+?3TaYr)+QhbC{j&9eS{$XJ+mM87ukyh1>Y%(qp=e9R3e zg*OjZf|?4bU~?M1LUx{BxhGnpqfHeZxmaFaoqE+d2m5iu;w3OEMzPuj^-u1DJ(=Y;9+#n8Xe`BB5rQQV%5rvvl#=Cs~TuN9}uG+V`W!eML@00aX+;nfE zmX+h6iWZ>bj?)uAxidQ*dfV?2=7kzgu`_wI4bNne;ao~-lr$4L9)MkAQ2pe+1gl#uJ z@~rt6^HBpOo6j{y1~}dV8>PVqj-7i#;(~p| zxyvT`NJhqZL*)Z<@SbK6K9q!s$*tHSoAf!MS zNIWhV357O7xN~fT%m`k9AOiqC0d#=mO+fmBhAz_GMFi9Ue-KZ@ic4n%1+)T!1mHB# zPEsjY?^eU)fC{SyoPfkGZ)}&2s&KC#7yUaRx^&i#WxE84NpRN%f-#Et6))av#rt zu;;>iIGz_-?FtDev%xUY;K<8arHCqS?O!i*huB-*r)Eof$^W5(nW!!D>#eCu9=K3{ zGlH4=F@Q&hN9H_MlW=BUd~^~J@d`*0{pXSZ~=f)BB0sCNInhU z>nv(yC+|0Lg!L%~E2>He;2Q+Pc>NJ(VOc=`F`6L4JwU%AyeG`*B6G*-kpNXgNWn|Hmt*y2-2VJF z|Hx4Lhz!COq1ZCz9$bFC|HnbS04*qr;gSF_%s0=%5`3JQDrIT&E(ZJljI=gNlb;0& zRg?iDfg6G#B1TNSa+P5MPy{s-`hj8xAi0EzC8{#PWe-RBM|Uqm++x-cjm#vys__*g z)!qu#c18@XmQ_y)VAr!6{p>@g*b>D{@D2E$Z-|!A}A}^73l@pgir^pDl zw|b#yz6|LvQ~0RL7WG(V1fTG6W^Qsz*uSD8UaRMvCvNH#u$$=4xjqr-a1%n?Mdj zLfzGf+rF|@Lkt0eyv~7}avL`Wh^eAW?pT;f-UnxyG^ggL*)qtq4#a%ujWzi+ldqqlr#f zzU&EBp8xBM5P~WzgFynFoG4?SW%!sF1&aVy;Y^#OiV_O-r&`yr`xyQGxBN(QVB5^> zsF?(Va!pdwTS+=V9DVuA-5Q?rRf7{`2->Vt*Y05P)(nmctX}O)wN4n*Za^cC6cNgk z7-}T7xieH$TCu)VHwE!xgQZ-8*Inr3w6B8OJ?+k30)1;B6yh4nMtGcM7CloVsV@bb z{j<6)2AfiZhOPYX#dquMHvNdZUU*;qb!>|5`q&p^zs|V1D(*V8;;u6_CqA_d{YzUf zI^~h^OZ%^8I;o0-S&F$V^TGamqUPj0-2F1!AxA0h6M6_gLW--rCVFssJAbGs+}Li; za&mDdz4*!RUt6U2d^@m$*7OA*5#N85*?B3O`bpQa<08XQ8)tCs&LtJIT}AKh^VL#3 z{kP{_*8jjMms&5;un*O*Mqi^3_=KI3`g_AS0*l!#UM$9ni$lt)uIz4^`Ug7Zp0ZCf zyZ4oA<-UFN71y2;<#g6=>Q1b>s>k^Ag(A|YB(>gYoi|st1~OQphrYNOr+^601H8`i-`}8 zovz!}%$oJ`D%Oelow#<9`>!WsHeak(5J?tK@z;TYWv6vZaj$NpJ0ny*4jmcilVH27 zINIa<+n)S|SDwBw#qc}BJ{O!$*y1d?Qb*(ZMCZzcH2ROcbtfM-`+j-&tL017=yZOV z3tiz%EpO#(PS$s4GtHQ>RLgCeWjC9t=X?@H8(VbzPgTu?w?t*0zr=kKOAS>_*DrXY z(Bn*XI6IiJ_-2<&^oDcckL7oh8FxPSWViX8&%pY4QFq@=JDGm?uv7Gy-HoK^2Ol03 zMjtybY+VtW6`W~cxcTA0+0>mEn$p%P9L(C;^5Nvg-8Y_^{W>ACYAS?4T1Q#~%pri6 zLkLhr=Z2PLMJWgY5)+>ni!ZMURX9Dj4-bSQ;r7!O7JD*T$7qni;pE6${S2)Q7Yo8T z8cP|97z={hr*+hIcFSF7ySCTQxD5@)T&#KNbUOIHZEmY$CF7XE8K1L#XH8sQY2R8oD18-D>)~_!E;PJ6X^YqKs z*isXBgZdo%`V`gT3_d@<*I%)xTdMuA|Prf~$DGrrCIC-s>yqba}BZ`14rKaWO3eJ|F*?|vF7-L@SXVLG-s zMZRAz%I}!CY-U$fmfN8E&Z6_Os+`B{N&PKJHV?JC4)++a@9)Xs!jRTZjTKAAf+WvvB6j4JCOYuC>{(fd*EMx(j0<)20Jh=|Z!E_pf1E-ZeCvc|2cF&Y zp(KdOmJ@CHVm>Bx@cuVKjbO7xz-E<~2tKluw~qGbX@Y{NvihL|wZw{8tRc9mFn}m_ zZgclWBq0N+G|UXT49gHQXDX6pAjv&2lOc&WY=%q#N$&#ilXH47oG*bKc98iaD%VKo zk)AIGWRWvvDO41E#5xg;900gFVkmM10#gWNNqxj`1@Hsx62%=2G=CMCGtPssko$o9 z6j(Fj}#6a zde!OW_^A*i^fV+a!u4hbzc&YcjQ-Ly(iMRJd2sQd@7u+kH3M|F7sJ%O?EM+TlvIIwwV~#B@c(oaPf+OjNwC+Z-u5G`5uGkM`LPggdy znkXOoL*6=$lzx7F$%|5XkrqxEdF21I<@Yh-nS8qk{*b4|Y_;wlC+WCa(E0ahHnpRT zblfO6|2c0j)$g!q7XY&cXEsN?@baFRyEuNve^r%-J$>LJ$?`CB_uI!e#{O-YjEd7& z(fX)>$KzLe$J#WUJk@vNmuDaCp4AHzJYGm_pxm;0j?@L9JHz}B^<5;E$w0^?BUE2R zpBAAa1O4L86@MZfstrVe8uu1PxodlfA(U+T@V6AzH>|@pLjLYs8hO{+Xiae$0xU{3!x=lPvMRxKXDpjI8j@VK)|IF89QpmT0#c zQ<+zv*Lq{>%#p-*RvisH{#{vRueyJI+&~tKKH$<)-5j@J+p6eS38y#an6=Cr<|_c< zUy3=rz04MCY++$%cg*DUsCm$C%F3$SY07>k?y0Lw;|5n>+fWquLs570fiS;}hPZfN zHF^!TcFWH-(PqaV#1_qX8Y-*sg@zAdN6O*ll3Q9fUS+%zYwNB?x_Rn)B6;DiMMzlQ zs_z%^o@ia)6?W!PgID&X_u;2(O)9_*iMtZ&gJ+286l_G-v8-hr5VkdCEP+}?we6p`zvDksmIXDqI%{oh z79M`7`ab7=MoMLfQI%4x?y{Jegd|zgxr4($l7G;dqHdkSKaM5jJ23LIa9B`(I`C&h zXmNP)V3L{&8ov;?gcM9m7^y#`7Bc)MYue*`S;;XA@QhoU+UjUErfmZ*cuszH57#K~ z5Zqj2c219eui1rw36U~jkJoTxI%2n_i!L8A|8oGGYkJ%YM~0ZaK8(t&c9Y5H0s{S3 zhe_CO^T5K?xDRPNQ`|Ry$nfIr++dwgYgAoo)AKMqEMDI6hjluC{h~FN^=DfW587vN z`5}kO!OxW=DoFj`hM%*K?*vst3@T~Tv zGf%4=ZGRn`JgqfybisL(cUP9U_1SOzy1W0_CYW=%&vn1(!=F~Rvx6rj5HK7H9M|~i zss+Y23r+D#*pH)GUlvzmbhqt=8|d~1?0@pyEhyMgH*`yOZTV9Lh?xU%FM4(v}kL#fLL!qfr!T&Ys6JFE4%VaTkM&||dhZVqLY zt>I?DWy0?;-(_>DC6j4Cb924zYqu(u*^K76+`Wsxs<`#HW@EGMX$xjF|DlH9-<|Om z7T@j1^l*2H?=d4-p2=yZJ7tw!GRCbgQ|oh%;9BE^m4bn+)W_(4zi>*=W7YA!rssM) zioDl9aiJSN?5BI5;&Rs){w`BaR*8)eNzL*?R&V8*S0%01SeJb7Q03gWm>$c0wNTV4 zs61(Chr6B(54iE{f2i6Zu6u6DnGC=fD~M#x!VzV4frqi80^BL*aXG8$*!MmowYNu3 zbZ-nf40kHt5mqLBu6Qk2Qw`=#W9d~{?dp?Yut*UoSia$I=yE=S5LO+$Nt6I#? zgY{jZBi<=nU~^G~SC3_R^3URs8OXIo!wS8KEjcH*f|^t65z(TZ!t^;+J?~ zS5fw}J4MVqicELU?Tg73a-*G3?0-L*p+3o{8Nc6HTAak|U6Q0|p|bIi{)&KbF zCBv`nmr0%+{r`4i1NF-C(yap5Zyv#~1rg|5kw%OV2KkOOCn5B!#&uYkd71MU2oIOl zdc^PUHSv9Md|&piIYW42w3g1yvd?;UzyA!+DEwv46WyOCZlkY8Lmp-XI(e-6Anl@L z+iW%V`=W=F@M9(N5%ij&Qgu-+E@!IxpT-{Ep3Kn$haXfi2esOjn|z@&wG?!ybho%YMP{m{-tRFXBf z&GJTM6Cq=6k15aUzDS>`L0%*z<=k&LenCxejx!MZ#VFg-e95gE1=fh#(&)YRC%p|w z_rKg}&3}>6`o}giI={5IHa&G)(((8nIr3ui_jmHe=4^??c7bEc-u;Weie5^ZE8rFC zW%KI-44>#(r6%`!;Tg6Egt&A=t1}EN25`&PAu<0BuP7w$-&ddb)68_2S`fmj@+2iIw zrkh(v+Mj-?`eDbw^yS36FGtJnso?FGp1Nf1YO`y=$tP=i&K49gcU&FPn06-+3upZ9 zXZ18Jr}iIg4ghX#{GlRBIi=ym(80_x;ga({U%HEuMGN@EOJ(c`pBpJ8p54#p_`JPm z?}FkYzt=cvZTN+-d)uGh+>ZGg@f4lE8(gvo*P*L`U*}5SI)0GRb?EZ$W>KIIPywqP zLCpxk4aL5(NIv(sbpXu;FwGIuih`){=VKtAVQ247?$YS090-Tf{eg!sT|cRO>U*N&yb!? z4ugL#Nq%^>zh-SsL!H25DuurYskTe>oXa^ek;OBZ^7&%NLXvah%(g2p7GS3i1av5?dsP#TBrVXkqMi^sg zTsYwE$YTUm!oW6?JYk$0m=I|Qy#eG?H5x4+VLuE7?Q+7al4vG=G%amJ?=&_<{*wE` zr~ut+N#6iGp0C2pMoPymc$}HJgDCj5(wLq^wQDrMy2vc+oqn3HtV4p&oMt154ixp^ zt5tb2nv8rbk?w%Ug8(K%`$QTv25cwezLEM}dL%U^Y2{KOz`Mu?Se!pj-02S+O*s)S zZ!m)l$csBz`$|xQn7+tezT`XBN+g3T@EOlisP2;t7fcrLPa~eCh;4XUub!iQx)M!z z=iETholtwL<#H1-W7lx-FMY;iF=-6uE4=vT*6~*l%qVFFFd+lER@6pFu;_RbrhMog~3GdDC4k{T+8JfPD)`Ri?tG~ z55O$RYO+dTgJHoCzn|*MX0JjD=ONHg#0IcEtDR}Z6Mz0BKS!Pof;uaaSbVJR3`xFb zYT-91fsu-w8yI1>OJ7=scu5RF1JkxfI@uwtyA5|#`5^AuB&ea4?9%gKG`bngkbWR* zG6YtT6*uCNbL*HG^+oyzZVitAvI7|h;K%?$0i+uQc+XN4r;)^Gm?LyT1bPJ>uO6gd zgiyty&^K$F({t_?io~*-2x35=9ws(S4;h1T7qm5Ri>EpVG=`ATPZ02Gfj@(#Ru$6A zc>`i9h>i|`2%wm_1i8b2Dv0Lav7;=j;Hbw4w^azTZa`9=7=X~h8K0R&#y*!~1~hbssH8UDh{$;wA%E8)-^Qvj3obxo z3WWH61DVd*UU8dlG{43%8?W3+Ld#aVhz8Ono2zLQ-pYxiNsuh}7 zjpjo58&G?tIj|>zgD&0Wq(>&LhW>2uRpL=kCFNklM~1<;2qkf-%@Y+ZmRjh_#O{({ zRbX(#Q?<(NFawW7;m5jYl?Xo@CTR9f3J=0&Lw1);qHYD6n&86&5#Pjd#M=-sAm9S! z7u4%=-qmmiQMx)1T|lFtewSua@Iu!};)ZgptUR(#kjJ*b22JZEVZ#iPFUb&h7Q<{j zsLBP?{W$akZIlSJ;&q51A0h*=9#5F@EU(tZh5Cvt8C+<0w_eqZxb2(({WGBP7tL5( zBM}d-AGH{ZXD}1ol%Q=YkJquE6aRd>WkP=-Z#TN3sbs5t2&+}xcHncAtVwi(<(ky- z378uQ0(!AnGpW)>egMT@V1!Z*Q{Z;?6Luk7cDRp`DP<>Gn^z4=sSQXmerX%SN(6?O zP86S2!I4*JK&w2P!<3>*hvw<#O3g3Cr*SVSABe*}cB$=ce*1a9lh@Q|dPM&4a@}8i_mEtyL-`R&x<5K7;`P6&*117v zu3me3-FY%^0c(2bllk&(Khw|Fxaf`1@1$(~#^7u{5_kShRIyE1%I-hg4X~V(&bBSF zKa<~E70<;72@I3gC2nWwq$>Qpk#Y(XlBURz#n|r8H6>te)$zthrVf7<@n(})q>sStIxY$P91@nBt$ikrZh{&yr_YIcA+|RdTm8AIhtQz15b{eSjN)SD3^d zb;mVjLZ!bbzveA_PP1B9p+C~sd8Eyz1O6)9jwmU8zQOtC{3nP&Y_KxB)soydu%o!_ zi1G$r1iK+jwC&~xlkLaPdp)U_)Z1Ac6{w@N;l>gDmWXAp^e>;%t69`V!hyvx8$^sd zf_!WhzUJ`CM8Cp}rs^w~N@@?b>*btkO7z-6+H_st#k`Bvj}H!Wdi-nMi3HLS1vBDs zTdJbjvRi4*b{D?IG@bCN7B=SO3u!!D*o4)RA)kn_+@iA|KtU=#w=n;E^(^Zor z{xA(6D+PBm_SVOS@R?yh4u&mXyF`rp1qvI{fs0Hl*{*S{vS(tK>#A8#eP`q zrT+8JT)48*oX*n@&Sytilj&G2F*Adl4V_aM=^lN1>^|g)h;9NB?CVDV4x=G5m58p) z{73r*I15gQk3=J;a2{#~T^o4U|1lrRE$4^W#0pFZ=ePRr=oWkk|Npd-kU|5AfrxTd zgBbD#I2s1x#PJ`|gJD8GGQZu$NvJpjo&VPvg>?xVQq*W+qasRw2Qp~=4$enI8$n{K z$)=26nulh!R4p1e=QmEPdYz86P9Oo6?N^_C-KYXiz)NRepQ_7mVP`j+qHl#I?Pd0J zP_8@Z33G-vs)0}bKzZd6*IDSnIt^T>QO!+)w5-d1Ti*$Yo8l65mT7#Bx7-?h{GWn# zPaB-_Q--5sw&snkyu5$VO7rTfU798ZswTcM+;)*k2sLY~>xuV=cU%8yHEy!HS6(gq zTv)OVSyTr3Foc$K--N`-+lqv)1HcFkx%Y4dZ84)~WCY07Do74+wJM^I&roj81E$g( z2IL>Wj+MCdyj2)`3!+-RIRXaqgZZnSMdnw5G=T&G0zxJjLfXWQ7Jg;u^k$*+&k?K2 zq;;b^=~>-BypB|~>Xr0|<|tg$CZ%)^eaNiO-0}K+%gNRl`jbjq)${FrWB-tE7d0?P zce~%xbAH+V@mT)i5xd{Y3)Ynh)eNPTajn~nHQ(aac=@|gR^HkxWlI-OPTQYtJU_Iz zRm)_%(?#2OWA(awNn2OquX^0w%H#;zsNre?NnW$ zbAmf(Px7A)#dp${wb`}%`C>e7-=;=6)YN792_FXI>80!Ti~ywCO@`b)Ci zm`yX02}mu_t+J7=hU^T4=KKMbMd&VN}@oA{?dMhpnW*c1b+ zF?-;%o)oL-2DRMx+6+6UqCtVvXTZVjS>z>{Q=i8rjNb|TaebufQgwmnuoarDvFGzy z+|ptK~_f>eD)TBMmaGE)n(swqwXOsQnOu!;e_X`dthgszTL~CF* z+P7zakK5C0&Y?i?K8m>-A*8Uu z)J%p2PQyLSd@J*@n+O92@+`Sb6&DYPluSh7Jtp;h5*Y=+#k65@om**_Hi&mLBMfs97rNV8>d%B5fcYeYm ztNrOQPhDP8hKzImu-pL$y=Rg}kv>5Z3gwtkkKXf-DchJ|`P;f%pT~oR{O45tyA9Ob zgIz&V@3S3bw935$WVCj5@7Z^%rh;-IdRE}qKW>J3X9|Zn93?u(+;rCy! z9sM@g+&cMd@y7Gt-Jg1Urrmq$y7JLbzAfk3zh6?G(h`dEeY`KMS!0)+j;tmy=NLE( z5ow-2_IG{3VifNAd%PgW1RGYU7-oP1j6Mx@5scKra$&Og@O}+}#C*q-m`VT@Yvj1t zffRnoD@2rSXz>vui%`s9_59yZv@hlJNKrqYAv`ftfYlumVS+Dy6Lbr3J%0_n>;6NT z+Kh8%4>*H^HzS|s{vXOA{ym9b?K_k3tI#9=h+ifN6bdb~9(J?IcPJGbC2;bFY9y-P z-rzjvh*h?PF!O%UDN7Ii!yMCd>HgU~7S@G$eax1-rsq^8t2L~{YMoRiR=_%_f&zbM{rHZ#z{D5)-4bR7Om_()u!3*KI!KOm- zC$I(O9IQ4o3yaciSO6s<4CO|;O%Cd#P;6J>M|p1OybHwK?JaD6JyBWDUz2e(FmUky zOjVAH^KwDx;CW-m>`|y+8d_1PjhDBFk%OFRU+%njk(o_%m31TI_ zS0>SU0uVWbUMPd2?b20dQ%TMJ@?0i53nr||a>!h23N=7Gz}!HBHdn2MA8O;>w*bx} zn3s$NQm0hMTd5Ir^hY#=KnRG7I4aqg?riyLFK)wa_7Yz)wuL}ElT+nv9`p5jn*t8q zMfWQL0wD8DnEyxByT>!#|NrB2DXYjjo7$nGR6^3hX+~X9DNE;^yVjND93iJURIX~a zP?3ZZt4l&TmBU0#DP%%a4kLzPjx)1>eXN7>vk&`ZCsVM0F*fGuRvMazHl#}4SDLa}cNtyM@<4kd+B zC|*G?%xn8Xd3-TpKmN_{x@YfoIh=1_a$qcpX7Y7PHf)C-W5qc?-WbR95~?pum!Z!g zxgeB3&)cO&bon8Dl=4g`;dQ++7b-_skiV(QKYd$gFfmB?Y1hCrsWQ@|DPLM=)R#e9 z-jO9@wR3^q z?SwRm_#7f&`2fT@Jtnsu`+xPELvja;0zsbREI=s{npLUcFO;Ed$K#H! zVI)BGI|-B1>BFp7g{uIF5NvguP|k%thDw*g0s&GR;FJLz0icvVEbB?s!TP}#;!S8{ z*DT}%fwDyvi#L;4;K4EOKPfj(4&b%3?Z%;J@IHb>TjcIUN@_+>hqIWIQIuXCzgT^_l%@GkOK&@aqGk8Ja1B%scXk&l9w7}j5SQm=*i z^1^gQD1F|%b56^{2M+vqLczx~5EU4zkL5k8FQa%fWTs9*S3*$-fCzbrY8mbOsR}DC=iI#ScEzXj~BCDwWG+Q~E8a$Q6`q-J#^qv3iJB z?I(qxJAaezTh1COUm?!w0O&E*7h#A401jE1P!bL*Ibqmv&dBQu>PQ{}3t~A0$t4R7 zmQ_bG8TT0>rz^nM+spZ@ME-pry|c3~T&nJiJdWbos}uc@KB8b4$=JSNp3?G(=~XG( z4*?RtR@Z=5MJL}E&yjKG2vHG$Y@9aT)#J+S z;BB9Qx-ahqI-B*Z9w2pOkE(-U3J$X^@@PM~`xe}SJSpi#DQ)fqeIoSMm@Mc6BnaQh zZ}lpGI)}NwO|nmPOQ|irFr}+wQ57NoU-Q8P?H4DHB%VysHai-xa?lxItH1N}is+-0 zGaWY|F`8JjfueXUj(GpW=|ejn3k;9H_Pmj;c!p*5;CR=D=NC_0y~klge3Fmb54~(< zH^Lv9OKr3qmOo8*BdPjcJZ5$2R^t)YrqcSB?mw}m5`#=IY zEG-ZD-sJ;z%bkO7Z=m*+aSK;ZwIEOsSqEVy;7X_%b5C`)$glUxsmZ@F5PhZ z-JJ)M%Bl{&7;Cg}kDzTn5+2Kv`>9V)(^F8U?IJx2Q z*j?4JM{K$U_LBa-u*&CN_4Rj6Pj-oTcB-+mx5++W5&e zck0NqMLE$2kJ9VuYHzy&Cbja`{A|1 z`ZRHwwqAC`QJ8QA{OkQQ(@JY7^XRP5P$?LSm0F^BU{H=WCf~lU)9?JMnsS zEI6-Ez0mjHoohyFcZaOcnrRAv+CFr;utpM%fG+ifR*5czQv}EyG{D?SkJH8B0?rz4 zDV`w+Mm65PIdx;F`>CVNT4|+`dv9`wrhJ~pejgqogv1?Q`r*S`#@8wH&g%O0ujF%1 znCTQvZvSY!rOxN+ox2+dr%SUp4z-P0x4W{{2G8vHZn$$H{#xvM?Jvg*!cQEh%AGhe zznq71@_vhJ1}J92Bz%wJK5VAj>!bN4^jp!pYKg+$i=Y6o5~6g=rOIsS8)P}CT{-nv zR!_{w4wq&poQOhd^393{b65-ng!mc=pW z2ir{vEuzSWH%=Ah+UQ@=5N%H@d?cI2ob8tfi=;8?HH1< z@}GUjZx*4fjZ22BbrZm4q}~HEB6uQmUF%kPcsno-q9ivsc?fNz@+*JY$P z9i{!V>+R4_URc(EE+dJqT&jCKZ$@!~jG}pbTA*>GM31(*`#{#Dk-1l~)!Nv`3#Yif z+dr5ayuUb9S*l)qM(jcV5iKb@sUtCX72&8T3O(TN{xR!G>y8JHqL~TqkF~~Esz3aG z;6-%VpO;?L4qN1&;TNnsHMgi?)L_<_l*{bw*Am z;Aor@d6r|B$wNaPV?i41llwvv_&slyee1W;k}R`va5236rR3iekCPj}H%08~Q%c#) zSyX#{@8{y!j;Q`a&yL0R-dWq+?0r(g3^Umv^59m4?r7fOy14f2^0z+c=~anqf@%X^ z-23C*tEKV>8!~mZYi`=zQ%_3l^%IDQI`qd+|Jrgas&ZA5XV#rqzZtiZn2N`*a{fGd z-gwK?t?wA+N^zWv4*@l-g?u@$OS;vVzesP8bozcR7^|>TL9aY6mf2LVLM}hJrilL| z4pssxkSj)aGF$%|@6I0T=uEjuQ!Y7yZ>b_Kqja~2kB-|GbA4wWm$*2rZW*3%NgFMF z7qPJAXih|%Vta1Ljwzp8xhfBwYB6mt7L-9tLY8sqiOOTo7TP>{G2?LKNgMYQaGI1Z z1f+Co47rT@J4SZ-S3BNvRM9rk_-ezaR<$w1C+yb-s8!l9vR&MR@WonFOxm;WW@p{~ z7rz^OyP@fo?aSBKoBdt)<72tGo{PgDZEDOkm_4k`d+F}dFmq}uQl#}X_zzLqi(sST zFY8*|wcLkxM$0=!tn+x&5;gh2`*Mb3Y0kZ~p5BEY3*P)=xnAp2N!Id`#mn>Z-O1_H zNENfLfg&FtO$}B5Tdl%9V80E8tJ-~<lFPt1R?NWotj9dGSk7MNHdt&8`U9{bAJo^&)+m-d|c%yykqtnfFyR(D^R(z&v|gX8gPCXrCEV$CsK`^P%}^!pbk&ED$4 zX*Xsj{(E}0?}kr{;;g>C8OwKN73#ziTU-Q!&HmrB*aF@ew&xHIbJOwFH2xPVx5Oem zyk62ovtwY!`qEn4r4E+E%o%jc=IlZW1v&usXve!Hr+Yehh!a^=3&iYP_w{>j)kun?LaM8cn=KMpUM(2i~kDl7wwzht4?|0Y` z84+E!ZJ7tcVbuLQC3LoVac0hc^*uT z*c?Zcp?e>O5S^BBjse|-FB z$aAw5bIdv8`0v0&)3}x7TFq47+IGtBeWpa+5q@tEHWaz&?RwH2U8fMyE&)qX1@OT z+H`Ey?6)`HZOz3yTgSVA9~&X!{X+d&+jZm@svuMwPaZz^Y--o+rIXU36Io;Ww7dbG z8GmTeHvU5OFlyg+jGm~ECa4)Eev{~n{zkX1FN`IxGd{Zee)5TRlKLfVEZx05GOjM@ z=p%r+)U$e5itzz%4+*bMMVV^;RFK(2aY_A3vk9!T0W5yX1{4>(SRwf9DEQ zZjw8*Xsajir}?A7yF`vVT-`mlT}cx!-wSi#(u_y>oKHnfwcdi4=8{f8Gz?!js+?6&KEZyi*!AXM8W&nmf8p+W3^+`<+Ct zN{9RQM<|x|*3x9FsBN}lRa<;mDA8tb_hK`5oz+#w`(K(ZeUtb{^Un~E%ct6xsC_!H zBG*{%&!=N%wGV%685r2b?O~cdnDVSvviJ+0~BiY2DeC59XHUd7=W$ z$IZSty=Kl*jxp^oug*$S`*ap}FEKywBHz{9#o)k_*Ju1UJ7Lw2X8e3`$-CFj?wPNH z|ISN=6h0A4tL!q-kEoQcWL9L~y~+G8Di&Fh`_F-TB)b*9`hnob?7bhZMDH&SG7NN? zdP8e}*UTP0^$W#V{@td$L#b@#zxCcqTThZ#Ma+v`zwEVeovIvT`!rDg`ID6~R{s`5`X?6e|i=o2O`%-o5vTweN+x%IX`@ zeZ_fKwDT?RT+wn*Y<5|;Hfy!ryT&Ezhx%+DJV~q7{66>OUUOSBX&>Cty}9Ep?{q|4 zh*iH(3+zRY6^T)7Wo=-44g$mHJL|^%-iUVVAoW-u1@^N0hc4nva#u&yEI_Y(a=~Hq z_lK6qSs}SZ96uDg5^#{JO5)5VxG5``XFX@G zXc?z*d%S2a$ARCMoYLLcF(qsYu#_(PEX;gonAE(RxLArcjX7g^DSKY1<_`yhv(d*# zgv+C!91PSR3a?SkcuM2G*SxY1xT@Pk@0%aoy1M?3EjLlTqqwZEwM|2iDKxSd*#tXg zh?ZBhlxeu{K2ciGsHI{P+uVKFuv-vZB&g2tRR5HpR%5Ll%<($8)^f{9`ujK+1ge?x60qelvr5 z{VMk%tzY25K5ZdkY&F+DzF{S{>c{Tpxi$8yhkVGRA_~Kl_8#n?V40KH=`v^U)9ME; zKpV*d-w|?;&;OkWm_TeK`FF)jR`7W7@79#AuIT8Bs{A^#^RV}hynL>caPNoD9@o-i zH^e!{xmL+rY8J<>a8ZpZk3QYde})|DFi`fnzf^gM2I0cG==5bq^X>4Z*Vw&1d1E)*J)+PpiU0E7@6n|vT}jz(*`D==Xhsxm z`n$8vWPLEI2Ip)cT>Boq#w&FFB)+C*T0Sv_>Y2aOa}(cl*0*EO7euVA6wibx>7q3O zPiR%|M1NQmFuV8i2ZgF$D0OiX=8khDY)FS~KWP3!xvMloVh3rb=dOa88?eeOE+&p! zhoXes)#Mvsvc?vA2N=tV#fwPHX%_2_Z{ge9-WfaoLg91K^}ft7md!z*yO!y-tSz5+LF4t&b~n;)3eUwC9B`jYTxqN)EjB^vFVdbLjQOF(N|@fIThbO% zmo@)^mB49w)j+mM|KMlFgK6Wo$qOG!*StTNbo5xkhfh;8jx{vN3bo^N2|LNlMGM)^ z|CFrNISbA{JOhdR-=2SW#b0~Et&d7OmwUa#D*n_BbJo;rE$VnPI{)TO+rDVEXSSBU z(wKX?4VR*FdOw?Z?7J}0+ip1=>c<-e5qBkg)vE$a)C?Y6O~Y#8?ntsXSAA~w%KfU7*IVp+$&$Ls(>~! z)0mtleDqlzoSC@%mgVu+HYWvsDV@|$!pJ|>1@Kw7!?_!`naay!n<#xvM`G=l&8VMh z>7RNwtwkQAZg;%3T2Fx^Q8!JQO2fZLlRZsR#k12HvG!!Gtvea%l2^0wl-Yne*rp<^ z1IoDXQdX30e(QF5nY#piRxhO3OR-}8f229a_>D}KT!B@ z&*LYrj|TFazki)g1AW)sD83kP`=5OTFg<_k&t+liNW%t6P%xJPi7?W0RmzB;U?_`> z5}}2Ij!ZV1fz}P75<&6>pr9yOLx!+^emI8tB15@gHf9iU=9GoH6A`$aOk#V4GgnC8 zv)0ZRefQP9jWJPf)(vl(cstl6-*oa$=BX zhy2QCU3v7$YPrE7*KEks92aHjuB25m%{HO*sNCBT_NqMXVdi<48sFjl2| zZX1T_avNf*%`|`@3&KF_azVX5Zer~+1D+pgyH_A@2fX(m9bgkAhcynTN7Cs_>B(uN zIR$XMM8tSH4gT_YeIA{Dt}}!ba-D*OpcR><{ZXeAD$u)zNZCtI-VZ-y1FDZe^@r$T z+ZNP$my_dh6UH)sC@tVo^-d|)zgUQ(LO7FPFfmA`87!1+OQU0oMO3Uwm^0~hU;7R= z1@f3fSFOM~d7;s0MuL1Qe@021bQ2n9_<5L@9_Nt&m~&V7ElJWlQ@=q@6?H#;c|Eq8 z!Zmr#@wihU`{`)Txp01as(jkgrjP)zU|4$$<_idkxa27oi+&MEcj6HeIC#Tzere!; zFxqN;m(S1#J-D;lK+sYKaE37uacvkF8D4Ej=Vf?vxN48EZ)L-i+pjsDXjC{CM>F}R ztV;(P8Zri6q&sQyElghxOAg19_sS3mWDw>%%~K;uU-NKc1_^O-Sc7C$R7`XBwzoub zaf~zq+r}0UazK#3iNo`#+_n)sv%USPgGFf}ML|4hC?}Dt1-Q#-P67v1IJRSbLV$=LKv*$? zv@41x=C*m!DrKGxFg}Cn1Ydv%g}A-vP4t>s(+6N!9kTO94yCj zp4I1yS0k=)W((9tr`6=KXq?!)#)OBwQVxkVi$tiQ7Hl%b(~g=0hY%VbM*b=R0~9$i zlae8~A`+3x@>C}VbnCObb^8qnKVgUj1{4WcP*@}@C~PO0ZwsNt;~;|vkS7gN(Nw2T zJvYUUctjWW+uyU;aPF8Ie!B&Q&p6QO^Y%SLErx-^JYNpcK{vdgcF&vRh9tMc*%{1< z9D7S-I?&dG&Gb1X=<@;gatI3`_O;MweX&y0bI5axT!IS1Hzz*tHtGw1@&|ywO;WqK;w(G4BDMK)#^{Z8$kl7)Ba33RNZChm#99AWoQcPFU^JZ!{~$@nl2{ zP53$ukT!qFkE4NS=rQ!g=LnC1exxJQA75MR%{+n*4xE^V{Jnm$@f~i>E z$$}|%_fhn>Ex6?17FX;-(dAPv;%X)JROBgoamFyE? z@wECtC(YN3By;};KbDg@ks10m>SE|qm-*o#jAXu$shGvuaiax&_UBF%3C&A`^lwwI zyljl%-xKBz%=5Q)tU;r$ydFMG(+zl?V0>yBw>)Dm`AkF_CH`^Njk1ktmc=YXU0TYhedtgR!j0-fZa9=gX%zL z1$p7VZqH@6ZWVo=_`dY7($_aek6!uu)lE>-|2Z$Fr16hkFZcX)HmYWhSZT8QIxS^O z>(ggW+pken{$XvnZ1XDaw9T?x?4rJf$DclIdUWszO?ABFKtiotc+Zn>uH8w1IC5hb z>bUNheVUJ*v^wZ`ZuSr=O@0wtu~5zwUm&d3<#YCaqMh1sF7~DM%L6Xw@(yx(Q(C^s z6L^HL9M3+%fJufdgaM+!<+(ZKxE`mVBb3u9>L?5F+wXaU)e2@_4<2 z%i)y;>DLx{xOr??YPN2;v5lgBabZv8=Gwn@W^;^BcfAQnns2hMvRe0@6X~JS-?3H& ztJ3##(|5I08LnhuU%a?`z`iZXdQ!4E;lo}3_$GI5_LYXRlDlVBHg9Oti}3tlZ4>k< z1z&*f3=-C_Lw9;h~VY$klGDges0rR8GCy$dHGetmplL#)ag2UUUwA$rYTi@!ebW%+u`2Q$WComCck-g zp2_x`jaqx^nrE~a(drrVi>@2Ib6?xU{n$!$-Nqob)>ucNjj}(q^@{8Z3)=iNB0%Yl)I-9L_opE$oDYYjJocQL`pQB zpW3_f|5bm}o0S^wJC)y7??PJ({YowU+LAl1OPu{Im7MsClIoiC?@pIhfFs?bF~9WH zmHyO=318jQE_^@@O&bQQj5D*_w13tQHs&$vzets9$L3vVSK7izkmyn-KoQWubyxws zDr6Oz|2w$;H|2Hi6_n60n5wxe^lz_{(Oo;Lk-3NO=b4pwl}F-gedyL8zy3EdiF_zj zwll*&5$+nYKOwt7P1C9y5Cls|4a+0UAdKfr(P(vf!5ZT81 zU#P=X_${tPmT3Ux(r; zOQ@8GgF98EN{3u`#EcORYHzi~b3u@cIXV2gcam4gZ0Me6Aa=S7=_HPiL|0}n^B-sh zlYad->@Z{%4c`2-(k3X0N$q&}B7f2NbY(^r2HUHh$ z-T%Dt7s`yQv+NrmqZ{s_wf?rnPuhj5l2oVS2<;*He6vq>nU{9G4png%6xL{Y#*C~Y zzw*dAaWG(bYuGk&&N=l+Zd|6YUM;u&BifpHy6~$cC^+&SQXy0Z9~kxfg(`15WK-30 zgZG7(IHtIv;IP)v&Ai;h>pz?inthaiNZoB|&poss>ih9QpW68Ndmm;6u2&Xj!o79< z#3sMF4lY=v@vAM!F|);pt8xAfC_>dbvl%?%vYn3N@x~yk^z3LTG5+EQ8`wE#l4=jx zNzyPC3#La}EqN9dlnBS=mp=t{S0{IzYbw!i^SIW%qtVuertFyY?bx@J+`YIK?~SaB z*S}<^)NW}3uWMCl&+M?B2ZemH;fT6NUitE~E)~cgi7-*pn9{kqG+>!P2XKOXi?-SWsX3N_3Y^|^?9SPhR}MU_a?kusJYyGHPRuV&(xdFIxRh(V zPyOXxVSG6L?q4VUDs*mG-mBR4Wzm`3u+442do!ZF(%l@a%XPd-GI9Rc42Vz3-sY02T8C6^AxQkLbq z!W7gM_aU0%yrp1TP5b1;NyuI{-yIcfkQGqu_&Hd!tJK8)l%r6A<($^v=BA@`)Zyap z@vWy-k1FmAqW9xoz2uZSP+$6(=;Xd%NRa+7b_3WanfHC{Ipz zT-*&6yv-WYuEy>u0k^7b;X__Q{*8?L&Dh{QV>L&2{G}GH`mGBz!Sma|2c11jUb-?! z$KTdRJB6(Fa}YEk+g^@Z#Rv(5mD9IHYIa|;eYN!78H5jIe90TF?*6dvrgKq#{It&% zEq|rWm#2cl-5O_>3ACVGp$`3Pp7_kuyV%~hKzhxVh!Pba8@*o2YhSD|#(OKpmT@OO zc{(c0d-;;x)XP|7Wc~AFoZZL9!>GGj>yz3S3flTU97x-$Q#{&Q)c7D{ApL@cWhqG^ zz`xu?TX;Uc`=M)P;{4%f=>ZxCrR~CfbFZ&y<%Jk+|H~!$%3tGl&yO7}Xs&R*7qPH! zNkZz~1_^m_)S?p_st30SBZ~RwqS=wRqeR7{S>6vjmIkj#B}AF5=Uz8N`Y~IKvcM*> zjq6}fxjgqo5X^2HuksSK7ut=cwoi_}hzR_{bO2N6g;}AUY~l7jx54p8R1dR&eSQrv z1Qzt&5-I*dEpNU4{XW{zSAXCVhVXEEC2_NZn^i0`c8+2n>KHy#E3|1pAL-_0D(%qZ zhTjV6qDxh$CsuxW>EQUN@27GTwegEe{MVSy2;;w4h)B%X7CM(8l?qLouEc_lDiG7$ zoK%Wo!_T*tFpp^kei=I=!7;hSf0_g49!wlHoynukTguqgeRvygQ~|Tk*e9uvK6Z?| zM3VFib*$wp&E~WuLv$A%-~CJhaKv|I@6zgmbjk4r|(Q0fofne1d!}0md2s{Z8c4zR%loAR1i9J`XE}f-B-8~h_ zm&Rc0$$f<@v`idR`Rq_)H}fa6h4z(myeT7BNWS*uuB~})S$+!)^{t1ajy9$4Qi;8R zu7Bz3zNPlkvTpLagJI`FB%=7gF{i}DLx}FogedBBFBt4rbFVh0KGhyV1++ZD^5l&p z2gBQAZ1?WB_@FC^c~5V=`sNJh!;dkO(+k5ucTw-5C#5|+*`ZcZTILwePg&&jy<79` zv|s}l7^YzgL00)4G4%;5*dJZA#bOC!=yaBTw8PoD$SP2$2SpXPju zqNB*!@$=vNcPi?vT5;{i&RD&b-L|dvd$+n*?jxl)jUJ$He@?f)JNkC_h1&PznyDPj zG$D?rsU8wEd-RMO^DXx1ZadfL!VK)b^tkFDezCfB$Cv1q*K4mF)X{dl`@)}uY|zXP z(SF+!rwWQ@-(-pU7h>Psp{<*EkyU0<*W#CX?8B3m^d}!5rbu5TfDwvB7T{Zb3N)l< z#wDP(<#8o*AxNL9f@nXl1k@K6s>Sfl%OApz45%CtWNQ=0WpOX3B;>=l79?=6g4Ph3 zXyM+_K@|`Wwqr*anC$#D%Y&dRS7bH>`ijR#5K20fP-aCSs4az%8Y$&s5Q3zzUsO^E zt&>wVb7b+?w29Rqyi-ymUiVI^Wp#n$E(8I`_y5^ZD|{>9V)>KO<66e-#Wx-OyK+Z> z^%F`AaO8LeAEPZhV|fJ@f|1Ja$4)gWo!Y%BqyAX5`UOv2kNyp@%a<(Wknel=v+paV zXe$Uj9cu&?$LQZ??#`TLS?Z1Gh}8TgcT;XTOP|#}5R2~BH1C|~;Xg0QI>#tsAG~|& zg7hf)kyT1xV-73`fsc@=$=~USGO9cxri5Gv2%VK>4FO8~J9h|#8!|Qz3i-*=-x%)o zw}{c0tym`3l>J=>TYyoRfLV$C4Ke)xbQ_4|pJ9Azc4JVmdokf*FfkKw)WGELK_~M< zclRy~Ro2+)uCe#Sr5PJ=6{cM{L}bubj>3w#vaYoHlFw92J=tNV{?K@p?-XC;7Jvn4 zH!x@n?vI8PkvfH_BHiR%SQ!vF1t#?m4yeM-(2nJM!3DspdJ4f*_!p`@W_GT@mtTK~ zhXSYB()uF-pO92nQg(x`csajynxvb;GIj?3Dx@a?ET~*fmP?Z3x6E@cFu9Mf0w5b% zNTK#tTEJ&Il*lpd{Q3-JC;?RaqD80)e33+0XXLLsU8f6l>~?VFR#v7d>$Y|VzaDG| z3a`chstbTPLR=b34(!1N_Ryy~1C_>GlOo@OQzzK+Dx>9_obg7^^FzitXu2|T8zT0p zs3nF(wb z*~$-tmWmU}m~t|u+?rd&nZTDNki;0P>u{A3dAK6o2{g7A#xKk|lX~P@{dgIWI5r0S zRTc16MThE&1XJYehB&07kpYLk5(Cn9BW2Mf=MaHMe*k?A0<_|k12oh!7FHW*FoOEz z8HQnS0&NhfwX1TuJmK{k@8ndT2AkqU!Ow?&1c`TK^#_z!qt#H(Pl+jNk91^U6xoz; zf7n)|T_d|GbnUqwZ%gE4FTREgTwLOZ&OYQsmupG#Mi9NQyyZ#C_pv+%CNxSdLYKi> z0jEQz85nV_3XwxO^_f%>qLND*7nhkD;{GTlEBTEuDYWcU2w-(hOdYMMQ`YZC%g1#T zS}g`Z4aCXXftULjUwQh&=K4MU!`lO7vFQzF5{BV;O43RVVq!Rv>8xZn`I zG=`rvS^vxge80s*&}nT%@lvcPriN6yuf)(N5txyR6!-!v#&TTwwG;f?=7!8m2jq=? zYl5IVgKrTrp@Ea<*vTa)aC%z|CTh~e(E6DLhM3~zIA=jQ-N*0v5A5Bl4GzAnT%sez z%3y~Z0IaFLV1H}q6;kXYKoEZ98Yp-(%|yIHsOt?n=g26KeaT~q{^&xyfhxHV==dN| zP~;2d3`b2;K*;}_c@Aa(O~A5^>JkAn8E$yn-m`}O{m|D=(qJ#I5&!|4Ef)x>Ebu@9 zrBBAB_nqX)y41zRzeQHqDxJY$q>qMv6U3Itom~J|NFVwRut`~jC(;&q*x_a{syn%s%xH><50TrMb+NloEc9-NSkR6_mG}_Ibm)APFUZSoW_Wv^IBz^ z0n*E$&T)o8oh}38p$k(0MC^g$50Ku3V!;O7$}ld`7JdK#ep>1T?{zgOMx;q{$U(_8 zrSjE=O4LVnx}0PDq3tB`a=5LtoIq`{5Tp@SR+!NJlJa4_I0Qnp1S7fkaZXdo0wOJnGT%nQ3{M?B&Vt2Lq5SvqY7(W-eLz#IX-lH95W$Y zB(+0q7Fyx%-Bez$$|+RCQCs~6lfMe!Qvv*J0B7X@31u&zSx!ib8-{BNP`z@B6*?7P zIv2>SL>^DLgb}`+UdC%Rb#F#w3oF|OzJda@JWD33b<45+3UXj>IK>;)uYn^&PNgCm zh7pAnP9)=dDcq_+WCcQ}`&qIQ)P-y17_T*2Lrs#LfTn3FSHtlhtXD-7(u!(oaGfwr zkip7(0{CI1R}p$i@&lL#I@2x%gpaL8$=gXq0?8X+-s^fQvL*tk_+zin#IYv-dXfm2 zlpHVuzmKG3riUe$ns#y zjNeC4UT{oHZ7QZ!t?VMY{ngeVVtBKfrt(&H#L2yfVm+c;b(per~{j;|(5T%H6(^q(t9jLv_Jl_~~N)tzo* zgm$mpc!hS}b1OTu7FcYp%iT5Cd&rM)wdB!W<-Qec!N53~#M{h%-uWyfq2bxip1xyu z`TWB~Qyw1E)siFN$}=L9yl>8BQ+aUND6+#jB1ro5ZK498T;$wzc+O%kE_K!rg;gRDjs+^6KQQS-fd zUZZ5`r(_b_Dy7TeI^6JJ`)(cps~J}U137L(I_oZ5e!%f-=5Rm>E&p+6pwq=GQ0Yy2 z4faw2LIsbwVWRX$h$*U4IsEt}hgH~;Ji~9xgV8Z3Uran7;Kr*kS&hSpZo7~I|Jb?~ zr%bUbebX5@)7W@vEKZ{O`0Ev&n)hE;EN<;nt=}76s{2+j(&QXjh3uIi&Z2gDw(Bra z{4{RWNqtzAZ}??O@oaHl1|xRDF>X(w4)~dNkC$=%)l1DbukJHgIL}3innYN(6Fa0} zbn4(q2S`=&-Nl1w&Z$&*Qm=>cWG=4o-tqmw^p-Q7|C{$sEJztW=wQ6^H}?4p#XT(W z{wvRGj55B(5S~}!b9>m4R@TCLqls+Ye8KP330Uv`s~1OePzVZ*+%L$g0h>eP{|ZX! zaj0kH0eq4r*Zy`3Sp|aN|1e1eD3!fdrtA&90}B^&bO;k1Y6oON4+K^>39*eqHXD%s zQe^Yjv%j%cMDhDu9t@uVtc+$APzS?Tl@o_vJ<9xE2*W>wvH&k*ZWhwvFZ#1(m8@(l zvQE}f$u*D>IM0=ARgo?cd7y0_m$b5f%tO`s%azyZ%?e}7$|rd&%o8c4*OeB7F)v~7 zZ6`ZRO|Sv-*@Wc{We!Fz4a?th?81k(d0Ba{+;Qj48Mao!l%=>;9Arh@(uqRhmKmnR zWAVj(_}$*sns@{uc4T!?BSkGSor7i!a-mz)yh|pZXvyATm-Y{i`*g&;ARZ9!lSaUW zt>ApH+SWQTSdAKNRSGehlo)}>4s&qW1T7M9-bJ6H|5bkg%cr}H(o#Z8P9FU%4n=?b z={VvuMkg;&<8TNa=~i$d#-~6t3jfH^mC~}{1R~HhWI>WK^3i>S$leMP&2>|GCRUO(MH`U@BB8NtFFqT97+Ld-e1eiXJY)SED6b*-??HYEtv8 zt(Oeu`SA~505iP;LoeFM4%%Q3O@aA>=1#e4m=aauDZJHf=a@&VJbcio17}|g`6z{! zLcy$Pst#{^%k+n$IoTK*hZRh-69+|LT(d}#f|Z~kFRxNdkSb>PJ5tND&^ zj^^E+c**4TdzURcM0;ykrnO|7%G8a~)M47sgKTh70kF5Ms^@Maw(>%RoA>t^39 zGje3o7MJW(&Jt?AQU3=m`Y__*s9nkknlcg2FQjLKb>r8d>Rl@0mawvIZ4QciEwGBem*< z5)-RRn%iQlmaf;MBSV>;#iYHKqn?#(NaUj}BiZhs9=0%zoikfGLF5}A7M2gNjeP05 z5A_RPCk|{X1itgk`5%rwx2o&EUOL;EbavhY{zpJ_CT9q*MqRrduSqDgWN8BtW4wHH zfKx8kxhhq-*jD!{@UlUEh-;O}mSV2QR?kWMJz~qCzi#jT+S+dOvhJ+K{&n{hFT^56 zm?D0KW_9|aoU1EVY%VJ-epTEmGU~izTee-I<`C+6BY8gfdx;(#!YM1z4q8IhoJFmx zG&+^u3)$cO*=-IDnD$duw;@7$nGQM|oiVZ?AV8erXy>fYThV+E8Y;ggzmJ=Nol1-~ zNfWv7){Rb6zC3@_7;kNVRBZIAKA^dJmF4AvElX?2OUuO|+Xt#xM9^B`f6DNf< z{&tgN?I312J`~^&Wu8gq+?_IlD5{%sV<)H%0;q@LkALxS8&cn|7I2np-Q&1Hav+c;PgHao-LOrs^+L}wn-==g} zlL)Gl{K-w?X}lJtV#O8v(5t`lIc}lEWF{pZQeYwr*1c$8_FOTq`;lTcnGP1*rNI6m zUY00+O}{`uw@6})6Hk1b&Xn`qdeD8+=;hPDkH^FrD+y}W{DYO(;v_2X?tN3psu3Gw zX7hDsgGTQ#oka1^IlMV4rFlb+y}^V)_xY*~MY|WxB%k?MoVZ|DQq3`^J*nDeZ#Av0 zQeGZ*nD%dLF8ny)iIh^k&)*lgMBxtd#(X9q57YVtqR1p}`jOo-tnIR}_+(>C;Z*eP zLHhXt9ZzsvD@8Vm6T2_o=8te{&oi5Jq8v7QqU>FlS7l_R&1J8=^xU#_r7-sz}auC?@dygQii;ZFCt?GU?S;!Bv(dw7KJrLes@Ugtyx z!7>_zervn0SZLpKXg{&l-#I+4>dQa0q$bAb&#*6yn5Nz>*O zCEsfwg-3_ye$~(L#| zA<_pPJFtgdDMZk_$*A&Kkj7l~XcoQTQM-4)If3>VcXK;G_I^w2yj0b;)^ExrOZ%Pq zT!*OQc$$3U6ZZV&{Ei!Cn!ixjZp}qaMQf9G&n_KFS}+`4Q{$BIs5iZPw9al>jY+4B~+u8-r!zt1k8 z*k)sxd_=;`rgcVF5?4yM!m@9`rBRlhX+H5kbdJsz-38|TM4EUxV&8IB92)g6aAyEr zKpatIo+|&dK|yw7FlhOYYYC?V`Tqzc`TM2+&3h3~C1jE;vq3@XG-(L(k5r_l`dxjA zQU5Q_b(BmZd&Cu1kzcyh*t6H@80eP+kY;pBK3nxY_LGanLFNa{=pE&YVyh_2jTJCyAU=OILidiLAg*(3^*IJSMoFj7dwm|mRFIT>SPK9e zppFeEw`w#vVJcIe;s_6+caZTB6&lcooceG$%wDEdWX1(RY7jOj$|PZ`TDLX1ua}cM z*v3StM5|Qv%ll1Az2El{9fPMiGUy84H-U3VID?Z*Ho#8yOoFSP9|CL}>2us!^ic(q zlv;L=3t(?x7b=hCWuSwZ-pSi2hdZqDWL5NFPANG>pIDjH=|2$U+t*YoGvk@SH~5#! z$ApK4L|G>%DVrMmB6hHt1_iX~C5n|?Iog0mrzQNAA6ix}s2%hs?rgNPX~eJnlxmy0J&pcRD>o7CioI|4KC|<57MvG%dBM;&P={X4j2$d2pU5y+<=OS zu!wqH7t*Qi!bu)K`I{fSq7%+}k47QIDhUzS4M0Z+Z;QZ^^?eL0U493jKAr;WsX~RX zaS%bTiHd?ULHDi6b%fRh_dw45_L=EwG-TJ4YqAiNxCtevFkKE7AKod9sSYu~j>N^o z_d(wAp<$SUZk>0`dx`#FWIJgyP=(=EMhQhr%X=cw6Y@m{oHE1|2;5N0Ic8jjcLOzv z7sIglBO3W)yOz&$@*_O_2Ng7mR^>&`$hd!S7ujw~<<;Iv=Q^b<5=u~a0YP(-!zt%6Tb^>%7*}{XD7iXh1;GFUb)WaN%L3=M-C!mt zXo}zR48S&IeZR_2PGwklge?i+w*de6Hy{e9z$4JP08Qo7eJA_IP)lzjxOU6gKqqQM zz|bXqK9@Z7Eu`s+V{mWei|>Z5ZwGyhNPZG2gS@fB_GwpuTeKiF?t2j@=a zTeNDqK6aK}gVI+WzGA=^DM!f!+mo$_LaAZij8q;gm2BM)y5avGgmR)8KS@cFrjdP! zmumu%Su6?#o?Ar)@F$u>b*4D>gdFe7M=tN;vb}+!Xp<*YAP&w-_cqB$)R;=@%qQ4Y z61-=RTy*%MILhR^`_8A5h^`xYbI0zN0RnGDyjIU*pU<9ICzTUK@0!NHaa|q7oe;FJ zh&3kbT&mCX-CG}DJ9jU9wnKqmd4@6<0Qk@|!KdE~TS2L}c)#@G z$Gnf;bL4h!2gfm~^Ok_AY7%?VL;;XxmmzgAumE)$0mj&TA;fZa7tR7Ypy@mcOa53r zn<6b-{{kOq^TXnG9A6+QP3fu&F=34acJeyZ29unHxMo-s_qNSpUIp)DivBFwMcRSa zY$x^~VMqcas{_YS*@iY&j@>j(y?rmow&y$SzKk7Ypw^;vIo1uAyx)>WwM@(k<0bN) zjL3Hz)uvi?2tdY;Fw;hSw<==7>Q zJ!a#f*;5B4d9!)Q+R-nl`vX8ix;0Xl738KGE|MRWZ2kX3YP8>wnh!!J(Mo-9!Iz%pm;q#?I z$W&hD&kiZG<}leqq!VN_gvgKB{NRD`<%@9MSIxNLNo+7o05l$)zwgKb7QyKTKsIFk z-h&zcKdQIN|En8e>_hqeu5h^^3D*KNK78>~E5GU=l`}{35cdV7le-2h znH|h_LVrvECXA%x66xeZt4GBZ_eLXVA>AYsJ+4btsiZToZw~7>m=xEM5s_EAT(Xt^ z0}LoeQc!C=D={cBW?{d^7+1i_Hs}l#`>w4zyg_HXLivVW6Ddy|YtNEYz_8>= zN6=GTUq^CEZG$)CYrP**sX}?zAkyHmC3ha4YO6m;c(`?KIZx94@*Wc*0L~4ET1S0o zu*VQ_)B?jGu*07G*H2ntJO?0U6u4?~Ash*L2N;{^1AmhP-fGCUrh=6K*HeNFar2SU zan@OH#Ew%$ONJI^74oroviN(hl(q<2mvzc@#i0qEv>4=_paeu`NS3$wrYw@2145pA zpulYhSy^H+dNTjHL&>FDd~$rc=$2JU*_(hzj580l1dr~SpH927;OJ7-e~vb%s0DB3 zS(R=+FjlR1EAIaz?9IcWZr}IuDMgEDwKEl^k|ZkIm{dq&9(q#tYLe{xz6=Q^ODKvO zBqn7^VPxMY#K_3V*oPPlGmJ49)AxSq{e1rV9mnsFjyf`UE%$xh*L7a!d0w;0J(Trq zu3@G>nL61#FT$}|MSz)fz(d_<9i`v%)*wk?MtqL)t>TG&{PC*17s20R6SI^*zsZz< zFD)pEnyNJ2crHCQk!>OGBK#g>zgGK5TXp?;s9f-F=6s8r5ce>73G=k#d~Ci_@TJ@# zM`bIA6bbFPZKo;qXOphkm4B)TZyS1|*w(Uev0d(RX=!bN(16_ge;bU!aFk>(lufIG zd2o%sWF|)+bOr0+2^d%vDm%2RW*-MPy5=TLtH8x9N%J+X7Cy)B`9xBh^#};HnEBW6 z<*B^^Mp%<1{m9v+JOZrQ`g`Zh@B;J0E*@FPxJz z)cW*T#MW=h#U@JP-G>{u%H@wvv{zRuBEKyn9}VxT+Rl(4K|a;GK5BFyq0f%vr22%6 z6d+_vE8=aVWVS`4ZJk7xP3t~k9Gv8xQ<5zPRPw3DE-|W=eUpZ|v{iAF0>fR=$&ZR` zj9MsaN66g#HQz&=RHkM13V=3~Gc z=bx}G2z0{{k)9frUFY>X%wLJw#Q|v1((|??M*B?wyaFf$EPM3?@TgXoh=gd*)|L zDk-ER(HUN7+@Q^R;{Dy<$9K)T09z?%Z?&6Ey{pY)YVXU-)y;#?m94s#TC4y9TWrk{ zz;kuTM@H5h%l4uD-dYc$jXNZ9y5c{avjw-;ZRo%Q@|1yAHbv zaSo{33ULCve-9fO+5fYqSKx(MY*wck1WnraUAXqn_&&jh|opx<XScUMp>uUG$aN2Hu6%;@&(T!J22YZea#?pT%gu;8v z6m^&q)Y16t0*=bXo)U}<$4mF;e1SJ=Pvh3PH~hE5_-O8nPY zdD2lmMNL2s5A<)nqogNQ>d;(cuGw7RQ(9rOt~!6mM=7D^P}LV~KluvD`Dog?C$7Dg zPsStsWrMFw?CZGp`^?(UTbut`I99vVmv`UC$_l+rx72Bx{yVvQ9lwI**OyyTpR7f+ zPWA&ts%tUfK4&}Q4FJ9`M%OJ~qw><~g+J-zwfmkki<%MkExvnb$>zUky$WYg zC(SxkldKGOA3h|PbWW>8-v6>r>JGy@7jiI-tkXqtc{V4ciXZK(G^wn#w61yDwJ?jO ztfIMpVAyu(SVPA_&u zvkB;Gbn`*)Keu>T4S20LboTcCu(E2hO&Kg>&HCL&A5p*hI$I*q;-aBJ^BmsNJaqF= zum|(#s{p@TN1J_k(vqUaZzs()$yOzoqLcG3ubUC29VNw2?xcy|NV@V)@_E$t*?CaJ zdK)T#sjSTKQ$qrX6pcnjnB*JEXDc2S1oVC#R3y}V7 z{&>@k8#h9uw>mBsX$P2_AAA4tT@r;zT-87Q{(Gy`gU-3O#FiKveP5S6iNg=S&o-U- z@bG&ROw$A~ozQaW4vO5`5x6Hul8sr<``Z0H&i2gR!;U$)9`&tLQZ4MhGMU+~A|ea(YT2qpVrlhK zT&gK9te=(Dk3C4Sw=t{L2#ink0&pt>@kbwGclIPBV9sI&L;7EKaqsxN}a2y3t z91!$Jz85i9~p@gVGI) zw1=+X;{OqJ6MU$9dz);5lTPSjH{b(ZebO9G0Xe?1??Gqvt*x z*K-(LbStu4TAB_8Bkk%BM`3QSt z5{7#lm?U`k$iit&h6=eaa0-+K(O=d>8p8>L)bOs=k;Q?<)>V5l1fIx%S3DwA4u2^? zPH1AzkP9HjCBUs)VBAmq9wi<#C4!-1-vB}a`qV%MRZjTFUrdb(TOwTVTF~%8G&(bT!6Y#r<(i?B*uqB{2fr=T8*Z#lBTR&8_{hfYR(S>)=4F-> zzOpBCL#qRsoN;dqU>)&lM)d?p(gHqHdK$jc9`Wn-mJo0UKxP_?8lNpL%^~)9&ulaw z04n4xR!8NNeq6^3AZmY=m(Ajj!~xEvz?6E>+HPg+ODT^|O*A}SWf80ssO;OGq)eao zh+Vj%M!eH3|dfe2S5L1hpAbt@sEv78Iobo(E8T zWIk*UK}u#oM%zkiA0cl%p&RJML7PGo@Zl4#Eg^zld#ofAwUWU|F}GA!WaqG{K#@t< z>5z)`pk%TzI9|$xLG0lpiOtt7(^{!h%EM9;V3UN^0w`LUrOvCeCnK1kaD`^T^fx3} zG2-rl_|<0!z=0dmx9b4vEsUil zY=wrSa8hVe><_R)!7@|Aqe!HPVG1deXaY5RoZ-K z;XH7+8+5!$5OOu3cnBcWFd;-SH@a&R_O;jQ{WuVMKqWc@@Z2DDcs-rY31rR3Zy=6C zX6swn^?VEP48%GDV&Oq}bANp-W~sbW2&n@aCg1k|uZs}m#fex!PX%Gsr*tJZ-mv^s zpiid?m?1tJ8-gm%fu!#>7rhAxU}gJCpvGNKd8Q5u|6n`gf^Yj0rSdD-$2_O~tQh-7TQBuO3s(_p{V$Km+GV0EqH zQbI7X7JaYQ$p}Ek{!3YciP0CBL_{Nr9XJD916Ys$# z2(!5Syn~6ug(}2MWQGnF#&;B8z|e!Q3(bUGkP5FSkg`S=r>;mFKp@hVIx+DUflv<7 zIiju=m^UAU5Pw$buBv>gQ1hAa*L;+S@C@A7)`J_-M5$|=WVxwEf>(HAr{--mpV+$5 z25l&H>Zp6jY5zKbcmnp34DS7`#yI$V02Fo`ZpUi`@+HQ?LkG2MUjFa?F0_QGt-4=O zlaBY`tOBV&w2dg^81)Rsb>S6_T_{R@=pHWeM`3leaYnRGcQG~rKl&eZn=$eVWC*iA z37}sY&GlG+6GFJQDc{jr4QvbB{@Q237yrPL+7UEoT_wd&ijge z-ye{h>k(fPFf%i@QqbYlJsWbJ!N=2GcNXezd#IAI;t>IEfV+y8!d&rJ%r!_4xSzOU zx$`o2Cbo9iJ%cUCvjy0#Il(o01a zkiu|op>Sf<_f(lWh8n^4+W6uI-m?Hmv7T6vt0yWo`xDwn>FCU*PvuKuOG^}Nwq$f< zvxNIl$VBpQWYpfg!4%9l0$4D2{4uHXw?m!PSDDiqn}MG_-zwILGYFLaNL%o<56A(n zJrQ@|!qU_>&{f&lMi)56U_HLZKv&2S;H{=8BiOCMn?QG0_cQP7H zk!g#HDkm{1=MOBbb36ZK@&a!{4W{BI5T|09khTN#r+F2~i-}9}v%i``l?YqT#dr`d zRAji_Au$UM&l@6pRb$0*|;#of5^Z%9`*fA+7&m7Cntb7XLqNHs6VXdhh6keG2H z7j&)b=+OG8Vti=_jwyXES>HTgGn}<}o}lQ|lo~2iX5?gB`&03z8Q%NhoXgZv5wc@a zWWV<9*lFSHJ>7YF%D*gzqnB=@80*5=qZ8igiQV&8@$PzHPm_#L!;3i^OD$WX#8fUCY%+Br@!bLSEpW6@fz-9R&De zVveVuTKhGvVv8I<=Qj*3P`^L9uWM(%dCS^#ex1yPR;hcWIJNpgUETivt)S}Yx}lw| zMkj6oo0Hb5rZ(l6k^ur3*jsRZEI`RpnM391eL(Q5VHl;VWMDz zK{S_jJ`hC22mtv99Zn?@FsoPQcx)`0qH-&6?t_H_x#*$!AYqp{v#KU0BX3GB_VhH@?#0XYWM zW4^q~T_*%&z=d#6ZifQbObIbsTaBy*A49<(@I-%}RTA*mn{FdCr7gWSIGdZGof%mW zIVP9kaK-n%iuK7|E>6F7*{|*_z8&ZW>s{mckGx|VpAu9L(v_4_CZ{rjJs@*{lRjFlLe+lp z!LiIDwLU?-f56|;EJ<2hKSs5?)QMIclK1sVb4Nm-tf9EyB@80t`Mt#cAu~XFG;Pq! zKl$N3`Kd#9(uCt+?P$q#5IG`Lk~7m%yEXJsXj|>xD#d(%H{ck0D2RD|q`K_O{nn!e zPWQW&VuID*+7_-Unzl_89zB5}mFH`C^ z+FUAAdBim}5PlTl`)Oeoa~=%`K=_9bpjI zN-|0eLVYT^<}mjr6aUmlQ*krqam~K3pS!B0vz#+=;kK9aE6i7fcGuM8~QYTc#o(j8r~SCp$j za6cs;_uZrZJ&ZD}>*w4$RSm3%hZK0einr9f%kbdqcPJ)xR$icXs>OiNXihf9Uw6q^~#!bj;;Z z6X4tnJvB#y6*xYaQFHIgN=3bv#!aJ-Y$LB59dRi$Tbc_w6mn;jNP#z!H40w|rH>-}BO21Y zq`mYGD=J;%6z9-90z9qz^P|-0T1JkEkNn>?UZ&12pYm>W^LSSj%|&R{jz}Bni|=}_ zyxXFgMzmYu*+kcksq;Oq!tb45sCxG9+Y!O*?b|lpUE^72?lp$BLd+GdcGZ=@0&Ti5 zhI1*$kWooZXh5LG$k9Hwf>T9>4uSm%duVtpC-8EKz&92V9zmZG1>bMy5BSzZ&23zN9Y*MNMEe3byXWI%DZ};p}O7Z=n zOtwWLmHeQKL<3mNPv@Czl>+UWw()=(oSV%8~Hu3bin>nqSN~yMDXZChz4~Psq|Ye zLLC92Td(fJ*{NOKHT^X?jvQiq!DAMA5J_aQHnMCeSEJJs-qR=$ipV_)xINrj!2emD z1>{qPIY$S=cR6oLhSh&7iWNsSr^mE11UJ zpFj?Q(&3;1C!n2m++p20#Ai*O|J<;YFGIiK%`GZ^yVvU^eR8eri#v%|Ej(9{6@={Y zA3qnO$BFsKkpxlSGTQ^%ClP}k)o;%?7M#6NC?CH?&OfPrVwb`(#aSVbTX*fmJk7moM;zWfuZ+W^BY4OldAX0H`Dmz{b{twkTv)fzW!{`2Lo>B}JD|@Lg8AvRbA; z2H4$}{DCn5H|M2i4G|^ZRoFiiCp!F-)x?*8<^A-CueOuP$oby~Sv)T0ySl~H&#D3^ z(M;^lmuPJ7gTjN)Tw@-{8Qk^R68EE3{N9~sdjBRq)3ve_DH2JWA{l8qWLxa$1-@}j zgCLhS`!BhNcc=c3-~^2_{hRcIQC$Ey{;Oj0X0HQ47>qV%A+<3hSphPe8A6)=H8WcF zaHjlMu1bB~Jg|-UhbO=ORp~{}W}Bx!iW(+I<_YO)TVy0__C!`Jy3uVeWU5^JxTQGz z^u#0Ad&l051`}lGZ~j|?2c-X%cc%a5yme?p6uwBaJ%!C*bK-3mQD$Ps9$oFxNZ<$lWD?$xuuOl}aQ*J3S;p zY?;kskGs1=(%G7eLSY^xzPu$qZ1!sgqJE=>Q3UKIA#n99*;wC}Z6mj3s)d1@z*3(t z7pe1$AV!N9RwGC=^bl&WFxdZKG1NhUDHSk(QCb82TDUNX1qg%VpeEUIMnkwrCl*}H zK&Z?Zl<4+B3AE5@fXNmrN06|{%Hb@C$~FNKU}+K<5soM(QD{AYsR3FOk>SurI#@@K z^#=36C)Wo8J(U-wWWZ_xPPKqMA|QQ6)2Btamah!6t5NJXG};`*h#kr#m|!v)e#(;{ zBaF-1D3YF4tF6ksS^~(zEg{W~R2-5+Zki#*dyxfXYcvJ1p32D-B?$BD`)4~9Nfx8Z zRCx@n@j)OXMAH%a#TSuas{G8OOGx8&yvAlAb59)s1M>uA)L0|#XOs!zL`>+Uxb)V) z)m-Ew0b1R%+RiSj0N+DR>T980NWcx*p(Y@$(j|zV(wQN3O~y)vZ{UNOGRlcvOTeHG z;}xbU69|F>AWKS};TIB?Vjm3isGrn=3D{tBLA=ZCb`O+k{KQAXR_jbkqY43jyHRRr z*}1DETwCM4F-8=(684v^fEj2zwyna6FmGvMk}}CRt09(u?!JVeJ{L1?b{2p@Y>Ih(*r7<2D`$ zD4s{Ve6-*2GBTu=jy6Jwy>cI#9FN7Vt^%lQ=95wdz{tUfvKl13i1QEl{bArwIMH=D zdWFtf-Vf?67|(W;#k-rZQMqHV8I!S#oQ-dVZciSilfXuaadkIk&Sgv@AP^AZZ3321 z7iM*8W7TdV$Yew*cgF$lHq;S&qv5^@IIZGGp)CLdljE<9|IUR1T`}!43J4&nGk=VkbpRV8KS!&C^#H+l%&-Fs|Sl>jmv17fQi717tH`WYp;KV2*4BB#mJDZ5nKA%(O5zL1}`U6zeGT`$;Viq9#zw1Nw0f4+eT0(DI^>1SYPmv1uf7CRoYq0{Cw_5nWO~ zta>eB=W$^jtj29VP*#Jg{=Awr&$iAhNo}5BLX_!&2*BXlv|rZM5oN=?NS_Y+u*JYB z03I4x$Cx^Oo0oNJliIIjaOC#@n+36lvukO77_XB&^NlDa$kX}(X&S=3iOzyxej1Iu z;zz|E104ij^%lT27mCgzdL?vW{pDoTHXNCEhAH~g(2cS5|hC80^e@7vdyE8 z)vBfy@2TNc2l%8TzED78?Ph3%48#j-c^{0$4iDDN8H}ex9jnz@nW5@vxg-HZlqbK2 zCkk>d23$f_?~(YbNyG(Nye+RL=r;H$1Wg@37~~>06Hbzi*OwO7u7;^XD-U|~PVi29 z?*7JvevB!baq|&InB`Qo$n&~IH1MT-Te&uT4NY_O=2ocChJO|Du3*9h_;^RigNUU# z!zDw3z6#f)qJ5K%r^ySetAmIz6%qjuH-zOMT=)ThM)?T)== z+m=rZk^<2fL>C~g;6DClLSb72`z7WYxMOaohA$sk2G~YPqfEi-?SghtSQz58@@w>0 zVARp336vude_6(;t_dwqUyedET8$9x;||jrxn%`|v1~7BjBgI&Seg8R$qj}4f!z%z zOgJC8UU`zFT!-nifiphxEm||w#i*?Mkx;%cFTx!HvSkMEMq2G#$AEL>Zu&A?x>}%I zY~6z(=l25~WXPiF@mkO#7Orw4#A@B7$jEJwZ*3?0Yd@a}IrF-R*W9PHuJ;ae_P51- zknEgvRhU>?d0h;KU3!mID+2r#0J#lK_S^*2)pINRL3E4GToXmg@K6v#cx-?y%22&7}9;={frlqcvZQi=Vl2;X^Yln zfd%KaAGsy)w)qIOl6Nm(y5o8^x$i}d0=-_g{A_SLktfDBvyYI8z)Ovg6}2m}{4-Ryi1E(8rEqe=b6Ff8&xV$F1Q2X%h8+*Mh8yq&wa-LpB$QCOXrJob2Q zwc^70>?b%2MqK~Jc?(i}qK;-7 z9flyLGm018nx1B+eDTz8<3(i3+0)47Vyia_z|~@(l32(L48_eh2+ZsW6hviwqAiOC z>3rMgNOp4FG!yZ~DDG3BfPmCEyUXlpsP9@TcORgZsAx$uEgLF?p5{2D9{&(f5fWGM z4twLBaXNkM%FArY=SMto0z1n+FVKt5*Z?rzqlaLEJFb&Aq*!n`qhXewM-!=)3En3W z_hZH?5O9=9>naT1yYAnHH5pl{>=bG5JlwKb${!d$4jiBl;G2btXR-mp`Z8EvT7^i_ znL?)M9rsc~a_(YE80|Sm$Z}}n4IW;CdN_jjD=8+Qn!AB|!Dm6S%vQVp$w0-rbt20p z>lOONi-0|~7rkb;05|6UWNis7CR8Z2+-A$!P zYof&nz<C+w}Lv69y`@BOiFVEktY39Hql>j5(G}kPr_tU~#h8^(t zzJ5t#cm6H_8F-NDCm%*~_3@T>GD*3EMR5I`HDrg3J(J81W=_tI=0Cuco}XRJ^~X18 z?{-R{@3L>OXvsj-)H3iU*y|!WnKKnZs)^G>+bYt(7mJ#-2jJeJr0&j*wODJKzAUXR zY`S}TvC-hJJ2}Rp4cZ8-B*25 zpSYBW2>ayQIGPv;X8#iz{4R<{_p|&(8#)*exe~hd_DJ@{8+p3_77iE}G0GuIk9 zR2*PF-0`Wjy6m*oRVWS(UG!J`YT^I9_{{QGOx059d@U>S4P%-8gR{7X^v^}XxOabG zMv(IV3Wj&1HwWADw|-}{ND5a+b( zIL(E?_Z#_Hc(z%%QTi$vi^d5UbFu~6-G=&F#`@3Z*ous%%N3D0Qm}5&1LnY$ntK+l zC7<7LU%f4kJ!2pp_bd*a2*MXjaDoSf?+)B1*HCd)_(~f;UOsSbP1xxl-BQ6z9kty- zJ0Cdzxb$PPQx47SYJyLIyKIvEEiU0o%eT8J4)>BS$E#5Tj`--F6oKUE>Bjr=j%+*S zU}y(KID$dshCeU~t{CU$C`!c2A3usMqGrT-8jT6>a;UJ6(S3&z=AOq5noFMw`dGR3 zrQ=PDfqm87o2Of0{y$AM6*|t{UA|MG2>gAkI@=C7+__81op|!p!7F%o8L^s-%Nn(S zH=;!G(LPF2G#h@VcJ@fesZqOLtxGbm@&`D+KTYj!J`Ax^sNZs|^U(8VPlJ+4%v<5g zzOmZ+l5#94yBT)h%|_abrVLct{oX&=mv1^?fOl6uiT9n6tbb2i4W{P~RyezvMxJ0* zmx+6p7lkGbTH*&6xx(o@Ar5{_K0^B-C&-fX&sohP@tuiVqmpwhtfq~ME^>n2NX%a? z6y(8MP*yy~%ss*>6p z_D*XUkstdI_qXz$85sISJLhM%tnBdPO6(Kw%S8E<#j4Z&s-mL&gGz2Mq7Ao;8r>)` zF^MgSTXLJA%p@DeQ!7*c+pAmqfH zt&2B#Z#jTSdm6x_;I5>!&p%BV@jjxp-}XdY;6ARzuca@4V5g?m<$JhZjP{m{FSuw` z+h6)Ox`NL#h3MQPL7Dz;07>1#J5ZbaPjPC~M{0+*!uTQgJ8nW%T={I zWo*uwu;+i#+LDsv({c(w&e`8wlbF(Q8LDQgw21IzN|+f5+S2};=YcLnNb8V)fmUF~ z-8{`JookdgXLL(IKaU@!y)K7;Fh?zWA&`^O#tzkcx$R@mo98&=^N(!O3d9SJy~fhlz}vQW@(!6`DTT<gE(wwxJQLp-D#r+Y%E%tokC0;sG|(kY zT>^i1uFg8j90D2{LAM=_X%mb9uknkN!}!HH1Mj%BI|oYNR99Z@ADVY_uPirdilb~(BD*JnM1&tfmz$9s6pR<8?28KLv3>gK|3Ba>mTJ0)<%6cJXkj#=2 z7+k1A6#$#8mUEMu7b+I4&(Lo==1pIrw8^r|uj@8%JI8SgXDHjuY}>q`Rwx7(Tnudg3PH-Lw+=mPbAp`xT< z>GiyTv%STB4nZGm93`sEPItI%`Vy<_hO;PmcH&yWk=f5DKQ}tx*7ZAX+eR=}+Fva7 zM5p=UyyZDcS(>-m3O6AlFbEB_UNbX1UC2&p47%`ZnAd0u@Rb6IIDT|>`#MsnN|;x> zwBghk8O7p)o7Nk$We5P-_csT)Nj!GwHPq-|=Pv=sp_m>*0HBb#TGV1cgla;t-yvBr z_&R>DcD0ASvcFb#R_WK_z3gG>6h>zq0mT0s4vp!c-DSdP+{=~})Y;GAzC zN{P<>&Mx8{`T4k-6T#HjyFY<*Azy4xyk#)7{h9hon4BOV)_-YH#rnAE!uvlkR*H{Z zn%Tz*;kGO5H_2MaiOLlZ?i+sLlpH@nSfiMvs6$(d^Ejhidso52Ny6aoul!O zCoh*jJ1D<)b;A6`O~K0|^o7rfohqz@iR73VGggpqX@xMz{{r6yDlGV0?KO7SzTRmG zW1QJ!vtw=qSh>pYuLuZfTo+uUZ+&y+*zV*v*|6K2oBY%!<>=0?t>Rn6Ck!Vzmbbz1 zq=2%oqsgTMS$2|~6aL%s&*c^OX+Q#4RT=$R`%7!z=!{Ec zaQfj&eUN!xc~#*N0R{++RS$@~bhJt0%FBv7$S-jBYT5vL4X_Tj%{l}ooINiC_r$9m zjR0Los44>(?RrQ(39u>trnUc3y&?D|d2ED#zLkQ>8II7xV<=eCE!eEM_1U2_Y`c zVFyC-cz|;v+mE~VG#Zc-n&#c281ZKU{Zp?J#CaH-o=f^uv1h7J^eo^&^&-1G?k?I# zjrEAvr>*m!Rxqk9B;bKYG@O!v6NrEFWR;4|jy2(gO7epu(_Ict=Bjt1w0wc2_|-<@ z55OAsoadmh^rk;BEk7~H^Z4&vFONPLk}sT$4a97aTsJ74eBq=>YOQ#urVk4dB*;v5 zQ{rq|4Q2z+&@SIP>OlswRoV!w*U|`(JS)*UH8*u`s^hME)dO1&pa+LE_R`8Nr_~5s zZZniA8MxZ7pzPcLz`xSs2Se0=Dd+9Uc-Y*T|Db0nLBRv{ENb|$_^dKPeG&rL{)ZvK zzIAQ`^CseTT3bTCBzOQK5>$nL^Sh{=Ov2r+@(h?;|)K8%g8On8aNI!M0eHnzgNmi!{3Yf(}R++m;c+%?QAp@^( zdkV;tG6!FG13(NE=sSg^f_&JWD#>9&8u2gLBiH|`=k;`?CX!8L?|83K&o>NIz2{T-4)N>vTuS zUdIu-u*D?%D{VpLjL2)|EmF= zV6fZ1tXcI|sYwd9=CuSwJ_SK}G+y8mIbONXZ<$*ToX!4PgzUqi>H=Y>m4}NbV>f_q z2)dxCQ)cQ`Lc*X~kPiV&0X_W@4@%JmHThg)J$?;enQCCU1J=jXDGhgbHEDHuF)Dec zPMhVjZhME976_}Sc12(}P0HEFBXdJbfN$sywN)R$-N~S>K!q$6TT#wlz`J1bwb#;A z;NnF{FdhUR?M|>m!MU-n1{MiqfC4Un%ne_GyKV))kF{yV8&sxf+zNdF0yO|vW-B}e zpebyyY`~B8)PTWgz{)kF(a;q@)J{M&@IOaEs0#s#S>Pl{1q5$!TaCCJN#Q#o)oOqq zHTk!p1u*ePwD@6L&`Q1w;r9>}BLzp1q?qBH#g-7z(Sz()dKUDR7*1BdT(=q?3z|Yx z>VLV@fS1QF+E>(tmhzrOAT(S7gA3Rr1Hb2I`gm}GPGTb-EO9D!6V$>0Z$mK98==Wi zlgc1|okM`(i_mjAs+|!fq!KrA)RE3 z^dd0r7h6_eeWoE947$j`)D;w(D!uX9n!IKo902*lc~<4#opx-~fb>7qA+Mo&s@T>C=FV zwDLoBsZA_8b|5Hx7BWV-vFypTqy+!CPJnB@V#cN_;%|Fypn`F*( zfX<@86dx(04y)YhwT=j2Z#)#-)FCOK{*Sb-@Seo_`DgBG#M^)0EAYR)?I%WWt&?KL zG6L4U!obr8G9HX|SeS;4zSLGxM4dxW(Lcuo_m&S1gl z=*&Djt^5MU#S0}rQh5grt^Isth~ zeDwvy#UFn+cGzavq?XV?czghCGM68rUk%!7P}teU$5-glX&huPOU|rQUqZMagN(8^ z0cpSX1xM#93Uno863v*LXPBuLo_O*r}z)- z;>||@wVvpoVbJ>AHO*8wHHHlB>*q;g+&mI@pZ1&ev~mu7MA$`REmI18v!~LJfY%0f z8gR|PwAz6w8pkoyr=-^BBfLlRacz%)#p4pn%~cr1T!x|H#xJKd6931#2BB9wZ#{#< zVB^C{H*Kh~<`)8B9z=2a3>n!ivy+x|f5`kDW=SM2p|hND&2?Y<4)C+SAm$6*5kkUZ z->A6JL{cWq1ZP#aDyAvrLsY(4TD3 zUDa)+1^tzpBer0g5&7uX9&E{n>Qr2@l&==~f4uAG_mK*aXNEmD)?MaS6|(K;-B2er zLNJ=q67(!!8hP!0ZM-aKKahtql3$J5zhIax3RfUPebi%By%}yJQSk;rm1aJepMm zwTV5Pp>bZ&Hj9DCw|maRCqc?$n`MYfWoCAiCxBH2Mp!~;#pRO!PrunREr6c8 ztvrI@bA4fb&Y5gLw^_eS$2VLJdmZ>T46$NmewG&;nI{_A?pssppM+WvMTQH$8; zP;lr2n!AmF_#e6saS3j1kT5_S8SK+80q}4)LMiB}3So!W9l@3ZfH{aEz;}ZN8RPsX z(Su|d(7&HUd-%eXHuweL{J02aodB#<37T{X(K&!6NqTQ#aQX1-tzs+!XwF7LmT};0 z%vz9dcJb8=3VL1s&wHvs?1+@RkVlLEeAmw$sLNydnT}o|a;Rf!Tr?Bcl-fJ@*_=kc z*ucN#g+fkK+2;d@9qClfJiaZr!-pzqrz{*?$Yp@ba`Jv{ku1rTC(f}Tv+s7*9M|32 z$Mnr+9t9h>qVjz5+2ZbOiSNq&iYfD72*s>#_U13P{5Cjx^TpV4DOZCdQ$$%wy*;_p zN9HRE&W{h2;9GAo#5e>zi^^T=4GK;Wr-3ZY(ir;^3_Cjx-kVAwFdns|g5#GP1CpqH zU}&72G24Qya{(MXcGfC8pJ<+@XWz`1AT~{ zEa13t~4C7F4ozQx5SrCL!Wl%Bxch=<}gGZ@xYlRm#UKvn`tj->T zEQ|p{2Wi-D18W5)k;%lliL#Mmke0E|){BPE0H?eu=Gpx$Leqkz(i#+izOLibCckd-xCq`n^ z(t>weT{_$G%6zV^!s@}u^B_-d8De_HR|32D`cp@D-1iUa)&@C2XG8zZ`TV(pPX9^s{)BVgJdz$+fq5z|gn&Ti3S!x21HuRo7zih zxeB6@ucxlQO;xI#KcXn{V>qOCBzv?jT~9!aIwdgLV+xrN)V4Da*&|4Tn-q^IqX7(& zw_&$S7mR=EEm6EYa4v3a*O_bhzNKR>zoU%0uI`;~`+Zy_$nv?F*@Jgjalrp8{t?yG z(}+rw_-NidOMX+eiv7Xx8%e=4sZABb^i51YfHHCLKV7HOe zJ@CJi&v`va;M5RjE3M_j+}Bv<^=nF_v?bjx`|0~fH}Sp_BFX5t^?5dW;;~-ShrbO4 z7+?Ez>EyYEB&PE5_1+a{FRFrGX@IeWuEmK}Yh8;!FwGD`7Dp_9-gNjPJ&)K&4X^yED%dW~M&btCo@|tCSW(HfYCx-G3INBgN2S$l8p~pGd z+Uf7j{dKkF4Bs`6&cixBShPDJrZM(+sixSSK~EH^1~NSJti^+CA@8wvf0{^r+P83gvzqqJhyE@O{sQvC~jpz0^YLhNXE@vIZ zj=noFe9l;S!&bOV?eNNUGg0?=p?%rBHR>zU6(RvM$W7ITBcTZ)m{H+~8VLq5GGFV+ zsI-tiNmbFWaq&U#d4cOSmZ;-C&B@o}rzz)+5LIVx9k|syV%2*5Gq0q0>i&Tf*ORhE zMs+WqP>z3+<3g`>OI)a}ua)FpUsA6(IA9IozXP+A>&nS;WcsH~n&S7-;5#2BewdN1|9JB5kICM`e-mYIml4 zaVLH_T76!AF|T;mb+8s(&K^!6s^6aN#c?VK)_iX3zswF~d>`7&Ol^E=8=CXp-)<`a zZp=s5F4WkuKI`1sIoP zskE-<^(Wj*1)SvORYIMjV~g9q;NzSpS)2&o-VT1cHC^khhh46rhd_*rG&Onc=&I&N zCu=0}I?U-8Yh{64=If2c8o4aUZ#uqs_0iiwb@>jF{A|10RJY2!MZHAkc|xsF3Fw>n zOV-P%_OOZso%-LgSF;^lwwA0m*JK>&h%2G~69cF3d{8*sdFt@z%7+T?t>k7-z>ZTG zT%nt0IijX7j(gU(((QsAYW~1HNDlB_HF8`8!!Hc;fUaQFeKup~sakerzzt04*pGRZ zk&U6+9p?R)jKh>))1qccy8ByIf8;$trv(}2(M2v9m3^kTmG|y`p z!>z~g$l$v@s-hmR-nfi?jbErYB@G6Jq?XcuyfKaW2+zNh9(jf9ZrtJbnOEpfh;#`( z9NHsuEXYlUdlO&Ut)+s)IL$}^r|l{o>9X{!2klxSWK)`iRg#Xw5pMYNZ3SbcF$S9@ zXTIG??CVBo8~FB3=6)EncYG0m-evcFHp#eOUl&vP9Ya@O!W(SPF-0F~sf_UX`Hf^m zYVR&)2t^b+%AH+)oNVNhJUzc4tC&CZufqMp#FSg(<$EsRH;aACO-=V>EeKlQGHTer z6nAVP&kt|O?pmo-gHN*Hli?XxgFtt?nBWFzYM+DzaI}P?75N+p59`_lRK0Gu1@J5E zYzF>s6C6B)fgTg4po4P0NMI9ONCD+0&9R(-u?|rZ!Zvm9Rnt> zYCsOZypcj{{D}Tlxa1mk|<*;v`N;=HYPb)%ajV)HFYG}vae&Ql*R}} ziJ>f$%2t*(TQZ}Rr4ePxGQ`-I!C*|k>(=}8{rz(u9mYMc`@Ubxbv>`=^?VkP7b+B| zm;PpmJ2gY4D+Kw|i2eGFaI!u8zZ8ix8mEs$uTXmL+e38c#7+-WL4EDU%_0PDxE?CO zS0CpAqx)_vn1vDQ7CZ>xbqu^mu%)(K+&-(>%s=G%jDN22{qbJc%^$iZ?gwj>HF*z@ z1}^;i(Ad#o(x>z3;D4pm^E;`Y9H@6U)r_x=x7YYv{x(a;h;_C3iPk=>_h+1TJgD3B zcv{-<^O%sI>!F5QkEKqKB)w|%Eo@3`6}}T1hpVfHzTJCle(%lw)h zh5{b(2X%L9+eef6r<~!eiqR>Ma;VZRKUkf{dnovNlA`$em#n%lC8AubbE=dW{Ew%> ztk0H~lC+*bsJ^ueACua$c#wycHfT-`@WtBMir2k|gNAM8XUUT?Hg@aIT*_qjM!mlw zOEuD-+~oguU{3kLF=NZ@*2F_{bFNm@^T(H-HI;^*g{`90kaqCwcUG370(oAhZj{`e zOW2YZTw6?z!fp6=*yi8a#By1Ohr?xZlN&=*C2`b8qWarEUnVzvejC7~FTMR&d3>}+ zwxs`E@%ucVHb4HB#a{h~msU}vg?ZkM?fVSte)yMu*>Bq+BHt@#!*BNrr(BG*RV(n! zSj~ztddirskST5_*LB{T^lpbqy0DeW7gz1IUs`Q1x>eAjZOcI8rd0y}pyFEchhP>b z#j`%+38PIRSCYr+34?|e6PEe6v3&Hzz(m31Wo9_t7pUpY;#;>rW%6ZZ2Urx$8H4ZN{$5l{LIhoAv3+Y_^8zXSeC%x}*=5Qzhk3g#=XPDX5F>L-n`UV) z_v!Al!LIHAi7yr{a?)qntM}A}bdLItmVB;zyrA_5wUWy2o%=ZE`3EKbTMD!I&^xah zTR~_(s}_1^>@f6+fzEaEAJn(F#VH}F1!?7W31RAMzGe{B8}gYT*unY^Dyh;^-?G6> zBeeX1dc6v=x2ywP4|8IDkn{r%L%kdPaQ=l{6GTXEK;tNhj!JtfS<7aX1K;>B{JhqG zv{WXNDZvz$@`h|vbQu>+>cgUKyqQ-ADozo})sLCWA|F#iT!w~}G^*Q+RjypCv2bxo zqXw5jq=84P}Ho78ch6ZzU1{jlE1MZr^$?Q$Dh4 z2y@}+aJxKgzAM7p8@=%*5hx9YKU2CBkwY$y{M#8FhJBUdp)tJR71xYFmEbeyemC7i znc3*g#43YWYqlRZE%*+F6n2%1t^yqwVDT=X*x}&-0WS#3pl|^lxQISX zpi_tUp2kV)ulG{E^;$>=&+^TQd9t3e)wu&Q!awGAu%$@I>K}Z&yjm z&z~RI6;pl;Nz$cx4N{@d?-3-LrdI>X)Ds0QH2a&C>in{|vur+h5b1saI9behv~sqa zq?1-lVikkb3i1H3XesYmz!j84J!jIP+2Q~+!b8V8ObBpMLxu(a23DI-`(N81_&3t{ zkctrJ9JD-{rSoFT;3smV7vEr@S(BXhg}?g9%O4}3Ahk{~?M-3fKmqAJP}}hp+2{d5 zNDx%ggkWlD2F5l@g{I}f50-UJ?9+dxLPd-;zqp=_Uou>#zrpgfJi`GFu_h?xV*STQ zTY#hv_p?n@nR6G7RZb%=_5pA_2%WA-OFhc7l8qAjF-dzbkn&pS24EXO>^D;aNol63 zMl&2(kIU4(x9e~L75Q7w2p_`VLYF8Jq%oe2wCumlEkfEDJx*LCB~X~!F*~@7V=KUl zii{~g%Kg43!7tS4fe>OWg59-N7*Gx*FXjuKA7&n))3YiprCXmm@+E^ z2f}nEkj(&=$n|mX#O~{9b)L%n@T|_ z&#t9}d64M=6(_*w(ZWBZX+O4ypx7)4Wa<8bI?bT!piwtlMtdVGjrbAiQptabRp`49_@*GH(er%-9Q;k+t6D}7{Q zS<*jth^qgF{A?XOyh?!=xjP#-<-IMbG~)eE-i4N-LRvic|EZ|-cn#uy>Y3ey7CQ2c zUZa2Go&7X_J@QDOUVr1u?RZFTOT088&v?o}lP`~|QvHcl)tj-k&h*^g zdJ{U~Ku*`^$y8b^>zPifwsfUvJwlvXbIaa{eR6S+)D3%&)qlBm_}Q}(uSQ|&DpzAsuj{)W-OG|VuCV=HvXR`c zQOkO>Q+E=ApDDYRzC3N=-Xt5kb$F}2+jk$6k%7_V8>1~FB*Nu4i8c$<r# zy5U&MtVEz%Zu?IbMPaI+@UUL!rBc*_2^?w`_3oj*FOtd8-ge3L4l#LwS7ME+b8$E?FTl!S5dUh-z?@B z7gxQn&u6slI-Ez3n~w5DfAA3jDOib(Z~o6{5B&Co7NHGsWhT4Iek*z8^27iq6RCX| z>3t$pJ%Qp!acs*$TGw*(z*;y-g=0U!az=rwH(@Po?w?yWz_}(0o)E|h`U5#00h))R z!}386)o*3Qb9&jD5j{Wi{|=S^zl{J1QlKw{v|N-~=5x?{7J%oEbOnF~98%#%_~Kye z2OS8nk#gkHUWlZi^!z`a8t|26O)URRv65=A`o`N;=!ySHJCeQzpMJVp;gV~mgK{5x zrD#{r=-K=4U%=_{cs_RVbg;htT7QF&R{6;*TM||8C|Nq@yD7V0e9)kkcj?X!r`36e z5{HV_JF`m4lNG-7&Dyun40@y~(gFGISr@($HOxlqR99TQ{|RrRHRY8OJ>J%-z_S!j z0|d2wfrcI-^q4CDL2V_Q4R>w!f1XyI?GG&;PZRGnEwyNW34K6bqyXX1t8Xu4ES&SB zOTOA$A!aLdRfk$WbnDK{fpE<(pF!nD4?+VEDKW_)_bd&$e-;u+Ag&mFh9b(Nprg~k zMv{B05A6#`jpMHxBs9KOGZAH#(*-44LFLV~VgNBUguXRC$jZzFdP69%+;CCpfhes& z_blW^-=Y6|2Dx(og?oXCX>uKj%68VpeF0r=FLUCIm%7iAH^sisI8atuMgK3c#oqJz zV=J}q7RH|0qt363vA(TOLZlnA`$3u&cLSbrII<3G09#N#8H&W1h>qeuM09XD5~4B| zdvUQoiW|=J6i-jmqx1PPbTwDUo;zQI&b)5C`bA?Zv?1%H_w1>8*)&;$)f+F)J9?Rp zwX{Mf0yWoQ)yd{Z*L@@JrJO4%a(ACn9|=uEW*u!`=*=J~OiF)RB=GH<%Z2$i6XcJb znjKxoAKM#=7H6$^zLekd)ohL0lAozrpML3P=jl2*O8i*#2L0_Ow>Kv4%Bqqh5W4<_MUSu2(P+6`txm{1qXqRLy&*NF<^7^U7ep>Hl+W&61wf1w)4bi z#m%?Ie25$De)_*O9DO14>ftG83#Cr$;n|IPn<^8k!~%0i+g}hq+Z{n`9+GD z&)@Q*x|f11!ne%0o;ol)4KkX7`?IMk!)JX6?Ga=1CjTa#YtJeXl-sVKmVA0T!#ML^ z;YMEn_MjYB@mBk(X~N-)PH}BUwtaE+1AhO-{k$o1z9Vr@n8u!h!TqqjqGJ5I+*ud! zum6AF^=eP*52o7#<{y+*3^Mg#j#oOK=0K-Y5>Zf$M}CwEl6hBmcX+4^9)N@Z7yNjx z%aqQu;g#$sBT;nd_6iHdKJW8H)TT6^>+jq(s4ojo}b)_V&%JiVC zLYE?u=XNvcqx)uF!ff`WX%ZkT5nU@4)W~aiySq*mO{Cor;CL2ann%4|=12dadL7vt z%s=m;TGwT`h{ec#DL8L^QkJv1LHkvw4RS|?xlU)c99pXu;Amp_l=1c8lnZcwXm5_h z2CwUl-7rWH1`A0vZy3HMMu6kQacF2>;ib$DgWed$>b_M4EbWsSHf?n}rJ1{```hiU ztDe^QNCov;YgPN?*g)b#jdez^Ze$)ib?@Bc(+XzRds=_z&kcEn%JHHmaNVUJh*-Wd zZ%r>@W3bVrd(9me1$jo=MxQcKqA2IB#f{wEG=s*XlLr@m{hAxy8uwM9tgc8!-~6|A zTB+oYqLOgeev*cHwd2$JL}^p6r@8xzz8QHN{e-*56tW4g=vCwmeDBHsGP+&Q^y2B& zUH=fX*Sz1Bw4mDzo|MlrqZ+<_sc75gA8~m!ss5%!o6Dp0i;LQ365BL3K(0tpD%xph zx+&+AY}t30U+utdiJHe{{XxBSLWJ{Qxql>V<2l)|icWe}=^UQu{P2^PreCp*8tK&A zDY9>jE8gN=7hB+Bez-L;$zrzj7TwFr$Ud$QI zyY&9m;f4z(gL5qfdh56P2I{pF-_al6w+hZ}{ZM|ss@QB@Rw>IRIQM%%0On4GEAF;n z_r&bGC(d?QUO=~eh4`_ZlkU;M>w4%-+Gl#zQxA7!%|2_LlMDS}b;eUxS*~(ZZNb+~ zg{!Q7`HttlxJJa8pY}X`efu}Fh@#X|0JmDbXgr}sEoTDGyJFK1j{PR@iuJ*|O_#QA zbH833a?she*ma|8ugVpd96jGxOeqVumR1uN#}K*r7bVzv zT*|B1pI7Ega+iXOhCyESGzlW=VG>S{u9Pf z-XFR0^Zcmd!K*J;Ci~EG=)Utks*T!q!+gG3ZZYF$yK0-2)H$>VIB;(Hr^6eN6(9-BQ(HQB!XQB6s4MVZkq7p;Bt zH|HNuU4QyL!8R^y3)*b$^ZqE6-yHg*(V*RnHVdtSwdij0&-^Osy%SOdlv}W7l3$xC zeGf$~ZOw3$U6aDDXcM7yJGI`$(^S^!GNVH~@h|+2z87z4HEaL)-=>b{c=OVZx0W2n zhwE|}hi|N3r|*9&e&h45H7H}c5%&jW(E}=Lx%zO>b}wgSc4-52Zp}I(aAhGejjhH- z!LAEl#mkVKuBLZo<$^aKDg}_eVSqo^#aYq}0c;Nu2yhX9p|)gj_6@bpgf(8Q^;1da z6)Sg7+1p_5Pj^?TmxcA}XYue^NFSpq7rD`Hoq4ld+3()APRCMReadj>n%s+7w~>$&kmIz3Exln9&sku}x5cVgaU=enQS!A|SvzXqaA|H2Ajt|;7+6cdfa zYOV)#O0hDtZMd}OLPk1TLKt_GP|F^MKOVfCT9H??=ky?9$)3pR0;vUkAodJeT*4}| za7*sYUo^P;B7oOcM~8Ez7D&)#$jn+d1~9bQ#fzi~K^na@9lA@AaWAa{&4!R?UFV$x zFQv9Temb=E)OqJwaU~O#Ucqi%hT6Oj|mMtG9haY>MgP{iF$F0m128j=P$IyUJA0D z?mI?zUS*uJMaFrhXN0JdR~7m(u#Z7~2o1T~!H*~=7r+h0#!v4cPtqqaV`1{Z0S&~= zrS)ku{TDt=j&_wwAhMd}_ev0k$Pq-#2bXIgWp8JYr`ro}2?<^Y zQEaL3u+>aS;UP?kRvK`#mI2mvlpvwV;V>_n#%Kd#s3<7!2KbUqQ&;CQ@YjU6*w-`K zNr;v)U~I*a*}wRH=%?e&(^d6Ex20A@g_@up>(~W-aya`(8skF<(7u4~aZju!FX>5Q zMKCs@J4h)rOc8i<5S&F&*uvB(s_MK`ifHX z3t19y?@YIDia-s)eL;SQ5I0(nSy#1~8QGOH`+pKBtE5OJ8nf&$^#+jHX`Y0v6!N{b znxeiG&mSJw=%5sAig81*;hIM65D1V!D3bm_X1E1JV@W9^(>6xGH zEWAj7HkGi;5Ubjf1Rw-Fe)I`X$_xW-njx$cMaVW)n*CeivHIXZ;X>9J&Xh@SUo z??Mtu_&)I;Xz6qz3Jpy^5i6*;x)uQ};hxfeJ&;Zj?PCuERhxmTnn7e@0fkf_@}z2# zwg*n8h-x~OzR7S{BIs&x8YHBzJJBWhx}(dxp*2*nG)aYXTy&aOJzmS{FI2x=6Pe!g zWCqpk$HZbxwH&1K5X=pk8?5>u)M{>(q{OGu@RV!Hcab#+?7{-D43t>8Udlsf9M8lS z(mIgy3>kD}5cU1~xW>E6m17>J{{Q2R-jG50)|+}#*54J?>JF7fX}6!(9+lRW(!mLMwxh3T87jB z74xQa#x;_=w5owK6rxoAU@VAy1EyFXq+hxzzTM=lr}RA3*%kQ`L(B5r=~4Ni_;(jY z`Cbh@wS!8o;OYt8`)kv~t7P0Igz=gbTA4EU)Y0x_c+`NykSn)&(nOT5>15DZjSjRF zQZ6!mktKKIdOeza0!Uq^N*Li3HWv1=KG@t8g-bg*2^3LvY-o99$Vp_+EbZZ0n(A_g zTPf5|eY}vYs4`7t@3JV-W|TJ{ByO3K5`Cg6b3@0GDGjsshh7}RpHs^)?4E0IOL3Ca z7y~Z_c<8YMM+9pfnWKapUuFbfW=KQ4_5AR-WkW9)=;0R71r;26mLphmdvT-xZwa|c zLUmovF(dC!y|z2g7s&dPqU+9v3lWC3iwje?=*r2wCVjXVx{)nyqG6!W;H*EHNwbZ9 z$vd01|A+It5So+KhO$T5pcqTr_Mhh+M*ktX&wVXNFn%sY8OHA|Qt$7REj4z3ydc&g z{Xk0afJv93&mZC)TZFiD$sLJcE+>Bxf_z5G4euRrA+Tl3te(y<}dHTog%dD$7$Fa0$=IV7bS zkM9ZILsd1S{$*@HkOEbVPfwfZjW&n`A8q85oVT~tCnhI*`ek+)-tk%=b}4ydr1prOT{rS_KsLN|D$@(_Lq&)wCp!!iH(fBksm?<`2^*!D*TKMXSP1* zecH3v>`v05^G`q9JR1^w92!_G-E>3!^U1-urkfvnm3?GPFvdRrb>?pI&TlbmQ?|Xd zJ6=bemo_Qtjvc!DU{^d#pY<=~I);^>cE&|L4Dxt>?|jy|bB4{O3EOV0|6)@CbfxW{ zA*TD8XS{P7Fp1swdLkbm8UOlekr(|*=bZTy%7yfl`|8J!8;T2l%5HD zXnFtVZM)oo}kv;Fi>Qs;D$B zSCNXv56=4-aOW1!kUzZ%zA6(_vF`l^<>tQ2M*_gs19K+D3FX}ii1N($q6~}ADdpyO z2#K33v9EDA1ljt`8Kej)5G>yM0N$_v}or+mCe=qJg z_lkz8yaVR(QSs!+;|6ezT+&P|=-*^r1D2Ji{j%W(Qci=2amg2fx|Q{-{vPTAvL@ju zloppG1Sn_IdkjDrZW$IA5`-W*&T?fAmkn0Nkg8UJ|1}0ga1bg07!N_i=Ky3Tkee+d z+)!g4J`L#n4nbNLj2NkyA*}|>g*@b#LtHuGP(eB-!&&Xn(~JDRwDxQB?v2bMDL?#M zUr6;X!?Q!d_u>eAgO=l2_rS(*%k8Qi6Y3J^Ar%q*z{%*>&!I%h1)#4xX|#G$tm}%V z`*nqZjxAm1o9|oiS$naB^(3S`cQz+kMd)+Y&QJRdF0F2xYHK@4%eD5l`XS2GpcTd{uwmu#xMGX|( zzWmOG<0AbZ;RGSeiRYEJ%b>;yPE>>IT%?MCPv{np&EiF}qdsg{XI)V8T`k1A*C2A_ zkiy|9IawSlcCKIXtHdhmO)plnn?Xt>OY;0X4QMb`p#loh};2EoS zw88}=dO39S(i4F^k6dkaF7fsgXMyZ#$1LXp0~g1ONt$+P0SC+zn^r})343~~#Z|3+ zaVl!6_urUv#{zX)<~PSs9B)6D$P!C#x_tkeJMqjw0bzZp1cGa-&jPz(5=j2`2=cH@ zK$zse3nZs4)9unr;JB}#Lq?92Dy)&0n!%std_$rv zKs4Aj$+TvOBMN2wNj>-T9y*ez3{ppUgY1F=iK?| z|B)g+Q+g&opXR!T9vAPZpVCsT9cz$z2mfUr92-saCB=U+lASVj2Dw4GPi5`%F(BOo z(Q)YZRS@}#j4r?%K>BEA;W>JO5dk!TCUrwR;kbHBfiEzm<{%~)`XeZMYXRd#VU)6+$E zYf10;$?t0I%^SO%t#Tjw3s@xY@PBW`*Qi}H*i!SpvE#VdvzD}0Qs9<>sN|Fb$xZZU zF0bsr$3D$kdPcZRzBB4F@v1v20tmNlw!Widw{`PdauWk17xMpP=mh4xZqN3d|gIl=1TmlkoJ&G<8!Zwvt7-Z1ry_ym>U9> z$#Zn7&f#Ebh@G$3!rt5o^+>c4?-9&229vn!1 zRCKee^}^&-KVAP`|5vMZT|sTLFWoEngfr9A60^7@;`CDJb3nyPwDVb9oV%yjB~SMN zCr^ANXzcX2KqinS0Pg|^>{EAhuPaVtHBcAN*`TbB9 zur)%r@?BdAmt#a()p5ak%{p5I&30Q^U+hFD%V?QxcHxs=CkyoNYad~oob39Ul>GA9 zJ3WQb+`2XE?0+8Lg z&+?Jqx8AG00VgGGZkTzjiMaCFgw2O3J+*89j@&?whT?sn@7;ScZ{uToScmU^$Eu5g zTR9AR%+73=hMNQl{-N|=zk-b>j^{m}wO<>2w8_=g(%wJgI7{)Dt>%VH3UdMRvMZ*J z)V!FEXt9|3nww!^?^IVibKluKv)?%Q{;sk?Z)XK7(*=S3?fJ<|y(h`UrbG6kKZdPx zv%~YsGTZ9!fY7Sw!<;(O{st$xnP|h3ITdT;99iOltF=SdadC$EtO3&3fn-yuue)br zMjqKVCB%zBOC#+8(>+&#GP1p*0h*(LXl&KB^Iaje!-;-^yilGNgJksE%=zU#j|;oN zUvGKW06a&*eb~{@8x|CZwLzA!Di`eaK*k6W)DRRQ6sL$5Kqzh^J&A+lhG|45bs1Nc z-2gZwomefQ)9gC61*E8+g%A`^z@C|G4YS7;nRr;}r@jlBtM4eU38@y>qH!#&I@0u< zyqtT2+xQ>U^9o2P$umzO-PmCje3K>;=n$f`yw$pta$khBPdfD)+$KAj;Dq_|JiJ`m z^{Zo0@^PvOm77dWOrm$V2-I5mx~^)iTMLI;Tjt!wA6>0&Jg<;LwcP#%)cPVM65}nt zb6w@ym^oH23gYO-(Wl>wWy#Bz%zXzvhX$U^WCb%#T-*5xAIE#8X1_UjD?30@?a^~r zuakvomQDY;Y=8HlxJ=%nxTLhAB#oH3igunBa6-K9Kq5o(oZZd%b`#$zj-%t`=G;U2 z&(7_XZOO4cZ#UP$V}9IrHSl0X-e7@EZl9)3@iUI6?c-GkpRn==icIdy-*4AE_HqSX z!jZba0#n(Wvt`X^`OBZOrUE5m!n7R7aU+DgU@!+~iX0$8i8V)L_>+{N&=lVV04|*o zuE9wj1Qw(MHmz%*4A;ty0cOI78ZQbd9jn2Kg-9dXY9p?WPZLxm6(0i3&%Drtm^ApW z!3kf!@{+P3G=jCzRs-Fuj|XvU%6E1J@8%_S$KKYwbc2=?(w)DNL)#H~vV7jvy}ZgJ z-pJ)ZwB+OI49qqg{am^Clmy0$Nt6||W~^e;<5xrbQ4F1vqnYSdLEjQD)l-+o5zEM`3vswF_YJ+Od#^ama``s&B za_yZz=YGzZ{?30Ndp#+(dIC29wQCcYNEB%#8V!vX)OJmr(#roy?uoh`D)njNcUR4a z>GKu9@+elHd7QBwZ*sce)k|8t<#p%QujGrlj_%sTm3M9S&zIChKgfjRfyFH)T{+je zSAD9>yrtw-yZvkaQgiXX;#3Q>?_-H#Z@wQ|_tm&Zq1Q6qXgp8$%|nOVp_Wh1%Q;Gs zt{;7-zJktO64mhGaI&u7V&g!pGDI^3fL8v23lQtnUEqhHuab=qD+h{iWdT~R00%PW zZ`7GDSc7HOjNk4Q)sgz(;m_%{l}Cd>b;ZHgU#kt;iF!?+xzB;RJ6#O6hMvGsTbGv3 zp{ceDOVc_Mvb$tD+WWNH(}x*BL4J~>v5tuF-FCG00#!sGBVEQM<|9TbORHe2h~ho` z8TzXwhYV*JfkL#^zr#nDe8n#Qqe&{wMh%7p1>*YPprsu{((lvUjv&!89*33U$Hj7> zX&?$NupXrhobEo5dVY#VBLVFy2#D2%n7UzxBf1j81;C12>BU%soXHpn6t-!CX2`=K zwCBgQ2^kdqEd2`zTpq9%Whmm+Hw9-jff+4Ca1>(-(tmQZhumRy2E}qBm@YlxuR;I9k zl2Tf0mu8w~6QZ@~GY}b##APmkoOn@uy4jLD_!arYd>NhBfA<++iq3~9=?>Q)S?`1o zj0~sx4@58j26(d`APbxio`Do6?G(>?^-7JuER#W$1FiC!isr?;K}y1{;X_0{A{XL& z#Yz+mYpc#{26~6IdV}zwsOdGhJtUC#>Ou+Z?fV&C%#hbv1qwRHC=`bQG$7@(+$Bw) zAqZD6!{0toM0ukWhZRC2S_6-(_=Eo|;Z%b495aEI&dzU@T5=v;roq;pV5e|r*m#5f zShviO%dkI!*aL`O;KN26efh81vB!+?8t}k`kQBxV>o4onNFnWr&Bp&#i}(xgvBMiA z2DOA(k~(jMSuJ76MWQZZX0I7_4>U?Yko|*N2*)?T_<;);Nxv$cs!DNiqO*oV4Ahn( z&EPQ4j>y<0G=)@x(Mb*Rfv*EO=$?YH)G(%WSS-C%a=2p|T*VDy)!F${B2}zLn2ju2MS1g1|jIt6c@#K2^NqBBBCB;$7Om)tu22&9Y z9UyToBg|EC?W{o&)b!%!(Ir*YMx#Ik_|+TrfCD&ga!66Xk_OBv1UYKwmWd~B8ju4KAW*@ z6gh~ysq-GVIpjYmx3(*xycw&5ltT}=^PL&SsWP^N0wlc#*eH>oZU*;7^ ziF@Ez+XTj=_!#Z=Ty^YakS{_Mg(IbW)OC1R^3{Eu z#xQlZw(!jX39NwgN%}|4GF)26-JY6(*QCB4)X zTA-4G2%7HEYjz;fo}m`Y$U3wR?+l0bzFm{lGU8Q?DP6sGJY^~XDI}M{y`wxr@Nd~q z=SCC4LV}VHBdMJqlWxk41VhToKtDzh6aW*E(u+{-AJoNe>UAM%MnWuoC=e<|koouR zl;AK{OLdb_-oWeA*PH{+Ix-zV31wF%bRm(%7E0hYZ&RM0%o)4ujNYsQKu1&ZWM}Zm&B{@a2gN9=mPEw?~8w6 zuX?S-_G4_yCL#PwQLolKuX^Q(t4O-FI?%7SlGCw5nX;MZJ3zf`6|lT-6!L$Qt4=5p zu52(V(caR7xk}EkH9ym|AjiYWKjKhA&-UTEWQ6wn_5&XVBz@%%F!UZ_?qqW6=F{is<{L)M?loW0 z<=!(NWFBO;)+s*-_7%4&E|?Kxx0yJz;)mD9UAvxSS=xGLwzQ}9BNp9jaRb_)HV>+1 z7-+j-XW~3sx0$Cu%^v!|5s{R;(Jo-?APYs*K_y2S}@rA)#FXQ2=&N1S+?wbW54%<=Zw6Xo|c+L{v6#q z^;u^mK}&xjM0p59&(oZ2#ZR~}0df&WM3?@}Yf_5el=aj4#WU1DtoAYNh+J?=_-j=^{ufTUq*%*2Ry2m{%Q1AXHgW{oTXD+{; z!aV0Q`TB+a!J^XVw{p#L4Ssr^y_fnh_hnQ{#PhP@Q9hbT*5dvurzw*y7wwv#*}oV}*JvmG=e6#dX~HH%3_e zzny1=6RH^8ocdftv#d3ySw{L|JuCY)>QC-vC`Y@NjKo{Gj{G~Y&Ewv{UdBIn?)C4^ zkkH>hmEdlenV35gdLp!uEKdB`1%;}M^}+jkrWLZI>3d7#3s;Prd+#(naw0mh>Ykc! zA;UK_{xgOPKBgWO3#Ip`dmR#;sHdOb`T15UcA_9ByLBw#T8@*GxtWD0);(t-Lw`hGmLX&*I{ zzm6ACFV;3&VvO@g{O;a5Ee?`EuAe?_o+hmTZ3p0_Z1M<3L!KEJesfX#8nMiWSXr&+D^ zFZ^dq??OfR2YH9`dD8Y#|7=*pKk1x%IJf6gbN->#xd|uYt49LMUJh;U{MBaQ-|BZb zFUG_5QjqejVaDaWJ0|9(#A?!4W@DB~9LrdtB*o&=_dRpCv~Okz_S*m`@)9Pu;&R3O zKji;HfkrFd#%?BU^NTF==WtkbN2}aTQ}%H{lD>i2Z!&R8=Oj%m@kq4p8?3PkZKxX5 z#AA>W9yJyA(PFCoiPs?qtw%TY#KvjW_*`Lzm6|VpR1w8&Za2ceds^xIK7zT?tfZkN zO_3M04&o-?!)Ji5K;qIt3mz!7gF6$#5yN*v-!gDlejFIKg$6T-#!}<|$*&8~vIJ{P zm=Wa%$v>KU8dyeUfG1O>jRfnTa^Ox{4yHxnPFNhQK_c9R3o)P$1vC{b)X3n32OFM1 zQWhMG5VQ3-0F;H~@N`?SY5wS3PxC zsMhuk+&FI5;gsH66#Y~3(@(N3X26|cC!2;)eaAO<1f>1$kf)`-R1I31V9>jAqmeum0sxdg0@#J(jP=l%`)qFSvUuUq`b-}){%2A$D)@UeV9 zP)WI{vnI#e?M*DFm4}zo1Z+apm-#ELM_UJ|8V-#RQ2`3N7J~ddW zoc-pqozcbkP7?LdDU)|EpXHfIt#v-1t3bMn-GBF^ncJplv!Uc->fCJI#2?fxw+iQR z%2x4mT5D;w0X~Y4983J=u7fK*f4a;Av~Gj3%-p}xR3)*_Op zh1^k)n^$Z^1gq4LzXTOXzDW6SFg59e&f&?}utP>Z6)XK8SxwOLb<%vYOmYS_Z!jJP zE`*FV6kCO4|771gzAt*uyycd}y;+nOg&AOdKA}c8_qIQzq5jTl*uV+2ue~fbci46i z{Xl8a&+m+prw^x)q?pwZ9c=QL=i{C%qxlo-WLClwG&^E8KCqq_xZjhF{qplw;8+Ka zv#{-3R8h`qyN++hi)~}=xFG+u*~7f8J+}6z8-46!-}0>(cPI6p{$zHWJdbnnR46X% z@F=c%@TTNo%bZeO@$QiDW~~*5Yd#s6)C3&9pW7FhFQmUs^X16^*Ey*zts|c%c1x3Z zJ-tR~!V&(CZBMvpH}uay57ma(=yaP&`zxB{0Pp!2hr#^$06BO0s}~6)KPMamVnLHM z`hn8?`Cy@EVdq|>l!^)aBtJ1$SE1%Kz71mu@81T0w$yaF5^p|LV6b>7SR56QCZT-} zSHKH-o|Ysb0h;JG!9O=p*lqzU{|gu`J(%{({x>1#4AS=vI`YJ~!KB{&pH$|o{+({- zO>dVCBwM0r_I-s;W`y?fOE1pzZekDr4$ux-)hsRXHpJjOM4qLI@+&J!;(HXWzFEI> z*_)}CUlgT~FSclVxz)O3@cw?|$gE3aj89XY(+XK7bJHNWW?3{rpei~=w{%qr_5}1h z+=|j`zAN1D%dg~L3Tn-NzUNM5#w&SBHQHYx@HTO#wX=?8Tv5LM=x0#wRlg=d!ylAb z-*Ga}K=F)6eap-5Yf!Ta(zHpgV7OpLZT?Alv-h;E=>4$#?6}zbzY^y$xL2(;deHQ{ zy1%<27wQ3MY*81;RVB-h9=HCgQ0_Rhc6k2W`?hvLr!>JSHahh^-q(XLP;H4WQnzVt}2 zKa;5TR{r?<{TCC@JA5}&j}v?K>K!NgY235;F~hUM2ai6P6kML|^p@*?9Xlo;Q2Yl~ zLL>K*qXcpj_fB_QDY@0+_Tf<3t9v%qFRu5P>#u!z>}!+uk0zUlr(bl%MqwZGGXKz0 zojI_j?&UpuHH(Y0rC(*DIiunHx8Z_-g>PW)lM1om%7#)RT{^8f6pKfW#BgY!0{xSL zL4d4xoB?cnLr4n{A=)(QRm9tWP?Fl%?%}kReA5XFhBZOh{{rjetBIMI{=6tQX5D$) z>kqju!?xz@o0SCiU;eA<6%&A6h*0HQB-t+rEJiBgYWTg_D zP~m#NAuTtP_iAGE#{|1nRojWJw`Ex~*qsMwY&VkbS=lpZgBUEgL-Izslp7ZR3~dW4 zire^hO{-@es}DT0y^foI_{`5!*j;SV1XbrSAKWWYNr=&6A1>^D9^zhO#>^Kp;dNfzZ0UP-vxD9 zldEZT*9r8jcQb#GOK#gWY>~WbS~iwAalfWrRyX3dthJBVw#1#nX?IKY@hh(NckW#% z$|YqvdMxg5Ep_!(%>zvh;`M)SPL&_@ziIoX+h4}4kK%B#a&7#YJ_bbIk!*w<18F39qz7e6H3|4P|-2-*cR*J`i4Al zD69O^3xz|o{owXUNqf~5em0nG5&g&DpxYQ690Q|v$ zLx*O&I)6-8VEIzTjcV;K`D?oT=`}~D?G9|>R97W`e;wUeEnn8v7W%0__TX_UVPCUa zgl(;%{)&v#KAtfZ?<;ogIi_SmNl6Ym&zY0)V=ugh7AeQ^VUF$J|(6_vfeW2X&>hv>byb2&?$+Tbn| zs2HBM`B8XJ$XOEBJJ%t|k7Y2gK3pT!WPfGCZl!ppNshL1lKVx$U{_rKEJ zFHXID+f10jT%WaF^hG+f0x(xuoyj<8#Jrzt@!wmumKfYK@`T}-j$*JWG`4tR1etB8 z_!{^MyO|B!xqNCzzHzapRq|Au;nJKyk0wIQ*7u($nx?+S$`e^!{8!i!qC{ze&O*xE zaO_8^e{`$haEGpP+elWfAzHqGvi`+waJOc-OjC4sXoi&6Um$Zql&M?G1aG%)TE`?OocbP- zG63}M;hu62BI+Vai&T*V+~r{eXstwKbi?okWYO0eoH1oUsDK%Y^a1WP5XPb;@CE45 zE;bw{m$(us__kWEEmhNrjuK6MEul91KQz1NZivd7A${dW zoErvFNI-Dpg*7Q8tSWcV2y7;O`a&glA{iP)!|T?8{D`+UHFa@XAawzHW;einm(EO~ zP|T3`Uav`yB_w2Iq=dTC#o+4V$T4zbka!grOnopgHQq`aURO1^LH~F+b)K*k%0mKpsL<{ZjSOcI zVx@cr=si?_m~wT1WTG}QiKdYfb2Bq+8m$Py%n`&9{|2=J?M9m)jU}Ik;;jgPz(;49 z+Uuv(;q)6K96*G-5ytf1*|`OfHpw;^<|AK>5QwYVSrD?)xeNcR*Y+=5#^TAQ1Wa{- z>?{!LBjHc6gvv>QKUR6PEf(Q#AA`MF%y9#C;xh_WAm)|X|>^+;@=I@29e8}$qTwEbY2_j!N9C29%KyZ^q_)jD>{ zESiXBP+)INq~jamc4uL%PD+H<9GjXE4GVN(1m`z_ni~lio#8YFI$Q+UVjX&LkBu+W zv;(C&&cem!i$x-p2hkL=jxtS4lrA|M$vBQ*mY^3^QS!$|^{R6?jKC0~tpBNcbg;1{ z;UoIOzA~kI@kXPJQ=Dl0>AU|QQQscO z^#1=pO;*Udy408sT_x!{ms#pWrRb^)xwJ}hom z8ZlDCFf%*9=WF_We}A2Gc4m9;{eHckujljed^{e{wWJC@JeW>r6d=eLZ9w54su)ut zx0-_roa3IHQze*~P|BPbDtVo3`m$;X&Qp#Uz3ee3l@=T0*Wnw9`c*K@c~dGq+<2IE zb5OF3IcW%>@p>8F0PY#6%@*7-cZS(Rx=LbFevL0YP6~L5;+#vcYzKv4|GwZJX0VKq ztqKZbY%(^DSF7T^c@&osq)rZpoee$xb)_7E5SK&ZX@!q)jFvUR9@*T|wRDZ8`)oM^ z6_;UD(xF26AFoO-DKc5i+)U1+M1{U}f=(goUES8km*qNH8#YQc*D({(H3MU+aTf-c z`cTVDrC7io|KY)w1}~=%Zlcm8^k5 zpU~zQu7ca;tze18s&{pT8ioh(@>8aOmj5F-|A%Qz=+sK8AEWeeADyIJ$-X|6HI!d; zi_>jQJm=EWzVj-ykbj1;llkpRW~)SLog4Ef(>urG-Avf4$#xcRR=IDm3T#>Va^>)> zPe;67Is9wdXtm~_?GA@ej2A8G49UGDa6HJ__AYz1tFxis^@Dn3ZK{BX}SIUkmJWZws$G*it} z$qxGZLG$WfA1qqw(PVdfTQ7Z3f=knC_0vf;_8T$kA3_?jP#nnUVW4rjH*PN%DyCyk z>tOD)yRD}&b&#N}@|{d7Ust}eq00tFzpw_qu9_NjTs0c8neVpIn0zPlg?-iCE74f9 zV~?IYXRPklc^ELbv&1JL{IK}8!`|C2>K8kGT9>#Vv;8)i82Zu8^GvqxH{-pIpZD!O zmYG$?{N#PaL(Or~#YfR;n)%&-c4WS?Rvdm}@cW%U`%XK7a{BxJAItLu?NN21i%K8t zei>!5LDQGo?I28<*mx}vx&+q2e>iWEZ+>i!BP;m)ZvXF4JY?^-Dz`d`=`mHZofsR(-YiDowQt!k1)h{hd z*1kzx$VGA1Ea@5T(cW|;=cRY*J};w=-}Q=NtIyC7Weu(o7?~Ll8dc*aFX*jr|1Ku3 z8+pD3VC+}iiO(Lxq*>I%-$wfR{^YZ^-!>FlJEfMIt$^xZ}QOjOeDSIDXT$M@a4ik%= zBE}xWVIs$Hq`BrS$ipQ4*aJ z{|GUjb0~-3Fp}b`5PrA-GLI>iGn^kN8ctG(XJr3`$uwYxjqvFyq)s@>0q-m5N}?o_#C!R z)SF%F>Ksu$Zg#{|WWTNZ{nnYfN(~mOV{DrXVX0P!x^iH&G|&?yze zw3_&HL+Rs2cNT6M=%27WJsJ?OvH4Gw?&a!crNeEEnXc)29Iv_WudcZAF{bF7T#m&> zYwydXCqEfyd%YQ_8<_FTq+=|95pg0=`bEn?R4gbiee*l3)78&le&C<7qbivTiZ874 zNV{S4ZG%a$N%rMV-S5gp|306)XJ$<2x$6&L5JE=%hB99N!E{BRy*sU&_15Kq1GXot zd0r=jV{=hDO%R{ed4-`Oayy#)vM#wmkbQNaZnM~y9q@0ik8#209{Z15^D4H?yZ_IP zxYxg|_12_sdCf1ijNiDkZ*rdLj^d7o#o1dqx{iWtf##da2ZJtkq%W_C_?po*S3~C` z^MJ8w5H`eft>RBcL+q#FUE5xFIgbA3yn9un|Ly(Q{ui#lm&OO(TB+@t8W3+g=fTsZ zJ;%2^cxte14`ue{u-K>{Edgx<_d#MgUA6-sZSiUAr{;kPDnAX6EEdI}0MLlIRos}_oP znQ2B20JO8p$yt*Wka$DuM^?O?2d9;2>zmVn$~+6`(rFEdtMu`M0i;T;VOs6Gu;Yj( zJq7POtB-Q5zmtorVgD9wZSJ}9IJJ{u-!)_28 z(vPpD;42VR51eW7oFsCw^}WBIG%H*u0~Vh`j8FcDMe`Fn#ab+Z^9sr58+^I%N%M=TH&ZA}xeD_p%lu;gxT zMMt8ChVG_MZau!s+^vSro7o;?r6)fm>q_nB1>XIzdtm|X^Xr^0#dWdQEn0Kh3)Tj$ zobRLHol@;3n4Fc+Ez(MOAc{2hygPioit1WgzJ0bfCT0!pabHlS{hRkES-v_Kz`AyVSe%hs4s(~5Q=TEwN=|_Y)CJQsJ zwFuJlAgjVT5f z?LY58oqeG`DJV4Wir00p9W`2Az@xxpm`rvmN$$FCobjlgL? z?(#hb5~WTmYuZU13rni4x}&KJpvF1M?KJG)IO^+#Id`ruhh ztIFQw4=%g9zTek(@`={{W{b<$U;9|ikJZnQ`muNZ!`JD=_-%T9&+m4J`W+2=RbR$E zu%f2fB^h3hRc5apiyN1bgi>Uq-K7vHsfxoV3= zl*Vt}7bi=t+^)Pen(ch}I>{(h$1|4eWmu(Qof!1bBim+&)MqyF?X>sO%CUC=llMJi zHjbwL>GUin<-EM$^g7qI?e|_UHzl>h`VUqwj#~4HdVZyzD&~v6QRtx#iikE_s_mqaOS|u+hNBs)f>-$ul|5LwV+{9(LM~{L5b0j+5-mqf-HWqQuh1Z zih*MbmK}U^Qrr2Zb57eL9aERn6i-8GaPpzhI>C%bUJw zo6?O^_j%X0B;-1ZRF&p?Z75OSc)$ZIr{JxyV^5j9CHQ~%=lP{uq`)e(TCR; z*n03npI<&SeY;NHp63g8c%*0sdXx-o_Bmq*&AzBvD13~trnla$QR;25d|v;d+PBTs zGRzXRU%f#K1^`g{{)Exee!h!J)|I4-bRI*WG0y+U>MJ&@-vh5P4#ZU3uJ^u{V1e-^ z4!iZB9tey8`5@)fwuDD8K^(#@APx^I17zA@3Wd^ff823epnSNusiR*SLGIqd9!%`7 znZ0zEY>#N$C(X5Cwyz&7dmv=^XN1j_gk3hs5}n~W%}Xy&QII&@YBq7*c->qVXMbOp zN8`vZ?2nHhGIjs5`l!KEA4k1qUj3gYtfVs+(guTnctd+q^(WD5{I=h7IevrI>#deU zl9;vGXR=M7NcUO(sUUGS;|PR~7{+Q+jj6W`6ii3A1E*Pu;qepww8Ihwa+nSzZ%2Zb zb1FF8eG|*HFa=rzvytqxd3_i=JV*Lgg@8{uXQI;TjTtC`iFCQ9aQ9^-NU$k48r8vZ z<>y7V6MRb$gBUDQCD{Kkn$3pHF6LUsl{7L9fE{=Z=mR7e&0`(RG^}BK0ty4jz_&;V ztTNKCbxc}}U_1X0GTDGbYcrMrKzld|qfFpMw$k`9PT-siW1(Qu_5h1J9?ZB{g8hq* zsFd)z7<^T-rdX@c=5KCTvX%xO3HR0eBSv(z+Jp!KlcUu-Df^qMsI22Awc8}m{~yqV z)69xIXY4{q%Gad3ED9vaq}Y_r>HrC*$n!9?QcYv6pha|_ zqFin2Vqaz}FC$PZrIq`)5#77mtk`B(@NE1Z1>}Q)MWo%12^vS2nix=8PK)H^Zh^<6 zimyEgwhM_avCPJS7D3Pb5BiV*X9J|w>10aeB+_C+eGHj1x&*+cdW9QBx|!?Vd^<=0WR=|5fHY|~N(?`lp5CdlV81Sdv4K$=jDhae2bLM}T9)LooobTQ- zFo%_~Mxy&+p_cF`dqvdX(_Ji`5Z)nG(tI^ez1z z1p0W$532;(7fQ6gTi|u)aE0n6<@ns?BR zzC>^Ur^qld)SDL3nhpWLph`G9kq-092uzGP6ldLfnE?X)THG#Th6=5fflpTN@YhPa zfJjXrOKb6+12HcAimm{y#MR`hu%2J&qdL};)`B@J))H0pbIAc6G>i7d9z$yC<-hQs zoR~P9U9%}=5SwI11?vSS%7n9;YrI2e@*2{Bc#ZlKlNf*X-nGV5BOcQnN7Crv$ud>v zb=)Gn_KCrk$QEEL;6KR(hwe*hwN#P@iC^nS!j8u#m4Wcp(Z9%UT5LEFgKz01lm1lp z*XR_Y2Mx)Oa)%#akfa`5FAmomb{jr-7X0Q&fhMioFoqf_4MMM=y41W;F2=WayEkVfd%NqxKp_?gfxFImE1n?2UycU@rFu>7P#yeV*bVo{IFQG5fk|StEo|EIXYK04I zC=u9YBYdc*MK}k;cU=?nz*ibsJgp-;)%hR^UsaLzNYVC=AeevOo zk5+9tEg`JipIj$)mCql~KM=Qk*etQxG5LL1OZ&@B=P0MHILh@wCU`3A*|s0I{q>Z- z>%8}M<(_dhyFLAR&%vxvsJ>0o>Z+7uBji2fZ12^p8 zCO&-R$1~ZO@A0(TYPUxY>&f^q7pXX;48^Mmw#=;X+gBxjY1LZOx$jGP@ykwkUH#g9 zL{stQ+Qiu(&2h<(mRr!g6RFF0_(N=KR@f?7WYEKyE1FvgjA5OgjHl zYTv<+{LZI^eNHZ>OA9COEq$E(lfO~iDt5=K4=O0EOf;;^v^LqQrv779f;Iipx7_Pb z(ze#!7_AlEzxY^e8F}xfb0WX_PP{gicA$RRiW0)gh~DWT{etM|)y*G%emPWU)~-C@ znGk3-`D--g$40;FHnS2o=7xQIQ&D7e+4b5#&9-nE*9LvbotNh)glVMtQ zN%I`@{$v~{M1$-c6>3(NKVyU!ob{5djgc4*G!_dkC2{diWN zxp(r-w`KbrE`82Pxc<_@#>Sn&hM{<92z8k=$l7I8r3N?$fD1uMKt=GDc(%d2_bx+| z#{1DGgm%*LV7=6=!dHdclbq;G5nY%G#4)TaeUDUa`3D zLDJc|P3_07G#$U{VcOWXL#M8YqbCOXH*MlBPEvM4zmj>c=-*Yv3E;Wf|62|Et{fdgO4*%!m#dHJ z{(O7zCTD+c=(Crvv&wBgCaAt#Y2R!#oqC6KB(BzYty@=po9!f|ZN2`V7agvSz4Y%W z_kF^~P1_YYXI)nBT30^PWJl?aiF=)U>diE1k;S)yCMZQXcQc2b=-dYZk7Ea6o(uMYLp@mZIqGe;BG|G)2e_wm+QS*~RYo$OJJncph|$ zkLNRN-T_Y)T<)RG1#VUV#=$n70`>qxmfa$FxEN_7tp#E(y3!6J7x4wBl1M@*^l$*O zs{nTcFv*f7mH-X@4datoz@euwJ#g^i3c*Mmg|!AJ0=yf2tSmD_??HG2Br7_r#p8=D zHq%ObQVnay=P!Yf>oH{NRj#GOEN`Gmpxjh6>@R_dqc?v9Gf`J!KB zxg`Z<$AZ5sJ5TfsD^UmyW@((nkZdNa5FzqT-%h>!dQt<$G{k zG4%_co6?XS^Esd>slXjaPZnIHU^F6X25?!!2tTT@15~RcjGYQb1&E$-j!6F~in!9PWn%3;f`KSgHuX=`J8fgL4s#3*pEhV>@*6r-0me3QUGhF3S_H0~G}* z-vq;iTPZ@=T-R=K(0Xy3nh^{lvT-qpdm2Fvv`N#FQlX;C_Easi&>X zq#!1oQfSAAj$^rHiS=o#cJAs_^%&Dva20f z8UHD5Xc;`)8Bx74WV7H3E%NG{flD|X^ZP{DfqJ$ z`Ml4olh3;A4*t$t;B**s@EGOa&6L3F^WLo(XKqyq_YR41!1phBL^;j-n4)!1%OfSY z{q|Y2r!o1?ZvI}my)`?EM0zRh3Ul3zpZ>;#JoAVM$B+z14q~*`6)iSb`+lCh?KK|u zt(e~oZTG7|16(h&cAdwsM8VD{y{5l8qxMNVinKL$#&Mm^w<(KDofIr>IP!-^1K8zs z2FbuXU#NVMD^cg)67gf0+pBkcCN|~d{z+oD9%XcO!n+3thK#KKoHIVg zUy?m(Oa8uP>uK}S@xT+yy4B@-Xaog^`_j)=Qb#f+?{)5EfmYr3jl%;&OgxUX{m zwYT}-m)W_mcMveYb7~*1{H3O-aZW)Sv(}oFX)&kkymRnSxnWU5_YQ~V(Z#w zYyJoc_Uxb{;-Uix7B*yy5Id1ucP;EIV$ImqfmYE3$0&XurE|^Tngeq+^Q0|BPLZ?X ze>6k2CDmJBX}x;`hW-v%I7%Jj|~Qnh98%2&TPU>2-Ctm-YdFgqj6HejTrlv-`p zvorE_3isgnrGefe-l!dK-7P6zVoQrjEAt}c)nN5HukMK%;jwm(Y9$u)(nQuvO+s!+ zSU)N6)w&B7{g|#F?zbBTLCnmK-O?pkmnSH!HW~g7o7jj(EP2*#?Wm7uV!`T%QZqki zoVdxWOh{x8bDR-=p0gkw_SyPGtd!13YUI#^(e{RZ>{foUa$oVQQ>kw(uBerIUA_Zm zC%-)g^pj>0KlGb6i0{06<}(@}KluDA;T6vBK<;@7cE`es8VDoj&|i33f;HG}oqFc(kZ`HINH4mw4@F=}*R=%%up59=?pS z3tlRsW)!9u46hoSeN^?$X`MU%+ihJRoPX}~N$09&E@_+ma-Rva-9hdrBXc)++C8dD zyIvGsM-=Q}%-Z(D>k?zZs-JI@Dz*v6tZ#gZpq}+;`{(7p^V=1F>0}ZF#wWCP`4c@B zdjIV1zHxTvgr5HDx00(v4OO-ocP+UCI%Cs%I?S&6-fNa-JnS0Oe6r}S(eXz?q{Y_0 zaTqYAUpKMAU_1mS@=k|2WW0tR5DHYcgfLlUY(>8sl_Q0TM>A3a(rLP#KkfYW3jR4S zN7d3ils+(|IV>NMoYu zjAK)=aQqpAre`N@o4&8z1@`VguiIw4yd7}2B^yh=Z`OgKwuHBDG;F{)Desl-bfNSI zAZA{;*SWh3{=;+-3jf2r(>E5a@o?LBCBR~z-oDbEFT)R~?ado550;Csc=@%sdzd?M zCAHnHg8Zncx-GQG@-ABpFY!#46ZoxZB6pa9`Fbr+I{xR zqhGG&_geG4o^b=(8bSy1XMJz?5-HRO(;+lYLme7G*-59X?iFD(84i}sV5wRovs8_q z+<%cidj{u{U&cK$Ie#Q=)}kRt=nJ~qro~Yv^NGdBV2BWbj(2FPltj_0-E8`6fv#)A zSK>}4dMl7$kd04J6MNJ(K-4K&rC$Uyz8lv?BpK#Wjnr$bCjy;L+P9Ym&Xg*sMp$l@d%w^8T=Q`L%G1<(&e4k&wUBEco#$Mg*}x z7Lz!QQ9WZ!6KTOwQ>|W2`z+SW%ibS`Bh@s7L(E1~zJ&9gs4av2LW$WeVb>L#em7)k ztcQgEZ<*1!m?2!II+<*wQHcnaCCX0J80K2JO7%Y+(?sRi8f(a8Ft93>lA`6dB&vj} z;O?ud^SH(9|Cf&#GD)3zM4MYGO*$?2OZcBDfZat3)yTnf*n2BDndBM#F`FgK-H2EU z$v1{qj7?H$Gy1iLj5ER&kxEf74^nGq4oQgZuP7bh546a9LY0CLj$qE&Y++cTfdO_J zH;2@PD1_+O-={_lb#!?9gsKEVCvs?(?8C3+mk_*3lxRv#?;79My)OU)x`5LhWSS** z(ZqhZ!IGu2+fgA`&S)CN%3~8xTqD)={F-XM!js|)`O?6Cu1?=+(9^*hQN;wG7;LYV zy5wf&_ynTVnbKdom*Y7Z78&Ej2=519U_?nn;GQ(s$=H|6Y`32xc0pgVUJbcroz?m( zD?aovym2a*5W!3;9E33$kTb!rxDd`*Oo-rL~%gGhx6a<4Ja-~{Y z8mRyKrS!1WsfQ_eagS07RKf|~5KQR&h#s$836`tXUc;@WhasswkZR?^an79XaziOY z>om$j;ls{_v6(bx;hQkWdnmC4M%SZA0gOHBAeMvzXr3~~u1j~~w_yCSG1RpFhQE#H znd}T4K}FR6N92u>VfgNvl-P<=!Z25}q9=9DZX#4&9?olUITV8-BXYRV6pal>&u+_h zES4bMJm*G?{~o$;jptg}+~{YYFQ=cNa=UBxnWz|tTF>ZEPDhnn_vC3!+?I_=CO+i+ za>J3|Mn-9<@c_3^zSM!FPU6KV3o$C}s!Y>8FqYs5#AzCc^*jL&IDsnAzw&wFdiKM2OyNqynA;- zh4OZQtD&PqBERWLDtinW4g;(}LH6EK%F!L+6%&R+L!tQ$wE+A&yylPs*#d{ls@bPN zOG-=I3JU?<*qK~Ys#Z#SWaKrxdUYU9ej#K>=x!JXl#|Uda!DQ6Ou|B98)c$O^EK8% zEnH7uPO=VmxI>vLi;(ako2%C-81nmUG!?)VA>6m3`ZSa;_}bIDTKU*z0-=$(Cw1Ld zpP8~H0&D5TJ)CDy|Ft!tD!~(7k+C&fffj(Eyl`V7bOa7*badevX=LNXyCKC7QHAR? z(v#dASZxq{axRS<-Pr*d^?Rqh%=z z{TNm39{`fMnVQBhs4>C|7KK>L_iB|j5y4{wB=w}2byboKNq?9?=P26x1#&TS*uIJf(GsxaCFz^o; zj=Ra{a;pdJIPB}{O;r0tgAD-5Q>$~^C_TlmU zC}?19v}A`g`sHy^AmB;`2ImIk+EixK4Gd7U=)p4%_{BRn&MMkU52nh> z^9_?BQAAJ@CDkQ$hC1) z`d0Pz%3`<(WZ8I>EB*zpmtNdQa0!B}=YFuIsQpm1OaC=!O5sWuWJ4(V$cQXnO%Znq zte>6iVx=St_5g9rO0d`LkPh&3$yvZh(KG>|Y^|XP88<7UWj7gGek$2{!DN2a*4IzI z&tqogRp7J|I}`Hwk>|A9wUK@9hZkQ{U$Q2Y4wyJ!wz#`H?>Nn6)%l>ySDEf!iYz12 zY}k#a^TNEQA`>)&^&cc9 zrIQquq?@uc5aOYsZJUp}DP_01*J#olppO20Gx3EaZSXT=ZhCP4~=+MUsmteKpWrchMB!B?K|r6JzIM3@!^^!j|MIbJbXe<|NiLHsvCB#ExQ+5DSt7pBwWmhnV}F5JO08l zg-2>1fBe4l-Hy7|wtj=x?7jqX+uJ9OZpPJ5eD!}mdV1#UeuqA_F`pd1r|0hstsOmg zwvIiFZDQ@}z`(=#$LHq5?xiiB1GxcBn`w|UqTE`t3KlpX3ld~7i_}N-DZRr8JVFqW zU>Raql}V)P=zMhMv4&Y_4ax!|3HAo8o~iBM$&nEQ5x;#tO&Yo)j2QI}k-DPsyZpeO zjAjFJjYTS0U{U2v*@r7a+(n@~2O=B%i6{&(qY3zEbF>JNws{ahM+o};zvtu2U>j0o z_$Iu2TDWB=w?%?X*dYv;z*B*UAahN>e@kM>%>`&^1g*tcu)yw3Em-8f6EKepxG1{| zz4xy@C7Aw!=9ZKToDP(%+q)(d+CnWZYsfv5xIMPy`-!Z}&7 z{YU!;C5l3o;CBN@s-GiR|Ks0;cQ5+yoTux2(7U}fccUID`q!)NpLKJ>m0XWqshqcN z?y=^&QOAJtkA(+qnpVC#04&rUk6WI;uRIR}8WYXJEGCeKV{ zu&Y{HAS^=Cd|YPXyQP%@zTHR$tq6V4EebpVhd%)RwyJD{+H5omg5mg23W{2J#GVoG zju2$gxLs!*XW%5qGNT;Y$bxHP>anapkrL1Wz?r9cnDK+l|AUxbeJP_(a8--mQ${In z(rBr@5QHJ(kt*^sgTwz}_;bvX;;%UzlHgOs0357jY=J;aaBrUzMm$=xA)Ui4STz0f z>zC%_g0^K}{z;noz?bmi^St&|u~zdhSL%8`?d>}l?zGMFbt=f_hL7P~n)sqwFn%sp z@JAZmKD~qSm76@sr1Xect~TSmv5bgQZ#IaO{=+B{I|1jqJzSdT#Hjd^EF}(2TE0$` z401nDztj64rZb9t$x-D{CQCBku>VK;3_lRS{)c&_Ri`un%DDSSM(JVaU4BHDZR;Pz zmsBy020g1?x&zt}XC+Kd>lS z`MJ5m9oJvKix81FLZkqgsVW^%q9mCrA6gg!OU?`&%hYqrE5--M9}eMid2X9N8ivp4 zxSHanv&>u56wULn0ECF&%>5G?*i%mz z?j-9k>GoiBV4K8Ymi_GbrhB3yD1Jle3gOk2b-|}sZ&}j)xk~%?k9~_O znahuS*&63)*i^YWa%=M2ak^l{^n)F1xZDQzpQ0VC zV=XsZZ)I<9k3wmNVC}!HwuAF`G;&l9w0>f@)1S z3EDYFRr4RaUOU>~W>B|*h%dgBxq9cno}W|m={3G5J#?S`obhWQeQxW5>oc74w49CKl-P_czKDZ?Aq@%TU{Li6Z9tr$?nO2ruS7I&O=G_Yjx;o$BRF<8> zs9PgLJN_Orh)(sl>jl9I-opS88FgbID#jVehHPAj6r&drW1$hDl5heeCJQz#7krIT zza92EPWabrL>q8>ZD|p2SWl|x&(k+4WviGi`rfBHmayV1&#pi4`j_L!HP`FirUdm^ z&Am`kqC>-FyO}qqJtTH6Cx|W&mYEx^F!@+%(Y*d{-xrBk)X&*uw!S#`X6Y!|tW?)Z z@7Oy_g;V?250fzKUj@<5J>K|F`O|!p@8XtmI4wJlXBo^{lC}!;%AsdH#=g+)eugDL z9s_x2*Nc$d#1ZSooX#J|mNScO-k(jIMSQTSYCV`K5^u&%i1F6pcup=h2X8GRzcfd1 zQS>Vi3lYP$8cWLQPP7WCrA9IYY#geoRVMO;>bw?kBjxNBsk}zTq+oVP9w_}RVB|G6 zsW7jc)&>9z%2^6=X-drRDme8TF9-79N?mxts5h{N9A(JzR!|An3gmbrGQ(z4jXSmB zvCh}ohK(?@WNsiL4InnNr2~&ZphYIFxj!+=)Aof?Fbych4~D_4sR|o~e5SV{S0@LG z(J3!!0=1DEKBEL$FTDIek?jyDP$k{ze1IAg!Pe5ENf}&ZIf;|z zsbK7qWMrfn_F6_X&=wk%D;S<*G!Ym{ay41#Y=fgt?S9|7h;nnRRwKWhR&G>EnlH=K zU{m5KnVCAN6vP~(l9!{tVNqw<%8g8wb=3;K6=YwLOA`2@%Q8YGg*EiZNPg@PFNyB& zDT0v}a5{E6O=4rOD;QQ_lQ6^|q*m`46+dqQ@S|8DRt^AvF}P*rK5OZxWTQhI1(-R) z(mo@8>7NFcJ1tSxUp@?uAbYRj)XjLQCcOTJ`!##PYt9Y|bR~Yd$q8Q48belEkuf4f zqiWLJ+xM$nQgjTJS-fjh<|f^{DCn>prwF&piM=(VC6dptM8qn%cfHH|V4}@hOgX8` zx3p(!`X;Q9a6@La#w58gIF!!QM$_7-*+Ry#zy^yU+S9mLf--g>X$B$b0_4eZu0v{? zp;-}JjT+NYX($co;y@)w#hOQCayd?24BR{$`{9;rCTMG+Z{!gYC!B`M!wN|y9QCok z*Q|uI?#VDqypgny^H_+DZ3X-RodZfjo~8+wb=%$abjLHNOEa`3+T@;8!z_ zy$qMD3TexQ3k3QIhZaL;rMc5Mo7X|D2PhU`0fh{FuL(LgY#{s*!q1f(V% z=k-#i8H%~EGN(r-LyTY|b8iGY27u2c7)tg66Oq~ngs)vZ=DlH*0#9OLC|MyH*TX3u z=Yi=SM62frfl?nO1XFWG49FZSfL^x?-!0UTjQ=Lrz|y(KaO_%^+mPvPnb{B%7M(5! zt!LUeHO7fuC7Gy0_XvLFI~PrsW3oCyMKZ{;mVO;Y_X8BU=d0Hknfe%0lk%!53G!NS zm`tU2RF-w{Fc*tuyJKTn?#EGv?AXwX!vy>?j*VzB_2-vz+<(B0zK`m;SuHW6Ji_ob zvIQOn%OI;IxP3t4>A5ksnaAE^#ADlVm?X^9VhmHAhI?WXNH*p%Z8}I=_Ygk`HP;sn z10xUTvlds&0wx;lZ`28z*&8~u#=O^p&P*KTC6i_EMVGGJA*N!P#sqNuOYCXMJu@Ys z^`tdEg-}7&AX{5@_j8as+!;Pu<(8&lFOAJf3Y3Hbp-Wq~^hglAxay|U=>K8%(3J-* z+Ux7J;O)j#$q-{TeO`Mc-~ciU$VjX@&x<^xi>ix<8E0i*Wz{uc(6wexbSl$$cJOF5 zgF?LqrMNzv2DAP9tV#WeCx$F-+V_yf13TyU?ZnObA09w$&Cz4W% zO#=u*t;RonJJ5YEC{~)K6`klqA8chN+`7l`KrX$bOQiP7NL-{%Xr{)Co;{YJ6taaeGT}Y|fDLVy# zMS1Tp$p%o!YPM{euU7kFybO;(J)Qi&7#FSEujrBLHB4& z&iH~xsvz|>O2O*ErcE(ZR-i#zp$}q^6*~~D61*SYx%Du=+bed2Gk}Ld#>8J=!27Zu z^sQ+kliXbENwSaL!3Pf8#l{P_M8_={dKocPsV>HY2n^ZM83&Bdi52^eaZ>{Lv!29b?^XU2l6BXEn}%jGs2V>C`t@jN_576OwuEPT7Cb+n z_q|7rj>m2fe024W(d=l8liIcHk?iN7x}Q}Q9A4t|1%_UsEp&B0jgN-7UU)ac27TK&&dTduxrfkEP)|{nE|VM_+*GblODnu?rLR(F zyOB=cew1WhF?VOH{)gdY?aEyDm7iui->PhyvC^%ks3q*&&bH!&>qb_=fdjn55B5Ax zQN;D_=sTSBaL9VcGjx-J8ON?{rnU%WPS>zF_l}3%qY#Jd<7FEWUf2xC8Wgoajz)N* zxZxm9sviBWmGRl>Yg8z0(`CTKxa|$xi!hd3dPp{wduPq??I8lNpjl;)TyiS}jxZas zPZ=OYzLj_)CW&oOo5(QWTL~pIV55ab0liGPdk{s zG<}vwrejjQqX2I_dB51DSW{YUW|A-Pit&gU^}YSOK>x>;)5q4c=l2d)Ebww~x-!E{ zyL~=A_14gOacJ4oS5_Vy(m#K6OW;ak3=bdabg9%oK63ue25!%HzX_HSEU{FWzYQ!S zgI?eP0WOj$8!V3aX=Twvhz{ zU^t$ZuyNi}x&*XqgVAslusLznRkCIdi&jK;&^Rf zb^TAVrh~rDf#p%7)g~vn7rtiw$vH-yu-03uO51Yz;mu?50B4ZIf%JppYd#N^uduRv zv>~`jd{lZiC;Ibds$if&9aTg&d@;c!C~O)JO;82s@jM^#Zh)9WmW_Sv7R^xj8=@hT zk^c{)0|Yr4@CnfvGATvb<{fD~1qxtm05~TVkQoa^IU!_BRYK@AzAM{~P@^es(s6_e zv%z^UU3RRX(MvDt3}sRYx8IVDIy&GWX@Uo@i>I)qffOX3oeO6HcxBetjDxhKO1L7- z@xsNstl^}aqbOJ>blHOFuiYB;Zve>7<5;(I)8MJ2!#r=YJ)&K*n7Li5FEKb}xu?xk zaKqxm&M54$EX)%f<#qhnSY`p@XGYr+cfKy}?_wyh`fiLmFABl`SR6y;NVPfYqzNrn z4D&XYN#Z@paOLj{UB&Bu{ZA;FtX*(dQj=1gCVUKC4>jnj5APjZx+ZLy#6pKH%8)o- zFw)U^zc5GmD)*Q>C^F@+ zM$X|u;|H`9R;26KLDB{IBuyL>=3r&;y?kT%%+d}}lW319l^?j4w*3k$78IA?r8ED-G_4hQ^-M;)up9V7&6RvU zae~e;2>Z8?=w?@SBA9IhjRJ=@#|vnCDG|flNO^mC?V8KgPYy<3s#u0`_J7vu)M>rO z#A*5RlKfSA@6Xf^jJ0&R!yS(rE4^~wE2dqksC&Yxu-)0 zzI)g09lAb#B(fztA(hi#Gcbqq>p#q3RZGX%`xOYM2zdzZ69(1+* zRnh}yYXk9RX0rv1(%pwPzi>0DQ4Q20?>~0)yS=qR=7$V0QVw>B|M$WjtBDIuo-f`% z&f;{>x=nuawrV1ys$!6KfVX>Jw{3xcf3RKJC&4xnFLhmmgo3XrB*W?QK^%7eG9CJI zSyD#LdPqW-)=S?i?!a;hD(#S!kEA$R9fTQGXG6}2G&*P5e0UQ&8U4QfJViyDT`HaX zy))f$&#{G*%XVw2cNbkRuWS8qg{viG|FJ&w>1OotGdfG-(wDh#52lT4-E&{B`{OI0 zJN8e$!(IJf2kVMdLl!4=CZ%<-=Z83pjEEQ0H>5Qb=J|mZ<+?qb*qs#^+dT7J(2LtTmu_n+t=xWao0YXgyjw-$ zKizQ$C0V)gF%wGC8Q(b{SXZ`kJFD-)IHz^`@eIX}MTto-$B*dP7w?P0^Ts7j(3N5-tU5CsacH51PqF`UFHU zLzy}J2kN+>7$o=qp&Z#JnCioHd&vk5lnuol4;<9KNL(ntIGv2y&DlRMJeQnGsyUE- zm*lnFYjo>oq`W^fRH^&? zvQnjvr|&lygw=6eXQBU@EqZYl9!r|^;|p1J6p^l@Bo63d;J@&rbt}iAXlWfSR&A0E_a$i!<91eU~$D7>S5 zPya#*zeI=NSE{ZP!H=xyY54*PKD>Rpx>h3Io}iN7kw^#@*P(aHI=9L_#D?7DkrJ`D zc|Q`lf2_w;lg6~}emCNl@8X_(a7H7%5n)+?y)_N+NT_r`$erZ@-hU=j3r4Rma`cg;KinkJ zBrV)5k7GIt`8nD)_D-RO5hXg>J=%o92-a7a1K$rsmivWxj50CRuyPr*J(dh7)Mhvy zF&+3c^Bbj@m>9Z$X@|0(2Aar>MmIQHge86VCXE2}W-b?K%A22qlKwnw?QDFQ3dQE9 zQO{B~BHUx}y8<+L_j!a#+Bt?YIymKIJ*fikHKBANCoGiJ(@-=EvE&{3;gsmuYKEy0 zW$GQ2+PyLOvQ(dStX;ImP!l1#aLQ%^-uzDqh9-nw(G3e|O*!5V=pSgwlTbL!o3cj? z>DWY3fzw%uk+7$|y%Bx_9t~vfCDmY96{C`?fT2XV!h>1P!;&c!&)dAT;tYf)z~Z_V zPLSViu^9hf#uu4l!J3?Vw26 z1&oK`Cc?mEn_887S*&3`CxedI2511i;Q(v+FBmk93U2+}e(@L%DKe)*kdt3Yf331V z)vR3U2tu>JmO^N2N zFSe;wg+kVt#!MXHM|@36D$^049GF^!N;5@rtj=C*HB%K@W0KKW=Mz+&cfSZ}i#|u^ z#keGwbP46@ylfa;iDK?NNcy+&nZ|T#;xLzR_8r7kc)a0>cz4=YAf;PBypeRPdio-n z>C{^DUvSycX(Aq%glf}z&?+n@X*JfEM_w}?g}w0kPYGnn02mjW8);xQ4TYto&dpF~ zjRM97Qa^MV1eII;5tV($c!zspmNnot_4TT#aM{$*!g7dCbRjsYkfugH0v2o^z)Sl| zyKZ<*t{M*;iYX(maE0?C$LGbkVCd%p23r!vRBd=<$O;Z5XngiQqh*4UQ3Ash?cs>r zihVQ4)Tur{wT5$Y1IuN$Xp(N6#?4W>VY6!>+in9L5l zhjUNLLtHZ37o+pc?q&6DE-CGZ>}Qf+C3Yx57S!Nmde$_S3y`yT0%Ic7$;wTTU{FBa zHKzrnjJZTdYr|M(s~q}u7;Tn$ui?41L4Q~wp(ORGSstr24M8rg)hhPo4)M@@Y^-x) z@QKM*UzUSW4Z+)7gFgkUpl44i{e^q1JF1Q&mG)wccsFYQdUz26B{C3k0rU=$EIsn8oS=Q?~ zrgM6Yc`vZNv=~4*RiQ<^a4i{TpgD(=%sP~ndzM};LU*hmhG9TsVHbw@S_(@21O}B8%n`(9<(|8xLt>wp}zy) zRq_b+co#SVXap=X(cv$yUjN*@30G8GZydtPV4QYl$%TFT4>P)ZHDlWP|1db)Xa5%B zQ<5JU6G!-AinuCWDqoU?3`J`B@b>`U5UT{R0k9A**09Q;ih;u9|D+aM)>3S^;J#<} z6-8^|r1IyjHc?`O)i!YrOIK_jPjUASK1ui7=N)=c9vzqv1{yzcH?V)zt+$!|VO6tF z{KSS&m<_*g+281CR6B8GK%;u%s@b9K4^5iYvhz>fOnsBSuvci^p2_|R3Z1PtT)Qh5 zyx$by>+-81{?pN!?|6DqO1kT`PY!#eZSRTpZi_f_3#Z{Oh@KYa}M}{5ZAp?7*`vs2AlC5qug6Sg=Uu0MxfH0cmEItQ> z^-}~ll-nUUb`>`F|0Gw254V>e3Fj2i8REw+RkFlS`AWJi$y{+Wr`8W*>d5|F5EK`0 zjs7OFnf~;x)!K~K5hGK&N~p=%A9oz1d-Y){vt|!&dY`BN{?hzp*5d8%Jk22ai2h2= z{J#Ik)w_o?{l94lq!Lom9A?owLab5l zGE$L=a>!xCFgDE$+xp$F_4)pO*Y&%u{^-)I?fH5>@8^9#?#KOj?0&#q-Vb>^!;xIr zbJ&2P8Tq*^@YapM>~CdkzdIiLHn-+W8t&h+=Uk~3uxh=x-R@ku_RgiBo83gO5sqA} zm`b|s@f^5+Tpwm3$dNKF8`n=P(y7I+pWpO0ow-^(>E~YG^=aGDUxySf7F3*(-2UVT zeZx=b7p~1Fc8gP|%EER1yLLX@t&H-~A4$tj>`XIx0i)Xd$P7H8;eSpEgQi)+G+=80 z56lT!8{TRZ>~G0u|ImnpEij#(gA-_OsszWs@in{b_`|L~S&r@zTk$~hCvX1l?Z2q@ zz_GZ;GI@ag@VfM>LLU=N+Zbc|x_4k63(jC0ob$nh9>CDS)xtc3K;-^1Ya#U3OTj^c zP>`t(kJD_k9zm|?DC3Lxojv>iqszT%T`v-6lWkZiS5y&w?^{yB!+rOS3;_>4bl216 z!KOo>$b>!{DlQmI0$G&T- zWV)QcdhK=pv(KSdpOmNlb~*bi&G^Vw^Q(k+q=R2tL27(Q?_28-*3tQa*jff*AcnY7 ze`5<%*ODm`<=cGV@v9uB)tzi!wTBOO#yRTy6Gt!uz(kcmk4LjsaE2N1|+1wT0GFg2!7 zgPh_Z;wACwz|b=M;R&z@M-1Wj)WIYYU?u+&jp_7AK!$);AAU2w0i^8#C4xvH ziFt%f6$12x45Gn68L+?LJvWU9k;3s;{-R>>k~K2^q#;Z=*J=?R5$u@P=W1JV=8Wx* zw>xTz-cd@hQ<`n+OGfqb7G%QP(ki=v)1Qw^l|5KdUa@p!7xty$qogeP`=X)dP2Bx5cwS!;2+4;d^xJWXr;fJ*51X z>58S_R@n89;T)+P(a7J>d3A<+IJiKmB=!%j=VJ@ybViI@gm)gs@*DA@M~`u1g+lT$ZvBu^Wx(@Ezl}X>yt-WIMRz})({}#-?m)GQ1XkOy^X~v1H zN#XT(xS184q}4X_uJE$IL^rC64QeG0rib@@eU`_u8&(hJ8s7-=&hZaA5krnQkx8-fi&DqT=FZ$4{?h*h{X_SIHtyjE4h4-zOR z{XPX9ZnoMGS;=CR^7b**+b|)F#@8uGUJ-eM#ZBTt#{E4~D|#%v--T_;wcgHszgz3U zsy!x--5H2(+QnZ@%M_MzN!R>hRkUWN@9)c46l%Fp?NSI?N@z5R|K%@gWiXC8Fzi#a zlBtzbK$CUmDpuqcu?s})RuwjOtvf>&cU_E3;))4}AC7}kc$Jh&@JnQk-&(vqU#Z31z{SD zASL?# zvOHm%#IC4SPHGlEI=!r=XH^{7?!UVF%SwKwKn@7ldHWC;j znF$+CgXU^=MW=@vzKm-rlQPS8QGWll^{)NVtUpSRjKFaG&SCfePKjncohV-V5=?#W z$etn49_Dsm0vp$7o7k5*ibMU*rp%S`gZ{7PLL~XUmL1bgmBRrwtsySE3GUc%s_mm5 zOYywee7${5UL^?+lhm-bUans~l1P`o7qjm1f6KMC7UeJf=e30Adb2q==6)8#q0FxK z-RQ~Wp_4l-J5srs`1(D3$J#3ojKhe|Yb*@82X70}p6NC`9;=lTiVZ_;xo-DXM|;6+ zx};4}hVgCoE;nH|Z_p2%c+q6;pHl%~43oi3!@(fEFP$H91vs0s6+7;{^iQ;U(_XA1 zcF)rKyV^zy;Z4c$?oIp4l};Sqmx0>l93XS@fYpslM|RwUvTOI+>kpka`2D)Q=ty>4 zfp=-UZQH|%ZcLX{b39(!;Zq>JSvMWsQ~xMXGu6+pGK>E+alTMCAW>^j_Kfs@2_V(@ zHfPm%&O2ygDZb4SH#bVnyk?U(-qE3AL6QWSl)otQ?Yg#xdnQKvh{H}9sX`R&_qRHO z&N6yxM?dOcd0iQJ|4mZ&&yuQ+vf&_d-Ap8AO^pJLxT!Gs(op5IWnDl9EG=?#*8JG@ zbl(>*x%Ho!@kI`OZ?DEn27mldG4_Gh!=8Eff|Lb$8`u3gbnWkn_a5cb|LDg+cBsW< zIt{ne;-hsu$_VRzhH5?wk<&TT`l)Bz8%*QN(G9bm{78hIPP1{J#hD|u1ybT36412} z5-YTgS!gi0f%7H+0+2iqs&5fQG7#Z$gPju#Y2Ly`wef!=Y^^MQ&3TZG`5&(fNxuQ# zLy}BEDh`wS&=VFAi=6&+vuPOSDSk^!IZ)8z^{M96=$iKhoEaU#d^skh`tW%zOcpiD4Xlt*_3t zpvOlse5u0xb?z#)(kv=#(po|vCeUNcI3;?S^R`EMym5_o=h#1#gg&+eE&iBzS2{SO z*}<2mH3e9LFPq2~zEiCQf>8)A6+h2a+RaTXK`{OpgSa>dlHv%p2f@MC!`s&$Tic`) z7tP#qF={)~NvfJ#v+T^|J^afeT60HNy{x0G4Ryp=qYC<mWx|Lc?};wX#lc{s##2id_AEtXj6o2BYM(i3-khl3)0b?>&H0cPZj!{xk zsIPeS69NMxtp&*@|EZdq>Pk=D8`AW&|LqmddDMBZ|FrxXDDI4spls8mEQMB~0cAGly$@sraE2>hV|WG7thecsVFIiTFY)Hgi&K=d(~cj=||v8daS zee#A4Ae<0wA<${NPK0j4LHAIi z#xeJ1-JJBiqBO*aLPQOhw*qlgC)bjOK)Yd}3v@pJ{IE!?j?UHozyctONe4rS`?Z8R zkbE>`{n|!jkQQi?&KGV!9N1EnBhneu~mfA{OZu zPsXMPseQ=y2UfqF&*0)Y>S)_FPj7w*bQWO9$jBI?O5q{>2wFU;AIW}^w(5yGVUltj zmNv1UB7<^9gf9$0m)`kVB@uJDJ0X@umZ9Hlffcm_MK824PBQR;u|Y&{1{So+0A-}b zu8^+lf&IZCl*#`^RRFW69Ej_o;a>6Q(YYv&E-X}7 zn1Q*AmA|akV+T=t{V^7Sp~`v6g(t5dJ?q+`hztlTgJ5u2N|+Cz>UqO1hT#lgoCzt$ zHRSHww`wpnfT}28jcmpr8`HO6UC4sY>TxVO_u zf&TB{A=D?~sa4Ii$;3K6mYl{s7uv80cxb4g(Pr_UimL!b^ZbLrn-Bh16ef=^SJ*$B z>KU3!%^&Nd3g@mwLcTz->oA3q$C@w_A=o>`8LbpCBs$)hLkz-&$$G-68(L6)A~MY% z$S2bH&mjWA_78iki1Pl>6QYsEQSOb1<-W%mKvTvI)c<@WSFY3_Z*H>ij?1E8KBJKT z0+8?IaiVrQ!%_hcp0>RoLf5j%i@0tSBD7IolomhDMJIi!9l#{%5D|%e0!%dRh64}{ z`m`2s?UDrH6v1->ts7=;>FaTluWw`2+*SFhI91-|apTN5JKM?g!9x41w>v-VwauQ# zjvR?iS@=93^VUL+6inVE-Q~(+__$kdvMf`T>fY{XnsintM7uDPJ}QSxao%sXA}X{+ zm$2T7#bCGvb-Mj>TX4y5TPoGBW3){f=YAA5p<<*R`t0xLOmTJHC0?yvJD*6exMjWX zOYiR`iBfGUwrx}N)FnKbF#%EM ztt=Ph0PDH3oUVE#JX>8q4 z7)pKDpNTX&Z2LC7O5e2qDbDKKW|`yPLef5sGigqpS(j8ACT++rVt_(JE{}9k*Epz%791bITXMMhQy^8b62#0TK z(+V9Lb}bm)`={<3tnlA5vc~wh!I*Yowbg7HsJqV<&03W{wae=0niasi5Y=1HA*PH6 zNu_v@-5)#&$;f_0gP=ekX>7rumjt|1Z z6(lc;iYyxZ+8m@Z$>S#~-EERlfU(AYsLX_0GxE8tAK*`42!zquZ?_|?V z>8a7{^={d^zqn2DM5{VlH0kTefetHEJ+iH1%AZ z0YcLo$00GRBYchkiquVD@WbMwdx;#S%Q^D3;ru-+dskEuhK94Y_;eH+a78et)Q=tr zR=Y2Y)XZ}-w^h@3uf~7Hx4gEq8(jo`9;3)b6N{FCyYeJ5b_v%^>jf{OM|^cWEk^ZU z;&y1sx16t*o{Rswvjm~FF1y=HoB^f<09r_uysEo>=hx|H)!=y}xZ7cgMNdvJmHQRr zPp;JH=JH&6pn-yfqu3{NgYOqQohTV(YFsM3J*+uPdvZX^u6}b!y;^%r5JO+uGd*BG}tuBkcTQX&6v zG5xk?D{e>q-k*;qMz^d8+oO2L=J%P+(l*Z}6dx=r3@raRl~|i>XkS}+_>bA}7(LlL z??4Z};c@Qe`xRR61J*C|{@}J*dErUrtL{U)sXJtZn#TcJ=ok2CI%hN zUvOghzuB|&&+n@K6uB)Ld-ne0tXwIn>1sx|$lrC2Kyy+-?c2D|T+;W@Y zBlk8MlEb zCO*~~7U9v}ox3 zp7%NWv)12&e-&Q4&FP13c6>cZ)sGzHgf5?e1`JZ)*{xwAd&&UF@&jYDNXrJ9T8xNZ z0Cjq#6@W-_5hja*2(^_Rg|A9*`T?rytjS8ZNtL{~pYE^eJ51}11#cAHmM2IOQB+#9HS-~-FC%{U-xnydV39q?;ZZ{U3uJ6<6UPj zXJ3yov6oLD7k3`ia?$Lxz22BCK7*O2$0wW`p}W^g#7!*Rb7h4j9*^-m`OwnB>bvh- zYimE-1y%GNP(9W;MF)RlyvM{6g5!!KEiJ)UfXxw!v_6d$eo$$P$JHVIX4Wkd36n?$ z_6pioJEhqlRgrYJ6p3;T$Z#bNA(6vF9s&#)z=b&^i$X3~thg6Q`NI~lg)IPbWxzXJ z2}Bm?Q^OZddIb)({It%0O=y@dg_%&IEL_w`N+)02<^lZzWC$d5Bi@+kJR^SaBRZnT z`DV>ZerN4^ed%Ct%Jyz`U&1Y&nK)k$F%G(EhZ}8ri~h2Zb#ChK>|1khU#vC?ahN`9 zr2Af-)vs$VY+bPJ^{c1mK0kHcoqp9Hv1%}Sw0YCXB>(gzC!=^EMo?_X5~JrBP8o_Qm(WJ6ld{0Ts&DjN^VhRjvnIiU0CPT}DlSsuHSV^r>% zTOX}?AY(|zRX3nwcXXU(VO=}OO@1k_Mn$sbpQZdH6@DToaGw8ZT#Uc1={6&K)@{B< zrJ`cLTXN{Gwmr7aq+v-_q(p@o)^}}_ODldv<7`&)vUJf`e|Re-j`q6*zae) z{He*6L^fa%tc-*r3>;fL1jhggSlcMf!w~38E`|yl|NM(WgD;?C&;H>}kv?tGw&OLj zjMqu8dk^0j%F}Zn#vV|$YdmhB`QTeIT}{_*GB5N;xb~i=7b!09!>_1iqFoMnryLLT zp@*PNI=CJ-+jtFyq6H!_%bOkNNJgKlTNZzt;hZ+&W^d*81aT1t@=!le+iSlLf*|pt1Ev$Rje&cr9IC5Mm$E&&u z3dbJrEqm|@w~sF4S9zehC{O8TrZVWWuh^q$n^aS{!8O^n?Z5Yy*Z!isN*I>xK+YZJ z%twW-jP#q`he|s2RI<-b2F|tJ(Twcy`J(gb)1thNw^EPYul?Bfsp$TC=BpE}dme0e zDZhiS9CZt6dK@foJEv@+bvL(ArBcb+$(U+ARm4mjRE>I8z@h#}d0nOQ!d@vYor)Hn zVE@|6=<9wR^{3~5-2T{&lrdoGH&mJ#YmsVGr&iCSKwI=Dc|5l;$g&uMKcyU|_N zU69w`Z>Im6kdB))(`{2k={qMqMv0(=>=Qe(xv9bQEC0=T7Nzd|c#2cFV|u3B{B&Ej z0PFThfHE`sk0Nv5oaJy?qmR|*WO9wVuEmCA=i8d=`|=vrc!!I|YMJa-xv6p_Kxsi1 zqL+mHo`Cj`TUz!6O!Os!uMAP?9xkX5>)S(cD{Z!^zJD=LH*fPr=)w0 zPM-~_JBo8WT;#3pO|j=M)efA;ZJKLeN@f@H-so*!+B#k%(N%SR$YZ^K8d_!|B{$g# z9re`A#9gVQK=t+S2jder9=SRts3mM$^JMe&(!neldaTmHRhX6M#Ake-G@k=zdu!uVa6stKxKm+d_FM#KG)z@miPK7%ieGS9MTb-ap8y^4r|K%Q!QK zkQK!v(MN77rzy*Zl6<{?e|o)f+tyu`Gf8rt77uCJqb-*^I?PM5O5=9{&$996H+HpcC0`?Q|Bt!;FS9gSxm3jO+6n%wZX(kmgCa~1Pc zbTu{AXHcP$ZETF+MSL3( zQU#b%+W^%)H=3|riS{kH(<5259LiRABKx-ELk=L`dN9@gC(yW+ax;JNW<*>AY31D` z;E&+BoKueryqEJOibPf4Q7V+G`(XDL2>U_qc4Y0BdgB2Dbl~r_iC3?VZ6N!w=qfQ26fSco(zrVy9}?su4~A z$ynj%(EVh`wLgnCUr6{AmN9#X_0>%jG-q3%jy~7%^l>(|^tP%xX-j%HizgyBPz`X( z1^^$TAc_lM;Q3Dg5pH_``8ZeQ!Ei>jD=6-PJcoqIk>!~LczM1jC()zU0#LNy#sGUK2TRdGNo#T+cQBvzK>Z5NVq$E$24=)n+z0cYO$ESaEx&3nV z;6nO80DNySVO)bTj4_DkD!z+?hJ8}rSiO9&Yt{=*&(<=!FSm!BAkb}KX)+{OAp((S63i=g3K7M?&Thp z{;GS&!j+p(!Ykp^>(FEE7W2O~|gKyjWvmw1_^~=Keu9{>S0bg}Fz0PLqBWYdjEh z(p+p70e0$mI(~IynBzv*jpgH|pzQ}>iw(}Z4U7{fGyz z72c1G;XwfgBw`?4uaBVBNwY*0mx~9A^UofIe9ui}d?!jFni4D2<^<4AL+V%!GRg#h zfbUoY=#Yr898$MRfSZP>epRef4XVwedY_TbnDWhVa|DhDeOiY=YW#JP?I_(bP}b3p zM$%#^H6hzZDHiE1dQpCylkEEwLFs&B8yxL3=-lUwyRJP*UG6o7qrpq>16y63VXS|b zixU~#pU|DF&5}a0Pz;y{2$AJAXki4$hAn~ToJ3NHknxH4RIh1&NXo5FdNJ>3)FpSI_-%I->y~8m8WkT4u3wrF0y*kZ^6l(NG6j3xLEn zEkEbEY%GIp&kHG^0Z&#CS%d6&>f8-_?{cBEqji`}eEeakD1ohd2+J0Zd(xzH9miYp z(}PqG&O%89K1!okq0edH&*H^I0h?w8y@@c3;n##*$B7*Hr?oE>(M{SS3G~u9bgedE z%mUV&s4f_uYNS;gfY!+5H-ysUJ}X4d<3?#v;wOT9z&Uf{0w9qKw)N0g=XuAXk9o1U zQKWq$fLcnPNjhNBO|Hp2Hli!uSD=fCOQmyBI^Tvoe0tr7IR_> zyBLa{@`qnO$6MZ{gCYpOCdi{@^c$2(4mzsHriDjSa9(H;iPQF;B6%|rWW)W&FhLAN z=4KT0Ue!A7k)?~y6M=p*8`Gg3wzxVWezf~dn?k?tVyY7m&5=U!RujW?C8gq1t z^d#aJ0L2jkh=|{yr8h3qo&W<=uQvNRgv6MER9)xjlrSvFn4!kx_y4$|7v^R30S1f) z?ys8Iy9yJg=QYC_21znia9$mI^F&X4eSBUUnBD^$CIq@EKvd(=&dIUBP}ANqEC9I ze9V^`tAO7VC>b;+Z}9(WwblJa`TXf*-~xcA)wFsrZIxgN@nWlVz1uHJYQWc--rwAI zl`RFuA0R6$V`B%;Ekn`bR$=AI{8nJrSMkY-Uua3!R?<{ODKOFHFRU+jr{%L=dSNXZM@FEu*lOuqS_g{nW8@u&gXnYByPG=Zo7f zM9#Og;LM3SR)vlmY;zUYTjd1KT^_S4IAiLotTjEltEF_H%_5pEmDkZgiIkNZGD_N+ zXGt>OX}C5nMkB_`WSbu~lZ>&amScDxji(Uflajjt!et8kQp*gwm-{KkdU1T@ysQ9$ zMIaclHG5e&-2Pt5pFvie!@k|XLb6C_)bsGmDxK~VE&9V0XBXp+(yfYnN#hm+iX)hK z%)6*3!;^M18~k^7$m2g2sr2>Jx`wvCWugu_IQEAX^}4>2Dz?o1F+HNIcId{EX=wfj z{Vf;vr99mC`PZw-(UV>z)2f->Kg50-b#z%asOFgeI+ay`Q=A(3;AJe*PNuw!Yt3(p zJ1;e+bE4Sg0{x}=mCUoeCogwZ?{;12{(X!6=O;)feclI3Uq=~)<;~w(#lLBoY52M?!8c z8Gjt*;(5t!hX%y2p((N+5qM~un*IbQRc?H415Fe&HySFc+%f{#V3Y>IW3rTN(cr}= zlt7Ay;^7VT;OEh%a0Q~iH>qkIMTa?XN3!{Sa344kQu83bu-{7 zi<~n_p+AItEwvA(58)OD#UbXtrb7qKW!mQLT(k!v&x{!VNsF;UhRmyh(OOlz#-~4n zm*FEXt?&fe#~?xiNIeq1;oyQ|X9M3sMDF@04cb6FS)uQ`nIO6z;QmKBMD7uhi+v-H zmm}iq@7lpcnmVKi7pex<`7|2gT`)WOj454(5HB7!)0n|q22I)_r#qc|HQSHnhYnM> zde*V#M&i(+PiTFX0_IB)QeC;c>VCSBB%xlqFmf86HIGbCJ)jsT{nIRF*z$&TugHY|o z3iUrQ;h`FTn`=DmC=+bZ>1f5YDhdfvDcad>VQ3iZJ^J&ET5k|G@cgzICBAB`iL!sw zUaJ_>fea{_LT_y>-D@lU-(!3u{m;?AsF{NfSy<^4KM*}v==9baF206_44fN0%w{=) zy;0*nr6(Tml=m8Mb-D6NxjJ z+bS+z;tsI25fwgx3g9Fe(BDa7dY~iZ*br1i;48vNe|H~zIzWTVJS-l<4PS~N1lw!c}cK6Ul4sCeqYvD(<;^DD}Fy=k;WFw78A-8%qVQEPZY^sT;rN z^n6HZNxbta2G;g?p_N5}^D7r4n&H>(M6NYKnKIMXlf|BEKhPE>D?czb&vfYJucy16 zp}eklS=^EIs+DwQTNk}#bBHUsu}3Y-E%!5}I`u@a^!d(UR{vV9R#0Xh^o&1!MPJ!VK;eq zSY8w_;p(!^Me77@oB29>(6^dno_E{f9^4S4SPpk)Wtwl&b%ynu+?U4`-pf1Eg&W*PcrQ-XhD{lEsF z+EoMGqfF&H2cD_dxBGXS6?Ybt;0_*-`}K)z(vB}am)0b2<$h_@>@hjv#`R<^eLE95 zwQc3s3*-yOMt`v1Cf_O^I%DaZvpti(&ZVhEY4c0vFF|vGKE`X84Ezrc7t+m^T!Jka zJ8s?}8NBdU3t**7xYQ^ySG5;E+uV@0A=epuVHg5He>R6_py>k0qG~-*Q&5> za?&*VTM9PRSe2${Ff|%46n)=iXsX|Kl%!^p*VJOy?d`}u01c|YD2S$IZP9#r&g|wZ zdZ&kY2S3vDd2u{nvold(U2wc>&va(Z*<7E>qS~_Z&-ro_9nxcQ+DYH-*T;6yiOv3^ zntK;wNY>QjPbqf4Bnm=gpjK~C7aez$sm2~#?a9FKF4D%9f#nb2(Dt6eF5>d0S< zkCDYR)Jpwm!F7;7A9wS#4RE~jU}tDYyGup(NFOIo^FVS{3dQk#;pFHn4tp~4nE9Tw zs_WVJUnH9}sk-q3=JY}9IXuLC$c%^y{l1?wp_KmNc<@$cRgGHI(diu~!J3;ZGAP~lhAF! zQXD2DYjD=zcE;!(XX~)X?Zx662?~|M)ySC8-)N_jE@pOMjh!v++hq5R=6CBw#pcSs zJ;EItayMM(W)_OM*}wa-Yw<)!Hg$WxDNLoux-$jEB zi;~);!X@8=@D>=_ncK{^V$9#-YA|jXb#OQ3spUUc%P;6t>X_K;8rDxBD%z9TFFh4^ z97IViwe$_fd@()g?QLIR;^KBCbMqC~2PSsUxli?D5kbEUxMMK47M<(kZ~fX`$w?R{ z$WDqJW7=^oI7!#KqCaj-@!sr4ke%pS43f}4_DQc5_gZe>9rTy*0`mHAM^qnPVE6W0 zAFvHL!#7Tz2vkUXJ}DdZB=gw3?dg||r8joa)n$)dN$BNm+moGr^rO(}K?#zZXp;rd z%^)*0M8A{BNb3E5+K8Gk;hC}0&!aLdV7KQht6b#%KMyIQ{!Iq{Lv6UjUWRWPiJHC! zsO_%tY^LfP=B2n;>rYi_(m#6bmrXwPF{+n%vOPS{uPdRWi~mZ+4!+b`t~%!#^B(>R zW(9Y_nhc4=y_Ty#8)HQ#IkWPm6+q=%1j717}1{CbGMg z$uqlSb}LNGpW4nYVY#?nw*{Z15E*7VcVjCkIEVEY!6B9AW0*U>Em>d2nAGkJ%^NGo zwl>3?Cva!OL90^z)e^E*OT$lT(itq8nT8s+}vn~QKwI`J0_{XY4Jbab1W~tMtdn(f%Amp^dYd{ z>;JH7^DzeDA67lUj#A{WQUBR3BF*u|WPISaF=kNWyzf0|Lkoiu>x-vT0h^q+9ZS5+ zfytRjz8tAl)Qir;7g)h(A*VxODW58d{Xib&h2U*rC=F8NqRZ`b5)>{-jGfRrX+F)it>a@>`Kd*wOoy=Zuyg`%+c-Y14Lw3vPWW z?QCF9Cd&RgJ3iZ+NMfuyygmrDwrCc}*o@PR|{q?f#^`8v=SxXf&thkg&^80q?( z85WUDv0?GF4V@3z0l|tc^7RrY#n?wzmIztzLiZ_Lh)*5MTRyulXIBgPiEVf3qwh9( z*@dGXb-eRAWzB_?(`cIUIG}R^t!lx24ozY(gi?)ITnY!4rUc?NoB>(DO$3UDsV0HE zB>|BJ2gP6tOA>Uq?jc1xpwA}&>H@I^P$z~I4fw*Lf&6~VtY&CS81b8XC3X3j0{T11 z%i#%*4oL;_I~Hx%&6eb>PXR=E^dLt7D5J?_$Ga#<`)-Xn2<2}*8@B; zS|kG{6t{Ba{&C}487igQ98&tJDd};IScPY3Vdc%Dl+cg8AuW?k6kG->Aa5>p>T*TwJ*FW&1&f(XSIr#uwyqqwtX+O;nL3=j! zd)#-*6|p2^qP$sb7X1rUt4MYxqAvWV2`44#H60j~8mg=Uk5_Px!_e&aEz|oWy7k5q z5uIs7#*rry=oE(Amj$5e7$&2xMZmsCu(Ue)3ZHSb_Dma&qu;;R3`qtNmNN=Qz7?v` z7=t-_9IF%-c*TOK$ns_TaPbyTFa`j!TS5{HW4ne_kvC(QM;eQRlKoA(2weikJ<}S6 z>HxEUtSv&aq_=zkN~dE~eO$lBOp_OdbS=cl_zl8BgtcXCLZLGUy$AB=cwU^;BxL#E zt2qszJauo~t;31F3VRII$D zj`z(r`IR9RfBE*Y6z7si4qPWUXdHvKIleFn8f{EJ`i$LgAR{ley zAu?XbLqT8DU34y#8*5*bEEiDmVd8KV5i=I+-6ql-M;V%GE;F#z($1929N>F`4wpqL6MoSG-mAOj z|GG5wtZ|(nD*jQBr>^(^Y6pJl=2*${agku^G_^ba*hRrKrHT!L?>|G)6Bm3G`f)|$ z0fPkq^dh{x!Cl*ho3zrN`3r|1qEE7L90YE`kSw}3H=bM!eK05 znUK+3M~_SO8yo2EMf!6PhgEEjF)1K90500j`qVN+3jv-92gNht7Eu&&fxMO4AR`1S zxrR=Kgtjp4Iu;qHD}4Vb7(xrW8jfKRar!gTb@UHYl0o8v6e%0D$J+Fa?G;R5)o$%E*2Zza5Ipv~5Q8e;) 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� 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

    @NU17oVw;u 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

    EuMH87@p3t-pCq$n9(9}{WNO4{ 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 S6EvdK*bT`P$~eCH{Qm=m=r#uc literal 0 HcmV?d00001 diff --git a/docs/sensors/hall_pinout_R51.jpg b/docs/sensors/hall_pinout_R51.jpg deleted file mode 100644 index a3785c815746ffaef683c38a188ef8a290b2ee1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110967 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

    y`&P8A{C+;izo!mh5>fuegZ7S&gDn{Ud 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 J0nYCq{||bpieLZ$ diff --git a/docs/sensors/hubmotor_diagram_R52.jpg b/docs/sensors/hubmotor_diagram_R52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79ad155c17a7fe668f5e5bbbbd777cd18e08d858 GIT binary patch literal 713869 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≈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

    35o@& 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

    G&u%tOnYCG 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

    &{ZLrYvv5CdgKgCO(WRXL%bRlb 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

    AB29=l=r00$Gonvcsq8Rm0^C(e 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 TWfSDogD{XGj82OC`G@}lgBz=u literal 0 HcmV?d00001 From c839e4056a39161fd13e22daa6f2ac3de75516ab Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 02:06:11 +0300 Subject: [PATCH 122/219] update sensor docs --- docs/sensors/sensors.rst | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index 655eb0fa..61d14927 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -11,18 +11,34 @@ This document provides information and guides for using the various angle sensor Hardware Setup ************** +External SPI Sensors +==================== + +Tinymovr supports a number of external sensors over the SPI bus. Currently, the MPS MA7xx, the AMS AS5047 and the CUI AMT22 sensors are supported. + +.. note:: + Even though Tinymovr R5.2 has the FLEX2 port which can function as SPI, due to a hardware incompatibility this port does not implement SPI correctly. As such, external sensors are only supported on the M5.x series at the moment. + + Tinymovr R5.3 and above does not have this issue and supports external SPI sensors normally. + +.. image:: AS5047_M52.jpg + :width: 800 + :alt: AS5047 Sensor connection diagram for the Tinymovr M5.2 + +A total of six wires need to be connected: 5V, GND, MISO, MOSI, SCLK and CS + Hall Effect Sensor ================== To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the Tinymovr board. The pinout for the Hall effect sensor connector is shown below. -.. image:: hall_pinout_R52.jpg +.. image:: connectors_R52.jpg :width: 800 - :alt: Hall effect sensor connection diagram for Tinymovr R5.2 + :alt: Tinymovr R5.2 connector diagram -.. image:: hall_pinout_R51.jpg +.. image:: connectors_R51.jpg :width: 800 - :alt: Hall effect sensor connection diagram for Tinymovr R5.1 + :alt: Tinymovr R5.1 connector diagram Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled AUX/T is an input for a thermistor, but is currently not in use. In addition, power supply and GND pins need to be connected to the sensor. @@ -36,7 +52,7 @@ Example The figures below shows an example of wiring a hubwheel motor to Tinymovr R5.2 and R5.1 respectively, using the embedded Hall effect sensors of the motor for commutation. -.. image:: hubmotor_diagram_R52.png +.. image:: hubmotor_diagram_R52.jpg :width: 800 :alt: Wiring diagram for connection of hub motor to Tinymovr R5.2 From 6dde965b9e06f477d34caa72ec3fc13ec9333a09 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 02:06:22 +0300 Subject: [PATCH 123/219] add as5047 test --- studio/Python/tests/test_as5047.py | 115 +++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 studio/Python/tests/test_as5047.py diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py new file mode 100644 index 00000000..8fd21e56 --- /dev/null +++ b/studio/Python/tests/test_as5047.py @@ -0,0 +1,115 @@ +""" +Tinymovr Board Config Tests +Copyright Ioannis Chatzikonstantinou 2020-2023 + +Tests saving and loading Tinymovr configuration to/from NVRAM. + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with +this program. If not, see . +""" + +import random +import time + +from avlos.unit_field import get_registry + +import unittest +from tests import TMTestCase + +ureg = get_registry() +A = ureg.ampere +tick = ureg.ticks +s = ureg.second +tsleep = 0.50 + + +class TestAS5047(TMTestCase): + + @classmethod + def configure_sensors(cls): + cls.tm.sensors.setup.external_spi.type = cls.tm.sensors.setup.external_spi.type.AS5047 + cls.tm.sensors.select.position_sensor.connection = cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI + # Commutation sensor remains internal + time.sleep(0.2) + + @classmethod + def setUpClass(cls): + super(TestAS5047, cls).setUpClass() + + cls.configure_sensors() + + # We look at the position estimate, which is highly unlikely to be exactly zero. + if cls.tm.sensors.select.position_sensor.raw_angle == 16383: + raise unittest.SkipTest("AS5047 sensor not present. Skipping test.") + + cls.reset_and_wait() + + def test_a_position_control_w_loaded_config(self): + """ + Test position control after saving and loading config. + WARNING: This will perform one NVRAM write and two erase cycles. + """ + pass + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.configure_sensors() + + self.tm.motor.I_cal = 0.8 + + self.try_calibrate() + + self.tm.controller.position.p_gain = 9 + self.tm.controller.velocity.p_gain = 2e-5 + self.tm.controller.velocity.i_gain = 0 + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.controller.idle() + + time.sleep(0.1) + + self.tm.save_config() + + time.sleep(0.2) + + self.reset_and_wait() + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + + +if __name__ == "__main__": + unittest.main() From adaf1c2df37e529eeb5db7ae1a7dcbaff2af19bb Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 02:55:25 +0300 Subject: [PATCH 124/219] fix reference --- docs/hardware/guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hardware/guide.rst b/docs/hardware/guide.rst index 62836767..90b0c0d5 100644 --- a/docs/hardware/guide.rst +++ b/docs/hardware/guide.rst @@ -73,7 +73,7 @@ Sensor Magnet and Mounting Tips * Ensure the sensor magnet is firmly attached to the motor shaft, otherwise it may slip out of sync. Use strong adhesive to secure. -* It is possible to have the magnet on the rear side of the PCB, i.e. opposite of the magnet sensor IC, but the gap needs to be reduced to account for the PCB thickness. This has been verified by MPS in a forum post[1]_, quoted below: +* It is possible to have the magnet on the rear side of the PCB, i.e. opposite of the magnet sensor IC, but the gap needs to be reduced to account for the PCB thickness. This has been verified by MPS in a forum post [1]_, quoted below: *[...] this type of arrangement is possible, what really matters in the end is that there is enough magnetic field reaching the sensor. Of course the minimum distance is imposed by the thickness of the PCB, so it puts some constraints on the design, that you have to take into account when choosing the magnet (you can use our online simulation tool for that). But as long as the PCB is not acting as a magnetic shield (due to copper plane), then it is fine.* From 2b180f404331c61252cb6ec12a2b3d49442f1799 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 02:55:34 +0300 Subject: [PATCH 125/219] elaborate on examples --- docs/sensors/sensors.rst | 61 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index 61d14927..cc4f7aec 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -172,8 +172,55 @@ Sensor selection can be performed for positioning and for commutation. In both c Examples ******** -External AS5047 Sensor -====================== +External AS5047 Sensor for Commutation and Positioning +====================================================== + +.. note:: + This is only supported on the Tinymovr M series, and upcoming Tinymovr R versions + +Ensure the hardware is properly connected. + +Then, configure the external sensor type as follows: + +.. code-block:: python + + tmx.sensors.setup.external_spi.type = tmx.sensors.setup.external_spi.type.AS5047 + +Then select the `EXTERNAL_SPI` sensor for each of the position and commutation sensors: + +.. code-block:: python + + tmx.sensors.select.commutation_sensor.connection = tmx.sensors.select.commutation_sensor.connection.EXTERNAL_SPI + tmx.sensors.select.position_sensor.connection = tmx.sensors.select.position_sensor.connection.EXTERNAL_SPI + +At this point, you are ready to perform motor/sensor calibration. This will measure the R and L values of the motor, derive frame transforms and eccentricity compensation tables. + +.. code-block:: python + + tmx.controller.calibrate() + +After calibration finishes, you should be able to control the motor: + +.. code-block:: python + + tmx.controller.velocity_mode() + tmx.controller.velocity.setpoint = 8192 # 60 rpm + +The motor should now move at a constant velocity. + +Once you have determined that the motor behaves as expected, set to idle and perform another config save to persist the configuration: + +.. code-block:: python + + tmx.controller.idle() + tmx.save_config() + + +External AMT22 Sensor for Positioning and Onboard MA702/704 for Commutation +=========================================================================== + +.. note:: + This is only supported on the Tinymovr M series, and upcoming Tinymovr R versions Ensure the hardware is properly connected. @@ -181,14 +228,14 @@ Then, configure the external sensor type as follows: .. code-block:: python - tmx.sensors.setup.external_spi.type = AS5047 + tmx.sensors.setup.external_spi.type = tmx.sensors.setup.external_spi.type.AMT22 Then select the `EXTERNAL_SPI` sensor for each of the position and commutation sensors: .. code-block:: python - tmx.sensors.select.commutation_sensor.connection = EXTERNAL_SPI - tmx.sensors.select.position_sensor.connection = EXTERNAL_SPI + tmx.sensors.select.commutation_sensor.connection = tmx.sensors.select.commutation_sensor.connection.ONBOARD + tmx.sensors.select.position_sensor.connection = tmx.sensors.select.position_sensor.connection.EXTERNAL_SPI At this point, you are ready to perform motor/sensor calibration. This will measure the R and L values of the motor, derive frame transforms and eccentricity compensation tables. @@ -212,9 +259,13 @@ Once you have determined that the motor behaves as expected, set to idle and per tmx.controller.idle() tmx.save_config() + Hall Effect Sensor ================== +.. note:: + This is only supported on the Tinymovr R series. + Ensure the hardware is properly connected. Then select the `HALL` sensor for each of the position and commutation sensors, and configure the observer bandwidth as follows: From 0b45474cda5d56406ae230170a37719af478be66 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 2 Apr 2024 13:31:25 +0300 Subject: [PATCH 126/219] add conditional tests --- studio/Python/tests/test_board.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 8bc652fe..f460eabd 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -190,13 +190,13 @@ def test_g_limits(self): self.tm.controller.velocity.setpoint = 0 time.sleep(0.5) - # def test_h_timings(self): - # """ - # Test DWT busy/total cycle timings - # """ - # self.assertGreater(self.tm.scheduler.total, 0) - # self.assertGreater(self.tm.scheduler.busy, 0) - # self.assertLess(self.tm.scheduler.busy, 3000) + def test_h_timings(self): + """ + Test DWT busy/total cycle timings + """ + if (self.tm.scheduler.load == 0 or self.tm.scheduler.load > 7000): + self.skipTest("Invalid timing values. Skipping test.") + self.assertLess(self.tm.scheduler.load, 4000) def test_i_states(self): """ @@ -229,6 +229,8 @@ def test_j_gimbal_mode(self): """ Test gimbal mode """ + if self.tm.hw_revision > 20 and self.tm.hw_revision < 30: + self.skipTest("Gimbal test not relevant to Tinymovr M5.x. Skipping test.") self.reset_and_wait() # Ensure we're idle self.check_state(0) @@ -362,6 +364,7 @@ def test_p_flux_braking(self): """ Test flux braking """ + self.skipTest("Temporarily skipping flux braking test.") self.reset_and_wait() # Ensure we're idle self.check_state(0) From 0627e32d98f410e97371ed8f558b7208bf4cd760 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 3 Apr 2024 23:28:35 +0300 Subject: [PATCH 127/219] add more verbose pre- and post-build messages --- firmware/Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/Makefile b/firmware/Makefile index ea9c2846..ca70f006 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -119,6 +119,11 @@ release: upgrade # Binary target binary: print_board_info $(HEX) $(BIN) $(ELF) + @echo "=============================================" + @echo "Successfully built target $(MAKECMDGOALS)" + @echo "Board revision is $(REV)" + @echo "Fw version is $(GIT_VERSION)" + @echo "=============================================" # Objcopy to HEX $(HEX): $(ELF) @@ -153,7 +158,8 @@ clean : # Print board revision .PHONY: print_board_info print_board_info: - @echo "===Building Tinymovr Bootloader===" + @echo "=============================================" + @echo "Building target $(MAKECMDGOALS)" @echo "Board revision is $(REV)" @echo "Fw version is $(GIT_VERSION)" - @echo "==================================" + @echo "=============================================" From 8dda620cb5523b20eda98656014bdbbdd2463595 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 3 Apr 2024 23:28:49 +0300 Subject: [PATCH 128/219] add note about commutation transform --- docs/sensors/sensors.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index cc4f7aec..c4afca17 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -88,6 +88,9 @@ Commutation Sensor Frame (CSF) The Commutation Sensor Frame (CSF) corresponds to the filtered commutation sensor data. In ths simplest scenario, the position and commutation sensors are the same, as such the PSF and CSF are identical. The main function of this frame is to provide the estimated rotor angle to the current control loop, so that the electrical angle is derived in the Motor Frame, for Field Oriented Control. +.. note:: + The transform between MF and CSF always has a scale factor of 1. In other words, the commutation sensor is always assumed to be mechanically attached directly to the motor shaft, without reduction. + Motor Frame (MF) ================ From b735a622039c1c287d700a453926ddf841f7e890 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 3 Apr 2024 23:29:21 +0300 Subject: [PATCH 129/219] remove unused parameter --- firmware/src/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/firmware/src/config.h b/firmware/src/config.h index bfcbe617..c2fda7f9 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -38,7 +38,6 @@ #define VBUS_LOW_THRESHOLD (10.4f) // V #define VEL_HARD_LIMIT (600000.0f) // ticks/s #define I_HARD_LIMIT (60.0f) // A -#define VEL_INTEGRATOR_THRESHOLD (2000.0f) // ticks/s // Encoder rectification lookup table size #define ECN_BITS (6) From 06a8f8c6c686af03fb1b50b5c10d4b7da0e78ef3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 4 Apr 2024 13:51:53 +0300 Subject: [PATCH 130/219] toggle sending of heartbeat --- docs/protocol/reference.rst | 109 +++++++++-------- firmware/src/can/can.c | 38 ++++-- firmware/src/can/can.h | 4 + firmware/src/can/can_endpoints.c | 20 +++- firmware/src/can/can_endpoints.h | 112 ++++++++++-------- .../Python/tinymovr/specs/tinymovr_1_7_x.yaml | 5 + 6 files changed, 179 insertions(+), 109 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index d9122073..0856aa3e 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -641,11 +641,24 @@ The ID of the CAN interface. -motor.R +comms.can.heartbeat ------------------------------------------------------------------- ID: 47 +Type: bool + + + +Toggle sending of heartbeat messages. + + + +motor.R +------------------------------------------------------------------- + +ID: 48 + Type: float Units: ohm @@ -657,7 +670,7 @@ The motor Resistance value. motor.L ------------------------------------------------------------------- -ID: 48 +ID: 49 Type: float @@ -670,7 +683,7 @@ The motor Inductance value. motor.pole_pairs ------------------------------------------------------------------- -ID: 49 +ID: 50 Type: uint8 @@ -683,7 +696,7 @@ The motor pole pair count. motor.type ------------------------------------------------------------------- -ID: 50 +ID: 51 Type: uint8 @@ -700,7 +713,7 @@ Options: motor.calibrated ------------------------------------------------------------------- -ID: 51 +ID: 52 Type: bool @@ -713,7 +726,7 @@ Whether the motor has been calibrated. motor.I_cal ------------------------------------------------------------------- -ID: 52 +ID: 53 Type: float @@ -726,7 +739,7 @@ The calibration current. motor.errors ------------------------------------------------------------------- -ID: 53 +ID: 54 Type: uint8 @@ -745,7 +758,7 @@ Flags: sensors.user_frame.position_estimate ------------------------------------------------------------------- -ID: 54 +ID: 55 Type: float @@ -758,7 +771,7 @@ The filtered position estimate in the user reference frame. sensors.user_frame.velocity_estimate ------------------------------------------------------------------- -ID: 55 +ID: 56 Type: float @@ -771,7 +784,7 @@ The filtered velocity estimate in the user reference frame. sensors.user_frame.offset ------------------------------------------------------------------- -ID: 56 +ID: 57 Type: float @@ -784,7 +797,7 @@ The user defined offset. sensors.user_frame.multiplier ------------------------------------------------------------------- -ID: 57 +ID: 58 Type: float @@ -797,7 +810,7 @@ The user defined multipler. sensors.setup.onboard.calibrated ------------------------------------------------------------------- -ID: 58 +ID: 59 Type: bool @@ -810,7 +823,7 @@ Whether the sensor has been calibrated. sensors.setup.onboard.errors ------------------------------------------------------------------- -ID: 59 +ID: 60 Type: uint8 @@ -827,7 +840,7 @@ Flags: sensors.setup.external_spi.type ------------------------------------------------------------------- -ID: 60 +ID: 61 Type: uint8 @@ -846,7 +859,7 @@ Options: sensors.setup.external_spi.calibrated ------------------------------------------------------------------- -ID: 61 +ID: 62 Type: bool @@ -859,7 +872,7 @@ Whether the sensor has been calibrated. sensors.setup.external_spi.errors ------------------------------------------------------------------- -ID: 62 +ID: 63 Type: uint8 @@ -876,7 +889,7 @@ Flags: sensors.setup.hall.calibrated ------------------------------------------------------------------- -ID: 63 +ID: 64 Type: bool @@ -889,7 +902,7 @@ Whether the sensor has been calibrated. sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 64 +ID: 65 Type: uint8 @@ -906,7 +919,7 @@ Flags: sensors.select.position_sensor.connection ------------------------------------------------------------------- -ID: 65 +ID: 66 Type: uint8 @@ -925,7 +938,7 @@ Options: sensors.select.position_sensor.bandwidth ------------------------------------------------------------------- -ID: 66 +ID: 67 Type: float @@ -938,7 +951,7 @@ The position sensor observer bandwidth. sensors.select.position_sensor.raw_angle ------------------------------------------------------------------- -ID: 67 +ID: 68 Type: int32 @@ -951,7 +964,7 @@ The raw position sensor angle. sensors.select.position_sensor.position_estimate ------------------------------------------------------------------- -ID: 68 +ID: 69 Type: float @@ -964,7 +977,7 @@ The filtered position estimate in the position sensor reference frame. sensors.select.position_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 69 +ID: 70 Type: float @@ -977,7 +990,7 @@ The filtered velocity estimate in the position sensor reference frame. sensors.select.commutation_sensor.connection ------------------------------------------------------------------- -ID: 70 +ID: 71 Type: uint8 @@ -996,7 +1009,7 @@ Options: sensors.select.commutation_sensor.bandwidth ------------------------------------------------------------------- -ID: 71 +ID: 72 Type: float @@ -1009,7 +1022,7 @@ The commutation sensor observer bandwidth. sensors.select.commutation_sensor.raw_angle ------------------------------------------------------------------- -ID: 72 +ID: 73 Type: int32 @@ -1022,7 +1035,7 @@ The raw commutation sensor angle. sensors.select.commutation_sensor.position_estimate ------------------------------------------------------------------- -ID: 73 +ID: 74 Type: float @@ -1035,7 +1048,7 @@ The filtered position estimate in the commutation sensor reference frame. sensors.select.commutation_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 74 +ID: 75 Type: float @@ -1048,7 +1061,7 @@ The filtered velocity estimate in the commutation sensor reference frame. traj_planner.max_accel ------------------------------------------------------------------- -ID: 75 +ID: 76 Type: float @@ -1061,7 +1074,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 76 +ID: 77 Type: float @@ -1074,7 +1087,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 77 +ID: 78 Type: float @@ -1087,7 +1100,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 78 +ID: 79 Type: float @@ -1100,7 +1113,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 79 +ID: 80 Type: float @@ -1113,7 +1126,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 80 +ID: 81 Type: float @@ -1126,7 +1139,7 @@ In time mode, the total time of the generated trajectory. move_to(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 81 +ID: 82 Return Type: void @@ -1137,7 +1150,7 @@ Move to target position in the user reference frame respecting velocity and acce move_to_tlimit(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 82 +ID: 83 Return Type: void @@ -1148,7 +1161,7 @@ Move to target position in the user reference frame respecting time limits for e traj_planner.errors ------------------------------------------------------------------- -ID: 83 +ID: 84 Type: uint8 @@ -1165,7 +1178,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 84 +ID: 85 Type: float @@ -1178,7 +1191,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 85 +ID: 86 Type: float @@ -1191,7 +1204,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 86 +ID: 87 Type: float @@ -1204,7 +1217,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 87 +ID: 88 Type: uint8 @@ -1219,7 +1232,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 88 +ID: 89 Type: float @@ -1232,7 +1245,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 89 +ID: 90 Type: float @@ -1245,7 +1258,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 90 +ID: 91 Type: float @@ -1258,7 +1271,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void -------------------------------------------------------------------------------------------- -ID: 91 +ID: 92 Return Type: void @@ -1269,7 +1282,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 92 +ID: 93 Type: bool @@ -1282,7 +1295,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 93 +ID: 94 Type: bool @@ -1295,7 +1308,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 94 +ID: 95 Type: float diff --git a/firmware/src/can/can.c b/firmware/src/can/can.c index 38354d7a..b7ee0ad6 100644 --- a/firmware/src/can/can.c +++ b/firmware/src/can/can.c @@ -33,9 +33,14 @@ static CANConfig config = { .id = 1, .kbaud_rate = CAN_BAUD_1000KHz, - .heartbeat_period = 1000}; + .heartbeat_period = 1000 +}; -static CANState can_state ={0}; +static CANState can_state ={ + .faults = 0, + .last_msg_ms = 0, + .send_heartbeat = true +}; extern volatile uint32_t msTicks; @@ -134,6 +139,16 @@ void CAN_set_ID(uint8_t id) } } +bool CAN_get_send_heartbeat(void) +{ + return can_state.send_heartbeat; +} + +void CAN_set_send_heartbeat(bool value) +{ + can_state.send_heartbeat = value; +} + void CAN_process_interrupt(void) { can_process_extended(); @@ -167,14 +182,17 @@ void CAN_restore_config(CANConfig *config_) void CAN_update(void) { // Transmit heartbeat - const uint32_t msg_diff = msTicks - can_state.last_msg_ms; - if (msg_diff >= config.heartbeat_period && PAC55XX_CAN->SR.TBS != 0) + if (can_state.send_heartbeat) { - can_state.last_msg_ms = msTicks; - uint32_t proto_hash = _avlos_get_proto_hash(); - uint8_t buf[8]; - memcpy(buf, &proto_hash, sizeof(proto_hash)); - memcpy((buf+sizeof(proto_hash)), GIT_VERSION, 4); - can_transmit_extended(sizeof(proto_hash)+4, 0x700 | config.id, buf); + const uint32_t msg_diff = msTicks - can_state.last_msg_ms; + if (msg_diff >= config.heartbeat_period && PAC55XX_CAN->SR.TBS != 0) + { + can_state.last_msg_ms = msTicks; + uint32_t proto_hash = _avlos_get_proto_hash(); + uint8_t buf[8]; + memcpy(buf, &proto_hash, sizeof(proto_hash)); + memcpy((buf+sizeof(proto_hash)), GIT_VERSION, 4); + can_transmit_extended(sizeof(proto_hash)+4, 0x700 | config.id, buf); + } } } diff --git a/firmware/src/can/can.h b/firmware/src/can/can.h index 4b56340a..337917f7 100644 --- a/firmware/src/can/can.h +++ b/firmware/src/can/can.h @@ -28,6 +28,7 @@ typedef struct { uint8_t faults; uint32_t last_msg_ms; + bool send_heartbeat; } CANState; void CAN_init(void); @@ -37,6 +38,9 @@ uint8_t CAN_get_ID(void); void CAN_set_ID(uint8_t id); void CAN_process_interrupt(void); +bool CAN_get_send_heartbeat(void); +void CAN_set_send_heartbeat(bool value); + CANConfig *CAN_get_config(void); void CAN_restore_config(CANConfig *config_); diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 96e79c60..e60a7016 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,7 +18,7 @@ #include -uint8_t (*avlos_endpoints[95])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_comms_can_heartbeat, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; uint32_t _avlos_get_proto_hash(void) { @@ -647,6 +647,24 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_comms_can_heartbeat(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + bool v; + v = CAN_get_send_heartbeat(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } +else if (AVLOS_CMD_WRITE == cmd) { + bool v; + memcpy(&v, buffer, sizeof(v)); + CAN_set_send_heartbeat(v); + return AVLOS_RET_WRITE; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 080660bc..08cf8371 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,8 +10,8 @@ #include #include -static const uint32_t avlos_proto_hash = 2686843087; -extern uint8_t (*avlos_endpoints[95])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +static const uint32_t avlos_proto_hash = 3066507445; +extern uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -578,12 +578,24 @@ uint8_t avlos_comms_can_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comma */ uint8_t avlos_comms_can_id(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_comms_can_heartbeat +* +* Toggle sending of heartbeat messages. +* +* Endpoint ID: 47 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_comms_can_heartbeat(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_motor_R * * The motor Resistance value. * -* Endpoint ID: 47 +* Endpoint ID: 48 * * @param buffer * @param buffer_len @@ -595,7 +607,7 @@ uint8_t avlos_motor_R(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor Inductance value. * -* Endpoint ID: 48 +* Endpoint ID: 49 * * @param buffer * @param buffer_len @@ -607,7 +619,7 @@ uint8_t avlos_motor_L(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) * * The motor pole pair count. * -* Endpoint ID: 49 +* Endpoint ID: 50 * * @param buffer * @param buffer_len @@ -619,7 +631,7 @@ uint8_t avlos_motor_pole_pairs(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The type of the motor. Either high current or gimbal. * -* Endpoint ID: 50 +* Endpoint ID: 51 * * @param buffer * @param buffer_len @@ -631,7 +643,7 @@ uint8_t avlos_motor_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command c * * Whether the motor has been calibrated. * -* Endpoint ID: 51 +* Endpoint ID: 52 * * @param buffer * @param buffer_len @@ -643,7 +655,7 @@ uint8_t avlos_motor_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * The calibration current. * -* Endpoint ID: 52 +* Endpoint ID: 53 * * @param buffer * @param buffer_len @@ -655,7 +667,7 @@ uint8_t avlos_motor_I_cal(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Any motor/calibration errors, as a bitmask * -* Endpoint ID: 53 +* Endpoint ID: 54 * * @param buffer * @param buffer_len @@ -667,7 +679,7 @@ uint8_t avlos_motor_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * The filtered position estimate in the user reference frame. * -* Endpoint ID: 54 +* Endpoint ID: 55 * * @param buffer * @param buffer_len @@ -679,7 +691,7 @@ uint8_t avlos_sensors_user_frame_position_estimate(uint8_t * buffer, uint8_t * b * * The filtered velocity estimate in the user reference frame. * -* Endpoint ID: 55 +* Endpoint ID: 56 * * @param buffer * @param buffer_len @@ -691,7 +703,7 @@ uint8_t avlos_sensors_user_frame_velocity_estimate(uint8_t * buffer, uint8_t * b * * The user defined offset. * -* Endpoint ID: 56 +* Endpoint ID: 57 * * @param buffer * @param buffer_len @@ -703,7 +715,7 @@ uint8_t avlos_sensors_user_frame_offset(uint8_t * buffer, uint8_t * buffer_len, * * The user defined multipler. * -* Endpoint ID: 57 +* Endpoint ID: 58 * * @param buffer * @param buffer_len @@ -715,7 +727,7 @@ uint8_t avlos_sensors_user_frame_multiplier(uint8_t * buffer, uint8_t * buffer_l * * Whether the sensor has been calibrated. * -* Endpoint ID: 58 +* Endpoint ID: 59 * * @param buffer * @param buffer_len @@ -727,7 +739,7 @@ uint8_t avlos_sensors_setup_onboard_calibrated(uint8_t * buffer, uint8_t * buffe * * Any sensor errors, as a bitmask * -* Endpoint ID: 59 +* Endpoint ID: 60 * * @param buffer * @param buffer_len @@ -739,7 +751,7 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le * * The type of external sensor type. Either MA7XX, AS5047 or AMT22. * -* Endpoint ID: 60 +* Endpoint ID: 61 * * @param buffer * @param buffer_len @@ -751,7 +763,7 @@ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer * * Whether the sensor has been calibrated. * -* Endpoint ID: 61 +* Endpoint ID: 62 * * @param buffer * @param buffer_len @@ -763,7 +775,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * -* Endpoint ID: 62 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -775,7 +787,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * -* Endpoint ID: 63 +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -787,7 +799,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * -* Endpoint ID: 64 +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -799,7 +811,7 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, * * The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 65 +* Endpoint ID: 66 * * @param buffer * @param buffer_len @@ -811,7 +823,7 @@ uint8_t avlos_sensors_select_position_sensor_connection(uint8_t * buffer, uint8_ * * The position sensor observer bandwidth. * -* Endpoint ID: 66 +* Endpoint ID: 67 * * @param buffer * @param buffer_len @@ -823,7 +835,7 @@ uint8_t avlos_sensors_select_position_sensor_bandwidth(uint8_t * buffer, uint8_t * * The raw position sensor angle. * -* Endpoint ID: 67 +* Endpoint ID: 68 * * @param buffer * @param buffer_len @@ -835,7 +847,7 @@ uint8_t avlos_sensors_select_position_sensor_raw_angle(uint8_t * buffer, uint8_t * * The filtered position estimate in the position sensor reference frame. * -* Endpoint ID: 68 +* Endpoint ID: 69 * * @param buffer * @param buffer_len @@ -847,7 +859,7 @@ uint8_t avlos_sensors_select_position_sensor_position_estimate(uint8_t * buffer, * * The filtered velocity estimate in the position sensor reference frame. * -* Endpoint ID: 69 +* Endpoint ID: 70 * * @param buffer * @param buffer_len @@ -859,7 +871,7 @@ uint8_t avlos_sensors_select_position_sensor_velocity_estimate(uint8_t * buffer, * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 70 +* Endpoint ID: 71 * * @param buffer * @param buffer_len @@ -871,7 +883,7 @@ uint8_t avlos_sensors_select_commutation_sensor_connection(uint8_t * buffer, uin * * The commutation sensor observer bandwidth. * -* Endpoint ID: 71 +* Endpoint ID: 72 * * @param buffer * @param buffer_len @@ -883,7 +895,7 @@ uint8_t avlos_sensors_select_commutation_sensor_bandwidth(uint8_t * buffer, uint * * The raw commutation sensor angle. * -* Endpoint ID: 72 +* Endpoint ID: 73 * * @param buffer * @param buffer_len @@ -895,7 +907,7 @@ uint8_t avlos_sensors_select_commutation_sensor_raw_angle(uint8_t * buffer, uint * * The filtered position estimate in the commutation sensor reference frame. * -* Endpoint ID: 73 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -907,7 +919,7 @@ uint8_t avlos_sensors_select_commutation_sensor_position_estimate(uint8_t * buff * * The filtered velocity estimate in the commutation sensor reference frame. * -* Endpoint ID: 74 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -919,7 +931,7 @@ uint8_t avlos_sensors_select_commutation_sensor_velocity_estimate(uint8_t * buff * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 75 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -931,7 +943,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 76 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -943,7 +955,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 77 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -955,7 +967,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 78 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -967,7 +979,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 79 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -979,7 +991,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 80 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -991,7 +1003,7 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting velocity and acceleration limits. * -* Endpoint ID: 81 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -1003,7 +1015,7 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting time limits for each sector. * -* Endpoint ID: 82 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -1015,7 +1027,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 83 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1027,7 +1039,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 84 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1039,7 +1051,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 85 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1051,7 +1063,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 86 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1063,7 +1075,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 87 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1075,7 +1087,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 88 +* Endpoint ID: 89 * * @param buffer * @param buffer_len @@ -1087,7 +1099,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 89 +* Endpoint ID: 90 * * @param buffer * @param buffer_len @@ -1099,7 +1111,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 90 +* Endpoint ID: 91 * * @param buffer * @param buffer_len @@ -1111,7 +1123,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 91 +* Endpoint ID: 92 * * @param buffer * @param buffer_len @@ -1123,7 +1135,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 92 +* Endpoint ID: 93 * * @param buffer * @param buffer_len @@ -1135,7 +1147,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 93 +* Endpoint ID: 94 * * @param buffer * @param buffer_len @@ -1147,7 +1159,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 94 +* Endpoint ID: 95 * * @param buffer * @param buffer_len diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml index 4e956e43..ab02618a 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml @@ -288,6 +288,11 @@ remote_attributes: getter_name: CAN_get_ID setter_name: CAN_set_ID summary: The ID of the CAN interface. + - name: heartbeat + dtype: bool + getter_name: CAN_get_send_heartbeat + setter_name: CAN_set_send_heartbeat + summary: Toggle sending of heartbeat messages. - name: motor remote_attributes: - name: R From e1b129322285716d355c6f908e91c0d995ee4c67 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 4 Apr 2024 13:52:34 +0300 Subject: [PATCH 131/219] reset observer state --- firmware/src/observer/observer.c | 8 ++++++++ firmware/src/observer/observer.h | 1 + firmware/src/sensor/sensors.c | 3 +++ 3 files changed, 12 insertions(+) diff --git a/firmware/src/observer/observer.c b/firmware/src/observer/observer.c index 42f4331c..a84a346f 100644 --- a/firmware/src/observer/observer.c +++ b/firmware/src/observer/observer.c @@ -43,6 +43,14 @@ void observer_update_params(Observer *o) o->config.ki_period = o->config.ki * PWM_PERIOD_S; } +void observer_reset_state(Observer *o) +{ + o->pos_sector = 0; + o->pos_estimate_wrapped = 0; + o->vel_estimate = 0; + o->current = false; +} + float observer_get_bandwidth(Observer *o) { return o->config.track_bw; diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index c4bc4660..ef655a98 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -55,6 +55,7 @@ Observer position_observer; bool observer_init_with_defaults(Observer *o, Sensor **s); bool observer_init_with_config(Observer *o, Sensor **s, ObserverConfig *c); void observer_update_params(Observer *o); +void observer_reset_state(Observer *o); float observer_get_bandwidth(Observer *o); void observer_set_bandwidth(Observer *o, float bw); diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index f5db637a..51b2d170 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -238,6 +238,9 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor bool sensors_calibrate_pole_pair_count_and_transforms(void) { + observer_reset_state(&commutation_observer); + observer_reset_state(&position_observer); + const float I_setpoint = motor_get_I_cal(); set_epos_and_wait(0, I_setpoint); wait_pwm_cycles(CAL_STAY_LEN); From eff3a3c983403871b5c70a2ecd60b8800b2ab6c3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 4 Apr 2024 13:53:07 +0300 Subject: [PATCH 132/219] fix scaling --- firmware/src/sensor/hall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index a3c39dce..d1cb3078 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -65,7 +65,7 @@ static inline void hall_update(Sensor *s, bool check_error) HallSensor *ms = (HallSensor *)s; const uint8_t sector = (pac5xxx_tile_register_read(ADDR_DINSIG1) >> 1) & 0x07; ms->sector = sector; - ms->angle = ms->config.sector_map[ms->sector] * s->normalization_factor; + ms->angle = ms->config.sector_map[ms->sector]; } static inline uint8_t hall_get_sector(const Sensor *s) From 642b7efa76cb3d3e1e521991177a69625485a76d Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 4 Apr 2024 13:53:16 +0300 Subject: [PATCH 133/219] accommodate hall sensor calibration --- firmware/src/sensor/sensors.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 51b2d170..1e035383 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -281,15 +281,29 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) gate_driver_set_duty_cycle(&three_phase_zero); // Derive transforms - frame_set_commutation_sensor_to_motor(derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end_ticks)); + if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) + { + frame_set_commutation_sensor_to_motor(derive_dir_transform_2p(commutation_frame_start, 0, commutation_frame_end, motor_frame_end_ticks)); + } + else // commutation sensor is Hall + { + const FrameTransform t = {.offset = 0.0f, .multiplier = 1.0f}; + frame_set_commutation_sensor_to_motor(t); + } + if (commutation_sensor_p == position_sensor_p) { frame_set_position_sensor_to_motor(frames.commutation_sensor_to_motor); } - else + else if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) { frame_set_position_sensor_to_motor(derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks)); } + else // position sensor is Hall + { + const FrameTransform t = {.offset = 0.0f, .multiplier = 1.0f}; + frame_set_position_sensor_to_motor(t); + } return true; } \ No newline at end of file From 58cc29133cba7df9c60ca4f232a2386a30e3ebe5 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 4 Apr 2024 13:53:26 +0300 Subject: [PATCH 134/219] init sensors after uart and can --- firmware/src/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/src/main.c b/firmware/src/main.c index 603e56e9..ff968412 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -34,14 +34,14 @@ int main(void) { __disable_irq(); system_init(); + UART_Init(); + ADC_init(); + CAN_init(); if (!nvm_load_config()) { sensors_init_with_defaults(); observers_init_with_defaults(); } - UART_Init(); - ADC_init(); - CAN_init(); timers_init(); Watchdog_init(); __enable_irq(); From f0c1493c826b6d2c76ed1c9097d00c3c291b4151 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 02:08:21 +0300 Subject: [PATCH 135/219] explicit check --- firmware/src/can/can.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/src/can/can.c b/firmware/src/can/can.c index b7ee0ad6..11f38e6f 100644 --- a/firmware/src/can/can.c +++ b/firmware/src/can/can.c @@ -182,7 +182,7 @@ void CAN_restore_config(CANConfig *config_) void CAN_update(void) { // Transmit heartbeat - if (can_state.send_heartbeat) + if (can_state.send_heartbeat == true) { const uint32_t msg_diff = msTicks - can_state.last_msg_ms; if (msg_diff >= config.heartbeat_period && PAC55XX_CAN->SR.TBS != 0) From 21f3d2a21918d829f610b7d46c4239153bf33be1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 02:09:08 +0300 Subject: [PATCH 136/219] reset observer state on change --- firmware/src/observer/observer.h | 16 ++++++++++++++++ firmware/src/sensor/sensors.c | 2 ++ 2 files changed, 18 insertions(+) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index ef655a98..e8b4c2ae 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -97,6 +97,22 @@ static inline void observer_update(Observer *o) } } +static inline Observer *observer_get_for_sensor(Sensor *s) +{ + if (*(commutation_observer.sensor_ptr) == s) + { + return &commutation_observer; + } + else if (*(position_observer.sensor_ptr) == s) + { + return &position_observer; + } + else + { + return NULL; + } +} + static inline void observer_invalidate(Observer *o) { o->current = false; diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 1e035383..09383b5e 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -225,6 +225,7 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) { (*target_sensor)->deinit_func(*target_sensor); + observer_reset_state(observer_get_for_sensor(*target_sensor_p)); } *target_sensor = &(sensors[new_connection].sensor); @@ -232,6 +233,7 @@ void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor if (new_connection != sensor_get_connection(*other_sensor)) { sensor_init_with_defaults(*target_sensor); + observer_reset_state(observer_get_for_sensor(*target_sensor_p)); } } } From 9bf80a9addb1f79509b1fcaf2c41f786a8273ef1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 02:09:37 +0300 Subject: [PATCH 137/219] fix conversion --- firmware/src/observer/observer.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/src/observer/observer.h b/firmware/src/observer/observer.h index e8b4c2ae..4d784203 100644 --- a/firmware/src/observer/observer.h +++ b/firmware/src/observer/observer.h @@ -196,16 +196,16 @@ static inline float observer_get_epos_motor_frame(void) { if (SENSOR_TYPE_HALL == ((*(commutation_observer.sensor_ptr))->config.type)) { - return motor_frame_get_pos_estimate() * twopi_by_hall_sectors; + return motor_frame_get_pos_estimate() * twopi_by_common_ticks; } - return motor_frame_get_pos_estimate() * twopi_by_enc_ticks * motor_get_pole_pairs(); + return motor_frame_get_pos_estimate() * twopi_by_common_ticks * motor_get_pole_pairs(); } static inline float observer_get_evel_motor_frame(void) { if (SENSOR_TYPE_HALL == ((*(commutation_observer.sensor_ptr))->config.type)) { - return motor_frame_get_vel_estimate() * twopi_by_hall_sectors; + return motor_frame_get_vel_estimate() * twopi_by_common_ticks; } - return motor_frame_get_vel_estimate() * twopi_by_enc_ticks * motor_get_pole_pairs(); + return motor_frame_get_vel_estimate() * twopi_by_common_ticks * motor_get_pole_pairs(); } \ No newline at end of file From d0c9eec69f452f29eaa523cb712fd31a027bcd88 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 02:09:46 +0300 Subject: [PATCH 138/219] rename vars --- firmware/src/common.h | 2 +- firmware/src/sensor/sensors.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index a610aeeb..157451fd 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -142,7 +142,7 @@ static const float threehalfpi = 4.7123889f; static const float pi = PI; static const float halfpi = PI * 0.5f; static const float quarterpi = PI * 0.25f; -static const float twopi_by_enc_ticks = TWOPI / SENSOR_COMMON_RES_TICKS; +static const float twopi_by_common_ticks = TWOPI / SENSOR_COMMON_RES_TICKS; _Static_assert(TIMER_FREQ_HZ % (2*PWM_FREQ_HZ) == 0, "Timer frequency not an integer multiple of PWM frequency"); diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 09383b5e..e71f7c65 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -216,24 +216,24 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options } } -void sensor_set_connection(Sensor** target_sensor, Sensor** other_sensor, sensor_connection_t new_connection) +void sensor_set_connection(Sensor** target_sensor_p, Sensor** other_sensor_p, sensor_connection_t new_connection) { if (controller_get_state() == CONTROLLER_STATE_IDLE - && new_connection != sensor_get_connection(*target_sensor) + && new_connection != sensor_get_connection(*target_sensor_p) && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) { - if (sensor_get_connection(*target_sensor) != sensor_get_connection(*other_sensor)) + if (sensor_get_connection(*target_sensor_p) != sensor_get_connection(*other_sensor_p)) { - (*target_sensor)->deinit_func(*target_sensor); observer_reset_state(observer_get_for_sensor(*target_sensor_p)); + (*target_sensor_p)->deinit_func(*target_sensor_p); } - *target_sensor = &(sensors[new_connection].sensor); + *target_sensor_p = &(sensors[new_connection].sensor); - if (new_connection != sensor_get_connection(*other_sensor)) + if (new_connection != sensor_get_connection(*other_sensor_p)) { - sensor_init_with_defaults(*target_sensor); observer_reset_state(observer_get_for_sensor(*target_sensor_p)); + sensor_init_with_defaults(*target_sensor_p); } } } From aaa8acdf9ea9ecd05a8fc4b20d916a21061e3338 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 02:10:22 +0300 Subject: [PATCH 139/219] Use proper checkboxes for boolean values --- studio/Python/tinymovr/gui/__init__.py | 6 ++++-- studio/Python/tinymovr/gui/helpers.py | 16 +++++++++++++++ studio/Python/tinymovr/gui/widgets.py | 28 +++++++++++++++++++++++++- studio/Python/tinymovr/gui/window.py | 7 ++++++- 4 files changed, 53 insertions(+), 4 deletions(-) diff --git a/studio/Python/tinymovr/gui/__init__.py b/studio/Python/tinymovr/gui/__init__.py index 9b05a53a..240036b2 100644 --- a/studio/Python/tinymovr/gui/__init__.py +++ b/studio/Python/tinymovr/gui/__init__.py @@ -10,7 +10,8 @@ TimedGetter, check_selected_items, get_dynamic_attrs, - is_dark_mode + is_dark_mode, + strtobool ) from tinymovr.gui.widgets import ( NodeTreeWidgetItem, @@ -19,7 +20,8 @@ OptionsTreeWidgetItem, PlaceholderQTreeWidget, IconComboBoxWidget, - ArgumentInputDialog + ArgumentInputDialog, + BoolTreeWidgetItem ) from tinymovr.gui.worker import Worker from tinymovr.gui.window import MainWindow diff --git a/studio/Python/tinymovr/gui/helpers.py b/studio/Python/tinymovr/gui/helpers.py index 2097787a..d343e527 100644 --- a/studio/Python/tinymovr/gui/helpers.py +++ b/studio/Python/tinymovr/gui/helpers.py @@ -545,3 +545,19 @@ def get_dynamic_attrs(attr_dict): dynamic_attrs.extend(get_dynamic_attrs(attr.remote_attributes)) return dynamic_attrs + + +def strtobool (val): + """ + Convert a string representation of truth to true (1) or false (0). + True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values + are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if + 'val' is anything else. + """ + val = val.lower() + if val in ('y', 'yes', 't', 'true', 'on', '1'): + return 1 + elif val in ('n', 'no', 'f', 'false', 'off', '0'): + return 0 + else: + raise ValueError("invalid truth value %r" % (val,)) \ No newline at end of file diff --git a/studio/Python/tinymovr/gui/widgets.py b/studio/Python/tinymovr/gui/widgets.py index 21f5d225..43038304 100644 --- a/studio/Python/tinymovr/gui/widgets.py +++ b/studio/Python/tinymovr/gui/widgets.py @@ -31,11 +31,12 @@ QLineEdit, QPushButton, QFormLayout, + QCheckBox ) from pint.errors import UndefinedUnitError from avlos import get_registry from avlos.datatypes import DataType -from tinymovr.gui.helpers import load_icon, load_pixmap, format_value +from tinymovr.gui.helpers import load_icon, load_pixmap, format_value, strtobool class NodeTreeWidgetItem(QTreeWidgetItem): @@ -245,6 +246,31 @@ def _on_combobox_changed(self, index): self.combo_box_container.combo.setCurrentIndex(self._tm_node.get_value()) +class BoolTreeWidgetItem(EdgeTreeWidgetItem): + + def __init__(self, name, node, *args, **kwargs): + super().__init__(name, node, *args, **kwargs) + self._checkbox = QCheckBox() + # Set the initial state of the checkbox based on the attribute value + self._checkbox.setChecked(node.get_value()) + if not self._tm_node.setter_name: + self._checkbox.setEnabled(False) + else: + self._checkbox.stateChanged.connect(self._on_checkbox_state_changed) + + def _add_to_tree_cb(self): + self.treeWidget().setItemWidget(self, 1, self._checkbox) + + def set_text(self, value): + self._checkbox.setChecked(strtobool(value)) + + @QtCore.Slot() + def _on_checkbox_state_changed(self, state): + # Convert the checkbox state to a boolean and set the attribute value + value = state == QtCore.Qt.Checked + self._tm_node.set_value(value) + + class PlaceholderQTreeWidget(QTreeWidget): """ A custom QTreeWidget with support for displaying a placeholder image diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index bee0cf0e..cdd78a98 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -40,6 +40,7 @@ from tinymovr.channel import ResponseError as ChannelResponseError from tinymovr.config import get_bus_config from avlos import get_registry +from avlos.datatypes import DataType from avlos.json_codec import AvlosEncoder from tinymovr.gui import ( NodeTreeWidgetItem, @@ -48,6 +49,7 @@ OptionsTreeWidgetItem, Worker, PlaceholderQTreeWidget, + BoolTreeWidgetItem, format_value, display_file_open_dialog, display_file_save_dialog, @@ -237,7 +239,10 @@ def parse_node(self, node, name): if hasattr(node, "options"): widget = OptionsTreeWidgetItem(name, node) elif hasattr(node, "get_value"): - widget = AttrTreeWidgetItem(name, node) + if node.dtype == DataType.BOOL: + widget = BoolTreeWidgetItem(name, node) + else: + widget = AttrTreeWidgetItem(name, node) self.attr_widgets_by_id[node.full_name] = { "node": node, "widget": widget, From 09f577e2f337c00092cb01ea8612eefc393f5ea0 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 20:58:21 +0300 Subject: [PATCH 140/219] add optional precheck callback param --- studio/Python/tests/tm_test_case.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/studio/Python/tests/tm_test_case.py b/studio/Python/tests/tm_test_case.py index 8a6d6c94..ecdd0146 100644 --- a/studio/Python/tests/tm_test_case.py +++ b/studio/Python/tests/tm_test_case.py @@ -49,10 +49,12 @@ def reset_and_wait(cls, timeout=0.5): cls.tm.reset() time.sleep(timeout) - def try_calibrate(self, force=False, *args, **kwargs): + def try_calibrate(self, force=False, precheck_callback=None, *args, **kwargs): if True == force or not self.tm.calibrated: self.tm.controller.calibrate() self.wait_for_calibration(*args, **kwargs) + if precheck_callback: + precheck_callback(self.tm) self.assertTrue(self.tm.calibrated) def wait_for_calibration(self, check_interval=0.05): From dc0dce9445885c772d462647f4d891825f8b8084 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 5 Apr 2024 20:58:27 +0300 Subject: [PATCH 141/219] add hall test --- studio/Python/tests/test_hall.py | 104 +++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 studio/Python/tests/test_hall.py diff --git a/studio/Python/tests/test_hall.py b/studio/Python/tests/test_hall.py new file mode 100644 index 00000000..3ce7098a --- /dev/null +++ b/studio/Python/tests/test_hall.py @@ -0,0 +1,104 @@ +""" +Tinymovr Board Config Tests +Copyright Ioannis Chatzikonstantinou 2020-2023 + +Tests saving and loading Tinymovr configuration to/from NVRAM. + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with +this program. If not, see . +""" + +import random +import time + +from avlos.unit_field import get_registry + +import unittest +from tests import TMTestCase + +ureg = get_registry() +A = ureg.ampere +tick = ureg.ticks +s = ureg.second +tsleep = 1.00 + + +def set_pole_pairs(tm): + tm.motor.pole_pairs = 15 + +class TestHall(TMTestCase): + + def test_a_position_control_w_loaded_config(self): + """ + Test position control after saving and loading config. + WARNING: This will perform one NVRAM write and two erase cycles. + """ + pass + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.tm.sensors.select.position_sensor.connection = self.tm.sensors.select.position_sensor.connection.HALL + self.tm.sensors.select.commutation_sensor.connection = self.tm.sensors.select.commutation_sensor.connection.HALL + # Commutation sensor remains internal + + self.tm.sensors.select.position_sensor.bandwidth = 50; + self.tm.sensors.select.commutation_sensor.bandwidth = 80; + time.sleep(0.2) + + self.try_calibrate(precheck_callback=set_pole_pairs) + + self.tm.controller.position.p_gain = 15 + self.tm.controller.velocity.limit = 400000 + self.tm.controller.velocity.p_gain = 1e-5 + self.tm.controller.velocity.i_gain = 0 + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(5): + new_pos = random.uniform(-200000, 200000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=30000 * tick, + ) + + self.tm.controller.idle() + + time.sleep(0.1) + + self.tm.save_config() + + time.sleep(0.2) + + self.reset_and_wait() + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-200000, 200000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=30000 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + + +if __name__ == "__main__": + unittest.main() From 23126731348d2f7edaf91f38b439351a3c5aca3b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 6 Apr 2024 11:57:14 +0300 Subject: [PATCH 142/219] change optimization level --- firmware/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/Makefile b/firmware/Makefile index ca70f006..ac08e9f8 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -108,9 +108,9 @@ debug: OBJECTS += $(BUILDDIR)/bootloader-$(REV).o debug: binary # Upgrade target -upgrade: CFLAGS += -DNDEBUG -DPAC5XXX_DRIVER_TILE_RAM -DPAC5XXX_DRIVER_SOCBRIDGE_RAM -g0 -O3 -upgrade: CPPFLAGS += -DNDEBUG -DPAC5XXX_DRIVER_TILE_RAM -DPAC5XXX_DRIVER_SOCBRIDGE_RAM -g0 -O3 -upgrade: LDFLAGS += -O3 +upgrade: CFLAGS += -DNDEBUG -DPAC5XXX_DRIVER_TILE_RAM -DPAC5XXX_DRIVER_SOCBRIDGE_RAM -g0 -O2 +upgrade: CPPFLAGS += -DNDEBUG -DPAC5XXX_DRIVER_TILE_RAM -DPAC5XXX_DRIVER_SOCBRIDGE_RAM -g0 -O2 +upgrade: LDFLAGS += -O2 upgrade: binary # Release target From e878f42e7130d9ca9152559941afdcda5c6ca394 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 13 Apr 2024 02:06:06 +0300 Subject: [PATCH 143/219] update only visible items --- studio/Python/tinymovr/gui/window.py | 56 ++++++++++++++++++++++++++-- studio/Python/tinymovr/gui/worker.py | 20 ++++++++-- 2 files changed, 68 insertions(+), 8 deletions(-) diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index bee0cf0e..1aa40fce 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -33,6 +33,7 @@ QHeaderView, QLabel, QMessageBox, + QTreeWidgetItem, ) from PySide6.QtGui import QAction import pyqtgraph as pg @@ -58,6 +59,7 @@ class MainWindow(QMainWindow): TreeItemCheckedSignal = Signal(dict) + updateVisibleAttrsSignal = Signal(set) def __init__(self, app, arguments, logger): super(MainWindow, self).__init__() @@ -99,6 +101,8 @@ def __init__(self, app, arguments, logger): # Setup the tree widget self.tree_widget = PlaceholderQTreeWidget() self.tree_widget.itemChanged.connect(self.item_changed) + self.tree_widget.itemExpanded.connect(self.update_visible_attrs) + self.tree_widget.itemCollapsed.connect(self.update_visible_attrs) self.tree_widget.setHeaderLabels(["Attribute", "Value"]) self.status_label = QLabel() @@ -158,15 +162,21 @@ def __init__(self, app, arguments, logger): self.worker.updateTimingsSignal.connect( self.timings_updated, QtCore.Qt.QueuedConnection ) + self.updateVisibleAttrsSignal.connect(self.worker.update_visible_attrs) app.aboutToQuit.connect(self.about_to_quit) - self.timer = QTimer(self) - self.timer.timeout.connect(self.worker._update) - self.timer.start(40) + self.worker_update_timer = QTimer(self) + self.worker_update_timer.timeout.connect(self.worker._update) + self.worker_update_timer.start(40) + + self.visibility_update_timer = QTimer(self) + self.visibility_update_timer.timeout.connect(self.update_visible_attrs) + self.visibility_update_timer.start(1000) @QtCore.Slot() def about_to_quit(self): - self.timer.stop() + self.visibility_update_timer.stop() + self.worker_update_timer.stop() self.worker.stop() @QtCore.Slot() @@ -208,6 +218,19 @@ def add_graph_for_attr(self, attr): } self.right_layout.addWidget(graph_widget) + @QtCore.Slot() + def update_visible_attrs(self): + """ + Collects names of visible attributes and emits a signal with these names. + """ + visible_attrs = { + attr_name + for attr_name, widget_info in self.attr_widgets_by_id.items() + if self.is_widget_visible(widget_info["widget"]) + and self.is_item_visible_in_viewport(widget_info["widget"]) + } + self.updateVisibleAttrsSignal.emit(visible_attrs) + @QtCore.Slot() def regen_tree(self, devices_by_name): """ @@ -326,3 +349,28 @@ def show_about_box(self): app_str ), ) + + def is_widget_visible(self, widget): + """ + Check if the given widget is visible, i.e., not hidden and all its + ancestor widgets are expanded. + """ + if widget.isHidden(): + return False + parent = widget.parent() + while parent is not None: + if isinstance(parent, QTreeWidgetItem) and not parent.isExpanded(): + return False + parent = parent.parent() + return True + + def is_item_visible_in_viewport(self, item): + """ + Check if the QTreeWidgetItem is visible in the viewport of the QTreeWidget. + """ + # Get the item's rectangle in tree widget coordinates + rect = self.tree_widget.visualItemRect(item) + + # Check if the rectangle is within the visible region of the tree widget + visible_region = self.tree_widget.visibleRegion() + return visible_region.contains(rect) diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index 3932d9a6..4d658bdf 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -32,7 +32,7 @@ class Worker(QObject): regenSignal = QtCore.Signal(dict) handleErrorSignal = QtCore.Signal(object) - def __init__(self, busparams, logger): + def __init__(self, busparams, logger, refresh_period=0.3): super().__init__() self.logger = logger self.mutx = QtCore.QMutex() @@ -43,10 +43,14 @@ def __init__(self, busparams, logger): ) self.timed_getter = TimedGetter() + self.refresh_period = refresh_period + self.dt_update = 1 self.dt_load = 0 self.t_last_update = time.time() + self.visible_attrs = set() + @QtCore.Slot() def stop(self): destroy_tee() @@ -78,18 +82,19 @@ def _get_attr_values(self): except Exception as e: self.handleErrorSignal.emit(e) start_time = time.time() - self.dynamic_attrs.sort( + attrs_to_update = [attr for attr in self.dynamic_attrs if attr.full_name in self.visible_attrs] + attrs_to_update.sort( key=lambda attr: self.dynamic_attrs_last_update[attr.full_name] if attr.full_name in self.dynamic_attrs_last_update else 0 ) - for attr in self.dynamic_attrs: + for attr in attrs_to_update: t = ( self.dynamic_attrs_last_update[attr.full_name] if attr.full_name in self.dynamic_attrs_last_update else 0 ) - if (attr.full_name not in vals) and (start_time - t > 0.5): + if (attr.full_name not in vals) and (start_time - t > self.refresh_period): try: vals[attr.full_name] = self.timed_getter.get_value(attr.get_value) self.dynamic_attrs_last_update[attr.full_name] = start_time @@ -97,6 +102,13 @@ def _get_attr_values(self): self.handleErrorSignal.emit(e) break return vals + + @QtCore.Slot(set) + def update_visible_attrs(self, attrs): + """ + Update the set of visible attributes based on the signal from the main window. + """ + self.visible_attrs = attrs def _init_containers(self): self.active_attrs = set() From 55085ebb032ac456757c904f5ff95354939e1d57 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 13 Apr 2024 20:48:06 +0300 Subject: [PATCH 144/219] add more external sensor tests --- studio/Python/tests/test_as5047.py | 81 ++++++++++++++++++++++++----- studio/Python/tests/tm_test_case.py | 12 +++++ 2 files changed, 81 insertions(+), 12 deletions(-) diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py index 8fd21e56..c7ffee37 100644 --- a/studio/Python/tests/test_as5047.py +++ b/studio/Python/tests/test_as5047.py @@ -32,36 +32,30 @@ class TestAS5047(TMTestCase): - @classmethod - def configure_sensors(cls): - cls.tm.sensors.setup.external_spi.type = cls.tm.sensors.setup.external_spi.type.AS5047 - cls.tm.sensors.select.position_sensor.connection = cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI - # Commutation sensor remains internal - time.sleep(0.2) - @classmethod def setUpClass(cls): super(TestAS5047, cls).setUpClass() - cls.configure_sensors() + cls.configure_sensors(cls.tm.sensors.setup.external_spi.type.AS5047) + cls.select_sensors(cls.tm.sensors.select.position_sensor.connection.ONBOARD, cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - # We look at the position estimate, which is highly unlikely to be exactly zero. + # We look at the position estimate, which is highly unlikely to be exactly 0xFFFF. if cls.tm.sensors.select.position_sensor.raw_angle == 16383: raise unittest.SkipTest("AS5047 sensor not present. Skipping test.") cls.reset_and_wait() - def test_a_position_control_w_loaded_config(self): + def test_a_position_control_before_after_save_and_load_config(self): """ Test position control after saving and loading config. WARNING: This will perform one NVRAM write and two erase cycles. """ - pass self.check_state(0) self.tm.erase_config() time.sleep(0.2) - self.configure_sensors() + self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) self.tm.motor.I_cal = 0.8 @@ -110,6 +104,69 @@ def test_a_position_control_w_loaded_config(self): self.tm.erase_config() time.sleep(0.2) + def test_b_position_control_following_sensor_change(self): + """ + Test position control before and after changing sensor connection and type. + This test will alter the sensor configuration from an external SPI connection + to an onboard connection, and verify if the position control maintains accuracy. + """ + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + # Initially configure with external SPI sensor + self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + self.tm.motor.I_cal = 0.8 + self.try_calibrate() + + # Set initial controller gains + self.tm.controller.position.p_gain = 9 + self.tm.controller.velocity.p_gain = 2e-5 + self.tm.controller.velocity.i_gain = 0 + + # Start with external SPI sensor + self.tm.controller.position_mode() + self.check_state(2) + + initial_positions = [] + for _ in range(5): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + initial_positions.append(new_pos * tick) + + self.tm.controller.idle() + time.sleep(0.1) + + # Change to onboard sensor + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD) + + # Re-calibrate with new sensor setup + self.try_calibrate() + time.sleep(0.1) + + self.tm.controller.position_mode() + self.check_state(2) + + # Verify position control with onboard sensor + for setpoint in initial_positions: + self.tm.controller.position.setsetpoint = setpoint + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + setpoint, + delta=2000 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + if __name__ == "__main__": unittest.main() diff --git a/studio/Python/tests/tm_test_case.py b/studio/Python/tests/tm_test_case.py index ecdd0146..dbcb2be0 100644 --- a/studio/Python/tests/tm_test_case.py +++ b/studio/Python/tests/tm_test_case.py @@ -26,6 +26,18 @@ class TMTestCase(unittest.TestCase): + + @classmethod + def configure_sensors(cls, external_spi_type): + cls.tm.sensors.setup.external_spi.type = external_spi_type + time.sleep(0.2) + + @classmethod + def select_sensors(cls, commutation_sensor_connection, position_sensor_connection): + cls.tm.sensors.select.commutation_sensor.connection = commutation_sensor_connection + cls.tm.sensors.select.position_sensor.connection = position_sensor_connection + time.sleep(0.2) + @classmethod def setUpClass(cls): params = get_bus_config(["canine", "slcan_disco"]) From 9a9947597330d07259a29a10261560e3f621db50 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 13 Apr 2024 20:48:24 +0300 Subject: [PATCH 145/219] remove unused function --- firmware/src/utils/utils.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index 22db35fb..f68a9451 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -144,21 +144,7 @@ static inline float fast_sin(float angle) return fast_cos(halfpi-angle); } -static inline uint16_t crc16_ccitt(const uint32_t block[], uint16_t blockLength, uint16_t crc) { - PAC55XX_CRC->SEED.CRCSEED = crc; - - // Compute CRC using 32-bit input on memory that is 32-bit aligned - while(blockLength) - { - PAC55XX_CRC->DATAIN = *block++; // Input a 32-bit word - blockLength = blockLength - 4; // Decrement Length by 4 bytes - } - - __asm__("NOP"); - __asm__("NOP"); - - return PAC55XX_CRC->OUT.CRCOUT; } // https://github.com/madcowswe/ODrive/blob/3113aedf081cf40e942d25d3b0b36c8806f11f23/Firmware/MotorControl/utils.c From aeac576a7e4e5faa0a20c65ec34683d6a560bd96 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 13 Apr 2024 20:48:46 +0300 Subject: [PATCH 146/219] add parity calculation for the amt22 sensor --- firmware/src/sensor/amt22.h | 30 +++++++++++++++++++++++++----- firmware/src/sensor/sensors.c | 2 +- firmware/src/utils/utils.h | 7 +++++++ 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index 080a7bc6..ded69dc4 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -78,11 +78,31 @@ static inline void amt22_update(Sensor *s, bool check_error) { AMT22Sensor *as = (AMT22Sensor *)s; volatile uint16_t read_value = ssp_read_one(as->config.ssp_struct); - // TODO: Add parity check - const int32_t angle = read_value & 0x3FFF; - if (check_error) + + int odd_mask = 0x2AAA; // 0010101010101010, ignoring bits at indexes 14, 15 + int even_mask = 0x1555; // 0001010101010101, ignoring bits at indexes 14, 15 + // 0xAAA8 + // 0x5554 + + const int odd_parity = calculate_parity(read_value, odd_mask); + const int even_parity = calculate_parity(read_value, even_mask); + + // Only update angle if parity check passes + if (((read_value & 0x01) == odd_parity) && ((read_value & 0x02) == even_parity)) { - // Implement error checking specific to the AMT22, if necessary + const int32_t angle = read_value & 0x3FFF; + if (check_error) + { + const int32_t delta = as->angle - angle; + if ( ((delta > AMT22_MAX_ALLOWED_DELTA) || (delta < -AMT22_MAX_ALLOWED_DELTA)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_ADD) || (delta < AMT22_MIN_ALLOWED_DELTA_ADD)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_SUB) || (delta < AMT22_MIN_ALLOWED_DELTA_SUB)) ) + { + as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; + } + } + as->angle = angle; } - as->angle = angle; } + + diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index e71f7c65..072d475a 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -297,7 +297,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) { frame_set_position_sensor_to_motor(frames.commutation_sensor_to_motor); } - else if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) + else if (sensor_get_type(position_sensor_p) != SENSOR_TYPE_HALL) { frame_set_position_sensor_to_motor(derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks)); } diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index f68a9451..8c3ebd1d 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -144,7 +144,14 @@ static inline float fast_sin(float angle) return fast_cos(halfpi-angle); } +static inline int calculate_parity(int x, int mask) { + x &= mask; + x ^= x >> 8; + x ^= x >> 4; + x ^= x >> 2; + x ^= x >> 1; + return x & 1; } // https://github.com/madcowswe/ODrive/blob/3113aedf081cf40e942d25d3b0b36c8806f11f23/Firmware/MotorControl/utils.c From afb60d08fe74511f822dfb546427830db775c922 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 15 Apr 2024 17:22:43 +0300 Subject: [PATCH 147/219] add amt22 connection diagram --- docs/sensors/AMT22_M52.jpg | Bin 0 -> 582530 bytes docs/sensors/sensors.rst | 42 +++++++++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 docs/sensors/AMT22_M52.jpg diff --git a/docs/sensors/AMT22_M52.jpg b/docs/sensors/AMT22_M52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c1ef2012983c9683bc104f31c59099f5f2c1ccef GIT binary patch literal 582530 zcmd434OmlWx-PuJidi6-s5mtllRziz#+lYiU_P4!LV})xb}Z3$cE{5?8XIP4_f{eN z2|+?aMECT>0Aj11i2=8*v3sV9d#phHA(1u-x+lTLDYRe-U9lnjg9(2Ep65;MoSyHy zu5+F1`@U?fBg0MGs?eW7-bnH{0n>XixP!X zm(hsmnB}n)43E49|Bt--gBMp~Q4}1HqT(wKYHcvL{jRTh1D_3pIXag{rDfA;jjPc&wl=YZF)f{5^wo0FJ@(L-S*O} zzx>D7ezohrzOKyu&2RJGdi$S>ic3llm6faYM{159`O&_1p&^ zp0`~1=->YR&sRRV+S1zg>8*~>KDRrZowvX6-23a7-92A@J@75*d+?oqFfcSZ^)MKk zo|&DSUj;*sqEc}xfrdhe{3Ct-aPtm|jF3MJWQS&G{oM)}2_ujln5Xq8p36Tq zNb&S09D8Zg(luKD##=Ve#JT*s15@#qfqA9nrA>1hUCW&yz42JS+_@8eTA>d*2EI7n ze$mzv>LIxOi}_RQSG0fpr$iEO!UKllfOUAG9fzx8i~%FTKXaWcb;+C89GF^oZo|#J zO{O^dnKrT~H0|cNzpU+;V05Kksn~d4=xCa8GyRR{U%uWB->_7tPgJaAa6VN`F!op( z<0a|EFi;ozN=Cx50kd%Ks8}&oJ|;H&q5KVBLeptpcdXvQ;x#jEy}kFyv#e+HPk9q8 zgUOZZ5}QrrBxVm)3e!pUa;dya8hf~gZ!CC0X<>RPHfpisa8yc}6V1aqxYjdeUh-|c z8OPHnq6aJ3(~@QDs(!7XXmM^<83om{L4hf+&4Ck!sIuTWnAZaj^546qWDa)@l@C#D z&UB-AdWVevb4_E@fhjDT9k*JbGnkJUt?DA{aJ_TWRLgB!%bkhlW7^8g4*YCy7rj-K ze)vWw6MOw|yR2us&Y-SwZ@((u*sUKmY71A~+*xDP*+;-JC-^TS5iBcP4s%TOgP>3XE!VG?uqGGV^V1*QTk3O>0_m zI+#Dp64Olz#%adIvaz>%eF+vX-y;mNSGDjt+3b?ej#UQ5>iz4g-k@y_4x6-xR;K0Z z8{BO6s)jGjD5M~4e!R|9@Iju=FzIerj$!z{>H|}7cTEEZ?XR@i`I|FI1E$i7*=9MV zYHz`TsYOiL_K)_WdJk?QnJz}vPF;ON{;2^)@9q9)G2!%bmEM(UbBb_@$`)K#elCAw zhhkyFRL>!vL}gmlO*K)v%ts9V%W103p4-+dYbs^;t3|!$tysN&Au*2?Xq0V)NWR{V zv4ex+LRxYMA+o1h$K#{_g)Q-3ysihH2Uv6%%4}HsWfg!K%m!?(L<4wXFk1YE_OcHJTT=ga^T}^x@;_a?*)5| z>!+iO2O$3DF)H2aJ7g7+5;|jxr}p4mi_%y|{wV^c!7E4#$%S6Lrz%4 zKU`O?p|rev^R?#U1*v;(wD+6vm|%{hj_YBD^p=4x^_$0UX0|vp8s+CDpTk|qU`7df zN9}n@yF1?s-+F40BXw`z*>Y;28NOnzWnghVdP@M_wO_-0@)1Y^OXfz;W9;KB2wZ9A zTNLU1H;at9`HH(JkHbvVz;tS!n%mEjG9E6Kh4a~BDWv*HYFjK_j)|)pUqV^yODr&3 z^%Axo@&wj|qwo9AFK7QhR8g@e;X@3j4i@2!2hFe?QCj-R0}o~+g>PXVQeh9&K_a*a zA%VfafzjHI52292qQUB;MXb^1*A-8HUjpw0y#kpxNdK+7_r)N?6`WxYF z^YjPa#)H{cC2eFM>xY}1A366&bj(=7L;{l1l0(xz>!HTzL8bIQ_jV?i>7 zikofM@=TLm;c&eE@l?;-iN%RzQZdu9J&#|V*3f10y@Ph*#;z^h|6U^`IYK*u6_)vD zZ(f0`Zx~EyQW*>@(^k_Zg=OBU6uD^b-$mzw3(uh`iQdNYUd*nt?8wQ|>=7RtN<}D0 zQ?1gL&uLz5F_C>!6~?R-nIlR6q^xW>8X6yy{7aHCJ7JHi#iI-Fnb??7E2rp0nbo&S ztLip4P2Bmy{LO1~uUoIoX|y?M@7ioh-icqVYIsPu6{Kpj%BUOQa)U1jd+o^`mpKmM zn{+y3yWe0izV3N2PlHeH`n5xM{06O@WlP6HY{s55FK!$jgF@uRx!0Es$~Ed-dX}Jt z$zG%+0wTa(FV{TP{JxD$k83HUILBo7?R|MnQva7&R6J|6iXhoK(y_wBGdp+$C;NV9 z1$<`d#&e>wpgl+I%_GcsO#zm%ZdI z9?UMF6=dQfiI7Yz{;qcT3)^C4$1&1zr%ueKbSWP>*vj4qQRey9PkXIALs%3U2d6^VK;v9rkkEOdXj{7WTIDB9H7)umB zZF~`eDdCv+87zn~EV395qt(96eU|y;{h3x(gU(oDd*>cQ{&M4};jk>Lx-iyN(!0kuI^=HTCQ8O@$BeXWnRueYn_FT}dyH)f!quKV{PDj2j;^|B!g!k| zPIfnCTrZ@*4OxSjeZ!X)unRo=vp%*tV;naXzjEle2X|vLF#^kK*J62LF+cXz0qEQt^p2SC(*oSK?Ci@RxWCCNp{a`rybDs{f^lz)@$^ND%7^-_;2d{U^OaIC{xhUrzMfh;B($-Zn zC={|w9Q##W#X(UdEx|1{DU=C^LZc(n^8%|E-6z8{5pR)Yygxjwo29t0bX8V=;-ZwI zR+_k#pH|IZ^DVvw@RtY$_GLft7;m(@eP!dodLS{=1dbeWDYwx-)r3-fPLE>%*h)_x z(4A)w{|Ta(;#rt~^ElcOQW;wnfUC~$gpti_be>+e^1NWF>Q?wwROIKCh9XCmB`|9| z8OHihGzUB%BdQRjpB|l8ENsu;)N%reHj$4zIdJ+%9VZ zATj?a@`nF(&iTJxq?b+tRB}dO1X>SRBe;Q`;Vg-$stjfiv1UliU#Zsdm zmD4aJntP1>q_zuQfw~^1H>l_&lHBW>Gga=KlLsPLl#u7pGfb-4rQHet0kJ`YB<7h| zP-`^R?}c~l?fxdyqM%n_`(Sw37y+=rGH9w%ePB=&e2no7-vJz(hiZOa&{dgM;@I<5 z!hcLfqx#P91nD$M>wKZ~(!GMB?ixrX;dH{tkuok)(yL5AmNKj`zAbZ#$wsBkC4Ii5 z+kg^FxaL+8o1+6(Z;8!sHs2^4Za_I_xH-P|u!1}*yiK;V`19r$(Y-FxLZM%OP&^-{ zQQ8u7R~h_9?OlXaU<6S`hU&6_6DPWv!A{p!|G&MnY3b^Un_F_QK4JPHD>LAFfznmX z<9~-ek2c0GnCj?)>+~{jkxe48kzEgamP;?S!j&k;PvgDq>1?mUr*bD2R`{_nqMY5e z)5Bt8Y3ybmaaQQ{DLo5G_2LqJ$2`cC3v~-%lcwH;>)*DarS#0uSm@KT< zN5ztbHlZWE$W)i=lHW0(VQfd#9$w6Bm1GQ(ZKExc-z`nVWfwG=lb-}hjED0}4C{2! z%kM;`YO`hK&bf*|pfH;s;ol#`?3kqHvGQl3 z%23FDs&_)<=Fr4`7K;=KJ9>TG&1AhN$y>4~d&5I~NO0?+x$GGTSnH;>>&n=Vu~lrn z&M+Wv8rAjdA*tji_WITf9b2yC9lzgwmc4QfJxAbRCVC>YAlAw~cELK7B5?KZKg8s< z(cVK?WYZd~EnyRd=!1DIll*zyW7Yzmta@YDo-(W;i!njs7qhmGI};lWSn_)G%CB{* zMvJu0f02QW;+zUK5M0FVAdPR=&lU)CMghl^)NqVXJa>A9ffVdDTt z?7x}w5?tkQ`^QH}3-7H!H})f@gO#K(7-L+?8F`440AZdG7l`)1aA!)_g85l4F}-bM z#Ria<5}K6b%8#fUcN&UG{@D>3X?gm06=-WnGdq}gy}p}8ysd~%4-Tn)p`nzkurs(; z34^Mx!C*6L4I9sql~dTj$~qf(IN%s(AI+n0x)ySvG-?-<5sBr&d~E%&uDgz|va1(q$%3wuzm?;2vAqY0g92@;do~o3Ad-4#B2H0( z4+k8Q$^L|kLIku>n%<|X&9|_Zq&~9w99mYZko!%4&i$&oVKZ{Bz`U}5DhRSkM3bUtoF+qoxmx&(MA#>> zAcGzijKZskyFt-M%=w$WTHuE(0D}PYH1~tP8ZPMVEB@Zg_5Te>ge3r&Gqm2) zFhNGbMOcMEe-)Mu;9e1k`CDmT#4T5)abbi7=^N6X0%;1HR=^5!PcH~+A3ny0(Oy9C zabZyaX%?6*NE(?-lFLg~VwgM1yr#N%)HCG{%#pwhHPwsD?2?CE@4bB+GIXxvedQZ^{`k{-4X0{Rr%ESojL!PHn{ls1;+(-NvOQstpM zuLyQNYV*!u{_}*;Mx|e$bUuR!SMzEKBRy~3OIn#*I96oy8OFw5z7CM}4IeA`wMy50 zp7L}dJ-M(_QkEVc0TJJv4p>(-bf1t7#gJO!TlGX(mx|YB-!2sAYO_*XYWHLgWnyS| z!c8yLt;W&|l4Z<2zQ@?pLo#P4sgKOiYd=;w)@>zuJiU!H3rs!*+b~f8Srp{c_@rEQ zX`t&6lYbVYG`_i}dJpUs0K-K_lFis5znD72Sk7Rw#;!tN0dZzqm-@h?>nAMBF=o1f zG?WMjvuWS#ZQB3y7o@vOoQW%X+!oHUb}IMfo0+q~-)Y2hS~77kiza$Suy}X;KA@Kf zgWmlkO!cnSpU=O_;PXWTZPQ~YV1V{NqgGx_7PEmMcXP@DtvbUAq|Vy_A3se#aPV+L z6tRC*qo#uEEy{ucA-#G9oi>bjjLP)YI=qBUo#Hkl8NMqaV ze~TSg>cvv+LI;OISVY*$$QMv%O^T2`)j5|{ZXFZO{mwe5c?tv*%i!}O4(+a$SXP!; z?D&g;F8wBHrUK=i0c|$Vpv@wF#?ZuMSX#;R%Qhe$psU*ZbQvHsiTpmF%O>*V@q3%HL#vEAtho-0X!O8@utmJiJ@w@BT@cJ8fkb0B4>`t*<@BCt7y@9%bYM zi~BcXn#95)L%}&r@9D2AXJLRdVY8kZql{ zhpz0sXQhWkE{yeanDux66!j4(`q;2@g;_@Rt~&bcV2n!u;IPFBMLScCo8k&&Og_t= zlV;$y4Tn%5T%C)#rA=*(d)K#`GNx+$*Qu=zPBe@dwGSqm+nYlCq`C@v_IH#ww>hX# zsk{9y)g#zl#UO24-2E&%uyFk@>} z3rQ7>Qc*!*)5#n|CqONnW~)w{=!opwj_*?j@#k zX_uenjXNY$W=5wptzAOBUB+W>Y2fW7Zw6!I>O~CPgrq6)pAj|NOwz zQ!sWcdDDC;X%TY7r3smxqGh0{-|kQ3V4NEj%Bv|V8`D*m{!T?i30-(@<93CgbCk#o zk(Nx)S(G8eI5)<_42)ZuEOyArZfSCda*;?o&?`_#{t@*PX|2J((RQMngj&l z5$N8Sa4Ms($}9yIhc+>g@TH1LL+N8o7-?zNRpsrm>Taf;7_3JwJibWp^{83EZc^btft7s){TSBU@_OlRk1%sO^{4#^lOkJh_HP>Y8ho5fmjfvTT_(zm9u<_K<)X_^!UY^&8jF@g#C z`~Z+^sO?*UhyHV(IVD;mbnIR=lp4X7`!T(4M&*7H=j*zgMKc4foWHf*&=VR>KYiRePbo9y5G26lS`OKvF&h$b$T^+KgO#*#r)+A_M zXRN)>A!fXX$Mz@v=Gc8g-x&sAD1mR3R@CdpqTPY6N$Xs5CJQ!BI3E!AgF(ND%{C^B zi=C3_zeK<;e>)u;P-#_PWe(EHg4Ry{INI#XWK(W<}iV9Cehs zkcY?Cz9M9Mu*^yd2}4|7Qtrf0 zM^Um$Bo0!%UUQk7a@on&2ZQ!syaGA*>5rusZF7^(&QOMyn{hB%M&65q`K6#4eAS>N zF0T6rWBFVr5VWotYNTNZ3JufhzHhS$6XWW22BoRqe53Z~k1vn7kT5-N4hIfy1A7e7zAI8dIa{{r$aSt;+ z#Ntya4yf_+vmGEgBkb{vC{cAKs?5DTj`Y;u^Gi34EZ{DM8X$e>MI zETa~rq@YHy1a?)gBGFKiRLZW)=2cf<hLU-b<=9P+4x=JiDk}vyiYdLuzD?g|Iy>!LBozCb;dJGM-+-xe}T;zT%o1E@8Gt&fsPair$wU(=DvFK?2cXEyJlY6bib}i;J!9oVIU|qrD6mV6e=} zn{cHNH_Px0cqhoKC_<`@sZO5cSdM;9^%xrpXC6?@dmpuX>fLh-VN?O~4o!1<>6lrt zRKZ;j8d^99Etj797OCRlT*$bChqz>8!2Kok&rc0LuX41nxL! z{>ok{eH!c&GCq!5aJ|96J);`-v};aYMR3CzJ=&X)V{X5csTC#~Fi>&!uPd*z#wljz z6$#rFk1@IDolVOucP7@I5V{1zuqRy%nJlTOKk@r8X)I=|#yx?C5yt+!2793##mC;7 z>owA!j{F-IVmj`zLxEWplDr`-SGf0_TcNWH3F4!9<2eG1KG4=(afIKpo$D7m{=8aj zQv1`RgyFjjeR5>ndA}vr>Zd-RmYZ-|H+-Tn8bq;cQ666+rkEV>Qm*^u;>e^iwJziR zXCOkfs8&gCWav+%J**ZcJWr!oA2nUrfU0<7lY*Y=F(?0`#G0tGQ=B8^fpG5~ZItF? z&19l4s({9jY+IMb7#Lg;8-~3{7W)b*^Q-ELTz!b*z7y#H;6)COz!0+cA2ud$%P@Jr zJ^n=AEgotg@m<`CC#)ZJJeS%K2)}>nT1=N#7`q_i^SB>W(vqW@F3RWO2H47am*!QQ zJ$bW1=a#y=9^U%{f-`p}R_0c&S)J)hCh&`8371s*1~hzdpFEvb5e&4L6a`sA_qnK- z^rjz!CbYMy4{PJ~a?*-SUO%QZQmj@aE}lVbfl`p#&2$PKIfcMkhKhE;?9M5>{*lR0h2n8Vt>3T-q_3nvKF5?2(tqN&Jvmb+TW zbf>?^90s-qyE8^huuI&p6bK0bS(MsOv-c`dFhU-{xJQhwx0jj*MX1+?xdtOIbguv4k5m)%rm}KPN{M;3Zb7jOD)Hqq;e#(b9#T)}IMk?A#K} zkk_YLkU%4%l+iJfP?u_C2uWtIR?wqb?DNvEzgc^$e}gt>tzq8$6@J;~PxPt}K_!Q) zua!Xai6ZKxQUam5vY`s#KH-V(+4I$)I`6_KrnPKiw=82@^i6+M^3Qn{Lo)YK6+#Y4fct(%UJ6smA2# z2uNxgJMA?TNN-#-uniAwKBFWvoc5>U47h8n*JL`t5;`!F?XMOaPhLfN0}23fun+HB zrR(OTH8gbpQE}-fo(HqwNgLSLzmX~IH7KgHUdT0mrZ79q|82?x7(Wwca+PL(6-0Sac3fyYm{hj{ z#W663eTA^9Zq-n#u?kqMh*KL-f&21H=Fa8zG!WeWYczTPxr7rI`AUPuSbGA=Q0 zx^$c3Q$Abo?!JmSG4|c?lpwwdR)#?ahWFnrzim!|7E2#!61w@=7ThRsOD0lewv5ka z@=ue%O;P;ckYJs|I&B+uMl|ooc@{90TIyg<1{658^x4M!ag)7G(oB!`rvUZd4GROk z(nEN&y&#!!F)Ny?<_)4bj3o+DYWR&uj9o(s|hQ(_@maX|c2B(oE1bGKDURRn53#_Z|fzVETTOI^zx2(k}CPkdfo)cK2 zK^brrq|i}8W`F}@r^gd8OXKkFpeXQp0@Bjz4T`wco5!o z^Q9p`I+2z+A-4<|DoPNyM9>3#q;bj~wGx#4rApwZBakCxfzf~iboWRXLdoq}6gZ|L zQ3wk4z@qfWku6#c6(WFo{s`K`mvg|RQMn#n17%jIgJC-ua6#=E;Ja^z!N*1*vhPG_ zFSIB?E!a5^4SdiG&`{9Dpx0!x))ePw=R4OWb7=V5st2_ubP0JH)<0X*l3QR~Bv0@MhERt_`(&_aTo zJjV#2MMHBvpa69sM}Xk#eu$Ng@>_rmP@iCWQD9J4JaL#ji#iBHg5lnT#r%g~A4h5+ zg1Y@VW>aypYxiuP)OIb#n!Tb?7$9Bwd*!lDCYLE3|32eYC%F$)uy)E*Q@Q1!-JU&g1Y?3k_7YxI#4)##9TWf(6*!P1WjLrlC* zCUhmIHEs?Y?*KT&?#gm8D6)|>rGTa=KAl)1+-c9*YIU=A&ZzopoBUy#i+r8& z|DfvAnf#*kl0hQr9Ror<&h)WrDF;C{e+}BBH&Yk6)EK1J%&LNWOsV2r@iW8^Ab_HCq}Q*r{k5BO zqJ@5Q(`5`3K*a_zZ(p0E(x#d+raj1HlPu|CfoSdhd}tTEd-Dx?CvpA@1{FL-$%KWC zJ6);2m!f%mp<4QB=7WNiZ8KC8{Y=^Ti6@PO!$;%59j!jx<|=$))xDzLJ~jn`;e`$J zbT^MMu|M)-GbG+NNO3w@%icz;4#5~$dtKchjpwK<)r9~JmSo58waXCYtt%r9wcD|Z zgWT32ro8YI2yHJcn02S)u#&2LU@x*I8A{wa>WFU{NW0OxQsh3YDE2A53N^*B2qr01 zK}Ni}#$R&RVhgQ_%AVB(!J%)S02sUr8kReaS}%5P%w#Gd%wO?X)YTa0#V5h?6H}h~ z$inqiy-dy=ALrLm2o@xK%G-;jY$DS%4JV1%aR<}$j*=pu(HoC!(Xpmn4O`V% z(Y)BOY5h6)>xAwDHJCwX2I0obIOWN|?>=~%|F#b}97_MA{DdvqXbu)TNMZTL(&MeZ zy{HN;W7&4st;tJ|!_o?5*7Ur(GMi}4hK#*6I&fQ4vADurbZkzRzOu61Efcpe-APE% zeK1?fF|hI4-MMrjHLnZT*M zk=4n6E8(Ye_@Q$#gPBBBpJ;pO3fV{|X}u`}Hse%ldU;@>Z|H;Aa<;SgAw( zB-V+$Q(}5itCF3U;KncUPr+rt^j7R6lV%8>kZI*Lcv?G!_89PQ%DfedI<=OOV=?*g zdZW;u_0x^RNctZrvr*#=DwA3G=8aC?u)YCu*{u!$PFa{^J4P#%RK&6C_10lmR}K)X z36zMh8QTK){KhtShUJ2{)q9SPslB=e<1tghK6@H~t7&#>Z_7cq zo(7BAld1%DNS+_&>-+KfipSXV{phF^L~RejoF>f-&Lf5g1o4P|=vfFl=9Y@XIS`sf z(6_KZQ7pPdqYg{UJ(Xt|2Gos&TR<7^gYDmY(ifh?Yac=>go*P)W2(7lSPq87CP zkTmi=3Ex5SOgt(0002F~CSIrr>y})#r(r=!z&;u9_>(9lyaJB(&vhXd)Wn`mu^6lZjqm|a8j>4#-3y3 z9Lu-@TP*ZR`=wcxXkLM33VC=h_nhPgT?NY=uAR+C=%+a;g)h*>&!-tcpHOuJc0dKx z`;2N(FjFYBu9I_)=7@c(E8$Sne7J3rL!-D4Ze`kp)OSSz&qJgXz-aOBVddme?i}p$GY_{{&Z=boca+dbPw1C zW+XJC(`N$;$Cgp!%|7#)MIlLWQV`wv6TrA5k4}@zGaawU*#4gC$^wQah_a@wSqqXl zHfkHc0+2xs=iZS12b4HRy}}b`c5|s^iU9b!X4IIc})L#`nKVRaoz&Pt7a^b zek=(&KVVc{Ij602N7Z$^l!IG&Oq?f)c4fVc1{GYy7H$Y7X*x#^;~)U1tTf+$n*v>K zcGufhdsb#pB23EVrv2tvPFn8opK62+iI}8!=KhsDk(bgnSy$o9#ZolKfVdCj*Y%%f z7mGN*$S zZPA=NUnT*kM>S@}a>tzG-~~h7N^M??Y79;rx(Worb$@oU3t?tK)QJmvmDuxdaI*J^ z28B#2uFb^aVYN}4ntqz3$b>@2P}%4mcCNV%ou2|l?Wr{r*_rpEgg7h2$-ZpEN`#33 zW1#-7zg4>N}nGXdBB;D@=JAZX7`n?YS=SRy5lgIPoAo z{=K2Biiz+7Le|_Ts3t_iji31qAsbh3o_i)N$)J_mH%m62!cP=ZY>CDGd<{nEod=g$ zkhB5bdLl=xs>{J%bCQ;w4UUThq7T}eKy}`lKM+Z8GtAUvz(QiG| zm9ZnnA!Ko~G!}MsH2V-tGAKE|=U+1GYj4z^oHWHXp5*!op>Ln=Yv|2rv;|Q{k$X2= ziPvSNthR9TH~rhwoxdDIp6jaz@?*yA^; z^zT5_S;O~Ia40S=Zm}=dpmNOhwp1_y zz-a+ph$lgjre%B66efjo19F4Ijp|SFOzUlU{&q!SN&&^4ajf26hQ8&%vQL0AM49Mv z+}w&&ON7Mu>d(|h-vqD}0pJWRxjgm%=EXH_{~qDo0MVGdzf;t4rGI(#DSgfX(iD1Jd;Uql}ge zE!hy_4N+L=(CqY7vx)I&_?}s;4!JR%4l%&jZQy31SiMS5;xu@wre|EqE5N&z3BI27 zR=2W#h`vTqsV*|MS<|ClM$it1vpiMj@ZV!7yA7n}K{n_O1N$of3}%`m26d2Rb5A=C zIs)jx6?py)B)2DE2#y-&$#xl3f^Zl2sd!1%G0y~RCOG3&ikJjsioxf_rRgQkz~bE# z1Zxyd!A9uC{`Kw$PT#}PUdtu9qX2xBkg*378c9>Ga$-bK+X1tQG8tyIF6BO)pEPw{ zfj@uwB5NWnDR>$@=ycu%2n1q~z44LI(SoLt(p(@e zS=dj0A0xe)DWHm<|p7RV@76Aw3K1wQqra%OpZJec8N#l*SPQDpV@h29> z*eNcka4_Q8*E{65iT%ZnCU2=X7aq>R#X@}a_=SzPtZz^+{e~ZxBIrFYIdGLrZ#g7%(H{C{-(R9M&1N?7WL2wg%;M6tgeH6(p;A>upxA8Web9KY-(B4}T2D z20-cgxT`?^AK4-YR^p${N~_D>^RM3*h#M{eD_CmUzgXOjk9S z=SZDfB1gCh;mNeKoaA%)8IB@FRDsNW8Kc{eqge#bpRn;DP24c$r^a6ybICCk7$Bfu z`#M7BoHA1Ahm({W(+}Tq+$Q!}*BqDv2E?Y!Br5CV-w^-a(5)5RGcLkrp0C=A?iAZ+ zyiKq}ygw=mQosb%#a@Ld*dmdKZA>raNwTR8_N@uWi1W$euwHl$Q>-p~)T9Ung~P_I zw8IwuWoaxFM<+q#^9&_(N53coGYH;h!|y?~-}(}Cm*zGvr$gUz=^H-_<2tU&9(@r1 z&J#NyZR>F3jQfsBiA`m*l5!~xU3D*RfV+eMkJoAr(sINh$KF%AnestF_l@t7qqm^K zyE4i|USM|G_zybAJ?*bX^ssq4lUVdr%OxVorwe_QnL>HdF+^n?)c6)0f6Fbja#Ba+64kq5TtTa-965aRNcV8Dpso1mE#)l=ZK25PUl zo7hUqWk-;E1!T#?$Bg=PMP*lx$0&W;Mzn07%tG1(alTTWt7MU2+VT_WK~dD{cDZL? zW^g1+qFXK%bhlsH{5P7m)v<&4w-X|!OE%wdd(sdGp^j{%GW>!&(^x)gexI$*&4Xhz zH7K<#V^{sT)~W30wH%%h`di_kE>f4*Bpf)WWi$uIK*~MWW~!;Kn>9Gk$PvE-Halsi%n<-D`(rGl zC;U-J*Ti=E=>_qsMX3|%=lON?KIKDZ2yBgM{!akI0PByXNpsA4cByS?FSzcJJR@@^ zXgP~&m8ryAfe0@uYH(#}Pq!zWx>pPq3_$8P-vDfYC&-7<=}3@8p#kBs{8J<`?14@N z6fqofidHGzdk2fFL|hr=&xNI5hs_!Y-R%!U5)5dy1&-aN-$hN&2&4eC@I=Sgg6i;v z7SVXrXad?D5hf76_#x;x4)pj3=N-g9#0BBQ`G9-CeE4^uR{ZT&kRpLj{TqoHam!?RCT?X@|Wa8J5IeP|)gTa*o=SO=_TG{#n!4jU9u;OExBXQF`Nap+=- zQCv|_Nm%wD`qtbZIkqpYBXuBe1OtugH&C<%W-;%o&@^*?$wZzFJ_F_SSz=&zKY00Q zl2ka1Vb2_%xe*Q+Pzd%}E{f9R5=Q1+rDQ7F>WlEmpOWnO**u)jT+H5m2z>QuuOQ2z zpJ&G0KT|9G((M)gUh~TlCqew70hgLmM@iRKW~+>P7CKi68A$9WEQxsuJE}6FhZ{b1 z2fL#w$Z6#pi|olFqTZeU&}0NbH^><7%Cx3?^Uh1-@2E^a8WXs{Um4z>D_la`ZSxs0 z1iYD5&LlZnJ^%;wsE-%OeaD47vE$@ZiB&Z zK8X^4{>CqEF-{ggdm=5w!wg(&o>?3R)itcCAKBN+^z#W$a*BuvtZjyww)GjPuE=fg zm#Fg|gd90HM7#Yg&cA0SMeIsG{{8W43UerDO=zU3!EsonjXA5?`|KOYgXK*mCGVJt z<#d5Hz40;jt9`ajEr49gA;b3Xu|B*~p=4p?x=LnzHxKQ}uompo=nA`J&Y!drODqWnQrLs)FVcN~I!fDiwyz>#@1j;*JyT3?xZ{MHi3Ptu`O@z%FklGiPaoW74 z4j#LdG(5a_)P|nj01yU}^E@^p+UaRuR_<-kX6z}GxT7M0l|tbpvbYalU>>GEEFb%^%&TfEB7;#R&+d|7BGez_hct}FL72NN-52} zFJ9G6Bo$-|T@@sr^ss&@0LuqUxUfNiGlw6p(zTr5Hpu9zyH|LnnbQjGPHnFP! z!#LNy^?FY$wcsnqawY8X!)$YbrLxnGCbH-8^YNY5aV#VPaHvPWz8Vtu~ zm+?9F97?!O0(y^UF3?qmT%){5XSIp^tu6|DGd$%f|7o@IU@=Y^!v(hoW>>P;^fj(YGG{Go%RIf*D3 z?mUb!pv5QLlut)7^3~Vvf*6`MEvQ0fYLt$B|a6SWFg<219{h zFv2*{+7dW8N8q_)V7vI+Wn_}c@ul*?t)C>@Y=3R(@4pY=CW8@DTzOfr;y zNVo<#<9jwZjIx45qT1~yvvuVz=!!=&?OXmH7 znv&|0IS(dRJVAzZ+9nfSZ&3(Nd@yPA6LUMj01kA-y0)&O)UGmAe({;6m1M3f|4Ufs z1aAz}S8Wlc|H!UheO=WVaLLjqVh{#>uQ$f9uYC8)HKQPMuqTb@Ecm)@(hX?RP|vjP z{e&5(V@r_9J8NYPs&frf5n4<2Qd}Sw>oGGU!xP{#+Z z3i|urAEQv2r>S&Ss~rOa32v6?9D6Ed;bK(-hc5ySQ2>O?qI-&BX>yoRA>i8=@@v}? z%8H$?t%Ga%`p$&o;UNKySlHkrbbSX#O~u%xan7wFs>c3M4u0QI&%tf{*{$qKl{IOV zYaJC@)9DaP;FAt0c;=3em~SR$!y_4sOb_eQ>OYT_hiOhGg?BT}q;kIImWa(>c3tap zvS+@5lmq02&^dbz#_MpPCK-ejpEopwOa$l^jIn!F<4!}-Y?0@(3(k~;mkJEb;@qOC z`G-#2lv_;J*vr9hHVi$2pXS&;oXiU&L86X_Tgy`iZ1P4>Xb>57H#r zN!3w4MR8~ESZZIMF}W4y`zZtjD4vgct444V$N`*;#E^vzb9C!y?an@}z{3u? zU+y6qPJAVmcle+?v7Y(p901dUg$%Z#)ScwhL?JkjwtBVBP`{9IBnno1ZiqHkPVg>- zHMObu0(VX}w-x8(%)oK0DNfa!1bKG@+{VDZ9-K|j-fz^FxU!kUL8jd+kF@67FH#70 z-5XRa#+9ZOiX8vAAEoQp%XjVU#toEi!vQxFE5&^E4(?HKtzhs>icaXR4Xr&Pf(Ies z#QoaKUxOYCd-@!%f2cGS$OuB@5*Pa~;fZ&lQC6ex)nW;sn;HywKRb7R@~Ct+4iU{Z z>nk}$T}tj^p+=9~p%lmFKejaJJk9=L$Bt-b?}=EHA7W7@V$;*OLiXk9K)_H)NGJ|e zdbr^hga*(#c5^7x#ppJ3@aIMD_I9CWBt&h=fS zQ~2xThYh9cu94;-C{uu)jm!P)5?im960-VFF#3^iYdyiI(130kbk@MVVmslH-coa;t#coZLW^*E zPV)!CvhxZ_5LdT>r-n?(`S3*~9Q68xxgi&gLP(kkj>=R`FPa;G64oy7dbxw?Qki>L zb|UG_b${bU^zcZqY_d3vechLKd;O(?pw*quUUwKdOxMKsyc-C()NGZ`m6BX!WE8o^je^ zpobr>4Cq0jE&J)o$;3@@1!Lk|?4h`r*o93PziiMxS!h%2?)X=J5SA%MV9y=M4ufCtCFrZr$gc~)o z$Q{=`foZVQKt+N7n$Jis01$+Onksl!BlK<>Kl?t5DFO@ERO1m_YR`7Ex20+6M*Ag8 z?7RmKn@0<$gEp6Ju&SeF?}t*zZr4Aak2NU`qzAWPd@L{#?1`jSjHJaSp9>Vg_uE=$MGqY z*Qw`{A3R>_u;3xofXKq6R#wmWDH?@o^CGXJhbdC)4rgoqbzdTDrZ*&jz=YH75V2#O z{5l_d;m~ zA}x&4;qn+=vPt%*D&!Y$q(*@!gr0Fv3oI2&ZJr5OVHnGJmljd5g{EsGN=AFD5hn!R zHqPq@N25Hn^WBdy>+OFJeWe2+gczYW{ncB-ScODs-G(F{4}r&J+V4*?xfK zrsoi)Z7V>_10qtHP&_L29vT+uXssS<)BCRuQ?e562+u1_ua@tR>=}p#rfui+}6v5GH`|1fi|PVbas^i$T0t z$}(Rl0*;`<{snSy)xqX{i!&wiPxILo)aEK(zD$vL);cB~UKtTLG&EuPOA znSQA8T#zCkr_n4xrD%hsl1q&fbFryAxRR~q%N1Gfl4!%vrbrMjFHG&YFOi5}>EJ^R zj+OOrHFCE=rz|m*xUm$c_xX}YY?VtTIruxk3s8_Rmf3xqXOu}S0uuclhqn*^3t5Jt zTB^dQK9l8gYq~GMTHc1J-0(gaFd}e?qF-7vtYH5c%Hjo?6OtYzW)y+bt)anUy=({y zb?XRsb*oW@EUMjE6cgJnsE1-^KdQPtQ^tP;u4m}doKtN8M^UE?7nMiUeYU}2@&bYY zfO*6>QiWs%duUngjKV3^6|q(T^t|iXDvpq^IT{onZIlOMNWEtT^otM2MID*PEG}U> zkod+&C!qqcun0-v=f?}PgccqtUG@AbI#^OcK$fiN@ZbiXgF3%vnovF!N+X;`D-z}T z_z(SBb(gR(1z2;C*o%wM&vLbVaWhDVj4h+XFTp5Q1LHW27Y9XCjS^9Sd+0>Gu4oPl zULda9gLTAJ(}ZDkmQJ2lKxCBJ!b4A9+t|YYyEt>IRUd}0s^U<1~;n5>|SFc zNDUkrAk4&S!xZ^Rc~{h^?se@LW`)tNvp|j(IM@u>7{Ulxi{t&%R@}PA0l*Hh0$4qg zBrv-Gbtso$l#bES83{WWNRJ0_2~8x4tR5QE2OHA|%_0Frh8d+zJu}H6FK4+Hs#=@; z9@Lr5(lF{`6V5S3EO`S!8v(WR9Q5UN;I9F=r0W&rPx4Wr3u0qt|3#TClqUfdt7)B? zQYM#|Sydp*4HTFlfBX$UX?{9_yg>#YC4IEdVsg%kfL{`s3JDfgcF z4zS^@Di^IfaKuWoHz0rM*^!&|B!iy=C8a_G2fu`X9t@X>bG4ZW0|5|Fi)dW|FXL2f z7&BRHbgzba6}j`JP$USx8>h@O1IchN@zey^wVU-z%VuIn>Y{{6ds8|;_!}wXQ2HSC z+aeLjE2YFD;apfGghCPKJ`p|I5tURj%pudZqk>E#&2Gr6WEdQO>xXqu;V^_6n3E@T zRAY+LGn%T8pnEAOj{O^F%-8Wnu%7cAw%=mNu8&HD@c0~bI5<;|d5Ima$6A7(MK+i@ zL3?2eMjzQTTA06Culgtm^QWvcVpN-%};v{%pufYU@C%c%>} zgLo}d_Y=pK-NBMiB$U*;!U_TA5KF79MS| zv=2_&Ug1Q=q;81s1(o$oaH)f2XnbiSSmj`~&l}9g!O`WVPra*`$H?Ox#1-_rgbbYY zlg#X?3JQbKD*AnQa>zCowJs?aks+p~elb?X<`8MojuSd3EF+P$3&zM4EWBeOg{svG zugXkmOm-7q#YQC4?UaLvshP*9q(gy>Rxzg95ma=N^7r2IcO272FDG&n z%cGC643^OjBbea_kVJ#uOb6~HNl`ruSXSW8s;biJ8a?-?cflcU9YDYjS|*feF;3zQ zX$!8QE(Spf`k)xR4d?i}C~4#op;RqbRTNhppwNX-7Rbcqf=qRS#Bfk8IJ(M|R-eyr znc2g$a>v|57fHmT4WSS>dEY`(k3dFqY-CHQST@|%^oqh##d5D#i~-gZq@R-&aR`pn zL{?pZR#%Aj28^r47v4BqtMg2#%(qcT2}2h&99x{U#B_4hyY$utpLf7(32ZgB_8Fmq zjvfM772*yQM|0;DWX7$O;qG~)p(FYhtukB zuv|}s&ETT~nFLSC6jx1gOiyHmo{AMZqH<15~pN)Bj_wiM(gdQodWU^tnsnMdb@9>L^64bhg{EZqfvXh_xBD%Y)W%QP^i5?f;SIWpu~=-e65n-;fyJ@4EJyg z5|N47Nktg{FSr2EJpHsUZPIC3+&B+&fCOi-71<;lhCtduS7afRR_1PVxz#WCXDTd7 z2mU_1Xr*`oGk-I+g2__FapEs3y3CUZvSpmZ?(MWucKW)neHmLd4grA)!!0JchuIos zVa-wz_|nMTKsXw58F1_KeIHI{-V)-Cn&P9H-%OcGRFHE5D+p!dP=MsoFD=En8+L*_ zI+XREBrc0Hrn-~!N!ErdtX5@jAly)o<#0l|i5v9&P)w7k{?}c+O~f)y`p`6yPbVhW0lk zvX~SVL9Ni>a_{8;2;s*k#hFqv&Qd`FPr<6H<;2oWrNO_V^Z$^ojKNmdYYiY8AF0-P zrLh5QT?4iP=s~fn-g`uA;Z{Y&i#aTg4?qM!!oB$!V)l7P>-KP#nyc0jD-l8jrBq2-|qY;5MRrCpRfIU4u`70LE)di{c;vbt-2L zcumP?Q&N_-tciHSOfo}hq661LKZTi)=f37M1(HFi6N3Zvs{#Kl(>ej#rB`Ebz^8@) zPXd&OBQhUZQo@y5Tor;`x@O~k$S}eGLA%#nzH7<}!D2^=9w_bk!(1IPMZ5Nod~( z1+*r*#b&6dxv`mhjs+(WL}TrRC#o2gnMUb(rHcF-D}YZ6IR*3LE`&rUov68LIoK$R z0Nwy8aKZrmu$dHHheudJWUdLw_UPATzru7PQqskWDz&bn>Q6{5EGbO-VV)xi^x*h1 zI7=3&y%f}*tl7hfug>)cCcojhfYBo#iF;5rc@EB z6*yZz1g8wwN71f)jj0121e!7{NIIwi;-jwx9&k(Ou`2p94V@#jaP|i4Q8Uj2r*c5< zfU}h_0+(*ElVp&Ix%NA@n#lF#1_dFm!g4-guG{ppCY3)?!9pt-UHkQmI^t}d#2^)FN1O7>sGtZ?eq+XbcIjsYdNgQd@NeSf<@D_u-?AiD_RCT?9 zrHx>XC#NktM++S`6eUAJtqEINpoS2|m|lk^T1=*rSUMAV0U=<3FXv`g1vA6VSR1gJ zA-kX)${`v`QLpbRoRy{Ogg%~f0NtvSfXtm>!p~+{hsCgF4gnQ?)RbIy0 zsQ56AC!wl01!^faqShHGO6C!?Csz`kKr77}!o_u8>IzJ^sBK_|1*YxS6gF#eaZ1Gu zBY;f(3VqhtX8~43DzVegNnF)|;T}nJltUkp=WY*} z0y+y>ZCLmzrXOJUq!PEp)I~lqM=4Y9t&{OM{-8&GX^_y;1HTJ%#2|bEfi*06C5ert zpHK89GwzM5{5%JM(`@3BEBCp_hes4@3uq(*WxS*{D-g(ExO%I$t7+sAHPs+nG@1_m zNB}YcoB?g>)Y7lCx?JUym5*LFqB|-;Vct@%cN~>M>1J0~S9u<1W6~8@s?a)$LA5spYZ31qE1YR7yeOu6aHhqpQzu=0?Zp=(Rp( zp)tsn^()v_VDO>T;@KLf{5VdX_kGi$opbV}({-WlI?2Dz{&!zCIGd)Sgsr*enO&`; zu(fv2PYLRIE-jgAsDv7BLN!`^;wxz`gPDt zlsTI2C};JedTf~BZ9+*O`FRr|TN-DOO~l(bCW=F8(p+7x6Vb7VxKrE^500gO*uDZ! zdMMko<2OWLm_VE|#cJ*rF8cP~d~{c#mjsvVO3c@#!hv3y!EXe2($J`-<|H#(sQE4` zYn7`oG>Q`yNKq0?-uV{(3~J;jnvMs!6tgH^-!x*n3|@SHiVP~mpzvq>;HZuK!&ED; z-kpsNgN;SRO;t|w5SV~rIQt;g%0r;+@BmL>SS$&pL`gehTTDeU!8~^nxN}_1T}y3lQz(L?{ON48{n3UD3`iWSuBi3zHL6Q6K|KtlX&F~Y?07$g4#Z+d znAg1xUb_Bu$-!dC;DO$0BBp{0GMNd?iUq_Ztb1E{nT39nc@D>LCOw6vm$pW^fHtx! zIaezri5Y3QeGnthNqS;YN&_m9%E`48PPa_jt-a2+S8z8W@-S@-&gSkRJ!u+x@EMg9 z$}kqO4larmBqy^jUophY;!AVR1s&_)k)j~8f_f|LD$Hx|YLf7?2u!+28zIwyf%+aZ z2}EMZLZiDeVpCXgp#!1i`HVdbpcC zOmyX;K}F6ZYK^8`F@P8jsK(%kjLnoOZq+bIa8bNM4y+sCrbT|waTlA&4DcK8b2!dY zYwV}LLRler^?G5_CTI$FAMRaLm08aP>D@8)*x#&ysT&F0tf-oGc6C;9Jd$$;Yt3=P zge_1oW?v0+Vg(*|@horylE<8ufRt2x(#6@|Lznq9sxQ8XXa~6QF*+Cd^rC4%7F;Ov z0=f^ASxE+92eaT8JkB7|RzIuHMKIz&^G^R=&-=e2;r&k+5>z@2%n>r?1SJ7Vo`G5e zGB$uJ{;d;&+tOf~F~mtdNAG(A`OBN34=BN=P0pt1r2n7%4ACg%npv~d=wW8QyUsps zaAfqdX^|EI+#%&?re^T#M1>G3#bJYkGT2>y(W`Vi*1&;C$FvcBWXI|5JU?20ou(;* z?z$DhP+0vob>(!96_k36Km$xcHL|hLXbNf4mbK3%)BZY!XhOFR#g=GlB}o*ctf!|* zcf~OH63!(sW*xkJO6tDQhRyMXW&%Xbm@h%K8LdH+8eqwM%%&5g>ccD-q!%RL3uI=R zd`{6Ox<{CP!Evi~QL%g5I+OBY{h@O?0Miaw8?q$}WP>>YIyvc~FWki-5ETof?Y#r6 zm6mp21U{FydTfU(J+6;i{jmy_yG7#64$M$uzrx{ol_?!R+yq^Zt~gz3t;5^Kqeqd! z&5?mO_Z-0GuCAQ4W5#ZRUb-2eix#!R`1PGwPJcC(=|q|9D~ztw0W*r?n~ldOAod?8 z+Ha9xR1QCdJ*yZ7o8!iP9Bc=ZYQ$+#8%*`MBQr(wA{+(l)htc|6j%4Jh!-JyAw z7Ay>xigI?=3hq+WOk-0HQXs&J_gB`=1t1|IiH_;TQXeLTo!1BYStPhjb!9uTI(;bg z6ow3(RCq!YX$cGvk<^kY!ss@=)kE};v-nR$vv3J=`tMe&`4VR=_0#moSfhNLxYD$$ z2)!zn0n9ip2MB7qRjkKN1bl(!ZrYxbqM_GXcO>4Fe-D}(f1rP6gT37JSJG0wj^eOD z7VVf_&8!#AF?~I>a9u32aahB%@~=?8$99Ygcv#Cr2PIr-P2)G9GpQxdnnLm9`F@zX z*%8dKF!McHTr)9KL~~9GG8`cC7e-&g*Y(RGf4)$hPIgnR4H$4fKMYGXRA{5y%4lwLEhv9(}> z28YPw$K*TYAN9wb+Nsn(Q<`ycZ7g`qnL7F`p^D~0M1u`HfY{{`QC6%5}N0gw%ireSeP zZD{iCdV$CVuDHW1w8JaCURh(>eL~1}S;a9$aI~Q~T@)TxWWzY`__J1I-6j3rD^Io^ zUH7n$7nA%7318FGzzj{ckX^SWde)oZdDGIS`Br591DW;+hv(~3ug`LxXL4#;KTvcr zEd@+?W4mK5tvZPt@AoTpqPggM;55hRevyfVuH5?-l;9{gb%-BqCV+-e5UI&>c58}A z<*}Wl&z|5?=-W00&NJE-RhAL-u?l51XwEx?)9&W=1pjS?isWpeD+ND;C6=T__b?jL zbfM20`^?#jdjfA%1S+(N&QUI>YRnnVRj~V=8gtYVL+U-dKDM#3Hwt`OLKQ5WLYX4& z5Xb|t>N>~ufgb`Z1UIo|k8aLyMBIV&`=p>J$0rpofq^*?is%%OC`fWnB=I|WR(=!! zU1v?OG)RW0AKk{Yc9iBW45ZZ2Jv63QhJzZHwpv3E8Rh|eIwQ(gkkSGfMy`*Ll!m8o z5_waI%^YEWR?;v$JqFv3n9KOSqN^@Q&=eY@kKYe_8;}vau1tQg6 z0Uwxz5QiyU&Ex#c9!+yju=@p+Y!ikiF)nhjiQ_sd>c#=JqVw&N13)gxvtp0xa)+QX zA%KlkNt9c&R|%M_X9gmwUgZ&OUo&KY(&X8T5^9ugaJbxd6G3B=zjU}v#F)xtOiD|r z+ufe7nE-ouPXJ4Orss7>#E=ToNQhRNVojBUw>5H-LV{uNEj0tBX_v7uvl?#N(m3O1 zk2D$tA+i?%h<_VOrA_s|fkqARQIH`^9r{~TY!GUYk2P5`w0FG8qU=r;@9keLj+R1iM|(JQnvQ$j~J zc+dautHLpkGKofj2TBv%GBu(_xB>>cmUmc-GbW(2w8xhW8fY^G`Dv#ReBs=hg{s&UoI zW(O90h~?Ro>}5??`O!VX@~t})0SUrU_d*!P6*2Pz+?rBm@JHqp!RmjE?EpHLcH9YU zW0(vz@iO|=uEG;hEPZtKY6(vu8|7A+EpGuvSdarQHfH$~X#l(e&NJ;}U}@U!LF}4S zp|RFoqP3H3usnkeb#6xd)RBF#TPz)dplZ~WvX-Bh*6UwcO}2` zY!|{7=T#&tg28^RE%>DZKfldk0a9=yyt=yZqWhx8OPDsxS&*Ws=gWNqfk{QlYg{a1 z>9RHht-!=Rg~ve50aI%#RJKa>I^X&6f-06#HcH1CBpcXGCYrTq!DgJwyt3?T4C7&J z?Hpq*$=TnOSJ;ED%)^*eeW^lChn!F$t5*Y?vwdt2?9}BHPtpBYmCGP6kE+HqE7YN6 zbmIXQTr>=jN93mT9IV9Lz*_@hq9#ad#cMOcI8el|R*~yd-PAZt9kQ5(WTDsnYPHi# zdY_`P%uRj@l*s5Za2WTqEv6OL(cNTNi7s0vXk@;Hzz-ma@9QXa%U^xjM<4bM>Wex&G0*Z!?_Ye8uXhkbs9!V|j=XQowk7jA zTw_)KL7`C)6AN{@Z2KT|OaUFRuksSz71LuZ4$(nJWND?&t|mv1P;~8VlKMFi(!ISW zWcvBeLR|_d(9EYDfu30W1`#6#1b{QHQX+})ghwz{%~-pSF7u=6T4wI^+;Jct(X|f2 z=XzEY2j<{*P{WfgQ6-Aut9qFhG#6Ep)Y9Cf-_ZCPyq_c0a~ z8-Ru)@78XZcQ2;H)da)A6~~zcw`VHL;3&=sZV|CPydl{QZsnDPJE?woF&O6TD-c-$ zCq_y&5$iQWw6gPToMOM$sbGj^;YWiKvjVVrDk}U%!0VfyPNS&i_QO@1QS>g56oK}d-L@bIn!ZUh=J;B>*dW}^H zC&5MjB*TE?QgS_wX2Q9W4cX3*n!(eq?8M^|J1&DqVS-42g)BBt`))kWq?06OE5fI5- z#bZ&}dJv{NL{L@k;?7w62M1t2XL3%89SJA9*%g$EYPDm0jM^bu8K1ltF)@2=<#{LR zERMxUN0dL_m07nFB$Ks|;o_aJ{;7a!D-|f!RIQFCOW*IKV<8X=S4R*oqlJ%ftT}`^ zDP0oM?{);4)gy4eiO$?Di(0fZ6nY?i%$#iuCa8<^ z`OVpNLBM;`O#ZnD-}Ux1->^RyDV9dfLUsO(a3U#43P!i^u<*cRpRtE(Ipi(;o^jz! zn#r-EJ~#*JnhRzd{Q#ug5}%Y)U_cURsGzq$g|gFtiC2BLU2U?s^+s3y3<#7F69&6; z1l`Qs8UR`%*p#-AYeEwq*v7^I)fTn@V2;m;7@ zGU=eTv#$E)bd}ks#-tWPoDbq$p8sDG2$?;8A%ke*(ag0#kY$eE6GNmqj*au=*ah|2-B-FInhPFKFh0P2**!veDbhuIzxKSe#pf91Ow zsw)q{sq$HXw~EK});Wao!7`J=(s`O&ADgr|%=T$wD2rKatWps-A*hGGjjEdn=dtLn z>?yYj_3riHbRdFB+wdv{v~Of7Lh5I@Zuc%(Ez}Aib4}gI;^acg25t1 zO6bNofrv^qi2*qTNQmRh_)3;~+Xh0dAa(9TSb0rWSSvvZ3A9eAgKDNL>)1$xVTvr5 z6qa4^Yjje04zLU@;WApL`RgGYwc*`{M_P9Ohd=iBB<#OYR--%)@vjD_7PKClFGF8xV+qr9Z!4ZMyErb#dtf|_Tn2MEA)^!Phe0{AD0Z`MosLxh<9+x}2G&7|Eep^tL9r)d$ zZUw8lB*QuxkLVp3e7|g`dOOBU$~J~CxJAC>9^skN;nLyKHB;;QqXr#mu;mC!{eoNZjEl~`Lhy|V z*t*ODs275+%p!xsm-YE^)B!oI^m%YEnF1PZ;0wRTBESAHDS0yJ_zTqG45s2ONlb;K zu+OiE%p;d-kNtr{1*qNz(>KGb!BoG0#!o$QkVP~XA+8QQ-uER14NcyY-U}y4t-FDA zIgZ0s3D*+nX-PsJXef+wZ|dqQdXz96?CgLuU4~g6qo}#9I8ByFik&O8-$DS{SqA*U z9F?;$!#~m>leR>7LPPp2gsu_lw$+qAFr=iqYZ~U4R3Im;jatHEl7bmQZ!z{v#HF;9Hlv6&4k;k$m_791DAXjv{UuG8}K6 z(8&zhM>AG?g2LKO}@2LZ3Uf8tsqjW zIu4*|0W73sEl&(!cVmG0J)-N36=+UiO)n;-sENhF!l=)N)R%@;uA5BRD3%>2NPp3l zoifzZAaxr(WrOVisuQLurTL0>nC=U4qS|tW;cA^HFR%;wH*f>5;Fi%!7U#Zj7`KE% zRn*>Clq=N7G|Na{xr~zDZdZRql%V)?j+6Z*&W)37V0zp{?uNg5+V}MgfCZCsaJVjb zOdEEcSnwPAvQ*uS1rhJ%5jw0#@wseu>09UFoJ@Nn|TrkCm!18hSdoI6sT$`;9fUZe0;kI&gktQv%({YL> zB*%<017y10s^E*@d_f<+U3w9WxQN93c)ldM!`jRTP9F)a^OD6&q6kJcRhO^&LZqsZDMy#%}BTy@}K`=ikF1??YD1XQH=O{IHAD0D64t7d>BvhYYI zk5440y!aN5Pc*hhwF2ar@yYUke`7}?Hy}r!EDJY1*=#>z_+oPhOc2}*&LjhJ>R2`_ zh(^mI7*bWH0vJnL*c772;7Zr89Wo{M&<;cTCUdL_s}VeGrp#T6%^5#a=N?o34xtc8 ze$7GGrMZEj`91#5`27!kHE==yi{?C*jw|#h@dnYHRhRz)K5ymLE5;Gs=;&h}0gRHa z=R(W0$ya4*172rH*H%n@@~*1Y@W#>m-(A{pD}4H`XV3oe%k=$A(KAmUMR_D2c+y{m zr+YM{3_E1aq;LAn2S75tyf$6EDhWST`Xf#E*`wN)h&NAOg7WMa zk?x?QPmHiDfBDv_oS_lmO&qyje3D#q=bM?9tZ97m=m++LOCPC^j$7|0`=k$-=>{3M z%)g#mJk7~3AJL9{l5A+*$}L^Z#b%lx`c3^Ybfe|VnR?u;GsKLB}aX9 zG^4zEVm^G#<1FkocIDgi>KWg>F4h;XF_*<}lpA~AFP^@~{o>P^#0Je|mT_R|qyXMG zx9nWAeZTW9P{@^;e|c?(5t?A^dyQ4wKKVFg;8lK3%eg@KXyFR@=(4kzZf4^Wu_dss zdwTpH^J-@HuUG|7edsk7N&fE-fAd(+JeGUycZ&MXC89x%czts1iiz4~GpQ>M!iOIO zy02LL1fD!c0M7#Lhq=!k>iwovw^CHe`nSJy7vv1LU9ihOYQdq;^ zlZ1YMZriwX{L1n{)98#Zc#R$H_z1@N;@f-`DKFfapq?5XrVK%SS^BTf&rOx*DW*AT zf&cTFh*OSlTGvel+{$b*?D&n&>N4nxxB(4`5g>!(cD%;4PZPO4uxPl3)(?)p+Pu4M z`O>}h)yt1vTam$Yx$-%9qO)>51#P)iy)X@3Ga(N(GxExhlA9lx{v>e9Vt10oMbi}5 zo>L#~vGsCxj`DnVPpXZsb%$5sLe*s6YfQXP^OEuB&#$p_$JWj0?<9!2en9iA`aUJI z_R;}%PxX1Sno{er{~Vg?kotk?9<){B-$V=4w2a*6iaw_HuXWs-yOY^90q;GZuC2JQNi+vP( z>l;r!zI8@TasT!Q9j)N=c#OzQX<@uO9YHE@pQdw-=GR9vub3gM$yrYR$2vHIT&}(S zq4epu=PPucai!ef{a916PUd%cja3xB#`NaJ{)uUbPs}{4k0tJYM0N=6TpupeYsp-S zmKG|D@+Hm=z^>PrqHs@gbA|bJUSrtV98vO-4$*6@D(u5be&&_k$8m?3k=AUzo#81g zvBv+uC3bLZNm#?-FYxO7w=x*=PyV?ug6{lDvnMI<)i6u7)%TiHU&D!OPxhVSt5+ofh6S_{2XpfEN({D@KfNV9iju<0VuJmj8~%!a`;ScX5OV)SJ1 zxa7v%qM5t%)X!E;1+CrY>)v18B_eNpqP50zae7%sF28xDyP$!zSruEQ;sqWKMQh9k#vaLXVpPyM=0wy-u zlG)y41Te@9D~3$#b+)>|Br~}8>$)s=okUk^na)!)#Mv75(-k401BMpz?hG=e0?0om zwWs-2DtR5CPRR5_2&bWL@5z)bB(oeg1ZCNbR#8k}3;9mbg5q3dbBC*|P@CDg2U?E- z-)7QOOsBJ*9AZ|rNTLM89d3Xm;I^H{c@sxGGr$drNN11Wnf2i)LN$eDj+tNuO~n>2 zV=CzB*ZD03U$f}w!Gmx+jPy`hU9GeXm2#wjq$6Xk(oJJwH&l%?b1Ue94iX-rw=qS! z0_dwkAhx3j>Se%NagTGNSWX2jn(R6ORrP|0l4x2`(V0hg$uz2*ovqyMrt;0XoWuuG ztn&Nr z8Q66cHp}uf;4>%@*C6lLo<>@9)YDIJLOuM)ioL4J1HCzeVwg6MOJPP#8n2V zGm10;DiPC_b5^>DT)GCyNoo0sh!K7siX1=-Pef};Zi775zErGQC>;J%INFKF3KNOFbf&Uws1^%Wic&VmOy!5$<&^4^1YX)k=Pf-+F%s|=THC3sQZ z6TCv0)%47vS2(HKcRj&5}D<=t+7cg9rx5_po|i{W*?@I;VL4nj~u+2+8tNLaW_>`z%z>-NlK_|W>q*w zyb|$qG*o3iO0jpa)d7N3e_g>%5~MVI47MoL15Fz_m}SW4%hQNg>TouFF#Wj`(hl1z zjD-&euIMmf_%X+v$d(BF=K((_sP}t5wvb2i8!c7EsWvkyo;01@N9j}wOUOhSGe~YK zuU_r?J|go56?)~qgMf8XYK#gesA&`A7vp?Q!QpTQKw9y>%6@h0P*_zRwXUSfa$boi zB+U09jUDF>UtVdc?KeuxO1oWEh((&{wiHNo2P{*Re`;kiJ3*CY%IGOJYR*U=q7j1C zA{Qyy5n{tSOK`=DcnSJ;NW4L{kVGK$OE{*)bSZZq#_D<(9_$%lv@M@{m#s}{=vOi+ zBbJF)!W3XTAba&L{id48yrj~B=gYGvL*{^{tMJ|=V`@-(*V|qZ68sV}2uLg(e13#` zo=s6DrWN*9{lP)AG%eq4pg`ye!ZT@DGBCFiTmzK(})tuV2^2= zLRjqV)?1}>TIS!C-pLxJn7EUSB)pjo)fzqqs$K|1=1AE{SMzcu+IUi_R-Y(nB7jH{ z@;bB_2MLMf=OxZH*5T!kp^gvbBZvy0VSNT`WMpLGB_u;(pNdM<-rTc-#^S=R#!Ik4 zO)P9<4uCj-bn#9i*Q-qj zZ1pOWvmcPr_6B4)>aZQ1<42~!hV-ZgG?-k&4S2KJDhBijkSm_p4{SI(;^6-0m}oqk znb?2#Z|N$$k6MD63Qd8Bg!KsYGdPEl>!FSmUKTOy(El9dkzsvMdH_{Fkg_mIBb#7s z!K8E=?d?^cq0-gA6Z9s#&;24ulmG8|Y%IP#@1uZ6N92Pam*3PJenHLZoO!wIqiB3m z6VR{X{MIt^>o1>PI;mJ$a=PKlj?{ZU@4EUX@ATgG^;wfOih#?TSL`@p*zn_tx7wYI zl>9oz<0S4FaqHS8=cez!X#PppJ+t)Tn%;~XwOCo{5}{y-+j;#bmf;|+@%NX(jy&mS zKPkRfFJc+H`!bKczc+vU-GqiGz58PKxc{-|oOOpf>8pSFINmAwr8?n7x@Xzg^ZvEF z{+UD>OTHW{Tmo*F$-341UMW@zT^s+m-g-GKbv<`OfU( z`UI!_nJYXK&fWRu{ii+pRdMnY16aW+RqT^LDBt|*dihk~(XdmB=sUYVVX~7paDMPy zp7E&IWqfhIiKwbLjXUj_$N?v0Ttz)Wr?hRO6+ZW-TodGWG ztM*0tER!xZbny+8mo|ehV|$YRSgHB8;Grh}Y3Hr&|J6{@KK9{hVB6dz$FGIhe4@$L z>^}C+l{KFn{rX=D%?HQ54`(>;49_=d_Tkp=Rd823PyJ56FwJBdUd_x=;wFOr3yR($#B zP(k7E1*L0^@;8DK4+aFB3A%H}V=`l8?A>)|zbRDo^LEZ^$}jR zC^jPGlW{?9_z4FGLES#N=!dVrnA$V1k6M;fb4ta%d-gS!x_p2Cw?EyW9eig6>0V>j{a-zXkY@YSu23c@|9)$a%-LOOJnEmc<)J3Q zsjv2xk0CbshiZ*Db)_)g_C*N)!U9M&i4QGLm7Gf>4C}@YkDqU z8;d*C5%q%K1!s85=I<>QcfLHm3OUex|~ zYacE8-i{rnWIJXzI=;G|-d(mPWDviwXXf7ii+2ym(@x)Lx_(|(x<_$ax$5&ZLrHsP zmh4-5a)!M4;1_+@Ut_B`SH^|}AM_8x-q=kyWS_(foL;3KVu!~5CLg2eip~cenmThQ z;Tx&bvUjq6|Kgh?!OYdCcl8R7H~*IOX@pJU^W;;X-lXoVxVdTJ)D1uKDbI};J}H?q zb>*C4X2g${@~D)tOtLef#O~$0hszX_nBoiR=kgzOI^7;@lzkEuym!~Z_(v0}g&PvT z3kz6T^Tp-K@3_z37>hW3eC^2sokQ4Y(z5;l-_4duJ+{dF;<^3AD_KUA;&XgNRg0CIj&27AN;c6^w7gge=PS;@>zPajK*}_9viYFUBFvfDPQ?n1*?XBqX*+> zw;bvE;Sq(g?ran7$&s>U3zqHq>#euHt~q$^Q2WH;Gs1uomhf%aSV>zLsArpVjB_3=O6v1HG8eMR?5 z9YhPM3zrWVusb)_PB~s}X}RruZ||~|v3Biy_Dt_wrupsA2l>|~7}w_>I#Wmere@F6 zb$S0#{&ekf`-&Z(CVuxtc=6qbg00%#Q!dlJHm%ddG|w$h>H;hnZO2)4hX=RQ)>1iz z><7gOjMYheV`K5o`;TkjP*^+A{u&dojz>0cDwuM)oIe)${9;S_{rY39)fq1~FRLtD zy@Tg%yJ%g4+-eUifV}#4z|g?6b=e`^pZ~hQyz|XF&A+|I-dAX&_Vb%o!a*Pp*>U~h zH^0|QcJ?~0CVovREXuHU?_Y{@fbaKZC$P3?5&HG*dxOTmt8nxN!(A`J( z?=MR7o0t4N{nUo+qk+WgqYE$I@UuU4d#uk!Tk7AiB$DlfFaK0rx2&@Nt)A z?wkI6?MeRr&Qb4%4Qtl#DNjrI^hB-2t*dW^@oN`+MzdQ~jUChcIre9xoc#X4>B<*N zS|iKX-W#}4GI8)qsNvinelLD`&v$9aE0tS*_t|ri8_K@<;P{wgO$%oQX?+l(>C|Nf^ZR|EzzBDNkp z7WfA7!^cnD%X&PFBOl+pe&q8hLEoy)^rDi90`aT!KaYE@d~`j!LwqwdvdqUz_RDK* z>z8-F<=Hrd>V{}He_!*)KU?;F#dJ(@S}Gp%BDL%GHhoAIGwtg@Lt@^wI1W! z$99t6-nDwo)wOX2{x|>XexJ_$__lO#%l(@T@4ehs-}+h0Cc%*v`j_mUXZ}Bp3m*QX z&XcjK+xUrM_kydwKdsbc-HQm=E_<`1;m4NULlJ2!0xs}mU)cEhQJt1tYkmLN#F9Ej zD~8KL!=YNCE#N$*irKrrQ6JE@oQ+F!!<;fR{2Wek8k;S{WnX@a_k0#?<)Y%A z&>!<;2+kQ*);$mTCI_+i)`gWei`7xFEG?m}tGaF_WHuj}csNn4Hl>@Np7gysmo9t` zlJqu*t`>{?9&&$`4=pKpn&<@G4G<4OwBH2w-aZp}V+^~67-Z3mQrM_X+FTt@gidxz zbYWpIYvvRp<%Xs$C(D#!^(pBJCjL;+Dx5XzeV}yFw1Y%cDilkgsbH2%x?ZnesMDOJ5}l zwHADtM30mbe?F!;E3y`c^OTZ(fm*k=lwP@^!#+(*g>LhnVKnHQq>a%}-S3Mt1>4Dc z(X?>&NU?chGOy8TRSI-)j~5B#=N%UYK-*-9_qCYr&UIH7 z%PBvWHXx`Ywh!wsz^DV?bb-`O_FQn+(_op3=_I30Qg5}x1*E;vV~f zJ`S(m@Wbpx+_cOFnFLC9Tkq(Ipu_;?(pIU2oO}^M>C{dcGBy@qi%jAk{fbxaQgSY5 z%u!EhBg(=hjID?q1f6}N_jqC~F;_3nDv4|r)Owqp9-4xE@a$r7wknVazPpWA*laxy za?-oeLZNZ*j`}4LXkzJlLy;dReGB3iz%Y62u!E!ht3F|j8ZR!SJ`Loq4Fa(MnxSnx zS0dibQnI)kbhVplVhJG-)e?X_h33Ie<@AwAET+6P_=N5X+hMhdv?QI->Tak!5`GWE zq>3`DmiZ{P3PptAKQ@<)*~!5=O(0fdiJG<>>rDCVu0pXx*sC6uw^CWf#5>937)sj$ zStP|M6#OdXsc)3elnZpP1MY7VA_jRKft*@QUDD}F+~FKI`K%-!F``A7i<-qaZxmsa zsyd2;-F!hccBc5;6ozCC3Mc&A(pOe7MTvf4lA$5XaBy}>E6gRy);#mt7U(0c(rd#C zpuYtfC5}O%N7+`w&3%Otue;>jSA#nU@OY4325pxpG=id}>dHtymSMDh&?lQ572v?Q zeJ?FqO}`;xLxapt>k3_)tPrt0&dwXaMzSct*_sZO8jUy1WgjB)c4KwjAhk+6r0pYO zI}x!2uGLzPXy(DL3_&N$*i4j#N=27p#Q?>WD=r8MwPO&27y_|uus+_90iy#?v)tEP z36`+k+#vbI*BIm79uUvZJJ7&>aF=R+5kPFT-SY{Pwz-{A}Cz&*vNMJ~vE z(<=wfZG9nu0vZ4`_etPZ!pOzZaDL=~XdxJH8GYBu{fK z^XvbT<1F#Q*v%IO;wdJ7`g?xd`Wr8-lxda0_M*-^n!AaA{P4_b!NJa!1@Bzu{PacK zuE;ZkafT&&Pmh2d|8!~4?ON6P;L%t4ZOs4T*VxT%S^2lm z2y^b{Szp^DID7V^q&>~o(!EOhKmFtAqNyJe%g$(RZG4&@IrNji-pEL+3H{-dUwZU^ zIPTa?H71|Y~A>*mels;_9L91>hkj{pX{3V zZrF{Ts*j~Z9q)fc`l)EgHK#cBEhGDShpzXQJ@MeVgU59AuSWlP=0K~kDmcb}LEqkn zSsz|!8|X?QL^8k5{Y=MIUHXVz;}X}ln7^KR_Hsg!`>l(Yd>M~_*&!U*c!nFZv@G+; z>hvga^udBFp?%{?)UM&vncrH+uOE+V|GI!7{CUaI9NW$R`l@@#_g5iVdV6?N-q`AO zTRrC$CHG~wZTe}`T>RTd9ZwGnLLM}GJGg%Fk0%2wtnPQ0KVZE7uhOqRt$bK><)^1K!zj;_9`$1M01Z zFaB$CtvHx@*AUWQQTTP)aJqQt%DNG6!NBz!S1vR^rn4v4g%5VROsv_dea9mGy}^W+ zw_|>7_akgv{MOxqqo4ov-MMR&^1C6+-cWCC4IOA&y}HNcFU3D1+YU8d-@WZ@o8_-} z4(x64T9iPmKO(*K;>qLKBkSYtq<=HDHz6Z$;oU9IlJX+<+m=~xn){2#zMUDw4tB)J zgheNQ36R=5O+0&h%H`TWe*g5^hBtm0S=Z@H-n#ed=d1rpC%*B=llBiIKXIucZ(P}S zSMlK)meX&B@AjPTxIcI<`$b*%&FAZFBYqxRuK1=su$yi(TqC*8n^Su(zinZw_d5xL zk{9J4)_88X%J_f0o%c7}fBg3OXwg!tRuHtc_f}i0wJY}CtBTsAHZ@Cw+C@+$VynGp zh}BxL_a@Zd^K-xT^S!_4-2cFRPS5G-4@vWW=anaUUf1=wO#keXWh*E5@#_&viZYfs z`Q&O{GOY0#Y0H{!i*_lV#nu)HArcKE$Ik;-oWib^9Zm=F&v}+98WF|oV@}5l_f_pJ ztX~%Eh-W|?gegcOjMofF9FaSsWv^+G-(Wuqk?RC_LB*KD!Z1Z?yMo62UUZI9ZoFSv zimK1FG5FkXJVux(k3s}0E5t%<3xeY@*_YZS1UEFaGD= zBd71G-7`vs4Iz&bD0RgF6JB?g$8hDFl_#h>u*oHwQ~cO*FN8c%JZ{pg!F=!~`JSd* zCPU5R@w=w9#xE|uVQQ*+s*=OxpsP0Ay(q)RV7NM6MG9?`&faD3#%yKwInK~v?ze|v z@vp-2cET74L^y|JA_d9!o6r5H2pBNd|G4ogTlEz`}l1fdcVb1&uCn&*m3y^@QrbiJfiGoDxM+jKfu6Z%ds zcO!?|9||jwSZcJEr^3uAI7p!X2={b8mfFKx+9O?Ns~_)J`pM0|rd1C51707QHvLmw zgjS#97))0U<9Ko8abC%k!$hqYX`x*yV9+r9!Pv zS2wkS@X#Od!Ouyobw$Q(n$Qg${@d-mv@xY|v4x#4vpfG{h5G6mJ?1xr%=8T2cS=XR z-gL(GiKW>d({5c7r>V7jI6ll}UlRDb*?bA`Q0aL%yeRk=t8aj^tCbQcD)aqfXi8!` z|FpKQ@zbtZ_@Huv*4MV!HOjBHzg?dZKd*Sb0UFl?r|Vs4d^kJwOP3n79V<#+{Z?3& zucd|1C}rSA%4)f2ti_J=Rl#O0mRG;S``|P)X)g{BE@E_(A!OyLF?30a$jrx3J|U)_ z^jHC{P30uvwCJ5*qw(j)O=16H*_SxN~K->z3nkJb`XQa zvCt{+{>*11i`D(d4jf%8Z2d_ydbKpDZ3i0Nsp^77Dc-*4(~zn}lX$HW6|M|ef~k%t<&$&UDSyNkg)x%<&vF0g~pm!3~y?qSVx1)AzR;OlgAYt6ltWJ4n;uUmJNiC-`|0=OH+7w#>| zp-egwV_@Fj;;h;QREltiK-VqQd_`+gG)eJ7;80@`G_V>$xahk;{2KZxQ~WDO!uD9; zrg1d7FFfl)Z((a6u#Xi>WqODO&I)vS0Cz^WJ&nLbrhyXb@ui<8yvAOIUM4<}|4ktG z>qo1HGqxk0P~ttyruVBLJ}QCkS?g=^E|C*CCpIrJp@PD=A}DI@_`;I)NEQ+;q5bxa z4dd+tb&c4WH7R@YPH#HOY1wyV+oK2;JV+S(VIyQPIk!M2L46ltbL!|yzdvC@ixt>a zeg1=Q;+An*je-7*YUAhepbIq1*2}(=elVrT_V$eU@U}%h>$c9C<2Dd;({l`LBVvv^ z0%`WHZR~}1!}cSVt!ln1J+n`rl;DBO96p&zo;#5yH6SSCaN1L;RC?a`K$t=;AW(Q| zI+gal`4J&tu(FlU(8v*+ER2h)&QMs&A3HT#u$*>v%bn#;uqg`qo&61+WJE_pBIc69 zBhj41D(X0Dtn_o;#gvlk!ZESL-DlJQ^}|x$iEwLJ9BYsyMVX6=odDN*^dX-~L_gyb zUU-Di!4XO;6lNKO8sKw~QzHA3n^0k^R1vT0;hs^eY&jo&Z#lhF?Mp?IQQkEA-6-eI z>dv~geWu_Sq=EH#dGY(S=DaK`azv`m$Wo9^jG*3PO?|TWnl}~6^C(e9PsZmp97Q}a z=BdjVGiOnVSPgTd9gHU|uX(awu@7$amJJQHq*xQ}<5RTz<)YDHmaqEXs6{y1zR;fD zVIl{OxF)6#%dyo?9z4=LE#8j~#gM0jNIkb_?V;KzA7Ti`@3D|5w$t?_tqi+}dv$UhM5+SwfhGhvEhMaddb*Y@27Q^6<6LHTP2_wvIi*ZN?Xsv z>w(O0N~({t&OG%q~))D!!e};E*=3i+`ZZ8B8>^cug3jJe?)IHD zZ{J~WN2UNjas;-#fzN7Tr`Z02?p?u93cITc3x{!m;gaVem9)Lnquh8#Q=$MCg{ZYR zIj_;`Rs?Nv>L+0ygi>Y|+`HXQ&s$J*G%lo2qn2#k5l3PwB?$Kdfr}$oNk+QvRF&U# zT`TJsJN^wY;wl zudl0{V5q6C)zI}j<3~QJETkZO>G&4;sge^xAn{I`GI?o#zhd31)VohbI2-uwtPgGw z&C(A^WD!oV6ILnNhbaf6#=~g{lt~SW%lh#<*qCT%bJuh5ODhu8jZfrjY)zg|lr4Gl zNIY1kB_Ee5aticb>a}(*B>sj_8Q&}E^k&kc3W*Q>^H6;dX|dJ)NCXwiVVS};yMJth z54dSLF8i{jtnD#)G(vm8fK4HOp#8<;?|>Zx2JB4PuCX3`o8!XZHzosEg?<7=zTJF2 z=%eWXtUZ{C10KR{Qw;2K<5PA+;8M6S_q}H4>L_Px$n=Oj0zHtIb@BEf@bT^NJkkEq z!b^8m%B|XQ%18E0nX%cu&L(>FI^j{R4^(|w?haMIGd}OJDUZQ zx9rs6XcDW2t)Yj;Lcd$gzgXe5`?u1oX?~DJOZv%a2%bsqw&>}mR7j9y*An7!pp+>P zDRaRbO6;8=*-VcBv+pjK^r6$aW#fK#H}Sc0iFNaE3)!_+^1y>PPi9qqY$oqhJ&d;u zojng<*pZXqP~z%DJspm$p?n$OE4Osyo;XuAb9TTAmw3<95?8q8Ur?*X@{ggo;d%ukMQ*GM$y=ult@+G|`=hLm zO+v-(&DdULf>s$zJ-soSAI@BACFt2!U-}4Oaje)|I3Ku0zh!>z96eEW8Lh7wuTlhO z_nR%d8iLHg%lFVZI>Rm{O2l$GC!gii{nItq8V(bTQ~T`X5D z-OC;GrN)T8pR2hlz31L_?647(%d7e@fcTf89xRK!gt?5xkP89%p*X$kn*AU*eIZ?L zcvGX>=G&X*WN|9|u4(p6Znx<90@lL#FEjS;@3dQys^QCl0>~82&01*sh$^vH=HQqMA&)|T2{B|x3%&9bw;#^3gKGQqNZ*^9OI(Btyl(>E zZOzon^(OR%UFh|YJaM9&_tS~~wOQjXBLU-)7zV1a3^vw*FnNu1h?vMgv@)9{*Sp-< z{4VQ@cT#D|3~O?+O+q#15$v1sc9%@(*ycdD$v6>T>+{pq|BUCq2CFW$i(7t3jF60B8-_~C#a zA+6O0AqN!Bn+8L9`RunuCN*H_L^hqYB;n+uv&d?K9Xjt?<`PhiuW48S)46ij&Z)7u zx^P+rRQ3B-k9)J@{7c@0=4fQVad%JL4&6FAL!{E-Lhb6ca{NYBjzlf3QgNEfP+}qn zQpHJ0HFc&q`#1d_J!MQ^`GtGEi=KA}hg}>*E6ZNxeN$rbb<7b^z{GaO0@}z@eI1hd zpttwT6Yw)i-26pxJtoQI{pYv`?_Q?pH2z+U_}{98zhwh^2|?n=k^(T;+4jk*Mf9Cb zFYEg+U#pOWAxnnu8zR^8GG6~tC4uxYP&OBn3fjb`LSfNfy2Oq8SY2}hYd0E#frZzY zQS5l2HuX^Abnz~^1FW4NiQwd)%=Ad2yug`m3&9Ha{$}Yv*#hj0O@5KyEw4pZH8G+W zmLdQ{O&S!1z>;ixS%&b0b67dDo)ZTA&{L6jm-zPknq!T;D7U>2p zLX*J9Z5wyiL~P(S(cwZwFCfxia7tf+>2eoW5Wo1bfDPjL2LLp(WQLlb!~m*B$eH(r zzryylk;`4W^UjfajD^+KyOIawQnH$yy_mdjXrQEbl|^@}de0!2=p2}p6;=R-He6)! zao|6X{zfpD%-c#`HoZ*%+E=i^lGbTefw1u%lR%a54?%A@kD$>i;F?ni=+c0 zbHS3l3mvX1zze!tCId!zELTbf(CWrIg9xqLM36#H&hZ8D@eP)hWiT&<-`OqLr5)${ zMhk#q|4%aWYsHqwp}ho(Xu}wA@K~~GgWo@!zckqf|Q>JhBDZ6t8| zYPI;NZfAfW>*6JzC>`MYe2Lfi-)^`A87Z zj6k>10nog87n}p+mQ4|#la*RV%K|JIcKgN_UqVzM0HnK9NU#8{AtdfFo(}^&M6>(n zKmU1Q0TL^y+ojFq9HkrN>i=L7dgznpdnZc)qrfzPuZ>oo;d>8=0YQ&Uh;aiVP&Ggx z5CqhDp(ThEK^>QtBAZ@2@_@)A2^0cFHnK72pR4_zA#X{%>7cbqHX${;RazAu*Br zm=QpM08H+;KsEum1;G1zrxWn)+#M-{HhMIGF9PHNGoX6r7JN&;ara-hv8WZ{;u_-0_&v_W3p~@@)CAg3!@u!P`*9vc@&|yCO>#D05OTwgWTYCM+O-NA zfO%<SN4wfrfX4a;-pO_#h<|FeQS|t$f@uc=Bi`1(<{heD;STAXt+1SdU$^wZ9 z!hWFky0Kv)AxYlmSM8OLD6W1&2dq4~dj;;O1i3}=e_X2;nb-E;HV}3Ue5dC7{yoJl zco^F70@?cL#pe@7OY+eM5n1$7)_J{SSW!Fn(3Q)C9 z8L^L_SUdfeSNKZEtCxc=#B%@0WOUg+7VPzP+VC-Lljsta^+;8tSE8d=*-8CBcGD?1 zXYnZauD5A z=)a>D^!7wqT)2R`?WbK_P5O!c>|A}56-*l25F)H6D#wBLnDU+)@| zaP8UyuATgz-hM-aMC{M%AyHRp`dK*6JDA1!S3zk;t$zerb&Dqy`bm?`U8)`blonZ# zHb5M=HU^aMcTH7iGHjnb^DQgUaknk<&?+ZqgFEeN&b+Y$EN@v~AZ1SA)(3uSf*jt4 zJ5S_2mI4Wy`%t-Zaj)`Crsfz)d#jXLUrBhb%S97*Y1<2}e8>a=wSigY0gbHklO1|S zp8U~x%=K^eRNIJuVA*_xztADjZ|%T(aHP4GguOvCTuj|7p**<9#FtM zHtM17^!g92wB~t&jlGjK;+ki_CDq!V`n7|-+X4CF;j>qvnsix5}ap{ubn=%m5-yUnMnVWH_8JLi-J9s-Jussb4Ll|9ri&;>fD64+o`Rdgprm?{Y z_mK77zC>kN#AI}?(ana-F}$h7~Wy)06SWGuYg z8?WQWb8Aiu(_-Bn#TnnRC>$`F?|wC!>_NW;E=>RUD=vXGM&aV+lN9WFhmTDq@sm*Y%3tp^&lD$_0zb*rneC*3$ zi%tvsjjuUM65otim~r6}5(cr-9NGm1km8)*8aWXXC7>6*4_zXLRxc#|(n8=e$++6@ z_6$kblaiE@ost3{<##-olH;B;UY!X@$?ZKLoI?rqtKz;gdqHKYG%D1ejtufFb}_~z ze=UW~4UE(b!{j!oE{bJ(a};khykSL{zH+ktDh!v0!$^^ilS;hOUZG^4D$PK1m2-Js z?WtxF+h$co;xqEHte&i{H16_c$>+u_ka1EOb=PwJeOQb5xD%Aw8cxuf1L zzkYh~P3oK5E*F|JXwDUhsc965Iq0J`Tw@unt1kR8@^cMe;!}cquU;g{9X2W2S*a;; zY#!dXz@Diq{h{xTaxQ`TfO$5h56H@;kJ*)PH&*{7pPFi!rkzO1I@6H^{_^)1W9QYa zS#UZQ3BAc^VeIw?Bh=5mr83C-Dh+xhTH(nx6)mbEoR&#hY^*TN~TQ!SmCPG&|#v|2$pNrhEf-oYlKo zw=hnfEtgJR=CJx!c)|yQ>G+y7+t!a2X~aC#gk|Z>v*h(#lf^4C#+@FsS@Krd4k4HJ z$=(k~g^4*AnD9lJo;^HkDQT=%tYw~YIGyIqWZ_ltlf?}oA58t6Gwisx5%h*~Pm${+ zqp=FwjZML%rJk{CNU*wmn?u!QM#ru->W{Hlkt5yM0jVc0|47jlUU)xaGR@t}aoGW< zGM&>hS|g_yRgqn|ovYX#lswo&`WtrF^7>bH#_8K8+jwLqP^2^N=SFZajdez-MeMwg z)hiT@5{i(Z_6fofNWaC)q6EdCZ*H#vlE*ILN zc6hmSsH=@G-6@{9=g6;U>)|H;HFrt-u>ckUYj0Wc-wA)?#98w2;q`(pN)E1@7sZ}O z2V*Fkc9?RYEMFX36ypmy71@d}IQ55%pa_1~)hj#1E1Tr2;`o8jBbR8+h0-@$sJ2rm z`brQC{mb^Oe;i-qURi`!G%MOfd)0hY z9la>w%I^z8EDv1+JJkc5V|O>MYDETf*q6jo-?57nG%<6-g?vZ~x8(%wSm4^^5GBp1 zb8uB?mV~ZYXwEKy+rfL@g}iHVy+a&_aS4S1aSE)>LIkbM6Mh4C3aW*!Uf2dY>?@PF0!$Kq( zN#Sd-Qo&&JLpH z_J0zeD1YS6^mn{hl`>Xdl*Hpb5dtk6W<@vD-ZU3&#wzWzgtRbt5h!2LCMWHWtY3O^ z1r|Me-I?=a(`x;k=k zOo9xvbgbkc?Lg#{#0Z0HsIAv>^7P`vkEw)JOqp}o-Pslq22N*nk)y?hDlA@IJXROx zv|RX&FZRTnn_no`pMQ2@xSc8Ax1#pyO{!{EHmq-I)A$FK;$vOR{&8n^V8ddAq`u2< z;F(o<4o{(~V3NNm#q&&x4D!-aNQObeu<4tmxoU+oHVG%O)8P(O+QJm181ZAIPc8K0 z(Xcz$d8P8W&<*p7BHBZ1D6H?|qi&=V*Bo+&kAU%UQd-Z9ca%cBEPtc?w^8}}v`p1l zq;*}N*DnaRpg@B=%*nR5iD9=3GU7L`Fv!=Tg<7%>LqrvXMyq-j zV_qrc7EBMotTyNr`faQCMCM;8Hl8yC4A>70k{Bio%uT;O#Okx5PL+WDqeb@u{EzU& zrs)CM!NZ09#N^gvy1CZF-vJRlf%#s5OvZNtNbd+r28RZ5QXY}lj}dq;*|o543&xu5>Vw^o5-Ss75lL+3pdU! zy|g2@BApu3&@wi~osZywm`HtDrn`g9r>@9TldVb_lA}r-(P3sT2i0Ojhcj0Tfl4Pj z26pa-JDXy?V!iN!O^#i_)4C|jvP~b)Br&mKK3jw1v{hHRSF?x8Za+3v2#CIb!i~F& z5C(@X&h46sIs_!2J3A&|Dl*yWqwrxoGaj`zP`vVS->ljJp-b3% ziyUY3hu0>QnYhmk>2MC5+NGoqPL5rEBi^6U(W9r*-;OM`My>sV3Rj=}@ySfJcAThW zWhLRBr_n1X{qvi)n5 zJqfY*o3Q{5Kk$2%uyK*ekeOt}-!Y6PjtKLXQ&tvB62)kKDUu8r%cghbn$}3^r{g+* zee;QA%ujx4>X>y0>p@XYx@kpTfE?v5U29YL@W+hd>h{PNyw=-kHSNQGG|hWEP%f&KjxdW{J19?Myoi+B%_6d^per z>aR>4t;zg(_Oq5=#O%1^3x%Jzuh@f5K+o!is|uXlvncco4S4mRWnxYmX#k&-t<1xz zX;sJ5a`Gcb+5Z0fwW~(vF+JJeRPQHQ9kVrYDWXvp?3}XX8igZT`6JOv9t_kPI;SV> zD%wdm8PZnS8f6R4r!+#zL?X}t;bQ+POHN6AF*oPD5tj^oh!DeXKt|*Kk;87+=c?)W z_+%SDfc^bM+{{-0k`o96a+t13KOH2rA7W<{O_8m;oka6w%n+nIXdorx9EpYk7)W&= zQS%olKZ=Uh+mVB9PK3t$RExzUA?YcunYbW02?x@;g@tO`tj-IQpjk!Y&w`LN2m z^st$+w%kz1G$Me#QH&>&v#M)+ocycpWv4pka+X(|UzSsVLKz-CNkUe0^ylmDbmzm1 z;(pei%IOC-RI=1Vi5aX~-DYcYc0UyRGQdXJxP^>pyJ-6&MEUlT%T$b^=1l~Rm}``# z3vxm;mb*X+PPSU_m|4v>BR@Hi(ssEQu{5(JsV+n-%r&nYeyudZ$ zdCUh0=3!9I9OEg8Zl1O5&z{3#=bkNPpa0B2-~FgJ8;`(SrlEgmuejzl@hS@`2D^vP zJk~LjlnPP9(6N-86Sh6h<3)ELCCyQIm7&}S5m6%2Pg?53P>U>hKH3w4o2m)6YAE$} zxFq?7Aw-P1J~p>QE5nQFQ>S^Q5r=0I>$H$LrTvxP{da|$P3etDh(`REj|v+fB&-jJ z+bCsUH6HARhL1EjX7guJ+SYt`Vb012cb9apWpvO$e<443-WsfHUb5hy_d`1dfa+vr z%2x(_Ma(&o!NbgmABFMb=&@s%da`xEcF{7F(8E%YIknq*@SAGoY4;f6fX zCe_3{B8G*tOS23&A(2$6gyT=4=6TMPq{Ycvg0vWF?Yya>2p*Ngt|FYnT=rn5n5pu3 z&O_cFP1|T?WfcPvn89QDG>cXWeK+$RY5@qm0QHJg zZ8KFj^NRq$bZ^$98!PTVHt69E=d(Vj53%(if-A=LC0&Lpj`tnm6KG-K8(N9W6o-0T znz{FEy%gC3#FHRk-7FExGD^r@HczczGC%_$gTinpEfl)moo(u{>jDox!XNV+*hB&zZ-oZNkF0q z0)b3&!QA*7!~l5Q?DCGo`L_k?mi}umn8~bbe`-eOf{Dvg^I35O0Z$od`V?r_?P=S5 z2?T|}xJXwK(d~g(I{<|VxW&LdyP&IU!@Kt>#$`(mB8HvW>T|cF|G)yq?tYrkEwNGd z)-}NVEI92h)^kBbr6Eaq)#MYSC@EHp(=vaTO#tlu5ir8lAYIssROg8HqB=2eDuE^mPA@K>!Teg=cdjCVZJ~mh~5I!Ol|q z-Jot0Ko3izuo=Qz!=IP!`;!3)6d>D`X!#cl&bx&C{= zlDWTV8^PBmD4;g_1+d^ejjjV~h=2;`9#0^93aqk3>-0s9fK`<@i zp`=^yBG#)Ou)j;fBmf-#OJ@nB71{L`xrg1`)`Rm26EblBPN@dow2qD-pMs}QOGnXm zhFFufkeF`9JAwNzs@u%3>8t!ppw*x@e-ID00dpHr1cWc0nma`Ydk{>tNGC$m5F=$F zwiLOu33MR-rK|kGhWZcrVDUc?eF{772Al1mfO+&cx&oXKK4^?H_DUR#&TA(j4&{Z% z&rg_x9O|8yX?-L7S*)z(Amcww0FaYa%mrsyAz{`op?IN z$%Li9qxeFCaOLX;RgD1s=uXKo)RU1DqiZ68!Ysk7F0lNW*ap6+JNZVn0|}tmaNTCz z+E8+;Sfnw{C?E?1JOmH)2t^F)2D`HWqvHfm;vnVjrQT(Guqb0f&_P}uF^Y^gzQ+=@ z-|uP&fPPg9N(pRqoq7^Vc#$NYAAe`aiUD^L9-KBm2Vl(;}8xse^QZ4KArn-?79lV1M z0q5;Iq1isJK-;3PI|^tDzm~ldGVeI4cmQ(N%3u0&KI1R42@oZ*aOk>mTKHn-0tY1p z?ifJ;UkM8b1m4Fw?*0I?L}zXOP2d3c9UsdiV)rnx`)~zKuXLxQ1Fu!*=Wd3`jgLE! z@-F>b7KeAo@g&O3xV&=zZ;l4g;HiG_Io|$sA{`3|fdAokFlZoAtl|x8{)8tu$g$PT<&dR2G(S@u@&hb@yS8oziFhxIZn; zi4E$0y*JvVy4>G7Z_=o8le4TmVWupcov-wknkg0Ui6bw2cdfhYSGv}Ja$ZM?EC{TH zNjRFDRFyHpaz`8|igW@SvlR_S5~tM-492CVtNrM7LzJLDC&3chIR-zf1(OSgvuU(Z zT9uFot{Uml7t6a@b(n=myB;DdS>3v7kA#Wm4bNZ5ry2U=&S{F9>NVqXG}}2N_;aHl z1=pKJ`9P_>4{tH3EaRE(du2@>++q* z?}qnn>-53Q;iHYnJrDdDx(}Yo-iIl6dQliu%)_h-SaTOUN#X(U6+)+^M9Bg3-dvl; zkKZGJ^6yjQBPEWK}Xjye*pY`TP@VysQF(QH_qQnXn~r>y>>dTzV8Bj2g>HLqVh zL#mIMz>9rO`!trvaCEtQ$Nb4F6tSMkU2qs=2j{KZ}%@D=}YyL6eGO^wb1^3qgW2)L^3-p zF*~+fDRB*=-VBdu>)=NYr|9)HzqP{jq2cTv3=g_|31vN4mp4?@6OF9Hzvt$#R@+cl zua0ieykCI`S~7Y4R^sZ~oZQUB-A^RqEOw`TE{N5?)@4iZgtvWFOU>YQ(9G$s2%dy4 zu6ep8Utr5`0Zv&D`U~%vt^t=|W70Bp)B{f)WviHC=6{mJHQE-JC@T6eG2N4tAYW%oZkI)WWza-6|u6f$g`qbJs|jlD4x(IG3Cq zeM14cYI@n8Y2B#QM5SAzp>pz{-Q*|mhlR=f=kk54V+t=cgsT&B=mYqZ_Q=&WRgC9R zhDO(K8vezK_2=mDk#V03EZp*`>PO@CRG^PHA)DtQ|9Wf)1avKeaA*?Fw>WqwK1@LVvy z&wt+deY6BmBCs=Ych&5lfVmjrr$P7|qQxmx?@|=aewO@+hetMktkBVmRn@pHNGPrA za=L^f8w~?5f{mNLFvuSGkEF63B-Y$dycYr)I{wPAYarjM@+x%@>mKW8Y>0P!sT+( zbYFeVF#IJ;P?4ln-kR@Kf&Nb~`>xjvw-j{cqX4z{i8LXhnI-)p0cIi74VGYhiwZm@ zj|A|mKdqgvYj{tOQ?A>Wj&Dy{5I4UF6XXxLJ|E#lS1V(L<7k^Mg+tA`eI)WmP~+y* zS&ND}b3>1@yT7Eb$MxD4_!>+WYb&&xhsDEtn==e{li1y&S+{;9DfH#uOwRKausX@A zbt=l}`Dn3qA;c25bfO{JO|}iy?8wwJ_q-nsCdfA}TxtRZ27D*CDD#j3DfPf0JQ-2U zmi=1mgv4MTF@8MePdWFT^d{pm1u?6!OIqOQJ9+>W6d@;JEx@V1RimJ|w(!QRFsFcV z3)BYsqv#kEvNqv}6Y16z@Er6(3I~6K%Lt)LO6~r=rgzI5T^7C`(2t|UYf5OR z)2Rh`dTmi9tbN9_w(X|xOG4?W4qiU}7pns~9)q>GIS<163Sd6tc7{H#u8v(jIPS90 zZu&U@kg@75$bC3&&Gs(?1Ib#?%)*sTNvFu87CLLGV`fv|wT^HS5xvq1)nf`aBMj$e z9C-QYFzteHFpA|<>3$uxJvBzS$byg05xlKxBPSAQP6;xcPhVe8u;WQ)YxyHdNN%-d zVa`q<3rVJKKvZAA)t8?|Ce25&x$1LiHdv-PQP4Je5Xf?%0?QZH+k0kP9VJ$t?mTrR z!sYerLh1hq-1Smr`cuyFFP0}!S)tXDo^$cQn(C55>ghzF1RjP-*)t0u#vuD#f6|wUGGG5UNrp56}TYh}YnS2Mt`f9km zf~Jp7R`6Kf0`5@+@D=`sJsa3f@#&>FUEvxA&X%|DVBFi6##&pWJZo=$5lPV;Fq&2R zy&U&s?ZuPZAI8LF9k4NGiV?;`@XUBSU6Nxa4hM^WP zICBo!>Il0~f$)!?dYNlWsGj- zBY;+_P>%jAneRW-ODgSUI*E-7)a<=l9;*Q|g8*Oc4oA-4Hgs+1-ePsjmkwcisqFtk zcBBoW_%5jot!D9uNEl@~i8udFnrF%y$h>(K@|DFVI%}jsKt@6$DCd|h?Tycuok@xu z0b3F+zZnsG^)g`cLhI4ik6|4HWgLEEE_#szS4`9{$nHm=F8!;Kbyp{dRuT|7TaIf# zk0>^?1Px0FTy#4hy{&y^K0AuL^^Ot3Da&Nq7 z59KL^=QQ3`(fDr|MUcIxh6LVz@b>!}di{Ri%iCGHe;+AWjV5LQgGoi9`ZWQQ;;ZT2 zv0{t{LPIcnSkA?RWw%>a^tBIrm^Z63u~L{IIzvILxR4c5d^eWR8onl48`dQ?pps=c zHYEE)o0+57+w7msBF1l62Zwe>)XlI^{)U`bj6u!c=$Hq}CqJA2oCfWynOiwIjv zdNk*QU&kZjmkOVHq#N}=Y$RzpU~8`@eu6dH#8x6?nk<@2`HKq;=iLj2;E;c@WmN^uigZOqp!pFA93qz2)SEGhVqtOfI@jwCN z|6Z!$O|d8ng8M^y54Mub;(|4iT-PsXdW08Rv7`K?#OdmrSPLTItPArmmio7VtTU#Y z_fnGLT@&pQ*Nl9&E>B)4JN@WH2V>on;o;u3c!YWzOIo-Zs;c^t^|t_Qu5k#txL@v> z2~4Gic-w7NV(MxH9?R(lD}-zu)1Sco}v5&EEA?Lg>moS#LN;gnKRCJ)z6?gDQ zL;S6hSG+VkJ7IpW#z_K0A5kK`jeIi%S3k8ex^&;OqK9iSx2|)LB5p#snp%pTuY9DB z??;%P-f|pWwq@-{pV!P%n0}^wTPSdwwA4(Yfwc|bKQMOs4PlFMF!l}d@aN|SLL6h= zkR)opb=a0>4rBabG~*ic4xrNXY1r{Wb4NU=>%4{N3p5=z>+N--%W5iM@ybPxy>@e- zDfYTNJ0lGt&Cwt4dH<-dh#Px-&-Mw2{tq3?;5I&4@T19#me)6)Yw5A4_U_BmPeYdDGd zNd5LmN{@qUEV1z7V(cjG1mhwlnLk_<9m7vj{c{S=t~Xlm!|rwIVWa9)-Zxfdn-iX= z0?F8tClI4QzIwnm{H4{@HayXsC*AfU<6aH@lVd|~UF1CTh=fM)^W@}~7wGBvLrR6z zXL!c@(^HX4^7!wrOd>serD%SQl1%pb6j)Snswg?prz|@wXL1)GMjg1ozzGHYVcqOo zu<3>n#OE+}2TVkw#do*9OmjJYJwI9Y9oc+&Dis8k!LVZ~eL@=BOsY}>EakdM<%pjD zd}HZj?A~tf0bZow=E-k4KO-ZP_mzW1=?}DDgLW7w(mbne9o2adpB zB6-gv->H{z8h>Qc(02B)V;`MX>Jz-M)qkPO8V zqQ;%Ws%~&Wg>_0%@GbKTrdcOXF`+eIG=$seb7TX^h z_l=I}+}%sxqM**rw3Iy-G*!#7OLE%p)LO9}P+7YdvfYSCe0oL1PQ7hedyTW9IBN{S zUv=N@OaH;|HW^z)tld{`Q7h8MvippUOu2%!ZActlxtq; z3aGHCXIF*KKQ2r7D8sx!wyjNGnuLyr60rU>3jQ<3+$DF zB&qv*oYql&GbOSt?BCw)nM4_D=$#EqL`3jCF-w-F-4a|rf`v^I1yYzQEiYx~C*nkKY zz#a@2cz-vJH=d-D`;>Sf%v@k|j4R*&;q6S^q5A*7KOz%}6d7eJBxDU4YpDn!yATQ4 zml^xMCB@jcVvu$0B5U?-#*%gHJ7X8dKGx5DrqB2LyYGMCcVAbRD@}9G`<(MWXWsLA zyq?czs;Z+aVDtSqD;u!)-X2<{GAR?LSbc2T5BH@0iX;DP0|$6!U4xPi2{0|bb2*Ut zh_44f1IoXZKYRm_o~F=!^>RE2BKh=*#5)$r58;37`x`&{1wHm5R0>SAO?^feQ#dJq zKAC?-2vRt%MhI{JA|fa<4}^tdOfYqiGb_ut%aRjI$hz4w{TR)10;P>M_t$PWiKh{ri12C(P5b zRDXTsw3H1FIy!C*+A>KJ?D)9@VNxQSFI zp(U{OyDiBo4QW7gGfT?nrn&!CxJj}3@n{g>jAv-!#zfsH_gAX{6Lm|u& z3c!H1(Vl-JDLaJWU}l-MCJt&O4v5)6!~Uv8sB1O?A{ZRrUzrQQB3NbxafoE1iifEG zXl(+yiZ^Wx0|E1?YOjJu*-nVwVZ>_u(;>VnMK28-NiPsCoTizoKnGNpI~?bZ#G9L^ z1fQ~c-SL-oUyPC7i&by{YSb6CARKB4mrLr#2J4f9J0&!eLI73-@RTMuQq*su^V!;f zpqSRR2#i0RXr~6`96W`CK}%0pC8*4fdxC^_#w)<-!k|PH0WwC}9`kU)`Q4eD2qLB^glrnYLaUn~qA0;M7UL{UK zYP3*u6Pumn&!B#{bMh;c@N29gKqBVB(G?0dCxjE0OrWQk5nO|IMIML~qr3np1xynr z)G|Ai%_&gcF&{1n0|-W1G8CK+D8&E-ca>6DCTKLm{~e2L8Yo7P{IV>O9riyF3hF$e z+Dm;2S?id)Sxv>#R?;%zdJRB17vGwssHlB}n&d!=dX>w88e}rmB*Cg;M_mZjpm7JXvbNfp|h<3 z7SB3QpnQY@yk*gfQg9Ejzn9s`H9&zx(+_4A1Xpo!rIP|7B`gTon%sZW8-)<2Y!*X7 zO;UL){pX4+Ie&47oIi+EQb7ucu*AGtNhd{tS^ogKtRQ?~i>{g)X9FU;dv7H*?4+TU^=cFg6 z!HoN)shNQ!hbveV#BeY5>52EBzobo}8uPvP5r#D~x7Sf|Qw`Wq&_2V~h0)^9XtDb$ zbQ7&c6cYkIkfh)Lh&OTIAC02sBwYc_K{Q5N0>X48yx>lVRC%x_+V?wxx>baz0+riu zS{v;riA)DG%AWh~1L91YenEv?jJP-iV+*87&W4cT0RbzZPXayRupk3@-~zV1d^30d z#V|qGN+E>Uqv%d{RP{QIJ}{~O^1y(|rGN-&AFxrwKcINx+$9oTy;u9pf=~9*(vtfZ z^`-Jav;vTB`pb(1Qw)n-IvMyEItBZ~FiVpFxnV!P{g>eqQ4E+hM0K`gDI)F5zh@6P zr_{1ESm1n}0gja*KY>=@4Km2T?sni+2&M{4`Zqa_c+Ubz2go^?Tx6F0FXRE(5dMD> z@o08iAj6Vn}HXq;^J-ysA3e1PxVfB$}&2>SsKxj_K@{QVK~F9`ZizU^z` zTh=xsTOr^7a&yZ6Kg{Qn|Nrc0`Am1A2iz>dH&VaAyI6|dbS#K6T3DZN-hEhTH+qz) zn@C03O7`TZNlNJRn3r{o3Fd)af-bPJ6MXA@?u#ysSjEc9kL-0hhX|d9&_Am!^ENn} zR+>*Jp7;-&knD;oxR*R{fnRD!m&8TwLgbh1VyV|f^J(PGVYLod6kHBH?D;ZzIoui^ z4LwDWO^~6K!ZSZH<^T2`8_&7W!llveQC(!es^VE`Sz1?>>Ag{*)M=S*1gpRfu+KG@)xHbf9x`0lD|K^6aGdmF-b7KcwR2G4jZbvTbZ;c$^F!ppxY|Z7e4Z!PIB4Z zspUEeSt_?!VDPqNX4XUwS1+eP)oB$21~W>4ypA!lt<#-#4rUw1Amy-9UkHxb^* z+w0M9xNCG)?Jga=p<}duv8R!<(9T4tixMH(V4T}YBV%N+O~vn))f*nAeO$g_ z_xMm`rgeh|K^HGGGunEqnF091Rh-%HoI9z$b1Sn{QQ}kn#xF+;r{LNlju-G=lS?y< zNvs>ax8_32@ukgA0*qiM{s58@?jeD^IYuRA^qLd^+b<`4uA? z*z?wHnhRG*Ll-=z=aO|Ickc00GY)_hEJ)#R2#yXe}ody;EB(~Y2$$f_lK zI>#}dx}U#!^Yn*Hr>ZUCzhYWikZ<+QuK9BO-m6nPw129kr>DB^{!LO>D^^L{dL&Y~ zWl(YBHurF>HPTuOnF&649Ny4*`==fHN2bYZYde(l>WqX zG=x5DkKep5X4wM>C+XY!WABGJ>G9IYR`il$xg~5LaU-xST>MOG4~Fo`Hc&`G^9Z4o z=yI_qXPMlsOCr*7O!*_ZL#5(h-e{Gm8|&`C<@g$u+!A^0s<^u}qZgR3w(!Ep8*v7o zT}a+(tsS0BHSc>#etf?nmiGN05GL*WL_CIp|vLMVpr$1au}Ni*PJw zN)O6@_&k2JJa!S~GVBu5a5yZz;KTPYkWRxRf*<0+kv428;P6E`%PezCJ-)(d0L^E2 zue5R`VQPxd+P=B;NXXJoXHpIeV!ulDBFM;)C-6zDPkJ}V%pr~@E%D|`b*%}$GFxKM znpG#W$4GZTGn-r932Wd*`MRKfc{8VvCPB_#&ya2-pH@|~T~*tJETz6kUn`rE&c%A0 z)~Ja7EX<%gOKtu%Ea3jPOzU6YjS@$aUPaO&vb@9ctz+c6Qx#1gDm4kw#MJDU^6%VAlh1AGNn7wKC;msnK*8IQBK4e+!*Kei**>vxh2?fzX2yg^ z%1DwT_uBTyB&teNgea?0Gyba(=Z^9*5}r15(>u?uCo9nR7;|JssOyy!y&q!6F?Qy1 zOY`Rqe!S~tP? zHcFR9N0IaJ{gCHmUU%pMIC(e@IH8-i~5|uB9+KsRGw6aQef1{LTblP)nxsNF;di9i@dq;V}Dq}Bb$fr zd;OT4p7rZMyDD=Cnpf9HVx7VZ&rMJ3Z7^4sFX&HL=L_~VdX;O_hagPlkC^X)`L8?&&Ee$z?l|^9#nsF>3y94xMtV|#FvO7WZ zSr^9NqD+42n#b!1lIaM!5)KkWJ!FYciR5VWvJgyX38hT`DRkTYwN_@&GOlOYdA^ij zD`IG=+g#l_vv*SAmXpS;t)cTLwv<%1rIQZBg(w`?qqm$~5c}S-Dz7BW>_?RiXLN*T z1tl#eJo_AH$QAT^iIIy@Uh_ATq5e-*epjoa+csJ*3eZJZoDk$e7oU=FI1`=eiP;?4A}T6P|W#?*)-;xjovgjt6hL zB#rqCJ_lk8c{K8_)wWN%m>Me3y|;cguG?F~&L7>5P3L1th=j9)%y?0-QJxeyfr$pu8N%X@d+&=KzbNs zSlVs<5Zkol2NQv&ZhQgfjpfve6M!EBiCn;9A14|LRlAzRtvEfQM=03N(u&jARpcDt z@O11kxq=od3Q!MKH?C=x zakj3ZGgYblP8OK$a1Y< zoxtZ7xiQ~6xi~JbzWeT<{*;$*nB)Ud1M)f>H9emfpbPg?Y=_djXMZ7>&!ha)59uBd0M^Za!P^Wm4OT;83ej+cv?W*Icl`Wt0 zyf&NDB?s;9t$HbLSP6o7n9W>MpjkqX)zd=GuesN|JU4P{+4%?bDEm96%Wq*}Hag;o z216U9b3*m$lw7KU(w^*(9pnA0NxXi3f&hi@>{C8{D{$-+0Q?;VVM#lp>Z+?E2>&^H zJi|3W1Cly2l1ZtiqE%KFs~Nqc?&ZwVj8Q&s2xOab8 z6Q_LRQeM;IdfOt7%Z*D`%yqOxEu?e^2YL1>388^-h|-LY(b4ZFpFFVNF46p*>cObk z^=3)AvvM<8E22c#tdv54BSyLO!=y1mz;dZb%4YtmhGXH#1@!0Vs5_E|n8Hg>_>e+8 zC@|O_tO7`=TgC9l*Q{^EsK;hUqmyAeuCbr4iB%39GadYV$a0TI95Jqoc#FF|j?9uaU!zSU^-$(6g%yDEgal-^=o|8F6!3FJ`4~lkIin`MA9dG&|dN! zlR{H-7wc=m^z;hcg0BpQ?@t%3*{nL75FccAat+t=M7CuMM(w+mmCEvXJ-F;EdCP$t zkBQEYQU8Z+W~R6N(3?AscjM#hp19dh2g+=dvIPZU9){6A=n`&Th7&&pxtFhr3?ucO zeyZ4~Ju8Oxu_J)g8??H$dQ4`3ig;~K63Q8?FS7LwVM@4bDy+=)9D)gtWXsdicAS#dfqxq9E_lzDI?>@ zbm?T|%M3$>#44Asbs;xr1{Du}J!CeRi{z{`m@ABM`UgZ2k@{py{B|C=m>kz1X?wE4 z_FHF41W+L5dnTkEn~&`^R^|yDr)mL{EU#S~K;KEXd^rf}SCkECm^0qcu8NwRZ)PW@R|$0zr&C)h;_2(i2R(m@yVov@)top>Ipj~!_s8= zgOd9m{K6XWgqtF&DxDK=K5F>bK{_9laKspJ#7K*O=tn_X=zs7CDGAjx-7M4Rtx~C4 zpL8hBiqUhws`cWF_Zz+;%l3trbzZqs_ZkKRGUZ3iU$=59bT@UpBc(59(xt}SgtRgQ zp@%=3_drGygsp`uisKbUQi_W!DwCP@ybmi`RP{UwO7J)ja~@|wnEhk5_-aj+f~?Jo zQTSoXybn3sMm8Zt|NR>ZOK)W-_fCX=b%Ir39){PS#u39|q8zeY$HBxEHyCGzT`ppJ z{-MTIJ&!VOg}!7wrXjIDKHhecF$`(8BQp6ZR4DypoahFRQ>F&r+F{1#;KZ!{sQj?) zhd1v=b859alzntYc-uRB2hGEa>`6<==%c9bNJWRXE&`u}v}!l0N?WqI+~MyxdIe)9 zti@4Zj^_T%ZEuxlB?_yU7%(6Tz+jD!_M`Pod^~*Fb%u^JEor>#NCCT>IwHwhBSq}9 zVzIX}7{C{tZtAU$>y8x4Dlfi=u$cv%XE+^s&Q%q?nKuPX@X{?d+@_}cFkP$dVu{%f z99zlA@3N*hmlN{aJv?}yX;-2uvfjPr$uv_{LJ&S2YhNh3t*n9Re0lcb`|kmE(p};8 z*UcWL*RORcUckkbqNE`?O-W&H&|B8 z?_Y1Hhdg^@o-S$3tQH>WTtV9D4Ilb{FClNBA#JNkpv;JWBc(#N&BL#*uItGu-s0P- zkmZwP^L$^rPFw1l-YJ#QokR^wk*mn)01 z`^d7)4D~q@lf3M}zh%sL`Y7it>;{{bzNynjJUW7^U7!2;1|9rhIQ@%Ng*C zTR44NGfBw_rC4=ENr_uYJ$yp(5hk2RD350#TS+vVoaao z98uImxzr#3nN(BImb*dFLZ)%=q7Y|5Y8#d4son)mMMKqmJI(!{^U9kqyXU_#*4391 zxU^U;FFI;IehD7VS3SAcyDVN9vj7!3`u6yesgrGGCA)CJ!~6U@dg40SoQT(<$#JD! zh80jA-|h9SBIrn*tcS!v*1TU7W=DsHG*Zu&!>0&hB>qL-_|Msqaw1iXwNz4GwWwlk zF4hhztA%e2^S-t-`aHR_YG~iiN#UDmZCR~6R!VKYNKvj1K0bYa=^F{Jh|{E^bjojY zon_IP{tKzZUtW)Kq-=EB# zii=>Sd&6e_19_Hr*n$1?Q%ODG<0tMjA9Ni_ild9t*FO?@5nV`Z_Sb=+~Aai ztvGBI|Gme6Ot6M0##%OKajfvZsearKQ5n?du;r43F4x$y@|A?)v|8~_#`U)uu zNz@{G)F?kWBOZC9=#pF!3Yz0}xq22D}JZ!k3a61@Z^U?bK53$TI zVb+d65f@e+Bb#cPVvTj#?E_5llgtnIg7BvgGjo}67vEDiazKtAP0O{I|| z)xm!cs`x!xM{km6z2f|7Ald{*u-2<%w$yDM35}PCa#N9sEHr1x${2)sil!gidD1&p zSjg9Ls%Ag7l2aO~vR~Uu8Yl`!;y^G2ZKO$b)c5PK&C&1T#YGLq=?MVsxT0%`2BE=K zwoa3zgfbdc)jy=fsyd+BvAyp|4l>;91tNnu4#lM+R%GgufeP;!O*b}*&W#K8wl(4k zqphQ$)(SzbpQz6QvY}Zu0C|a{)0P?~Y@d`U^s>EkZ57NxQhv#IyOb+-BYFeLQVo>I zFJXz*a1zKO(*bUmG(x=Tg8y45J5Y^3BksNOCI~jJfMrM7kM*%vL7T~d{el4L#8v<5 z708l;Ny->{PJCn1Qp(IJ77$tx{qAZB?{2^$Kr;E7zZMfN$^$F{5VDr$bDtJ?7SrZB z6l4mq-JElViZ@~U{}n_40IhYDoe2-bVr4P8kpAF`@TVf_2lfJ(3WBAZrI3r%L6yR; zo6_zpq-ph008I)k!36|53d(!Fa|S4cpyDd^-+hbi{%~Y;?_hF@4eA7^eq(|=`FpK! z%>$t*fGJwYAxluH_$r)aF6zlq2NRyCy#NT$_n@l*NEWff#YHm~FT^DpS=GP(a76k9 zW_m}p0->xCCuJr%S#;|6`U}^(@pM#h7+P3bC<27rh&bDa{HqHA%KMbUph@%-CVvSt zWE2?I@kgQ9kw{Sh-Nri-Btig$uplJ^3H4J2R!d7b0-?*m2`)16J2akW|IV@))ZD8; z#`+837C=N3LzE{KH^_`O3JUh8$?cdkCE5l8G^5{e&T}pZi5sH!@nC1NllEUH?!aNg zq%}hN(VkhQpx9mj;sDbRLja-gXJWwd`KLUYj{SsTa$%w(ZSEE7WZDO=E%27aRqi|P zn*rrF$ghBW#G$xZX>lSgX|C!}Z(b)S7w>a;=OOJQ;U)!a-R2VZ^v83NR14p@KoG&i&1u*|xM#VE;3mH-|sk}(brW+G{VV7ysE*n?)H zQy&GYIszvbuna`4g3{y-Z#;^U45TI(!j`<+U;Gym0y-?r>G#t^E`RZhhb~;D%&UKg z$}f`%awG>B`40U(^naDxJ&YuMa5_?64` zJ`}xhYUq97e6$kB3t|>#u=k=0gg;74hA_h=OsBYsiZWoj|M;`t2XbAEfwr1?`U8om zh?RfSvMY~${Z(haPC7n`{a0Mn(^phUxze#L#OeAOtgy*&C5Ns-N0(*%Pu5N$_=li<;zUMGGq(*H!{;K%Y0p%{RdRC5%HHZ1FTGZ1%K4{42WaG zm=ZbNBEJv;cI+cW@ch^PbN3v?s%A8`F9qas0()Z{lYQmOx^i{`*ct+Z?2v8pWl3A< z2lzUOS+-9V2ql-D|4Z{nP5g*B?JsBs6kWc|4*n!skDRjDbWrmjh_y0F2H?R9*oaB9idG z;w<2|C+C;^Y1W8IQX~KzCk8p4|L?mj;-p}>6q=^nvWLY#b~_*LhN*BV{#29H9I0Sn zt@(j1N?eZ772o4vduAW<``ggF$C0TP-~4Fa@tE%2?uvhKKb>r}yhxol-#KHVE=?ET zZgW3+GI5E3#L!ZS-J;e^Z07@7=`EMUDwVe#o=3)s@)ju@4Y6X@HWJuXFD$Sg?t?0kt0yi<)}R`*QdOD;MDuL0A#RG5M8dtSD130xE*?t$7u( z!2yE_oy3XQ(LwG97qxL_V}=QV;Uf9EaUS_2uBzUZ%ia^G4@CqD8z!xuee3ixR=``d zdd)H@IxNUCzv;;)yuVbX&k)Fu%&Pib?OxHx82qkGrQ9RI^X5$lv%=eWMR6C0Q7LhJ zP6TB<)9h!*^_+W#6^`RR+P=ygx2tn2eBBN$>tick6a*bpvn_ZiX$#i)yuIOA6c+NU zMrR*bJa#LJlt?cR#_xx4aqVy&eok=xg->kWE_-PQSvx^RehB95chaSRG%JC@eoh;L*n))pQxFCiiN1bv`;9tyh(1#Qb!Kf5CMp z4~|V+@K~W&Z+7Z$?$mCx&emN(+?kC(&-2(EHr8oyACQuEgB3Azy(}B5)5g7Zxfu7h zFJ{5%)C<#JDswP@jA|gg&@Q^|tPPb7jk-bAte9|-^9e0LPWi6Uu(QloOy$#|RuRvjy30m+ z9Eu|$?AWS(Hbxc-RjfP>;y40bb(m_K-Q8V>#4}UT#`bPec5-ziqQZAqRsc%}QEcf3 z>PVn}uLpkGV#HK)XZf7xls4-xy6WkX`$Mv9hSpy3BD&R->*_qx9fNP9Eh%R2$0f<%d)*>NVDskb3->+ENVNfbDc*TY)YPrf z)(Jjz35?7F)ajGAaidPC@amq(VaDZNkdCB!!?e3@^Z5N+dWEC3h;|+;8>2c)dHA$k z_-!8K)Dk|oQ){EFZnRr#hg1?hto1`H_x19)Tyk>g#9oR5?}M!=EkBOaJKwf%4T|oR zw4eK4tk~O+s4+gvnqZ`691y7&d;LE6CCT+bf_ef6lEC}0YfU@u2NP5-oNiljL9ilU z<%K1(lwLYmY-Y2FA){vWyfj%WR2x=d{&)wj9P@a?l6Tzst*z68MhX-h2x_`HUd6oo z%x1yPUfyYZDV$Q$jrl1Ux<8}MW0I0~=u4|$*_ES9Ry1x@-f-k%DzbA>5!%)ZJZx?Q zKj1HSOPJqS^81wnap;k4KPLsrH`E7x8ExER43VG2@MV(;pQM78>uOoxV*dB2%uarX zJnj-K*m#4wzGR=}oc+;+_NAs%(Z%rmE$;g=a_pV>8TuppGWc0J( z_Dy@^=}0|Ht*e8%xz};X8QYOzBtg@dwn4KAKtw9VEFQS?r;CfRvk3STQlOE2l;svs z!3!>oRgs;w1b&ZWIB38`Rr`G&J!>*0`VG;0GCvN!U_GzW3>?)YnD1~YW8;ovAD{6| z`%2F{zM>UwU6M0HQ3*hH z?hEUEd!9e*EslqNJf-1={3h~9mqfnXowYu3`$~s|)b83cnZ&ArIsqFpoe`j>UT481 z$QA)`j9~MEnCl?AsDYme8`YJDm2bXqi5|D@c}puQ!TZW|xs{W2(7RbPhX_Z-2m4Aq zfUZViNP(}1yIo#f%356~^iZ26%+BC!_N!VJ!92rMpd}5`OZTWy1>bTW7Oxqep-oX! zbEQ2n(8HW8>2;6ePRvqYnVyZkd1OpQ+L5DM)xxL>$K-Z79nGuZF4Aaoy^)vH-Ufy^{Y-A!AwxBTITCSh%~0vc%`x?AxL~yBm-M2XpUG ztA8%yf1_Psz^XE%Q=iT_aCG-toU>QW+nHIRurBdPTJ7%B$9Gg|e|=<^%L%ioqAyI- zt?ab2*)wf=To5QjeI}@wN|Wf8|Q6zD3}~;EOllI`UgbW+TN5JazWp|^>QVBAHxM+ zVhL=JJypB*59rxcB5<7#fxAR)BX85sV!8XmMCg|vHgEqJIr?S4ho|*b()KHY=t7aE z`rY>dYOTs&q*BH&S&_)t=Fv9O$}xTmUCb~a?eBJCYH&|-Y=`k{hP1xe(>i<;oHKX| zs1?l-_m=F;xweYpQZkN9^{AHVvewMUepT>U=BXzuXHV3|R+&}!#Er`OGW1Xu^rG)r&W8 zf2pb*SGgY8uXJ~_FDNQ@&IujaZ=a{;pWP@kGQN8kPmN*9xo8$Et~U#k>G}ttnD1&tgWpfc;tayd8_Yb)mYvQuJ_1>*cz4mDpUHdb!E@;I>G?rk*;PmmdP2%GQ4v=Z&to zgf28*ul9P}f!}pUVm|LC#fB|qhFlC7^@;&GRPoT&XA{cD>=ux%ZQcij!0 zRgjF~74_G#u@`^r+~}uQXC@tRe)y6SwCqAJ;U5ri;R;>&r6qlY5OX`*#-Ws3UI3YuPiK!T9Ih3zQhDn{H3f>}fTx>> z`)_(7L?XQXt4YeYuv<{47!_YT&BvJ<@I0v_c6b~z+ZG;Ly9t>adY{n6%}H-=Rv4N4 z$skD+VZy`$mFMX`(q@j?v%e@l`H}n-k89sMd${vzp8Pr2e0yumYv%j{cAhQhv76o1 zTF$r+aZXYazFR&q81tUIZ1!xpia-L-xPfgZbJn%kSi$J^xa#5ql}lMs=^u5;tH1NsXh-^W8eYj4m{v05^z@7Fzf3PEIFa4mGRkJ!d02%!=>)6JZn?89;5QsA6ySMw@=RYvcisPt_e^O zZnk<-r`(WjZDf2qtD1Y{=Eh3nLihf+c&K=`55ARUGo4X8IU#oWSa+{*^fSKtk5;y_ z*!&samB+V5tW2#6_>iav??$DThI58|A!`LEKn{A+d>#jW?6_AE+NG6$7N_a^N7s&3 zw|JUtLN3$p6H($laN9*w5Kvav!x&~0vgsNplP>kez_EN|S{ zx+RNWQEvGV1w8U>ZS7{_&8yP)8r!M}c3D&HsI}YN_`1d8-3>0ao%;dKf2dvc4Ie7e zl3MhBo4RG!$=by@xka!}WxYc&^joO!SzvC-x$l^GQYCGphy0&EI=CutZ(*K>+~S!0-4IQ#Gk zix|^;nKts;s0Rg>iJbDd-HKn2)@45#Gd5a2-n*%u)|$$XEmG^twK*|NWodBLCb8p7 zQwVg~x&lj5q zylkl){r)C_7OCjFuq#lu^a`JXK*b(ki|{!^ACVdI23A(G`4M4mrB z4L3stwF~p}=21S(#~DRcb%hs;y(X(oex{uK0t8zDHa+0Be&Kyw$(=l&;<5&gM%v zxk?SZZ8Lsx+~`s)>SJ84ZnA3jD_xHBq9V&vPp$a}^0FUp=HT48m5L@UsCgNTvUMNJ zQ%2ykLtJiT=G2vMXyy5Si1n_ZulxwrdS9IEBk)GIy0k{{?Stm(iu-rIrah#4YoL^` z_8Z0Ra^-_|6B|e&UBbn&m#0XwMIU__56!kYm58zzuGsX1dzbV*gY>3oog)iznMylI zV^vEmrqEtoE&j9_1vp2@RY0>dw;v`+=X*)r$u($cxXd z*_zY##kW)>1_G`5Gr|xaYpQEGndUBcx>PXOWwB>!K>smQZ9&V8LOhMHMhCR*SO!Wi$*k^t& z2rzVWC+gtu7tJ$N-kyjl-4NSge`Qx_yC~FYT4I?L8T~lcg{Rww?w+D4?bI>v}c3o#|%L2Oy?oUCB z;XpRD07Wr_JW#h^lN}!7AGYPlX2h1CC&g;#R&VsFD)qv`Mw7&l&USo#Kp8A>1>dUZ zl|DITM9`k<_Q-7M5ncH--F2MwDXb<;IVZxb7Aw&Tv8XV-R_Z53h@5{sOmBD;Y^gY( z*`v!CH&~l`3+UPqCoAFBFc@lCpD)alQFBe31@dm`3boQd{?13ILOCfRYir84V#*!I zHhfBcD&MGIt>t#&MWcl5=Fc^ooM;%%q+*zrCN(bY8R4gd?FOZkX(2I3ilmF!ifUc) zv0Q$$%l8o-uQa?HFTu8CgLmlgV_&*&CJx(7sK=#oWa3Yiu9d(GZ-t9wJI{;f)R^Yj zgtS^bDp0DY$u+eE6gG=R67U(pwhb%IJm-0Rf!KJoZpFH+2R<#V+<|dT$ofR2J?d6f zU3stAFdA$mX(eG8x9kd6!iXrc9bAH}B4$sl4Co(K)? z)$C6d?1lPG10q07o;wraK=J&d{vm`N$bXZfilA8B!5EQ4$p!%F)em6T`YkkZq*daW zS202eD&$T_ulOI;Yk*N9VE^aF77%qsingB$PVk2zN6LJoyi{Anq0R5@V?5+j` zV4;Sv=Cy#>wb(6Sw8V%qlWEZ0JF`G>?KxL2Jer&VF~_g+UpZb-Y>ZGqP$~%LuK?zt zK86_HS|J0DgP6yJdF7ZXj?qR_E3(m!QKS5+RRAhOXlnzt|tc_tS~JHqlmtC0Dlr7&6B!5 zhGYKfc0oI~lUn}oxO^||QiGtzPp+`}P=lshVya0|;(xK9Nh^DfJhhr>#1nCj)Syu? z>Qn>}QxT~L`}d|TiDJ;kkXsY`m=glH$iP?u(uzRL(FW9lq8#1X$rf3jG9kPI1p!+iekP+u6Hv#z)fQy!FDEfEC=vM-%;WP_ZfYh`fQ1b8wW7#MA zfb`Lgi75z+GJGHf7(>zyQAK&W zLOtm(bS4|}tPi^M!_%!}?vgN(*|kod{E-A*hgE^7$C(b$FW14NOJFE5QOp1s-4&VI zmr|)8si$RL%j~RhLhhHNfEjG zP_722{<%e*$q#UQE;BLpzEB^mClpDr0O-8 ziFs@h{s_qeOHGb=6al9O(*ej7c*`n3NV@D%bSzdH2HTi2Q1 zMJ6J5)uc>w9(DA+ijZ6h0`k^~sCIw9C1@QMF}5;`GDQHsj6@Y9fV$@iAlX+gE2A86 zzf?!yKSlx6mwH-!Ez;ZdfVBfj%)j*iJ9qEf~1I3O5~sA2@Bn3@Cj|B^~#k{ck9CJJZun~ADI zfamwi_ALR?lz@~M{8u3e5JqC^8!_aKc!cM!lpt9Y@CvYZfMGuQ{{Kk${&!g_>pcE+}y74VLGeGk()3mTE31ZNs;n-jKuMHrA=U`py(cz zkKRCQf0+Fyx2mFyzBAS)$;o=asAz(_VmPRI6urPb@7NE|du(o(k+2)P208HKEO>c* z|5Uwx=-_H2D`7^hY=%RC{9Df5NA2@IJg&cQt9*QRA>;it*So;SF>JZ6aAe@vu`uf& z5F@Mv@xxg2ibn`+_YE_5A1v`{quCi8sGa+RwO! znAdF|s41jmZi}6d+~5(8L6|&1C&jZb!&O<^mJfW26nOM3yY@+++7ni|W8cHQMVr8&>J z@CdBrZ}AZ3&7VxVj}Q)&);q25e(aRJ&Xj)~E@3_Jk)6Iz!?3h2%eN%3`^T{nLoCI! z1d7}mt3G|yQO;%$-{Qq@b~nq+s!*;^_lHC$!(7~-CU)zNqsH#x#p=?j1|v#ff~;a> zLTI{Md(+vR3Rfw*wz^b|isY-jOB*?C8|YnQ>@{p&G&ZwZ=_^U)AJ(UnofvP*B(DF7 zX*f>2X(O@sP(o8V(~1h!H=GkXFS=HpYh9a88r^8+xzNKNb5zo15D; z3f@*v9+f-(gvFKA^L+g}j{UTr(fU}!^TB9VT+LzY0@R0~t`Xx`8}B}Y^l(i|2l^@A z{#hu{k5SBzE8vD>qDRjR@JI7X9J-f_MNd2W#`mXX*bCeXv@h;f+wWxtk1_1=FISZ6 z%$Txm(XW|JiH7~Y9q}dr^^8VID&kjQdT{2I+Uir~H{(^@5B5|#YkD_pm}-EyP|BLp zv6^0o8LcH5&+v(^{$J`!-0~9gLZPoi6*;_1c9d~PZFj0!RR@0?kuq4KXIj-_q&3?= zO$A==P4^ZXx9rf3iu0a*uR+(Pl zno-xbdXw#PKf~894K}Pq>+C4>I*((BpKbKhs6+=y>!{{UUc6K9DM+)2@@>rj=(AInKuV+{t$yD*-C+XF>m&L!DV1FJuo*!s09%wC`b8L>C z2(+@6j<)tNKU$Ebb>Bmmb(RBa3-<_|{Gb{4fTjw5aP8rbONzJlj0`b-J=J^0Nz18R zJ2IwRf7VR|ua72(zY?Jv^g2E8LDgp*WkTv1%zTPT1BG8v5_sQpq8?Y~;~4CbaWx_r z8+I()nPmv)pgCBz(B69je{Ge{8RHA1K8G{mWIasK=FGKS4M+h zMw>nXgDyYGCzrnL2vFCm<;k<&tT58#+hHheK zXB&&I5*NI{M>vzOw==NbknJu3))oX?;u`oJI6~41BYt>c)aLWzZxa%*wz-3bMHYK5 zsghuFV14re|5`;KjM0!r$EFgRFyH%ZVHncXm%vgU@Rr!WejV^!ClzN31T*b4;mBZ9 z`%KBeYM9u=M;4GOPd*4P7HZnSfDSN*M4u9(BlUGE*et;bEhx^01Dg0C`#6z*R|nVM zt!!TcGj^h>or3(S-S_uFvLVJKxQ~nQaZypcz z8~*=}M#dHq8M{KVWeJU)`XFRPcCv(o?EAijVvOviv1J(&Dtp;wgt85hCCk|NJ^Sa} zqtEx8?|D4VpTF}*k4Mck?|Cox-1l`quh;dup7UkaC4v17o*4Ckx4x*s$Lc&0YXKw? zs}Z2j_23>+7@A`qU>Z<(T>R!q=~eDI^&E9>E@}_9P?U{zHlfDGyYQUuYRNSqXSN8O_ns{1*a6 z=_TzvnanwPBgdcn)PmGE371J-t-F@4l3L~Uko@x4SE;m8-lLT1{!mb!st?48eF=L1<3@t)^@H30EN#uh+0y@rnpq@H zJF(q!GuG1fvN-t{a-LQAVICni*2VM)X|$vEB6dp1iM5NuAoHr=lg6<@e8=xM_@j=7 z=lf~X4CyVt*_r`X)3i~a>&yRze0{Hq_cb(t+?5(rc{f~x_u?-|P}WaX^|nZb-%fjc zQpT0rDqUq#h-;vdNl`gE=p25{FOgP$Sg*H?M;Ro<=v#C8>)MY@WX|dPMhmui=wV}; zZ`1zKxZxU?)NkHTo6=Fg`!My*p+&f&{lAcy-;`qZry>>6(*|*ne{PXH>XUPFq9pK< zgp^knsE`VXmyCCL@V3l>)Q%iyr`tPUOf22WYlCi$SQolbOrle9t-!0`m?b2Y3X59r z%;}ZsLU*0-Mep?((<%(G&tnWs^E(XZ8To$NjW$s1$4^?sRFx=3SF(P&;7(<=w|aH; zT5q6f-uv7LFPpVAva!n$ZHmty62eAhZ$UROge%<$Z!gi;aj;#7QayqJX7<7P=jw>x zasJLX7*uNH0f{2F+s?{6ycPNy&r3oA!TUhgq# zu=R9YGQ2e+x>ec5EEz{fuz6!zUadY?fwI+DHZh`hcIwRf{m}I5l#WsNvy316-9fD( z21#FMdrO4mG4GUX28xwSQiiz8G>`hjiy3{Sf2NkLiLc!LYOGo*bWNPTUcd~WfBTEN zabJ<29J}|=ggrD0E30g^i0k6i+;Gm%LrV5Un?$BR`C~aYzVALgZMbn-Kv_;vVb3it z6&JiFC3{se$NT$c@WS<_Df>CRN8G>%J-m5;c~V5WL7a>h--C28Fh18a27AurXlUOo zi%R$WIP9OixwFb?kEDzIr!;GQYOOzgCQVW%c|`weF1BHrJq7jIxg@};P#ddmHO#}sxQPSJ-sxj$KQ)|FC4F>@8fl{ z1vZK;{Iwm0s=^)r9Qd^U3*nRq;x=vUJAT0SS@GFS9|hOZmi|UZG-!hy%l~@zg~_*q9!7 z>YGv5X!N()-X;4PTxmCX^`3#gQqBw{s#V1*17y`k0#X!pJ3V{}jMOv=pRgtr54yJb z8^dI`tlU18dx<6`X)vn2P0lk-H*gQQ$Z<|ng>d?ED6U@T3o~tF(fW9mmeHR7 zC0~Wo?SlIJ!2L(D68Sb&NpsteYL3f8_t)uKeqmg9?F4Elx9)#^kmQEyPpKs^2Qn^x z!3O1F%(of`r`=^Va^t$d5vJoYxdyf9DjoJIE>idMiTi&0@qNab}=a5#0&9;SDOu7v}ZKqIU zjVNXr_TPB$Z2C}sdPrSm@p}D(-s5t*=;CK3a`I1PyzDhobsR>Y4uR71T{R_-9^g7v zdh;c%fb1qtp_ZHM^Bz$8ixDAWsK>DqVM%5l;>j*cNR)9U0W|u`GgcDQ+#fX+5Lt%3l*MnMm~crZxKf2Z}yZG__&4o zLWxx2DTqfRyJbic@IH`9n&>Qdu?bW}0$4~v)c`=e5zOo)%USik7e)PGsZG%Aj;3Z{ z@dg-#PV;K02g>twk-(8#rH0r86ayUYSm-)|9ReGISP}}xym{E{daWTuW3#H}!{CT8 z0(=zEER?JNBmpkq*31VVZ8|G9AO>gTRyen@qz>)|x6uPT&?^KuM}e0iu1ai{A(dzf z#DOZ1wQq&jpZ^~-G}lRg8Zsn=nR`KYOVlu;o%`Cv5Rq#$LuiplXjyMrSF&Jp1lun2 zS*^$!dtz_m9))*<+62h?9T?v_T|1lyz)K~7<0_w-BbF0zqL8N3wG|r#ZMjVTalQhk5a?w-}gF52TqTSu)#btow1j&N9GBfnxap>sm_IUzi#%8to zTQgyM#@Yp|MDdq<0Sf0wfOl|LAr9`!c~op>GEjTA5j(+19YCzw&1jmaEonSZ^JQ`* z-ssb*;3S=yO6kAkjr1QZzbR@?6 z*N;QxKY4^DH7gvW*e=50*8pylCAO$JhjPP7cPvme9Vm}zbIq*HplEK!C{hKVBg*s< z^0lCZgGP2{W)tlzXUDxxjL1QEpp=H&Yu|8pJD_10Ha5>a_7A?xnNepfzY07ZDEjp{ z4#JJPba)hn0Mu{e!`=be?J&$H4kk~|by1W|);+j}m=!o*{f)M36uLy_hUY_Y!y-v( zM5UXqf#(f&L*2064Y*~s=SJ((Uym>|y@^o1duNVWao|(Y zIHCy-np}a}LQhz{mFn3I|3axK7mR4f$D98GM3h)raTv@l>xOZ|D@J2Mg$0<3x^|cp zvQFOv$SGf6OZ-uREg7FSQt=+ZvKGkXv%v{2dI2^&3WXmlzRV?FFqznCknI1QP6XH$ z$^>W45P7OH@p#y&!$+aue^H#s_~2yz*UM_)u7qeWs)G51CM)v47F4~8*n|J=>Gl`h zf=T*smmXqcr-u>PgPpT;12r#-lxM#rumcUr(jZe{WW<5 z2siieC{z)<2!MMNAh(CG1)`sv5^M)-WzTvAH4(S6z>E!e$H5keg(d&*en9^x|8-ti zQ|Dvf&e4wt4?f3qA@L;zb@g8|s_wWrIY+76Ce+h0U?9e5M&(B&o%Q}kCX#N9OR6a> z7gIDUK@fABaw{n)(cMyj? zcP^+)r6kRIEdh&t5dl-pi4+sDg^3kr8g)(nmbPxW{m!5I>3yAA9s(EBG+Yh6Y^wzV zyT>-;3y-BX?j5fF$U@8MJl;$9$_>IcH*nOM$x*64_&V~{X4MHfrRaxknT%5yPgT12 z9i4^U*Pp5rAJId^%f4->y)N+DoBn;scnQfc z*XCqzlSR7XzTQzW(dn~Vl&qxmZyTKs>{`|8>244`)=6qhV^X-V@x7n+!su9KL3yFc zw+_A+B9`t+PpWRJc6Q{NbmmLGsX%=83X)-JAIaog35HGa#(0*G{Y*sDrxe@nn`|H% z{k)5%qC540?x(dm`;qnC7VB-^W2Psu&_8ls2V`VM-ikJ!|TN#+R3@Gora%w(pp z^jF~jFsN#^D8lR%E zpL$w01#mZ>U0sw6Y=vCxNUB)NZDpBhB(%D*pJyRd0u== zPW4*JlH|2Ao6_WW#-$qe0E)*Z0kKP?eol1mvs|QDK~Z1KY_2K?AswBD{JknM)TmQ1 zT4()3c4WFBVe*X)iF2ivkI|d+DF*ZAn;hBCzsx-5WfWfRjdK6tlD{a`rpN00i*d`m zJ6*>RWtN)7uHGU1yF1??=}X|pn8uBT_Oa?!fiH_|!U}CN_ZvDKJ6K0m{4^|jbj^4E zSlE54$ogu2v+={n4|r?Gx$x=Pt9_nEZ|~pxbL-N9&hLk}#T9HeO@$(`Bt~b@y55NrnLmqdy9p%I0f1Km}d84+`AjdpF4iFB=SvM z7e`qkZs>-1uc`6f7lOg@$s3QMLONgF&VPJ0T-YtG!txFgDA}JJQsE|6KigIIA#cPm z?&LkI=5)EaK(T%&+Sp$rWqQ*+e%;QA^8;37s=Z>aHnR%l>C!nYkIq$$4!n?O;oCEP z;nZYT3vWJd{F;2CaKHU)(t7N@2-gdHw_B$Dq{zbb4t94v+AKFJ_@_NI2HeLA5|NRV z5`%otXAR@z8p-OH(zHb051x#1Ut9E8)(Wf>JwV&)_qVj<2mX^)uj}qCk#yv>r0H^f zBK_ghN_p1ie<7coDrZ`a_iM{Er%e~fo%uF?qJaq+ySny|+23Q_rMbmV50vON8QjF3 zBGcI@5ALnE$#vE%7S2d;CtDV^^+)PEyy|#h66i9X`#oi*s93#fMAs?HFvay6l#2KH z_q@&h)Pa0vdlk)N*^V1&zn)YmRQE}+GqoCAT=XYPvC3WSy>9e=XW7V!>tXhF-YY89 z`%usL+RGiQSI_fHotkp5+3Vy-hhtSS{I_L5r!8Rklo_#e`Y^bn3Z!;H^lb%cFJrHl*$ky+ zS47tJfgB?-gURK&;Jb*UAycHmSc3(c7#DyAk7LY-6FEOr*655o%V2_l`r<`eSJj}8 zy_v7twQ(SV%NABpLMYzz+*yprvP;V!fORmkdTO7d2P&_qfI(SvYTri?n?3$zxGveu za6ZUpxGVuny1g3FV-42%eHg?#4CP7#k#mc`hv7iLL4QFa(j}Gi-(eRE3lBC69Lw~@ zDY9Mso9x}Kj0%VBa7W;NzlJjt5FD?kqM>KuEeI<_;4_wC7<#d8G8!>Fya}<|@i*9* zyav3K!NiV%9?L7Ue;`M2XG5mXBJT+BsatE9bJ|?go81sLPeni1o69%~hN`U(!Qs%b zUTV6g)lhQovZpWARM!)_fMxIO2k>B6l*~4(-dWv>#c3-x0e%VB#UvvZ3}UX`wGoWqrRfL*;!eM`wgV z{y)l^J#+!lW7Pxa=H||tCY=F?Ar{1b*qgtp)9! zOIrP3b+IOx6pVn1dSH@?qGZvQ>X##-Eb1luX~ihRqN34JxirO%GC5oKKQhvfnp^fm z9*(%|_`Ow>%&4Cq6*4j4@ci(uxNPZ{MNDnvy_;PgLpt~(M)kRx^DMp#Dm;xLTBqxm zU<^5mQ5sp|;d6FPb8^sdui)xblZ?C7lFv#O`xM09--hPKI6 z_qbm(9p8?;tKa&_UbaoP zCC>>fDU;xhF(2zq(lsUGjQHLQt=@|7Qbzw+54XW3iso(G%4}+?tMo zyWUt1Xue{1*(zVg=w8cveuG2}M%LN-3iCdmWS39gh5_b3vebV4HL&BtG({;1W)26`LPhj%wQf~#usOs*$QWvqa zuU`M`qxnm3?n^RHJtjY7s#CWx=-BPzSDeCcrv{^UMukVK%7V8g=}(0v-ske1SzsmiEut9*i2nN*2o{x2}eF~k1l`kAR<*aS67lz&|J5=-0kPhSZ`F0Fy>)q zqiqo|6htM?3+)QBJBd^X>-J05(5auFd*l6r$0ya}{qu6QItd>Gd|OSHP%`9`)R1AE zTSxh4qeeSaSMfm3^Hx1nzwVwdM*glWz7WIS|G7>;xni##uW1%+Dkq^QsLHr8{2YOE zkQ;C)HUW;R>XL|uxP1P6-g=CQ-S?17!Hnz-T5b+eM@nDLjhnAXw*ER;pKZ%`SiR!m zgZ=*7OeVNUbbEE~Nr@Lza)n{;AuTBS%d}^VXe;b*Z=p}oa7A5FVAO z)7U@S&_Sj+nD-a3h-vux9KbGajBWjr^M7I=x3dF7*#dqNw{ zKgakf-NL+}aJmpTuqZKQ;`^jnWf0q0>)7(sZ6A!44*sHRJ%6@0aLcRw>3Q;B z_{5*a=*x7bUTytx6(?JLTCKa8Ow&xJ!?QJ=3FsTi`a+G223o51JnJV}F-gBgEZz;I zj0?o4$ZFg#o@IHOUe;3LAHw|P`B3n=!P)Q-7JI4uyehQp%eS0N3wN_bGFZgb3!5*V znW7@!aC{9Vf-6O3+w{0umA9BSSAdoMjBS(xw!97 z6J2`!Sdj{_AQ%?;%yQCQxm#YwXT}pwT6C6PoOS6H_XYf-X%aGqM)v~<`)Zt?C{Jm4&j9rr1jzhA7Lkf#sb*KjWhc?-k zcK~okL|4!+387MxB;UC4W!yzj$UGmM>wj3++R-Wd1}&0&IrBA6yApge1X!Q|ziCfY zD56Oh0VfS>f;Q0j!if4aAR^lx_L<7azLbEDZdAJ219h~aaYYirj?)%NPZtWc!-d)o z3sv>VRR1Qu67rmw!h~qwL0Lw0!=yPN>4Nr9XuD z^#BNY!kO8^eY0U%9I!NXV1kdea)M00c%nxf^1m5Sr|iX6Bj9+rvzN z!)GReC=fh^{ipDzZUo!jw;8suUK?7V^0Qx^wKVZFlDR&)AsgyHr7Z1S!!G|3tpzgb z;MRmrdMt>#%WO8WOYbr-qu92IH^rp&40g#Jfnd_RnT@0I`H~FguZ;@r(*SB`KFCYo z``Gw)xIFnRQR@dTFEWyO@*+%{5P@MI-_E=_lnJ{MMvT~Zj)i2yR$$18uq3n?+LbII zT$|YWn%Hat!I3?KCZqA|SPyH4evsb|C7urP3U0W|oEL0jXM!~ZWFnk%@mGQP7TBEB z`?9)ip|dyS#hRNAtxMH-K!it3{zELo(Auz^X4#neEak9$JFXZ-We{C51VeyqRh1Ub z?uvBF{K`QKP$eg@q+vU<%v$&2T;)LQLY$Xqfw;iQa@e)!-n`sq(ttIL)Ekz~wad+A zyLvXD0VIQQykh^@4EZx@Hvx??C9>q5i`LnH5cBM!H{0TL40Ar~>Pc#r0I z@2oYq6p*niUcvLRH+G9_`~P)R5{o~rc5au4an$>7{&iCViVJG%V|ko5$LY=)B4yfG zTpZ<`$CeTP+cSkCpjGmS#RYlA6FqPXX@Pcx0|S7gB39zRi4DGr|G#CLRENY}SQ8ge zT@Ih^&P1BT_N}qi?EgY~_Io+A>w!oU92lTWqK^!iJCueMd+ zB=Z$eY6ic`1uEDx zfAYWo+EDx-?-W6sq`K$;{stf8W+`lYF-sNd4bq_j|CKVTrR&~ zxL;>0JTTjJ;n6(fuQutWraoUbp%L68{+fYAZ(lRH%#V$2tILw>)pnelx5ZN?(2AFM z)o;j=Om!7;y==*ClgUVqbavvZwHRBFqQ@SVXx>Mq*1V=jZ0YihG_ZGimNjN}sijNq z>q!W^#(^qjnUMVtME`d&y%K)iH(IyCTlkn_?>mm_C5yhhkF3kt=e#sO@eAP<)v6v8 zLPu4^=V$e#OGS5L`>>z^7~7LRD0V!OJs4^!i*onv{L}q8VkMKlf6U}}o#1R+k$gkn zzYy}hS9-@)7cH-S^nMl_C1S<;f$0s%HcX!iV-xy}s2enl-%l}7@uZp}b^eHXJxYwh zA=%2H(VvV=0&8BYiu*okpV@bec6cm#*(yHP=BR?LEWS;uuLi?~It zvWjs7_}jjnJWc%=(pXQ*SeiEu#h*kA$vHd(QmS4kH$M=1qocasvil~*0s+qw56Rnvuf#B|X_GWNHF zp$oUENwf!VTdRj#(K6FY>7!WJ37;Uh2IE)c!u|HB`#%l#^ri_&BwcVfU0lC=d76k^ zZQ`;_3g7o#kF<*7>$rf2gM|l6s=_zyI}Q2;`phbZgb!6S5WI|U|M25<<8PHYn!sA+ zul~Vt+-L+%Neya^RvD+Bb%hj~NekOe^-wS7#HwBTuASm|>B5>#hg04Hi)m2fy$#KA(vA7(E2`rzg}!f>1wPMx zE~;2b2>#)CW8rB@u1~6Th;66)3Wti8)mCAhszTjEnP2JQsn@<#uV0_t^g(mdvPuf6 z^t;u~-h#Kh4-xp`5s0+YIa2G0epaSU^G0vVZmqKzKcZK?EvT{xZ#P}_)oxMX-+%Y$ z4Khfx*@EUSmBm=-<=ui$U?e8vqgeSShq^{myh zNELlK`8q!SSIl7LUOwNthW7is(V*^v8gwYg+YsmTvl*G|v|;kh&Wq^aHDpP&@H$&E z0A(ZEivivN#Ax`96EW3^pFhw3KFWEf>jyJ;251SiLBug&&Bwl^0W}CnnKSriK#YGb zZ_zFi#r?!(uTe?PlfW4YZ+F>VOwc?_wtho^+|>urb!-a6ilEG*s>O2;B&0a9zWvW< zs6etuY#%gn`Nw`7Dx1D2r zpSfe5FRqcYzc>)~tkn+G$;AA3D-UtwIh6ATH-<^fr56nB9p?jPe zR7w{uNt(>uVaN=zM0tuCcSMdoSo(<}knpo_=3=3u;-ciFuC9LHtWbwDUd(3~|7^w% zt%e+4g7w;lab_>8{w78)E-zm%Ak4f$d$_Mq^zh+4Y0^(39wSD%moMa^-0%_2gaR0Q z`GMEpLWh}K2}5PbCQEASL(2pdDq^=8{Le5zK26CHT+|%DCav-8pXcSZrGerAJgF?hfC3sVeSwcu|~$Bb$J(M6t!Kb7*5e#EbIvp6Mle(4aL<*Bj1a4bo6xkEk?9&f)wWE4~^Qrgh1O#ZOZ*^ zB#X<7ib9cRLbf043<8|AHEX!3eDaqJRvG8A++V>{f9l!ce*KeB&cEaSeN?n#lkV&6 ze)=ni7x}zQ{`%ZZ!5Rbk{$5rmzuNLYm#brHzSA(VtM|3(L>dL94q{=|lG4RU`t8_< z8GQ%an|6~~adj7@a!MSShB9R~l2LlT2_-5$&pl(Wv0ff(^AFVMa~SdDe;$Rkg(Tn3 z?s0JcD6#{DknzcL5>IRqoru6?l= z$l#4;YKp%@2Qq)C9K$5EhM`9ayq$8sftxIT(DZ0fW8Y6f|MI$SqKULhV>w4rz05)I zi$%i`CbZ`f=Vf0*UApgGpJcyLyolvec>KELm)QB^C~sOP_wc){7pS`&l4Rk!_w#8xmCvJ<+*SXFUDvl)N7qh<=)PY` zZxm{q+@@j0;Yyeh*N+C?-Cj#EG3&U+u$yshrTBivyed*GDP_^1Xs0Gng;}?vaYR&q z1go2&sp?voGAQu#ltuvKA|xe1m00n>VM%h~&Re`~L;AR|WY<5{1Nv?}R=KIaXX#>s z-cnn_3n)u_zZLOV?Wxm$@Uj?im0TWdz5jI}_W_0ZechC62X-2cTKKuR)gO$!ED2it zg&h)szXeh#z1}^@(J{=f#-OGY)!Q&}6wV{HAT z;Kh(wCyKI~U7DF!S(tgf$vTgKe9x;2N{SIRo#KNUQiJ}ZRmEPF-y)J(Fs!i=T9S1p zU_(=@I(+wnDn;Jl)6(@iMaJ*%hLV1n)VYrTLdKs~j7V(8`icItk@3vs z#n0M}eKT{8gw&$x9xv=H+~kj|uFgaqiLf_Nht-q*!L6^%kKe%@uph?Y{!xb!?YFe7T9a87%#% z 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 feP+?&f+ANA9=;O` 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%0DS4V- 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

    h#ta(Aq8QU&Ff4-e30k`gAUtOM{5u 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

    Zv(ONgXSOlhCKTkC>c2s)mG$h`9A@z7}HQ!9N^ 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≶DpjN6<)O#uw!c67- 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 z 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㧦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%0Aae#3-FtG1RBUwWs2Ci3!QUiV^ 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 Date: Thu, 27 Jun 2024 20:27:15 +0300 Subject: [PATCH 200/219] update erratum --- docs/hardware/errata.rst | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/hardware/errata.rst b/docs/hardware/errata.rst index ce8a4123..99bdb02e 100644 --- a/docs/hardware/errata.rst +++ b/docs/hardware/errata.rst @@ -3,7 +3,7 @@ Hardware Errata .. _alpha-erratum-1: -Tinymovr Alpha CAN Bus Connector Erratum +Tinymovr Alpha CAN Bus Connector **************************************** The CANine v1 Adapter that came with Tinymovr alpha had the DF-13 pins reversed and as such is not compatible with regular DF-13 cables. Alpha users are advised to use the alternative pin header on the board and the included DF-13 to 2.54mm pin converter cable to communicate with Tinymovr, as shown in the diagram below: @@ -16,7 +16,7 @@ Note above that the red wire should stay disconnected and to the left side of th .. _alpha-erratum-2: -Tinymovr Alpha USB Micro Connector Erratum +Tinymovr Alpha USB Micro Connector ****************************************** The USB Micro connector used in the v1 adapter was unfortunately not very robust. In order to ensure that there is a good contact between the board and the USB cable, please ensure the male connector of the cable is firmly seated in the female connector of the board. @@ -33,6 +33,17 @@ Tinymovr R5 UART Silkscreen Reversed The silkscreen next to the UART port on the rear of Tinymovr R5 has the order of pins reversed. The correct pins are provided in the figure below. +This does not affect R5.2 and above. + .. image:: erratum_R51.png :width: 600 - :alt: Tinymovr R5 reversed silkscreen on UART port \ No newline at end of file + :alt: Tinymovr R5 reversed silkscreen on UART port + +.. _r52-erratum-1: + +Tinymovr R5.2 FLEX2 Port as SPI +************************************ + +Even though Tinymovr R5.2 has the FLEX2 port which can function as SPI, due to a hardware incompatibility this port does not implement SPI correctly. As such, external sensors are only supported on the M5.x series at the moment. + +Tinymovr R5.3 and above does not have this issue and supports external SPI sensors normally. \ No newline at end of file From 4a12c9c558fd23547e03815ba6116f1c27c3479d Mon Sep 17 00:00:00 2001 From: Yannis Date: Mon, 1 Jul 2024 11:54:06 +0300 Subject: [PATCH 201/219] Update expired Discord link --- docs/troubleshooting.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 8cd79db0..d29ee3fb 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -4,4 +4,4 @@ Troubleshooting Please take a look at `Github Discussions `_ and `Github Issues `_ , and ask any questions there. -You are more than welcome to join the `Tinymovr Discord Server `_ and ask any questions there, or have a chat with us! \ No newline at end of file +You are more than welcome to join the `Tinymovr Discord Server `_ and ask any questions there, or have a chat with us! From 9e3856b9ccc2e29f929b7c1207a44c2d6e31ba6b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 6 Jul 2024 21:08:51 +0300 Subject: [PATCH 202/219] validate data written to nvm --- firmware/src/nvm/nvm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index a6f35222..5e432f2b 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -27,8 +27,9 @@ const uint32_t config_size = sizeof(struct NVMStruct); bool nvm_save_config(void) { - bool commited = false; uint8_t data[sizeof(struct NVMStruct)]; + uint8_t readback_data[sizeof(struct NVMStruct)]; + s.node_id_1 = CAN_get_ID(); s.node_id_2 = CAN_get_ID(); frames_get_config(&(s.frames_config)); @@ -48,9 +49,14 @@ bool nvm_save_config(void) flash_erase_page(SETTINGS_PAGE); flash_write((uint8_t *)SETTINGS_PAGE_HEX, dataBuffer, sizeof(struct NVMStruct)); __enable_irq(); - commited = true; + + memcpy(readback_data, (uint8_t *)SETTINGS_PAGE_HEX, sizeof(struct NVMStruct)); + if (memcmp(data, readback_data, sizeof(struct NVMStruct)) == 0) + { + return true; + } } - return commited; + return false; } bool nvm_load_config(void) From 83442d098fa577c389621b788fe7632812ea5cfe Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 6 Jul 2024 21:31:50 +0300 Subject: [PATCH 203/219] add checksum validation --- firmware/src/nvm/nvm.c | 118 +++++++++++++++++++++++------------------ firmware/src/nvm/nvm.h | 3 +- 2 files changed, 69 insertions(+), 52 deletions(-) diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index 5e432f2b..612c172a 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -1,4 +1,3 @@ - // * This file is part of the Tinymovr-Firmware distribution // * (https://github.com/yconst/tinymovr-firmware). // * Copyright (c) 2020-2023 Ioannis Chatzikonstantinou. @@ -25,70 +24,87 @@ static struct NVMStruct s; const uint32_t config_size = sizeof(struct NVMStruct); +uint32_t calculate_checksum(const uint8_t *data, size_t len) +{ + uint32_t checksum = 0; + for (size_t i = 0; i < len; ++i) + { + checksum += data[i]; + } + return ~checksum + 1; +} + bool nvm_save_config(void) { - uint8_t data[sizeof(struct NVMStruct)]; - uint8_t readback_data[sizeof(struct NVMStruct)]; + uint8_t data[sizeof(struct NVMStruct)]; + uint8_t readback_data[sizeof(struct NVMStruct)]; - s.node_id_1 = CAN_get_ID(); - s.node_id_2 = CAN_get_ID(); - frames_get_config(&(s.frames_config)); - s.adc_config = *ADC_get_config(); - s.motor_config = *motor_get_config(); - sensors_get_config(&(s.sensors_config)); - observers_get_config(&(s.observers_config)); - s.controller_config = *controller_get_config(); - s.can_config = *CAN_get_config(); - s.traj_planner_config = *traj_planner_get_config(); - strlcpy(s.version, GIT_VERSION, sizeof(s.version)); - memcpy(data, &s, sizeof(struct NVMStruct)); - if (CONTROLLER_STATE_IDLE == controller_get_state()) - { - uint8_t *dataBuffer = data; - __disable_irq(); - flash_erase_page(SETTINGS_PAGE); - flash_write((uint8_t *)SETTINGS_PAGE_HEX, dataBuffer, sizeof(struct NVMStruct)); - __enable_irq(); + s.node_id_1 = CAN_get_ID(); + s.node_id_2 = CAN_get_ID(); + frames_get_config(&(s.frames_config)); + s.adc_config = *ADC_get_config(); + s.motor_config = *motor_get_config(); + sensors_get_config(&(s.sensors_config)); + observers_get_config(&(s.observers_config)); + s.controller_config = *controller_get_config(); + s.can_config = *CAN_get_config(); + s.traj_planner_config = *traj_planner_get_config(); + strncpy(s.version, GIT_VERSION, sizeof(s.version) - 1); + s.version[sizeof(s.version) - 1] = '\0'; // Ensure null-termination + + memcpy(data, &s, sizeof(struct NVMStruct) - sizeof(s.checksum)); + s.checksum = calculate_checksum(data, sizeof(struct NVMStruct) - sizeof(s.checksum)); + memcpy(data + sizeof(struct NVMStruct) - sizeof(s.checksum), &s.checksum, sizeof(s.checksum)); - memcpy(readback_data, (uint8_t *)SETTINGS_PAGE_HEX, sizeof(struct NVMStruct)); + if (CONTROLLER_STATE_IDLE == controller_get_state()) + { + uint8_t *dataBuffer = data; + __disable_irq(); + flash_erase_page(SETTINGS_PAGE); + flash_write((uint8_t *)SETTINGS_PAGE_HEX, dataBuffer, sizeof(struct NVMStruct)); + __enable_irq(); + + memcpy(readback_data, (uint8_t *)SETTINGS_PAGE_HEX, sizeof(struct NVMStruct)); if (memcmp(data, readback_data, sizeof(struct NVMStruct)) == 0) { return true; } - } - return false; + } + return false; } bool nvm_load_config(void) { - memcpy(&s, (uint8_t *)SETTINGS_PAGE_HEX, sizeof(struct NVMStruct)); - // TODO: Also validate checksum - bool loaded = false; - char static_version[16]; - strlcpy(static_version, GIT_VERSION, sizeof(static_version)); - if (strcmp(s.version, static_version) == 0) - { - frames_restore_config(&s.frames_config); - ADC_restore_config(&s.adc_config); - motor_restore_config(&s.motor_config); - sensors_restore_config(&s.sensors_config); - observers_restore_config(&s.observers_config); - controller_restore_config(&s.controller_config); - CAN_restore_config(&s.can_config); - traj_planner_restore_config(&s.traj_planner_config); - loaded = true; - } - return loaded; + memcpy(&s, (uint8_t *)SETTINGS_PAGE_HEX, sizeof(struct NVMStruct)); + uint32_t calculated_checksum = calculate_checksum((uint8_t *)&s, sizeof(struct NVMStruct) - sizeof(s.checksum)); + if (calculated_checksum != s.checksum) + { + return false; // Checksum mismatch, data is corrupt + } + + if (strncmp(s.version, GIT_VERSION, sizeof(s.version)) == 0) + { + frames_restore_config(&s.frames_config); + ADC_restore_config(&s.adc_config); + motor_restore_config(&s.motor_config); + sensors_restore_config(&s.sensors_config); + observers_restore_config(&s.observers_config); + controller_restore_config(&s.controller_config); + CAN_restore_config(&s.can_config); + traj_planner_restore_config(&s.traj_planner_config); + return true; + } + return false; } void nvm_erase(void) { - if (CONTROLLER_STATE_IDLE == controller_get_state()) - { - for (uint8_t i=0; i Date: Mon, 8 Jul 2024 02:32:13 +0300 Subject: [PATCH 204/219] fix saving and validating to nvm --- firmware/src/can/can_endpoints.c | 2 +- firmware/src/nvm/flash_func.c | 10 ++++++++-- firmware/src/nvm/nvm.c | 27 ++++++++++++++++----------- firmware/src/nvm/nvm.h | 1 + 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index cc4f6cfc..9e843035 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -163,7 +163,7 @@ uint8_t avlos_save_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command uint8_t avlos_erase_config(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { - nvm_erase(); + nvm_erase_and_reset(); return AVLOS_RET_CALL; } diff --git a/firmware/src/nvm/flash_func.c b/firmware/src/nvm/flash_func.c index c015dd4e..5485c994 100644 --- a/firmware/src/nvm/flash_func.c +++ b/firmware/src/nvm/flash_func.c @@ -22,7 +22,10 @@ /// @retval None /// //============================================================================== -TM_RAMFUNC void flash_erase_page(uint32_t page_num) +#if defined(__GNUC__) + __attribute__((optimize("-O0"))) +#endif +PAC5XXX_RAMFUNC void flash_erase_page(uint32_t page_num) { // Enable Write Access to FLash Controller PAC55XX_MEMCTL->FLASHLOCK = FLASH_LOCK_ALLOW_WRITE_ERASE_FLASH; @@ -49,7 +52,10 @@ TM_RAMFUNC void flash_erase_page(uint32_t page_num) /// @retval None /// //============================================================================== -TM_RAMFUNC void flash_erase_key(uint32_t key) +#if defined(__GNUC__) + __attribute__((optimize("-O0"))) +#endif +PAC5XXX_RAMFUNC void flash_erase_key(uint32_t key) { // Enable Write Access to FLash Controller PAC55XX_MEMCTL->FLASHLOCK = FLASH_LOCK_ALLOW_WRITE_ERASE_FLASH; diff --git a/firmware/src/nvm/nvm.c b/firmware/src/nvm/nvm.c index 612c172a..efb7dee5 100644 --- a/firmware/src/nvm/nvm.c +++ b/firmware/src/nvm/nvm.c @@ -49,8 +49,7 @@ bool nvm_save_config(void) s.controller_config = *controller_get_config(); s.can_config = *CAN_get_config(); s.traj_planner_config = *traj_planner_get_config(); - strncpy(s.version, GIT_VERSION, sizeof(s.version) - 1); - s.version[sizeof(s.version) - 1] = '\0'; // Ensure null-termination + strncpy(s.version, GIT_VERSION, sizeof(s.version)); memcpy(data, &s, sizeof(struct NVMStruct) - sizeof(s.checksum)); s.checksum = calculate_checksum(data, sizeof(struct NVMStruct) - sizeof(s.checksum)); @@ -60,7 +59,7 @@ bool nvm_save_config(void) { uint8_t *dataBuffer = data; __disable_irq(); - flash_erase_page(SETTINGS_PAGE); + nvm_erase(); flash_write((uint8_t *)SETTINGS_PAGE_HEX, dataBuffer, sizeof(struct NVMStruct)); __enable_irq(); @@ -79,7 +78,7 @@ bool nvm_load_config(void) uint32_t calculated_checksum = calculate_checksum((uint8_t *)&s, sizeof(struct NVMStruct) - sizeof(s.checksum)); if (calculated_checksum != s.checksum) { - return false; // Checksum mismatch, data is corrupt + return false; } if (strncmp(s.version, GIT_VERSION, sizeof(s.version)) == 0) @@ -99,12 +98,18 @@ bool nvm_load_config(void) void nvm_erase(void) { - if (CONTROLLER_STATE_IDLE == controller_get_state()) + for (uint8_t i = 0; i < SETTINGS_PAGE_COUNT; i++) + { + flash_erase_page(SETTINGS_PAGE + i); + } +} + +// This separate function is needed to interface with the protocol +void nvm_erase_and_reset(void) +{ + if (CONTROLLER_STATE_IDLE == controller_get_state()) { - for (uint8_t i = 0; i < SETTINGS_PAGE_COUNT; i++) - { - flash_erase_page(SETTINGS_PAGE + i); - } - system_reset(); - } + nvm_erase(); + system_reset(); + } } diff --git a/firmware/src/nvm/nvm.h b/firmware/src/nvm/nvm.h index 878f96ab..d2d78966 100644 --- a/firmware/src/nvm/nvm.h +++ b/firmware/src/nvm/nvm.h @@ -50,5 +50,6 @@ extern const uint32_t config_size; bool nvm_save_config(void); bool nvm_load_config(void); void nvm_erase(void); +void nvm_erase_and_reset(void); uint32_t calculate_checksum(const uint8_t *data, size_t len); From 057534bc6c69d60c1621dadd39e7a10a5cebc395 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 8 Jul 2024 02:32:23 +0300 Subject: [PATCH 205/219] rename test --- studio/Python/tests/{test_board_config.py => test_nvm.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename studio/Python/tests/{test_board_config.py => test_nvm.py} (99%) diff --git a/studio/Python/tests/test_board_config.py b/studio/Python/tests/test_nvm.py similarity index 99% rename from studio/Python/tests/test_board_config.py rename to studio/Python/tests/test_nvm.py index 8b5c0c0a..dccce1f0 100644 --- a/studio/Python/tests/test_board_config.py +++ b/studio/Python/tests/test_nvm.py @@ -30,7 +30,7 @@ tsleep = 0.30 -class TestBoardConfig(TMTestCase): +class TestNVM(TMTestCase): def test_a_state_errors(self): """ Test state transitions From 5fbcd6f7d7da7ce0b14af57d67fb8fe3f6cfd9a8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 14 Jul 2024 20:46:03 +0300 Subject: [PATCH 206/219] update spec --- docs/protocol/reference.rst | 2 + firmware/src/can/can_endpoints.h | 2 +- firmware/src/tm_enums.h | 3 +- .../Python/tinymovr/specs/tinymovr_2_3_x.yaml | 622 ++++++++++++++++++ 4 files changed, 627 insertions(+), 2 deletions(-) create mode 100644 studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index a2cc7735..baf94b7f 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -324,6 +324,8 @@ Flags: - CURRENT_LIMIT_EXCEEDED +- PRE_CL_I_SD_EXCEEDED + controller.position.setpoint ------------------------------------------------------------------- diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 531c1eed..a606d63f 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -static const uint32_t avlos_proto_hash = 3296093882; +static const uint32_t avlos_proto_hash = 1031937702; extern uint8_t (*avlos_endpoints[97])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index 976305fe..b5182773 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -56,7 +56,8 @@ typedef enum typedef enum { CONTROLLER_ERRORS_NONE = 0, - CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED = (1 << 0) + CONTROLLER_ERRORS_CURRENT_LIMIT_EXCEEDED = (1 << 0), + CONTROLLER_ERRORS_PRE_CL_I_SD_EXCEEDED = (1 << 1) } controller_errors_flags; typedef enum diff --git a/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml b/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml new file mode 100644 index 00000000..e91876bb --- /dev/null +++ b/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml @@ -0,0 +1,622 @@ + +name: tm +remote_attributes: + - name: protocol_hash + dtype: uint32 + getter_name: _avlos_get_proto_hash + summary: The Avlos protocol hash. + - name: uid + dtype: uint32 + getter_name: system_get_uid + summary: The unique device ID, unique to each PAC55xx chip produced. + - name: fw_version + dtype: string + getter_name: system_get_fw_version_string + summary: The firmware version. + - name: hw_revision + dtype: uint32 + getter_name: system_get_hw_revision + summary: The hardware revision. + - name: Vbus + dtype: float + unit: volt + meta: {dynamic: True} + getter_name: system_get_Vbus + summary: The measured bus voltage. + - name: Ibus + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Ibus_est + summary: The estimated bus current. Only estimates current drawn by motor. + - name: power + dtype: float + unit: watt + meta: {dynamic: True} + getter_name: controller_get_power_est + summary: The estimated power. Only estimates power drawn by motor. + - name: temp + dtype: float + unit: degC + meta: {dynamic: True} + getter_name: ADC_get_mcu_temp + summary: The internal temperature of the PAC55xx MCU. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: system_get_calibrated + summary: Whether the system has been calibrated. + - name: errors + flags: [UNDERVOLTAGE] + meta: {dynamic: True} + getter_name: system_get_errors + summary: Any system errors, as a bitmask + - name: warnings + flags: [DRIVER_FAULT, CHARGE_PUMP_FAULT_STAT, CHARGE_PUMP_FAULT, DRV10_DISABLE, DRV32_DISABLE, DRV54_DISABLE] + meta: {dynamic: True} + getter_name: system_get_warnings + summary: Any system warnings, as a bitmask + - name: save_config + summary: Save configuration to non-volatile memory. + caller_name: nvm_save_config + dtype: void + arguments: [] + - name: erase_config + summary: Erase the config stored in non-volatile memory and reset the device. + caller_name: nvm_erase_and_reset + dtype: void + arguments: [] + meta: {reload_data: True} + - name: reset + summary: Reset the device. + caller_name: system_reset + dtype: void + arguments: [] + meta: {reload_data: True} + - name: enter_dfu + summary: Enter DFU mode. + caller_name: system_enter_dfu + dtype: void + arguments: [] + meta: {reload_data: True} + - name: config_size + summary: Size (in bytes) of the configuration object. + getter_name: system_get_config_size + dtype: uint32 + - name: scheduler + remote_attributes: + - name: load + summary: Processor load in ticks per PWM cycle. + getter_name: scheduler_get_load + meta: {dynamic: True} + dtype: uint32 + - name: warnings + flags: [CONTROL_BLOCK_REENTERED] + meta: {dynamic: True} + getter_name: scheduler_get_warnings + summary: Any scheduler warnings, as a bitmask + - name: controller + remote_attributes: + - name: state + options: [IDLE, CALIBRATE, CL_CONTROL] + meta: {dynamic: True} + getter_name: controller_get_state + setter_name: controller_set_state + summary: The state of the controller. + - name: mode + options: [CURRENT, VELOCITY, POSITION, TRAJECTORY, HOMING] + meta: {dynamic: True} + getter_name: controller_get_mode + setter_name: controller_set_mode + summary: The control mode of the controller. + - name: warnings + meta: {dynamic: True} + flags: [VELOCITY_LIMITED, CURRENT_LIMITED, MODULATION_LIMITED] + getter_name: controller_get_warnings + summary: Any controller warnings, as a bitmask + - name: errors + meta: {dynamic: True} + flags: [CURRENT_LIMIT_EXCEEDED, PRE_CL_I_SD_EXCEEDED] + getter_name: controller_get_errors + summary: Any controller errors, as a bitmask + - name: position + remote_attributes: + - name: setpoint + dtype: float + unit: tick + meta: {jog_step: 100} + getter_name: controller_get_pos_setpoint_user_frame + setter_name: controller_set_pos_setpoint_user_frame + summary: The position setpoint in the user reference frame. + - name: p_gain + dtype: float + meta: {export: True} + getter_name: controller_get_pos_gain + setter_name: controller_set_pos_gain + summary: The proportional gain of the position controller. + - name: velocity + remote_attributes: + - name: setpoint + dtype: float + unit: tick/sec + meta: {jog_step: 200} + getter_name: controller_get_vel_setpoint_user_frame + setter_name: controller_set_vel_setpoint_user_frame + summary: The velocity setpoint in the user reference frame. + - name: limit + dtype: float + unit: tick/sec + meta: {export: True} + getter_name: controller_get_vel_limit + setter_name: controller_set_vel_limit + summary: The velocity limit. + - name: p_gain + dtype: float + meta: {export: True} + getter_name: controller_get_vel_gain + setter_name: controller_set_vel_gain + summary: The proportional gain of the velocity controller. + - name: i_gain + dtype: float + meta: {export: True} + getter_name: controller_get_vel_integral_gain + setter_name: controller_set_vel_integral_gain + summary: The integral gain of the velocity controller. + - name: deadband + dtype: float + unit: tick + meta: {export: True} + getter_name: controller_get_vel_integral_deadband + setter_name: controller_set_vel_integral_deadband + rst_target: integrator-deadband + summary: The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. + - name: increment + dtype: float + meta: {export: True} + getter_name: controller_get_vel_increment + setter_name: controller_set_vel_increment + summary: Max velocity setpoint increment (ramping) rate. Set to 0 to disable. + - name: current + remote_attributes: + - name: Iq_setpoint + dtype: float + unit: ampere + meta: {jog_step: 0.005} + getter_name: controller_get_Iq_setpoint_user_frame + setter_name: controller_set_Iq_setpoint_user_frame + summary: The Iq setpoint in the user reference frame. + - name: Id_setpoint + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Id_setpoint_user_frame + summary: The Id setpoint in the user reference frame. + - name: Iq_limit + dtype: float + unit: ampere + getter_name: controller_get_Iq_limit + setter_name: controller_set_Iq_limit + summary: The Iq limit. + - name: Iq_estimate + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Iq_estimate_user_frame + summary: The Iq estimate in the user reference frame. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: controller_get_I_bw + setter_name: controller_set_I_bw + summary: The current controller bandwidth. + - name: Iq_p_gain + dtype: float + getter_name: controller_get_Iq_gain + summary: The current controller proportional gain. + - name: max_Ibus_regen + dtype: float + unit: ampere + getter_name: controller_get_max_Ibus_regen + setter_name: controller_set_max_Ibus_regen + summary: The max current allowed to be fed back to the power source before flux braking activates. + - name: max_Ibrake + dtype: float + unit: ampere + meta: {export: True} + getter_name: controller_get_max_Ibrake + setter_name: controller_set_max_Ibrake + summary: The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. + - name: voltage + remote_attributes: + - name: Vq_setpoint + dtype: float + unit: volt + meta: {dynamic: True} + getter_name: controller_get_Vq_setpoint_user_frame + summary: The Vq setpoint. + - name: calibrate + summary: Calibrate the device. + caller_name: controller_calibrate + dtype: void + arguments: [] + - name: idle + summary: Set idle mode, disabling the driver. + caller_name: controller_idle + dtype: void + arguments: [] + - name: position_mode + summary: Set position control mode. + caller_name: controller_position_mode + dtype: void + arguments: [] + - name: velocity_mode + summary: Set velocity control mode. + caller_name: controller_velocity_mode + dtype: void + arguments: [] + - name: current_mode + summary: Set current control mode. + caller_name: controller_current_mode + dtype: void + arguments: [] + - name: set_pos_vel_setpoints + summary: Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate + caller_name: controller_set_pos_vel_setpoints_user_frame + dtype: float + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: vel_setpoint + dtype: float + unit: tick + - name: comms + remote_attributes: + - name: can + remote_attributes: + - name: rate + dtype: uint32 + meta: {export: True} + getter_name: CAN_get_kbit_rate + setter_name: CAN_set_kbit_rate + rst_target: api-can-rate + summary: The baud rate of the CAN interface. + - name: id + dtype: uint32 + meta: {export: True, reload_data: True} + getter_name: CAN_get_ID + setter_name: CAN_set_ID + summary: The ID of the CAN interface. + - name: heartbeat + dtype: bool + getter_name: CAN_get_send_heartbeat + setter_name: CAN_set_send_heartbeat + summary: Toggle sending of heartbeat messages. + - name: motor + remote_attributes: + - name: R + dtype: float + unit: ohm + meta: {dynamic: True, export: True} + getter_name: motor_get_phase_resistance + setter_name: motor_set_phase_resistance + summary: The motor Resistance value. + - name: L + dtype: float + unit: henry + meta: {dynamic: True, export: True} + getter_name: motor_get_phase_inductance + setter_name: motor_set_phase_inductance + summary: The motor Inductance value. + - name: pole_pairs + dtype: uint8 + meta: {dynamic: True, export: True} + getter_name: motor_get_pole_pairs + setter_name: motor_set_pole_pairs + summary: The motor pole pair count. + - name: type + options: [HIGH_CURRENT, GIMBAL] + meta: {export: True} + getter_name: motor_get_is_gimbal + setter_name: motor_set_is_gimbal + summary: The type of the motor. Either high current or gimbal. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: motor_get_calibrated + summary: Whether the motor has been calibrated. + - name: I_cal + dtype: float + unit: ampere + meta: {export: True} + getter_name: motor_get_I_cal + setter_name: motor_set_I_cal + summary: The calibration current. + - name: errors + flags: [PHASE_RESISTANCE_OUT_OF_RANGE, PHASE_INDUCTANCE_OUT_OF_RANGE, POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE, POLE_PAIRS_OUT_OF_RANGE] + meta: {dynamic: True} + getter_name: motor_get_errors + summary: Any motor/calibration errors, as a bitmask + - name: sensors + remote_attributes: + - name: user_frame + remote_attributes: + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: user_frame_get_pos_estimate + summary: The filtered position estimate in the user reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: user_frame_get_vel_estimate + summary: The filtered velocity estimate in the user reference frame. + - name: offset + dtype: float + unit: ticks + getter_name: frame_user_to_position_sensor_get_offset + setter_name: frame_user_to_position_sensor_set_offset + summary: The user defined offset. + - name: multiplier + dtype: float + getter_name: frame_user_to_position_sensor_get_multiplier + setter_name: frame_user_to_position_sensor_set_multiplier + summary: The user defined multipler. + - name: setup + remote_attributes: + - name: onboard + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_onboard_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_onboard_get_errors + summary: Any sensor errors, as a bitmask + - name: external_spi + remote_attributes: + - name: type + options: [MA7XX, AS5047, AMT22] + meta: {export: True} + getter_name: sensor_external_spi_get_type_avlos + setter_name: sensor_external_spi_set_type_avlos + summary: The type of the external sensor. + - name: rate + options: [1_5Mbps, 3Mbps, 6Mbps, 8Mbps, 12Mbps] + meta: {export: True, dynamic: True} + getter_name: sensor_external_spi_get_rate_avlos + setter_name: sensor_external_spi_set_rate_avlos + summary: The rate of the external sensor. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_external_spi_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_external_spi_get_errors + summary: Any sensor errors, as a bitmask + - name: hall + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_hall_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_hall_get_errors + summary: Any sensor errors, as a bitmask + - name: select + remote_attributes: + - name: position_sensor + remote_attributes: + - name: connection + options: [ONBOARD, EXTERNAL_SPI, HALL] + meta: {export: True} + getter_name: position_sensor_get_connection + setter_name: position_sensor_set_connection + summary: The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: position_observer_get_bandwidth + setter_name: position_observer_set_bandwidth + summary: The position sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_position_get_raw_angle + summary: The raw position sensor angle. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: position_observer_get_pos_estimate + summary: The filtered position estimate in the position sensor reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: position_observer_get_vel_estimate + summary: The filtered velocity estimate in the position sensor reference frame. + - name: commutation_sensor + remote_attributes: + - name: connection + options: [ONBOARD, EXTERNAL_SPI, HALL] + meta: {export: True} + getter_name: commutation_sensor_get_connection + setter_name: commutation_sensor_set_connection + summary: The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: commutation_observer_get_bandwidth + setter_name: commutation_observer_set_bandwidth + summary: The commutation sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_commutation_get_raw_angle + summary: The raw commutation sensor angle. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: commutation_observer_get_pos_estimate + summary: The filtered position estimate in the commutation sensor reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: commutation_observer_get_vel_estimate + summary: The filtered velocity estimate in the commutation sensor reference frame. + - name: traj_planner + remote_attributes: + - name: max_accel + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: planner_get_max_accel + setter_name: planner_set_max_accel + summary: The max allowed acceleration of the generated trajectory. + - name: max_decel + dtype: float + unit: ticks/second/second + meta: {export: True} + getter_name: planner_get_max_decel + setter_name: planner_set_max_decel + summary: The max allowed deceleration of the generated trajectory. + - name: max_vel + dtype: float + unit: ticks/second + meta: {export: True} + getter_name: planner_get_max_vel + setter_name: planner_set_max_vel + summary: The max allowed cruise velocity of the generated trajectory. + - name: t_accel + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_accel + setter_name: planner_set_deltat_accel + summary: In time mode, the acceleration time of the generated trajectory. + - name: t_decel + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_decel + setter_name: planner_set_deltat_decel + summary: In time mode, the deceleration time of the generated trajectory. + - name: t_total + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_total + setter_name: planner_set_deltat_total + summary: In time mode, the total time of the generated trajectory. + - name: move_to + summary: Move to target position in the user reference frame respecting velocity and acceleration limits. + caller_name: planner_move_to_vlimit + dtype: void + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: move_to_tlimit + summary: Move to target position in the user reference frame respecting time limits for each sector. + caller_name: planner_move_to_tlimit + dtype: void + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: errors + flags: [INVALID_INPUT, VCRUISE_OVER_LIMIT] + getter_name: planner_get_errors + summary: Any errors in the trajectory planner, as a bitmask + - name: homing + remote_attributes: + - name: velocity + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: homing_planner_get_homing_velocity + setter_name: homing_planner_set_homing_velocity + summary: The velocity at which the motor performs homing. + - name: max_homing_t + dtype: float + unit: s + meta: {export: True} + getter_name: homing_planner_get_max_homing_t + setter_name: homing_planner_set_max_homing_t + summary: The maximum time the motor is allowed to travel before homing times out and aborts. + - name: retract_dist + dtype: float + unit: ticks + meta: {export: True} + getter_name: homing_planner_get_retract_distance + setter_name: homing_planner_set_retract_distance + summary: The retraction distance the motor travels after the endstop has been found. + - name: warnings + meta: {dynamic: True} + flags: [HOMING_TIMEOUT] + getter_name: homing_planner_get_warnings + summary: Any homing warnings, as a bitmask + - name: stall_detect + remote_attributes: + - name: velocity + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: homing_planner_get_max_stall_vel + setter_name: homing_planner_set_max_stall_vel + summary: The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. + - name: delta_pos + dtype: float + unit: ticks + meta: {export: True} + getter_name: homing_planner_get_max_stall_delta_pos + setter_name: homing_planner_set_max_stall_delta_pos + summary: The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. + - name: t + dtype: float + unit: s + meta: {export: True} + getter_name: homing_planner_get_max_stall_t + setter_name: homing_planner_set_max_stall_t + summary: The time to remain in stall detection mode before the motor is considered stalled. + - name: home + summary: Perform the homing operation. + caller_name: homing_planner_home + dtype: void + arguments: [] + - name: watchdog + remote_attributes: + - name: enabled + dtype: bool + getter_name: Watchdog_get_enabled + setter_name: Watchdog_set_enabled + summary: Whether the watchdog is enabled or not. + - name: triggered + dtype: bool + meta: {dynamic: True} + getter_name: Watchdog_triggered + summary: Whether the watchdog has been triggered or not. + - name: timeout + dtype: float + unit: s + meta: {export: True} + getter_name: Watchdog_get_timeout_seconds + setter_name: Watchdog_set_timeout_seconds + summary: The watchdog timeout period. From 01de8998d20f5a9470c740b8c6fd7770ed71d625 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 14 Jul 2024 20:46:19 +0300 Subject: [PATCH 207/219] first reset setpoint and wait --- studio/Python/tests/test_board.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 8d55fc77..330f6aaf 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -97,6 +97,9 @@ def test_d_position_control(self): self.tm.controller.position_mode() self.check_state(2) + self.tm.controller.position.setpoint = 0 + time.sleep(0.4) + for i in range(5): self.tm.controller.position.setpoint = i * 3000 * ticks if hw_rev > 20: From a2e16e61665483882420ccd444ca435730953d72 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 14 Jul 2024 20:46:34 +0300 Subject: [PATCH 208/219] relax some tests --- studio/Python/tests/test_board.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 330f6aaf..0203b860 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -161,6 +161,8 @@ def test_f_random_pos_control(self): self.tm.controller.position_mode() self.check_state(2) + self.tm.controller.velocity.limit = 200000 * ticks / s + for _ in range(15): new_pos = random.uniform(-24000, 24000) self.tm.controller.position.setpoint = new_pos * ticks @@ -262,11 +264,11 @@ def test_j_gimbal_mode(self): self.tm.controller.position_mode() self.check_state(2) - for i in range(10): - self.tm.controller.position.setpoint = i * 1000 * ticks + for i in range(5): + self.tm.controller.position.setpoint = i * 2000 * ticks time.sleep(0.3) self.assertAlmostEqual( - i * 1000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks + i * 2000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=2000 * ticks ) @pytest.mark.hitl_default From 47bc4d1552e3eaabc2c8b367568e8a6e7bd86e63 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 14 Jul 2024 20:46:47 +0300 Subject: [PATCH 209/219] add pre-cl checks --- firmware/src/config.h | 2 ++ firmware/src/controller/controller.c | 41 ++++++++++++++++++++++++---- firmware/src/utils/utils.h | 25 +++++++++++------ 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/firmware/src/config.h b/firmware/src/config.h index c2fda7f9..91644f40 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -38,6 +38,8 @@ #define VBUS_LOW_THRESHOLD (10.4f) // V #define VEL_HARD_LIMIT (600000.0f) // ticks/s #define I_HARD_LIMIT (60.0f) // A +#define MAX_CL_INIT_STEPS (200) +#define PRE_CL_I_SD_MAX (0.4f) // Encoder rectification lookup table size #define ECN_BITS (6) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index 379674c4..d7cd55ae 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -15,11 +15,11 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see . -#include "src/system/system.h" +#include #include #include -#include "src/adc/adc.h" -#include "src/motor/motor.h" +#include +#include #include #include #include @@ -27,6 +27,8 @@ #include #include "src/watchdog/watchdog.h" +void CLPreStep(void); +void CLPreCheck(void); void CLControlStep(void); static inline bool Controller_LimitVelocity(float min_limit, float max_limit, float vel_estimate, float vel_gain, float *I); @@ -61,7 +63,10 @@ static ControllerState state = { .Iq_integrator = 0.0f, .Id_integrator = 0.0f, - .t_plan = 0.0f}; + .t_plan = 0.0f +}; + +Statistics pre_cl_stats = {0}; #if defined BOARD_REV_R32 || BOARD_REV_R33 || defined BOARD_REV_R5 @@ -134,6 +139,16 @@ void Controller_ControlLoop(void) controller_set_state(CONTROLLER_STATE_IDLE); Watchdog_reset(); } + else if ((motor_get_is_gimbal() == false) && pre_cl_stats.size < MAX_CL_INIT_STEPS) + { + CLPreStep(); + } + else if ((motor_get_is_gimbal() == false) && pre_cl_stats.size == MAX_CL_INIT_STEPS) + { + state.pos_setpoint = observer_get_pos_estimate(&position_observer); + CLPreStep(); + CLPreCheck(); + } else { CLControlStep(); @@ -143,6 +158,22 @@ void Controller_ControlLoop(void) } } +TM_RAMFUNC void CLPreStep(void) +{ + gate_driver_set_duty_cycle(&three_phase_zero); + // Should approximate zero as from Kirchoff + float Iphase_meas_sum = state.I_phase_meas.A + state.I_phase_meas.B + state.I_phase_meas.C; + update_statistics(&pre_cl_stats, Iphase_meas_sum); +} + +TM_RAMFUNC void CLPreCheck(void) +{ + if (calculate_standard_deviation(&pre_cl_stats) > PRE_CL_I_SD_MAX) + { + state.errors |= CONTROLLER_ERRORS_PRE_CL_I_SD_EXCEEDED; + } +} + TM_RAMFUNC void CLControlStep(void) { switch (state.mode) @@ -312,7 +343,6 @@ TM_RAMFUNC void controller_set_state(controller_state_options new_state) { if ((new_state == CONTROLLER_STATE_CL_CONTROL) && (state.state == CONTROLLER_STATE_IDLE) && (!errors_exist()) && motor_get_calibrated()) { - state.pos_setpoint = observer_get_pos_estimate(&position_observer); gate_driver_enable(); state.state = CONTROLLER_STATE_CL_CONTROL; } @@ -325,6 +355,7 @@ TM_RAMFUNC void controller_set_state(controller_state_options new_state) { gate_driver_set_duty_cycle(&three_phase_zero); gate_driver_disable(); + memset(&pre_cl_stats, 0, sizeof(pre_cl_stats)); state.state = CONTROLLER_STATE_IDLE; } } diff --git a/firmware/src/utils/utils.h b/firmware/src/utils/utils.h index 8c3ebd1d..0c052310 100644 --- a/firmware/src/utils/utils.h +++ b/firmware/src/utils/utils.h @@ -115,7 +115,6 @@ static inline float our_floorf(float x) return (float)((int)x - 1); } - // based on https://github.com/divideconcept/FastTrigo/blob/master/fasttrigo.cpp static inline float cos_32s(float x) { @@ -144,14 +143,24 @@ static inline float fast_sin(float angle) return fast_cos(halfpi-angle); } -static inline int calculate_parity(int x, int mask) +typedef struct { + float sum_current; + float sum_current_squared; + uint32_t size; +} Statistics; + +static inline void update_statistics(Statistics *s, float new_current) +{ + s->sum_current += new_current; + s->sum_current_squared += new_current * new_current; + s->size++; +} + +static inline float calculate_standard_deviation(Statistics *s) { - x &= mask; - x ^= x >> 8; - x ^= x >> 4; - x ^= x >> 2; - x ^= x >> 1; - return x & 1; + float mean = s->sum_current / s->size; + float mean_squares = s->sum_current_squared / s->size; + return fast_sqrt(mean_squares - mean * mean); } // https://github.com/madcowswe/ODrive/blob/3113aedf081cf40e942d25d3b0b36c8806f11f23/Firmware/MotorControl/utils.c From 0ffd0221a4164f1c47b1a09b67ea24dfa7803f31 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 17 Jul 2024 12:43:21 +0300 Subject: [PATCH 210/219] add abnormal calibration voltage check --- docs/protocol/reference.rst | 2 ++ firmware/src/can/can_endpoints.h | 2 +- firmware/src/config.h | 2 ++ firmware/src/motor/motor.c | 13 +++++++++++++ firmware/src/tm_enums.h | 3 ++- studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml | 2 +- 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index baf94b7f..0e48ccb4 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -759,6 +759,8 @@ Flags: - POLE_PAIRS_OUT_OF_RANGE +- ABNORMAL_CALIBRATION_VOLTAGE + sensors.user_frame.position_estimate ------------------------------------------------------------------- diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index a606d63f..952f3baa 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -static const uint32_t avlos_proto_hash = 1031937702; +static const uint32_t avlos_proto_hash = 641680925; extern uint8_t (*avlos_endpoints[97])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); diff --git a/firmware/src/config.h b/firmware/src/config.h index 91644f40..77bf4570 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -31,6 +31,8 @@ #define PWM_FREQ_HZ (20000) #define SYSTICK_FREQ_HZ (1000) +#define MAX_CALIBRATION_POWER 30.0f // W + // Control parameters #define PWM_LIMIT (0.8f) #define I_INTEGRATOR_DECAY_FACTOR (0.995f) diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index c186fea7..a4605169 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -83,17 +83,29 @@ bool motor_calibrate_resistance(void) float V_setpoint = 0.0f; FloatTriplet I_phase_meas = {0.0f}; FloatTriplet modulation_values = {0.0f}; + for (uint32_t i = 0; i < CAL_R_LEN; i++) { ADC_get_phase_currents(&I_phase_meas); + + if (powf(V_setpoint, 2) / MAX_PHASE_RESISTANCE > MAX_CALIBRATION_POWER) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_ABNORMAL_CALIBRATION_VOLTAGE; + gate_driver_set_duty_cycle(&three_phase_zero); + return false; + } + V_setpoint += CAL_V_GAIN * (I_cal - I_phase_meas.A); const float pwm_setpoint = V_setpoint / system_get_Vbus(); SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); gate_driver_set_duty_cycle(&modulation_values); wait_for_control_loop_interrupt(); } + const float R = our_fabsf(V_setpoint / I_cal); gate_driver_set_duty_cycle(&three_phase_zero); + if ((R <= MIN_PHASE_RESISTANCE) || (R >= MAX_PHASE_RESISTANCE)) { uint8_t *error_ptr = motor_get_error_ptr(); @@ -108,6 +120,7 @@ bool motor_calibrate_resistance(void) return true; } + bool motor_calibrate_inductance(void) { if (!motor_get_is_gimbal()) diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index b5182773..dcf35f4d 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -66,7 +66,8 @@ typedef enum MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE = (1 << 0), MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE = (1 << 1), MOTOR_ERRORS_POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE = (1 << 2), - MOTOR_ERRORS_POLE_PAIRS_OUT_OF_RANGE = (1 << 3) + MOTOR_ERRORS_POLE_PAIRS_OUT_OF_RANGE = (1 << 3), + MOTOR_ERRORS_ABNORMAL_CALIBRATION_VOLTAGE = (1 << 4) } motor_errors_flags; typedef enum diff --git a/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml b/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml index e91876bb..04c926a2 100644 --- a/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_2_3_x.yaml @@ -334,7 +334,7 @@ remote_attributes: setter_name: motor_set_I_cal summary: The calibration current. - name: errors - flags: [PHASE_RESISTANCE_OUT_OF_RANGE, PHASE_INDUCTANCE_OUT_OF_RANGE, POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE, POLE_PAIRS_OUT_OF_RANGE] + flags: [PHASE_RESISTANCE_OUT_OF_RANGE, PHASE_INDUCTANCE_OUT_OF_RANGE, POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE, POLE_PAIRS_OUT_OF_RANGE, ABNORMAL_CALIBRATION_VOLTAGE] meta: {dynamic: True} getter_name: motor_get_errors summary: Any motor/calibration errors, as a bitmask From 49a2ea338bd4772517717a57c684c975282c2bae Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 29 Jul 2024 14:11:00 +0300 Subject: [PATCH 211/219] Refactor abnormal voltage check to be more robust --- firmware/src/config.h | 2 -- firmware/src/motor/motor.c | 3 ++- firmware/src/motor/motor.h | 4 ++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/firmware/src/config.h b/firmware/src/config.h index 77bf4570..91644f40 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -31,8 +31,6 @@ #define PWM_FREQ_HZ (20000) #define SYSTICK_FREQ_HZ (1000) -#define MAX_CALIBRATION_POWER 30.0f // W - // Control parameters #define PWM_LIMIT (0.8f) #define I_INTEGRATOR_DECAY_FACTOR (0.995f) diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index a4605169..4465136d 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -88,7 +88,8 @@ bool motor_calibrate_resistance(void) { ADC_get_phase_currents(&I_phase_meas); - if (powf(V_setpoint, 2) / MAX_PHASE_RESISTANCE > MAX_CALIBRATION_POWER) + // + if (V_setpoint > MAX_CALIBRATION_VOLTAGE && I_phase_meas.A < MIN_CALIBRATION_CURRENT) { uint8_t *error_ptr = motor_get_error_ptr(); *error_ptr |= MOTOR_ERRORS_ABNORMAL_CALIBRATION_VOLTAGE; diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 27a5616a..6f9ed6f9 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -27,11 +27,15 @@ #define MAX_PHASE_RESISTANCE (1.0f) #define MIN_PHASE_INDUCTANCE (5e-6f) #define MAX_PHASE_INDUCTANCE (1e-3f) +#define MAX_CALIBRATION_VOLTAGE (0.5f) // V +#define MIN_CALIBRATION_CURRENT (0.2f) // A #elif defined BOARD_REV_M5 #define MIN_PHASE_RESISTANCE (0.5f) #define MAX_PHASE_RESISTANCE (20.0f) #define MIN_PHASE_INDUCTANCE (1e-5f) #define MAX_PHASE_INDUCTANCE (1e-2f) +#define MAX_CALIBRATION_VOLTAGE (5.0f) // V +#define MIN_CALIBRATION_CURRENT (0.1f) // A #endif #define CAL_R_LEN (2 * PWM_FREQ_HZ) From 3ac344c0a2c72ce1407448eb292f5f915d864e5a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 16:00:38 +0300 Subject: [PATCH 212/219] update bootloader binaries --- firmware/bootloader/bootloader-M51.bin | Bin 3716 -> 3764 bytes firmware/bootloader/bootloader-R32.bin | Bin 3740 -> 3800 bytes firmware/bootloader/bootloader-R33.bin | Bin 3740 -> 3796 bytes firmware/bootloader/bootloader-R50.bin | Bin 3700 -> 3748 bytes firmware/bootloader/bootloader-R51.bin | Bin 3700 -> 3748 bytes firmware/bootloader/bootloader-R52.bin | Bin 3716 -> 3764 bytes firmware/bootloader/bootloader-R53.bin | Bin 0 -> 3740 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 firmware/bootloader/bootloader-R53.bin diff --git a/firmware/bootloader/bootloader-M51.bin b/firmware/bootloader/bootloader-M51.bin index 05b2d3884e0d69deff880e509e252e740a41ed79..a7547da89a2da7f7a0ac85dc0bd321392dfafca7 100755 GIT binary patch delta 578 zcmZpX-6C6`z`>y4%E7>34#bu~Yz@S=Kx_}h=)e(4%o)fIWn*A41=18?E7CM0TR3s& zZ0W>5hc_Mg%&ySv#Bwo8?$V~eS~K=*7fAase3&yipHY-?<>XdIS4N}Brx~v@iT<9v zh$+ldc&oIJaz-S(=vC#6Tg*a0()j}mvvPv}mlFvLA9{W(XMkAwpPPVUOdIyT5O84l z(72o5li!OwLm-3SM_MYOquELDGUsGoW<{|z|Clxi>}6o!a>!v}P)Gq{V4x{Xc44ky zbeO!CS(@qPzsa|ljY41lVo_E|&@NzBu-MD7^}-KE0fq{O4=;W(D{$R?Ns4u-TWRo^kR8P8VB4pi^7^{jX;P(u@o*m?twc mFl+?ki$Gip#9x8v($icwC48*KJ%nrnyK+Fxq=zteVj33BWWMg1p1kw~>E7CM0TR3s& zY-!Iwhc_Mg%&ySv#Bwo8?$V~eS~K=*7fAasd}x}S&nU{+Ke?6Bl~HQ)X~wHezkf|$ z#1tlKzLn3D&x_xOJ3}-hp(9#)hLhk8p2?2Piekt9F>f%~o5RAOkOIU&&jT@+!{iF) z3Pyp+ADN|@nEy}aV=-cUJK2#%RP)s@W(AJD7F$`|7%F((7(TrE#iFc`pk2VMU;!58 zb#u&M$YA(zYH~e`DC6$QQ(2xe22HMJRb}*?ypYwCbJO3XZG0XK9~35kX3b_yn;g%! zl(YY*p_{e>!-wk4yzIq{j0&3@IqDf%K+!OX%f;3JNH_fZU(X1n85v$M$1^i9)B^Eb hAoc{}gFt*5h@S&7GfGlGI2?#0fjAn7(LpSdSUiwj$i~1B2&5^%R-|c0ws7Lk zjf`oNvl*qu=lxX9aQ?u;tegO%8G$s10>g*ZljkzJGMY_(%y^SY^!Ma_OktkFTcv%J zGa}hVuPSHUVip3D5N-ZnP9!jV==-gl0b=EUZUP#?v|;ZH0SAT;&Aa(M`MtO^1Ty%2 zq@@x%nwW!C9VSA z$%V|`vK;%_d>~><8Bz&J8Bqyr`#F@k3m6mx_9jfe$t=zE^55id%tq>Of3YYlBxn~f zD_HF1*m~gyqX0t%!-rSDm=!qoT5M%;W2oSD1M(;PvxtkILQ)Hs%K*vko?Oc!q4~uj zNGd@pgHbW@bH9;P!s4$2!EB0BS&5&el7J9M%N0o_6}U5KOy0+`gwbMhGOH@1=j2XS zPtLBtN!$257(OUWzRjA==rh@!Z7FB}PeV6tV3<~K{>oO&$XK#DlcS!I1(ZG}zu5{UbOc=_f` HE@Kt|((R#= delta 612 zcmca1J4d!YfrCLomxF;p9*7lzSQ&^_fmj`g(SatCm^P4Y%f`SU3#2K)R-|c0ws7Lk zjf`HCvl*quTYf5MIDcSaR!#uXj6j-0f#Ji%$#WT98KovaX1vMt``6@sOktwtTlqZs zy!d^%Gek2II-;d#I0@e1nHdCp}Z_+kC4~7qNllj@Q8Pg_Lvn}Q9{b}f?4Ggi$&6@1RjEokW z=W^6DPFCP@wE+f1%fJ8ij6j-^;RSOwGXuj+Al?bYsX%-eh@S&7GYc>Q0kJ6%y8>}E M5EpM=%4N&~0D)$P$^ZZW diff --git a/firmware/bootloader/bootloader-R33.bin b/firmware/bootloader/bootloader-R33.bin index 3459db896f4325e45ceffb93678f89fdd8902bb9..e0fcea4f6b7c2e893420fc9f099f3d725d0a61ec 100755 GIT binary patch delta 561 zcmbOudquWBfrCLIk%NID7>GlGI2?#0fjAn7(LpSdSUiwj$i~1B2&5^%R-|c0ws7Lk zjf`oNvl*qu=lxX9aQ?u;tegO%8G$s10>g*ZljkzJGMY_(%y^SY^!Ma_OktkFTcv%J zGa}hVuPSHUVip3D5N-ZnP9!jV==-gl0b=EUZUP#?v|;ZH0SAT;&Aa(M`MtO^1Ty%2 zq@@x%nw6i@h9MFZ^H>V5ngD@ah+{0>@s9tt@T~6})ah{$zg^aq&|~YQb_D zAi3R>YgwK$T1-x6Rb}*?+{x<6+4VPR8=nWm2ZhPES+f~^CcCpO1)DQD>KR!;kvRDUr;Dv2kkRn(e?23RW@LE5yq=kX;Vclp1>%`NEC^I84aDX^ V91O&nKwJsL{Xo2Yb0(KD3jly7g~k8? delta 522 zcmca2J4d!YfrCLomxF;p9*7lzSQ&^_fmj`g(SatCm^P4Y%f`SU3#2K)R-|c0ws7Lk zjf`HCvl*quTYf5MIDcSaR!#uXj6j-0f#Ji%$#WT98KovaX1vMt``6@sOktwtTlqZs zy!d^%Gek2II-;d#I0@e1nH;lqnx%nBTPEw-|_F;wunf%phjAW>d7 z#|(xHh7Tvu#2GR`s&`J_$numiX!3McRYv#8ds#g>m;6oI#^=HCL2fcXTQ+0bJ>z5rE*Dz^pmSUP{jX;P(u@o*n5&r?7-j7!><>XRES4N}ByBV)CiT<8E zi7Cuec&oIJaz-S(=vC#6Tg*a0()j}mvvPv}mlFvLA9{W(XMkAwpPPVUOdIyT5O84l z(72o5li!OwLm-3SM_MYOquELDGUw#KOp0P#{xNM3*vr7c<&eX|ppXK@z)(||Y{Fc@ zXfSy#vozDof0Iu!8->39#iFc`pk2VMV6m5D>xCbT0t^)lA71=oR^Zrcv6aP*p@P>9 z#7C$CiSoKRW-w$hd^mw7&X568y>oIP%Tq>+$>yx8jP8?TSv@%y{7u@%=fUtnZt{B8 zY(}5S(rimPdw&|bX)7>%sN8&#t(cL~VY4kqJ>%p9oG!M8K&Q6+`(Mupq!}4rFgG(Z mFf0V(gFu`M#7}|vJrHxV0MiE$+XAsK5GMn1^=3ydV-^69L5Oew delta 500 zcmZ1?`$eWcfrCMTk%NKZGdlyrS0Mfl#6N-fHxQ$Pzer;LfowrG28NG7ngVQ1nr2pH z%O>vXlJ@*_c+-K;>(08KoxgX1vPu z``6@2OktwtTlqZsy!d^%Gek2II-;d#I0@e1nQX|cD0c22^9F;xIV=ncDL@SLJrHv_ zOwM4gU}Tv5kXf3E`Tyj9%tnlFCmXVeYQFl#tiZ9?Vk?UqLj|uJ!-rSDSd|z%;B>Jy05Tf>{jX;P(u@o*nEja< m7;=HQ7l7!><>XRES4N}ByBV)CiT<8E zi7Cuec&oIJaz-S(=vC#6Tg*a0()j}mvvPv}mlFvLA9{W(XMkAwpPPVUOdIyT5O84l z(72o5li!OwLm-3SM_MYOquELDGUw#KOp0P#{xNM3*vr7c<&eX|ppXK@z)(||Y{Fc@ zXfSy#vozDof0Iu!8->39#iFc`pk2VMV6m5D>xCbT0t^)lA71=oR^Zrcv6aP*p@P>9 z#7C$CiSoKRW-w$hd^mw7&X568y>oIP%Tq>+$>yx8jP8?TSv@%y{7u@%=fUtnZt{B8 zY(}5S(rimPdw&|bX)7>%sN8&#t(cL~VY4kqJ>%p9oG!M8K&Q6+`(Mupq!}4rFgG(Z mFf0V(gFu`M#7}|vJrHxV0MiE$+XAsK5GMn1^=3ydV-^69L5Oew delta 500 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 Date: Mon, 19 Aug 2024 16:01:09 +0300 Subject: [PATCH 213/219] add board options --- .vscode/tasks.json | 3 ++- firmware/build_all.sh | 2 +- firmware/src/can/can.c | 12 +++++++++++- firmware/src/common.h | 4 +++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 26620eec..ea32fcfe 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -96,9 +96,10 @@ "R50", "R51", "R52", + "R53", "M51" ], - "default": "R52" + "default": "R53" } ] } \ No newline at end of file diff --git a/firmware/build_all.sh b/firmware/build_all.sh index 03fc2eab..62e5e58f 100755 --- a/firmware/build_all.sh +++ b/firmware/build_all.sh @@ -7,7 +7,7 @@ DEST_DIR="./release_binaries" mkdir -p "$DEST_DIR" # Board revisions for which the firmware needs to be built -REVISIONS=("R32" "R33" "R50" "R51" "R52" "M51") +REVISIONS=("R32" "R33" "R50" "R51" "R52" "R53" "M51") # Build types TYPES=("release" "upgrade") diff --git a/firmware/src/can/can.c b/firmware/src/can/can.c index 11f38e6f..d3720ab5 100644 --- a/firmware/src/can/can.c +++ b/firmware/src/can/can.c @@ -49,7 +49,16 @@ const size_t endpoint_count = sizeof(avlos_endpoints) / sizeof(avlos_endpoints[0 void CAN_init(void) { -#if defined(BOARD_REV_R52) +#if defined(BOARD_REV_R53) + // Clearing bits for MUX F this way completely crashed the mcu + // no hardfault or anything, just debugger disconnected. + // It was not possible connect via swd afterwards so the + // board got bricked. Thus avoid this command. Thankfully + // it is not necessary for enabling the gpio. + // PAC55XX_SCC->PFMUXSEL.w &= 0xFFFFFF0F; // Clear bits to select GPIO function + PAC55XX_GPIOF->MODE.P5 = IO_PUSH_PULL_OUTPUT; // GPIO configured as an output + PAC55XX_GPIOF->OUT.P5 = 0; // Set low to force transceiver into normal mode +#elif defined(BOARD_REV_R52) PAC55XX_SCC->PDMUXSEL.w &= 0xFFFFFF0F; // Clear bits to select GPIO function PAC55XX_GPIOD->MODE.P7 = IO_PUSH_PULL_OUTPUT; // GPIO configured as an output PAC55XX_GPIOD->OUT.P7 = 0; // Set low to force transceiver into normal mode @@ -84,6 +93,7 @@ void CAN_init(void) PAC55XX_GPIOD->MODE.P4 = IO_PUSH_PULL_OUTPUT; // GPIO configured as an output PAC55XX_GPIOD->OUT.P4 = 0; // Set low to force transceiver into normal mode + #endif can_io_config(CAN_BUS_PINS); diff --git a/firmware/src/common.h b/firmware/src/common.h index 3cf26dfd..386f60aa 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -92,7 +92,7 @@ #if defined BOARD_REV_R32 || defined BOARD_REV_R33 #define BOARD_REV_R3 -#elif defined BOARD_REV_R50 || BOARD_REV_R51 || defined BOARD_REV_R52 +#elif defined BOARD_REV_R50 || BOARD_REV_R51 || defined BOARD_REV_R52 || defined BOARD_REV_R53 #define BOARD_REV_R5 #elif defined BOARD_REV_M51 #define BOARD_REV_M5 @@ -118,6 +118,8 @@ #define BOARD_REV_IDX 11 #elif defined BOARD_REV_R52 #define BOARD_REV_IDX 12 +#elif defined BOARD_REV_R53 +#define BOARD_REV_IDX 13 #elif defined BOARD_REV_M50 #define BOARD_REV_IDX 20 #elif defined BOARD_REV_M51 From 4cf32427a5c4848cf15f62c8c59bbe11264d5ec0 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 16:01:17 +0300 Subject: [PATCH 214/219] fix calibration sequence --- firmware/src/controller/controller.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/firmware/src/controller/controller.c b/firmware/src/controller/controller.c index d7cd55ae..eb1e9ee7 100644 --- a/firmware/src/controller/controller.c +++ b/firmware/src/controller/controller.c @@ -126,8 +126,11 @@ void Controller_ControlLoop(void) { state.is_calibrating = true; system_reset_calibration(); - (void)(ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()); - (void)(sensors_calibrate()); + // TODO: sensors_calibrate should also return bool, and be integrated in the calibration sequence + if (ADC_calibrate_offset() && motor_calibrate_resistance() && motor_calibrate_inductance()) + { + (void)(sensors_calibrate()); + } state.is_calibrating = false; controller_set_state(CONTROLLER_STATE_IDLE); } From fcf7b0ef073c76ca5681f71ba557cf2b4abaaecd Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 16:01:45 +0300 Subject: [PATCH 215/219] reduce false positives in current detection --- firmware/src/motor/motor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index 6f9ed6f9..e2a824c9 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -28,14 +28,14 @@ #define MIN_PHASE_INDUCTANCE (5e-6f) #define MAX_PHASE_INDUCTANCE (1e-3f) #define MAX_CALIBRATION_VOLTAGE (0.5f) // V -#define MIN_CALIBRATION_CURRENT (0.2f) // A +#define MIN_CALIBRATION_CURRENT (0.05f) // A #elif defined BOARD_REV_M5 #define MIN_PHASE_RESISTANCE (0.5f) #define MAX_PHASE_RESISTANCE (20.0f) #define MIN_PHASE_INDUCTANCE (1e-5f) #define MAX_PHASE_INDUCTANCE (1e-2f) #define MAX_CALIBRATION_VOLTAGE (5.0f) // V -#define MIN_CALIBRATION_CURRENT (0.1f) // A +#define MIN_CALIBRATION_CURRENT (0.01f) // A #endif #define CAL_R_LEN (2 * PWM_FREQ_HZ) From 556b87b9074476364186201098a476e75efe3334 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 18:20:38 +0300 Subject: [PATCH 216/219] add hitl mini test group --- studio/Python/tests/test_board.py | 35 ++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 0203b860..296ee393 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -35,6 +35,7 @@ class TestBoard(TMTestCase): @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_a_sensor_readings(self): """ Test sensor readings @@ -47,6 +48,7 @@ def test_a_sensor_readings(self): self.assertLess(st.pstdev(pos_estimates) * ticks, 5 * ticks) @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_b_invalid_values(self): """ Test rejection of invalid values for limits and gains @@ -77,6 +79,7 @@ def test_b_invalid_values(self): time.sleep(2) @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_c_calibrate(self): """ Test board calibration if not calibrated @@ -86,6 +89,7 @@ def test_c_calibrate(self): @pytest.mark.eol @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_d_position_control(self): """ Test position control @@ -111,10 +115,12 @@ def test_d_position_control(self): ) @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_e_velocity_control(self): """ Test velocity control """ + hw_rev = self.tm.hw_revision self.check_state(0) self.try_calibrate() self.tm.controller.velocity_mode() @@ -122,50 +128,65 @@ def test_e_velocity_control(self): R = 15 + if hw_rev > 20: + multiplier = 3000 * ticks / s + max_delta = 10000 * ticks / s + else: + multiplier = 20000 * ticks / s + max_delta = 30000 * ticks / s + velocity_pairs = [] for i in range(R): - target = i * 20000 * ticks / s + target = i * multiplier self.tm.controller.velocity.setpoint = target time.sleep(tsleep) velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): - target = (R - i) * 20000 * ticks / s + target = (R - i) * multiplier self.tm.controller.velocity.setpoint = target time.sleep(tsleep) velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): - target = -i * 20000 * ticks / s + target = -i * multiplier self.tm.controller.velocity.setpoint = target time.sleep(tsleep) velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for i in range(R): - target = (i - R) * 20000 * ticks / s + target = (i - R) * multiplier self.tm.controller.velocity.setpoint = target time.sleep(tsleep) velocity_pairs.append((target, self.tm.sensors.user_frame.velocity_estimate)) for target, estimate in velocity_pairs: - self.assertAlmostEqual(target, estimate, delta=30000 * ticks / s) + self.assertAlmostEqual(target, estimate, delta=max_delta) @pytest.mark.hitl_default + @pytest.mark.hitl_mini def test_f_random_pos_control(self): """ Test random positions """ + hw_rev = self.tm.hw_revision self.check_state(0) self.try_calibrate() self.tm.controller.position_mode() self.check_state(2) - self.tm.controller.velocity.limit = 200000 * ticks / s + if hw_rev > 20: + self.tm.controller.velocity.limit = 100000 * ticks / s + tick_range = 10000 + else: + self.tm.controller.velocity.limit = 200000 * ticks / s + tick_range = 24000 for _ in range(15): - new_pos = random.uniform(-24000, 24000) + new_pos = random.uniform(-tick_range, tick_range) self.tm.controller.position.setpoint = new_pos * ticks + time.sleep(0.35) self.assertAlmostEqual( self.tm.sensors.user_frame.position_estimate, From 4d8827d8c102c07d2613b9087163deef97ff3201 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 18:20:55 +0300 Subject: [PATCH 217/219] update external spi port for r53 --- firmware/src/sensor/sensor.h | 11 ++++++++--- firmware/src/ssp/ssp_func.c | 6 +++++- firmware/src/ssp/ssp_func.h | 3 ++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index ffac1076..2cba9b89 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -22,14 +22,19 @@ #include #include -#if defined BOARD_REV_R3 -#define ONBOARD_SENSOR_SSP_PORT SSPD -#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD +#if defined(BOARD_REV_R53) +#define ONBOARD_SENSOR_SSP_PORT SSPC +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC +#define EXTERNAL_SENSOR_SSP_PORT SSPD_PD4567 +#define EXTERNAL_SENSOR_SSP_STRUCT PAC55XX_SSPD #elif defined BOARD_REV_R5 || defined BOARD_REV_M5 #define ONBOARD_SENSOR_SSP_PORT SSPC #define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPC #define EXTERNAL_SENSOR_SSP_PORT SSPD #define EXTERNAL_SENSOR_SSP_STRUCT PAC55XX_SSPD +#elif defined BOARD_REV_R3 +#define ONBOARD_SENSOR_SSP_PORT SSPD +#define ONBOARD_SENSOR_SSP_STRUCT PAC55XX_SSPD #endif typedef struct Sensor Sensor; diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index 86569870..c05aefc3 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -661,13 +661,17 @@ void ssp_io_config(SSP_TYPE ssp, SSP_MS_TYPE ms_mode) case SSPD: // Select ssp D peripheral choose one! -// SSPD_IO_Select_PD4567(ms_mode); // SSPD_IO_Select_PE4567(ms_mode); SSPD_IO_Select_PF4567(ms_mode); // SSPD_IO_Select_PG0123(ms_mode); // SSPD_IO_Select_PG4567(ms_mode); break; + case SSPD_PD4567: + SSPD_IO_Select_PD4567(ms_mode); + + break; + default: break; } diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index 3acea62d..24e541a1 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -38,7 +38,8 @@ typedef enum SSPA = 0, SSPB = 1, SSPC = 2, - SSPD = 3 + SSPD = 3, + SSPD_PD4567 = 4 } SSP_TYPE; From 518bcc0ff7ff308a27e11e919f279473e251dee9 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 23:37:07 +0300 Subject: [PATCH 218/219] use filtered current for R measurement --- firmware/src/motor/motor.c | 13 +++++++++---- firmware/src/motor/motor.h | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index 4465136d..d9d08030 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -79,17 +79,21 @@ bool motor_calibrate_resistance(void) { if (!motor_get_is_gimbal()) { - float I_cal = motor_get_I_cal(); - float V_setpoint = 0.0f; FloatTriplet I_phase_meas = {0.0f}; FloatTriplet modulation_values = {0.0f}; + + ADC_get_phase_currents(&I_phase_meas); + + float I_meas = I_phase_meas.A; + float I_cal = motor_get_I_cal(); + float V_setpoint = 0.0f; for (uint32_t i = 0; i < CAL_R_LEN; i++) { ADC_get_phase_currents(&I_phase_meas); // - if (V_setpoint > MAX_CALIBRATION_VOLTAGE && I_phase_meas.A < MIN_CALIBRATION_CURRENT) + if (V_setpoint > MAX_CALIBRATION_VOLTAGE && I_meas < MIN_CALIBRATION_CURRENT) { uint8_t *error_ptr = motor_get_error_ptr(); *error_ptr |= MOTOR_ERRORS_ABNORMAL_CALIBRATION_VOLTAGE; @@ -97,7 +101,8 @@ bool motor_calibrate_resistance(void) return false; } - V_setpoint += CAL_V_GAIN * (I_cal - I_phase_meas.A); + V_setpoint += CAL_V_GAIN * (I_cal - I_meas); + I_meas += CAL_I_GAIN * (I_phase_meas.A - I_meas); const float pwm_setpoint = V_setpoint / system_get_Vbus(); SVM(pwm_setpoint, 0.0f, &modulation_values.A, &modulation_values.B, &modulation_values.C); gate_driver_set_duty_cycle(&modulation_values); diff --git a/firmware/src/motor/motor.h b/firmware/src/motor/motor.h index e2a824c9..053267c8 100644 --- a/firmware/src/motor/motor.h +++ b/firmware/src/motor/motor.h @@ -28,14 +28,14 @@ #define MIN_PHASE_INDUCTANCE (5e-6f) #define MAX_PHASE_INDUCTANCE (1e-3f) #define MAX_CALIBRATION_VOLTAGE (0.5f) // V -#define MIN_CALIBRATION_CURRENT (0.05f) // A +#define MIN_CALIBRATION_CURRENT (0.2f) // A #elif defined BOARD_REV_M5 #define MIN_PHASE_RESISTANCE (0.5f) #define MAX_PHASE_RESISTANCE (20.0f) #define MIN_PHASE_INDUCTANCE (1e-5f) #define MAX_PHASE_INDUCTANCE (1e-2f) #define MAX_CALIBRATION_VOLTAGE (5.0f) // V -#define MIN_CALIBRATION_CURRENT (0.01f) // A +#define MIN_CALIBRATION_CURRENT (0.05f) // A #endif #define CAL_R_LEN (2 * PWM_FREQ_HZ) @@ -44,6 +44,7 @@ #define CAL_STAY_LEN (PWM_FREQ_HZ / 2) #define CAL_DIR_LEN (3 * PWM_FREQ_HZ) #define CAL_PHASE_TURNS (8) +#define CAL_I_GAIN (0.05f) #if defined BOARD_REV_R32 || BOARD_REV_R33 || defined BOARD_REV_R5 #define CAL_V_GAIN (0.0005f) #define CAL_V_INDUCTANCE (2.0f) From 41bd7027aa00ed7b19e4c3261c697c655ff8d81a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 19 Aug 2024 23:37:15 +0300 Subject: [PATCH 219/219] update test constants --- studio/Python/tests/test_board.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 296ee393..ae118351 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -129,8 +129,8 @@ def test_e_velocity_control(self): R = 15 if hw_rev > 20: - multiplier = 3000 * ticks / s - max_delta = 10000 * ticks / s + multiplier = 4000 * ticks / s + max_delta = 15000 * ticks / s else: multiplier = 20000 * ticks / s max_delta = 30000 * ticks / s

    n{-Bub1MWU-aK-mw+E=%P%x-4Fn_c;n__miE#|H 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Ðl^VJIN-rBQ*8!O!*xorqYSdz6mehu@NNdq(XgqdTSZ&HrP3FF4DW0D_Go{_PTjA}jJ3HbVw`xj=EUB^{WxJc{lJyL@eM+>&5G*y z(#rs(HOmk+w9zLqF?ZH6)1-Q`!A2(KL%Y4ziNd9`ebVvS*z3kj+8qTl2@{@^V=4vy zWonDW)~*kef-{1ev0sfafbXv8jDHd~4`-{}amz7Joc3$tw;Ebkyj5$dH6Ub2C6R@- znhsDabm8gh_Bs2}+NL@T+g25?Z+i$2N|oULF?bNclFmu1)+4&xlqxHlHs^cxTt<6m z#ptG~tikRgC!wcq94~!K*L|?^<*m^UU3J;@uRTMy!@H~pTqFvxz_|u*kYnCn>+^}; z^(>T~J^e2%HD)(e>+O2#P;cN=^UZ%@jyLUB*#-7arxFX0&jE4|Z-BdqV+ZDV7<1u@ z(-Z(%j)n&(*>1&jk6Dra2&8n|6h6>>QX@FyJ{_nydTn|5fN_OToiU_#E|A$)XGqo6 zj@{BY?~?Lq<#LCA)?T$9FKYYLrAn*cga5E@9@<)x#+TEQxWgFdX9`hH^an&UN_eG0XfjgJ3=dFFi zUR=?c3`@Ejvh{GVM?rO(o$KknFFQ{Qe6(|>baZr+ANETYezjg7qu#4MLqshXRQVD? z84kPA#8tb9GEr#z@GmUU6$D4~AE*{?Vq$@h#h4$t6dg|3yMeGW`DCbAEd{IWJ)JAJYVPp!b=&;oYYDI&gS-RCt$`|5q^OU+WBGA>D@8i>p* zs!h_-tPP!!Mt$L~X<$a4){kAfG4S+F`JeBH^<}E@QGQyVhE0raKU!_-Yo#kWT64Q} zCjCvib=5Z%yX5FQv$^is=!74a1FJ>P++!a#E5@}Or~4ByRfxZ$@KtnTC{TyxWBZ$rftwJ8w-SvR`2?fSI623(4_ zAJ8roBpKy>%5@yFoEaN9*wXLuV<+EUVAZK5U5wBA@~xcYDDd^|0)M}Q&YwO*;moL{ zV@HCoTqQ^`tmP6eC)Q7=w)M;JmF;&##wNCrVs?ON@91$i^Uwee{&>~BD;fZBLF~P( z5g?x)tNnyHJ8oH$!RZz|l#Si_{ygXRl&{Eet1W&gnA*RY_W&4&on#Co84xuUtIf2o zBo6p^OU!PQYkJ+*Okt+Rft^jLtxXBi!BN0eWVQ7VJRQ{=nn13YKb7%L*Z5I{T3JEt z??FPQ-<5#%-bpoH^f2CUZQNXpM zjZ!iWc0M$5xKz>xq(?{b3lw&)%JbHzGVUo;d~dgpoG&=XaH*!_pFfk6Ne?)_w=+s5 zY>6u-p5~Q3s~ySKa-t;bPps*BNz^j+R(aSYf-R@U+-G({sN_+~AlI2%nmw1d``_(@ z2}8oRr4p~)O6sR-;aoTQAO942Un-+#Xy{+z12V}2hw$s~cWJE?Q;_>{3M|%JWZ{wb zWiP|(b*$?oymp(VkAm96c?Y)5GN4M-$Ar@SFB z`!`|x@5^7PF!Zr|vVKrH@9@a2gHCMN5<^sCwxkAmFMy_(`4xZ*BH>&LCMO0uFncPh z@@soaDNf*s0bN+w&}v)@rBu=6G{6xR(zvt1p~bvED`;i!3k(gjOnKi>iWZ2~&qAeb zf;8)T@~NowBKp>a-sEUqtShPiB7g%x+kTFQXhBcZbPWz-R!FlfgUefkF-Fk6&}7Ef z!I;o9{cJGLsl{*vo16uJBfv3WXZ|W|-OROjVG2F1-f4~xU^<)v-I>3r>9bDb-L{g< z?)l&1}#rd?mnErUWL(l?bFFvFyEX8Q{23~ zKve*S*a6Px#&tcMHpt~z%N%x-XDzskMO=*zd^V_+N^;KA62XM)uh8}N(~5G=5b}2j zk@76mv#+!BFlF%KQca0PTpG|hVBhZitVErIb3Kxgf<-#VjHMyhA)FELD5WPYT(LAm zL0*eKF$7TwU}JR(f=+|W+9zO)uAw+4g*O7+6`M_te%y=|-5+LvxYBW!k$(JK7*?DvM zn76#hXJ=wH6oIJ_cqYm4{gJAeSbE|o)gLplAAJ~Ul8nJ)J?U4@&UXaeAyY>1rteT;(ud}UmFb*G>6>U65{5RxTEx}Os`8P*ngW|`5ch~W+q5fos;dmi zxPji;%K};yusRrymBGlCNPEJ({lt1FFPgXX3^@S`fffdUco?z#Aq{UfdJ`oj6Z*=> zo=nz;(popcdbmSD-SMa=GY#)m%eeFS6}-|ooZ|ynqmnW?cUD=qA2-lJ)A@}DO8y21 z4!~WtfyP9Qk_&<-K)kXxGyn`_FW~uhd1?QeLPgMb@{au?yBz|1`-;l+L?nwihR2du z4r_(eR0mn}ufaNj0~YFm77W+OsreHQF3GJPv#mCTt^*_#lv`cPz<{NzgR{@YdV!GX zscE$-Y+UFe)D6(m8>PV{SZEBcj$16IKS*3z0IwqmRjz52AiPwRUN(sLvZy+Dm9GmF zNAowdRy!Cc7EGY?X26Zm!4zM$cF=SBfx!6j{xmrX&PA-Vi!!+gXcdK#qe1I`Px^2o+qnNTxmac$CMFt64XJJ&q;?=cn0%dBKTZZt01LM_ zE@tf89FWR@`DPO*Q5T6`7Zn)`#&tA1cS)9v;&>e%n z>!PFcT9i4dM!^uSucC=2kJcIv%Y_{nu&Hsgc}?W$Gw3bEF6d|*kM*kw?!3ERrFl+gU)^) zFboNPQP6KOoQ#Na3oRKtm4XjKvjY&93>k4UtQPVFcWp6>0XIcCCuWCg2u5Lm!cfBJ zQqXe?Ej+GNH#tg5XdJXS0Oh-WhDBP0A;p^wq{i^Lrcih>0tL`}0o9(pCO{8lT?LJ9 zEkgyPpIMJ{hjSFXiH#D2-J0rxYEXD%VS1l&eW@fH^1`yX=yj|m{vl{b05S@ORck*H zlARWKk&IJ?mP7$OWvL(J#Q?-(?~3s~@DQz$G%3jz{%9Wf3@#)Je33h+dElI02i#0D zN7UJfa#qnshgEK)Xc9(4WK$UPib>w!LXcj-0U*0u1riG2{aErxEVuIx^I3Rp}Y=J?!rHms?j8%zyt;eJa=wS$y;kQ7C%l7_f)(gik1rwk$` zQ$9pNg?N(6bim>dZe?OsD#T|hNFfsVW`U7;sNjpm$^Zi|eMhzpMNwk*UkIK@z`Ap{ zy(|Zg|Luizg3a{(MJB-unS->j$FO%Wb=MKIWm6*mw+PZQ7LTrP)5t~PmylMV@U8Dd zuQ0SaB47%O^!H|F)hT$V%zt5btPVMZY1-w?_2cTW(2}wvG@HAjz_0(1hQLqDqNI06 z-?FoF1z^Rnn}9ljTX02=U>N<;d_jmi`!c(yTS2Mr>pSIT78r(P@z(^>pD0qQ1(-R9 zBzGcR%E8!mIjmpCpJ_V9N)kNn@b~r)3%M5W|4uL6kmH&BOu`V^JDhyM;5*oF)|rk3 zcgH*bicP~wt=Esl1b0FU4`6ZR%edUS$0%th@p87Mx^*=7Fj(=+%#F*x9-?A`x63)B zO$1xm_UP-7p(zCLn1KdL$gjZihn(}W<2bQN5ZrATzLCR!Waw(|&jQO`x)K_bqeHod z+xjea$Y*%(^eYP1zqmEP_hSs)+++OIcaIOKt#*zxBekAJy4K^Vks7ztgBvoF;=>Xa zSrr8>@oK*WmYe{)l(QDS)4IhpU3kxV%Tc2XTPOY=90 z+C2D&sh4h3k~i<&<M+e+di&R1GP)B z$OX=yK#FAiRJy5s0A zSGL8>NwX%YZPYT?ux$lAl!U1Pk$nNoR9mt+Y>1Eh%yP%u%=h7st8g?@c&CqOR*v}k zq#X;__l2^TlgCA!fz>@(zV;K*$%Wk@&>N?)NOQL;E+&Tfhg1GABx!=yp69B0Fyp5JpOOA-oQGkxBLu=JGLg3rbVz zGMKRdr1IP%W00rw+^zws0!bV=QBjV-JEXK_&;N+(Q#=t?aYEgom@cl(*1!>qJ>q(8q#{JK_=a zi}pwxLc8Tb=O>k6!8+I>@dMt+lSn6V(fooG*XY+s%WT#DUJECvFz(wwP--~ZA+`6i zGNzb}8PrtJRPi1}D-=WAAXKi|5PM(i8Q2k_txsC&xHK6aS!L7DK^CfD*@TF-=y=`D zHxS{ZfBYD=xL-d8=VAPN-R41id*syLopP(0M}{i*G6m~qX((*aiwg=plK6b%+4_40 zyoI z_Fm54Nq>NoGtWSY=m0W5w2*>9KmFec{{R0^evaVC3q$Y61c>YcLS}tsEPNKEptmoh zB^0+f#x|$Mbp+OOcV%ZU;rINh%HDi7;zoYT%Rd@#UdZF!=6KB_`1k?#v8vg7RUSQU zqe79c?Rnb3L2K`O(d2bmkthImDhTbVuLwMMb3Er&Go`z{nMf(nS-Rb=@-BVQ2w2@e zob&9q5j$olS!vvASsbhY1WXe`0OER9^H8 zqUpfE9)24SYS78$D9#~e3F^M*n`t;%by>y%m`mw<;yKOjeUtRHPHPR^e?7@;!;#?P z&=d0dexa|B#)v!Vv&eHf&jMOoU)bJDwKs;x{q2mKAc9otG(!zNfJ3Z0xyN z3FK*C=Eo{$CL{I2DD*1!zS8Pz9b%fEFYQO>gw*HndtUkHvQFNmwzC{A(Gp*rW0NK| zXP#Etr&Zviul+D?v})+T{iwpGq_|k*3=4nvi`I1OKp&C};`_0xXFry>hVQ!H#sq;FgL)UGRp5*k$Lp$_kR9v@Vy&K(1 z0&t$9|46k-FEd5X{0kdkaNaZwBODF8e$QmPM*EHG&oJ+$(%AMQ+XIuv_xd}X#gmaG z_vLH*6co%H%>0D|Lr1DZR_|3uOI9ak%wrt3@10eAT(S^gRytd_N(9VvauUlA@^4Jq=veJI#J&r=`V*vjB7QG zh}7TCF`PRmt?%Q%SK7}xU-ebaMJYd;UH#GXTN<1&q{8%o#OFr8&#dkL!r(1yPF~N( zy(#Ecg2uJ>CnVfEsp7KXfSlXA0bnxptlJ!FAcJh)z%bd1I6H{*eA#8Be|Q^D|}7y zr0~zK)!~AwowM@^*-~W*Ld9`Ewm&3E4n8vc$ItOnTJdJQ+gha7uG?nf>4*NA>6g8p z-jca${WA`XHJ-SQ*t=-P)wvg63-XR;bygf5cLR_Ip?%TwNvKYJEp*^2|G%*Oczu(L zsq2fS2_R7>ltkc0+FAWx3hFEa>=!Hc0ep;AYsb?VzuzR} zC$OKxN3~fIP+4*RlW6scI4n^`c=KVX{LrXMmx;q z9~|d3#xGHrOP6}9JZgnYOWTCj(0R_+jCwzI<*CGmRsWQ^^>pT%m5r7veot)E5qRy8 zKh&^Np99y&$Q1FuDu$0XJ${NmAND@zS)a>!Vyb-(FeEhztW_0m=WsWJ)RL8D@)V}7 zvmz>9^QvF-SaL`xsj+%4*UwZuk+-;s4cz99Sy5a_UG8kIf%hwLk9iqW){O+7?Wuzq zcGH9*idH10x1{~uh=_VmM$a|lnE>Rlx^%?+c(>i3(3>}nJ-*pIsgw>E)*Bs;FL+YT zRa+1(Q);P_DWE|rJbMXqJ0aiFH#2{~e=$$Q(_u?Nocdtp^ubv|S>Q*arL#xkpzp7< zCB5dFRb_Nu+3J=RF9bSIy_wK>!KW{9nMUtTjai~;YD|4_^Zu<&eCzitZZk6ny?m19 zrhmcbp1r%&?_;MVZ_A%89=SeZ@6Ok&(UDc~<0D$EUXFqBRF&8j<-Pr$n%_Sr(}sFU z_C~FOJ2qwM-BI6b%5F(!sFSpl;)l0OHTYt0eKX4$x2PA@4xA{}X`>6v@+A0GX$VLgBJ zok<=ATax}}`g)4@!p_9LM!x5q>>&zOzPp9-e0`+0%ZT-O)-wLVjyyL6jb*X>y^cq%3aaBVAfa7R7r?nk)8@uC;u8g$GNc$Usjv9s5;wQPfq9%);d`Fl8%kEB zA)O>P%VA4tsq23NU$;9%RkN6Mv}**+aa(GkqRdy9hJd1l^+HLaZKa6N`>7W-bbxUG z*&pI}n;FF4EEI+WT>ZIsdps}oIfqr_4`=sU1}eT`^W0Wh1>M)>gDJg;r3F^_T@rVL zuc?c{r~Io~wRb-cZM!6wmR8vN7dY~&lXH9ACO2?)a#?8K`xn#9ZU_t#&mAXULzo zX6a1DRZDu^YKww%1{?bC9zm}TnfEj{lPO`FCM71rlpj_I#95NZ)}T8$USAx2akFr#~z;=GP!{)2w6IAT8|EX6Vy2|&)DdCWVq`cZZNR!VuaA?$Y}n{ zU$Bk=rhIX$I+|lbXXTVvJbyo_bm;Rb!@AqPg zMu;)#+Ug@xf%TO z;8|jw^ANnwV1{U~yD?X{{-JLPKke|9BXw5T? zF*F$f|Ftn=kV=Y59K2v%^YekrHC9p6`pWNR?`*wYKGyUR`3uIhx^#%WuTA{p*+#Cp z(ss(%VAdFgp_m9ZOdEFHn=WHc`HuGepGyIpcwz>wYax&FZ!iNU7e^&uxhK# zWC`}1$SL|9LS`(k_5Y#ky`!4S-l*YVfKY=<3lahfN>QY$2^}42N+@Cj1f1X?A|><= z0kOu=#2Nw$7*P=mRS*JbLKz7fln#NQG(mb3nD5-^Z+-9k$Gg_7SuT+z_vYN^oM-R- z?43V37W(nyp`nP>eKAp!rRG})`U-mEkGE8m%S%7BRIuIaEL*8X*t8!LsCV;4AHUap;LZM%dY{4d;M?h zJX@S%9|37frt&-Bd1`*6*d*eYUaaoS@wHU#{%45muD)tX{asC^Gqu+)9t+){>-Jc+ z%<|VuI831?_zP8A;rR7WR*#OfEQJny?;5as^b9Y%uoo;Gn&Md}mlKs6B z1Zq%p*f4>-Ws(AGY~tr)WYxk3g8_^zFiaXyvccAk#yx>tV9G$tsj@CID)mBFkM)p^ zo1|_6_$P>3-W{Lh1*ZfXgnmx1S^&O`zj=$t*`A8@|kj0K` zeVT=sElOQ*hP;+nhG?6u`~ecF{}5OJ&#mR+cD{rmR9=|5%Ql);FeM>ZprSw(2p9~+ zot+Zl4u>#p*iMtw&AJdY2%L+SPhlNlTnV2ZG$z8E*hWgz7lr{MAzrQ%q;EE&6cDg^ z%w08NTlkulo~`ffI!x*q>sS63N`5Ho+q@d79l9Ngv6s2i2f0C2!Pftp2H9{IM$*$_ z{@7%UYP1Fk{Hk0dF|CMH?g-5q1g&IM`Mv}ohah)Lk8d3_k_qFIXM=*JOhUQGz=x6w zO#5tlzze2pi9@mAkBQ_3oKjP+Tn~J0gY2f z!?`1mBjKaEIBs-MZZIxy^%s(SVj>?H zh12l1JW5{-EQU;r8c`#tK!8n=SEt4PX@mt*FQ7~l;0{)$es(4 zdXc(_Q&lBRu-(1T(ljX$)C0YFMK=OQNR)C~pNbq&RbV(VVE}eg0b@?}Bns{Bgd<@4ZV z@0rvFrN}(Mc!N60`fj}@tKu_gUOy0cqx&T1Cfq|sfMR9KOASEULLXgTQgQy*^N5-H z{mheM2T7zJFCZ%qoz;0 zMAjXR@cGWenujIaowV?u#bC{{-@&kqi9{nWSk%w|QB;=6mjP4{3l}1C7MKESPxwsp zDl#yujFL}|L5emiF-3UYH^D|5pB&Pn(X>4x^&noqf=f=*H8p~ONU64CB=YQLA0=I4 z8jE9Yy-(?>KgaVXt zE_nq`o?E&l*{5r{^D-jVi}1pDhEMi`HF7z(t2BB+oTf*fLbOGoSC@vMj{{1($h{x| z6pM>D!mM95=7zGtRYGqOWQ$lv>SF5zLw|_Ce+rDz`0@boLMgoD?1ygZJ-aihaX+#e zRck%4d61!-tc`-&=H{w62NSL|c+QnxL54si=M8v2duO}^-;&(u+<;|!Ss<_sRfV68YtW$KLZ`lHz}=mA zYeAvWN+rPi4bM>cLr?r|cF(;nWC^bn)9bHPeBi*;jR#LM=HFb-Jk0Fa=tGA95tORQ z+It=Jst=+Nyck$$$&udbsN>&&kpE8kG&6*WYg7PvGT;YtGO^XAaA?|LfRO`Sf2!wO zmir4ERuIC3a#s+Lz=;A-9aqlP?JSu4lGr!ThF3Hx#rP|r#-Y*yifWk*>@Evcr#1@) zP5kqE(;U34MEIp29REa@B1aUw7$K#$-PK6Nw4mI1g$e$y4+t1F>~YcmV0)&6h^e=v zDI;3?(ebDGYYmWZ2tnBqiQLpXR2~XDj*J=Rp?SY+5)ks={FemcskL~jQ#|VYujU}E zDa)OoH?h#^r@KBxLzmA4i8$N-Wg67WonIVDgziLo^<)I4;hXCy*y%2X$4Ayd4-{v93uV(3ddF?nQFJhtx3dDLs`A40Bk+6zVu86| zZz^AXo7U^YJD5-Lu)xi6)d?I7)t z61#y>pva@tCQ&0q$A?z>kzi|`0K-EMfq?2t;D+{^CC5bh@43Cy*AG4hEbe11#;5wL z$iJRaNy#`{*8TBRc85Vjg+SF={))IVe)+-UuJfyLl&r@+EMNLq*~`-&sF;GhNwJ7P3n5dVL00Q|fO1e9+r1_M*p{Bvc}|01vdAF6o` zIL~ugLxJ_<%1mm7==l>G2Zp8wW==%j=~13BshuRPrTDMMvA!I#DbD%c z8lBo!lnf#-7COxj#t=63x;;qyc=63&0kTLmLn*fH${W;@kSRqY;!W8ih<4Q0UcVSW z9y#(s`OU8l_Wh@iA97b>#dVUWwCA<;KcB(&#+CT~YxvCGtj?i(u;XF%Y>-Job!qj9 z`@>9UA7z{!D(f00^SJEcfBWW7EjRc;&#mqx6dUg1d?=Hb7k1d<09wQI zw!1Q(y=^s!gJ0{rSX=6S-MHo6cJypyica6>q)Xm;zRgY#Yzs84J`qb_eCZD8?i@e0 zZLc2noRNX!+e?4nced?1@b7*9{OsEga!e-T#jA5%zWU6_-}w9MzMqr3=MtXwjEfJ6 zgx$!x*VO*#YyMmPaoc$F&qD3Vt#Qj)C(bm>e7km|u*q&K*-S{&)~+D8V5&gwPIa$r z|5%w(qz3jwd!a__$?qjDxBPcy^<>2C)VbF@hS?%t#@1fweH+?hu!GUY{E&D2;Oler zLoEi#yNc1PE`4FU3OQHy{Cz*K}Rz50|M+m`_qM*a~jS? zeAkM^?$hzbv2NpmFL?iMU%#D8N?@Z|ljLeU$J{mX;T5^n&)6^&x z@7L@)VqMUIC(RhteOlW;vve(1TJGuFb`Rz1%l+C;{vYT)JMK4wR1?XUwBduzcXk|b zGP&_iRKgOrtB6iuy>DAQeh$CZytkvYI4rJoiZ~W3j2m0mbeqO08Hbh+{%slYbHmzB zJ235C_FMnuQ)V4MKi_a${efxi(*_w%e+4A|1T)=_0HRZL_GvgM3Rc``9y;uUvD>#* znTOykOo%u!U4C``jCg~`uJ-w+NkbiZ*3*{3cZY{l9(^Hv(y_`eEYU<4?@92ke!q9G z>ZMApnJeVWJBtDvhA)ocH($Dc!Jt<4XY-Hw-hZco`$$--s9*PiYt^Pt>9o2W1)6<&Q0 zwLP?hp7j|>bQ+|-FGDk@TWW#hlKTV$wQuEyaG%G%1=GUEIM#b9ezW#$4opyu29 z#ebHI7qga&c{y9gJ$BFFD}A5(y)Ajwk`TRm=4NI3qom#Evs6m2D@GD7_oE(Cuzynw zDfg#)Y>3+PBhI<<|$D+Mlh2`2TaWnTj}S zlkIeC&f37kGv)a?lK{;RtZb|C4zhECI;SJ7ZLU41KX2ZoTwG45(PNo4NOtlAVu&cS z6Dv~ki3BPEd1=9Pp^#p~s_Ez}w9A_dX` zc1=t6N(5H~GVTwjUnfDmtIv6MkaeM7q8P z-LV!jq_n#}UY2w2tBGY%?|SADj#uQ4+v8kowGVPf?ww82eRWukJa=T9ma1Hkke%n1 z(O^!VQHJAVYJs|UiCfg0yVa+)3+{`yH5hI+F|g`2IwFl4zIg@f9j0adw`MmuE&dU(aZ zMmf^64se1!`eh|1n(Hsq$K#dWoLbPFe4!nteZ=WxZ5ii>&LCx0?t08hKpVaw@1T8+ zCy67pZNazB>5|O3h^DYeYd6E5ugx73ArF>W+&H&-qnex-o}=u+U!F?VPnRj|LudAt zv?L&-?oSnLUG`UPBG)|ddK>$VaO$t1en!&fhaLyNf-*Ct@iy4`+qYxYw_KuJ_Vnci z?hO2kt#aA|IJ+puQhbyfre6hXl6a5J=_~UEU=Vjhq-MfC{M+`V>JYLQd!KCygf^@DoMwudu+;NhibSM51= zpTeuNpHId_bhbShw7%YkF>Ijd>!5jsBkRhhZ_lzxorU$#fj?lWRZICG)FE4d7P`X=ba-PMaX>5QFa}AQ zfnD3|nt3q;;CHBgRbE5)(#7-L^cp>a`9@(o11s_Y?cY*zr2{741<2@P zeLK93I)()cWh=;bNbabvwfbis94D)-@KORnc?wEMoDPXhvoaMJ{sKfW5MU|E>*>M5 zyobreIyEvSIt&cha2FanupMx70555_}{7ieIT zLzWzJ>jbkI$Z8?>!3h6WAe@Eq)qToP1uP4O>El}A#??gRUyuj3F$o);SeU`oGMVi0W__iAuKh> zzyZ3zh@fT3fbpKNcR)7~NPz0=(Nr%l(v(OY7CY=Ch|W?YhcrEewpg$f^HoN`Vk%8% ztE3+5lrv4DCZZ(34f!3EQHipM)CAiI+sGH`+@AV<|Y#Hkq4~dW%!p zB&1zkD-Nlv{lK+WPo1mXpM!dX1s$k`{Y2?kx~GLG86$g znad+}awF7u)CaMbOJHs)a1N=7q5c?V5*%r2Ti0!ESPRWQ!&JPct4_kxY9rE{2fX6*T5ScB?LaB#a!a``l#z>aJ zZ(I-zXrokgfRi{ZK$pmJ>S$kLjDS%CU|AuIAaWkf&GS^1q*Mgb$&~MWE%idD`wV$_ z0fj|xc9_91lB|A6cp(!Zs1hKq=asPEqIkmyN-dtQvWQOSqX(eVmDwcasEcT!+#R<- zu>~N<7U&Jf3&#<#xh4fR zI+^OV#zK?5ph^s2-ypp)3Ku47ipAj=f}yyDKA=d4IEx@0me+yypPwL&f!UBCeSkGW zvB>jEi51(e1!Y+ZC{&A2=fXJRE3h+%mVYPAQA#DLnxG=Y3o!OxXpIjz1*d`C^fCCY z>6bIK2PfeaVUfDOqm`XFxjU_b^g-pbgqbX;l6^Yp9z@atEI1N%ED##?$sc@Bj(?}u zkrAh>8-;EBW4jJym2gb1a#br19h>)9IN0Ih{4P*i07#sc8`qzli&9`(n|P%&&|&6% zbvW=`k-*0_*Q@0gn(Ndjq}*+_{;;k_NfcO5E>2Evn@P1u5Ci`xr6J+YaJ0MM>=V?F z$jQ=p_jSBOfR*VJ{sXuJf4y@Yff-m&h`+@rYXBgg;#88lECR3K`C=8&nBaQJ%%cvOv*qbymfexak0V+*RLLAXB4^vMKbt6n$2^Zn|Dn}mq(+2@oKDpgD^6L@Pr%2K~ky+ z7p}iQqv*f6hC1sk#@cdKD21fb<87(jR>;8npaGs5f6oH z;@@WaDAMd7R`b)lN>|)-@XgU-Al3T!RELzvsRWU8?82SI)DUWfc#;$mVtGJWXs`+= znCnwxLhAs}hFA)YapET{Cr?L6XN08QY2yh}lEu?P+G&U)2>k(jo9xTeh`wV<7E3sI zu>zN}g7&@-%2|@9Kqkw1*H0=?x(L(@4%9*1}8Tn6+qR2D2EhOx3EA1npB@; z<~5Ku*^!w{l?FQw1c1KMs&Wu4vtjBb2IW)k)lE=|%FhIGFk>X2L({0 z@k_h->kO#;ISPMEp@98eC@*(pq63!)otVIELbLHpCJyW9hIrZAwJ{|nND+dB&QRHL zWbC;+oU%e}LS(bhb1WxTKsBJD?VweE{+3y3Qu-`)t->TY2Fg~^24)|^ z8BQ#V&01L)`lF?l3I!G%nv(%{e>mZ}J5~8@@1`j1nrQPBciMJD27+hj*98f$LOT2; z(1a+QN&LHDy!l(GAcD`pIDvDtZssOdDr+?I5Kj>B3PGB+$pfgu2`V^V#cJ7(WZ0-l zc8x~%QKA%-M!|2vzIGN}{Zu7RwzXy@djyt2Dk{FAae<<)v^Z6C7{Sa>q<5` zT00zrz9Zzy@v?cXli@L##6;ov%5l9!0dPss2u?C}zFR=(E;qA;E7xkR;)SeaD?vhi z{_Sg+Te-J-YZQr=q?^pl&ZXC3nZJn~owlGAsWVk}lY${{k_^U@sWf_e2Dlf1l7sa3 z|C)piN&8<2?NQ;JaZn4gl!=PCeLDOJWuJwsEfDr-A2<7_vHms_2;9M!L|Xh0_TxX; zbbjo<>74E`n|6>Q`bZoc+$1h$Io)SlUt_Jkc}1~0Ac(e&Q5!H|rll={c4i~z;m?G} z<`R731k{A}-_R+-A&^r5gCJF~oFNu~#OVPHBmaz6X910qItp;s!2f^-n{TkrH!_hL z1BNCWw_yLvH-Ucoe=D?OeSsz$^d*@Gm+K~d2JzXic(vl~Y@2l!^4w!&@g4O+Y))&! z56)ltgiQc?niyLeG%ZgJCYD} z?l2Ct_NP}}S=UIOlQPk+#M#o)b@PL@AJ`He%Q{0j?*qjz9FUWbc&mQ1+TMpqeC&Rs zO2OSvK3KS%swJoBeLO7G_U|+k{YOU>pLE50K3vfIyu10A-xpd04v1=vj#mavAHd~Te}sBSXXSqNKDX0hQR>=B3f6zym<<#sa!~!zyz|4fWMdj{6rN?)ZiH}<|tbuYbP;UMZ8F(mUki(8TM@JQ4i)zWgBqEE&@?YlB;GaG$v z!@HEyasA%(R zk1)c1e{1A|!6x^?f3i;;mfXKIT6gSz+17pI2agrH>XCOU``DFU5N*aw+P>ZA+xOw{ z2hB5keF(1DXqR{NsnH`eM?YE$?uka>?!zwR$$z^8zJ9sj_-P?d(Y_oIYVt(7=9+Pr=7`G>)zK^C3K44Goe#T6>x0g`EIs7tZB9r!yC0dFPj^`TYBv%YzAS&F$Yc`PyIQe$<)%t-zf`I3b59wOxO}@ z@1JLyqI~gLjFu)dM_v6@e&Im>(mMFlzWXP?jlQKy-4MERHIQ4y3GH!^IwbU(@iknx zo{;|aG`jUWsz|2s_!m*V+x1cpP;gh&@hgkh_i5Q}&A3HyF0gwccj@oXS*Kf11ekn% zml@E=+LBE7aP&Qxx+lt&ZnxPv_VWdM%fn~XTS|YFo4uJndEI0$O?cVBZ%79@hS9vi z7?6rL?{^zBQ+We8&?6OJIPc|7MtgV2Ij_A|IlJSvTrXUY@>iBq$D^;WCs!4oZocx0 zuJ*W)`P#jCeB7>;#Wve96IXma?56zj%IO0QlVUx#2iUvr4C+X}xaMDYV>DehOhEhV zLv(#px(8c#W3=R6uV+wmsj{C#*IeuU?~i*6n;kRB>I!xyZMV+J?voehseR5g+J2e7 zEiLCw!TG|y4(Bi@zRAmU-!b&ueZdy{&WU}2<7;%eIRC=_Zn+$~>)7XjN>1+O-nu8n zcZ)%o=BHho3N33CE-OC9K9>`<+V@cGOWwBhOU_xYUv?to_xc_Tc{(C**zUO}FTiC< zD^#<&U>mLVRvbD18|pJ1)w=ll7C}}yoE^G!KA>t>)-(69W2Z->jvu|+Wsl=a&p*ADz3=0R(vzYwUkl}(pWn~;?kS#H zU)ue_&hYzat&g2qGu_y+053*#uNl5Ykm-24RP)1gOH01riLWnDop+7Dy4bPXB(wX_ zMUPOIFkSO3{|o(Y1_#$8cWq=zm<2Ny}2dLI8&T=abC<@Aedk9%D`yZTE8 z&Vj*!{E`H{=Tm1d_qW<=2c$L;Q59!qrabcXKkkt@-+U|YL{;bz&n)`OxK+_mRfbAO_Ftbk=WW#Pd;CV~>pZD=eY}kC;R5-1w|c$I8?L4fu^f}ILGx{ErZelQSIy*N z_k1dq+%_@T*Lw5WvP1o~M;CTu9`Y3Z>^(%MZua#S$#lm`3Gaxsv>iDuNa6$%t{?FO zxNwu3r0u~YU7Qn({@A+1&pxV`_A?_`4p&#@o;_RcU~Hh4k58vIY?Cc3SbtD35q%(8 zj{V`p;@4m|yt@4f$%EJv-~X|`e)7mptMYW7#*u)$EVoB1{(pZS>}sfzTf<~tSERA^r=O=>NzYwbev7yE&;B(lyQR~u(PZIfUcx*@wo@;b zyE6ZJ^iyQi9;;o)fQL+sX2*N{zMpoX1N*eHzTwT*vW~YXhdbJy_W$IOvaS88v&(ts z?@o@lG@Qs|v#t7{iI@Ia@2oIxIlim!qo28K z-?m;)B4-&^?zwf$R`0EhlJdD98asdFIovnYU_K&}36rvi9dfcO<_>&}DSL3PCs1w; zn<#1Kd3i^ih)LUzxDY%>%_#QfuEyFyRWs>x8=tPLyPP@lOG9Z?P3|ea4P>%C{P+9B zP*h*S#R9a|4n3#i#}6Or(t44qzGKlo#@Oyac$JXVC0{MG`sC~RV{=A^XRISD-qJXk zIkcbm?3V2JUTwPaK7RA-SJj-0u?X+Q$^Cij*r%nmzs%7*abwKC_Kd4X&3wZfg{LS#=BEP#eGb`b~`!H+S929XDq62VbyV z&~$oem2KovPrfCSd27_^)<{&dYpYA|i@cqJoKJ^cKMZuWPMRpr)DE(){!rX!W{!rBWtx8N?`dlKK-cJ^_zTzZlSWyTB0tG@ zC1qP3RE;bzX7rq?C`~zC^c8WB=l6G;&2#c#C2fmQ=CjEQg;gh_@yXE2KkEDz6bT1S{DjjKQFrEIrKd{ zamO$#vrrwM@0MBK9r)s1FG2QWr1PD3k#o+MDpjNQ$+i|esy%Z4_I>omt!|I(!VBdc z+q7@4$S!CGsFRP zqm`vq`^#QuMG(+>ee(M5lUEIln02IsZWj#W z$fh|aBQ2Vxn$6A`WV$AEuk)?^6=_HNvPqf0Ue5Q9nA!Q-TK6szzu~ty`S0|uy#GD? z$O-@Ww&KB&nePvx20y}Wr$62<;-(_TmyGb&e3UNV3oP{X_0yi~aXs{_!r3;+!s8Td zimhr$=?3RhlcS-kVl~4A*(UiGS?}!9wgq-q>S9XO^6tS}CExut)VBAuy{ER{aLoLx z;!Dc4GQX%}KYj*=_^IJ{l3dS=S0C8@E$aFUG zz1;Kuw&LN!jANos7vP%d*Zltt!V3r4=|7V#xu8}%?XLWNgZF~kKE@=zwKx58zvO<; zaNHr#3yq!R>-iuh2Yo(odaMTmU-&jV0C5NZL46bujY54jf2Or$a@nns-_*&!Pu|e% zi%n>kcLDBTO7mGTv}X&?fy zTUS>KF`(Y&qrh^gh9JNO&@hOHGGK7pJqBu`?a31RFg#5FYMOzp3&6?3y0B3LszfqV zSdYCMB*mIthA@q?24KxHZ7i|bT0xB>f_Z1*L>4#*vRC=dHk^#KTxw*(RFKt_-VqWI zIP+snCtfB-4-cnvvujf&bXsuVVv@*eIwzTrJ>6wr z42oZJ2u29T(mPZLPyVN~QsC4Y6H|jCA`q_uz=|}QO9a=Fm3(%Y^&M6>Dtt1-cGwHP zc8Hw*L2(lhy>_O;0$9@@L19L7zv#-bF|b4Q`B z8)%8A&5LI@!zs-cO$tnK3-nrnx4ILj5On#H)wKe;SQZKv*KZ|^KuN$x^J&Hr(9MEa zA>T>zT6MHnaR7GZ%^D8TMNEdkMEWQS2$NY#sY+PWRf^cKPy2%?w`r(}gqPt;<`wNd9Avo?J&$AK=|MUGNts`VNkj-H870E% zhNU@AU{r4CFXrw36A%#9PlcJ{bqy#32MFn%5_4?V80Z4O=6tOujKU@v3fNJDj?N65 z*2pHv(gL!U(2aj+eK4erv^;IV!Eq({lM5#xS6k^Uv&1+~GYKdqlduy_b>>t5Lq03v zH9;XAZ8OY+q_GuJRfe|NK?qrGZL_8$5GvgHR?+#j;0UMkJ8Q7cqmzy54_6%eMk8CT zrgC|Y1q6QqxJq0K++7tw9LD|786tIvxp*fU(B8dasVdpB1B3uxw_U)D z5e>68g(>TeWTp-^qPf#xS@C&Ji|An_T}5Dwjm4^y8kd2urQxjCNQMUkN9ILXiD%Y;5h~!L7IOnU&Shy!*Au7ridzX3t> zOcQD);ShvGLAXZ}fTCtbqbQx>rn+_s%K|Uf` zh$#RYDd&*VL;;rxK%VA-+~C?!5+!m3g&GxY2uE)r(=407CjurmMbB|Ig5=4@I#t!j z{SE3W3w3pkXt183Smr>6?tU_nlI_A>^_sS1@Kn5f04)Zzl7Jnm=M_7`OsCCtjWiTf zF>8MVya(_gz(uKZtQ9919b|Qihhlf+qLd^78!*2n#gZF?O7nn=#)#+2QxFUCJzksD>XK)~5lwIyuE@8s$y@qr-f9)zKe7A<(a+qEh zC6@J>!>2x&B$^##mBVx4ob*(Wdq0%NR;2-U{$x{TkE-c3QW(+h?M=G}$>6hq-PV~) zXkB-II69Oa5U1Bu{5TpKHUc|o$JyLq#7>J|17=_4&nCtgEt}X20n~tg##k%wf*qqu zcqJ#9T3_5`>_z0m_A1UcC(xTiSa|C`*)+HxXigii^Ykp*#l9igy2NHrmYVA~jC1v2~`Y zrXXsR3*ql#FmaYgNUEc8^eZrGK}h;T3DjE3Wa!7wCfUuas*qNZbaiS33c%MeWHU3O(m#ndfKc^-kFz3CfrmIElp(e9oG25UTk4R?I>4&}a*pF?RCi?kT z3dUmA7$NBy43H226X(#Z^o6l1OAtY@iX_Y?$?tT*#9-*^qj~Kyi5lQ9`KN*goEVZ< z8GH!24A-(g8oH7y2>g`5ZFs4I_V&t9M0BR%5p5xy2({2W{^J;;C>UU6`9rE@%`}=y zrrjO+9p=0qE{q81zg|4MDv_MUt3V_#g(ODtX@S5roPeMgLCqVfD--sUA)fq`0}e3| z#Q?6tQ1f^|RPPlEpu>gZt0P!1^!T_mWKxD6F#9*Q<`e>sgU#Cfh^#Yr$CU6X!!0-= zhrWLZnJoBJYQs14jXdau_#5JttDWArk7d^JR8^jEdF5@J_3lHLvKqfh>R#eSm`F3N zRYpT4LRrJq)DjCM5bkT{4NH0lg7$oJ6bfMy}@P)@ejhE8>Ywzl`z;V1pRDw2bEX1p z6CPV9$?171a0QN4;j7O9^Kcd}CvfX*G7z(S6THTw>W8NVTBE_#7)Xr=r#-R6-8k%E zY8kH8)PN;OEC~aNO^`a`&gfs(cmM5z$uZ`)yNQ<&nLj-P|4?xU9eb2|&|&D{S`80` zb8liWwrQ-F&vUG7@$V`Pp*AX64BDk0n(9Q%feM`l?PI1d_uFRVEiY26%v@Tn4`Zrh z-$B7h-yqAzeGdo~%(n2kPF*h-?n0Bho|0bGJARc0+{tmc@5YR|9wv|T!YxfESYHZo zj(`vYpD)BirQ__UAKtgE-;a~)P3zoYiij6c@QmOFHGxKmFb7kx#9#Z?_B?ps{WSLY zjD4X|7`fF%^=#0+BhN;u`ENhnoHhGM(5jA(w;Tw^aAkk(`NtaUKaiKrsb4&LnYq~h z6>%>}5Cu)Xto~5u0JS&R1%O+AC=_Z5&K;m!0f9Ol5~}|(eur$}!Ted`|5WSA^zyOK zzvb<}<860?Au;eI>^@}_Lzo8hJJ28h{PzE00nevk{(qr6oaeBtp}uxso~i6-E=K6t z*j)=G-m6d5^W(Ia(YV`pjcVL;QfzWQUa8w;&CI#1hL)Xqe90QCD*tL;^&#px@9k^? zamXtn)w-Furr_}5Js>VThkj%@tnH-j8XnI44<_BRkw3RGH{o_M?x^AQ+1i#9A?@)g z7x_YbXhA^!_R#7KT?BGYN9e2bQ}j?W4m&w{Q~teKClJ+|wk`b!GlA~Vj+kim+1K9N z3V974{eshXSN~S*UoixJ-z{w}CD(zL&FsWcpszR20w*P3&|m$JC;><8-<$}N-FpRQJO2(=9CFd_Fi91%k{U&< zKnqynVLq7Y_B7W(>j2T46~rF~fS~%{Zv}>^z_AFQb7c%F{)ur7za(Rgz~1{G488nd zL;8WXxm#6RiQkcr@P_VO+l$4Rn8NMt`$R8#o1IzVIQbJ!?L6&uC~m}7+JvYdwUXjm z;@i+wE~~ju)7t8J$;q*}7}GtWXL$+-V$58M2YOj87(#BVORV;)eJ8i6Pq_L15|rpblw$Mv>=Uvfh+;yy(~Atb_c~4@b>}83Z5@n zm`~ZrS?BK!;Dij%`}D$963%R-pU;YwOfw(Lxn7Pmt!>rxpDpK}b@Tb$jPVRS=&9J_ z(H&X)-Z#NF#K+_*2y+I1ingR~6-O!HQ7?y-Q9q1Wq{{eGEjuvf1z*ixn)m#dAR zy84+(m3%2pP;h^)e#)&Sdtbml#pTj6^Ya{JcGw8WiaGD~TJF2(S>u1C=DrZIcZYWR zw(i}BCJ0S;86OV*F;#Q%XNp$*$MdBp1AWTguEZmFfmdR0C}T#S5rP7=i>eQ)h2O#U zjPx+?5F7S$mSRVfDwUGAcv=*nE6C33@ZV>ht-Yt}$ZX{ymkQq!DY)j}vCpJro-~bB zy??C-C)K|! zYC_@^)mOXO3$!?^k_No3ENT`?`GON&F{efeqEj zs=C@YY)ZAz3~R8szH6?;UM{HuqjGI^VpjgVTa8HwwJE*RV0n z7^j*MA*Ci$BVSM=tNi@)t-`?(e36#Jv+Fm$pZpo8oc-eZ>XrBA-8UTW)Ys_Dus&#G zfrrXXn$mP=zx4D+R>Qy+U$||D*{7#xcrMeut8Y53x7M$Q%E{~BV81b9FJ`#N0f42M znNHIZGbnU6`g#dRXxiDL{^IFkSs%M6wd>keolD!IccdJjp?@gOI+!R5@|VLe3JFAK zwt3NFIt)Xz1GR2U=N(x~_1Jbe8VG2Qr2kwuXBT*a&ie#VtL1#Y^V>#^UlJCfGa$I_ zW2=9Ih}!c1;XjTw6ADq%TsKc3;$XSXHFp_3Q!a^A8N+6f82TXv2o(&kK_%@+)MmkI) zKssJPC9tqt{Q*LkH%sAr=Xwf9&NFo*>tL8_A9emXbs{nXnQb)FncTDln#c9bMzA*l zAZc0}#b||L9@ro{2FwdhrH(;@Q>f+!7!2fk-bq0q&T~UDVix-vTMt8RBLAdCFGh0( zC=V90cO21VrFb+R6z17^m=eppE}odSWm>3PFkH`V?DDl6m032!xGL=do4=3LMOo z#OR~w)lK#WOIAOJ3Y}C7gAJQW8qfg9S|y709SgO60x!KJyyjb_uw3t@FjLCf9iu|BViONqCp&TQrIEA1s!a2H=@!5EZrhL#KXV zx4>Xrv~;7OPx?k%6WimEcXsbFaK4)G^95l+NxD)O1<2%Z7K)*qW{Nb@u6@w}u2cKc zf@4VC@U$)hf5{7}uScfoSI{AK@6w?9+ZW+VeS1RBV;{hO!p!g`c@N~V>K z2uS$JjFh7RRI{P;AfDKvXlnSD$oWFM78`nUx` z(0@FtRXA$(AHHwOp$=8LMNQ>JiN!`WANABjncXQMUKIc&iNSguWPdIX4yP$nM*{Xw z0f3diJAC=sOBE6rK&*EjpA9GTfT*#yC~;3;Uhs*1?!VLD7Ss)Vl2k2>(b6M%O5 zgTVHmnT$HDN(6&7olK(6bNQ_c2%3EDq)J2P(*S~670G=vmfXhm zmY^VmK-euF8N)xefVG6SR9j%hqBmQrtPj*PY80p%@Br->WcO?DUnnkE;R8nM@!fRUsF|5i($`L*)Sj9ymBfWbn0>0LzI?g=VNhflVr1;CB{?3cqng3w9y(KrjdKRBnf6}t0_xr=df8mmn zs>JaFU|TQv+#TMzoMT^E^;u^qau=<2mib+Ca<5AG^%%DYQG#hL;)PP^S2j;an=K^- z5G3#vwB^UM;@Jrb{_(q)&mMEUtr1JeWl6rMJ-?r|m~Xzb=8d16#V^yTufGned?@8c z*6(o$@VN7BRiU(H3}oAhNLEz|slqG4AoGhT^P?fO68~9sfQ?-b5?d9zxWEu3()yx* z&3_aC)8S8Gut+%FIdUTPUt%Ncb1IZ*Cfex#9GGW3cA;2vtuLnkek#GUB)%k|`buSy z!Imsvr&-ECkMjJQpx`F#NZ?s&B9R(Rpuezw40YAuaS<~T=p315Iw-Xo5h-`UKL&!j zO;%E`5D`cH;pUX%)>xccIQ01P!KtMUl}e9$f#NQGvQ1{jnm$-yiDqeB@ zHcJ1&o?MhSLSB*rUL}{`p-MHfkpf+)_+zytNF>G<7GCQ zhCsZ)v1+2er~Z+0JKQ-7?0_vyPf^Hug*@Z9SAb;r!`5iPtSRHxgTNCaWOf8R@C6VI z1#k(GHRZ5j;OLXKe})pHj5qiL8Lh*HUz#>5x_Apz5;>pnQuv8B(CR|fY5HYReRj@% zVH+hFmNy=yCUsDlpOgSfpnwgg6Ez-Ao<+9xf%;U!Ss4~#pZz?xIlH%r= zFc>ez)D4HJ1cF%zpx!9kCKDj`4kq@VNZsmExVlvlWoiv|F>-+Tk-S13{Qu~B^Khuw z_-}kPGG&{z85v7aq+~5)rw&3WMM5YF$ujocAe6?~LWM!L5L#^6ml%|FWS3!xvF}?r z&;6Os_j#V*b6vl4_0Q>?+3wH1yx*_;wFGWoJ>KDT+?t>88rsnTHU;?rhX&n_)b+5$ z+|(Af@TV!>U1_HaYoJ>R@jFkc=P*A(WUZ6()`#^u2092aYsc2IEyF6V!ikWTRrbm9 zlm+1l(O^jr@|O8212$o&g`08i=i;qXhIdB zp3*H}f}IV5qDv=HQ+%iSBrS)??`KuOIzd=8p$hFA(oD}!y9az6DrIFQXh5eOcyMft zOu9_FeC1Mcw{ci<2%qpG5!?UYd}2=D(inN@|B|4xPB|bhvFRlHI|9Pn5D1S?=80KX z_7=Q@LvD2_tak`P$jIc*;TZQACHsm{PyQe+)&SQDYaWSUfJ{NZwfd?|vn+RL<4_ML zOR0dPg3q3lI#l9<-^9XpJQeotBGVd ztHALwS0<=wPuT_p@fHvO0Nq3s6RgK-8mewnJ@98^XxT+ex?wKdvoh1nm%C0ID;{mV z)?nJ6y1jy{Zy$b>D5-fs3tGdX0N?jdGU^|o#k-fgr`WS)MnqH^mc*A#f2wnIJaEye z;rNpSx$5D$sq8@@U>c;B3>)vKWIu*N60UGrfgR zbhIZkn@{wOcH^*TP22i65lx4wXPTsPv1y87qW8qM&I$m?=GtYfyBe0bP?bd)-NB8u&A)tQci8tXPm|R9YrA23*&nk@fiV99dQnqMt0q|ERMHtA;av=L zy0P`X2r%R!FHvcrnnQv-Pp}id{=45m8GU-IJHUemtSnW)OMpNcfGAp8>$tyEUw-=B zy~wie#xtDCqh+PLL5F7KID!eD;}Ia2;e@-t7T*QEB}D`^;9JKr-+Lgmi;r`w_yhMn z<$)ck>SWsuZjX{q*V+4*+SZN0_3Fjs#V)m@Cn9tJDgA@{n!O(>*4up_ zI@7$JRB1y$*Xy<^cX!6pYICS~}NSb?NUu0R47@-_y@2gfYWW#yGZ0cIDVa?0y zWe-&!C+ZT$o=ytlG-FN9{R~vrK}u2--AofhMV}NB$cQUfHnexKH)Rb(J>rzU=bXFj@ZUzLnPy z%&oC|q2pjQ!JB5WLv-19=@ZIM82dD4S@gc#m}6yt@7jJn@w6ji*HDjR+S{7o1{Uj( z(JxxB9A9YV=?u?Am6U&eUi@AB(_#0vN3LgS{mb-w12qHLgbkDCi)j*$<>efqp=vxz z=7EHR?|+sXpyR_O!e7an?asGe>1%HyebbQ|8x2zu_2h1-hHvHMdH!0xzx8u$6y;gd z&})1$@&P3RVP5@nT=SStP1id2yyWJsk1}N2oRcrlrDt4wY$m*Z($i1|>^h=!HF?Aus?EF!E{znv!=7n+*TzPk@(%MzPVkxi`YG8hNlV{-eL1tFdnCVe6(o|DG48T;QVv1%(!YOnqoN|qrumf8V+g%n6{ zNSlRO1W8IXNlME2&8;Yz;+Kg@@LJH420;^3Vn~qBiGhoefMcDo7C^@mz=;|L!3W*m z2jn=WuTMBh%2PI{e#3SEHUS;B0)70}Pm)|}2N}SXKAHod^x%vG@>HgsB~G+uAf8=P zb9R4GmaA68gD(}>M0YxlPy->yv+NuSj9r54;h=2-)GSWf!Lc|mDr~tAk>n2aCD*q# zcl>bxhCT_JK$cpbZ7$lT_c3DFq~T)wAlN4v_xWxjb*V5M@*1fAhPpx^=!H%)XzHq) zLlo$$BZbJY^XQK)XA_`h|ACufJAjo}F$|&jg@~=4KwJFX7|cN~*Si=P;KDEx`z>VH zfl-h*6ypuOrUZn)u}jeA4s9qb*Y0@#mya7{!LH7v+1xZd#jUBZJ_Don0LdCu_W)7E zv#Bg52H2z?FfuT3TLmx<3wYVb5g9F-qgc&%9>s_d^KaJ^p*MGIjeArMX|N^~u_ zkx!37GDZC5;!JhgQ+Z#@hx)9;84qv@!Q4Sv0f2^&NVOKzJ?^N(0@)~P66>*bARh*( zDNGqAS)laLL4>qW^!KL#0?XWYn2-Mv4_89hI zHu3U5`Edi#bR?2|*5{ZQ>ZpQP{BpYl84?qgZ2PAy)gQUz)&%1k<^;&pIszUTh2$9o z7k!{yHd1kk0z5E3sh(9LhN~T!L)ZG!Zv)u3>Zp^o9r|(`?Q&D@dMFkE57Arw52y#^ z$)U)n6I29!->xfjj2TU;~yQ+r*^F^(VWJ@S0Byh9^D)xBd`r1d|;K44JEP#-Ld_ zXhFzoZz!G|6nR@lHkN@s0Z4v)l=~E6*UCu}!{`DgGI&w*VQ}e-W2nV2PDJTqyQ(}< z&EN;Ag4eNQd(Qn*mnGe9M+(@=)+##rL4ONnAF&T}M9CA?W!P0jMui0w{wyKSL7hIp zEyA2CSyzeMEX^GkC1Pj%7Y>aOAtVR1AE1u5?|3jRuFeFb!l;pIJ3(^6;LX;Q@%bKDp6+gj>RGn{9<_HF5B!p%ed8BT8)>7Z|TlVh_ugKO4pdqLO z^fBe`#UWg#tW;$jm8)4m7NO{byagT0P+{C}#&jUCwn-|=1t-hTyDeMS4kLkJBrwtT zU`}`8{qRv96da16Q}gK9nx71=>gApsQ3VcIW&-#WF!A3z!*z(1h1_c%7b zV}whHTlL~y1dK@G>#;=9hi!7_ki2iD6+_YrJGSG-l%oK@cM@a(*9m3V3D(U4Q%A(4 z(6E?qk_(Q>i4EFXp;A~iZcpV_kp-M2$V!mZ^>*WGxeYbgd+t2J3-WFV4BEoN3V>|w zE`19r*%Z($2=h`bg2X`(HdibKnT@C z5BwKXxfGYGldPkMEu0kpc55I#H|Nj2T`tFPGX{GTwJ)ock0`}uJ!{dYj=AK}0^u`* zr*aFdyxxUe`fwzu&Ciaf(&yyLk z30Gyjn`wNF?@j5$%IEoKNENc0z+f=BT73xIYrS5oA^4gs{W0tE#Ztb1J$8F(kCf<_ zaq>*Zw^O%q<)P8O;gZY4S5e=*#D_25l@KlqMMUH)fi$?EeQAHNOC94fVg469FK8?m zhAb$|E8i*QwXcZYsJgPlpZDHYrtAFP&-J)kn@m1zpVd-AkWKO^ZHEg?SN3(%FVZzU zL&~c{M~ADc9iY7h>wlV`Vn17oKuutSqzG-1g&^Vwni3CG>bMle!Jdp!)@S!rfCCl_ z@mPb4!PaWMIXsUzxmqGnJRB zRJq=vh`2^FvjLw8IG8xxyuQ;_91{jLjrcyq=;ze|mAKITy?`%3@yJe7453a^iUeGRSpSSd{f{;^&1I^XLS(pQk+16{N)eGEJMx$0^}9vRi{>_Rxyq*460jZ{Hk zP_^4kiamI=TdiPd2X9yp^wEGa$hD~*uju3?JBYZ}>HC#7?acwfqoAhd_if<1cn9Xm z_?}`}pn)K2Dxe|#acMK+mtslKi7;3xOS^J8CvVC%@K&I|1`(B0)_mvrPS2Ox!J{y> z{HyrCOB(ca3-Lp>HxKL(?+V7IByuSYKzI%GZRh;PYFpo5^@e54n-`)t7Kb6O2#|vA zUO_pdKDOedI{3tE;b^Kr4Y~L~>}T)bg8S~*4#mT)P9Pr<|A(MlrA}9ZZ?Q9;k>Qcp zI?r{RFaalB#S#Xf1_%6pbxs&^qvZXxJD%6uQg*`1ny2>ug`+lvfQ)H;65U#@oGU06328 z7U7;&6p~A}R;Y{u^P*5zyFn{b%g%Da0w2%a;rL2Spzu3kvBEk>0w=ed?Pu-?VuCVKUmR84*+A&YRxaYH#I3t8sTKD zlh}vd)|9p3rFgF!M;X#Hd>~Qp+ zeAh>KU^@dWHzGXrkL$3}Cz(x9{2^D~iLZ(RIUed#!Jxc5$gbw6iLOez!lZUsDy{daf+GWDfr-lK)YZOIZwp(W!QgDtiFJ|A7ZCe5{7u zGnRTcTqDd?XXEYV!kC@?&&@goiH{4ei#RbRd^xf_XbgXo!F097@%ZPozedN(H+%)g zM32?(^O1KikIkwTkzJ=t_$h5zDPQuh`>imkk>Qp%=i55e2p~LjoSlrUWINI51!c?J8?Ag|Isl2-->2F?tfu*D(V4NdU*JL((d^!OOhGt zJu!N%l;ZT*+ak}kR4D%EnE=_8FTY>!M3PdTxl2S9dQcbHO|lkXwr+=R1>9aoWM^8l zom#P*w5+Yw>VM0!Pt;g?9NAbCs(i$kV|?_)uxCo0zfhO-Y$Ugxdx>#Y`nxA5%O8=S zoSIy?KlGF8G_83u`!{FIC}L&K@i$osAXar(D1dA+KQa)iy=2KDu^hQ{+; zUN)K^wyf_h?GxQ}^gB(A^1g-MQaE;`yQIG^{IFm`jLM%BF<*Vc8GIZkSKeLC?ydqW zT6vzfPxXY!X8w>L;#RIiQm#*KVo_y^WcbjZ_Cf!vX5jtEMJ@#+gNKTWgMLwl4^!Na z3>Vq4p!C%ff7@Czdif+Mi=!|n&%6YAK6wTSXBBxr7bWN0#r!ct#PfcSBgK^E zCJp>T=GNZl`LLUSRIf(U(&F-8gON6?esOw(qx;D#KDv&(a1+PwzRrc+gG*CQGMl&U zj(J*|eeR?#B|I-yp7)tQw?o$Rv6a5?M)dxr>>y0PY3Ma3?oHgJvuysxeg&88d9}+v z&ZR!mF_UB;bPayazkZ+jhGoZ=Iprm>VehG2;QZRozc5vQO@9WBvB*82>}{!OK7@Z$ z0Ls^vA|Jp*i=Ms`zZ3GJr^p_8t4FA`ciryfwX>BQ%lS$1SH`!+H?)0xo<3G5Xso11 zbCqRBrfFq=_HAn%)Yn?paqQi3``kGjaky;t!lfL=d2;r!Z#LFZF=^F!xKWVv3R#nJ zNh|YgsEsMP^PKh+QePaR$Xl z`)lrgh&1{sZO&m196veM6?wnkO3~=71p0f=td-8|7oST18DY8c@uOUNj?r#n#N+XL zZkx=J>cv)9ovxGkp^1NCf{&2lW(LZ_0^b8VCZS4k$bz;Np!MJNH3US`Zyx{Snb8mB z?@K^357l~m%GW-UYbH3;{&?z**X$=fs01DisD74Q)0r#q{#ltcBAaO8q0d$j1%e?nMbx{>O-U} z?sSP|{Zaeook@(dcKk5HwLjqdNV`orwN6B|Z1jz_KqQOSH$vscLw zfAEd1m^^NH)Fm^aa&a^>a7gNtK4fj7SP1R1U z&A3MSz~rZDauj;?^gyv~SxcfBxNe@F?A$?aV7ipVJPCiky;W}DBb?%^H?cj{O}$5U zxO_-xS^33oqR+b*W08jwZ5=8#-57bFst;bs!whP^dy#4FHkdF1<)(c{oa%PIlh+hp z?o1%)e%CcBF8t-=K@wiCLGBvuCGYcWB{Zg-*tIU`0Cc+0YE1dhO22FyvyaQ^^1P1ZT|U7^J7543aITLIx-?x_C!DKUQ16l$fRq! zU}6#{%GYsijk$NcL9=UpUeX*z8k@gL9!GrJ+c-K)(t2|`Wt{UxfoR4Rdo1fqp2o_~ z;cMrH^;k0UUb$H>Ex*cDP}4Z&60`ZV$He%mymWpysY=}me{m93e13XR$7f;C+i1<4 zajT+!W1p8i-s6AXrpruh@LSi&R{OwXRAtI{$%})yfVaw`ogeFTH5QgGB=j5p3rjJO z-k+#x9?<1$m%`KB?nJA&3>DD6mB)g>M z*<~V=4HG`*)=d61a9q&deKxBf@-_E%q=Rjv{Y;0}mfEt^SbN0SyjGvlRvsn0EY`fd zETmWrJ?$t_;=^|N%u2+s?B8D8>9GzSBMGaA7+!|2iAy94_uLM-{-hr#G)ctHnHg}Nqmh9njw)@HG@LS;Vczvk!SD0Ai=(DMX zUEM8jf1>o#0BxizHg88!1Qc>xn?rS=Ma*QCCgAFDoP=ILTyTCx>F@p&WEb=fFA z6nWA{O7lX?135t~iRX`e#g~I>H}Ab*P!+s6GX68OIA$WjUe4nbxg;g+_vmM{Xpf9t zuI@ACCGnm2XUePAb6fGD+OpYq!p97PN?IxtY=)Ebc?XVdJ}n-GP&i3%un=iim69wr zxc#1kU+xemy{06Ai(g{!U&$zD*V{kA;>?fzV4&c5d?+@gOcS<4GvE6mzb7-Hp(l=a*3q4 zCYYj<;IBC|R zr#^O|sF{3ynLv?J-+OFzt-%T~_VK_<4a0vd$q9fHkY5fP{}H*AF)A_1DtPqcuoIKg z(s%@LZDs??mn~pY6X*&H@L&X;M$~m0$^UB$on#&4I$_~TVLfma$dgF7R)~kutj9nj z4rt$dOnWYYWP%EpXplFt(mL{$^TEHJ4iIeFFgkOhkvBECFtamuVgg5c zudx3TzvSbVzO;LV4Q%@C5`<9?(0c?1DOcdFtx)j&KL}NqLlZoQx5Hy&314SMbbq~}5MU^QeERnV z&jrc*Ri9x&U8+A8v&Rl^6MAAf+3E~?nJPSrrQF=512Z#lf!cJE#*d3BQL@Q$V z_RvSdmPxG$F8MHp+k47DB?THFOT7IM8ExUv$t%%Pk;2#p~atMLFK{K)(ToJ z9i|ov2_)f{Y6`W1HjN^UkCF7G3g9i@Qv&B>lagF{c%k--1%~)IPv#Qh;!&5{l|{iU zOO5IM&wBAQL=rXXdK1GG(MeYhONPJ4&{yeexE#!LO|cBczardk z0;=aIaS6O1tPbX~LXGW^g$J?E(OaaN{Lp1`bTnb_xvY@O$7*q<^>bEo)zYO z9!9akM#(uJM=#^NDAXKFh`SE~G>6a(QR?yxr3*NfT6n(&1$2Aq;6DU|wpQK|4uc(P zI*j7SHaTDCQ8N1$O~<^TuDY(anK~oY$w9&h2qeLygZ$dSXoEf&b_A(P@HryS%8N8j zN?JkkhW))4XNdT^kM?MpMlvSxs>t#%$>W(J*DydfAtp@~NR7gd>iTSUjP*f%0<;=^6U5g5J71w2Qh`QKrAdWBPqb)BBTIFv1j9we z^S%AA>Y=z3fvGnPZCN0$E3xV}#Z`xX3!-VD=Y~6s0*?OFR7|_~Mu$bVkUNtm1S&%~ z$MGYuH3U4mon4-{)|EdxN$fw)Qw%hqmNPbLGI6c1SgV?}|Qr@y=i1{L_kiUYgm=DHzyHfC$a0I_= z9j)V*E!Z*qQ?eQYnH3Re20}1uYS@aGNiP*tGhp$B1k;E~YfT!e1olJio`kt+0`Rp8Rc*GW zwK@_Ez2Y5>2aIB{jQmfQ1mhMX%VBFYa@nS!1!Zj(`u@--hcv^SfqR+?m?1n~2nC+1 zGCKZ6pWGPirc3NDrWuW`?YQBDt(#J$zY0L6#|VfUPKX=41B2p{NQ|O8fKnl2+6iHx z=S5`w!q&DDMw*+LV1V*<7;5BsHJ9xuQ_rd|`eJ&k(KFtDaS?I5VwVzJ>}^@i`^&pI z{giJPUpKsb?{soY(j~HsXM%G*{wb;CFKeCqR{p2Akl&PUA>zKxbC|Yg;~oI3mNeZ(EY}PcOujV_ zH4`rnLZ0kTwbo&|<$St$Stsd2Sz&CMTCT>?__8k@Ef+iQH$f~R}}?&CMMj~=c4 zGz~+Lfw`oDU)N}f2EC95w++9?dwi7F+<`~h@br~*7gb5$P%K8u{>-)yPnEo+xV2KZ@{iG6wVT5YOR( zA!38Vjvw%Ag-8>@yj6)TrbRnKgH zYI79PJ|2F6@*(=9y6J%vanBWa>0ZImDf}!LBkaUJHVvaX(K-o-=9Bnxz>fp0G&m8) z1B3UtvSPvQ&61!8efS_<4NJd$6DQ9yE@MS+Qxmn0Vf2QeBYN@ia?_I*nSdF4y-fOq z;rWW9N`v_XHles@j;|yO6}bf#VPyxUI%J0ka%&3A;ED!(0bC_dVZRGufH9P(!5xu9 zp-V97s_7E|@VP=|mKyp@l!$GfaBY$Uz#X(oJJpn>oKWy~AC4Gqfyo8z{NE^(?L(yR z+x-g;2FKlQs=I(Nll0G z22AVH2Z^E$a6c-LGNH#KDG7c&aA$yx5Q8V1hAkt$O(cO!yfylpe_!L!Y@xzVFnVxH z02Td1b$Og5FpGtVINSaQI3hljO|cF%!A5bkgjV8l~P z{Mb7&K=}*J-uea&zB&AnvNc#t|BT9lcMuE>@M?(5RqKhF)_if;@oijfdd6nIOZwYb`=2>T`C7s z{YL8HF;_~|VO*5?g>RHSaS}M3AdP)0h8gF5q(Y;u-I>KZDu1Y2(i^mfW03xNPWBf5 zpN4n={Ci3aQdw6H*q?%O4md+_+PWEVTRt1BV%Nnqc?t&AE)%ODC=FVDPg}|e-$I&T z^4Jgo1R8c-Ac|e3B^3-$P|yig^Vg}c*jl!-F%?Dj6QS}4kiPUu*xXTB8QLiLwansu zt>ihUA2+9LS}0a97o1cbjN?CKj#8ey8lb3=+}%#0V3JQ zM z`yj~~45Bc==n6N;+7O)Q{h&6WlcD~P@(%Vt(BgmMJS0KcadBJP@nyq)vcmc8fO@yF z$o4K0Uk-?<)I4>qaI2$#fs`1g4i=^9zHJEQ`b{-n{%WIxnuWU zi8J6HGSq#reekh|?=o7E85rdM&elp293OO$!QU?KCfjpbdQq__9;O>sJ&At#8<_n& zYiY_$XPzs}>#cM1`(W0vVb^wBzoN7?<;?G$-=5AXPTS6{EphwDN-qq?DO@^q~$1 zUX01?8_~+L*4N}_+Z!eV!WEnjKSj#ma7L#xV;6%5p$$#%9JDfQ$oQUQ@{=bbcRf5j zDk`ce%l$8|4QO*1-L>DT@r>QSiVQPny=;!!ReL$^ z(Wn>Z zad5pzc=pftJ`Rqy^CwRE&Un3T%SGJ_Z}YjEL_SpEAC7O^ zmbsWD#2F7=A|=+~6g+{KrmNTyqph$ePPzC`w$y;5+NqJpbsXOr`3f#ckQEgDa^B#@6jSOKR;o;{j|oC4;=N0ru}z9n(iuvxoAtlCe4J%f%x_QFZ9^EH(yO{d&P5D8ixMl;KJn0DgCyKqe};XJYC-wyLN@^2s! zmvSf6kwB7E`U!g*-@wl|ECA|~s}M-Je`v$r(g~Xyl>d2KGmd4pwO(&&Z@2wV0X!Kw2N%*#CZqqc?TwYI zd9~Uisn9JV{lfahceN6gf=WR#(o>&TLP5Hxjrhgsm0o zInI7+1H)j#LSBM;w-S2Y4-E%sSHRhLMS4=XpD0FJ$_`dGKSuEZ6;8vFMBY0FZypC7R{%=^MH+Or zLfngyrSkY?jj%f&KS4w&NO`-YTpyAR@R?7NU1H~I81GiLLRzMI2B1MCR7@J-NNN0aoTAN(x(Q8CxAqwmEjjr0|4WF-)I+7PxLnqeLAS)~4T; z5W3=os+oF*bvI{Sj#gxx=@)e9-s-Qke_}8q=Z?1>xYwv;m$9?f+uFOXD00Vwl2kCX zTAcq*S>9iGO9>hFFYL&!C8Yuc%gkSJWV71|jdS#MN0bE(KK%IRS-_d$505O%?`#{6 zoi%{5BK7fmnIdkYt&_*+K@fF%vY{*qhCW247C<+#PzJ-xEO_N>(~{W6}7nKe5X+^})$ z`+K{Vy&U@tniRKD#(uMQTt(cS8wF=Y75XSxa{9cDfh+aA;j^*ts0vNhUn`nV*2&H5 zde6NBzAYmBJ5tyRs|D-=j`~Vb6Ok{CLq>xX&QnDl?-HgxO>~wfLmCUiiz39Ul;#r*xBBT(l*`==>uUf2SYaU&ttPI@f7#lyMU zE~NfA0rM{2=f$ABr+`<6ny9OZ|4AO%J9(IH1GMSeaOYS}Z=i@Y5eR5B<6H)LMd7DN z4f7`7#An`yg(&EkpPkRv%yPuIceVWcc^SylqO@B;HTz5`D};L z5PWWHrbt2J`=MuFP4J1vN-4d`db9h(hvrl77#Li){O8X7+yn1$c}4D~PV(&ROm+ca z*{$2{Y#$RQv9!Zre2LLX96?_x4g%zG0ExBs@&cnSrVxP=CMgn^Pz+{+t4UVj5xD#q zd*Gka&AQwHJK|x@e0{bBHFsz#$@%&WgrX>d*b&(}n6p&b6rQq9avZ1OykTJbN%aq6 z2pr8Gd4Q)p&`=#xIM$4zsRM)r+L=OEByg~queGyv?FijHS#&f2H|Py(7z3^hh32S3 zf&5C@xkExkhDFc@&8{&3YG=78B9%)>aJjkt&@@Pt7o^(?ff^GNV*k*WZ%6(}HJzx>@nM06vgdrEv|<5u}HKXf_bXEaX{}QZNsYtj+i-qg`j5=;{)N zZ6B)R>ICmMR*s4scoHzRqBBucq)2>#`lZX{rHHtSltmv=R0X>sgEx>Q1ryn?u6Mw8 zoY=k4c&j~S*wDl|my`qtafZ4%ahF&^#)>*fCCv)ShFF@wx~dK{rmkwhP_|vxLIJ*I zF%slO$h+PQn07^Jpd%`=?JE4sEsC-NB``&d55Q^a>+s2Ca9hUr{H_R0-BdqJ-eVl( z9o5$YgbY{9Kyo0xS4t69z>)<}b%f`jGd>eh%qg##!69)H*?Ggl4UTi6_3XrwYs_mcsvzVDh`Zp7mRssB z%}tUT0z&JjeOzlze2e}7fzIURMh5+HyKf zNCD8^zG4ImyuC%CtG|_!kt=LvyHceJ2N}IxS~@Pe;DZ=yMK-|abJDihct;Ru5O4gc zw&TwaglUi_27 zz+tC^fm4YNd0t|2StB{Yl*hfMHPM7r2>&yrwbsht$iux?zAhjzU zRfmG(gT%e+^a15r9RM$44Ho^9S2s}9J{|;|tiTF$lHCLZcZ)q`2Jjm~7V*3w>voH` zl9kSVrk|xS4BGWpG(jRbIxs|NvUyAs9UTmr8n*TV8Z9^8dyk~M#y>w{6q%)5pj%SfW&5)1FXXl(8cI6K4?x1$Qo|ymIIkYup?5$ z5lj>LztRHtG7=j&Y{@mTqyi_Wl*adv0x|kg7P?xY(-My}5YtiZKvo>()gBNQT+6k;#H~YTjdH>X&lrezf@`T+ z7_`+v)4=+rA^>v%$2dGYQXrZn5F;+m#2`3fl1Bn02k7y*Lz^IdcMuIh znX=lW1f5-QE<|>iKBfcPbFvMxd)vLpjAVpyX(~{x;Wj*xOKWJ~)OqOE7=qGEU>HR& z0S7Mu1uGnuHsq);D|ig7dVqW>!%?&jVAV(x!cYqZd8=eWcPr{R)B7=i`42XDh8;Em zCrA2ISdaXT;M#kNK{hA^2T6bjBQ9@oNgcRM(l1}2+-;m2hE#o>DoEu|vaCLg*n^nf zVExvQhJ>IktdOtRvau7qo@fUu-sh4;kPcXP_A4-nPW;|NSd5(Owg%b*WLW7yjOM3e zm|HjrT9C?uvjzf(c!)uv0l^6ZF%~dfH=XskyXewPj55@+_60s!H9by@x z22OAXz9yjn+GEiZYp`6M+L+&ajcBYnT>6dgP=DUmX8jdOzpTMQg<;RwhK)ay@qJI& z$WM%IB~6WR6~CW#JcfTQQWM?s52;(B?FlRi@<(=%#oo1wdkTgdP!W?>kCels`+Mer z2q&_v#uF}udEO=Y>m+>#TWwh_DfLdVP?9z zNK^}-*+54%0u4P5XnO56nmZhZXE8|xceF*fOKtrRjV;YRkAZ-Vj;-*y%`rUurE-zt&NAV1E;W$^h1#jLk?wKnWqK@sUy(Xz;ZtaKzUjk)>MTx5D`6h)t2^yr*6cbq@BpD7=98u zG!e1rrg^`BmzHjOutL=#M*2va7#`3A||VxaKnnS30fOy>_3PcIZkwHi%E6% z6yh71uw0_T=)1&@|1)QJ1z&xp`p*{b=N%5MRkFZ#Bm!Dfp!8AZasy6Xg(C`bTR1z2RsDtNG?lRn4Tn)+Ya4@C?tr0#y> zARb1zd$u!S=u;Cs&s6*SBUfUy(FZW6kFyf<@R9HT?(QlSYZy#bVTB#ptnRFf;i9-w zi(wa*Dm=G!rxfBC0&ki`X**pZ^s{37A+h)bN*INI|IhirevUZ7&GlxbVGrnuL6GW5 z+2HGjV>Lu}1Pd|4x1ZuHM--8`Q_l`$qaTyDwh=@N1*7&;Ar#!#5V zUL(=bO3KoTydBtc1k*0Ht4@D#D`+J(ec3_XaVBiYpg2-l90TxW9`7UI149k7a|daL zWKDs0QD22k4;(*_>EJIFdV+tXVderss?e>hb2ZD7Uid!7j;T*q(zY5!p1Sk1Qsd%{ zkF|O6S4t!%{0jDMng^Jxn@bNn7-L#5fQFd`s^m!1i$T5|V~b%s2Mfb|Wvoi#4I5lP zm+&s^({M+Bjdm1CZ{9v4Bg-Ig^V8MnhEwW=U|zlen-!0vUVS9EZv}ZJ#Qt45x?LQ- zG6VuYVK#a-kUa(+sr1w9KSC84Itn0L0-g~-QdMYM{?OC_fBp+u0T%@{$OA1EzPo=1 z(0czLX!Y-#(515=k_MWG|Ih#Me~?%um%R^_9N1+(3L?@MY3Fw`L8*o}kkMncev`vE zQSaDvd9-z?OvJF<07`{jyqjs_(uFBZp>lQu*Eu0fUMTSr%KNpa-0>Opq|Eu*tKmvu1$-@R*K#IbQSI@tWRFNDg_QdPHW9Wn64W zSWcC+r?RM__s2i0(xEn>Gwe8ESKKP{4j6`k5P|zI%~xg8viGj`07L_O9XWS+{Pe#t zsr{&c1%%ho{%B4iw-evmnZ^qNJ@#iy_iFieudxCW^-UcOSU4htN|lvmlyLpyH9 zeUvKc9i)Ws_~tcUI{G8~)a}OJ?;`v^@(%M+kj?}&HQST zxoGl)utBzP`>~g1bLqmRTo;~_znJh|zF41p;*`+`>9OajRk4Xd2B%w-48|_qJFj7V zvLkW#;Ga9Y*OxS&RjN|7lXdTV)W`ZNE+YeX1+qJ`wj4$(FDrd=<7q6(b+GDkbSykw zG~(ZprROIo`Q6*7^~Uv|S~>s_@+W_9-uX&m+V98@y7@^$PdGe+%SZ%>BedI{MP< z+r!B_7uDXiZlmOptpiixdVFn|y3Pr=J81?zZ*!PUyPP9G-#N?FbLU-RPCmKZ+Dht% zT>6Q#_j)5_)dr=vd9*dv?@sAlSSk4`XZ%ANdCXJ4LtXp6i%NBm+oM0~f3`A>fLQi7 z>zU#DyvfrMdJA46dTnnF%q)^UyIj%MyIk!VR5_VUAa`Sz7UCLw7pLYm+txZ4!-FOx zPr3fI>5aQSni3;EnNoAE*yUwpIhE69tvbUDwJa3+RGMb7%p2yDXI}gxlBY-V!}a(k zOgzRtzp-qX@cENGl3f;4TOQNY8-^{7s>hqZo~8YN4D-7Ef2q4FNj|HW4ipI_n4aNs*$#> zwROfl(=Uy-_C9`Ie%bdlux=vdgVzLqkJHklRARjJ0xMk~@mbG3Y1DuA=v3TUt)CAk z+c0Ifa@?fHKWuw>xf*{lJ$L1@fts*ktN}MZ?UehSk*^Pg&ez?S{_|^Jy${T6*0yoI zo1ocfqv z5wj=q6%}jN+Enc_1;-^)qxsPyKVGU<*JZs(@xh^iA1w+c9N7)u2&k#}6Go-Yr+>L0 z2yYi)|HfqhZr?B<=5m8!gn`J*k(VF3bz6J0VpbHGTiX|JNfspAVSVjeU-Y(fU1B}E z`cdojU5WU?p=(rmUAa@T?@~njE*GS``CK?RUlnU>{s@e=zV2?ml40x@-L_vXL)KRF z({d~WA~nvI@D+U;0$tcmGQF7*EJr>1W$d_ePY`4mid)^2Zg7-8hXr`#I+g=TVJS zNru&IW%1_RYudVUE%iz(y*GdV4(}U}yjW0bS}?25c^6w=sUI6@z-f1-RC86m!`jWh z(=TYtEJA9|y;~|7X=acuX)>g<(HXw*%TMW1Np+~ng)qI#{N)kzzin3T{xHg9o|L)3 zR(ql~Iw@F3OUCxH=YaIva_|o=UB~N*kZ@B=F?U|Z;9bo@no@${Hs4iG>#_YDzcD1! z49DPg^)!%;{wohAa;L>UeWoPu;>)C?sY)7{3(d8%>1#Euy|S5t*}TKWDZ^c3#G}i+ zrKxsIHZS|<K&ck{Xf89P zUwD>eX)7J;{6xZd=8RCLL_(<~hj@?&2d*ZbBH z9&pr+?VQ;2!QX{>zfAHP(``57qiD-Huij~G7~fCMPp%lgVJQ99bAE9A{`*LQg9cpW zP(I|3oR!<3UnWoH>J;-@pBvQ4O84W|ZHjq6F`g-Uzvs+cLGNy!c2%L{n<*K0&R(SB ziS^{4NePaVgPA=?hl;=9a_0gc8Aw)7sg{V7E~aw{$jjDqR#JJ5R$EuJjcR|_5g3^%GM)+A)T<^RmA%X@pLb{ydtA?pv7~wBh>?1PZpR2V;-dyF^{hE3w#!S8q)QT+|mIx%qV_-n<)o>+Y=z_q!gSE4p{&Mc4dZ zm%epK%c{TRIOi~D|6Szbru)iJ{rxY+|HPg-_q(n>IF=xMJFLQ1voj}`rA%nnV;}Te5zU{U@Lo2tiS^ig zU8)+3w{it$5hO+1vt0M`72kFN54Yy6%*^j&h0lqXyB+)HVvRh57KH8*epvm}>fFz5 zDlXzJ{($g~I4YoqX_RkK@AfIm-%QGHfAfC8#P9P${Yv)_M&&1EC2v`r1o_o{X&jaf z@i$Xseq3jXd2-^qF`KTa9_5K<&YuG9xL@6y4<|F%bmk(sZ|c;zX^dAVm1h);d@hqM*y5GxIyvoNmhTQ6xdG^mW{+Hh^S`9Ym?Q4UaCAY_{wyBS|Z~r!Q z)=P+!U;L3|Uqv7UA9{*y}aX`>2Ei0cVX1d z&WFV@>xqo}yPfX(mEYglN9}?JZS70GX*K`Tl@`enXEEh|JO_c2cBwnB@ZoLTNC$%)1$ez(nX*5wwT?cAt7w-rsv7tk{=*7nM0RC~6F zBD61$ywGoW!gw~)0_kf|Kr|1*4^y_itWv5n-};E1=^#iSu9P1`hIsS^+EaR^7t!2a zR&Hw19~2&3E=toBIjr8~gWqQmJxbep`Uud)AG8URG>6_~7R~q2lz4V6x5$(Lq#2D5 zsi0Tb@9DmwIcRiI^mNZtN}1abRuo@)#UohftK08;7X?eA%I=}I!#~K*+-kVv;C6>Q zqlzYL5_h(3aUlQr)4lol3Z7RpEobK@-9!cKG_Mr-R?PZI&v@xy%i9VvsZtj%W_xH` zkQKkNBVAS#W71;Mp1e?ST&vARK=XHN_t)q*ny?3Ia}YFe)72GZlW>b z?qf6miCIf)`H9y2effe%c6oWTx#gn}3F1`3}@dRcd+fy+kf5S)d*;|hyCAhGbTlw=XYJY6)`>mR8=(Tw>tM7b8QP|NO}8R zI|@58_+3%9iN_Xa2@GLk3u zhFZh!>PRq?PPn-&^uM@z3#g{v#}9ZoU?2#nDB%bNL_iv0H0W1K=~6(#p$JHf?o?D9 zqg7;-NQrSMC=Z z9$&5~ELCYtzsA>)xlr)i%fd2ZaA8fhn={gZ>4VUifNi5E&3%K{)cwL~uX5fRrfH~s zolf!7*RhG=Ue4OOS(T=tBA#ZoTHysEAtpCs(hS0+wqoTmde6?IUgfw`ls#@&bqO0A zTm81Za%_>~fm_om-;nLgah|l5Y)j7_8l73${qpmlZY2ZjB1*1GGEP;b$MdJ_Ets%& z${jp9^?b}6bIjZoga*Hw$g3z+jAia;>-5iVwt7CR$XD6H-&1vTqhfnZR@1Rh(kQtL zzw8}<$nwTzO=<@H^r7sO;m`1(dR(|aYCTy|vEtlZU}JxH2e>z|rYA`nA&uiAoZq6X z*AF-zzG~va_9L}oMyjf0FRAs}Zc84_-r+Hirs`z`I`Q_upn7lY}6h2PY7Q)Q+VC8Law*XPctWODW94e zW-;3=EjP!F>8vnjaCeEC++?^Cmd%V%yJFkx|1<{v+4#wzk?@meH@}qs9NRVs_9S#-6`+4riflsghZLUWe`3dD~y zNYQgp#Iop4E0o&!<~X|%QBFszAhiKxfphG0vgLDu=v@$k@EzbV3bnPnFQ=U`Y55pf z@(u!yAws)+#%Gxy3(f1{pvh*tx!S3eo3Z6TLj@AL5V#QT9Lrr|>e&i~5w+w1U%ck% z1Y<`Ah)AA#)GY;K=fnVn0!ne{SSnEMQhxBrW(}a+RzRVh07?iTWxuO50fI6#2e3TJ zZKiF46YR{f08&6GTeeT(NEwo4rvXxL+A4I!eWDwfj}q;!r39IWK=VoR@y7v*z}OEp zXHPt)Ew7|TVy6jKq~=zVIK{tp2=#!4K2Qc#W*T}!$%ujd8c zpBNKJb>SdH!BjYrMhIqBOM=~QX2OZ=o)Q%%$&)Iu9~_C0MWJ&Tabh+>9wLp1H)+;B zJW-M}6%nGRo?;z@vH&~!Er6dBL8}HwJ><3g78rW~#ZfAo?s#%7?gh~~Lqz*<}d8y;x;W6lzzMH1RXU*p+z7E-&Crha-d0SSSde z3=B6dBO>yE!?E}@#R8GpVYj3X#)#rGOh;b>iQ*YD+E7&rg=_@~2PH!&L2tq|mViC~ zm-PW>>ILI5BV1e=q~IMzC9liB#qya3xc@9wH?BgOX`MiHK+toj}t!rH}zalsF+6E5TL9>y-X46Se;cMv7!Q zU6^B9blxUh?nxL6`HMxKK+E9fVC)m6%$@rq6sGA^2mmoBp5j_^zy{}bOCaIU(fn{^ z&$QLw7=#uPa!ok3FNN&76g8ZX7{_wvBn6PT4Ea>L5@Z@qf+g$_sO{&yFe3B-6b2Zj zmXfjpjS~c7#~RG?7N^nJq=7%Z=46r zcVU=M7usQv2wGGt0+CA0P5B$f;smZ8xH)Uw=*T5n7&Hpi!G3sl#rYJ|CqlSkO9AxA z=ng0&A-}ejkVpjbgDp_2O3JzzRO}iKBA0Aw4&MQk&oU4_1kZatE1QCNZD8l1Y}(^u zXSn*Wg0~5Tu5`V8u~f#)dO<(oD@WL z7*BeR0w;-pxp~ofAxnvz_ZiO!IKOE0re^vhIw90ZgyIrVPXIYUNsH+x&H!OdT>w)D zN2vuC9fV*!Q%?|88Uu`QG)A;1iUd}=y*KBeMw}`oEy5TQ_DxZAqLUYm)WvpM6GAXi z(+>s_j#wBT=kE28VXLHdlHLYkV}M5mliFjcBMT(NN;_kutY)`KpM$93ZIT8zISYKE zcp}MC#Bdj3XP#FwG zGvDheSuh;r9%qT&;NlICx)>OU=S!*_fNWIQ)6nls$=@MbNq!U`u)UQpSzAuyezjv; zgRUmQKk_hsT(;$7m_CS8+xIsri{{qC-0Jj{(#Ylra;$!ma8xL%l52<5>jkGP%t9dk z&gQ^z#j~TAstgJIX)9m5Oa{h=TRKM{jSV9{^sNqA@@{C7e#^U-N=|BiG0K`qR)z7q zo>(Jy8g@52O^|E47gfBokHUS(%)+#dz&s zF(KF9>)V+1x3uOyk@kDjbE0ss)+Cz-i7c=QFsvWflrhoirc{n3&K<>)U9;su~Nt)rh*46tfIlI!F>lZ z;TG5fVy+I!xl4XY`HIk-nJtLRqiC@}FhYhkKtTByjjTUO_ZiD^;&xG~2bv3mrp(Q@ zOuIsM+eO>JRNp=!lNZ3_IwkBE>bPyTY8Rzgg@FP2Z)Ewkz@G3iU&mxDf!Z9|&&0Gs zbcRr!ksdx~NB2*gFovpw>(BDdBhvmV8n(7US_jlfsy#{q9uD6~R z2`yxEIssk`6cZiX3KrDj}5@N8m+`xBwVIy~z01*e&6Tscou=OLP7V^v& zr!t&mQO6ekUsOv(XDSD0LW4C&PlSGT5*{;4JON<+eue#N?(%k9%tnq(5TS%^i0J-69 z5vlEIG!&<}Ou{&ot4>sPv?y`@qNsoUq!#1BO&Y!LJdO_qY}(vPaaG zC(CRmU^ypR!IIx&?T)?*J%)K3K^^VC6Wu2)Iw zIBK$kcOp)(6gNBA`A1~KSR^CqT)GI%9)-r94Pi|V(5vv)2xv&z)n0omH$rek%z+Y0 zqG_l_G`K|C=Lb3M7~_EoV+RuswgEp&xFbp|aK_O;1Qg)sXq=buS<_RjBWH$&-`m#` zh0!mcG8u-Kdmvb@++#)c&z`w1iH~p6B>JD6OWb<3YZsyuYr;*Ogn+Av=+r-?$Y94p z9tR`89XF6lz_5Xdh?a%OVB(VwMDm=7Bi%&Zsv`yW05vsj$Jx<>)h9)dZ{nTFOC1(^ozUcBs*)Yppf z1Di^Yfb0f$cEtF_{rU!_H#SmLb!<1tpUfr29wwx|koFZR(@6*GJQ(;CypQlc)1=wE z?&1CSxEk9|8Rn+vK^^=wS-H(ot-CL#wfdxdDheDp6*)6e&zKCirod@21hZ6LVOyP6 zWqmBpI`xH-Z}G?UM~yd%eiovY=~bknV1G6xe?Pd5-uyN5HFk9H6Oe2rhY|I_$>4&9 zX*%E;Q;7>S_Z`D_P&GwWH z-|E`m+PM2W_7l1MB$7OC93bC8mgF z*e4M`n&dPoxwICJ!f$?Q1DV?7LvAM!6h_ML6Hto2W&;83;Cg3;ZKUq{t(!HCN?F_I zSai!6(v!K2UmmQ_c8OyDqh+HKPoDOy;`~!=T#5nGR_wOMTJZ#{WZS+@C5PJAjmMVh zi5ⅆ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⁡_c{7ha>M(r&V%jk2hpfw?bz$nRao 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 a|F2ycV-*2;i@)hY{Wxb@LRCNf=Klh4R-^C$ literal 0 HcmV?d00001 diff --git a/docs/sensors/sensors.rst b/docs/sensors/sensors.rst index c4afca17..76ddc560 100644 --- a/docs/sensors/sensors.rst +++ b/docs/sensors/sensors.rst @@ -8,6 +8,18 @@ Overview This document provides information and guides for using the various angle sensor and encoder types supported by Tinymovr. +Connector Overview +****************** + +.. image:: connectors_R52.jpg + :width: 800 + :alt: Tinymovr R5.2 connector diagram + +.. image:: connectors_R51.jpg + :width: 800 + :alt: Tinymovr R5.1 connector diagram + + Hardware Setup ************** @@ -21,26 +33,34 @@ Tinymovr supports a number of external sensors over the SPI bus. Currently, the Tinymovr R5.3 and above does not have this issue and supports external SPI sensors normally. + +AMS AS5047 +------------------ + +The AMS AS5047 is a compact absolute angle magnetic sensor. It is compatible with Tinymovr M5.x. In the connection diagram below, we consider the AS5047 breakout board issued by AMS. + .. image:: AS5047_M52.jpg :width: 800 :alt: AS5047 Sensor connection diagram for the Tinymovr M5.2 -A total of six wires need to be connected: 5V, GND, MISO, MOSI, SCLK and CS +A total of six wires need to be connected: 5V, GND, MISO, MOSI, SCLK and CS. -Hall Effect Sensor -================== -To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the Tinymovr board. The pinout for the Hall effect sensor connector is shown below. +CUI AMT22 +------------------ -.. image:: connectors_R52.jpg - :width: 800 - :alt: Tinymovr R5.2 connector diagram +The CUI AMT22 is an absolute angle, 12 or 14-bit capacitive sensor. It is compatible with Tinymovr M5.x. -.. image:: connectors_R51.jpg - :width: 800 - :alt: Tinymovr R5.1 connector diagram + .. image:: AMT22_M52.jpg + :width: 800 + :alt: AS5047 Sensor connection diagram for the Tinymovr M5.2 + +A total of six wires need to be connected: 5V, GND, MISO, MOSI, SCLK and CS If using the AMS AMT-06C-1-036 prototype cable, you can additionally connect the cable shield (black wire) to one GND pin on the CAN bus ports or the SWD port. + +Hall Effect Sensor +================== -Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled AUX/T is an input for a thermistor, but is currently not in use. In addition, power supply and GND pins need to be connected to the sensor. +To use Hall effect sensors, you need to connect the sensor's power supply, phases and ground to the correct pins on the FLEX1 header of the Tinymovr R5.2 or greater, or the AUX header of the Tinymovr R5.1. Note the U, V and W pins. These need to be connected to the respective pins of the sensor. The pin labeled AUX/T is an input for a thermistor, but is currently not in use. In addition, power supply and GND pins need to be connected to the sensor. .. note:: Tinymovr R5.2 and above supply 5V on the FLEX1 power supply pin. You can safely connect this to the Hall effect sensor + terminal. From e4512a2426eee6ec4c491f881ffbccd7dfd1e5a3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 15 Apr 2024 17:24:06 +0300 Subject: [PATCH 148/219] parametrize the ssp data size --- firmware/src/sensor/amt22.c | 2 +- firmware/src/sensor/amt22.h | 7 +++++++ firmware/src/sensor/as5047.c | 2 +- firmware/src/sensor/ma7xx.c | 2 +- firmware/src/ssp/ssp_func.c | 4 ++-- firmware/src/ssp/ssp_func.h | 2 +- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index a62c8a2d..6a58b8ee 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -48,7 +48,7 @@ bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) { AMT22Sensor *as = (AMT22Sensor *)s; as->config = *c; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 0, 0); + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_8, 0, 0); delay_us(10000); amt22_send_angle_cmd(s); diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index ded69dc4..86a46a48 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -66,6 +66,13 @@ static inline uint8_t amt22_get_errors(const Sensor *s) static inline void amt22_send_angle_cmd(const Sensor *s) { + // AMT22 has specific timing requirements with respect to reading + // the first and second bytes of the angle. For this reason we + // insert the 6us delay that corresponds to the datasheet-specified + // 3us + an experimentally defined value to account for transmission + // delay. + ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); + delay_us(6); ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); } diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index d5309792..7b8368f0 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -48,7 +48,7 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; as->config = *c; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, 1, 0); + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_16, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet as5047p_send_angle_cmd(s); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 0cc4a9f7..e86e156c 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -50,7 +50,7 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s { MA7xxSensor *ms = (MA7xxSensor *)s; ms->config = *c; - ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, 0, 0); + ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, SSP_DATA_SIZE_16, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); ma7xx_update(s, false); diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index 72d0ed11..a1903913 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -759,7 +759,7 @@ void ssp_interrupt_disable(SSP_TYPE ssp) } } -void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint8_t cph, uint8_t cpol) +void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, uint8_t cph, uint8_t cpol) { PAC55XX_SSP_TYPEDEF *ssp_ptr; @@ -804,7 +804,7 @@ void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint8_t cph, ssp_ptr->CON.LBM = SSP_LP_NORMAL; // Loopback Mode, no loopback mode ssp_ptr->CON.CPH = cph; // Clock Out Phase ssp_ptr->CON.CPO = cpol; // Clock Out Polarity - ssp_ptr->CON.DSS = SSP_DATA_SIZE_16; // Data Size Select, 16 bit data + ssp_ptr->CON.DSS = data_size; // Data Size Select ssp_ptr->CON.SOD = SSP_OUTPUT_NOT_DRIVE; // Slave Output Disable ssp_io_config(ssp, ms_mode); diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index 5cc80f40..df22cc7b 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -38,7 +38,7 @@ typedef enum volatile uint16_t ssp_data[10]; volatile uint16_t data_num; -extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint8_t cph, uint8_t cpol); +extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, uint8_t cph, uint8_t cpol); extern void ssp_deinit(SSP_TYPE ssp); extern uint32_t ssp_write_one(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t data); extern uint32_t ssp_write_multi(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t *data, uint32_t byte_num); From 997a42e469d9b8ddd28599f86b56af3e1ae7b852 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 15 Apr 2024 17:24:25 +0300 Subject: [PATCH 149/219] fix reading of AMT22 --- firmware/src/sensor/amt22.h | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index 86a46a48..c84881f7 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -84,32 +84,21 @@ static inline int32_t amt22_get_raw_angle(const Sensor *s) static inline void amt22_update(Sensor *s, bool check_error) { AMT22Sensor *as = (AMT22Sensor *)s; - volatile uint16_t read_value = ssp_read_one(as->config.ssp_struct); + volatile uint8_t val_l = ssp_read_one(as->config.ssp_struct); + volatile uint8_t val_h = ssp_read_one(as->config.ssp_struct); - int odd_mask = 0x2AAA; // 0010101010101010, ignoring bits at indexes 14, 15 - int even_mask = 0x1555; // 0001010101010101, ignoring bits at indexes 14, 15 - // 0xAAA8 - // 0x5554 - - const int odd_parity = calculate_parity(read_value, odd_mask); - const int even_parity = calculate_parity(read_value, even_mask); - - // Only update angle if parity check passes - if (((read_value & 0x01) == odd_parity) && ((read_value & 0x02) == even_parity)) + const int32_t angle = (((val_h & 0xff) << 8) | (val_l & 0xff)) & 0x3FFF; + if (check_error) { - const int32_t angle = read_value & 0x3FFF; - if (check_error) + const int32_t delta = as->angle - angle; + if ( ((delta > AMT22_MAX_ALLOWED_DELTA) || (delta < -AMT22_MAX_ALLOWED_DELTA)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_ADD) || (delta < AMT22_MIN_ALLOWED_DELTA_ADD)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_SUB) || (delta < AMT22_MIN_ALLOWED_DELTA_SUB)) ) { - const int32_t delta = as->angle - angle; - if ( ((delta > AMT22_MAX_ALLOWED_DELTA) || (delta < -AMT22_MAX_ALLOWED_DELTA)) && - ((delta > AMT22_MAX_ALLOWED_DELTA_ADD) || (delta < AMT22_MIN_ALLOWED_DELTA_ADD)) && - ((delta > AMT22_MAX_ALLOWED_DELTA_SUB) || (delta < AMT22_MIN_ALLOWED_DELTA_SUB)) ) - { - as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; - } + as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; } - as->angle = angle; } + as->angle = angle; } From 454fbcda138e915cb33192e2b91079ecda9e654b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 16 Apr 2024 11:02:43 +0300 Subject: [PATCH 150/219] add amt22 test --- studio/Python/tests/test_amt22.py | 172 ++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 studio/Python/tests/test_amt22.py diff --git a/studio/Python/tests/test_amt22.py b/studio/Python/tests/test_amt22.py new file mode 100644 index 00000000..5f2d672b --- /dev/null +++ b/studio/Python/tests/test_amt22.py @@ -0,0 +1,172 @@ +""" +Tinymovr Board Config Tests +Copyright Ioannis Chatzikonstantinou 2020-2023 + +Tests saving and loading Tinymovr configuration to/from NVRAM. + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with +this program. If not, see . +""" + +import random +import time + +from avlos.unit_field import get_registry + +import unittest +from tests import TMTestCase + +ureg = get_registry() +A = ureg.ampere +tick = ureg.ticks +s = ureg.second +tsleep = 0.80 + + +class TestAMT22(TMTestCase): + + @classmethod + def setUpClass(cls): + super(TestAMT22, cls).setUpClass() + + cls.configure_sensors(cls.tm.sensors.setup.external_spi.type.AMT22) + cls.select_sensors(cls.tm.sensors.select.position_sensor.connection.ONBOARD, cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + + # We look at the position estimate, which is highly unlikely to be exactly 0xFFFF. + if cls.tm.sensors.select.position_sensor.raw_angle == 16383: + raise unittest.SkipTest("AMT22 sensor not present. Skipping test.") + + cls.reset_and_wait() + + def test_a_position_control_before_after_save_and_load_config(self): + """ + Test position control after saving and loading config. + WARNING: This will perform one NVRAM write and two erase cycles. + """ + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.configure_sensors(self.tm.sensors.setup.external_spi.type.AMT22) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + + self.tm.motor.I_cal = 1.0 + + self.try_calibrate() + + self.tm.controller.position.p_gain = 9 + self.tm.controller.velocity.p_gain = 3e-5 + self.tm.controller.velocity.i_gain = 0 + self.tm.controller.velocity.limit = 200000 + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-1000, 1000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=200 * tick, + ) + + self.tm.controller.idle() + + time.sleep(0.1) + + self.tm.save_config() + + time.sleep(0.2) + + self.reset_and_wait() + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-1000, 1000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=200 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + + def test_b_position_control_following_sensor_change(self): + """ + Test position control before and after changing sensor connection and type. + This test will alter the sensor configuration from an external SPI connection + to an onboard connection, and verify if the position control maintains accuracy. + """ + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + # Initially configure with external SPI sensor + self.configure_sensors(self.tm.sensors.setup.external_spi.type.AMT22) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + self.tm.motor.I_cal = 1.0 + self.try_calibrate() + + # Set initial controller gains + self.tm.controller.position.p_gain = 9 + self.tm.controller.velocity.p_gain = 3e-5 + self.tm.controller.velocity.i_gain = 0 + self.tm.controller.velocity.limit = 200000 + + # Start with external SPI sensor + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(5): + new_pos = random.uniform(-1000, 1000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=200 * tick, + ) + + self.tm.controller.idle() + time.sleep(0.1) + + # Change to onboard sensor + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.ONBOARD) + + # Re-calibrate with new sensor setup + self.try_calibrate() + time.sleep(0.1) + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(5): + new_pos = random.uniform(-10000, 10000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.erase_config() + time.sleep(0.2) + + +if __name__ == "__main__": + unittest.main() From 8589ed439ec68f2720c98f6f9a102b6921ee987c Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 17 Apr 2024 23:47:54 +0300 Subject: [PATCH 151/219] track and use reference frame calibrations --- firmware/src/sensor/sensors.c | 6 +++++- firmware/src/system/system.c | 3 ++- firmware/src/xfs.c | 3 ++- firmware/src/xfs.h | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 072d475a..65e22dfd 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -206,6 +206,8 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options && (controller_get_state() == CONTROLLER_STATE_IDLE) && (internal_type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type)) { + frames_reset_calibrated(); + Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); if (s->initialized) { @@ -222,6 +224,8 @@ void sensor_set_connection(Sensor** target_sensor_p, Sensor** other_sensor_p, se && new_connection != sensor_get_connection(*target_sensor_p) && new_connection >= 0 && new_connection < SENSOR_CONNECTION_MAX) { + frames_reset_calibrated(); + if (sensor_get_connection(*target_sensor_p) != sensor_get_connection(*other_sensor_p)) { observer_reset_state(observer_get_for_sensor(*target_sensor_p)); @@ -295,7 +299,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) if (commutation_sensor_p == position_sensor_p) { - frame_set_position_sensor_to_motor(frames.commutation_sensor_to_motor); + frame_set_position_sensor_to_motor(*(frame_commutation_sensor_to_motor_p())); } else if (sensor_get_type(position_sensor_p) != SENSOR_TYPE_HALL) { diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 94da8a23..4d28c22b 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -141,7 +141,8 @@ TM_RAMFUNC float system_get_Vbus(void) TM_RAMFUNC bool system_get_calibrated(void) { - return (motor_get_calibrated() && + return (frames_get_calibrated() && + motor_get_calibrated() && commutation_sensor_p->is_calibrated_func(commutation_sensor_p) && position_sensor_p->is_calibrated_func(position_sensor_p)); } diff --git a/firmware/src/xfs.c b/firmware/src/xfs.c index ba1f4939..286acfa6 100644 --- a/firmware/src/xfs.c +++ b/firmware/src/xfs.c @@ -10,5 +10,6 @@ FramesConfig frames = { .commutation_sensor_to_motor = DEFAULT_TRANSFORM, .motor_to_commutation_sensor = DEFAULT_TRANSFORM, .motor_to_user = DEFAULT_TRANSFORM, - .user_to_motor = DEFAULT_TRANSFORM + .user_to_motor = DEFAULT_TRANSFORM, + .calibrated = default_calibrated }; diff --git a/firmware/src/xfs.h b/firmware/src/xfs.h index 0c236443..a38a416b 100644 --- a/firmware/src/xfs.h +++ b/firmware/src/xfs.h @@ -16,8 +16,24 @@ #pragma once +#include #include +typedef enum { + none_calibrated = 0, + position_sensor_to_user_calibrated = 1, + user_to_position_sensor_calibrated = 1 << 1, + position_sensor_to_motor_calibrated = 1 << 2, + motor_to_position_sensor_calibrated = 1 << 3, + commutation_sensor_to_motor_calibrated = 1 << 4, + motor_to_commutation_sensor_calibrated = 1 << 5, + motor_to_user_calibrated = 1 << 6, + user_to_motor_calibrated = 1 << 7, + default_calibrated = (position_sensor_to_user_calibrated | user_to_position_sensor_calibrated), + all_calibrated = 0xFF +} FramesOrder; + + typedef struct { FrameTransform position_sensor_to_user; FrameTransform user_to_position_sensor; @@ -27,10 +43,21 @@ typedef struct { FrameTransform motor_to_commutation_sensor; FrameTransform motor_to_user; FrameTransform user_to_motor; + FramesOrder calibrated; } FramesConfig; extern FramesConfig frames; +static inline bool frames_get_calibrated(void) +{ + return (frames.calibrated == all_calibrated); +} + +static inline void frames_reset_calibrated(void) +{ + frames.calibrated = default_calibrated; +} + static inline void frames_get_config(FramesConfig *_config) { *_config = frames; @@ -97,6 +124,8 @@ static inline void frame_user_to_position_sensor_set_offset(float value) frames.position_sensor_to_user = derive_inverse_transform(frame_user_to_position_sensor_p()); frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); + frames.calibrated |= (position_sensor_to_user_calibrated | + user_to_position_sensor_calibrated | motor_to_user_calibrated | user_to_motor_calibrated); } static inline void frame_user_to_position_sensor_set_multiplier(float value) @@ -107,6 +136,8 @@ static inline void frame_user_to_position_sensor_set_multiplier(float value) frames.position_sensor_to_user = derive_inverse_transform(frame_user_to_position_sensor_p()); frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); + frames.calibrated |= (position_sensor_to_user_calibrated | + user_to_position_sensor_calibrated | motor_to_user_calibrated | user_to_motor_calibrated); } } @@ -114,6 +145,7 @@ static inline void frame_set_commutation_sensor_to_motor(const FrameTransform va { frames.commutation_sensor_to_motor = value; frames.motor_to_commutation_sensor = derive_inverse_transform(frame_commutation_sensor_to_motor_p()); + frames.calibrated |= (commutation_sensor_to_motor_calibrated | motor_to_commutation_sensor_calibrated); } static inline void frame_set_position_sensor_to_motor(const FrameTransform value) @@ -122,4 +154,6 @@ static inline void frame_set_position_sensor_to_motor(const FrameTransform value frames.motor_to_position_sensor = derive_inverse_transform(&value); frames.user_to_motor = combine_transforms(frame_user_to_position_sensor_p(), frame_position_sensor_to_motor_p()); frames.motor_to_user = derive_inverse_transform(frame_user_to_motor_p()); + frames.calibrated |= (position_sensor_to_motor_calibrated | + motor_to_position_sensor_calibrated | motor_to_user_calibrated | user_to_motor_calibrated); } From 91b9a19d0af5d52e53186ee4470835f665e02f30 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 18 Apr 2024 00:15:36 +0300 Subject: [PATCH 152/219] update as5047 tests --- studio/Python/tests/test_as5047.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py index c7ffee37..a0cabc74 100644 --- a/studio/Python/tests/test_as5047.py +++ b/studio/Python/tests/test_as5047.py @@ -116,20 +116,20 @@ def test_b_position_control_following_sensor_change(self): # Initially configure with external SPI sensor self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) - self.select_sensors(self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) self.tm.motor.I_cal = 0.8 self.try_calibrate() # Set initial controller gains self.tm.controller.position.p_gain = 9 - self.tm.controller.velocity.p_gain = 2e-5 + self.tm.controller.velocity.p_gain = 3e-5 self.tm.controller.velocity.i_gain = 0 + self.tm.controller.velocity.limit = 200000 # Start with external SPI sensor self.tm.controller.position_mode() self.check_state(2) - initial_positions = [] for _ in range(5): new_pos = random.uniform(-20000, 20000) self.tm.controller.position.setpoint = new_pos * tick @@ -139,13 +139,12 @@ def test_b_position_control_following_sensor_change(self): self.tm.controller.position.setpoint, delta=2000 * tick, ) - initial_positions.append(new_pos * tick) self.tm.controller.idle() time.sleep(0.1) # Change to onboard sensor - self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.ONBOARD) # Re-calibrate with new sensor setup self.try_calibrate() @@ -154,13 +153,13 @@ def test_b_position_control_following_sensor_change(self): self.tm.controller.position_mode() self.check_state(2) - # Verify position control with onboard sensor - for setpoint in initial_positions: - self.tm.controller.position.setsetpoint = setpoint + for _ in range(5): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick time.sleep(tsleep) self.assertAlmostEqual( self.tm.sensors.user_frame.position_estimate, - setpoint, + self.tm.controller.position.setpoint, delta=2000 * tick, ) From 9a541fa17bf2aa35f9c3866323378de3fd369f36 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 19 Apr 2024 15:59:12 +0300 Subject: [PATCH 153/219] change scheduler error to warning --- docs/protocol/reference.rst | 4 ++-- firmware/src/can/can_endpoints.c | 6 +++--- firmware/src/can/can_endpoints.h | 8 ++++---- firmware/src/scheduler/scheduler.c | 16 +++++----------- firmware/src/scheduler/scheduler.h | 6 +++--- firmware/src/tm_enums.h | 6 +++--- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 0856aa3e..7ba464d9 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -233,7 +233,7 @@ Processor load in ticks per PWM cycle. -scheduler.errors +scheduler.warnings ------------------------------------------------------------------- ID: 17 @@ -242,7 +242,7 @@ Type: uint8 -Any scheduler errors, as a bitmask +Any scheduler warnings, as a bitmask Flags: diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index e60a7016..1878b5f6 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,7 +18,7 @@ #include -uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_errors, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_comms_can_heartbeat, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_warnings, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_comms_can_heartbeat, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; uint32_t _avlos_get_proto_hash(void) { @@ -206,11 +206,11 @@ if (AVLOS_CMD_READ == cmd) { return AVLOS_RET_NOACTION; } -uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +uint8_t avlos_scheduler_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { uint8_t v; - v = scheduler_get_errors(); + v = scheduler_get_warnings(); *buffer_len = sizeof(v); memcpy(buffer, &v, sizeof(v)); return AVLOS_RET_READ; diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 08cf8371..49bac632 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -static const uint32_t avlos_proto_hash = 3066507445; +static const uint32_t avlos_proto_hash = 318558145; extern uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); @@ -219,16 +219,16 @@ uint8_t avlos_config_size(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command uint8_t avlos_scheduler_load(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* -* avlos_scheduler_errors +* avlos_scheduler_warnings * -* Any scheduler errors, as a bitmask +* Any scheduler warnings, as a bitmask * * Endpoint ID: 17 * * @param buffer * @param buffer_len */ -uint8_t avlos_scheduler_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +uint8_t avlos_scheduler_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); /* * avlos_controller_state diff --git a/firmware/src/scheduler/scheduler.c b/firmware/src/scheduler/scheduler.c index cfb7c9fd..f45dfbbd 100644 --- a/firmware/src/scheduler/scheduler.c +++ b/firmware/src/scheduler/scheduler.c @@ -92,19 +92,13 @@ void wait_for_control_loop_interrupt(void) void ADC_IRQHandler(void) { PAC55XX_ADC->ADCINT.ADCIRQ0IF = 1; - // Only in case the gate driver is enabled, ensure - // the control deadline is not missed, - // i.e. the previous control loop is complete prior - // to the ADC triggering the next + scheduler_state.adc_interrupt = true; + // Only in case the gate driver is enabled, raise a + // warning if the control loop is about to be + // reentered if (gate_driver_is_enabled() && scheduler_state.busy) { - scheduler_state.errors |= SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED; - // We do not change the control state here, to - // avoid any concurrency issues - } - else - { - scheduler_state.adc_interrupt = true; + scheduler_state.warnings |= SCHEDULER_WARNINGS_CONTROL_BLOCK_REENTERED; } } diff --git a/firmware/src/scheduler/scheduler.h b/firmware/src/scheduler/scheduler.h index 26e0f987..32f8f887 100644 --- a/firmware/src/scheduler/scheduler.h +++ b/firmware/src/scheduler/scheduler.h @@ -26,16 +26,16 @@ typedef struct bool busy; uint32_t load; - uint8_t errors; + uint8_t warnings; } SchedulerState; extern volatile SchedulerState scheduler_state; void wait_for_control_loop_interrupt(void); -static inline uint8_t scheduler_get_errors(void) +static inline uint8_t scheduler_get_warnings(void) { - return scheduler_state.errors; + return scheduler_state.warnings; } static inline uint32_t scheduler_get_load(void) diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index fb009616..e8b9f801 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -41,9 +41,9 @@ typedef enum typedef enum { - SCHEDULER_ERRORS_NONE = 0, - SCHEDULER_ERRORS_CONTROL_BLOCK_REENTERED = (1 << 0) -} scheduler_errors_flags; + SCHEDULER_WARNINGS_NONE = 0, + SCHEDULER_WARNINGS_CONTROL_BLOCK_REENTERED = (1 << 0) +} scheduler_warnings_flags; typedef enum { From abc0cf55533d42895d93967bed73032327713665 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 19 Apr 2024 15:59:20 +0300 Subject: [PATCH 154/219] rename device spec --- .../specs/{tinymovr_1_7_x.yaml => tinymovr_2_0_x.yaml} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename studio/Python/tinymovr/specs/{tinymovr_1_7_x.yaml => tinymovr_2_0_x.yaml} (99%) diff --git a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml b/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml similarity index 99% rename from studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml rename to studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml index ab02618a..aabaacec 100644 --- a/studio/Python/tinymovr/specs/tinymovr_1_7_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml @@ -90,11 +90,11 @@ remote_attributes: getter_name: scheduler_get_load meta: {dynamic: True} dtype: uint32 - - name: errors + - name: warnings flags: [CONTROL_BLOCK_REENTERED] meta: {dynamic: True} - getter_name: scheduler_get_errors - summary: Any scheduler errors, as a bitmask + getter_name: scheduler_get_warnings + summary: Any scheduler warnings, as a bitmask - name: controller remote_attributes: - name: state From ba9b4c0e6ec424ebafb0e61babe822b58d12a66e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 19:11:41 +0300 Subject: [PATCH 155/219] update protocol headers based on new spec --- docs/protocol/reference.rst | 93 ++++++++++++------- firmware/src/can/can_endpoints.c | 20 +++- firmware/src/can/can_endpoints.h | 86 +++++++++-------- firmware/src/tm_enums.h | 54 +++++++---- .../Python/tinymovr/specs/tinymovr_2_0_x.yaml | 8 +- 5 files changed, 168 insertions(+), 93 deletions(-) diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 7ba464d9..2b047516 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -846,7 +846,7 @@ Type: uint8 -The type of external sensor type. Either MA7XX, AS5047 or AMT22. +The type of the external sensor. Options: @@ -856,11 +856,34 @@ Options: - AMT22 -sensors.setup.external_spi.calibrated +sensors.setup.external_spi.rate ------------------------------------------------------------------- ID: 62 +Type: uint8 + + + +The rate of the external sensor. + +Options: + +- 1_5Mbps + +- 3Mbps + +- 6Mbps + +- 8Mbps + +- 12Mbps + +sensors.setup.external_spi.calibrated +------------------------------------------------------------------- + +ID: 63 + Type: bool @@ -872,7 +895,7 @@ Whether the sensor has been calibrated. sensors.setup.external_spi.errors ------------------------------------------------------------------- -ID: 63 +ID: 64 Type: uint8 @@ -889,7 +912,7 @@ Flags: sensors.setup.hall.calibrated ------------------------------------------------------------------- -ID: 64 +ID: 65 Type: bool @@ -902,7 +925,7 @@ Whether the sensor has been calibrated. sensors.setup.hall.errors ------------------------------------------------------------------- -ID: 65 +ID: 66 Type: uint8 @@ -919,7 +942,7 @@ Flags: sensors.select.position_sensor.connection ------------------------------------------------------------------- -ID: 66 +ID: 67 Type: uint8 @@ -938,7 +961,7 @@ Options: sensors.select.position_sensor.bandwidth ------------------------------------------------------------------- -ID: 67 +ID: 68 Type: float @@ -951,7 +974,7 @@ The position sensor observer bandwidth. sensors.select.position_sensor.raw_angle ------------------------------------------------------------------- -ID: 68 +ID: 69 Type: int32 @@ -964,7 +987,7 @@ The raw position sensor angle. sensors.select.position_sensor.position_estimate ------------------------------------------------------------------- -ID: 69 +ID: 70 Type: float @@ -977,7 +1000,7 @@ The filtered position estimate in the position sensor reference frame. sensors.select.position_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 70 +ID: 71 Type: float @@ -990,7 +1013,7 @@ The filtered velocity estimate in the position sensor reference frame. sensors.select.commutation_sensor.connection ------------------------------------------------------------------- -ID: 71 +ID: 72 Type: uint8 @@ -1009,7 +1032,7 @@ Options: sensors.select.commutation_sensor.bandwidth ------------------------------------------------------------------- -ID: 72 +ID: 73 Type: float @@ -1022,7 +1045,7 @@ The commutation sensor observer bandwidth. sensors.select.commutation_sensor.raw_angle ------------------------------------------------------------------- -ID: 73 +ID: 74 Type: int32 @@ -1035,7 +1058,7 @@ The raw commutation sensor angle. sensors.select.commutation_sensor.position_estimate ------------------------------------------------------------------- -ID: 74 +ID: 75 Type: float @@ -1048,7 +1071,7 @@ The filtered position estimate in the commutation sensor reference frame. sensors.select.commutation_sensor.velocity_estimate ------------------------------------------------------------------- -ID: 75 +ID: 76 Type: float @@ -1061,7 +1084,7 @@ The filtered velocity estimate in the commutation sensor reference frame. traj_planner.max_accel ------------------------------------------------------------------- -ID: 76 +ID: 77 Type: float @@ -1074,7 +1097,7 @@ The max allowed acceleration of the generated trajectory. traj_planner.max_decel ------------------------------------------------------------------- -ID: 77 +ID: 78 Type: float @@ -1087,7 +1110,7 @@ The max allowed deceleration of the generated trajectory. traj_planner.max_vel ------------------------------------------------------------------- -ID: 78 +ID: 79 Type: float @@ -1100,7 +1123,7 @@ The max allowed cruise velocity of the generated trajectory. traj_planner.t_accel ------------------------------------------------------------------- -ID: 79 +ID: 80 Type: float @@ -1113,7 +1136,7 @@ In time mode, the acceleration time of the generated trajectory. traj_planner.t_decel ------------------------------------------------------------------- -ID: 80 +ID: 81 Type: float @@ -1126,7 +1149,7 @@ In time mode, the deceleration time of the generated trajectory. traj_planner.t_total ------------------------------------------------------------------- -ID: 81 +ID: 82 Type: float @@ -1139,7 +1162,7 @@ In time mode, the total time of the generated trajectory. move_to(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 82 +ID: 83 Return Type: void @@ -1150,7 +1173,7 @@ Move to target position in the user reference frame respecting velocity and acce move_to_tlimit(float pos_setpoint) -> void -------------------------------------------------------------------------------------------- -ID: 83 +ID: 84 Return Type: void @@ -1161,7 +1184,7 @@ Move to target position in the user reference frame respecting time limits for e traj_planner.errors ------------------------------------------------------------------- -ID: 84 +ID: 85 Type: uint8 @@ -1178,7 +1201,7 @@ Flags: homing.velocity ------------------------------------------------------------------- -ID: 85 +ID: 86 Type: float @@ -1191,7 +1214,7 @@ The velocity at which the motor performs homing. homing.max_homing_t ------------------------------------------------------------------- -ID: 86 +ID: 87 Type: float @@ -1204,7 +1227,7 @@ The maximum time the motor is allowed to travel before homing times out and abor homing.retract_dist ------------------------------------------------------------------- -ID: 87 +ID: 88 Type: float @@ -1217,7 +1240,7 @@ The retraction distance the motor travels after the endstop has been found. homing.warnings ------------------------------------------------------------------- -ID: 88 +ID: 89 Type: uint8 @@ -1232,7 +1255,7 @@ Flags: homing.stall_detect.velocity ------------------------------------------------------------------- -ID: 89 +ID: 90 Type: float @@ -1245,7 +1268,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.delta_pos ------------------------------------------------------------------- -ID: 90 +ID: 91 Type: float @@ -1258,7 +1281,7 @@ The velocity below which (and together with `stall_detect.delta_pos`) stall dete homing.stall_detect.t ------------------------------------------------------------------- -ID: 91 +ID: 92 Type: float @@ -1271,7 +1294,7 @@ The time to remain in stall detection mode before the motor is considered stalle home() -> void -------------------------------------------------------------------------------------------- -ID: 92 +ID: 93 Return Type: void @@ -1282,7 +1305,7 @@ Perform the homing operation. watchdog.enabled ------------------------------------------------------------------- -ID: 93 +ID: 94 Type: bool @@ -1295,7 +1318,7 @@ Whether the watchdog is enabled or not. watchdog.triggered ------------------------------------------------------------------- -ID: 94 +ID: 95 Type: bool @@ -1308,7 +1331,7 @@ Whether the watchdog has been triggered or not. watchdog.timeout ------------------------------------------------------------------- -ID: 95 +ID: 96 Type: float diff --git a/firmware/src/can/can_endpoints.c b/firmware/src/can/can_endpoints.c index 1878b5f6..cc4f6cfc 100644 --- a/firmware/src/can/can_endpoints.c +++ b/firmware/src/can/can_endpoints.c @@ -18,7 +18,7 @@ #include -uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_warnings, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_comms_can_heartbeat, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; +uint8_t (*avlos_endpoints[97])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) = {&avlos_protocol_hash, &avlos_uid, &avlos_fw_version, &avlos_hw_revision, &avlos_Vbus, &avlos_Ibus, &avlos_power, &avlos_temp, &avlos_calibrated, &avlos_errors, &avlos_warnings, &avlos_save_config, &avlos_erase_config, &avlos_reset, &avlos_enter_dfu, &avlos_config_size, &avlos_scheduler_load, &avlos_scheduler_warnings, &avlos_controller_state, &avlos_controller_mode, &avlos_controller_warnings, &avlos_controller_errors, &avlos_controller_position_setpoint, &avlos_controller_position_p_gain, &avlos_controller_velocity_setpoint, &avlos_controller_velocity_limit, &avlos_controller_velocity_p_gain, &avlos_controller_velocity_i_gain, &avlos_controller_velocity_deadband, &avlos_controller_velocity_increment, &avlos_controller_current_Iq_setpoint, &avlos_controller_current_Id_setpoint, &avlos_controller_current_Iq_limit, &avlos_controller_current_Iq_estimate, &avlos_controller_current_bandwidth, &avlos_controller_current_Iq_p_gain, &avlos_controller_current_max_Ibus_regen, &avlos_controller_current_max_Ibrake, &avlos_controller_voltage_Vq_setpoint, &avlos_controller_calibrate, &avlos_controller_idle, &avlos_controller_position_mode, &avlos_controller_velocity_mode, &avlos_controller_current_mode, &avlos_controller_set_pos_vel_setpoints, &avlos_comms_can_rate, &avlos_comms_can_id, &avlos_comms_can_heartbeat, &avlos_motor_R, &avlos_motor_L, &avlos_motor_pole_pairs, &avlos_motor_type, &avlos_motor_calibrated, &avlos_motor_I_cal, &avlos_motor_errors, &avlos_sensors_user_frame_position_estimate, &avlos_sensors_user_frame_velocity_estimate, &avlos_sensors_user_frame_offset, &avlos_sensors_user_frame_multiplier, &avlos_sensors_setup_onboard_calibrated, &avlos_sensors_setup_onboard_errors, &avlos_sensors_setup_external_spi_type, &avlos_sensors_setup_external_spi_rate, &avlos_sensors_setup_external_spi_calibrated, &avlos_sensors_setup_external_spi_errors, &avlos_sensors_setup_hall_calibrated, &avlos_sensors_setup_hall_errors, &avlos_sensors_select_position_sensor_connection, &avlos_sensors_select_position_sensor_bandwidth, &avlos_sensors_select_position_sensor_raw_angle, &avlos_sensors_select_position_sensor_position_estimate, &avlos_sensors_select_position_sensor_velocity_estimate, &avlos_sensors_select_commutation_sensor_connection, &avlos_sensors_select_commutation_sensor_bandwidth, &avlos_sensors_select_commutation_sensor_raw_angle, &avlos_sensors_select_commutation_sensor_position_estimate, &avlos_sensors_select_commutation_sensor_velocity_estimate, &avlos_traj_planner_max_accel, &avlos_traj_planner_max_decel, &avlos_traj_planner_max_vel, &avlos_traj_planner_t_accel, &avlos_traj_planner_t_decel, &avlos_traj_planner_t_total, &avlos_traj_planner_move_to, &avlos_traj_planner_move_to_tlimit, &avlos_traj_planner_errors, &avlos_homing_velocity, &avlos_homing_max_homing_t, &avlos_homing_retract_dist, &avlos_homing_warnings, &avlos_homing_stall_detect_velocity, &avlos_homing_stall_detect_delta_pos, &avlos_homing_stall_detect_t, &avlos_homing_home, &avlos_watchdog_enabled, &avlos_watchdog_triggered, &avlos_watchdog_timeout }; uint32_t _avlos_get_proto_hash(void) { @@ -881,6 +881,24 @@ else if (AVLOS_CMD_WRITE == cmd) { return AVLOS_RET_NOACTION; } +uint8_t avlos_sensors_setup_external_spi_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) +{ +if (AVLOS_CMD_READ == cmd) { + uint8_t v; + v = sensor_external_spi_get_rate_avlos(); + *buffer_len = sizeof(v); + memcpy(buffer, &v, sizeof(v)); + return AVLOS_RET_READ; + } +else if (AVLOS_CMD_WRITE == cmd) { + uint8_t v; + memcpy(&v, buffer, sizeof(v)); + sensor_external_spi_set_rate_avlos(v); + return AVLOS_RET_WRITE; + } + return AVLOS_RET_NOACTION; +} + uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd) { if (AVLOS_CMD_READ == cmd) { diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index 49bac632..a41bc38e 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,8 +10,8 @@ #include #include -static const uint32_t avlos_proto_hash = 318558145; -extern uint8_t (*avlos_endpoints[96])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +static const uint32_t avlos_proto_hash = 3704894695; +extern uint8_t (*avlos_endpoints[97])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); /* @@ -749,7 +749,7 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le /* * avlos_sensors_setup_external_spi_type * -* The type of external sensor type. Either MA7XX, AS5047 or AMT22. +* The type of the external sensor. * * Endpoint ID: 61 * @@ -758,12 +758,24 @@ uint8_t avlos_sensors_setup_onboard_errors(uint8_t * buffer, uint8_t * buffer_le */ uint8_t avlos_sensors_setup_external_spi_type(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); +/* +* avlos_sensors_setup_external_spi_rate +* +* The rate of the external sensor. +* +* Endpoint ID: 62 +* +* @param buffer +* @param buffer_len +*/ +uint8_t avlos_sensors_setup_external_spi_rate(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); + /* * avlos_sensors_setup_external_spi_calibrated * * Whether the sensor has been calibrated. * -* Endpoint ID: 62 +* Endpoint ID: 63 * * @param buffer * @param buffer_len @@ -775,7 +787,7 @@ uint8_t avlos_sensors_setup_external_spi_calibrated(uint8_t * buffer, uint8_t * * * Any sensor errors, as a bitmask * -* Endpoint ID: 63 +* Endpoint ID: 64 * * @param buffer * @param buffer_len @@ -787,7 +799,7 @@ uint8_t avlos_sensors_setup_external_spi_errors(uint8_t * buffer, uint8_t * buff * * Whether the sensor has been calibrated. * -* Endpoint ID: 64 +* Endpoint ID: 65 * * @param buffer * @param buffer_len @@ -799,7 +811,7 @@ uint8_t avlos_sensors_setup_hall_calibrated(uint8_t * buffer, uint8_t * buffer_l * * Any sensor errors, as a bitmask * -* Endpoint ID: 65 +* Endpoint ID: 66 * * @param buffer * @param buffer_len @@ -811,7 +823,7 @@ uint8_t avlos_sensors_setup_hall_errors(uint8_t * buffer, uint8_t * buffer_len, * * The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 66 +* Endpoint ID: 67 * * @param buffer * @param buffer_len @@ -823,7 +835,7 @@ uint8_t avlos_sensors_select_position_sensor_connection(uint8_t * buffer, uint8_ * * The position sensor observer bandwidth. * -* Endpoint ID: 67 +* Endpoint ID: 68 * * @param buffer * @param buffer_len @@ -835,7 +847,7 @@ uint8_t avlos_sensors_select_position_sensor_bandwidth(uint8_t * buffer, uint8_t * * The raw position sensor angle. * -* Endpoint ID: 68 +* Endpoint ID: 69 * * @param buffer * @param buffer_len @@ -847,7 +859,7 @@ uint8_t avlos_sensors_select_position_sensor_raw_angle(uint8_t * buffer, uint8_t * * The filtered position estimate in the position sensor reference frame. * -* Endpoint ID: 69 +* Endpoint ID: 70 * * @param buffer * @param buffer_len @@ -859,7 +871,7 @@ uint8_t avlos_sensors_select_position_sensor_position_estimate(uint8_t * buffer, * * The filtered velocity estimate in the position sensor reference frame. * -* Endpoint ID: 70 +* Endpoint ID: 71 * * @param buffer * @param buffer_len @@ -871,7 +883,7 @@ uint8_t avlos_sensors_select_position_sensor_velocity_estimate(uint8_t * buffer, * * The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. * -* Endpoint ID: 71 +* Endpoint ID: 72 * * @param buffer * @param buffer_len @@ -883,7 +895,7 @@ uint8_t avlos_sensors_select_commutation_sensor_connection(uint8_t * buffer, uin * * The commutation sensor observer bandwidth. * -* Endpoint ID: 72 +* Endpoint ID: 73 * * @param buffer * @param buffer_len @@ -895,7 +907,7 @@ uint8_t avlos_sensors_select_commutation_sensor_bandwidth(uint8_t * buffer, uint * * The raw commutation sensor angle. * -* Endpoint ID: 73 +* Endpoint ID: 74 * * @param buffer * @param buffer_len @@ -907,7 +919,7 @@ uint8_t avlos_sensors_select_commutation_sensor_raw_angle(uint8_t * buffer, uint * * The filtered position estimate in the commutation sensor reference frame. * -* Endpoint ID: 74 +* Endpoint ID: 75 * * @param buffer * @param buffer_len @@ -919,7 +931,7 @@ uint8_t avlos_sensors_select_commutation_sensor_position_estimate(uint8_t * buff * * The filtered velocity estimate in the commutation sensor reference frame. * -* Endpoint ID: 75 +* Endpoint ID: 76 * * @param buffer * @param buffer_len @@ -931,7 +943,7 @@ uint8_t avlos_sensors_select_commutation_sensor_velocity_estimate(uint8_t * buff * * The max allowed acceleration of the generated trajectory. * -* Endpoint ID: 76 +* Endpoint ID: 77 * * @param buffer * @param buffer_len @@ -943,7 +955,7 @@ uint8_t avlos_traj_planner_max_accel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed deceleration of the generated trajectory. * -* Endpoint ID: 77 +* Endpoint ID: 78 * * @param buffer * @param buffer_len @@ -955,7 +967,7 @@ uint8_t avlos_traj_planner_max_decel(uint8_t * buffer, uint8_t * buffer_len, Avl * * The max allowed cruise velocity of the generated trajectory. * -* Endpoint ID: 78 +* Endpoint ID: 79 * * @param buffer * @param buffer_len @@ -967,7 +979,7 @@ uint8_t avlos_traj_planner_max_vel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the acceleration time of the generated trajectory. * -* Endpoint ID: 79 +* Endpoint ID: 80 * * @param buffer * @param buffer_len @@ -979,7 +991,7 @@ uint8_t avlos_traj_planner_t_accel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the deceleration time of the generated trajectory. * -* Endpoint ID: 80 +* Endpoint ID: 81 * * @param buffer * @param buffer_len @@ -991,7 +1003,7 @@ uint8_t avlos_traj_planner_t_decel(uint8_t * buffer, uint8_t * buffer_len, Avlos * * In time mode, the total time of the generated trajectory. * -* Endpoint ID: 81 +* Endpoint ID: 82 * * @param buffer * @param buffer_len @@ -1003,7 +1015,7 @@ uint8_t avlos_traj_planner_t_total(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting velocity and acceleration limits. * -* Endpoint ID: 82 +* Endpoint ID: 83 * * @param buffer * @param buffer_len @@ -1015,7 +1027,7 @@ uint8_t avlos_traj_planner_move_to(uint8_t * buffer, uint8_t * buffer_len, Avlos * * Move to target position in the user reference frame respecting time limits for each sector. * -* Endpoint ID: 83 +* Endpoint ID: 84 * * @param buffer * @param buffer_len @@ -1027,7 +1039,7 @@ uint8_t avlos_traj_planner_move_to_tlimit(uint8_t * buffer, uint8_t * buffer_len * * Any errors in the trajectory planner, as a bitmask * -* Endpoint ID: 84 +* Endpoint ID: 85 * * @param buffer * @param buffer_len @@ -1039,7 +1051,7 @@ uint8_t avlos_traj_planner_errors(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The velocity at which the motor performs homing. * -* Endpoint ID: 85 +* Endpoint ID: 86 * * @param buffer * @param buffer_len @@ -1051,7 +1063,7 @@ uint8_t avlos_homing_velocity(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The maximum time the motor is allowed to travel before homing times out and aborts. * -* Endpoint ID: 86 +* Endpoint ID: 87 * * @param buffer * @param buffer_len @@ -1063,7 +1075,7 @@ uint8_t avlos_homing_max_homing_t(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * The retraction distance the motor travels after the endstop has been found. * -* Endpoint ID: 87 +* Endpoint ID: 88 * * @param buffer * @param buffer_len @@ -1075,7 +1087,7 @@ uint8_t avlos_homing_retract_dist(uint8_t * buffer, uint8_t * buffer_len, Avlos_ * * Any homing warnings, as a bitmask * -* Endpoint ID: 88 +* Endpoint ID: 89 * * @param buffer * @param buffer_len @@ -1087,7 +1099,7 @@ uint8_t avlos_homing_warnings(uint8_t * buffer, uint8_t * buffer_len, Avlos_Comm * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 89 +* Endpoint ID: 90 * * @param buffer * @param buffer_len @@ -1099,7 +1111,7 @@ uint8_t avlos_homing_stall_detect_velocity(uint8_t * buffer, uint8_t * buffer_le * * The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. * -* Endpoint ID: 90 +* Endpoint ID: 91 * * @param buffer * @param buffer_len @@ -1111,7 +1123,7 @@ uint8_t avlos_homing_stall_detect_delta_pos(uint8_t * buffer, uint8_t * buffer_l * * The time to remain in stall detection mode before the motor is considered stalled. * -* Endpoint ID: 91 +* Endpoint ID: 92 * * @param buffer * @param buffer_len @@ -1123,7 +1135,7 @@ uint8_t avlos_homing_stall_detect_t(uint8_t * buffer, uint8_t * buffer_len, Avlo * * Perform the homing operation. * -* Endpoint ID: 92 +* Endpoint ID: 93 * * @param buffer * @param buffer_len @@ -1135,7 +1147,7 @@ uint8_t avlos_homing_home(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command * * Whether the watchdog is enabled or not. * -* Endpoint ID: 93 +* Endpoint ID: 94 * * @param buffer * @param buffer_len @@ -1147,7 +1159,7 @@ uint8_t avlos_watchdog_enabled(uint8_t * buffer, uint8_t * buffer_len, Avlos_Com * * Whether the watchdog has been triggered or not. * -* Endpoint ID: 94 +* Endpoint ID: 95 * * @param buffer * @param buffer_len @@ -1159,7 +1171,7 @@ uint8_t avlos_watchdog_triggered(uint8_t * buffer, uint8_t * buffer_len, Avlos_C * * The watchdog timeout period. * -* Endpoint ID: 95 +* Endpoint ID: 96 * * @param buffer * @param buffer_len diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index e8b9f801..6b97558d 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -103,43 +103,59 @@ typedef enum typedef enum { - CONTROLLER_STATE_IDLE = 0, - CONTROLLER_STATE_CALIBRATE = 1, - CONTROLLER_STATE_CL_CONTROL = 2 + CONTROLLER_STATE_IDLE = 0, + CONTROLLER_STATE_CALIBRATE = 1, + CONTROLLER_STATE_CL_CONTROL = 2, + CONTROLLER_STATE__MAX } controller_state_options; typedef enum { - CONTROLLER_MODE_CURRENT = 0, - CONTROLLER_MODE_VELOCITY = 1, - CONTROLLER_MODE_POSITION = 2, - CONTROLLER_MODE_TRAJECTORY = 3, - CONTROLLER_MODE_HOMING = 4 + CONTROLLER_MODE_CURRENT = 0, + CONTROLLER_MODE_VELOCITY = 1, + CONTROLLER_MODE_POSITION = 2, + CONTROLLER_MODE_TRAJECTORY = 3, + CONTROLLER_MODE_HOMING = 4, + CONTROLLER_MODE__MAX } controller_mode_options; typedef enum { - MOTOR_TYPE_HIGH_CURRENT = 0, - MOTOR_TYPE_GIMBAL = 1 + MOTOR_TYPE_HIGH_CURRENT = 0, + MOTOR_TYPE_GIMBAL = 1, + MOTOR_TYPE__MAX } motor_type_options; typedef enum { - SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX = 0, - SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047 = 1, - SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22 = 2 + SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX = 0, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047 = 1, + SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22 = 2, + SENSORS_SETUP_EXTERNAL_SPI_TYPE__MAX } sensors_setup_external_spi_type_options; typedef enum { - SENSORS_SELECT_POSITION_SENSOR_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_POSITION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_POSITION_SENSOR_CONNECTION_HALL = 2 + SENSORS_SETUP_EXTERNAL_SPI_RATE_1_5Mbps = 0, + SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps = 1, + SENSORS_SETUP_EXTERNAL_SPI_RATE_6Mbps = 2, + SENSORS_SETUP_EXTERNAL_SPI_RATE_8Mbps = 3, + SENSORS_SETUP_EXTERNAL_SPI_RATE_12Mbps = 4, + SENSORS_SETUP_EXTERNAL_SPI_RATE__MAX +} sensors_setup_external_spi_rate_options; + +typedef enum +{ + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_POSITION_SENSOR_CONNECTION_HALL = 2, + SENSORS_SELECT_POSITION_SENSOR_CONNECTION__MAX } sensors_select_position_sensor_connection_options; typedef enum { - SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_ONBOARD = 0, - SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, - SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_HALL = 2 + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_ONBOARD = 0, + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_EXTERNAL_SPI = 1, + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION_HALL = 2, + SENSORS_SELECT_COMMUTATION_SENSOR_CONNECTION__MAX } sensors_select_commutation_sensor_connection_options; diff --git a/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml b/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml index aabaacec..a1ad30f2 100644 --- a/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml +++ b/studio/Python/tinymovr/specs/tinymovr_2_0_x.yaml @@ -386,7 +386,13 @@ remote_attributes: meta: {export: True} getter_name: sensor_external_spi_get_type_avlos setter_name: sensor_external_spi_set_type_avlos - summary: The type of external sensor type. Either MA7XX, AS5047 or AMT22. + summary: The type of the external sensor. + - name: rate + options: [1_5Mbps, 3Mbps, 6Mbps, 8Mbps, 12Mbps] + meta: {export: True, dynamic: True} + getter_name: sensor_external_spi_get_rate_avlos + setter_name: sensor_external_spi_set_rate_avlos + summary: The rate of the external sensor. - name: calibrated dtype: bool meta: {dynamic: True} From e0cd57ccc9a46819a6da6935c11b6b70d55745dc Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 19:12:16 +0300 Subject: [PATCH 156/219] add init_func for initialization using sensor pointer only --- firmware/src/sensor/amt22.c | 8 +++++++- firmware/src/sensor/amt22.h | 4 +++- firmware/src/sensor/as5047.c | 8 +++++++- firmware/src/sensor/as5047.h | 5 +++-- firmware/src/sensor/hall.c | 7 +++++++ firmware/src/sensor/hall.h | 1 + firmware/src/sensor/ma7xx.c | 7 +++++++ firmware/src/sensor/ma7xx.h | 2 ++ firmware/src/sensor/sensor.h | 2 ++ 9 files changed, 39 insertions(+), 5 deletions(-) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index 6a58b8ee..05d75674 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -32,7 +32,8 @@ void amt22_make_blank_sensor(Sensor *s) s->update_func = amt22_update; s->prepare_func = amt22_send_angle_cmd; s->reset_func = amt22_reset; - s->deinit_func = amt22_deinit; + s->init_func = amt22_init; + s->deinit_func = amt22_deinit; s->get_errors_func = amt22_get_errors; s->is_calibrated_func = amt22_is_calibrated; s->get_ss_config_func = amt22_get_ss_config; @@ -48,6 +49,11 @@ bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) { AMT22Sensor *as = (AMT22Sensor *)s; as->config = *c; + return amt22_init(s); +} + +bool amt22_init(Sensor *s) { + AMT22Sensor *as = (AMT22Sensor *)s; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_8, 0, 0); delay_us(10000); diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index c84881f7..ac7faa8d 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -37,6 +37,7 @@ typedef struct { SSP_TYPE ssp_port; PAC55XX_SSP_TYPEDEF *ssp_struct; + sensors_setup_external_spi_rate_options rate; } AMT22SensorConfig; typedef struct @@ -50,6 +51,7 @@ typedef struct void amt22_make_blank_sensor(Sensor *s); bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c); +bool amt22_init(Sensor *s); void amt22_deinit(Sensor *s); void amt22_reset(Sensor *s); void amt22_get_ss_config(Sensor *s, void* buffer); @@ -72,7 +74,7 @@ static inline void amt22_send_angle_cmd(const Sensor *s) // 3us + an experimentally defined value to account for transmission // delay. ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); - delay_us(6); + delay_us(5); ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); } diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 7b8368f0..14bdd230 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -31,7 +31,8 @@ void as5047p_make_blank_sensor(Sensor *s) s->get_raw_angle_func = as5047p_get_raw_angle; s->update_func = as5047p_update; s->prepare_func = as5047p_send_angle_cmd; - s->reset_func = as5047p_reset; + s->reset_func = as5047p_reset; + s->init_func = as5047p_init; s->deinit_func = as5047p_deinit; s->get_errors_func = as5047p_get_errors; s->is_calibrated_func = as5047p_is_calibrated; @@ -48,6 +49,11 @@ bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { AS5047PSensor *as = (AS5047PSensor *)s; as->config = *c; + return as5047p_init(s); +} + +bool as5047p_init(Sensor *s) { + AS5047PSensor *as = (AS5047PSensor *)s; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_16, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index afd86c18..c84d2db5 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -31,14 +31,14 @@ typedef enum { AS5047P_CMD_NOP = 0x0000, - AS5047P_CMD_READ_ANGLE = 0x3FFF // Adjust based on the AS5047P datasheet + AS5047P_CMD_READ_ANGLE = 0x3FFF } AS5047PCommand; typedef struct { SSP_TYPE ssp_port; PAC55XX_SSP_TYPEDEF *ssp_struct; - // Add any additional configuration parameters needed for AS5047P + sensors_setup_external_spi_rate_options rate; } AS5047PSensorConfig; typedef struct @@ -52,6 +52,7 @@ typedef struct void as5047p_make_blank_sensor(Sensor *s); bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); +bool as5047p_init(Sensor *s); void as5047p_deinit(Sensor *s); void as5047p_reset(Sensor *s); void as5047p_get_ss_config(Sensor *s, void* buffer); diff --git a/firmware/src/sensor/hall.c b/firmware/src/sensor/hall.c index 84308a6d..38d7a368 100644 --- a/firmware/src/sensor/hall.c +++ b/firmware/src/sensor/hall.c @@ -33,6 +33,7 @@ void hall_make_blank_sensor(Sensor *s) s->get_raw_angle_func = hall_get_angle; s->update_func = hall_update; s->reset_func = hall_reset; + s->init_func = hall_init; s->deinit_func = hall_deinit; s->get_errors_func = hall_get_errors; s->is_calibrated_func = hall_sector_map_is_calibrated; @@ -50,6 +51,12 @@ bool hall_init_with_config(Sensor *s, const HallSensorConfig *c) { HallSensor *ms = (HallSensor *)s; ms->config = *c; + return hall_init(s); +} + +bool hall_init(Sensor *s) +{ + HallSensor *ms = (HallSensor *)s; ms->hw_defaults[0] = pac5xxx_tile_register_read(ADDR_CFGAIO7); ms->hw_defaults[1] = pac5xxx_tile_register_read(ADDR_CFGAIO8); ms->hw_defaults[2] = pac5xxx_tile_register_read(ADDR_CFGAIO9); diff --git a/firmware/src/sensor/hall.h b/firmware/src/sensor/hall.h index d1cb3078..c2fcf5ca 100644 --- a/firmware/src/sensor/hall.h +++ b/firmware/src/sensor/hall.h @@ -45,6 +45,7 @@ typedef struct void hall_make_blank_sensor(Sensor *s); bool hall_init_with_defaults(Sensor *s); bool hall_init_with_config(Sensor *s, const HallSensorConfig *c); +bool hall_init(Sensor *s); void hall_deinit(Sensor *s); void hall_reset(Sensor *s); bool hall_calibrate_sequence(Sensor *s, Observer *o); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index e86e156c..440a77f8 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -30,6 +30,7 @@ void ma7xx_make_blank_sensor(Sensor *s) s->normalization_factor = SENSOR_COMMON_RES_TICKS_FLOAT / s->ticks; s->is_calibrated_func = ma7xx_rec_is_calibrated; s->get_raw_angle_func = ma7xx_get_raw_angle; + s->init_func = ma7xx_init; s->deinit_func = ma7xx_deinit; s->reset_func = ma7xx_reset; s->update_func = ma7xx_update; @@ -50,6 +51,12 @@ bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *s { MA7xxSensor *ms = (MA7xxSensor *)s; ms->config = *c; + return ma7xx_init(s); +} + + bool ma7xx_init(Sensor *s) +{ + MA7xxSensor *ms = (MA7xxSensor *)s; ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, SSP_DATA_SIZE_16, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index 21cf8beb..cbed16a4 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -40,6 +40,7 @@ typedef struct { SSP_TYPE ssp_port; PAC55XX_SSP_TYPEDEF *ssp_struct; + sensors_setup_external_spi_rate_options rate; } MA7xxSensorConfig; typedef struct @@ -53,6 +54,7 @@ typedef struct void ma7xx_make_blank_sensor(Sensor *s); bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); +bool ma7xx_init(Sensor *s); void ma7xx_deinit(Sensor *s); void ma7xx_reset(Sensor *s); void ma7xx_get_ss_config(Sensor *s, void* buffer); diff --git a/firmware/src/sensor/sensor.h b/firmware/src/sensor/sensor.h index 46e230b8..ffac1076 100644 --- a/firmware/src/sensor/sensor.h +++ b/firmware/src/sensor/sensor.h @@ -39,6 +39,7 @@ typedef struct Observer Observer; typedef bool (*sensor_is_calibrated_func_t)(const Sensor *); typedef bool (*sensor_calibrate_func_t)(Sensor *, Observer *); typedef int32_t (*sensor_get_raw_angle_func_t)(const Sensor *); +typedef bool (*sensor_init_func_t)(Sensor *); typedef void (*sensor_deinit_func_t)(Sensor *); typedef void (*sensor_reset_func_t)(Sensor *); typedef void (*sensor_prepare_func_t)(const Sensor *); @@ -74,6 +75,7 @@ struct Sensor { // typedefd earlier sensor_is_calibrated_func_t is_calibrated_func; sensor_calibrate_func_t calibrate_func; sensor_get_raw_angle_func_t get_raw_angle_func; + sensor_init_func_t init_func; sensor_deinit_func_t deinit_func; sensor_reset_func_t reset_func; sensor_update_func_t update_func; From b628c28f351d21a55e99a6a62fe6e9d9c555319f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 19:12:25 +0300 Subject: [PATCH 157/219] add getter and setter for rate --- firmware/src/sensor/sensors.c | 82 +++++++++++++++++++++++++---------- firmware/src/sensor/sensors.h | 20 +++++++++ 2 files changed, 80 insertions(+), 22 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 65e22dfd..86649966 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -183,29 +183,24 @@ void position_sensor_set_connection(sensor_connection_t new_connection) void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options type) { - sensor_type_t internal_type; - bool valid = false; - switch (type) - { - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: - internal_type = SENSOR_TYPE_MA7XX; - valid = true; - break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: - internal_type = SENSOR_TYPE_AS5047; - valid = true; - break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: - internal_type = SENSOR_TYPE_AMT22; - valid = true; - break; - default: - break; - } - if (valid - && (controller_get_state() == CONTROLLER_STATE_IDLE) - && (internal_type != sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type)) + if (type < SENSORS_SETUP_EXTERNAL_SPI_TYPE__MAX + && (controller_get_state() == CONTROLLER_STATE_IDLE)) { + sensor_type_t internal_type; + switch (type) + { + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + internal_type = SENSOR_TYPE_MA7XX; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + internal_type = SENSOR_TYPE_AS5047; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + internal_type = SENSOR_TYPE_AMT22; + break; + default: + break; + } frames_reset_calibrated(); Sensor *s = &(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor); @@ -218,6 +213,49 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options } } +void sensor_external_spi_set_rate_avlos(sensors_setup_external_spi_rate_options rate) +{ + if (rate < SENSORS_SETUP_EXTERNAL_SPI_RATE__MAX + && (controller_get_state() == CONTROLLER_STATE_IDLE)) + { + sensors_setup_external_spi_rate_options current_rate; + switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + { + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].as5047p_sensor.config.rate; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].amt22_sensor.config.rate; + break; + default: + current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate; + break; + } + if (rate != current_rate) + { + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.deinit_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); + switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + { + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate = rate; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].as5047p_sensor.config.rate = rate; + break; + case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].amt22_sensor.config.rate = rate; + break; + default: + break; + } + sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.init_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); + } + } +} + void sensor_set_connection(Sensor** target_sensor_p, Sensor** other_sensor_p, sensor_connection_t new_connection) { if (controller_get_state() == CONTROLLER_STATE_IDLE diff --git a/firmware/src/sensor/sensors.h b/firmware/src/sensor/sensors.h index 7846fb8c..b9af4439 100644 --- a/firmware/src/sensor/sensors.h +++ b/firmware/src/sensor/sensors.h @@ -149,7 +149,27 @@ static inline sensors_setup_external_spi_type_options sensor_external_spi_get_ty } } +static inline sensors_setup_external_spi_rate_options sensor_external_spi_get_rate_avlos(void) +{ + switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) + { + case SENSOR_TYPE_MA7XX: + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate; + break; + case SENSOR_TYPE_AS5047: + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].as5047p_sensor.config.rate; + break; + case SENSOR_TYPE_AMT22: + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].amt22_sensor.config.rate; + break; + default: + return sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate; + break; + } +} + void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options type); +void sensor_external_spi_set_rate_avlos(sensors_setup_external_spi_rate_options rate); static inline bool sensor_onboard_get_is_calibrated(void) { From 1f41182c25c1817a903a5f1a161f37d2ff640482 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 19:22:55 +0300 Subject: [PATCH 158/219] include spi rate as an init parameter --- firmware/src/sensor/amt22.c | 10 +++++++--- firmware/src/sensor/amt22.h | 2 +- firmware/src/sensor/as5047.c | 10 +++++++--- firmware/src/sensor/as5047.h | 2 +- firmware/src/sensor/ma7xx.c | 3 ++- firmware/src/sensor/ma7xx.h | 2 +- firmware/src/sensor/sensors.c | 8 ++++---- 7 files changed, 23 insertions(+), 14 deletions(-) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index 05d75674..f6287c59 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -39,20 +39,24 @@ void amt22_make_blank_sensor(Sensor *s) s->get_ss_config_func = amt22_get_ss_config; } -bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { +bool amt22_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate) +{ AMT22SensorConfig c = {0}; c.ssp_port = port; c.ssp_struct = ssp_struct; + c.rate = rate; return amt22_init_with_config(s, &c); } -bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) { +bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) +{ AMT22Sensor *as = (AMT22Sensor *)s; as->config = *c; return amt22_init(s); } -bool amt22_init(Sensor *s) { +bool amt22_init(Sensor *s) +{ AMT22Sensor *as = (AMT22Sensor *)s; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_8, 0, 0); delay_us(10000); diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index ac7faa8d..a7e8a0ab 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -49,7 +49,7 @@ typedef struct } AMT22Sensor; void amt22_make_blank_sensor(Sensor *s); -bool amt22_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); +bool amt22_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate); bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c); bool amt22_init(Sensor *s); void amt22_deinit(Sensor *s); diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 14bdd230..77d297ed 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -39,20 +39,24 @@ void as5047p_make_blank_sensor(Sensor *s) s->get_ss_config_func = as5047p_get_ss_config; } -bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) { +bool as5047p_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate) +{ AS5047PSensorConfig c = {0}; c.ssp_port = port; c.ssp_struct = ssp_struct; + c.rate = rate; return as5047p_init_with_config(s, &c); } -bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) { +bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) +{ AS5047PSensor *as = (AS5047PSensor *)s; as->config = *c; return as5047p_init(s); } -bool as5047p_init(Sensor *s) { +bool as5047p_init(Sensor *s) +{ AS5047PSensor *as = (AS5047PSensor *)s; ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_16, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet diff --git a/firmware/src/sensor/as5047.h b/firmware/src/sensor/as5047.h index c84d2db5..81b17fe9 100644 --- a/firmware/src/sensor/as5047.h +++ b/firmware/src/sensor/as5047.h @@ -50,7 +50,7 @@ typedef struct } AS5047PSensor; void as5047p_make_blank_sensor(Sensor *s); -bool as5047p_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); +bool as5047p_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate); bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c); bool as5047p_init(Sensor *s); void as5047p_deinit(Sensor *s); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index 440a77f8..ec0f14b0 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -39,11 +39,12 @@ void ma7xx_make_blank_sensor(Sensor *s) s->get_ss_config_func = ma7xx_get_ss_config; } -bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct) +bool ma7xx_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate) { MA7xxSensorConfig c = {0}; c.ssp_port = port; c.ssp_struct = ssp_struct; + c.rate = rate; return ma7xx_init_with_config(s, &c); } diff --git a/firmware/src/sensor/ma7xx.h b/firmware/src/sensor/ma7xx.h index cbed16a4..b36e0e2a 100644 --- a/firmware/src/sensor/ma7xx.h +++ b/firmware/src/sensor/ma7xx.h @@ -52,7 +52,7 @@ typedef struct } MA7xxSensor; void ma7xx_make_blank_sensor(Sensor *s); -bool ma7xx_init_with_port(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct); +bool ma7xx_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_TYPEDEF *ssp_struct, sensors_setup_external_spi_rate_options rate); bool ma7xx_init_with_config(Sensor *s, const MA7xxSensorConfig *c); bool ma7xx_init(Sensor *s); void ma7xx_deinit(Sensor *s); diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 86649966..de4799e5 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -70,20 +70,20 @@ bool sensor_init_with_defaults(Sensor *s) switch (connection) { case SENSOR_CONNECTION_ONBOARD_SPI: - return ma7xx_init_with_port(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT); + return ma7xx_init_with_port_and_rate(s, ONBOARD_SENSOR_SSP_PORT, ONBOARD_SENSOR_SSP_STRUCT, SENSORS_SETUP_EXTERNAL_SPI_RATE_12Mbps); break; #if defined BOARD_REV_R5 || defined BOARD_REV_M5 case SENSOR_CONNECTION_EXTERNAL_SPI: switch (s->config.type) { case SENSOR_TYPE_MA7XX: - return ma7xx_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + return ma7xx_init_with_port_and_rate(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT, SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps); break; case SENSOR_TYPE_AS5047: - return as5047p_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + return as5047p_init_with_port_and_rate(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT, SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps); break; case SENSOR_TYPE_AMT22: - return amt22_init_with_port(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT); + return amt22_init_with_port_and_rate(s, EXTERNAL_SENSOR_SSP_PORT, EXTERNAL_SENSOR_SSP_STRUCT, SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps); break; default: break; From f555ea2c7272c812f006e3c7d4916d5e2be68ffe Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 23:40:03 +0300 Subject: [PATCH 159/219] config rates in blank objects --- firmware/src/sensor/amt22.c | 2 ++ firmware/src/sensor/as5047.c | 2 ++ firmware/src/sensor/ma7xx.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index f6287c59..7481ee72 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -24,6 +24,8 @@ void amt22_make_blank_sensor(Sensor *s) { + AMT22Sensor *as = (AMT22Sensor *)s; + as->config.rate = SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps; s->config.type = SENSOR_TYPE_AMT22; s->bits = AMT22_BITS; s->ticks = AMT22_TICKS; diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 77d297ed..611401a8 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -24,6 +24,8 @@ void as5047p_make_blank_sensor(Sensor *s) { + AS5047PSensor *as = (AS5047PSensor *)s; + as->config.rate = SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps; s->config.type = SENSOR_TYPE_AS5047; s->bits = AS5047_BITS; s->ticks = AS5047_TICKS; diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index ec0f14b0..bfae672a 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -24,6 +24,8 @@ void ma7xx_make_blank_sensor(Sensor *s) { + MA7xxSensor *as = (MA7xxSensor *)s; + as->config.rate = SENSORS_SETUP_EXTERNAL_SPI_RATE_3Mbps; s->config.type = SENSOR_TYPE_MA7XX; s->bits = MA7XX_BITS; s->ticks = MA7XX_TICKS; From f464ddb7f09fa1c03bf777c8ff6003b0ac9510f8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 23:40:28 +0300 Subject: [PATCH 160/219] add test for different baud rates --- studio/Python/tests/test_as5047.py | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py index a0cabc74..f3971d53 100644 --- a/studio/Python/tests/test_as5047.py +++ b/studio/Python/tests/test_as5047.py @@ -167,5 +167,59 @@ def test_b_position_control_following_sensor_change(self): time.sleep(0.2) + def test_c_position_control_change_baud_rates(self): + """ + Test position control with external sensor and + different baud rates. + """ + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) + self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) + + self.tm.motor.I_cal = 0.8 + + self.try_calibrate() + + self.tm.controller.position.p_gain = 9 + self.tm.controller.velocity.p_gain = 2e-5 + self.tm.controller.velocity.i_gain = 0 + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.controller.idle() + + self.tm.sensors.setup.external_spi.rate = "1_5Mbps" + time.sleep(0.1) + + self.tm.controller.position_mode() + self.check_state(2) + + for _ in range(10): + new_pos = random.uniform(-20000, 20000) + self.tm.controller.position.setpoint = new_pos * tick + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.position_estimate, + self.tm.controller.position.setpoint, + delta=2000 * tick, + ) + + self.tm.controller.idle() + + if __name__ == "__main__": unittest.main() From 2d5fa50dd3c3733bbfc1b36eff13176db6937356 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 21 Apr 2024 23:40:37 +0300 Subject: [PATCH 161/219] use internal enums --- firmware/src/sensor/sensors.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index de4799e5..41cafa38 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -199,6 +199,7 @@ void sensor_external_spi_set_type_avlos(sensors_setup_external_spi_type_options internal_type = SENSOR_TYPE_AMT22; break; default: + internal_type = SENSOR_TYPE_MA7XX; break; } frames_reset_calibrated(); @@ -221,13 +222,13 @@ void sensor_external_spi_set_rate_avlos(sensors_setup_external_spi_rate_options sensors_setup_external_spi_rate_options current_rate; switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) { - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + case SENSOR_TYPE_MA7XX: current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate; break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + case SENSOR_TYPE_AS5047: current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].as5047p_sensor.config.rate; break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + case SENSOR_TYPE_AMT22: current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].amt22_sensor.config.rate; break; default: @@ -239,13 +240,13 @@ void sensor_external_spi_set_rate_avlos(sensors_setup_external_spi_rate_options sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.deinit_func(&(sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor)); switch (sensors[SENSOR_CONNECTION_EXTERNAL_SPI].sensor.config.type) { - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_MA7XX: + case SENSOR_TYPE_MA7XX: sensors[SENSOR_CONNECTION_EXTERNAL_SPI].ma7xx_sensor.config.rate = rate; break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AS5047: + case SENSOR_TYPE_AS5047: sensors[SENSOR_CONNECTION_EXTERNAL_SPI].as5047p_sensor.config.rate = rate; break; - case SENSORS_SETUP_EXTERNAL_SPI_TYPE_AMT22: + case SENSOR_TYPE_AMT22: current_rate = sensors[SENSOR_CONNECTION_EXTERNAL_SPI].amt22_sensor.config.rate = rate; break; default: From 0abc02a4568ce4d8c681043b3226d43e842993a7 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 26 Apr 2024 14:40:24 +0300 Subject: [PATCH 162/219] add spec to manifest --- studio/Python/Manifest.in | 1 + 1 file changed, 1 insertion(+) diff --git a/studio/Python/Manifest.in b/studio/Python/Manifest.in index 39735dd7..7c656374 100644 --- a/studio/Python/Manifest.in +++ b/studio/Python/Manifest.in @@ -11,5 +11,6 @@ include tinymovr/specs/tinymovr_1_3_x.yaml include tinymovr/specs/tinymovr_1_4_x.yaml include tinymovr/specs/tinymovr_1_5_x.yaml include tinymovr/specs/tinymovr_1_6_x.yaml +include tinymovr/specs/tinymovr_2_0_x.yaml include tinymovr/specs/dfu_1_0_x.yaml include tinymovr/specs/dfu_1_1_x.yaml From 69638a3dc4b7bf5365f3eb91d594135f83fe91ad Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 26 Apr 2024 14:40:37 +0300 Subject: [PATCH 163/219] update simple test for compatibility with M5 --- studio/Python/tests/test_base_function.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/studio/Python/tests/test_base_function.py b/studio/Python/tests/test_base_function.py index 49848f1f..7912225d 100644 --- a/studio/Python/tests/test_base_function.py +++ b/studio/Python/tests/test_base_function.py @@ -21,8 +21,12 @@ def test_position_control(self): """ Test position control """ + hw_rev = self.tm.hw_revision self.check_state(0) - self.tm.motor.I_cal = 5 + if hw_rev > 20: + self.tm.motor.I_cal = 0.8 + else: + self.tm.motor.I_cal = 5 self.tm.controller.current.Iq_limit = 5 self.try_calibrate() self.tm.controller.position_mode() @@ -30,7 +34,10 @@ def test_position_control(self): for i in range(5): self.tm.controller.position.setpoint = i * 3000 * ticks - time.sleep(0.25) + if hw_rev > 20: + time.sleep(0.50) + else: + time.sleep(0.25) self.assertAlmostEqual( i * 3000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) From 128848719d798cd7727f822259c5579bd7ee860e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 29 Apr 2024 22:34:41 +0300 Subject: [PATCH 164/219] add app icon --- studio/Python/Manifest.in | 1 + studio/Python/tinymovr/gui/gui.py | 7 +++++++ .../tinymovr/resources/icons/app_icon.png | Bin 0 -> 13896 bytes 3 files changed, 8 insertions(+) create mode 100644 studio/Python/tinymovr/resources/icons/app_icon.png diff --git a/studio/Python/Manifest.in b/studio/Python/Manifest.in index 7c656374..5740a2e6 100644 --- a/studio/Python/Manifest.in +++ b/studio/Python/Manifest.in @@ -1,4 +1,5 @@ include README.md +include tinymovr/resources/icons/app_icon.png include tinymovr/resources/icons/call.png include tinymovr/resources/icons/call_dark.png include tinymovr/resources/icons/call@2x.png diff --git a/studio/Python/tinymovr/gui/gui.py b/studio/Python/tinymovr/gui/gui.py index 99539b00..e6473123 100644 --- a/studio/Python/tinymovr/gui/gui.py +++ b/studio/Python/tinymovr/gui/gui.py @@ -16,8 +16,10 @@ import sys import yaml import pkg_resources +from importlib_resources import files from docopt import docopt from PySide6.QtWidgets import QApplication +from PySide6.QtGui import QIcon, QPixmap from tinymovr.gui import MainWindow, app_stylesheet, app_stylesheet_dark, is_dark_mode from tinymovr.constants import app_name from tinymovr.config import configure_logging, add_spec @@ -54,10 +56,15 @@ def spawn(): add_spec(spec_data, logger) app = QApplication(sys.argv) + + icon_path = files("tinymovr").joinpath("resources/icons/app_icon.png") + app.setWindowIcon(QIcon(str(icon_path))) + if is_dark_mode(): app.setStyleSheet(app_stylesheet_dark) else: app.setStyleSheet(app_stylesheet) w = MainWindow(app, arguments, logger) + w.show() sys.exit(app.exec_()) diff --git a/studio/Python/tinymovr/resources/icons/app_icon.png b/studio/Python/tinymovr/resources/icons/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1065b49dda152072605746183b3a1f6b29702104 GIT binary patch literal 13896 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 CQ14&> literal 0 HcmV?d00001 From 4e7a77cac3545f953a62202914b23968948c3875 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 29 Apr 2024 22:39:29 +0300 Subject: [PATCH 165/219] add adjustable splitter --- studio/Python/tinymovr/gui/helpers.py | 2 ++ studio/Python/tinymovr/gui/window.py | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/studio/Python/tinymovr/gui/helpers.py b/studio/Python/tinymovr/gui/helpers.py index d343e527..bc9e5944 100644 --- a/studio/Python/tinymovr/gui/helpers.py +++ b/studio/Python/tinymovr/gui/helpers.py @@ -201,6 +201,8 @@ app_stylesheet_dark = """ +QSplitter::handle { background-color: black; } + /* --------------------------------------- QPushButton -----------------------------------*/ QPushButton { diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index e6c18b0f..32e657bf 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -34,6 +34,7 @@ QLabel, QMessageBox, QTreeWidgetItem, + QSplitter ) from PySide6.QtGui import QAction import pyqtgraph as pg @@ -110,6 +111,10 @@ def __init__(self, app, arguments, logger): self.status_label = QLabel() self.status_label.setStyleSheet("margin: 5px;") + # Create splitter and add frames + self.splitter = QSplitter(QtCore.Qt.Horizontal) + self.splitter.setHandleWidth(0) + self.left_frame = QFrame(self) self.left_layout = QVBoxLayout() self.left_layout.addWidget(self.tree_widget) @@ -127,9 +132,11 @@ def __init__(self, app, arguments, logger): self.right_layout.setContentsMargins(0, 0, 0, 0) self.right_frame.setLayout(self.right_layout) - main_layout = QHBoxLayout() - main_layout.addWidget(self.left_frame) - main_layout.addWidget(self.right_frame) + self.splitter.addWidget(self.left_frame) + self.splitter.addWidget(self.right_frame) + + main_layout = QVBoxLayout() + main_layout.addWidget(self.splitter) main_layout.setSpacing(0) main_layout.setContentsMargins(0, 0, 0, 0) From 4abe475dc85af6794a20643812740ee92acbddd4 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 30 Apr 2024 01:55:02 +0300 Subject: [PATCH 166/219] basic console implementation --- studio/Python/tinymovr/gui/__init__.py | 1 + studio/Python/tinymovr/gui/helpers.py | 16 ++++ studio/Python/tinymovr/gui/window.py | 110 ++++++++++++++++++++++--- studio/Python/tinymovr/gui/worker.py | 1 + 4 files changed, 117 insertions(+), 11 deletions(-) diff --git a/studio/Python/tinymovr/gui/__init__.py b/studio/Python/tinymovr/gui/__init__.py index 240036b2..df9eba5c 100644 --- a/studio/Python/tinymovr/gui/__init__.py +++ b/studio/Python/tinymovr/gui/__init__.py @@ -7,6 +7,7 @@ display_file_open_dialog, display_file_save_dialog, magnitude_of, + StreamRedirector, TimedGetter, check_selected_items, get_dynamic_attrs, diff --git a/studio/Python/tinymovr/gui/helpers.py b/studio/Python/tinymovr/gui/helpers.py index bc9e5944..c3ba8dd4 100644 --- a/studio/Python/tinymovr/gui/helpers.py +++ b/studio/Python/tinymovr/gui/helpers.py @@ -466,6 +466,22 @@ def magnitude_of(val): return val +class StreamRedirector(object): + """A class to redirect writes from a stream to a QPlainTextEdit.""" + def __init__(self, widget): + self.widget = widget + self.buffer = '' + + def write(self, message): + self.widget.moveCursor(QtGui.QTextCursor.End) + self.widget.insertPlainText(message) + self.widget.moveCursor(QtGui.QTextCursor.End) + self.widget.ensureCursorVisible() + + def flush(self): + pass + + class TimedGetter: """ An interface class that maintains timing diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 32e657bf..61a4385f 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -15,6 +15,7 @@ this program. If not, see . """ +import sys import time import logging import pkg_resources @@ -28,13 +29,13 @@ QMenuBar, QWidget, QFrame, - QHBoxLayout, QVBoxLayout, QHeaderView, QLabel, QMessageBox, QTreeWidgetItem, - QSplitter + QSplitter, + QPlainTextEdit ) from PySide6.QtGui import QAction import pyqtgraph as pg @@ -52,6 +53,7 @@ Worker, PlaceholderQTreeWidget, BoolTreeWidgetItem, + StreamRedirector, format_value, display_file_open_dialog, display_file_save_dialog, @@ -71,10 +73,7 @@ def __init__(self, app, arguments, logger): get_registry().default_format = ".6f~" self.start_time = time.time() - if logger is None: - self.logger = logging.getLogger("tinymovr") - else: - self.logger = logger + self.logger = logger if logger is not None else logging.getLogger("tinymovr") self.attr_widgets_by_id = {} self.graphs_by_id = {} @@ -86,6 +85,7 @@ def __init__(self, app, arguments, logger): self.file_menu = QMenu("File") self.help_menu = QMenu("Help") + self.view_menu = QMenu("View") self.export_action = QAction("Export Config...", self) self.import_action = QAction("Import Config", self) @@ -97,11 +97,19 @@ def __init__(self, app, arguments, logger): self.file_menu.addAction(self.import_action) self.help_menu.addAction(self.about_action) + self.toggle_tree_action = QAction("Hide Tree", self) # Assume tree is visible initially + self.toggle_tree_action.triggered.connect(self.toggle_tree) + self.toggle_console_action = QAction("Hide Console", self) # Assume console is visible initially + self.toggle_console_action.triggered.connect(self.toggle_console) + + self.view_menu.addAction(self.toggle_tree_action) + self.view_menu.addAction(self.toggle_console_action) + self.menu_bar.addMenu(self.file_menu) + self.menu_bar.addMenu(self.view_menu) self.menu_bar.addMenu(self.help_menu) self.setMenuBar(self.menu_bar) - # Setup the tree widget self.tree_widget = PlaceholderQTreeWidget() self.tree_widget.itemChanged.connect(self.item_changed) self.tree_widget.itemExpanded.connect(self.update_visible_attrs) @@ -111,14 +119,13 @@ def __init__(self, app, arguments, logger): self.status_label = QLabel() self.status_label.setStyleSheet("margin: 5px;") - # Create splitter and add frames self.splitter = QSplitter(QtCore.Qt.Horizontal) self.splitter.setHandleWidth(0) + self.splitter.splitterMoved.connect(self.check_tree_visibility) self.left_frame = QFrame(self) self.left_layout = QVBoxLayout() self.left_layout.addWidget(self.tree_widget) - self.left_layout.addWidget(self.status_label) self.left_layout.setSpacing(0) self.left_layout.setContentsMargins(0, 0, 0, 0) self.left_frame.setLayout(self.left_layout) @@ -135,11 +142,24 @@ def __init__(self, app, arguments, logger): self.splitter.addWidget(self.left_frame) self.splitter.addWidget(self.right_frame) + self.console = QPlainTextEdit() + self.console.setReadOnly(True) + sys.stdout = StreamRedirector(self.console) + sys.stderr = StreamRedirector(self.console) + + self.main_splitter = QSplitter(QtCore.Qt.Vertical) + self.main_splitter.setHandleWidth(0) + self.main_splitter.showEvent = self.on_show_event + self.main_splitter.splitterMoved.connect(self.check_console_visibility) + self.main_splitter.addWidget(self.splitter) + self.main_splitter.addWidget(self.console) + main_layout = QVBoxLayout() - main_layout.addWidget(self.splitter) + main_layout.addWidget(self.main_splitter) + main_layout.addWidget(self.status_label) main_layout.setSpacing(0) main_layout.setContentsMargins(0, 0, 0, 0) - + main_widget = QWidget() main_widget.setLayout(main_layout) main_widget.setMinimumHeight(600) @@ -182,11 +202,25 @@ def __init__(self, app, arguments, logger): self.visibility_update_timer.timeout.connect(self.update_visible_attrs) self.visibility_update_timer.start(1000) + def on_show_event(self, event): + total_height = self.splitter.size().height() + top_percentage = 0.75 # 75% for the top widget + bottom_percentage = 0.25 # 25% for the bottom widget + + top_size = int(total_height * top_percentage) + bottom_size = int(total_height * bottom_percentage) + + self.main_splitter.setSizes([top_size, bottom_size]) + + super(MainWindow, self).showEvent(event) + @QtCore.Slot() def about_to_quit(self): self.visibility_update_timer.stop() self.worker_update_timer.stop() self.worker.stop() + sys.stdout = sys.__stdout__ + sys.stderr = sys.__stderr__ @QtCore.Slot() def handle_worker_error(self, e): @@ -362,6 +396,60 @@ def show_about_box(self): ), ) + def toggle_tree(self): + """ + Toggle the visibility of the tree based on actual size. + """ + tree_size = self.splitter.sizes()[0] + if tree_size > 0: + self.tree_widget.setVisible(False) + self.splitter.setSizes([0, self.splitter.size().width()]) + self.toggle_tree_action.setText("Show Tree") + else: + self.tree_widget.setVisible(True) + total_size = self.splitter.size().width() + left_size = int(total_size * 0.25) + right_size = int(total_size * 0.75) + self.splitter.setSizes([left_size, right_size]) + self.toggle_tree_action.setText("Hide Tree") + + def toggle_console(self): + """ + Toggle the visibility of the console based on actual size. + """ + console_height = self.main_splitter.sizes()[-1] + if console_height > 0: + self.console.setVisible(False) + self.main_splitter.setSizes([self.main_splitter.size().height(), 0]) + self.toggle_console_action.setText("Show Console") + else: + self.console.setVisible(True) + total_height = self.main_splitter.size().height() + top_height = int(total_height * 0.75) + bottom_height = int(total_height * 0.25) + self.main_splitter.setSizes([top_height, bottom_height]) + self.toggle_console_action.setText("Hide Console") + + def check_tree_visibility(self, pos, index): + """ + Check tree visibility after splitter is moved and update the action text. + """ + tree_size = self.splitter.sizes()[0] # Assuming tree is always the first widget in the splitter + if tree_size == 0: + self.toggle_tree_action.setText("Show Tree") + else: + self.toggle_tree_action.setText("Hide Tree") + + def check_console_visibility(self, pos, index): + """ + Check console visibility after splitter is moved and update the action text. + """ + console_size = self.main_splitter.sizes()[-1] # Assuming console is always the last widget in the splitter + if console_size == 0: + self.toggle_console_action.setText("Show Console") + else: + self.toggle_console_action.setText("Hide Console") + def is_widget_visible(self, widget): """ Check if the given widget is visible, i.e., not hidden and all its diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index 4d658bdf..77ae57db 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -139,6 +139,7 @@ def _update(self): def _device_appeared(self, device, node_id): self.mutx.lock() display_name = "{}{}".format(device.name, node_id) + self.logger.warn("Found {} with device uid {}".format(display_name, node_id)) self.devices_by_name[display_name] = device self.names_by_id[node_id] = display_name device.name = display_name From 80f44b7febea4dc6a575ff02c15d6329f5b3102b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 30 Apr 2024 02:30:14 +0300 Subject: [PATCH 167/219] improve logging --- studio/Python/setup.py | 1 + studio/Python/tinymovr/gui/__init__.py | 4 +- studio/Python/tinymovr/gui/helpers.py | 66 ++++++++++++++++++++++++-- studio/Python/tinymovr/gui/window.py | 13 ++--- studio/Python/tinymovr/gui/worker.py | 2 +- 5 files changed, 74 insertions(+), 12 deletions(-) diff --git a/studio/Python/setup.py b/studio/Python/setup.py index a97e4c85..a97887bd 100644 --- a/studio/Python/setup.py +++ b/studio/Python/setup.py @@ -60,6 +60,7 @@ "docopt", "flatten-dict", "pint", + "pretty_errors" ], extras_require={"gui": ["pyside6", "pyqtgraph>=0.13.3"]}, entry_points={ diff --git a/studio/Python/tinymovr/gui/__init__.py b/studio/Python/tinymovr/gui/__init__.py index df9eba5c..ea6f8ae6 100644 --- a/studio/Python/tinymovr/gui/__init__.py +++ b/studio/Python/tinymovr/gui/__init__.py @@ -8,11 +8,13 @@ display_file_save_dialog, magnitude_of, StreamRedirector, + QTextBrowserLogger, TimedGetter, check_selected_items, get_dynamic_attrs, is_dark_mode, - strtobool + strtobool, + configure_pretty_errors ) from tinymovr.gui.widgets import ( NodeTreeWidgetItem, diff --git a/studio/Python/tinymovr/gui/helpers.py b/studio/Python/tinymovr/gui/helpers.py index c3ba8dd4..99e94d31 100644 --- a/studio/Python/tinymovr/gui/helpers.py +++ b/studio/Python/tinymovr/gui/helpers.py @@ -16,16 +16,29 @@ """ import time +import logging +from datetime import datetime import os import enum import pint from PySide6 import QtGui -from PySide6.QtGui import QGuiApplication, QPalette +from PySide6.QtGui import QGuiApplication, QPalette, QTextCursor from PySide6.QtWidgets import QMessageBox, QFileDialog from avlos.definitions import RemoteAttribute, RemoteEnum, RemoteBitmask +import pretty_errors import tinymovr +class ConsoleColor: + NORMAL = "" + ERROR = "" + WARNING = "" + INFO = "" + DEBUG = "" + TIMESTAMP = "" + END = "" + + app_stylesheet = """ /* --------------------------------------- QPushButton -----------------------------------*/ @@ -467,21 +480,66 @@ def magnitude_of(val): class StreamRedirector(object): - """A class to redirect writes from a stream to a QPlainTextEdit.""" + """ + A class to redirect writes from a stream to a QPlainTextEdit, including pretty_errors handling and timestamps. + """ def __init__(self, widget): self.widget = widget self.buffer = '' def write(self, message): + # Timestamp the message + timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + message_with_timestamp = f"[{timestamp}] {message}" + + # Redirect to the QPlainTextEdit widget self.widget.moveCursor(QtGui.QTextCursor.End) - self.widget.insertPlainText(message) - self.widget.moveCursor(QtGui.QTextCursor.End) + self.widget.insertPlainText(message_with_timestamp) self.widget.ensureCursorVisible() def flush(self): pass +class QTextBrowserLogger(logging.Handler): + """A logging handler that directs logging output to a QTextBrowser widget.""" + def __init__(self, widget): + super().__init__() + self.widget = widget + self.widget.setReadOnly(True) + self.setFormatter(logging.Formatter('%(levelname)s: %(message)s')) + + def emit(self, record): + msg = self.format(record) + self.widget.append(self.colorize_message(record.levelno, msg)) + + def colorize_message(self, level, message): + color = { + logging.DEBUG: "lightgreen", + logging.INFO: "lightblue", + logging.WARNING: "orange", + logging.ERROR: "red", + logging.CRITICAL: "purple" + }.get(level, "black") + timestamp = datetime.now().strftime('%H:%M:%S') + return f'[{timestamp}] {message}' + + +def configure_pretty_errors(): + pretty_errors.configure( + separator_character='*', + filename_display=pretty_errors.FILENAME_EXTENDED, + line_number_first=True, + display_link=True, + lines_before=5, + lines_after=2, + line_color=pretty_errors.RED + '> ' + pretty_errors.default_config.line_color, + code_color=' ' + pretty_errors.default_config.code_color, + truncate_code=True, # Truncate code lines to not overflow in the GUI + display_locals=True + ) + + class TimedGetter: """ An interface class that maintains timing diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 61a4385f..b8e42cb6 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -35,7 +35,7 @@ QMessageBox, QTreeWidgetItem, QSplitter, - QPlainTextEdit + QTextBrowser ) from PySide6.QtGui import QAction import pyqtgraph as pg @@ -54,11 +54,13 @@ PlaceholderQTreeWidget, BoolTreeWidgetItem, StreamRedirector, + QTextBrowserLogger, format_value, display_file_open_dialog, display_file_save_dialog, magnitude_of, check_selected_items, + configure_pretty_errors ) @@ -74,6 +76,7 @@ def __init__(self, app, arguments, logger): self.start_time = time.time() self.logger = logger if logger is not None else logging.getLogger("tinymovr") + configure_pretty_errors() self.attr_widgets_by_id = {} self.graphs_by_id = {} @@ -142,10 +145,10 @@ def __init__(self, app, arguments, logger): self.splitter.addWidget(self.left_frame) self.splitter.addWidget(self.right_frame) - self.console = QPlainTextEdit() + self.console = QTextBrowser() self.console.setReadOnly(True) - sys.stdout = StreamRedirector(self.console) - sys.stderr = StreamRedirector(self.console) + self.log_handler = QTextBrowserLogger(self.console) + self.logger.addHandler(self.log_handler) self.main_splitter = QSplitter(QtCore.Qt.Vertical) self.main_splitter.setHandleWidth(0) @@ -219,8 +222,6 @@ def about_to_quit(self): self.visibility_update_timer.stop() self.worker_update_timer.stop() self.worker.stop() - sys.stdout = sys.__stdout__ - sys.stderr = sys.__stderr__ @QtCore.Slot() def handle_worker_error(self, e): diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index 77ae57db..c1cbea88 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -139,7 +139,7 @@ def _update(self): def _device_appeared(self, device, node_id): self.mutx.lock() display_name = "{}{}".format(device.name, node_id) - self.logger.warn("Found {} with device uid {}".format(display_name, node_id)) + self.logger.info("Found {} (uid {})".format(display_name, device.uid)) self.devices_by_name[display_name] = device self.names_by_id[node_id] = display_name device.name = display_name From 80b5d1fd7b32c8d546db253d50bda9b7cfe619a1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 3 May 2024 13:54:08 +0300 Subject: [PATCH 168/219] enable manually setting of device select pin --- firmware/src/sensor/amt22.c | 7 ++++--- firmware/src/sensor/as5047.c | 2 +- firmware/src/sensor/ma7xx.c | 2 +- firmware/src/ssp/ssp_func.c | 3 ++- firmware/src/ssp/ssp_func.h | 9 ++++++++- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/firmware/src/sensor/amt22.c b/firmware/src/sensor/amt22.c index 7481ee72..d2dd575f 100644 --- a/firmware/src/sensor/amt22.c +++ b/firmware/src/sensor/amt22.c @@ -60,11 +60,12 @@ bool amt22_init_with_config(Sensor *s, const AMT22SensorConfig *c) bool amt22_init(Sensor *s) { AMT22Sensor *as = (AMT22Sensor *)s; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_8, 0, 0); - delay_us(10000); - + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_8, SWSEL_SW, 0, 0); + delay_us(50000); + amt22_send_angle_cmd(s); amt22_update(s, false); + s->initialized = true; return true; } diff --git a/firmware/src/sensor/as5047.c b/firmware/src/sensor/as5047.c index 611401a8..0659bee7 100644 --- a/firmware/src/sensor/as5047.c +++ b/firmware/src/sensor/as5047.c @@ -60,7 +60,7 @@ bool as5047p_init_with_config(Sensor *s, const AS5047PSensorConfig *c) bool as5047p_init(Sensor *s) { AS5047PSensor *as = (AS5047PSensor *)s; - ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_16, 1, 0); + ssp_init(as->config.ssp_port, SSP_MS_MASTER, 16, SSP_DATA_SIZE_16, SWSEL_SPI, 1, 0); delay_us(10000); // Example delay, adjust based on AS5047P datasheet as5047p_send_angle_cmd(s); diff --git a/firmware/src/sensor/ma7xx.c b/firmware/src/sensor/ma7xx.c index bfae672a..1d011626 100644 --- a/firmware/src/sensor/ma7xx.c +++ b/firmware/src/sensor/ma7xx.c @@ -60,7 +60,7 @@ bool ma7xx_init_with_port_and_rate(Sensor *s, const SSP_TYPE port, PAC55XX_SSP_T bool ma7xx_init(Sensor *s) { MA7xxSensor *ms = (MA7xxSensor *)s; - ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, SSP_DATA_SIZE_16, 0, 0); + ssp_init(ms->config.ssp_port, SSP_MS_MASTER, 4, SSP_DATA_SIZE_16, SWSEL_SPI, 0, 0); delay_us(16000); // ensure 16ms sensor startup time as per the datasheet ma7xx_send_angle_cmd(s); ma7xx_update(s, false); diff --git a/firmware/src/ssp/ssp_func.c b/firmware/src/ssp/ssp_func.c index a1903913..86569870 100644 --- a/firmware/src/ssp/ssp_func.c +++ b/firmware/src/ssp/ssp_func.c @@ -759,7 +759,7 @@ void ssp_interrupt_disable(SSP_TYPE ssp) } } -void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, uint8_t cph, uint8_t cpol) +void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, SSP_SWSEL_TYPE swsel_type, uint8_t cph, uint8_t cpol) { PAC55XX_SSP_TYPEDEF *ssp_ptr; @@ -806,6 +806,7 @@ void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data ssp_ptr->CON.CPO = cpol; // Clock Out Polarity ssp_ptr->CON.DSS = data_size; // Data Size Select ssp_ptr->CON.SOD = SSP_OUTPUT_NOT_DRIVE; // Slave Output Disable + ssp_ptr->SSCR.SWSEL = swsel_type; // Device Select Pin to be controlled by SPI (0) or software (1) ssp_io_config(ssp, ms_mode); ssp_interrupt_enable(ssp); diff --git a/firmware/src/ssp/ssp_func.h b/firmware/src/ssp/ssp_func.h index df22cc7b..3acea62d 100644 --- a/firmware/src/ssp/ssp_func.h +++ b/firmware/src/ssp/ssp_func.h @@ -25,6 +25,13 @@ #define DF_SSP_BUSY_TICK (25000u) // use to check the busy tick +// Device Select Enumeration Type +typedef enum +{ + SWSEL_SPI = 0, + SWSEL_SW = 1 +} SSP_SWSEL_TYPE; + // Interrupt Enable Enumeration Type typedef enum { @@ -38,7 +45,7 @@ typedef enum volatile uint16_t ssp_data[10]; volatile uint16_t data_num; -extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, uint8_t cph, uint8_t cpol); +extern void ssp_init(SSP_TYPE ssp, SSP_MS_TYPE ms_mode, uint8_t clkn_div, uint32_t data_size, uint8_t swsel, uint8_t cph, uint8_t cpol); extern void ssp_deinit(SSP_TYPE ssp); extern uint32_t ssp_write_one(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t data); extern uint32_t ssp_write_multi(PAC55XX_SSP_TYPEDEF *ssp_ptr, uint16_t *data, uint32_t byte_num); From fb247a7786db64215512e42f5dac7beb51c072ae Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 3 May 2024 13:54:34 +0300 Subject: [PATCH 169/219] implement correct SPI delays according to amt22 datasheet --- firmware/src/sensor/amt22.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index a7e8a0ab..b3cc81fb 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -69,13 +69,19 @@ static inline uint8_t amt22_get_errors(const Sensor *s) static inline void amt22_send_angle_cmd(const Sensor *s) { // AMT22 has specific timing requirements with respect to reading - // the first and second bytes of the angle. For this reason we - // insert the 6us delay that corresponds to the datasheet-specified - // 3us + an experimentally defined value to account for transmission - // delay. - ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); - delay_us(5); - ssp_write_one(((const AMT22Sensor *)s)->config.ssp_struct, AMT22_CMD_READ_ANGLE); + // the first and second bytes of the angle. + // TODO: These delays make reading of the sensor really slow + // refactor using interrupts + AMT22Sensor *as = ((AMT22Sensor *)s); + as->config.ssp_struct->SSCR.SWSS = 0; + delay_us(3); + ssp_write_one(as->config.ssp_struct, AMT22_CMD_READ_ANGLE); + as->val_h = ssp_read_one(as->config.ssp_struct); + delay_us(3); + ssp_write_one(as->config.ssp_struct, AMT22_CMD_READ_ANGLE); + as->val_l = ssp_read_one(as->config.ssp_struct); + delay_us(3); + as->config.ssp_struct->SSCR.SWSS = 1; } static inline int32_t amt22_get_raw_angle(const Sensor *s) From 54d0023aa02a5b7d1e7975995f1ddb78173da68b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 3 May 2024 13:55:42 +0300 Subject: [PATCH 170/219] compute checksum --- firmware/src/sensor/amt22.h | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/firmware/src/sensor/amt22.h b/firmware/src/sensor/amt22.h index b3cc81fb..86a11d6e 100644 --- a/firmware/src/sensor/amt22.h +++ b/firmware/src/sensor/amt22.h @@ -46,6 +46,9 @@ typedef struct AMT22SensorConfig config; uint8_t errors; int32_t angle; + uint8_t val_l; + uint8_t val_h; + } AMT22Sensor; void amt22_make_blank_sensor(Sensor *s); @@ -92,21 +95,35 @@ static inline int32_t amt22_get_raw_angle(const Sensor *s) static inline void amt22_update(Sensor *s, bool check_error) { AMT22Sensor *as = (AMT22Sensor *)s; - volatile uint8_t val_l = ssp_read_one(as->config.ssp_struct); - volatile uint8_t val_h = ssp_read_one(as->config.ssp_struct); - const int32_t angle = (((val_h & 0xff) << 8) | (val_l & 0xff)) & 0x3FFF; - if (check_error) + const int32_t value = (((as->val_h & 0xff) << 8) | (as->val_l & 0xff)); + + // TODO: This checksum calculation is sub-optimal + bool binaryArray[16]; + + for(int i = 0; i < 16; i++) binaryArray[i] = (0x01) & (value >> (i)); + + if ((binaryArray[15] == !(binaryArray[13] ^ binaryArray[11] ^ binaryArray[9] ^ binaryArray[7] ^ binaryArray[5] ^ binaryArray[3] ^ binaryArray[1])) + && (binaryArray[14] == !(binaryArray[12] ^ binaryArray[10] ^ binaryArray[8] ^ binaryArray[6] ^ binaryArray[4] ^ binaryArray[2] ^ binaryArray[0]))) { - const int32_t delta = as->angle - angle; - if ( ((delta > AMT22_MAX_ALLOWED_DELTA) || (delta < -AMT22_MAX_ALLOWED_DELTA)) && - ((delta > AMT22_MAX_ALLOWED_DELTA_ADD) || (delta < AMT22_MIN_ALLOWED_DELTA_ADD)) && - ((delta > AMT22_MAX_ALLOWED_DELTA_SUB) || (delta < AMT22_MIN_ALLOWED_DELTA_SUB)) ) + const int32_t angle = value & 0x3FFF; + if (check_error) { - as->errors |= SENSORS_SETUP_ONBOARD_ERRORS_READING_UNSTABLE; + const int32_t delta = as->angle - angle; + if ( ((delta > AMT22_MAX_ALLOWED_DELTA) || (delta < -AMT22_MAX_ALLOWED_DELTA)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_ADD) || (delta < AMT22_MIN_ALLOWED_DELTA_ADD)) && + ((delta > AMT22_MAX_ALLOWED_DELTA_SUB) || (delta < AMT22_MIN_ALLOWED_DELTA_SUB)) ) + { + + } + else + { + as->angle = value & 0x3FFF; + } } + } - as->angle = angle; + } From 84d7af9c976b77f31eafdd5518aab3c839e4c77c Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 3 May 2024 14:25:14 +0300 Subject: [PATCH 171/219] always set calibration current before calibration --- studio/Python/tests/test_amt22.py | 3 --- studio/Python/tests/test_as5047.py | 5 ----- studio/Python/tests/test_base_function.py | 4 ---- studio/Python/tests/test_board.py | 1 - studio/Python/tests/tm_test_case.py | 14 +++++++++++++- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/studio/Python/tests/test_amt22.py b/studio/Python/tests/test_amt22.py index 5f2d672b..2d282cb8 100644 --- a/studio/Python/tests/test_amt22.py +++ b/studio/Python/tests/test_amt22.py @@ -57,8 +57,6 @@ def test_a_position_control_before_after_save_and_load_config(self): self.configure_sensors(self.tm.sensors.setup.external_spi.type.AMT22) self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - self.tm.motor.I_cal = 1.0 - self.try_calibrate() self.tm.controller.position.p_gain = 9 @@ -118,7 +116,6 @@ def test_b_position_control_following_sensor_change(self): # Initially configure with external SPI sensor self.configure_sensors(self.tm.sensors.setup.external_spi.type.AMT22) self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - self.tm.motor.I_cal = 1.0 self.try_calibrate() # Set initial controller gains diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py index f3971d53..0be284b3 100644 --- a/studio/Python/tests/test_as5047.py +++ b/studio/Python/tests/test_as5047.py @@ -57,8 +57,6 @@ def test_a_position_control_before_after_save_and_load_config(self): self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - self.tm.motor.I_cal = 0.8 - self.try_calibrate() self.tm.controller.position.p_gain = 9 @@ -117,7 +115,6 @@ def test_b_position_control_following_sensor_change(self): # Initially configure with external SPI sensor self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - self.tm.motor.I_cal = 0.8 self.try_calibrate() # Set initial controller gains @@ -179,8 +176,6 @@ def test_c_position_control_change_baud_rates(self): self.configure_sensors(self.tm.sensors.setup.external_spi.type.AS5047) self.select_sensors(self.tm.sensors.select.position_sensor.connection.ONBOARD, self.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - self.tm.motor.I_cal = 0.8 - self.try_calibrate() self.tm.controller.position.p_gain = 9 diff --git a/studio/Python/tests/test_base_function.py b/studio/Python/tests/test_base_function.py index 7912225d..1a0206b5 100644 --- a/studio/Python/tests/test_base_function.py +++ b/studio/Python/tests/test_base_function.py @@ -23,10 +23,6 @@ def test_position_control(self): """ hw_rev = self.tm.hw_revision self.check_state(0) - if hw_rev > 20: - self.tm.motor.I_cal = 0.8 - else: - self.tm.motor.I_cal = 5 self.tm.controller.current.Iq_limit = 5 self.try_calibrate() self.tm.controller.position_mode() diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index f460eabd..7c922675 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -235,7 +235,6 @@ def test_j_gimbal_mode(self): # Ensure we're idle self.check_state(0) self.tm.motor.type = 1 # gimbal - self.tm.motor.I_cal = 5.0 self.tm.motor.R = 0.2 self.tm.motor.L = 20 * 1e-5 self.try_calibrate() diff --git a/studio/Python/tests/tm_test_case.py b/studio/Python/tests/tm_test_case.py index dbcb2be0..00a61cae 100644 --- a/studio/Python/tests/tm_test_case.py +++ b/studio/Python/tests/tm_test_case.py @@ -61,8 +61,20 @@ def reset_and_wait(cls, timeout=0.5): cls.tm.reset() time.sleep(timeout) - def try_calibrate(self, force=False, precheck_callback=None, *args, **kwargs): + def try_calibrate(self, I_cal=None, force=False, precheck_callback=None,*args, **kwargs): if True == force or not self.tm.calibrated: + hw_rev = self.tm.hw_revision + self.check_state(0) + if I_cal and I_cal > 0: + self.tm.motor.I_cal = I_cal + elif hw_rev > 20: + self.tm.motor.I_cal = 0.8 + else: + self.tm.motor.I_cal = 5 + + if hw_rev > 20: + self.tm.controller.velocity.P_gain = 2e-05 + self.tm.controller.calibrate() self.wait_for_calibration(*args, **kwargs) if precheck_callback: From ad047a827ad8a669a3cfe9ce6d6921b526bfa728 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 8 May 2024 21:45:36 +0300 Subject: [PATCH 172/219] refactor bus discovery and management --- docs/protocol/integrating.rst | 4 +- studio/Python/tinymovr/__init__.py | 3 +- studio/Python/tinymovr/bus_manager.py | 78 +++++++++ studio/Python/tinymovr/bus_router.py | 152 ++++++++++++++++++ studio/Python/tinymovr/channel.py | 8 +- studio/Python/tinymovr/cli.py | 14 +- studio/Python/tinymovr/config/config.py | 7 +- .../{discovery.py => device_discovery.py} | 8 +- studio/Python/tinymovr/dfu.py | 11 +- studio/Python/tinymovr/gui/window.py | 3 +- studio/Python/tinymovr/gui/worker.py | 13 +- studio/Python/tinymovr/tee.py | 132 --------------- 12 files changed, 267 insertions(+), 166 deletions(-) create mode 100644 studio/Python/tinymovr/bus_manager.py create mode 100644 studio/Python/tinymovr/bus_router.py rename studio/Python/tinymovr/{discovery.py => device_discovery.py} (96%) delete mode 100644 studio/Python/tinymovr/tee.py diff --git a/docs/protocol/integrating.rst b/docs/protocol/integrating.rst index 2b2ba020..435989bf 100644 --- a/docs/protocol/integrating.rst +++ b/docs/protocol/integrating.rst @@ -22,12 +22,12 @@ Here below is an example using the API from Python scripts and controlling hardw .. code-block:: python import can - from tinymovr.tee import init_tee + from tinymovr.bus_router import init_router from tinymovr.config import get_bus_config, create_device params = get_bus_config(["canine", "slcan_disco"]) params["bitrate"] = bitrate - init_tee(can.Bus(**params)) + init_router(can.Bus(**params)) tm = create_device(node_id=1) tm.controller.calibrate() diff --git a/studio/Python/tinymovr/__init__.py b/studio/Python/tinymovr/__init__.py index 4828124e..9f937723 100644 --- a/studio/Python/tinymovr/__init__.py +++ b/studio/Python/tinymovr/__init__.py @@ -1 +1,2 @@ -from tinymovr.tee import init_tee, destroy_tee, get_tee \ No newline at end of file +from tinymovr.bus_manager import BusManager +from tinymovr.bus_router import init_router, destroy_router, get_router diff --git a/studio/Python/tinymovr/bus_manager.py b/studio/Python/tinymovr/bus_manager.py new file mode 100644 index 00000000..f2dfa9fb --- /dev/null +++ b/studio/Python/tinymovr/bus_manager.py @@ -0,0 +1,78 @@ +""" +Tinymovr BusManager Module +Copyright Ioannis Chatzikonstantinou 2020-2023 + +Implements a BusRouter class to distribute incoming traffic according to rules + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with +this program. If not, see . +""" + +from can.exceptions import CanOperationError, CanInitializationError + +class BusManager: + def __init__(self, bus_class, bus_params, logger, bus_exceptions=(CanOperationError, CanInitializationError)): + self.bus = None + self.bus_class = bus_class + self.bus_params = bus_params + self.bus_exceptions = bus_exceptions + self.logger = logger + self.attempt_reconnect() + + def attempt_reconnect(self): + try: + bus = self.bus_class(**self.bus_params) + # Flush bus to discard buffered data + # Also acts as check for bus exception + self.flush_rx_buffer(bus) + self.bus = bus + self.logger.info("Bus connected") + except self.bus_exceptions as e: + self.bus = None + + def is_connected(self): + return self.bus != None + + def recv(self, timeout): + try: + return self.bus.recv(timeout=timeout) + except self.bus_exceptions as e: + self.logger.warn(e) + self.bus = None + self.attempt_reconnect() + except AttributeError: + self.attempt_reconnect() + return None + + def shutdown(self): + try: + self.bus.shutdown() + self.bus = None + except AttributeError: + pass + + def send(self, frame): + try: + self.bus.send(frame) + except self.bus_exceptions as e: + self.logger.warn(e) + self.attempt_reconnect() + except AttributeError: + self.attempt_reconnect() + + def flush_rx_buffer(self, bus=None, trials=100): + """ + Flush the RX buffer of a bus + """ + if bus == None: + bus = self.bus + for i in range(trials): + if not bus.recv(timeout=0.001): + return \ No newline at end of file diff --git a/studio/Python/tinymovr/bus_router.py b/studio/Python/tinymovr/bus_router.py new file mode 100644 index 00000000..a963420a --- /dev/null +++ b/studio/Python/tinymovr/bus_router.py @@ -0,0 +1,152 @@ +""" +Tinymovr BusRouter Module +Copyright Ioannis Chatzikonstantinou 2020-2023 + +Implements a BusRouter class to distribute incoming traffic according to rules + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +You should have received a copy of the GNU General Public License along with +this program. If not, see . +""" + + +import warnings +from enum import Enum +from threading import Thread, Lock +from tinymovr.bus_manager import BusManager + + +bus_router = None + + +class Client: + def __init__(self, filter_cb, recv_cb): + self.filter_cb = filter_cb + self.recv_cb = recv_cb + + +class BusRouterState(Enum): + INIT = 0 + RUNNING = 1 + STOPPING = 2 + STOPPED = 3 + + +class BusRouter: + """ + Distribute incoming messages based on the boolean result + of a filter callback. + + python-can does not allow filtering messages per recipient therefore + this class. + + Also implements a simple forwarding mechanism for sending messages, to + simplify interfacing with CAN bus objects. + """ + + def __init__(self, bus_manager, timeout, logger): + self.bus_manager = bus_manager + self.timeout = timeout + self.logger = logger + self.clients = [] + self.running = True + self.update_thread = Thread(target=self.run, daemon=True) + self.update_thread.start() + + def run(self): + while self.running: + frame = self.bus_manager.recv(self.timeout) + if frame: + for client in self.clients: + if client.filter_cb(frame): + client.recv_cb(frame) + + def add_client(self, filter_cb, recv_cb): + self.clients.append(Client(filter_cb, recv_cb)) + + def stop(self): + self.running = False + if self.update_thread.is_alive(): + self.update_thread.join() + + def shutdown(self): + self.stop() + self.bus_manager.shutdown() + + def send(self, frame): + """ + Send a frame by forwarding to the bus manager object + """ + self.bus_manager.send(frame) + + +def init_router(bus_class, bus_params, logger, timeout=0.1): + """ + Initializes a bus router using a python-can bus instance + """ + global bus_router + if bus_router == None: + bus_manager = BusManager(bus_class, bus_params, logger=logger) + bus_router = BusRouter(bus_manager, timeout, logger=logger) + else: + logger.warning("Bus Router already exists") + return bus_router + + +def destroy_router(): + """ + Destroys the existing bus router, stopping its thread. + """ + global bus_router + if bus_router != None: + bus_router.shutdown() + bus_router = None + + +def get_router(): + """ + Get the current bus router object + """ + return bus_router + + +# Deprecated functions + + +def init_tee(bus, timeout=0.1): + """ + Initializes a tee using a python-can bus instance + """ + raise RuntimeError( + "init_tee() is no longer supported. Please use init_router() instead." + ) + + +def destroy_tee(): + """ + Destroys the existing tee, stopping its thread. + """ + warnings.warn( + "destroy_tee() is deprecated and will be removed in future versions. Please use destroy_router() instead.", + DeprecationWarning, + stacklevel=2, + ) + destroy_router() + + +def get_tee(): + """ + Get the current tee object + """ + warnings.warn( + "get_tee() is deprecated and will be removed in future versions. Please use get_router() instead.", + DeprecationWarning, + stacklevel=2, + ) + get_router() diff --git a/studio/Python/tinymovr/channel.py b/studio/Python/tinymovr/channel.py index 42cb07fc..8fd5765a 100644 --- a/studio/Python/tinymovr/channel.py +++ b/studio/Python/tinymovr/channel.py @@ -19,7 +19,7 @@ import can from functools import cached_property from avlos.channel import BaseChannel -from tinymovr.tee import get_tee +from tinymovr.bus_router import get_router from tinymovr.constants import ( CAN_DEV_MASK, CAN_EP_SIZE, @@ -43,7 +43,7 @@ def __init__(self, node_id, compare_hash = 0): self.queue = [] self.lock = Lock() self.evt = Event() - get_tee().add(self._filter_frame, self._recv_cb) + get_router().add_client(self._filter_frame, self._recv_cb) def _filter_frame(self, frame): return not frame.is_remote_frame and ids_from_arbitration(frame.arbitration_id)[2] == self.node_id @@ -60,10 +60,10 @@ def send(self, data, ep_id): """ Send a CAN frame to a specific endpoint. The `rtr` flag is set based on whether data is provided, and the frame is sent via the - global tee instance. + global bus router instance. """ rtr = False if data and len(data) else True - get_tee().send(self.create_frame(ep_id, rtr, data)) + get_router().send(self.create_frame(ep_id, rtr, data)) def recv(self, ep_id, timeout=1.0): """ diff --git a/studio/Python/tinymovr/cli.py b/studio/Python/tinymovr/cli.py index 03a7ea16..5df57a1c 100644 --- a/studio/Python/tinymovr/cli.py +++ b/studio/Python/tinymovr/cli.py @@ -19,8 +19,8 @@ from traitlets.config import Config from docopt import docopt -from tinymovr import init_tee, destroy_tee -from tinymovr.discovery import Discovery +from tinymovr import init_router, destroy_router +from tinymovr.device_discovery import DeviceDiscovery from tinymovr.constants import app_name from tinymovr.config import get_bus_config, configure_logging, add_spec @@ -62,8 +62,7 @@ def spawn(): bitrate = int(arguments["--bitrate"]) if not channel: - params = get_bus_config(buses) - params["bitrate"] = bitrate + params = get_bus_config(buses, bitrate=bitrate) else: params = {"bustype": buses[0], "channel": channel, "bitrate": bitrate} @@ -85,15 +84,16 @@ def node_disappeared(node_id): print(app_name + " " + str(version)) - init_tee(can.Bus(**params)) - dsc = Discovery(node_appeared, node_disappeared, logger) + #TODO: router init should not happen in CLI spawn function + init_router(can.Bus, params, logger=logger) + dsc = DeviceDiscovery(node_appeared, node_disappeared, logger) print("Listening for nodes...") c = Config() c.TerminalIPythonApp.display_banner = False IPython.start_ipython(argv=[], config=c, user_ns=user_ns) logger.debug("Exiting...") - destroy_tee() + destroy_router() if __name__ == "__main__": diff --git a/studio/Python/tinymovr/config/config.py b/studio/Python/tinymovr/config/config.py index edb2eedc..80fdbfff 100644 --- a/studio/Python/tinymovr/config/config.py +++ b/studio/Python/tinymovr/config/config.py @@ -73,7 +73,7 @@ def add_spec(spec, logger=None): init_specs_dict() -def get_bus_config(suggested_types=None): +def get_bus_config(suggested_types=None, bitrate=None): """ Get the bus configuration (interface, channel) for the first of the suggested interface types. Present @@ -81,7 +81,10 @@ def get_bus_config(suggested_types=None): """ configs = can.interface.detect_available_configs(suggested_types) try: - return configs[0] + config = configs[0] + if bitrate: + configs[0]["bitrate"] = bitrate + return config except IndexError as exc: raise can.CanInitializationError("No active interface found") from exc diff --git a/studio/Python/tinymovr/discovery.py b/studio/Python/tinymovr/device_discovery.py similarity index 96% rename from studio/Python/tinymovr/discovery.py rename to studio/Python/tinymovr/device_discovery.py index f4f946f0..d702fe94 100644 --- a/studio/Python/tinymovr/discovery.py +++ b/studio/Python/tinymovr/device_discovery.py @@ -1,5 +1,5 @@ """ -Tinymovr Discovery Module +Tinymovr DeviceDiscovery Module Copyright Ioannis Chatzikonstantinou 2020-2023 Implements a class to discover nodes on the CAN bus based on @@ -19,12 +19,12 @@ import time from threading import Thread, Event from tinymovr.channel import ResponseError -from tinymovr.tee import get_tee +from tinymovr.bus_router import get_router from tinymovr.constants import HEARTBEAT_BASE from tinymovr.config import create_device_with_hash_msg -class Discovery: +class DeviceDiscovery: """ Discover Tinymovr instances on the CAN bus using the periodically transmitted heartbeat frame. @@ -41,7 +41,7 @@ def __init__(self, appeared_cb, disappeared_cb, logger, lost_timeout=2.0): self.reset() - get_tee().add( + get_router().add_client( lambda msg: HEARTBEAT_BASE == msg.arbitration_id & HEARTBEAT_BASE, self._recv_cb, ) diff --git a/studio/Python/tinymovr/dfu.py b/studio/Python/tinymovr/dfu.py index a56a744f..3d068f46 100644 --- a/studio/Python/tinymovr/dfu.py +++ b/studio/Python/tinymovr/dfu.py @@ -23,7 +23,7 @@ import IPython from traitlets.config import Config from docopt import docopt -from tinymovr.tee import init_tee, destroy_tee +from tinymovr.bus_router import init_router, destroy_router from tinymovr.config import get_bus_config, create_device from tinymovr.channel import ResponseError @@ -149,8 +149,7 @@ def spawn(): bitrate = int(arguments["--bitrate"]) if not channel: - params = get_bus_config(buses) - params["bitrate"] = bitrate + params = get_bus_config(buses, bitrate=bitrate) else: params = {"bustype": buses[0], "channel": channel, "bitrate": bitrate} @@ -158,7 +157,7 @@ def spawn(): input("Please power off the device and then press any key to continue...") print("Now power on the device.") - init_tee(can.Bus(**params), timeout=1.0) + init_router(can.Bus, params, timeout=1.0) while True: try: device = create_device(node_id=node_id) @@ -168,7 +167,7 @@ def spawn(): pass else: - init_tee(can.Bus(**params), timeout=1.0) + init_router(can.Bus, params, timeout=1.0) device = create_device(node_id=node_id) if not bin_path: @@ -188,7 +187,7 @@ def spawn(): if not arguments["--no-reset"]: print("Resetting device...") device.reset() - destroy_tee() + destroy_router() if __name__ == "__main__": diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 32e657bf..e3b4414f 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -153,8 +153,7 @@ def __init__(self, app, arguments, logger): self.max_timeouts = int(arguments["--max-timeouts"]) if channel == None: - params = get_bus_config(buses) - params["bitrate"] = bitrate + params = get_bus_config(buses, bitrate=bitrate) else: params = {"bustype": buses[0], "channel": channel, "bitrate": bitrate} diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index 4d658bdf..f7fe70d7 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -21,8 +21,8 @@ from PySide6 import QtCore from PySide6.QtCore import QObject from tinymovr.gui import TimedGetter, get_dynamic_attrs -from tinymovr.tee import init_tee, destroy_tee -from tinymovr.discovery import Discovery +from tinymovr.bus_router import init_router, destroy_router +from tinymovr.device_discovery import DeviceDiscovery from tinymovr.constants import base_node_name @@ -32,13 +32,14 @@ class Worker(QObject): regenSignal = QtCore.Signal(dict) handleErrorSignal = QtCore.Signal(object) - def __init__(self, busparams, logger, refresh_period=0.3): + def __init__(self, bus_params, logger, bus_class=can.Bus, refresh_period=0.3): super().__init__() self.logger = logger self.mutx = QtCore.QMutex() - init_tee(can.Bus(**busparams)) + #TODO: router init should not happen in GUI worker + init_router(bus_class, bus_params, logger=logger) self._init_containers() - self.dsc = Discovery( + self.dsc = DeviceDiscovery( self._device_appeared, self._device_disappeared, self.logger ) self.timed_getter = TimedGetter() @@ -53,7 +54,7 @@ def __init__(self, busparams, logger, refresh_period=0.3): @QtCore.Slot() def stop(self): - destroy_tee() + destroy_router() def force_regen(self): self.mutx.lock() diff --git a/studio/Python/tinymovr/tee.py b/studio/Python/tinymovr/tee.py deleted file mode 100644 index 1a67cdb5..00000000 --- a/studio/Python/tinymovr/tee.py +++ /dev/null @@ -1,132 +0,0 @@ -""" -Tinymovr Tee Module -Copyright Ioannis Chatzikonstantinou 2020-2023 - -Implements a Tee class to distribute incoming traffic according to rules - -This program is free software: you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free Software -Foundation, either version 3 of the License, or (at your option) any later -version. -This program is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License along with -this program. If not, see . -""" - - -import time -from enum import Enum -from threading import Thread, Lock - - -tee = None - - -class Client: - def __init__(self, filter_cb, recv_cb): - self.filter_cb = filter_cb - self.recv_cb = recv_cb - - -class TeeState(Enum): - INIT = 0 - RUNNING = 1 - STOPPING = 2 - STOPPED = 3 - - -class Tee: - """ - Distribute incoming messages based on the boolean result - of a filter callback. - - python-can does not allow filtering messages per recipient therefore - this class. - - Also implements a simple forwarding mechanism for sending messages, to - simplify interfacing with CAN bus objects. - """ - - def __init__(self, bus, timeout): - self.bus = bus - self.flush_rx_buffer() - self.timeout = timeout - self.clients = [] - self.state = TeeState.INIT - self.update_thread = Thread(target=self.update, daemon=True) - self.update_thread.start() - - def add(self, filter_cb, recv_cb): - self.clients.append(Client(filter_cb, recv_cb)) - - def update(self): - """ - Continuously update the state of the Tee object, checking - for messages and distributing them to the appropriate clients - based on filter criteria until the state changes to STOPPING. - """ - self.state = TeeState.RUNNING - while TeeState.RUNNING == self.state: - self._update_once() - assert TeeState.STOPPING == self.state - self.state = TeeState.STOPPED - - def _update_once(self): - """ - Try to receive a message from the bus object and if successful, - tests reception of each tee instance in the global index. - """ - frame = self.bus.recv(timeout=self.timeout) - if frame: - for client in self.clients: - if client.filter_cb(frame): - client.recv_cb(frame) - - def send(self, frame): - """ - Send a frame by forwarding to the bus object - """ - self.bus.send(frame) - - def stop(self): - self.state = TeeState.STOPPING - while TeeState.STOPPING == self.state: - time.sleep(0.01) - assert TeeState.STOPPED == self.state - - def flush_rx_buffer(self, trials=100): - """ - Flush the RX buffer of a bus - """ - for i in range(trials): - if not self.bus.recv(timeout=0.001): - return - - -def init_tee(bus, timeout=0.1): - """ - Initializes a tee using a python-can bus instance - """ - global tee - assert None == tee - tee = Tee(bus, timeout) - return tee - - -def destroy_tee(): - """ - Destroys the existing tee, stopping its thread. - """ - global tee - assert None != tee - tee.stop() - tee = None - - -def get_tee(): - """ - Get the current tee object - """ - return tee From cd285af091b39b1d9def68a3d9ae4d2e96019631 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 8 May 2024 21:45:48 +0300 Subject: [PATCH 173/219] update tests --- studio/Python/pyproject.toml | 14 ++++++++ studio/Python/tests/test_amt22.py | 16 ++------- studio/Python/tests/test_as5047.py | 18 +++------- studio/Python/tests/test_base_function.py | 44 ----------------------- studio/Python/tests/test_board.py | 31 +++++++++++++--- studio/Python/tests/test_dfu.py | 19 +++++----- studio/Python/tests/test_hall.py | 3 +- studio/Python/tests/test_rates.py | 3 ++ studio/Python/tests/test_simulation.py | 6 ++-- studio/Python/tests/test_watchdog.py | 3 ++ studio/Python/tests/tm_test_case.py | 15 ++++---- 11 files changed, 75 insertions(+), 97 deletions(-) create mode 100644 studio/Python/pyproject.toml delete mode 100644 studio/Python/tests/test_base_function.py diff --git a/studio/Python/pyproject.toml b/studio/Python/pyproject.toml new file mode 100644 index 00000000..2902195a --- /dev/null +++ b/studio/Python/pyproject.toml @@ -0,0 +1,14 @@ + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[tool.pytest.ini_options] +markers = [ + "hitl_default: marks default hardware in the loop tests", + "sensor_amt22: marks tests that need the amt22 sensor", + "sensor_as5047: marks tests that need the as5047 sensor", + "sensor_hall: marks tests that need a hall effect sensored motor", + "eol: marks tests for end-of-line testing", + "dfu: marks tests for dfu testing", +] \ No newline at end of file diff --git a/studio/Python/tests/test_amt22.py b/studio/Python/tests/test_amt22.py index 2d282cb8..d716003a 100644 --- a/studio/Python/tests/test_amt22.py +++ b/studio/Python/tests/test_amt22.py @@ -21,6 +21,7 @@ from avlos.unit_field import get_registry import unittest +import pytest from tests import TMTestCase ureg = get_registry() @@ -32,19 +33,7 @@ class TestAMT22(TMTestCase): - @classmethod - def setUpClass(cls): - super(TestAMT22, cls).setUpClass() - - cls.configure_sensors(cls.tm.sensors.setup.external_spi.type.AMT22) - cls.select_sensors(cls.tm.sensors.select.position_sensor.connection.ONBOARD, cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - - # We look at the position estimate, which is highly unlikely to be exactly 0xFFFF. - if cls.tm.sensors.select.position_sensor.raw_angle == 16383: - raise unittest.SkipTest("AMT22 sensor not present. Skipping test.") - - cls.reset_and_wait() - + @pytest.mark.sensor_amt22 def test_a_position_control_before_after_save_and_load_config(self): """ Test position control after saving and loading config. @@ -103,6 +92,7 @@ def test_a_position_control_before_after_save_and_load_config(self): self.tm.erase_config() time.sleep(0.2) + @pytest.mark.sensor_amt22 def test_b_position_control_following_sensor_change(self): """ Test position control before and after changing sensor connection and type. diff --git a/studio/Python/tests/test_as5047.py b/studio/Python/tests/test_as5047.py index 0be284b3..da6973e1 100644 --- a/studio/Python/tests/test_as5047.py +++ b/studio/Python/tests/test_as5047.py @@ -21,6 +21,7 @@ from avlos.unit_field import get_registry import unittest +import pytest from tests import TMTestCase ureg = get_registry() @@ -32,19 +33,7 @@ class TestAS5047(TMTestCase): - @classmethod - def setUpClass(cls): - super(TestAS5047, cls).setUpClass() - - cls.configure_sensors(cls.tm.sensors.setup.external_spi.type.AS5047) - cls.select_sensors(cls.tm.sensors.select.position_sensor.connection.ONBOARD, cls.tm.sensors.select.position_sensor.connection.EXTERNAL_SPI) - - # We look at the position estimate, which is highly unlikely to be exactly 0xFFFF. - if cls.tm.sensors.select.position_sensor.raw_angle == 16383: - raise unittest.SkipTest("AS5047 sensor not present. Skipping test.") - - cls.reset_and_wait() - + @pytest.mark.sensor_as5047 def test_a_position_control_before_after_save_and_load_config(self): """ Test position control after saving and loading config. @@ -102,6 +91,7 @@ def test_a_position_control_before_after_save_and_load_config(self): self.tm.erase_config() time.sleep(0.2) + @pytest.mark.sensor_as5047 def test_b_position_control_following_sensor_change(self): """ Test position control before and after changing sensor connection and type. @@ -163,7 +153,7 @@ def test_b_position_control_following_sensor_change(self): self.tm.erase_config() time.sleep(0.2) - + @pytest.mark.sensor_as5047 def test_c_position_control_change_baud_rates(self): """ Test position control with external sensor and diff --git a/studio/Python/tests/test_base_function.py b/studio/Python/tests/test_base_function.py deleted file mode 100644 index 1a0206b5..00000000 --- a/studio/Python/tests/test_base_function.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -This unit test suite tests functionality -of Tinymovr boards. -""" -import time - -from avlos.unit_field import get_registry - -import unittest -from tests import TMTestCase - -ureg = get_registry() -A = ureg.ampere -ticks = ureg.ticks -s = ureg.second - - -class TestBaseFunction(TMTestCase): - - def test_position_control(self): - """ - Test position control - """ - hw_rev = self.tm.hw_revision - self.check_state(0) - self.tm.controller.current.Iq_limit = 5 - self.try_calibrate() - self.tm.controller.position_mode() - self.check_state(2) - - for i in range(5): - self.tm.controller.position.setpoint = i * 3000 * ticks - if hw_rev > 20: - time.sleep(0.50) - else: - time.sleep(0.25) - self.assertAlmostEqual( - i * 3000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks - ) - - - -if __name__ == "__main__": - unittest.main(failfast=True) diff --git a/studio/Python/tests/test_board.py b/studio/Python/tests/test_board.py index 7c922675..8d55fc77 100644 --- a/studio/Python/tests/test_board.py +++ b/studio/Python/tests/test_board.py @@ -22,6 +22,7 @@ from avlos.unit_field import get_registry import unittest +import pytest from tests import TMTestCase ureg = get_registry() @@ -32,6 +33,8 @@ class TestBoard(TMTestCase): + + @pytest.mark.hitl_default def test_a_sensor_readings(self): """ Test sensor readings @@ -43,6 +46,7 @@ def test_a_sensor_readings(self): # apparently the statistics lib works with quantities only self.assertLess(st.pstdev(pos_estimates) * ticks, 5 * ticks) + @pytest.mark.hitl_default def test_b_invalid_values(self): """ Test rejection of invalid values for limits and gains @@ -72,6 +76,7 @@ def test_b_invalid_values(self): time.sleep(2) + @pytest.mark.hitl_default def test_c_calibrate(self): """ Test board calibration if not calibrated @@ -79,22 +84,30 @@ def test_c_calibrate(self): self.check_state(0) self.try_calibrate() + @pytest.mark.eol + @pytest.mark.hitl_default def test_d_position_control(self): """ Test position control """ + hw_rev = self.tm.hw_revision self.check_state(0) + self.tm.controller.current.Iq_limit = 5 self.try_calibrate() self.tm.controller.position_mode() self.check_state(2) - for i in range(10): - self.tm.controller.position.setpoint = i * 1000 * ticks - time.sleep(tsleep) + for i in range(5): + self.tm.controller.position.setpoint = i * 3000 * ticks + if hw_rev > 20: + time.sleep(0.50) + else: + time.sleep(0.20) self.assertAlmostEqual( - i * 1000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks + i * 3000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) + @pytest.mark.hitl_default def test_e_velocity_control(self): """ Test velocity control @@ -135,6 +148,7 @@ def test_e_velocity_control(self): for target, estimate in velocity_pairs: self.assertAlmostEqual(target, estimate, delta=30000 * ticks / s) + @pytest.mark.hitl_default def test_f_random_pos_control(self): """ Test random positions @@ -154,6 +168,7 @@ def test_f_random_pos_control(self): delta=2000 * ticks, ) + @pytest.mark.hitl_default def test_g_limits(self): """ Test limits @@ -190,6 +205,7 @@ def test_g_limits(self): self.tm.controller.velocity.setpoint = 0 time.sleep(0.5) + @pytest.mark.hitl_default def test_h_timings(self): """ Test DWT busy/total cycle timings @@ -198,6 +214,7 @@ def test_h_timings(self): self.skipTest("Invalid timing values. Skipping test.") self.assertLess(self.tm.scheduler.load, 4000) + @pytest.mark.hitl_default def test_i_states(self): """ Test state transitions @@ -225,6 +242,7 @@ def test_i_states(self): self.assertEqual(self.tm.controller.state, 2) self.tm.controller.idle() + @pytest.mark.hitl_default def test_j_gimbal_mode(self): """ Test gimbal mode @@ -248,6 +266,7 @@ def test_j_gimbal_mode(self): i * 1000 * ticks, self.tm.sensors.user_frame.position_estimate, delta=1000 * ticks ) + @pytest.mark.hitl_default def test_k_rotor_offset_and_multiplier(self): """ Test rotor offset and multiplier @@ -296,6 +315,7 @@ def test_k_rotor_offset_and_multiplier(self): # 20000 * k * ticks, values.position, delta=2000 * (k + 1) * ticks # ) + @pytest.mark.hitl_default def test_m_recalibrate(self): """ Test re-calibration without reset @@ -322,6 +342,7 @@ def test_m_recalibrate(self): self.tm.controller.idle() self.assertLess(st.pstdev(pos_estimates) * ticks, 100 * ticks) + @pytest.mark.hitl_default def test_n_velocity_ramp(self): """ Test velocity ramp @@ -347,6 +368,7 @@ def test_n_velocity_ramp(self): a, _ = np.polyfit(t_points, vel_estimates, 1) self.assertAlmostEqual(a, ramp_value * frequency, delta=5000) + @pytest.mark.hitl_default def test_o_composite_set_get(self): """ Test composite setter/getter function @@ -359,6 +381,7 @@ def test_o_composite_set_get(self): pos_estimate_comp = self.tm.controller.set_pos_vel_setpoints(0, 0) * ticks self.assertAlmostEqual(pos_estimate_ref, pos_estimate_comp, delta=200*ticks) + @pytest.mark.hitl_default def test_p_flux_braking(self): """ Test flux braking diff --git a/studio/Python/tests/test_dfu.py b/studio/Python/tests/test_dfu.py index 031626b7..d5aa6330 100644 --- a/studio/Python/tests/test_dfu.py +++ b/studio/Python/tests/test_dfu.py @@ -15,29 +15,29 @@ this program. If not, see . """ -import os import time import can -from tinymovr import init_tee, destroy_tee +from tinymovr import init_router, destroy_router from tinymovr.config import ( get_bus_config, - create_device + create_device, + configure_logging ) import unittest - +import pytest class TMTestCase(unittest.TestCase): @classmethod def setUp(cls): - params = get_bus_config(["canine", "slcan_disco"]) - params["bitrate"] = 1000000 - cls.can_bus = can.Bus(**params) + cls.logger = configure_logging() + cls.params = get_bus_config(["canine", "slcan_disco"], bitrate=1000000) + init_router(can.Bus, cls.params, logger=cls.logger) + @pytest.mark.dfu def test_dfu(self, node_id=1): - init_tee(self.can_bus) time.sleep(0.5) for i in range(10): print("Testing DFU iteration ", i+1) @@ -62,8 +62,7 @@ def test_dfu(self, node_id=1): @classmethod def tearDownClass(cls): - destroy_tee() - cls.can_bus.shutdown() + destroy_router() if __name__ == "__main__": diff --git a/studio/Python/tests/test_hall.py b/studio/Python/tests/test_hall.py index 3ce7098a..4821fbc4 100644 --- a/studio/Python/tests/test_hall.py +++ b/studio/Python/tests/test_hall.py @@ -21,6 +21,7 @@ from avlos.unit_field import get_registry import unittest +import pytest from tests import TMTestCase ureg = get_registry() @@ -35,12 +36,12 @@ def set_pole_pairs(tm): class TestHall(TMTestCase): + @pytest.mark.sensor_hall def test_a_position_control_w_loaded_config(self): """ Test position control after saving and loading config. WARNING: This will perform one NVRAM write and two erase cycles. """ - pass self.check_state(0) self.tm.erase_config() time.sleep(0.2) diff --git a/studio/Python/tests/test_rates.py b/studio/Python/tests/test_rates.py index 47dcbb2b..5120d4c1 100644 --- a/studio/Python/tests/test_rates.py +++ b/studio/Python/tests/test_rates.py @@ -18,11 +18,14 @@ import time from tests import TMTestCase +import pytest iterations = 5000 class TestRates(TMTestCase): + + @pytest.mark.hitl_default def test_round_trip_time(self): """ Test round-trip message time (2 packets) diff --git a/studio/Python/tests/test_simulation.py b/studio/Python/tests/test_simulation.py index b9b7a35e..a339e4d5 100644 --- a/studio/Python/tests/test_simulation.py +++ b/studio/Python/tests/test_simulation.py @@ -15,7 +15,7 @@ this program. If not, see . """ -from tinymovr import init_tee, destroy_tee +from tinymovr import init_router, destroy_router from tinymovr.channel import ResponseError from tinymovr.config import create_device from unittest.mock import patch, MagicMock @@ -31,12 +31,12 @@ def test_response_error(self, can_bus): """ can_bus.send = MagicMock() can_bus.recv = MagicMock() - init_tee(can_bus) + init_router(can_bus) with self.assertRaises(ResponseError): tm = create_device(node_id=1) assert can_bus.send.called assert can_bus.recv.called - destroy_tee() + destroy_router() diff --git a/studio/Python/tests/test_watchdog.py b/studio/Python/tests/test_watchdog.py index a22eae0f..33df2bbe 100644 --- a/studio/Python/tests/test_watchdog.py +++ b/studio/Python/tests/test_watchdog.py @@ -7,6 +7,7 @@ from avlos.unit_field import get_registry import unittest +import pytest from tests import TMTestCase ureg = get_registry() @@ -16,6 +17,8 @@ tsleep = 0.18 class TestWatchdog(TMTestCase): + + @pytest.mark.hitl_default def test_watchdog(self): """ Test Watchdog function diff --git a/studio/Python/tests/tm_test_case.py b/studio/Python/tests/tm_test_case.py index 00a61cae..0b31e8d8 100644 --- a/studio/Python/tests/tm_test_case.py +++ b/studio/Python/tests/tm_test_case.py @@ -19,8 +19,8 @@ import time import can -from tinymovr import init_tee, destroy_tee -from tinymovr.config import get_bus_config, create_device +from tinymovr import init_router, destroy_router +from tinymovr.config import get_bus_config, create_device, configure_logging import unittest @@ -40,11 +40,11 @@ def select_sensors(cls, commutation_sensor_connection, position_sensor_connectio @classmethod def setUpClass(cls): - params = get_bus_config(["canine", "slcan_disco"]) - params["bitrate"] = 1000000 - cls.can_bus = can.Bus(**params) - init_tee(cls.can_bus) + params = get_bus_config(["canine", "slcan_disco"], bitrate=1000000) + cls.logger = configure_logging() + init_router(can.Bus, params, logger=cls.logger) cls.tm = create_device(node_id=1) + cls.reset_and_wait() def tearDown(self): @@ -53,8 +53,7 @@ def tearDown(self): @classmethod def tearDownClass(cls): cls.tm.reset() - destroy_tee() - cls.can_bus.shutdown() + destroy_router() @classmethod def reset_and_wait(cls, timeout=0.5): From ce6626798209ffb3159f6673a061b90108595db3 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 9 May 2024 01:00:09 +0300 Subject: [PATCH 174/219] add busrouter api docs --- docs/protocol/integrating.rst | 96 +++++++++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 3 deletions(-) diff --git a/docs/protocol/integrating.rst b/docs/protocol/integrating.rst index 435989bf..a12d31f9 100644 --- a/docs/protocol/integrating.rst +++ b/docs/protocol/integrating.rst @@ -25,9 +25,8 @@ Here below is an example using the API from Python scripts and controlling hardw from tinymovr.bus_router import init_router from tinymovr.config import get_bus_config, create_device - params = get_bus_config(["canine", "slcan_disco"]) - params["bitrate"] = bitrate - init_router(can.Bus(**params)) + params = get_bus_config(["canine", "slcan_disco"], bitrate=1000000) + init_router(can.Bus, params) tm = create_device(node_id=1) tm.controller.calibrate() @@ -42,6 +41,97 @@ The above code block will instantiate a Tinymovr with CAN bus id of 1 and calibr tm.controller.velocity_mode() tm.controller.velocity.setpoint = 80000 +BusRouter API +############# + +The `BusRouter` class in the Tinymovr library is designed to facilitate message distribution and communication on the CAN bus by distributing incoming messages based on the result of a filter callback. + +API Overview +------------ + +.. class:: BusRouter + + Initializes and manages the routing of CAN bus messages between various clients. It integrates a simple forwarding mechanism for sending messages to simplify interfacing with CAN bus objects. + + .. method:: __init__(bus_manager, timeout, logger) + + Constructor for the BusRouter. Initializes the bus manager, timeout, and logger. + + .. note:: + This constructor should not be used directly. Instead, use the :func:`init_router` function. + + :param bus_manager: Instance of BusManager to handle low-level bus interactions. + :param timeout: Timeout in seconds for receiving messages. + :param logger: Logger instance for logging information. + + .. method:: run() + + Main thread function that continuously listens for incoming frames and dispatches them to the appropriate clients based on filter results. + + .. method:: add_client(filter_cb, recv_cb) + + Registers a new client to receive messages that meet specific conditions. + + :param filter_cb: Callback function that determines if the incoming frame should be passed to the client. + :param recv_cb: Callback function that handles the received frame. + + .. method:: stop() + + Stops the router's main running thread, effectively stopping the routing of messages. + + .. method:: shutdown() + + Performs a complete shutdown by stopping the router and closing all bus manager activities. + + .. method:: send(frame) + + Sends a frame via the bus manager. + + :param frame: The CAN frame to be sent. + +Bus Router Management Functions +------------------------------- + +These helper functions manage the lifecycle of the `BusRouter` instance. + +.. function:: init_router(bus_class, bus_params, logger, timeout=0.1) + + Initializes a bus router using a python-can bus instance. This function creates a singleton instance of `BusRouter`. + + :param bus_class: The bus class from python-can to be used. + :param bus_params: Parameters for the bus initialization. + :param logger: Logger instance for logging activities. + :param timeout: Timeout in seconds for receiving messages. + :return: An instance of `BusRouter`. + +.. function:: destroy_router() + + Destroys the existing bus router and stops its associated thread. + +.. function:: get_router() + + Returns the current instance of the bus router if it exists. + +Deprecations +------------ + +The following functions are deprecated and will be removed in future versions: + +.. function:: init_tee() + + .. deprecated:: 2.1 + Use :func:`init_router` instead. + +.. function:: destroy_tee() + + .. deprecated:: 2.1 + Use :func:`destroy_router` instead. + +.. function:: get_tee() + + .. deprecated:: 2.1 + Use :func:`get_router` instead. + Error Codes ########### From 023b604f741430e061c79167348e69ed762a540b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 9 May 2024 01:10:15 +0300 Subject: [PATCH 175/219] add logger parameter --- studio/Python/tinymovr/dfu.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/studio/Python/tinymovr/dfu.py b/studio/Python/tinymovr/dfu.py index 3d068f46..11ca8fd6 100644 --- a/studio/Python/tinymovr/dfu.py +++ b/studio/Python/tinymovr/dfu.py @@ -24,7 +24,7 @@ from traitlets.config import Config from docopt import docopt from tinymovr.bus_router import init_router, destroy_router -from tinymovr.config import get_bus_config, create_device +from tinymovr.config import get_bus_config, create_device, configure_logging from tinymovr.channel import ResponseError """ @@ -148,6 +148,8 @@ def spawn(): channel = arguments["--chan"] bitrate = int(arguments["--bitrate"]) + logger = configure_logging() + if not channel: params = get_bus_config(buses, bitrate=bitrate) else: @@ -157,7 +159,7 @@ def spawn(): input("Please power off the device and then press any key to continue...") print("Now power on the device.") - init_router(can.Bus, params, timeout=1.0) + init_router(can.Bus, params, logger=logger, timeout=1.0) while True: try: device = create_device(node_id=node_id) @@ -167,7 +169,7 @@ def spawn(): pass else: - init_router(can.Bus, params, timeout=1.0) + init_router(can.Bus, params, logger=logger, timeout=1.0) device = create_device(node_id=node_id) if not bin_path: From 72480c934c452ae370642421b0ab28e6181ffd2f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 9 May 2024 01:20:19 +0300 Subject: [PATCH 176/219] update sim (mock) test --- studio/Python/tests/test_simulation.py | 34 ++++++++++++++++---------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/studio/Python/tests/test_simulation.py b/studio/Python/tests/test_simulation.py index a339e4d5..4510b974 100644 --- a/studio/Python/tests/test_simulation.py +++ b/studio/Python/tests/test_simulation.py @@ -15,30 +15,38 @@ this program. If not, see . """ +import unittest +from unittest.mock import patch, MagicMock from tinymovr import init_router, destroy_router from tinymovr.channel import ResponseError from tinymovr.config import create_device -from unittest.mock import patch, MagicMock -import unittest - class TestSimulation(unittest.TestCase): @patch("can.Bus") - def test_response_error(self, can_bus): + def test_response_error(self, mock_can_bus_class): """ - Test response error + Test that an appropriate error is raised when the device receives an erroneous response. """ - can_bus.send = MagicMock() - can_bus.recv = MagicMock() - init_router(can_bus) + # Setup mock + mock_can_bus_instance = MagicMock() + mock_can_bus_class.return_value = mock_can_bus_instance + mock_params = MagicMock() + mock_logger = MagicMock() + + # Initialize the router with the mocked class and parameters + init_router(mock_can_bus_class, mock_params, logger=mock_logger) + + # Test that an error is raised during device creation with self.assertRaises(ResponseError): - tm = create_device(node_id=1) - assert can_bus.send.called - assert can_bus.recv.called + create_device(node_id=1) + + # Check if send and recv were called on the can bus instance + assert mock_can_bus_instance.send.called + assert mock_can_bus_instance.recv.called + + # Clean up router destroy_router() - - if __name__ == "__main__": unittest.main() From f6f65893bca95b0d1ee9f65818a951692e89648f Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sun, 12 May 2024 14:25:14 +0300 Subject: [PATCH 177/219] use alt string format in logging --- studio/Python/tinymovr/config/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/studio/Python/tinymovr/config/config.py b/studio/Python/tinymovr/config/config.py index 80fdbfff..15f4a7d2 100644 --- a/studio/Python/tinymovr/config/config.py +++ b/studio/Python/tinymovr/config/config.py @@ -43,7 +43,7 @@ def get_device_spec(hash, logger=None): for hash_alias in hash_aliases[hash]: try: spec = specs["hash_uint32"][hash_alias] - logger.debug("Found compatible spec via hash alias {} for device hash {}", hash_alias, hash) + logger.debug("Found compatible spec via hash alias {} for device hash {}".format(hash_alias, hash)) return spec except KeyError: pass From 61a4e04193dcb8cf1f7d512981ff9d5ce239ed81 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 20 May 2024 23:24:18 +0300 Subject: [PATCH 178/219] add logging message --- studio/Python/tinymovr/gui/worker.py | 1 + 1 file changed, 1 insertion(+) diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index ea69c9d3..30cd8482 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -62,6 +62,7 @@ def force_regen(self): self.mutx.unlock() def reset(self): + self.logger.info("Resetting Studio...") self.mutx.lock() self.dsc.reset() self._init_containers() From c6216d310892a60ddfa5861e215bb1e13cf66432 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 27 May 2024 16:45:04 +0300 Subject: [PATCH 179/219] use customized exception --- studio/Python/tinymovr/config/__init__.py | 1 + studio/Python/tinymovr/config/config.py | 35 +++++++++++++++------- studio/Python/tinymovr/device_discovery.py | 4 +-- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/studio/Python/tinymovr/config/__init__.py b/studio/Python/tinymovr/config/__init__.py index 87c5bf66..c10439ec 100644 --- a/studio/Python/tinymovr/config/__init__.py +++ b/studio/Python/tinymovr/config/__init__.py @@ -1,4 +1,5 @@ from tinymovr.config.config import ( + IncompatibleSpecVersionError, get_bus_config, configure_logging, create_device, diff --git a/studio/Python/tinymovr/config/config.py b/studio/Python/tinymovr/config/config.py index 15f4a7d2..454f272b 100644 --- a/studio/Python/tinymovr/config/config.py +++ b/studio/Python/tinymovr/config/config.py @@ -25,13 +25,23 @@ from tinymovr.codec import DataType from tinymovr.channel import CANChannel + +class IncompatibleSpecVersionError(Exception): + def __init__(self, hash_value): + self.hash_value = hash_value + super().__init__( + f"Device found, but incompatible (no device spec found for hash {hash_value})." + ) + + specs = {} # We added the following as a temporary solution # after a hash was modified without modifying the # spec (we are suspecting dependency upgrade # breaking hash computation) -hash_aliases = { 3526126264 : [4118115615]} +hash_aliases = {3526126264: [4118115615]} + def get_device_spec(hash, logger=None): if logger is None: @@ -40,15 +50,20 @@ def get_device_spec(hash, logger=None): try: return specs["hash_uint32"][hash] except KeyError: - for hash_alias in hash_aliases[hash]: + for hash_alias in hash_aliases.get(hash, []): try: spec = specs["hash_uint32"][hash_alias] - logger.debug("Found compatible spec via hash alias {} for device hash {}".format(hash_alias, hash)) + logger.debug( + "Found compatible spec via hash alias {} for device hash {}".format( + hash_alias, hash + ) + ) return spec except KeyError: pass return None + def init_specs_dict(): global specs specs = {"hash_uint32": {}} @@ -65,7 +80,11 @@ def add_spec(spec, logger=None): tmp_node = deserialize(spec) hash_value = tmp_node.hash_uint32 if hash_value in specs["hash_uint32"]: - logger.warning("Provided spec with hash {} already exists in hash/name dictionary".format(hash_value)) + logger.warning( + "Provided spec with hash {} already exists in hash/name dictionary".format( + hash_value + ) + ) else: specs["hash_uint32"][hash_value] = spec @@ -112,7 +131,7 @@ def create_device(node_id, logger=None): chan.compare_hash = protocol_hash & 0xFF if not device_spec: - raise ValueError(f"Device found, but incompatible (no device spec found for hash {protocol_hash}).") + raise IncompatibleSpecVersionError(protocol_hash) node = deserialize(device_spec) node._channel = chan @@ -136,11 +155,7 @@ def create_device_with_hash_msg(heartbeat_msg, logger=None): chan.compare_hash = hash & 0xFF if not device_spec: - # TODO: This message is more descriptive than the - # previous ("no device spec found for hash #"), but - # may not always be accurate. Still we keep it in - # order to better guide the user.4 - raise ValueError(f"Device found, but incompatible (no device spec found for hash {hash}).") + raise IncompatibleSpecVersionError(hash) node = deserialize(device_spec) diff --git a/studio/Python/tinymovr/device_discovery.py b/studio/Python/tinymovr/device_discovery.py index d702fe94..7cd8a004 100644 --- a/studio/Python/tinymovr/device_discovery.py +++ b/studio/Python/tinymovr/device_discovery.py @@ -21,7 +21,7 @@ from tinymovr.channel import ResponseError from tinymovr.bus_router import get_router from tinymovr.constants import HEARTBEAT_BASE -from tinymovr.config import create_device_with_hash_msg +from tinymovr.config import create_device_with_hash_msg, IncompatibleSpecVersionError class DeviceDiscovery: @@ -72,7 +72,7 @@ def _recv_cb(self, frame): self._append_to_queue((node, node_id)) except ResponseError as e: self.logger.error(e) - except ValueError as e: + except IncompatibleSpecVersionError as e: self.logger.error(e) self.incompatible_nodes.add(node_id) self.pending_nodes.remove(node_id) From 01758f69d8b2600e179d4c22915248946d5ab15a Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 27 May 2024 18:18:58 +0300 Subject: [PATCH 180/219] clear console --- studio/Python/tinymovr/gui/window.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index bcb0d4bd..4fc6193e 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -105,6 +105,10 @@ def __init__(self, app, arguments, logger): self.toggle_console_action = QAction("Hide Console", self) # Assume console is visible initially self.toggle_console_action.triggered.connect(self.toggle_console) + self.clear_console_action = QAction("Clear Console", self) + self.clear_console_action.triggered.connect(self.clear_console) + self.view_menu.addAction(self.clear_console_action) + self.view_menu.addAction(self.toggle_tree_action) self.view_menu.addAction(self.toggle_console_action) @@ -430,6 +434,12 @@ def toggle_console(self): self.main_splitter.setSizes([top_height, bottom_height]) self.toggle_console_action.setText("Hide Console") + def clear_console(self): + """ + Clear the console output. + """ + self.console.clear() + def check_tree_visibility(self, pos, index): """ Check tree visibility after splitter is moved and update the action text. From c2535130c74513b171d445c7c829bb151475c9d7 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 27 May 2024 22:23:30 +0300 Subject: [PATCH 181/219] Add configurable update rate --- studio/Python/tinymovr/gui/window.py | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 4fc6193e..9f77602d 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -112,6 +112,29 @@ def __init__(self, app, arguments, logger): self.view_menu.addAction(self.toggle_tree_action) self.view_menu.addAction(self.toggle_console_action) + # Create a sub-menu for selecting the timer rate + self.timer_rate_menu = QMenu("Set Timer Rate") + + # Add actions for selecting the timer rate + self.timer_rate_12_5_action = QAction("12.5 Hz", self) + self.timer_rate_12_5_action.triggered.connect(lambda: self.set_timer_rate(80)) + + self.timer_rate_25_action = QAction("25 Hz", self) + self.timer_rate_25_action.triggered.connect(lambda: self.set_timer_rate(40)) + + self.timer_rate_50_action = QAction("50 Hz", self) + self.timer_rate_50_action.triggered.connect(lambda: self.set_timer_rate(20)) + + self.timer_rate_100_action = QAction("100 Hz", self) + self.timer_rate_100_action.triggered.connect(lambda: self.set_timer_rate(10)) + + self.timer_rate_menu.addAction(self.timer_rate_12_5_action) + self.timer_rate_menu.addAction(self.timer_rate_25_action) + self.timer_rate_menu.addAction(self.timer_rate_50_action) + self.timer_rate_menu.addAction(self.timer_rate_100_action) + + self.view_menu.addMenu(self.timer_rate_menu) + self.menu_bar.addMenu(self.file_menu) self.menu_bar.addMenu(self.view_menu) self.menu_bar.addMenu(self.help_menu) @@ -484,3 +507,12 @@ def is_item_visible_in_viewport(self, item): # Check if the rectangle is within the visible region of the tree widget visible_region = self.tree_widget.visibleRegion() return visible_region.contains(rect) + + def set_timer_rate(self, interval_ms): + """ + Set the interval of the worker update timer. + :param interval_ms: Timer interval in milliseconds. + """ + self.worker_update_timer.setInterval(interval_ms) + self.logger.info(f"Worker update timer set to {1000 / interval_ms:.1f} Hz") + From fadc5eb5b3ffb7f7a74478bf9b5644a6ab8cf8cf Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 27 May 2024 22:23:44 +0300 Subject: [PATCH 182/219] formatting --- studio/Python/tinymovr/gui/window.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 9f77602d..5c35dee6 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -35,7 +35,7 @@ QMessageBox, QTreeWidgetItem, QSplitter, - QTextBrowser + QTextBrowser, ) from PySide6.QtGui import QAction import pyqtgraph as pg @@ -60,7 +60,7 @@ display_file_save_dialog, magnitude_of, check_selected_items, - configure_pretty_errors + configure_pretty_errors, ) @@ -100,9 +100,13 @@ def __init__(self, app, arguments, logger): self.file_menu.addAction(self.import_action) self.help_menu.addAction(self.about_action) - self.toggle_tree_action = QAction("Hide Tree", self) # Assume tree is visible initially + self.toggle_tree_action = QAction( + "Hide Tree", self + ) # Assume tree is visible initially self.toggle_tree_action.triggered.connect(self.toggle_tree) - self.toggle_console_action = QAction("Hide Console", self) # Assume console is visible initially + self.toggle_console_action = QAction( + "Hide Console", self + ) # Assume console is visible initially self.toggle_console_action.triggered.connect(self.toggle_console) self.clear_console_action = QAction("Clear Console", self) @@ -189,7 +193,7 @@ def __init__(self, app, arguments, logger): main_layout.addWidget(self.status_label) main_layout.setSpacing(0) main_layout.setContentsMargins(0, 0, 0, 0) - + main_widget = QWidget() main_widget.setLayout(main_layout) main_widget.setMinimumHeight(600) @@ -238,7 +242,7 @@ def on_show_event(self, event): top_size = int(total_height * top_percentage) bottom_size = int(total_height * bottom_percentage) - + self.main_splitter.setSizes([top_size, bottom_size]) super(MainWindow, self).showEvent(event) @@ -467,7 +471,9 @@ def check_tree_visibility(self, pos, index): """ Check tree visibility after splitter is moved and update the action text. """ - tree_size = self.splitter.sizes()[0] # Assuming tree is always the first widget in the splitter + tree_size = self.splitter.sizes()[ + 0 + ] # Assuming tree is always the first widget in the splitter if tree_size == 0: self.toggle_tree_action.setText("Show Tree") else: @@ -477,7 +483,9 @@ def check_console_visibility(self, pos, index): """ Check console visibility after splitter is moved and update the action text. """ - console_size = self.main_splitter.sizes()[-1] # Assuming console is always the last widget in the splitter + console_size = self.main_splitter.sizes()[ + -1 + ] # Assuming console is always the last widget in the splitter if console_size == 0: self.toggle_console_action.setText("Show Console") else: @@ -515,4 +523,3 @@ def set_timer_rate(self, interval_ms): """ self.worker_update_timer.setInterval(interval_ms) self.logger.info(f"Worker update timer set to {1000 / interval_ms:.1f} Hz") - From b0df47bf57b801ca694c4fec4208d6e9594ab961 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Tue, 28 May 2024 01:05:06 +0300 Subject: [PATCH 183/219] add time window selection for plot --- studio/Python/tinymovr/gui/window.py | 43 +++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/studio/Python/tinymovr/gui/window.py b/studio/Python/tinymovr/gui/window.py index 5c35dee6..1870c695 100644 --- a/studio/Python/tinymovr/gui/window.py +++ b/studio/Python/tinymovr/gui/window.py @@ -71,6 +71,8 @@ class MainWindow(QMainWindow): def __init__(self, app, arguments, logger): super(MainWindow, self).__init__() + self.time_window = 10 + # set units default format get_registry().default_format = ".6f~" @@ -116,10 +118,25 @@ def __init__(self, app, arguments, logger): self.view_menu.addAction(self.toggle_tree_action) self.view_menu.addAction(self.toggle_console_action) - # Create a sub-menu for selecting the timer rate + self.time_window_menu = QMenu("Set Time Window") + + self.time_window_10s_action = QAction("10 seconds", self) + self.time_window_10s_action.triggered.connect(lambda: self.set_time_window(10)) + + self.time_window_30s_action = QAction("30 seconds", self) + self.time_window_30s_action.triggered.connect(lambda: self.set_time_window(30)) + + self.time_window_60s_action = QAction("60 seconds", self) + self.time_window_60s_action.triggered.connect(lambda: self.set_time_window(60)) + + self.time_window_menu.addAction(self.time_window_10s_action) + self.time_window_menu.addAction(self.time_window_30s_action) + self.time_window_menu.addAction(self.time_window_60s_action) + + self.view_menu.addMenu(self.time_window_menu) + self.timer_rate_menu = QMenu("Set Timer Rate") - # Add actions for selecting the timer rate self.timer_rate_12_5_action = QAction("12.5 Hz", self) self.timer_rate_12_5_action.triggered.connect(lambda: self.set_timer_rate(80)) @@ -365,16 +382,21 @@ def attrs_updated(self, data): self.logger.warn("Attribute widget disappeared while updating") if attr_name in self.graphs_by_id: graph_info = self.graphs_by_id[attr_name] + current_time = time.time() - self.start_time x = graph_info["data"]["x"] y = graph_info["data"]["y"] - if len(x) >= 200: + + # Remove data points outside the time window + while len(x) > 0 and current_time - x[0] > self.time_window: x.pop(0) y.pop(0) - x.append(time.time() - self.start_time) + + x.append(current_time) y.append(magnitude_of(val)) graph_info["data_line"].setData(x, y) graph_info["widget"].update() + @QtCore.Slot() def timings_updated(self, timings_dict): meas_freq = timings_dict["meas_freq"] @@ -523,3 +545,16 @@ def set_timer_rate(self, interval_ms): """ self.worker_update_timer.setInterval(interval_ms) self.logger.info(f"Worker update timer set to {1000 / interval_ms:.1f} Hz") + + def set_time_window(self, time_window): + """ + Set the time window for the plots. + :param time_window: Time window in seconds. + """ + self.time_window = time_window + self.logger.info(f"Time window set to {time_window} seconds") + # # Clear existing data to apply the new time window + # for graph_info in self.graphs_by_id.values(): + # graph_info["data"]["x"].clear() + # graph_info["data"]["y"].clear() + # graph_info["data_line"].setData([], []) From 9b5b11f5a527baaf68c4643055a76dea48807ca9 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 30 May 2024 01:12:43 +0300 Subject: [PATCH 184/219] improve pole pair calibration error reporting --- docs/protocol/reference.rst | 4 +- firmware/src/can/can_endpoints.h | 2 +- firmware/src/common.h | 2 + firmware/src/motor/motor.c | 19 +- firmware/src/sensor/sensor.c | 2 +- firmware/src/sensor/sensors.c | 7 +- firmware/src/tm_enums.h | 3 +- studio/Python/tinymovr/gui/helpers.py | 11 - .../Python/tinymovr/specs/tinymovr_2_1_x.yaml | 622 ++++++++++++++++++ 9 files changed, 645 insertions(+), 27 deletions(-) create mode 100644 studio/Python/tinymovr/specs/tinymovr_2_1_x.yaml diff --git a/docs/protocol/reference.rst b/docs/protocol/reference.rst index 2b047516..a2cc7735 100644 --- a/docs/protocol/reference.rst +++ b/docs/protocol/reference.rst @@ -753,7 +753,9 @@ Flags: - PHASE_INDUCTANCE_OUT_OF_RANGE -- INVALID_POLE_PAIRS +- POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE + +- POLE_PAIRS_OUT_OF_RANGE sensors.user_frame.position_estimate ------------------------------------------------------------------- diff --git a/firmware/src/can/can_endpoints.h b/firmware/src/can/can_endpoints.h index a41bc38e..531c1eed 100644 --- a/firmware/src/can/can_endpoints.h +++ b/firmware/src/can/can_endpoints.h @@ -10,7 +10,7 @@ #include #include -static const uint32_t avlos_proto_hash = 3704894695; +static const uint32_t avlos_proto_hash = 3296093882; extern uint8_t (*avlos_endpoints[97])(uint8_t * buffer, uint8_t * buffer_len, Avlos_Command cmd); extern uint32_t _avlos_get_proto_hash(void); diff --git a/firmware/src/common.h b/firmware/src/common.h index 157451fd..7e4c5ca5 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -136,6 +136,8 @@ #define SENSOR_COMMON_RES_HALF_TICKS (SENSOR_COMMON_RES_TICKS/2) #define SENSOR_COMMON_RES_TICKS_FLOAT ((float)(SENSOR_COMMON_RES_TICKS)) +#define MOTOR_MAX_POLE_PAIRS 24 + static const float one_by_sqrt3 = 0.57735026919f; static const float two_by_sqrt3 = 1.15470053838f; static const float threehalfpi = 4.7123889f; diff --git a/firmware/src/motor/motor.c b/firmware/src/motor/motor.c index 73f1abe6..c186fea7 100644 --- a/firmware/src/motor/motor.c +++ b/firmware/src/motor/motor.c @@ -163,13 +163,20 @@ TM_RAMFUNC uint8_t motor_find_pole_pairs(uint32_t ticks, float mpos_start, float const uint8_t pairs_i = (uint8_t)our_floorf(pairs_f + 0.5f); const float residual = our_fabsf(pairs_f - (float)pairs_i); - bool found = false; - if (residual <= 0.30f) + if (pairs_i > MOTOR_MAX_POLE_PAIRS) { - found = true; - motor_set_pole_pairs(pairs_i); + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_POLE_PAIRS_OUT_OF_RANGE; + return false; } - return found; + else if (residual > 0.30f) + { + uint8_t *error_ptr = motor_get_error_ptr(); + *error_ptr |= MOTOR_ERRORS_POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE; + return false; + } + motor_set_pole_pairs(pairs_i); + return true; } TM_RAMFUNC uint8_t motor_get_pole_pairs(void) @@ -179,7 +186,7 @@ TM_RAMFUNC uint8_t motor_get_pole_pairs(void) TM_RAMFUNC void motor_set_pole_pairs(uint8_t pairs) { - if (pairs >= 1u) + if (pairs >= 1u && pairs <= MOTOR_MAX_POLE_PAIRS) { config.pole_pairs = pairs; config.poles_calibrated = true; diff --git a/firmware/src/sensor/sensor.c b/firmware/src/sensor/sensor.c index 724d043a..c07c5704 100644 --- a/firmware/src/sensor/sensor.c +++ b/firmware/src/sensor/sensor.c @@ -28,7 +28,7 @@ void sensor_reset(Sensor *s) bool sensor_calibrate_eccentricity_compensation(Sensor *s, Observer *o, FrameTransform *xf_motor_to_sensor) { // Size below is an arbitrary large number ie > ECN_SIZE * npp - float error_ticks[ECN_SIZE * 24]; + float error_ticks[ECN_SIZE * MOTOR_MAX_POLE_PAIRS]; const int16_t npp = motor_get_pole_pairs(); const int16_t n = ECN_SIZE * npp; const int16_t nconv = 100; diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 41cafa38..1931c6bb 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -308,12 +308,7 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) // Find pole pairs if not Hall; otherwise have to be defined manually if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) { - if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) - { - uint8_t *error_ptr = motor_get_error_ptr(); - *error_ptr |= MOTOR_ERRORS_INVALID_POLE_PAIRS; - return false; - } + return motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end); } const float motor_frame_end_ticks = SENSOR_COMMON_RES_TICKS * (motor_frame_end / (TWOPI * motor_get_pole_pairs())); diff --git a/firmware/src/tm_enums.h b/firmware/src/tm_enums.h index 6b97558d..976305fe 100644 --- a/firmware/src/tm_enums.h +++ b/firmware/src/tm_enums.h @@ -64,7 +64,8 @@ typedef enum MOTOR_ERRORS_NONE = 0, MOTOR_ERRORS_PHASE_RESISTANCE_OUT_OF_RANGE = (1 << 0), MOTOR_ERRORS_PHASE_INDUCTANCE_OUT_OF_RANGE = (1 << 1), - MOTOR_ERRORS_INVALID_POLE_PAIRS = (1 << 2) + MOTOR_ERRORS_POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE = (1 << 2), + MOTOR_ERRORS_POLE_PAIRS_OUT_OF_RANGE = (1 << 3) } motor_errors_flags; typedef enum diff --git a/studio/Python/tinymovr/gui/helpers.py b/studio/Python/tinymovr/gui/helpers.py index 99e94d31..ae1202df 100644 --- a/studio/Python/tinymovr/gui/helpers.py +++ b/studio/Python/tinymovr/gui/helpers.py @@ -28,17 +28,6 @@ import pretty_errors import tinymovr - -class ConsoleColor: - NORMAL = "" - ERROR = "" - WARNING = "" - INFO = "" - DEBUG = "" - TIMESTAMP = "" - END = "" - - app_stylesheet = """ /* --------------------------------------- QPushButton -----------------------------------*/ diff --git a/studio/Python/tinymovr/specs/tinymovr_2_1_x.yaml b/studio/Python/tinymovr/specs/tinymovr_2_1_x.yaml new file mode 100644 index 00000000..600fa8e8 --- /dev/null +++ b/studio/Python/tinymovr/specs/tinymovr_2_1_x.yaml @@ -0,0 +1,622 @@ + +name: tm +remote_attributes: + - name: protocol_hash + dtype: uint32 + getter_name: _avlos_get_proto_hash + summary: The Avlos protocol hash. + - name: uid + dtype: uint32 + getter_name: system_get_uid + summary: The unique device ID, unique to each PAC55xx chip produced. + - name: fw_version + dtype: string + getter_name: system_get_fw_version_string + summary: The firmware version. + - name: hw_revision + dtype: uint32 + getter_name: system_get_hw_revision + summary: The hardware revision. + - name: Vbus + dtype: float + unit: volt + meta: {dynamic: True} + getter_name: system_get_Vbus + summary: The measured bus voltage. + - name: Ibus + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Ibus_est + summary: The estimated bus current. Only estimates current drawn by motor. + - name: power + dtype: float + unit: watt + meta: {dynamic: True} + getter_name: controller_get_power_est + summary: The estimated power. Only estimates power drawn by motor. + - name: temp + dtype: float + unit: degC + meta: {dynamic: True} + getter_name: ADC_get_mcu_temp + summary: The internal temperature of the PAC55xx MCU. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: system_get_calibrated + summary: Whether the system has been calibrated. + - name: errors + flags: [UNDERVOLTAGE] + meta: {dynamic: True} + getter_name: system_get_errors + summary: Any system errors, as a bitmask + - name: warnings + flags: [DRIVER_FAULT, CHARGE_PUMP_FAULT_STAT, CHARGE_PUMP_FAULT, DRV10_DISABLE, DRV32_DISABLE, DRV54_DISABLE] + meta: {dynamic: True} + getter_name: system_get_warnings + summary: Any system warnings, as a bitmask + - name: save_config + summary: Save configuration to non-volatile memory. + caller_name: nvm_save_config + dtype: void + arguments: [] + - name: erase_config + summary: Erase the config stored in non-volatile memory and reset the device. + caller_name: nvm_erase + dtype: void + arguments: [] + meta: {reload_data: True} + - name: reset + summary: Reset the device. + caller_name: system_reset + dtype: void + arguments: [] + meta: {reload_data: True} + - name: enter_dfu + summary: Enter DFU mode. + caller_name: system_enter_dfu + dtype: void + arguments: [] + meta: {reload_data: True} + - name: config_size + summary: Size (in bytes) of the configuration object. + getter_name: system_get_config_size + dtype: uint32 + - name: scheduler + remote_attributes: + - name: load + summary: Processor load in ticks per PWM cycle. + getter_name: scheduler_get_load + meta: {dynamic: True} + dtype: uint32 + - name: warnings + flags: [CONTROL_BLOCK_REENTERED] + meta: {dynamic: True} + getter_name: scheduler_get_warnings + summary: Any scheduler warnings, as a bitmask + - name: controller + remote_attributes: + - name: state + options: [IDLE, CALIBRATE, CL_CONTROL] + meta: {dynamic: True} + getter_name: controller_get_state + setter_name: controller_set_state + summary: The state of the controller. + - name: mode + options: [CURRENT, VELOCITY, POSITION, TRAJECTORY, HOMING] + meta: {dynamic: True} + getter_name: controller_get_mode + setter_name: controller_set_mode + summary: The control mode of the controller. + - name: warnings + meta: {dynamic: True} + flags: [VELOCITY_LIMITED, CURRENT_LIMITED, MODULATION_LIMITED] + getter_name: controller_get_warnings + summary: Any controller warnings, as a bitmask + - name: errors + meta: {dynamic: True} + flags: [CURRENT_LIMIT_EXCEEDED] + getter_name: controller_get_errors + summary: Any controller errors, as a bitmask + - name: position + remote_attributes: + - name: setpoint + dtype: float + unit: tick + meta: {jog_step: 100} + getter_name: controller_get_pos_setpoint_user_frame + setter_name: controller_set_pos_setpoint_user_frame + summary: The position setpoint in the user reference frame. + - name: p_gain + dtype: float + meta: {export: True} + getter_name: controller_get_pos_gain + setter_name: controller_set_pos_gain + summary: The proportional gain of the position controller. + - name: velocity + remote_attributes: + - name: setpoint + dtype: float + unit: tick/sec + meta: {jog_step: 200} + getter_name: controller_get_vel_setpoint_user_frame + setter_name: controller_set_vel_setpoint_user_frame + summary: The velocity setpoint in the user reference frame. + - name: limit + dtype: float + unit: tick/sec + meta: {export: True} + getter_name: controller_get_vel_limit + setter_name: controller_set_vel_limit + summary: The velocity limit. + - name: p_gain + dtype: float + meta: {export: True} + getter_name: controller_get_vel_gain + setter_name: controller_set_vel_gain + summary: The proportional gain of the velocity controller. + - name: i_gain + dtype: float + meta: {export: True} + getter_name: controller_get_vel_integral_gain + setter_name: controller_set_vel_integral_gain + summary: The integral gain of the velocity controller. + - name: deadband + dtype: float + unit: tick + meta: {export: True} + getter_name: controller_get_vel_integral_deadband + setter_name: controller_set_vel_integral_deadband + rst_target: integrator-deadband + summary: The deadband of the velocity integrator. A region around the position setpoint where the velocity integrator is not updated. + - name: increment + dtype: float + meta: {export: True} + getter_name: controller_get_vel_increment + setter_name: controller_set_vel_increment + summary: Max velocity setpoint increment (ramping) rate. Set to 0 to disable. + - name: current + remote_attributes: + - name: Iq_setpoint + dtype: float + unit: ampere + meta: {jog_step: 0.005} + getter_name: controller_get_Iq_setpoint_user_frame + setter_name: controller_set_Iq_setpoint_user_frame + summary: The Iq setpoint in the user reference frame. + - name: Id_setpoint + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Id_setpoint_user_frame + summary: The Id setpoint in the user reference frame. + - name: Iq_limit + dtype: float + unit: ampere + getter_name: controller_get_Iq_limit + setter_name: controller_set_Iq_limit + summary: The Iq limit. + - name: Iq_estimate + dtype: float + unit: ampere + meta: {dynamic: True} + getter_name: controller_get_Iq_estimate_user_frame + summary: The Iq estimate in the user reference frame. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: controller_get_I_bw + setter_name: controller_set_I_bw + summary: The current controller bandwidth. + - name: Iq_p_gain + dtype: float + getter_name: controller_get_Iq_gain + summary: The current controller proportional gain. + - name: max_Ibus_regen + dtype: float + unit: ampere + getter_name: controller_get_max_Ibus_regen + setter_name: controller_set_max_Ibus_regen + summary: The max current allowed to be fed back to the power source before flux braking activates. + - name: max_Ibrake + dtype: float + unit: ampere + meta: {export: True} + getter_name: controller_get_max_Ibrake + setter_name: controller_set_max_Ibrake + summary: The max current allowed to be dumped to the motor windings during flux braking. Set to zero to deactivate flux braking. + - name: voltage + remote_attributes: + - name: Vq_setpoint + dtype: float + unit: volt + meta: {dynamic: True} + getter_name: controller_get_Vq_setpoint_user_frame + summary: The Vq setpoint. + - name: calibrate + summary: Calibrate the device. + caller_name: controller_calibrate + dtype: void + arguments: [] + - name: idle + summary: Set idle mode, disabling the driver. + caller_name: controller_idle + dtype: void + arguments: [] + - name: position_mode + summary: Set position control mode. + caller_name: controller_position_mode + dtype: void + arguments: [] + - name: velocity_mode + summary: Set velocity control mode. + caller_name: controller_velocity_mode + dtype: void + arguments: [] + - name: current_mode + summary: Set current control mode. + caller_name: controller_current_mode + dtype: void + arguments: [] + - name: set_pos_vel_setpoints + summary: Set the position and velocity setpoints in the user reference frame in one go, and retrieve the position estimate + caller_name: controller_set_pos_vel_setpoints_user_frame + dtype: float + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: vel_setpoint + dtype: float + unit: tick + - name: comms + remote_attributes: + - name: can + remote_attributes: + - name: rate + dtype: uint32 + meta: {export: True} + getter_name: CAN_get_kbit_rate + setter_name: CAN_set_kbit_rate + rst_target: api-can-rate + summary: The baud rate of the CAN interface. + - name: id + dtype: uint32 + meta: {export: True, reload_data: True} + getter_name: CAN_get_ID + setter_name: CAN_set_ID + summary: The ID of the CAN interface. + - name: heartbeat + dtype: bool + getter_name: CAN_get_send_heartbeat + setter_name: CAN_set_send_heartbeat + summary: Toggle sending of heartbeat messages. + - name: motor + remote_attributes: + - name: R + dtype: float + unit: ohm + meta: {dynamic: True, export: True} + getter_name: motor_get_phase_resistance + setter_name: motor_set_phase_resistance + summary: The motor Resistance value. + - name: L + dtype: float + unit: henry + meta: {dynamic: True, export: True} + getter_name: motor_get_phase_inductance + setter_name: motor_set_phase_inductance + summary: The motor Inductance value. + - name: pole_pairs + dtype: uint8 + meta: {dynamic: True, export: True} + getter_name: motor_get_pole_pairs + setter_name: motor_set_pole_pairs + summary: The motor pole pair count. + - name: type + options: [HIGH_CURRENT, GIMBAL] + meta: {export: True} + getter_name: motor_get_is_gimbal + setter_name: motor_set_is_gimbal + summary: The type of the motor. Either high current or gimbal. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: motor_get_calibrated + summary: Whether the motor has been calibrated. + - name: I_cal + dtype: float + unit: ampere + meta: {export: True} + getter_name: motor_get_I_cal + setter_name: motor_set_I_cal + summary: The calibration current. + - name: errors + flags: [PHASE_RESISTANCE_OUT_OF_RANGE, PHASE_INDUCTANCE_OUT_OF_RANGE, POLE_PAIRS_CALCULATION_DID_NOT_CONVERGE, POLE_PAIRS_OUT_OF_RANGE] + meta: {dynamic: True} + getter_name: motor_get_errors + summary: Any motor/calibration errors, as a bitmask + - name: sensors + remote_attributes: + - name: user_frame + remote_attributes: + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: user_frame_get_pos_estimate + summary: The filtered position estimate in the user reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: user_frame_get_vel_estimate + summary: The filtered velocity estimate in the user reference frame. + - name: offset + dtype: float + unit: ticks + getter_name: frame_user_to_position_sensor_get_offset + setter_name: frame_user_to_position_sensor_set_offset + summary: The user defined offset. + - name: multiplier + dtype: float + getter_name: frame_user_to_position_sensor_get_multiplier + setter_name: frame_user_to_position_sensor_set_multiplier + summary: The user defined multipler. + - name: setup + remote_attributes: + - name: onboard + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_onboard_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_onboard_get_errors + summary: Any sensor errors, as a bitmask + - name: external_spi + remote_attributes: + - name: type + options: [MA7XX, AS5047, AMT22] + meta: {export: True} + getter_name: sensor_external_spi_get_type_avlos + setter_name: sensor_external_spi_set_type_avlos + summary: The type of the external sensor. + - name: rate + options: [1_5Mbps, 3Mbps, 6Mbps, 8Mbps, 12Mbps] + meta: {export: True, dynamic: True} + getter_name: sensor_external_spi_get_rate_avlos + setter_name: sensor_external_spi_set_rate_avlos + summary: The rate of the external sensor. + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_external_spi_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_external_spi_get_errors + summary: Any sensor errors, as a bitmask + - name: hall + remote_attributes: + - name: calibrated + dtype: bool + meta: {dynamic: True} + getter_name: sensor_hall_get_is_calibrated + summary: Whether the sensor has been calibrated. + - name: errors + flags: [CALIBRATION_FAILED, READING_UNSTABLE] + meta: {dynamic: True} + getter_name: sensor_hall_get_errors + summary: Any sensor errors, as a bitmask + - name: select + remote_attributes: + - name: position_sensor + remote_attributes: + - name: connection + options: [ONBOARD, EXTERNAL_SPI, HALL] + meta: {export: True} + getter_name: position_sensor_get_connection + setter_name: position_sensor_set_connection + summary: The position sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: position_observer_get_bandwidth + setter_name: position_observer_set_bandwidth + summary: The position sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_position_get_raw_angle + summary: The raw position sensor angle. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: position_observer_get_pos_estimate + summary: The filtered position estimate in the position sensor reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: position_observer_get_vel_estimate + summary: The filtered velocity estimate in the position sensor reference frame. + - name: commutation_sensor + remote_attributes: + - name: connection + options: [ONBOARD, EXTERNAL_SPI, HALL] + meta: {export: True} + getter_name: commutation_sensor_get_connection + setter_name: commutation_sensor_set_connection + summary: The commutation sensor connection. Either ONBOARD, EXTERNAL_SPI or HALL. + - name: bandwidth + dtype: float + unit: Hz + meta: {export: True} + getter_name: commutation_observer_get_bandwidth + setter_name: commutation_observer_set_bandwidth + summary: The commutation sensor observer bandwidth. + - name: raw_angle + dtype: int32 + meta: {dynamic: True} + getter_name: sensor_commutation_get_raw_angle + summary: The raw commutation sensor angle. + - name: position_estimate + dtype: float + unit: ticks + meta: {dynamic: True} + getter_name: commutation_observer_get_pos_estimate + summary: The filtered position estimate in the commutation sensor reference frame. + - name: velocity_estimate + dtype: float + unit: ticks/second + meta: {dynamic: True} + getter_name: commutation_observer_get_vel_estimate + summary: The filtered velocity estimate in the commutation sensor reference frame. + - name: traj_planner + remote_attributes: + - name: max_accel + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: planner_get_max_accel + setter_name: planner_set_max_accel + summary: The max allowed acceleration of the generated trajectory. + - name: max_decel + dtype: float + unit: ticks/second/second + meta: {export: True} + getter_name: planner_get_max_decel + setter_name: planner_set_max_decel + summary: The max allowed deceleration of the generated trajectory. + - name: max_vel + dtype: float + unit: ticks/second + meta: {export: True} + getter_name: planner_get_max_vel + setter_name: planner_set_max_vel + summary: The max allowed cruise velocity of the generated trajectory. + - name: t_accel + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_accel + setter_name: planner_set_deltat_accel + summary: In time mode, the acceleration time of the generated trajectory. + - name: t_decel + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_decel + setter_name: planner_set_deltat_decel + summary: In time mode, the deceleration time of the generated trajectory. + - name: t_total + dtype: float + unit: second + meta: {export: True} + getter_name: planner_get_deltat_total + setter_name: planner_set_deltat_total + summary: In time mode, the total time of the generated trajectory. + - name: move_to + summary: Move to target position in the user reference frame respecting velocity and acceleration limits. + caller_name: planner_move_to_vlimit + dtype: void + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: move_to_tlimit + summary: Move to target position in the user reference frame respecting time limits for each sector. + caller_name: planner_move_to_tlimit + dtype: void + arguments: + - name: pos_setpoint + dtype: float + unit: tick + - name: errors + flags: [INVALID_INPUT, VCRUISE_OVER_LIMIT] + getter_name: planner_get_errors + summary: Any errors in the trajectory planner, as a bitmask + - name: homing + remote_attributes: + - name: velocity + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: homing_planner_get_homing_velocity + setter_name: homing_planner_set_homing_velocity + summary: The velocity at which the motor performs homing. + - name: max_homing_t + dtype: float + unit: s + meta: {export: True} + getter_name: homing_planner_get_max_homing_t + setter_name: homing_planner_set_max_homing_t + summary: The maximum time the motor is allowed to travel before homing times out and aborts. + - name: retract_dist + dtype: float + unit: ticks + meta: {export: True} + getter_name: homing_planner_get_retract_distance + setter_name: homing_planner_set_retract_distance + summary: The retraction distance the motor travels after the endstop has been found. + - name: warnings + meta: {dynamic: True} + flags: [HOMING_TIMEOUT] + getter_name: homing_planner_get_warnings + summary: Any homing warnings, as a bitmask + - name: stall_detect + remote_attributes: + - name: velocity + dtype: float + unit: ticks/s + meta: {export: True} + getter_name: homing_planner_get_max_stall_vel + setter_name: homing_planner_set_max_stall_vel + summary: The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. + - name: delta_pos + dtype: float + unit: ticks + meta: {export: True} + getter_name: homing_planner_get_max_stall_delta_pos + setter_name: homing_planner_set_max_stall_delta_pos + summary: The velocity below which (and together with `stall_detect.delta_pos`) stall detection mode is triggered. + - name: t + dtype: float + unit: s + meta: {export: True} + getter_name: homing_planner_get_max_stall_t + setter_name: homing_planner_set_max_stall_t + summary: The time to remain in stall detection mode before the motor is considered stalled. + - name: home + summary: Perform the homing operation. + caller_name: homing_planner_home + dtype: void + arguments: [] + - name: watchdog + remote_attributes: + - name: enabled + dtype: bool + getter_name: Watchdog_get_enabled + setter_name: Watchdog_set_enabled + summary: Whether the watchdog is enabled or not. + - name: triggered + dtype: bool + meta: {dynamic: True} + getter_name: Watchdog_triggered + summary: Whether the watchdog has been triggered or not. + - name: timeout + dtype: float + unit: s + meta: {export: True} + getter_name: Watchdog_get_timeout_seconds + setter_name: Watchdog_set_timeout_seconds + summary: The watchdog timeout period. From 22b796bdc4063982fe311672437a766160209452 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 30 May 2024 02:08:41 +0300 Subject: [PATCH 185/219] fix persistence of shared ram --- firmware/pac55xx.ld | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/firmware/pac55xx.ld b/firmware/pac55xx.ld index 3a8cf26f..85b7edd0 100644 --- a/firmware/pac55xx.ld +++ b/firmware/pac55xx.ld @@ -4,7 +4,8 @@ MEMORY { rom0 (rx) : ORIGIN = 0x00000000, LENGTH = 0x00001000 rom (rx) : ORIGIN = 0x00001000, LENGTH = 0x0001F000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000 + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00007F00 + SHARED (rwx) : ORIGIN = 0x20007F00, LENGTH = 0x00000100 } _eram = 0x20000000 + 0x00008000; @@ -139,6 +140,12 @@ SECTIONS __StackTop = ORIGIN(ram ) + LENGTH(ram ); __StackLimit = __StackTop - SIZEOF(.co_stack); PROVIDE(__stack = __StackTop); + + .shared (NOLOAD): + { + /* place all symbols in input sections that start with .shared */ + KEEP(*(*.shared*)) + } > SHARED /* Check if data + heap + stack exceeds ram limit */ ASSERT(__StackLimit >= __HeapLimit, "region ram overflowed with stack") From 98e31ce2f94d9cc6a414ee681f4e2795c6d9c7c1 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 30 May 2024 02:09:21 +0300 Subject: [PATCH 186/219] also set shared ram --- firmware/src/common.h | 1 + firmware/src/system/system.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/firmware/src/common.h b/firmware/src/common.h index 157451fd..87ec040b 100644 --- a/firmware/src/common.h +++ b/firmware/src/common.h @@ -74,6 +74,7 @@ #endif #define BTL_TRIGGER_PATTERN 0x39 +#define BTL_TRIGGER_PATTERN_RAM 0x5048434D #define PI (3.141592f) #define TWOPI (6.283185f) diff --git a/firmware/src/system/system.c b/firmware/src/system/system.c index 4d28c22b..c212aee2 100644 --- a/firmware/src/system/system.c +++ b/firmware/src/system/system.c @@ -25,7 +25,7 @@ #include #include -extern char _eram; +__attribute__((section(".shared"))) volatile uint32_t shared_data; static SystemState state = {0}; @@ -83,7 +83,9 @@ void system_init(void) // Vp = 10V , 440mA-540mA, Charge Pump Enable pac5xxx_tile_register_write(ADDR_SYSCONF, 0x01); - // Ensure ADC GP0 register is zero, to bypass DFU mode on next boot + // Ensure shared data is 0xFF and ADC GP0 register + // is zero, to bypass DFU mode on next boot + shared_data = 0xFF; pac5xxx_tile_register_write(ADDR_GP0, 0); // Configure reporting of mcu cycles @@ -115,13 +117,15 @@ TM_RAMFUNC void system_update(void) void system_reset(void) { - // GP0 register is already zeroed at `system_init()` + // shared RAM and GP0 register is already zeroed at `system_init()` NVIC_SystemReset(); } void system_enter_dfu(void) { + shared_data = BTL_TRIGGER_PATTERN_RAM; pac5xxx_tile_register_write(ADDR_GP0, BTL_TRIGGER_PATTERN); + NVIC_SystemReset(); } From d249496a6a1ba136c4e21339e10b5704ed0ac0ff Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 1 Jun 2024 14:20:48 +0300 Subject: [PATCH 187/219] update bootloader --- firmware/bootloader/bootloader-M51.bin | Bin 3724 -> 3716 bytes firmware/bootloader/bootloader-R32.bin | Bin 3756 -> 3740 bytes firmware/bootloader/bootloader-R33.bin | Bin 3756 -> 3740 bytes firmware/bootloader/bootloader-R50.bin | Bin 3708 -> 3700 bytes firmware/bootloader/bootloader-R51.bin | Bin 3708 -> 3700 bytes firmware/bootloader/bootloader-R52.bin | Bin 3724 -> 3716 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/firmware/bootloader/bootloader-M51.bin b/firmware/bootloader/bootloader-M51.bin index 0945a943619972d42fa955cdc9502df39bcb43c8..05b2d3884e0d69deff880e509e252e740a41ed79 100755 GIT binary patch delta 498 zcmeB?ZIP`{;9yV?Qbij)w#t&pGvN13)0%;1c6=|B0E!?wlRFL`|#A^7r3hA=}n4L61lCx5WGF=%|c$m-4JC6%DzX6VKs`r-Z$1-F8|4Eq@# zu`s|4p3K6g#h5l(pKU2;|4&0VZ3Tu8)syeC)iZWZj%B|sxqDyG4;F4`Ab#~6NJ_tX y4%E)TprEihkfWXvXbc0xxxnqCnxUK#EiJ6gd~@#$ z3kQY|Pj~$Pe*XWL=M0J<^&-C*6)g5L)H5jfI(r1S>;Lx)|2a1P|9N${< ze)F7RKQNjUG&cKk)H6=Lz-cN2bWr>ch7X*~5IU2ILBUYZP|pactY)($S2ha(rE7m! diff --git a/firmware/bootloader/bootloader-R32.bin b/firmware/bootloader/bootloader-R32.bin index 8409f60e0454ae2721e1b3ebc62e8a64568da6e1..6a57b0a5ac910ae3de9ccd6ab36ee9a6fb171e63 100755 GIT binary patch delta 564 zcmZ1@J4d!YfrCLomxF;p9*7lzSQ&^_fmj`g(SatCm^P4Y%f`SU3#2K)R-|c0ws7Lk zjf`HCvl+`7r6xaSyvg``@?NH;j7F1_nN=A-PVQuuWjr!@IkO?B1{VVZ$5w_9TPHtc z)@PhPS&&6s{q-*vWrYOo0%iq^y&PLF{9qJds9^Z;;uo_5$6kxAEN%=Hylz1LWPcWM z@e@dD!EzZOxt*J9S-2VN-GBXfZn2fyo7+n=W1Vn|ohaH~X7iFt&~P(!V-Wpt|A&HG!Cr>_ z43AhCU!-vYrKiTRTJ11AN-O`tgF^fdh7Xxc3<`#NMtTN7>6XooT-huD7h;#O delta 563 zcmbOuyGFJ?frCN8kb{9i8HiPZSRIHpfmj=e(Sa_Km_Cs0$i~2+2&5^%R-|c0ws7Lk zjf{Sivl+`7l_o!Cyvg`?@?NH;jE0kwnN=A-Pwr%vWjr={IkO?B1s4MY$5w_9+b2I{ z)@PhKS&&6s{rxW%WrYOo0%iq^y&PLF{9qJds9^Z;<`=U9$6kxAEN%=HylxC1K1}v! z5f?v$q!uif0g~Ihxt4{SvEKjJkLMO!)f5;$xc#!!5WK+cEtSFTJ2XdA-^s~`Wr z&--!J^<*!chZ(f|Hm8iFssWC$~K(*Rn3^as$98lNODT7nJx@KeLh z5GZ`>hk{$dUWP|343lNpv=~z+yR$9j?Eh)#rVX^Qdh%DcddBw2rR=vE_fHPw5NGt* soXJto$O4Mz$uBrfWq^)||H1HqlNmy1G6BVn|ohaH~X7iFt&~P(!V-Wpt|A&HG!Cr>_ z43AhCU!-vYrKiTRTJ11AN-O`tgF^fdh7Xxc3<`#NMtTN7>6XooT-huD7h;#O delta 563 zcmbOuyGFJ?frCN8kb{9i8HiPZSRIHpfmj=e(Sa_Km_Cs0$i~2+2&5^%R-|c0ws7Lk zjf{Sivl+`7l_o!Cyvg`?@?NH;jE0kwnN=A-Pwr%vWjr={IkO?B1s4MY$5w_9+b2I{ z)@PhKS&&6s{rxW%WrYOo0%iq^y&PLF{9qJds9^Z;<`=U9$6kxAEN%=HylxC1K1}v! z5f?v$q!uif0g~Ihxt4{SvEKjJkLMO!)f5;$xc#!!5WK+cEtSFTJ2XdA-^s~`Wr z&--!J^<*!chZ(f|Hm8iFssWC$~K(*Rn3^as$98lNODT7nJx@KeLh z5GZ`>hk{$dUWP|343lNpv=~z+yR$9j?Eh)#rVX^Qdh%DcddBw2rR=vE_fHPw5NGt* soXJto$O4Mz$uBrfWq^)||H1HqlNmy1G6Bu=IFJ`aWu3cvn; zzxJPFu#d9x>>KQvH`?BAb+`TX82Mf0|5Wjj3 zB&FXx2Wn?vP!QPc$WhM-G=_m;@&Qg$5oQL3_#X@(GMN|@4E2ok41nSdn+3VDSpYWt Bop1mE delta 505 zcmew&^GBvWfrCMTm4kudJ39lzPaysc#D9VKKMMxZ(vUd@2?-vEw-vDFnnu=IFJ`aWu3cvn; zzxJPFu#d9x>>KQvH`?BAb+`TX82Mf0|5Wjj3 zB&FXx2Wn?vP!QPc$WhM-G=_m;@&Qg$5oQL3_#X@(GMN|@4E2ok41nSdn+3VDSpYWt Bop1mE delta 505 zcmew&^GBvWfrCMTm4kudJ39lzPaysc#D9VKKMMxZ(vUd@2?-vEw-vDFnnQbij)w#t&pGvN13)0%;1c6=|B0E!?wlRFL`|#A^7r3hA=}n4L61lCx5WGF=%|c$m-4JC6%DzX6VKs`r-Z$1-F8|4Eq@# zu`s|4p3K6g#h5l(pKU2;|4&0VZ3Tu8)syeC)iZWZj%B|sxqDyG4;F4`Ab#~6NJ_tX y4%E)TprEihkfWXvXbc0xxxnqCnxUK#EiJ6gd~@#$ z3kQY|Pj~$Pe*XWL=M0J<^&-C*6)g5L)H5jfI(r1S>;Lx)|2a1P|9N${< ze)F7RKQNjUG&cKk)H6=Lz-cN2bWr>ch7X*~5IU2ILBUYZP|pactY)($S2ha(rE7m! From 9ce88c2134d66f422059f0c9db3faa30b075a496 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 1 Jun 2024 14:20:53 +0300 Subject: [PATCH 188/219] reduce timeouts --- studio/Python/tests/test_dfu.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/studio/Python/tests/test_dfu.py b/studio/Python/tests/test_dfu.py index d5aa6330..d5543832 100644 --- a/studio/Python/tests/test_dfu.py +++ b/studio/Python/tests/test_dfu.py @@ -48,17 +48,17 @@ def test_dfu(self, node_id=1): bl = create_device(node_id=node_id) bl_hash = bl.protocol_hash bl.reset() - time.sleep(0.2) + time.sleep(0.1) tm = create_device(node_id=node_id) tm_hash2 = tm.protocol_hash tm.reset() - time.sleep(0.2) + time.sleep(0.1) tm_hash3 = tm.protocol_hash self.assertNotEqual(tm_hash, 0) self.assertEqual(tm_hash, tm_hash2) self.assertEqual(tm_hash, tm_hash3) self.assertNotEqual(tm_hash, bl_hash) - time.sleep(0.2) + time.sleep(0.1) @classmethod def tearDownClass(cls): From 650295c59ea11ae2ec124c12eee153d01f974508 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Sat, 1 Jun 2024 17:36:02 +0300 Subject: [PATCH 189/219] add power cycle dfu test --- studio/Python/tests/test_dfu.py | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/studio/Python/tests/test_dfu.py b/studio/Python/tests/test_dfu.py index d5543832..5a1f75a7 100644 --- a/studio/Python/tests/test_dfu.py +++ b/studio/Python/tests/test_dfu.py @@ -18,6 +18,13 @@ import time import can +try: + from rd6006 import RD6006 + rd = RD6006('/dev/tty.usbserial-2110') + psu_connected = True +except: + psu_connected = False + from tinymovr import init_router, destroy_router from tinymovr.config import ( get_bus_config, @@ -60,6 +67,36 @@ def test_dfu(self, node_id=1): self.assertNotEqual(tm_hash, bl_hash) time.sleep(0.1) + @pytest.mark.dfu + def test_dfu_power_off(self, node_id=1): + if psu_connected == False: + raise unittest.SkipTest("Skipping test because no connected RD series PSU found") + time.sleep(0.5) + for i in range(3): + print("Testing DFU iteration ", i+1) + tm = create_device(node_id=node_id) + tm_hash = tm.protocol_hash + tm.enter_dfu() + time.sleep(0.5) + bl = create_device(node_id=node_id) + bl_hash = bl.protocol_hash + rd.enable=False + time.sleep(2.0) + rd.enable=True + time.sleep(0.5) + tm = create_device(node_id=node_id) + tm_hash2 = tm.protocol_hash + rd.enable=False + time.sleep(2.0) + rd.enable=True + time.sleep(0.5) + tm_hash3 = tm.protocol_hash + self.assertNotEqual(tm_hash, 0) + self.assertEqual(tm_hash, tm_hash2) + self.assertEqual(tm_hash, tm_hash3) + self.assertNotEqual(tm_hash, bl_hash) + time.sleep(0.1) + @classmethod def tearDownClass(cls): destroy_router() From 3446573d3fc602357e982f436ce8b0e3feab8bf8 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 5 Jun 2024 17:52:57 +0300 Subject: [PATCH 190/219] initialize can and adc after loading config --- firmware/src/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/src/main.c b/firmware/src/main.c index ff968412..46627e91 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -34,14 +34,14 @@ int main(void) { __disable_irq(); system_init(); - UART_Init(); - ADC_init(); - CAN_init(); + UART_Init(); // Keep UART init before config load for now if (!nvm_load_config()) { sensors_init_with_defaults(); observers_init_with_defaults(); } + ADC_init(); + CAN_init(); timers_init(); Watchdog_init(); __enable_irq(); From 0bee46c2fbdfd87651ce9db86f998801798d3fb9 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 5 Jun 2024 17:53:05 +0300 Subject: [PATCH 191/219] properly handle response error --- studio/Python/tinymovr/gui/worker.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/studio/Python/tinymovr/gui/worker.py b/studio/Python/tinymovr/gui/worker.py index 30cd8482..eb9066c2 100644 --- a/studio/Python/tinymovr/gui/worker.py +++ b/studio/Python/tinymovr/gui/worker.py @@ -20,6 +20,7 @@ import can from PySide6 import QtCore from PySide6.QtCore import QObject +from tinymovr.channel import ResponseError from tinymovr.gui import TimedGetter, get_dynamic_attrs from tinymovr.bus_router import init_router, destroy_router from tinymovr.device_discovery import DeviceDiscovery @@ -140,8 +141,11 @@ def _update(self): def _device_appeared(self, device, node_id): self.mutx.lock() - display_name = "{}{}".format(device.name, node_id) - self.logger.info("Found {} (uid {})".format(display_name, device.uid)) + try: + display_name = "{}{}".format(device.name, node_id) + self.logger.info("Found {} (uid {})".format(display_name, device.uid)) + except ResponseError as e: + self.handleErrorSignal.emit(e) self.devices_by_name[display_name] = device self.names_by_id[node_id] = display_name device.name = display_name From 78b0684fce5dd13bc1d95e1e444da867436d3a11 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Wed, 5 Jun 2024 17:53:13 +0300 Subject: [PATCH 192/219] remove unneeded return --- studio/Python/tinymovr/bus_manager.py | 1 - 1 file changed, 1 deletion(-) diff --git a/studio/Python/tinymovr/bus_manager.py b/studio/Python/tinymovr/bus_manager.py index f2dfa9fb..65b37ea1 100644 --- a/studio/Python/tinymovr/bus_manager.py +++ b/studio/Python/tinymovr/bus_manager.py @@ -49,7 +49,6 @@ def recv(self, timeout): self.attempt_reconnect() except AttributeError: self.attempt_reconnect() - return None def shutdown(self): try: From 3b3c8c153d1a409a98f6225a078d58e5841634a6 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 6 Jun 2024 17:46:05 +0300 Subject: [PATCH 193/219] add motor resistance and inductance limitations table --- docs/hardware/gimbal.rst | 5 +++++ docs/hardware/guide.rst | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/docs/hardware/gimbal.rst b/docs/hardware/gimbal.rst index 012b1a7d..2e034b92 100644 --- a/docs/hardware/gimbal.rst +++ b/docs/hardware/gimbal.rst @@ -1,3 +1,5 @@ +.. _gimbal-motors: + ************* Gimbal Motors ************* @@ -28,6 +30,9 @@ To achieve closed-loop current control, motor controllers such as Tinymovr use c The gimbal mode of Tinymovr disables closed-loop current control. The commanded currents are converted to voltages using basic resistance and inductance formulas. + +.. _enabling-gimbal-mode: + Enabling Gimbal Mode -------------------- diff --git a/docs/hardware/guide.rst b/docs/hardware/guide.rst index 90b0c0d5..b1296991 100644 --- a/docs/hardware/guide.rst +++ b/docs/hardware/guide.rst @@ -36,6 +36,26 @@ Most gimbal motors can be used with Tinymovr M5. Gimbal motors are essentially o * Motors with trapezoidal back-EMF can also be controlled, but control will be sub-optimal. The trapezoidal back-EMF will appear as residual in the dq frame, as a result it will be much harder for the current controller to regulate phase currents. The tangible result is that the motor may exhibit increased noise and vibration while running. +Limitations +*********** + +Tinymovr controllers are designed with certain limitations in terms of motor internal resistance and inductance, to ensure optimal closed loop current control performance. + +.. list-table:: Motor Limits + :header-rows: 1 + + * - Controller Version + - Phase Resistance (ohms) + - Phase Inductance (henries) + * - Tinymovr R5.x and R3.x + - 0.01 to 1.0 + - 5e-6 to 1e-3 + * - Tinymovr M5.x + - 0.5 to 20.0 + - 1e-5 to 1e-2 + +Note that motors with parameters outside this range will result in calibration failing. Ensure that the motors you select adhere to these parameters for the best operational experience. You can still use motors outside this range with open loop current control, through :ref:`enabling-gimbal-mode`. + Mechanical Setup ################ From ef72c6b4673d54a181f41cae48db803a7ce69c72 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 6 Jun 2024 23:26:55 +0300 Subject: [PATCH 194/219] fix erroneous return during transform derivation --- firmware/src/sensor/sensors.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/firmware/src/sensor/sensors.c b/firmware/src/sensor/sensors.c index 1931c6bb..6cdbda28 100644 --- a/firmware/src/sensor/sensors.c +++ b/firmware/src/sensor/sensors.c @@ -308,7 +308,10 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) // Find pole pairs if not Hall; otherwise have to be defined manually if (sensor_get_type(commutation_sensor_p) != SENSOR_TYPE_HALL) { - return motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end); + if (!motor_find_pole_pairs(SENSOR_COMMON_RES_TICKS, commutation_frame_start, commutation_frame_end, motor_frame_end)) + { + return false; + } } const float motor_frame_end_ticks = SENSOR_COMMON_RES_TICKS * (motor_frame_end / (TWOPI * motor_get_pole_pairs())); @@ -331,11 +334,11 @@ bool sensors_calibrate_pole_pair_count_and_transforms(void) frame_set_commutation_sensor_to_motor(t); } - if (commutation_sensor_p == position_sensor_p) + if (commutation_sensor_p == position_sensor_p) // same sensor { frame_set_position_sensor_to_motor(*(frame_commutation_sensor_to_motor_p())); } - else if (sensor_get_type(position_sensor_p) != SENSOR_TYPE_HALL) + else if (sensor_get_type(position_sensor_p) != SENSOR_TYPE_HALL) // different sensors, not Hall { frame_set_position_sensor_to_motor(derive_transform_2p(position_frame_start, 0, position_frame_end, motor_frame_end_ticks)); } From 307717a0a12ff2cb5422b214336aba726344673c Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 6 Jun 2024 23:31:50 +0300 Subject: [PATCH 195/219] update expired discord link, once again :( --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78c873b6..2a8d2b3f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![FW Check Build](https://github.com/yconst/tinymovr/workflows/Tinymovr%20Firmware%20Check%2FBuild/badge.svg) ![Studio Lint Test](https://github.com/yconst/tinymovr/workflows/Tinymovr%20Studio%20Lint%2FTest/badge.svg) ![Docs Build](https://github.com/yconst/tinymovr/workflows/Tinymovr%20Docs%20Build/badge.svg) -[![Discord](https://img.shields.io/discord/742400176664084535)](https://discord.gg/CzcCaXbU) +[![Discord](https://img.shields.io/discord/742400176664084535)](https://discord.gg/UnmfuVzKuQ) [Tinymovr is an affordable motor controller](https://tinymovr.com) with integrated encoder and CAN bus for precise control of 3-phase brushless motors (PMSMs). From 289daa733cb012fe6f00101632700c99a26ee27b Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Fri, 14 Jun 2024 17:32:35 +0300 Subject: [PATCH 196/219] use wildcards --- studio/Python/Manifest.in | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/studio/Python/Manifest.in b/studio/Python/Manifest.in index 5740a2e6..e6349fea 100644 --- a/studio/Python/Manifest.in +++ b/studio/Python/Manifest.in @@ -1,17 +1,3 @@ include README.md -include tinymovr/resources/icons/app_icon.png -include tinymovr/resources/icons/call.png -include tinymovr/resources/icons/call_dark.png -include tinymovr/resources/icons/call@2x.png -include tinymovr/resources/icons/call_dark@2x.png -include tinymovr/resources/icons/empty.png -include tinymovr/resources/icons/empty@2x.png -include tinymovr/resources/icons/empty_dark.png -include tinymovr/resources/icons/empty_dark@2x.png -include tinymovr/specs/tinymovr_1_3_x.yaml -include tinymovr/specs/tinymovr_1_4_x.yaml -include tinymovr/specs/tinymovr_1_5_x.yaml -include tinymovr/specs/tinymovr_1_6_x.yaml -include tinymovr/specs/tinymovr_2_0_x.yaml -include tinymovr/specs/dfu_1_0_x.yaml -include tinymovr/specs/dfu_1_1_x.yaml +recursive-include tinymovr/resources/icons *.png +recursive-include tinymovr/specs *.yaml From 4a68e5d25c4e479a6af7b33edfb4f583f7323759 Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Mon, 24 Jun 2024 16:20:11 +0300 Subject: [PATCH 197/219] add force flag for forcing device flashing --- studio/Python/tinymovr/dfu.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/studio/Python/tinymovr/dfu.py b/studio/Python/tinymovr/dfu.py index 11ca8fd6..4027e928 100644 --- a/studio/Python/tinymovr/dfu.py +++ b/studio/Python/tinymovr/dfu.py @@ -1,12 +1,13 @@ """ Usage: - dfu.py --node_id=ID [--bin=PATH | --recovery] [--no-reset] [--bus=] [--chan=] [--bitrate=] + dfu.py --node_id=ID [--bin=PATH | --recovery] [--no-reset] [--force] [--bus=] [--chan=] [--bitrate=] Options: --node_id=ID The CAN Node ID of the device in DFU mode. --bin=PATH The path of the .bin file to upload. --recovery Perform recovery procedure for inaccessible DFU bootloader. --no-reset Do not perform a reset following successful flashing. + --force Force flashing even if device memory matches the .bin file. --bus= One or more interfaces to use, first available is used [default: canine,slcan_disco]. --chan= The bus device "channel". --bitrate= CAN bitrate [default: 1000000]. @@ -181,7 +182,7 @@ def spawn(): # If an existing .bin file is specified, upload it to the device elif bin_path: - if compare_bin_w_device(device, bin_path): + if (not arguments["--force"]) and compare_bin_w_device(device, bin_path): print("\nDevice memory matches the .bin file. Skipping flashing.") else: upload_bin(device, bin_path) From fe1cb5a4dd3d659d24f416b9cfacf4b155eb31fc Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 27 Jun 2024 14:59:24 +0300 Subject: [PATCH 198/219] add test case --- studio/Python/tests/test_board_config.py | 85 +++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/studio/Python/tests/test_board_config.py b/studio/Python/tests/test_board_config.py index b5be5e1f..8b5c0c0a 100644 --- a/studio/Python/tests/test_board_config.py +++ b/studio/Python/tests/test_board_config.py @@ -27,7 +27,7 @@ A = ureg.ampere tick = ureg.ticks s = ureg.second -tsleep = 0.20 +tsleep = 0.30 class TestBoardConfig(TMTestCase): @@ -162,6 +162,89 @@ def test_d_position_control_w_loaded_config(self): self.tm.erase_config() time.sleep(0.2) + def test_e_save_settings_and_reset(self): + """ + Test case for issue reported by @Phosfor on Discord: + 1. Configure current limits etc. + 2. Calibrate the controller + 3. Make sure everything is working (i.e. enter current/velocity mode) + 4. Save the configuration + 5. Reset the tinymovr; all settings are still correct and the tinymovr reports that it is calibrated + 6. Try to enter current/velocity mode again; the tinymovr says it is in the correct mode and in the control state, but the motor is not turning + """ + # Step 1: Configure current limits etc. + self.check_state(0) + self.tm.erase_config() + time.sleep(0.2) + + self.tm.controller.current.Iq_limit = 15 * A + self.tm.controller.velocity.limit = 200000 * tick / s + self.tm.controller.velocity.i_gain = 1e-5 + self.tm.controller.velocity.p_gain = 1.6e-4 + self.tm.controller.velocity.deadband = 50 * tick + self.tm.traj_planner.max_vel = 110000 * tick / s + self.tm.traj_planner.max_accel = 500000 * tick / s + self.tm.traj_planner.max_decel = 500000 * tick / (s * s) + + # Step 2: Calibrate the controller + self.try_calibrate() + self.assertEqual(self.tm.motor.calibrated, True) + + # Step 3: Make sure everything is working (i.e. enter current/velocity mode) + self.tm.controller.velocity_mode() + self.check_state(2) + + for _ in range(5): + new_velocity = random.uniform(-50000, 50000) + self.tm.controller.velocity.setpoint = new_velocity * tick / s + time.sleep(tsleep) + self.assertAlmostEqual( + self.tm.sensors.user_frame.velocity_estimate, + self.tm.controller.velocity.setpoint, + delta=5000 * tick / s, + ) + + self.tm.controller.idle() + time.sleep(0.1) + + # Step 4: Save the configuration + self.tm.save_config() + time.sleep(0.2) + + # Step 5: Reset the tinymovr; all settings are still correct and the tinymovr reports that it is calibrated + self.reset_and_wait() + self.assertEqual(self.tm.motor.calibrated, True) + self.assertAlmostEqual(self.tm.controller.current.Iq_limit, 15 * A) + self.assertAlmostEqual(self.tm.controller.velocity.limit, 200000 * tick / s) + self.assertAlmostEqual(self.tm.controller.velocity.i_gain, 1e-5) + self.assertAlmostEqual(self.tm.controller.velocity.p_gain, 1.6e-4) + self.assertAlmostEqual(self.tm.controller.velocity.deadband, 50 * tick) + self.assertAlmostEqual(self.tm.traj_planner.max_vel, 110000 * tick / s) + self.assertAlmostEqual(self.tm.traj_planner.max_accel, 500000 * tick / s) + self.assertAlmostEqual(self.tm.traj_planner.max_decel, 500000 * tick / (s * s)) + + # Step 6: Try to enter current/velocity mode again; the tinymovr says it is in the correct mode and in the control state, but the motor is not turning (and I don't hear any switching noise that I usually hear when the tinymovr is in the active state) + self.tm.controller.velocity_mode() + self.check_state(2) + + for _ in range(5): + new_velocity = random.uniform(-50000, 50000) + self.tm.controller.velocity.setpoint = new_velocity * tick / s + time.sleep(tsleep) + # Here we expect the motor not to turn, so we check for lack of movement + self.assertAlmostEqual( + self.tm.sensors.user_frame.velocity_estimate, + self.tm.controller.velocity.setpoint, + delta=5000 * tick / s, + ) + + self.tm.controller.idle() + time.sleep(0.1) + + self.tm.erase_config() + time.sleep(0.2) + + if __name__ == "__main__": unittest.main() From 24acfe35ccc5d42b3441b77fe00891001307725e Mon Sep 17 00:00:00 2001 From: Yannis Chatzikonstantinou Date: Thu, 27 Jun 2024 20:27:06 +0300 Subject: [PATCH 199/219] add figure to sensors docs --- docs/sensors/MA7XX_M52.jpg | Bin 0 -> 633823 bytes docs/sensors/sensors.rst | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 docs/sensors/MA7XX_M52.jpg diff --git a/docs/sensors/MA7XX_M52.jpg b/docs/sensors/MA7XX_M52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c41fb479f7ffc4de1fb79f7068e4621f58ced76 GIT binary patch literal 633823 zcmd?Rc|6qZ|35lXDa5U;S??tKRtRCzLWs$}g$fDTmk_21Wi4w-B+DdQ$r6d|TM=U^ zlVvPf3S%G4jB~x;qdxcN`~CfK9_O6L`JUhTl)D=<@Avy!p0DTY`FdX0HQQgeM-hK% zYiMa8Xu#hK;4fmEg5bY+Uj3Yak-hB=SGSvP4vzL-0$Q%NQUWHjQZllLZ5-k(V%Pu8 zKiiEoFAxZtJv8ti#Lgd@U9`LR?4{ecpPqpRK}&rN{7ZfHA20re*hNE2yK6V?o;|yF zgWCjw*ATl|_8k0MR(8^SlI&%E(KGrjj zGT+qg7d&A=V7unoP0xN*4llF_wHj{p|G74Y{9kJHpEmz#^7cmr%RbuNy$5M&K6TnaL5nGD1mE2ZW@nz+)UQavzYfm0<4r>5 za0k{>uWwk%a!Z-!4h+TM$?$`~3zWp0{Lj(a3d~Q+9MI%YaBJ4Rbyyty4matK zJJ&sTSt8SJ>Tl9bvm($L?J=Ql;(_JNGh`7mEx6*(#Xn!8Q8Ry@v-5s$xV>~Mltkzz zgo^gM(|ZuSNah)h5$P{bOR)s-6501ajm`5*G|(+qn9@fu+Q{N}3QHsfdhnJztk9)b zX6B$F8Rhm5roj@RE>L?24@d23@Tzy#3W?TDy5Y*dPXaQBrlR$K3=scAIQ(Bc7MjdB zFywSA06Fa=lA&Oo*L4qXK{BcfgGdT!CL_#uZ8>nbR zeWaq1@}6#W9dwZzAt|H$SkPH80H9S+j6uPs0Nw+S!Rl9NOix4Dhq?+d3?BPj0b-|r z^pzfg?3z4{wsF5i10sVJ@gMm={Y?<%2#D!u0CeaPJB+#c3qTgT0=OY8bQ7(OMAg?- zB-L2bq3Qvffe~fO2m|Qlh6n|kuwd@JVE$mj2@Cx(Q9M!cs*m)Fd#U?EgYDpelMW*}tDj0|6BE z1%?7(ERqCZX_y50bCFDc5CGBkmd2!G-@y4MelwTn(V+O#;s#?i~?;E(h&_U`P!>n6SY>Q^)8}|Dh}Z_5V5O zXvYQ}(DwVYELgC&u`QOv{ran2S4kRc*10Xe}e&2U82E~sBc{T`j3$%BLRK3kBFQ7CK4FlLMmt<+)$V;cc2g5VJDA34+6SEV?+Q-S|KsjwFsb^wh_oAkRQMo zD**gI-V1e_DlH(frAdwQ-%*rQWAYmGT2)qahG+&wh2}I37RMi<4db4SWPm{J4SE%= z4|vApHJoF>1Mav?694n?4rd}>)i*?2Rw`e?F%Jz-PYg)uFcbfgvHzG5h{rDiMh8?* zfQDNw@g@Y{&0vTGse<+*G`^MqjrBWl`mah7z6EqWM5GYA1BDDH&>79unJc)7e+q-& z5!DLV{xL-6TAOb;Zg%n$jIxOy~35Hr2>`VgL_kXau`d_Hp|F?xb z5;FraE`Y;Fs*Hnh#EXOyCY)vgy93NpH8QBSplJeAn)n+Va5TZR0*Mi4x|tnrCqVoO zYRBJKz-Xy~kpboozF0kQ*mVYmb( z2i0#QP*j+%Kmi5`9sv+ma7_uxBq+=^0kHAJ-{cB7``;xlg#OTf$|WFtfkc7|NGhea zQX2+J1OR;~;gFEjB-9Vrn9$h3a^^R=Ls1HGHwX=?N&;%`Pf`JDhzFh44f07vE0ll1 zYf$wJ-JAgM3R4ouC&(N~3<7?kJ`&0tV7j1y1vLtsteAh!1A%!vI1y-W!0Ugy_j4Yq zS3rI_5DH5mSf<135A=)5bD#~727>BUP|EyA1Oikdf|7@t{UD-(ND&S?Sc(Afa0ddb z16DeS-$?*74JA!Trb7i0R2}ZfgdHIYO^3R&Ee_^SsCbh`xdG!q9V7*HGLowEq1*w3 z7)}%b2vlN(5;~w>h;E?*kQ-*<-)bHN5SU#^dr`q(qYgPLkTwCioem;RsP=>t7*$~H zraXHICY6j-M`M6lLXAFZElU*$J2(^oCEQ&gSl|TkPvZha`W2{m)Y~C~ZE`_2k=`i+ zZgN8mt})Wz4>TZ9=(lY_f}!TUFFQ;;0p(W+tjt&fJfOd;0dSX(5FIxFTLUy3!Y|At zaJfK@SSUQ9)N>OObW}coOY}RxO97aNK$h8Q9h`CC8By5S4|)PiuQ2MkLKOgzo7fe^ zbI9odK?d|Gs5F}YRjr(c1=S45iXig9aBTkPDI#Eg-GN94;0#LTKgIn*1T*hg3NWm3NeYe@qTUX&`Zw1Bndc1ONqyRVZV_b*=Ol)C@e6 zAYcEy8bFE~MQ#Dm(1Jr}o{Efumv7|K!L(=u2z_5l~LGXhrm5;%- zkb5!+kWF>yR>-?S)reZ&M)Xsq6nNhUxVql4LoyE$UA8t5dh%>7`X|~X!{+> zzF({%A_W(2BZ}Waq6|tDn_KtDvOr1#$T9%`4vMvh|4?600Sm);<i^X1 zu=xeN3xE?))IcU1_<~2}Kc;vFIv`w@YSiucTD+>Y+Q6a((h2qw!XQ--l5sFApvr&L zdsK=B6AMl5S4fk9!Gi=SME>y1{q`~;y#e?Y%q?KTowtAhc?}{p4hyOWvhN`vDj-G! z)yU>oD*B-c;Wzx@h=DX3h+YQj?}HzcWaB{XI78e!Y!m)3&Id98YU7`h1mGP!VUoBX zDnKe)VfhCuAIK$w?hhpzNKNl(FgUC?gG06vpw)17bO^K2qL(qX0q#lm<@kg9fvd^^ zYb4nf^6lU918_Vi1ik`T+}Vc591H3Q72mN6h#7{6aY;Ex%FSdof_pJ z&EACZ2{(@k7JWP3Xcs(?16PqKEarDMkp{i>0HO2+_yYSO3=ialfu~4Q-M2L;m*e=u zxamMG4YLrHr#}8M%D@mjlTo(4i{pfRV^|5pRtCg46VkAw0Lm(uA*d?=|5e(8Gz8fP zxE09l1w!p#{w#nIWFtWE_#@h2=N~i|wlN@&8&q^NAW8j)7B0}Z-1!P-?Kv1i2%x~m z+(9su-r@Bjn8_h9P#tlIXn*b~e=svZaQutS;58ZGf`eHHg*=#!n-J)rxq%S^8Kh85 z0@D?{LeqjLt3rMekP2>pgWqFGk>J7*sEnptf)vr;#X#PDpcX@rbdhejs(c&0`Vz`S zkO+kC3z7zuntt)ZH3`}(>`y5Ga*nu}Uiw!`#uPsulJ|fTKJKU$=m!7B)u1t(!L?I^ zF#wL`8zA+NWqY9S*C@bD+tK?wy@r1e=>A~_2Dk+vYQw;-EWoHSf`>t-*yL3-3JU@e z=rL;bMwLpfdKnSpR8Isvx|3=+pXLeXhpi}(i8=@za191|a!?APauQ4#AuGR&awuw{ z#>F)dATbCJI0J}yv?Wv}f}n(#WTaQN5rP|#LIYo9;Ir%y4>ZHS4F)KaQ{4nwppwB% z4M3&Wzj-eIA`{pwh7D;TP$9P*By=!!dtj#732|s5V9x*&HalVzT5p3wj*LY7{vBMN zL*b8v?1()GU_?HL>*W6r)b0Nd`UL;*c4^alt1a;^+{nS2qhCsUvV`1xoVgu1w-LFX zoki$9pFIXX$#5D|x?}1uRglPy1{i05ZO5nBhHGNDZEe$ME772SdAr+6Gn1I#(c^91->3O%}F6;0ANKG3;MhWQ5@ z#bh;XG~j6U1KLx|YUh@Z*bGMC8I^FaetI2Q^{bXH-i^3*%#!mR>6An60WY0KsY6i} zYpG~_mL;Zur39b$V`M&7VZnf58{sMvH`p@T>_L80z<6sLaqpHf?F=OgnJYV-LOQ3$ zYO^fkOc^z{MB}oy5hh-7n|pAS^s}TUo59*q>|go$&Ppoi)(?3v`6fzFBTmKpV$eAYVjJ0WWK3DrT;<2SAG$x-$h|bKR$Q6!$4P|tb>MO>@bfi}cMsX?< zIrcZ<#Wvyz+`^s_=sKkq@-8q|9s=bXQJ`m633kjIjLx)_$sr?_5IU5g>NFURi295b z*#I;)@&j`23pD(oPcpR|2E1yv)C;V>)BDwWq0arc zOVQKp{o4r4Lz9Y6B}hkPSjNg<{Tiy?2QENkX+|mia}kEDn2)6lF|XPx*(@_ukX6Dn z9}oLyi7eX=M=g!gYFzBGYGrm&T6BihcA&7hX% zxNZ9Dx-4^nVL=k^*;0f}Nz9wOtrw@&rYdgU{T|H&&7VH{Q@!@cDzmW*3>0|6EgVS~ z&`&IE1~H>^HMBpKGmqNs{<6A%Uo+h)!7Iw^EoTC*B>a9TJoo>7c#fjWQ1x6I)5WXn zm&ZN*98BzYGd@bX6CF!=7C;4>&9bc1$jaC&9Mn|@rESD>tJ;|f<-nG0M1w)#G5)2E zF{xANdg%i6lIp(!jruUShdXn@Pw36qAF*q>@iG*6mgc<5+lY>LGb2BBpjH-dJpKS+ zWnp1#X%n;9; zniEL?HF@ao7sM@pASs7K@yz7CK77bo=G!e4C8BN74S=+$dgqS85@JNGtN5SoetDnyUN*wf&C&2qe%_v28@%!)?Uzb_xhRE~BE%0ybCU z@UWMEX&m2oMCD5C<708e`_;nRh_mdVPf!S6h}eW@Prdsajnl5% z;88npsrv_9{$Lb54GCX{Zp4|Zz9Xz<1EPCayEzi`FMvWo=}4qb;BhQq37x=>Zb~oz zzHEjH)84x-?=MZSKkXd9yY#9;EvvYKj$vo!bt<+#*jJFNLa8B9OyXjuTqpw(Aw(!e zcTip<=l8s1w%K&R@xNRJfg}x~MF+JRQJ7N;GX-_d0WGOpjL2rKB@!)xuQ%9QCxC8@ zxWv0x9gvBi>if;RfSQgFQUNvHOCf(OD2M67tP?%W2Bs7xx{X*mYe&viV^!zYQNX-v zI(+3#5c4IP0NbM){zvbq5_ujy@_PU{N+!O7e6}Ct2w>L1lVOsvvXq|jAQA1%A1X+> zHrU0N&euyEr@Xs6^1MqMy%WDSM3gCpT*W`z>;*DJK5EmSdHE3KaK~sX;MAg0*=>Zu zTCOU3CdF+VacK--CQzjI$5lz>EMEm?DFmN}-+|i9vQX4oA@P*>%_zeG-UtFFeAPsN zsW9x$v#hU&(h#B$MV$wfxc_J^mA0ig;VxnaL0-X?lC#xVhTUrfYVJhaT_)aYl)3xp zql9T=qdAw7qKs5p|oPZpMEhMPq3Zr^;Sy#Xw0;t4b zfR~}6`V96}|57H5T;dcWW->vJa4{SR_p zQ}4@8)-XEH`|UB!PealAw98W>^(>}|*}b-`Rh0_y)&(9>3Hp(qZs$33aY6AG=}KeL zaoY&SYGu0zK2gtt=Z}3`Lmn`@?9|!yMa)VdN>`N$g$pTCyQbLHc3s7%fy+V8`MS|; zZ}WEdR*#=sHHg`jm9Tt_rrDj@xBPXi7Ws+f*x^p znJHq~*{`d#{At(IPdK~_@8_$QdH79}d0%}8$@dwGl(wlNy?4^+;M&7yz7<|BgCj!; z80N|oJb?=R@*LL}nH%}J{lYTBEu-Ft+q{VC$X``Y@8BGdBo;W_SE8KMeoV60`RQPh z9lvsUCYY{RN4WiUEfepPwY z*DvU1`^~eY43)@;cleh(+Kl8Yx9ONIw>8NRRXEJ#{jfc8QF1@ohW3}e;(KlHJmo?y zWJp@jblc4J?-tW#z4O?5ex^Bu%^N>8-glhIKR$o;(SO%=>W$L)(TR!=R~9*o%4`Qv zZl9gqN+-OktzG*c-)t(1Rl0Qq>te!(BsBiaA*q$~NQWj$BZbNmzqVA>PYo=ox_dlr zG_mZzXPR-MBB|#}&a>X&c@DX`x7oE^>fRgvJlBiIP!U2g(WVqG%hTGQ1bb8#lm>kN z(&S737IQ)A%wfp22S3-m` zi5SNAf0pS^E12_F9CJ;%f%&n3y-Z9Q-TeDenaw`U!>hM?3T=%Lqi)yVa+?bB%hG-s zD|0U@1@-6bp}*Evo|8VPX&%hVSXrALSyg-iv{;J0!(vLEV)wJMg*|NQ$vBMp`)E(Z zxiSaIF8Wty2_IKd4!^PC?zWPCb&Y+f);%R@?QmuzFofMUc=Ulp@^bh)Xsr0&X7!!i zd_4PI%k{rv7?q9^cq7&vKivz`WOI=RgBx2@@9o@n?%2u)dY6T{DXNFNjE{;+Z|aJjY}0``}el;?BX)=Vr}v0NoktgFEOZs?%IVie zQ5c#^wF>;GSpNV_2hS#KvXZ@ac z&6a(p#JZlgKX9cPuf+Km{k;Q-YUnXNlrzpF3Dq3)Rw$`2|FO+?x`^v z>idgF(Bbgo#-68z+@~DRWDT~rc~X4O=IhAC9GkvM&e45QTPo5FN)pFPlh_B|78Q0? zZN6>e$PizTY*`yWbHV$FJiaKGrO?g`ThgA#8>6T4b`Mw-n(CZ+i`Bu4ox=5>N*C`S zCY67m;{K5AqAhAu5`LuHs_;3c1-XxYLCag~^_lRfhA%by5QO>x$2u{+{*SF)XT-)0 z-gg`30m(j;U25SxKT|O+pW?AAc-6m2`2FXnR&wi3T5}T=D<#!iV*~Y)vMTwvZ#&L& zUQtmy;26)6QEh(n34_N{k>BnU2dYn=yD{#-Kh&K>n$ZxoZ2PwI%Pper$6qhgPw*-l z#(ZeK&iO>!_nS3KiPg{o>BB(EWs({3EQ_N97$UQcxY2a;`$DnnWqcT675w{4C8PnA zr*{94&`i$2_uG7f@gVAfIWs$?YP*rhJXYf0lnD%(ai?hT zMoVNr{beH=t~9Gjz3fDvQd{6m8F6Q89`*|2c17H0c9b_@rtOin+W zf8V`mi&lMS-{#0>__BrAS_YP!*X3Wng*=O|^0U#k+MxA3 zXMdyh%sz>)-0!SqJcl`C;@3smRdKmRh1elf#mI#3RT)bCWn#3CcG1a8_dLuV7|s+V ze)rEvFwtHxb@n(Oc%5j9b%u}58`fM ztFXo$FUay(+mlgsErq(sT4{<->#ST?G(Ua8C6otVRISG-={%u1>i%)Hd6UcjSx1%V z=-p|iKX>a0e~RxDRW1AG_^r4R-*nBj2g7TitpTYNWNd929 zmr{Z9Vj>f7iEf$*guB)e17)Axchfv?|0F+pT)g4M;rcx_n13KePi`DT5*cGls*Sn7 zjhIYz9(diobvjUpzKeYCDXW9vneGQ-SxN|Pvqzl>t_h}U#$nUPEvT!nmco-)O(->F zR?~~^C7|5;8s-+Cf!W}3#cZ7>Dc5-B;bkN*k?wEuh3B*<8~d}iy8CU=;MIB3b!{ao zj=KcUHHi;?Su(k$Q=ylPtIY{dX1{kh{aBfQMgFsZ7;&2m&4x*3mh+_KD3L%r!XYWc zj|HQQAu7lha~}oM0vk95LgSfVckC|t)MTlpNg1lpmB*G3aon=oRC{xe;(%G7%&GWU zv6{J`_<7W2HuNLY{wrKh&we>5uOIj1$@c?UyO(I1zuP@@HnZo78Z`MP?WwaAld@Xg z?Ad(vNKJpn$l!2bi>bpR4(}QtB1Cu??k`(qo8{-vnGk)PLX?>X9PLR;V^+oigQ4SiM?+V)n&g;U(OXGF^Q+X0hIEY|}QT&fS>$ofI6z}nHm zu4ev_#gF!t-B+wH7y%c`o6djVDdXTzoUx}j-VI`W-PH?nQm%v2YZ8Zb)-5JiqAl0t z!i;@xI%~-Sb+&Sj{8qt#^NT zbnFYs@zvMMFZp!Lo!5GfUzuRLklKG0N3pQ8$l!SiGP5%oNV(=^~WkLv~jtwu6TIM%9Nlh^SI=L zDqm#C*(AQmc(hzbco!{EDa-1l@2sQ8B#L|MoJ4x6sR?f%oclUOl7vsLVK(N#4yjgP zG@K^Of-Nx6mH-XpRzG3Rb@MKyQhOi*+IHo(MGtY@N{KphZwvO?jPHlZ3#_awbc^xKK`8Zpq|+Hz4Qie$fASJ`$0SC zAmd~boE-!w>ZrT6pp7pBzjrnM@4gzR^0OJu7I;3-%ybaweEBai<<(oC2znlzMYHpmglZ@y>o%-_;3@BC0eN3xnjFr7q;?T^f` zOeJyLvmy(R)u-4=?pnc?q8dq(-r^NmqF~)?qL*I6{ne2}uamvFnUilwo;dJAW;gG> zS?vIX=Ye44Gh)|1QNuQZM@&)H{l>DBxes0nA9mbOGFnl4%UthwQ$F1>Hrk%shWX4= zYE_k4WJxi1P!)(KP zATuIgQGD=or)(kz`GZKlk5y1=-^`UvN?&Y82~o(e>9bydqpP{Hg0oGSQGb7xvZeH1 z(zSkH^3!vKkx8e^S?q15+^R9xsLqeC4&sg`{ z2$%KoR|zBQoIa6B1CH7W-5A%}Q&D3z{0&1A8Yg8_vB~jC%8td8shh9LGgj91ioKpk zjiO?t4=c&LMFo`A^e|XX2N)^5nXsL&PT6(jL>k>&0gs0skz1tNkJ0k%>Bv()=v2-? zo)@LJN}gT5n3A<-9r%GcqtWAoLSb0@4QzR&PmZ1!R@X&cYhySoNa|)6!RBMC-4Qo7 zVn^exm#;3qb*>R9$6j&IlIW4IR@hCmUORxO9A~(rHb67FPX7h016*$&ci?suZ8|oP z%oh!oIug=_f@MD|`5QZNnn`BuY0q+P_X2Ng({r`m628$jX+@0qC@pvSKw@SOw0iLVN9U1@8@<`p<8ZKlyalKm2&Xl{ry^JVo`B zg=uq~)P#&TX&Je)!(Nz0L* zw_6Ms83(yqW$7PVPRynrB%dz$!f+LAeaVo86C`})3}{=BhT8`3Y9JEcn?zfhu&@xWg%*RcP)JoD+rXj#M1 zuudeOzvE=Jw0W71Kz+Z5sZ+ALa_q^TxwCr*H@;3MOP|b6QLwj84UoF|S^bo^X`^Iy zxfqCw{p0JwY%_Pa5v-)ZT{0TTw@c5Zhg%WSW8(Jl?n~Q<)NAP(tGXuL#mJWnnf!xX z81jKxaYwKr=Z18{PqpjE^2br%Dp2Jq`hA%MJDKy#S}MaF<`;w&FCEf(G=zKj=DCCI zN9&}%Fnl$J&4M#fnm(^D`O!T^&jR1F`QiQNg@Wvly-1#KmVbNEh2AsIQZex=@8z7- zCfth>vvAz6c()S83pFPwttq!-%AaNq6}W}pb_+W^S1*3|eR5QN^zkzj4hu9bPV4p` z^)uUFx%V@L##h@K?zxveXyGE#gj-!!DQk?(+3-?1f1cy|xJ7kOMXJjo;iiRe$}0W= z?8%j*b42wqwiZF|JB0h43Pp;i++`zmLh=ercy_Hcj3yPjQ-*9-cpqT5zQ#!C0Bx19 z2CCrasu5iLOIm@NchkY5+mT!uwA68r=x$0j)@J$dk7&Fa17;O7%8zS9e+m||+#-hA z-qIt6ZOJ*yzQ^6zJlJrD!G@&NE7zAudq*(t5`mom>3Pia=2-C0#I<*_m*wx)wVf$C z89B$5tk}S+l=L<8Yds~`X)jOM&YEn>);x`fX$%{&(YSzU3%EIp3_|~C&rJCr{=`lM~*DUs%0z-6y|`+|FL=y8W<91 zb!%tsnJLyccyEvHR=B=QVcAA7CYB$G#o8oNVvYU2ZEt?$imay* ze94?w+I8Z29@Y|Z+|QkYKY9P?*$@V{tN1gVcC?jVkG?$Az1=;U*yAivr|H7Sy@$QZDLubC z-MOm}vljk0uI%Dj3;($j`B0rFpD{!U z5vweSpO?=buV49Yp(lCe^_<+APRX(%1sl%J|-iJ9FYrmba zkvi*~Ofi zQeoz$MF|r*+MfC!dJ?o$4IK3NmCT-Q@iZIg52Fr=oLBpfO*1AXR9P`S_sd#yK4rLd zsGja28yZi4FV^qlHsXQa@Z(lq4drOlXXL0*i*3XeEla?ywnmm#BV=4=-|Fn3^xU4@ zD00i>>R_#{0&LK;@T;Cnq=Kbj59VYF$;^4U5Mn%tO+$rqK6-W8_>F8rRE)+W) z%grgQylhk*r{KRLTAuT`U;E^HWAS&{73(SQ?Ohh!PROb$gBjk{Vvo0@_qt1HFu2Ua z)X;ExDlLHV%EK)A!D{7C=;_C~03pvWi-CPB{Wqn_2OKbD)xw+zbp0wh`YGiyNy`01 z0-;0yK#LwKyl$aOWx4l|uAk2n$#>UM!4m&fZ;s85dtj?o_IosYURfqdiyU8V>UmQR z#Y}WCeCEDzFi_^hr6)rn3(^q>WxmVOWO&d-hL*i)cD)}X zvZTaoIpS71FG^gbFdE#-n5c}B2HRIg$#WVx=iN*Otxm0+lAv@p#1T)EWZnnZ;_I2K z6yn~$V0zMGaNKX!xnVQhbQ^KzyIRI7EmOL6M;l*Aag>FGE}%270~WZTH+8iR_MIvR z@IDAI@9dNQ6O24Jo(L+sj;l-wCu||bOn}?*N#QB_b%TyC`D?!*XYCKMVhSrD#e|J0 zk5`n={`-YqcsB-I7H{M-@xb2(7dm@-re`_vo;1Q?<9C~|?Vhv6$;l{<>=(ryD5>Z{ z9gPiJt@q9@g@sj-W}l4Z7sj2`tp}1tn}X(@4ZF&iqetF+4(lyXF{xp4zW>y&)`95n z;rr@mosHVS>C_|b!3OMSj7S(x#Z4Y$1o78-k-nVz#Tccd_&FIP5rt<38)7eY#hnXG zBA%GuC#>Y+Rr)G5H9M@cdz`nvc*cGI)J*K&Vr}_FGcT|fkk z+G5Ve3`CfNm8{h38SUYRFkO`WDVrUkHp_D9V5`RK{BiWxTSkoNx7E89=9n5j9xh8C zxme{Fz-HL84pv#NSBm=uMPcks!)>{T`|G=BK2#!6f;T*P=?K@|bkH4xkwX;Ctp$;hglMz$RRm@`YKHZk2u)o-SK!-u4CHMc_KuM`JqB= zc1A{%pYg*1$^oa9+g=*ajH(NgkXWk#!QRYft{8Ez`m~<%&PxHl{hF%Mzxo#4>ed?l zPBsPT6*AI)W-A$TI=tuCr`!GpPd_MYUgPk(Y%Oqo<6ZOM#>IxZidzy)QZYI~sgXw6 zb0s<>aq;W%Q=lN@D-b zBvYm9eJUr9c5Bp1X+1M9AH|oP4^%)lNUZO*oz zUDn1aja$pJePytu{83;&;kq*g%g2-Y)xvr3Q0r1iY}k=LfqSuB^Da{OkXhajXCw?R zWV>Im>RWmo9d)8!q0*j%_h23!dzHBL>^4F!z)1Xxy-1ah!@lL(tae5TYcX@S$0UL{Ec_{h9tyvcLfQCGg;`iq5GU>2>q@PiF@Jb{NJSAXLOOb>pz10pyh3R zwL{HKX*uWXMjCq06=!QR9|@H*=Wj?aJwo6Y9k62LQ0jMf?FqrPSi-_B>eniN#Abs` zl#0>0scJqL_AzW!?4r|W`5{&P zlS_OVQ!~cEBVz|25E8cx?KdwAb@oS$gU#n7BnsGQ4m>1E@Z+6>v;M*CubG!ez^}nR zeQ?By2RLop2o-cJw2gmmiKeCEhb++tm~F{-H_>-yz$Te4+s&2N)T3X}N0p>ZOG1ZX z#=)mjKvrGH3bYp;M4$hD-H1Xmf@qJ>XZ!VC_Wj90QJuowrV591ii&(u&W=i|9Q zkxY)-DXE`37v6n#rWC714Rgz)BLAD zOGnD@Guy>}D&<0MsJqICG*V_n-7<`au4)e92kFG-NpY{&)C^GPrn_NTIgTF zUAw68^w-nGr-M_OD)m{;4EJ(pBs0T4)*BS`eACW8f_Y)FC9lmsBzIX2iFKQ|$C9|R zXNOgKpW8AP=bZVOjnkINbf|SNU)+Zi7k(;1<1W+46L(e^e{n(eWmd|ltl8&lImY!y z1j74a14lJWpFAtG1cHs<&1bbRSJWl%+#pCPWki;$>C5>X#jjLk@j1%V&(O$PNbNAq&i^O|EsrGE_e zuPo4!4ikh(%0AyWeRIaN`n60BIL-Nd_I0mSsSwnPv0J)!d2-$m6)8tImFRku@+O%W zR3CUM%&#o5`0PLo7yK2J@3a_p*t#2cZqBQ*aZ$?cv566%a<-H9 z+*Ja0P4|4D?vk3%?h3DrBTJPtvOjzLJ?b+3JU4F)>`S-Pcl7mm$uGsQ*G@P8p-NIq zyW)4*pJ(OQgVN2Dt~u3^ksrryYzHR05R>_*F>nU4w&fZn$Cj+nMh9sr8 z5pKxF4cr(<3yO0(;B$ZIbH~HnT6T=4sY#tL*!u?w?rV=;oW1SgFI2f9#Va}Y!u;&H zk`scDHg7Tcc{M7n(I;Ph^20AMg4r6Id9VJ;)MMM(OXvfp7Ns*+MMMi7b1}l)x=k8d z$f(cnT8?#ycQJ%E7=IS)S$8nW@rh_S^J17@Zd|NP$)fZFF?)d(r<)MnJXA@Z zL5`MDyv_?J$=R`?!YSX{eR73o{HnKX4*7-8o3kC78;HNG($iXJB5xz6^xx7DG@U-?^LhadkRA}v6hfoy`-irJ3U5qncekr?jbZ*CN-cuGkUUIj5%)HQ{ zm%iNE;}C-hjZ21~W5!~-%sBs?l2OO;bZsT0puw`gBeFDd74#j4XHyGNOld)1l`zIu zeI`yUWbugOhaW4p@IJ28;Svfk5)#!`G%Kr4+OYCXud+z)7$uuz$LSai^kXnU@>VV?Q74TI_!=)?C~RUV#Ah=+j_l3 zr}FqKJeQs^&((dE+Io8JvZihmanZpN#AUt32J}_O*OtZM0!da)0}(!2NBic%i5F9q z?wZ7U@eB8d9Byh%DOOcAW;ldk*VPW-mHl@I*G6G9%nQvFTfW(PPB+kLnEb%#={HFQ zU~QW7OHJo*Y^C?)xOKcsIMw{a(C@O4#6=la%%ZaVxQfyEi#$2JUk{3CG^o3cIQYU~ zB1}5NO)g{4OlyhLUw+q{6<1ReX;|rT?1kw~%^r zYgEgv7-M!t6FV9!b3vjacNhaFR6;+;te|gQrcm_XRNJGnTux-uMGYWZ*O)vJtW!*n;(^GJ@QwY zp&KQrr++brqh#1^IOAJ%&^`07GJ9NHI9VQ^`|F``#5Img&Naco8r9pUzIj?X+IRT4 z362DIR8`#0H)~pC%EQ+(%y`Xiel0D1Q!)62JxT(rJtASU*1xE+)OF&HZ_8ocM+FHN zY(qrtP-i9E-@8)~D`^6>((Qn?p zGD|z`lP_fN!)Ul>G?rlGXfqTuF{#wo(MXXi)t0$*FR(-xg=gfyZA38bAP+HV@_6++IxJ2lq-~n^798_&CZpK+s>TWW zPQx~qD2#2Jv6we{L!!3zCx!n8nt_Ba%1yF;Nj$#qZ=5{&`=Ff316GOIDAof(_RhNp zZZYB|T^jFHngp`N5w~KG?urJ|5+W5wh)uqUtA0?P|)RpJkS1yl&7iT}zrsClx(oTj(2ze}>BFTz+M) zyZ1%XO}i{7PVW^f)j|i3`JSl$w!FUJUlNtC&MtRdCbke7Z2F|-W2{}owh{Ut5_=)&uvz2^vWV&xnk#kc3gu77J8FnJa%LwQXdR7yNjVZIntCo0 zr-zj~b~Q1UpW)2B@0=n__Nfm<&gR>$MQvAR4Wg1R+bg@r6pM~IHH&RZ2N?aT&=Mcs za<&zD)#D^DN40mT}NAz~l-3{r)?a&Ld2?K~%wz;CSo( zeTV&iU8_5JYu}xBy9PPTxh6xGV-?2oCQ8+^lCA~6eKHVRcB4PZ!tb!I{G3$}MtP}X z-m$#bZO%!U&%#G7Kca+d-02l@>ep-U48o)zibZj-cVI9^Xd5AYtYCyNigk70ik0Re ziM|fu*3ps!>quF#+|IXkj}J54_}h5!QQbjx9*^?}U+Nzgd&MYL%*o%iYI3Y#%A};w zBu7iBH($T9H*I1;RL?UZF-JH*!KEVKVOGW{lM{;(bH8^m`YKxoXOp-P=gaJP%cG^1 zg2&y!fxx|UIezwiE1WsebKW;3k`fbQ3Ya+g3e;(Dm<)y9aaEMK8J{TQmv=tDSwB-h zx2#VtwLCh-;+`dnMMFy2yjQDO{KSup=#g@|`a&9ELQ80)a%|xd&Q;!PSe=q&tZw-E zQ-!~>9Su8svpJc?@?x7%j01K-Pggqkk7~v|Q^B6HZlKd$zUpqwnrX^rz^t7#Ha>qf z%lYNW&sMl68gYxkI`>a(T)Ow#{AOi-n`d96rrDP$6OZiv)zt3Kj#_~yUt%$fH*Hvh zd9AB690>J8?cd_nnIq(8vOCf^JWEb^ervOhZ%Oxx`~I}yQnde@$Y{1KCZ|{yZP9P% zPidYjwC^^TWbRCoxQLsK&R+M`L-l<-xxBS10T#4^Mr%_X?z(cO?^O}LS~o@elE2=M zFXH8~9Fsb*h(j;8G8Y+_VT~3Zm@g5%x~N03GBR1va|UNTw+@YlKOnUC3^Q~3)z)u% z2R!xnoK8L8{~&8GHtQ(oD#JUwM3%s*1J2xck{PyUkXXB@U$rqFBkTi>dgcn6*0p`M zezqQoQzF$Dlduh!6778=VrvFH`rnrx>DwdivVK|V5%zgj>?c+$E1`(YqjMVlPK6f+ zhp`(+<}(XYrzR&hJ%YtZLf<*&4ud*8w34Kp<9Qk}Mj{VqGd^T}$jn80Gx;PM{ezZc zMEelVQnfnnty#4+d3U$Tf_zTZp_7fkuFT_!*Yd|V#tK|4SSGrh5sQ2B^yD_e$55it z!HG7_eLqj}@q}pG6kDF`o=7wQa$Jd)xtnjwOBHK&(b_`&Qa3c(u7VU7Ns**B)XPqun)@#}}xBO7_xfPA;9PSTIVN@~8OQ$a>b>&tiI?&lzMp z_Ift9p9+)-EKMrrv|c7o)Nr=cg_q&0`H3%FOgTHfd67Ij~AUAlDXgx-5^ z?|St6{x!4q*Q}YfnJs2QlIOm!>pYJmwlN*p$Utc* ztSSWK5fM%!@aBOViDJ;k3Xt^LN(I#i`eKWXV}J_Xn_2Q?#ZqT{lX_Mna4U%`$G4~T zaeiz~DQ9&e{b#}C9D;V=0>POiBFDPmJat$V$ZAtGanqxG_R*N&hY{o5+L*NU8VUmZ zIAzs>FPUJ(+Xf8Gd@{-7l0z?}ail6)?*&r75v;n0siB$sJRrKVD|>s9G5v$vRM#4> zKr{7O(^es{k-G~5`qFB^I@c!c)p0NIiBTE8T=Uo14{m)(^tN`qsOU$*72O+9Ou`5 zX!TsV^Q?2p4Wz-7S}(pbxg@1LH|P+f&_K|YwC%m;;GPJ&S2T5e>MFZgcT_q*S4Y~p z;R_wBtr=QEUdNlV;^Z|#TcT$Z*~nIN1hYB$`v;!LQ4v^{QU=?$&v_lea!d0W#I=w6_qb)e+tu_T`I{F# z8;kiP?c;IMEHABOg#TW@*y?6c5j;uSnp zDt=Z;HtYIbm!;ZW6Wkb|7&qxw>3d$!Gut!QAoFp7uPa7>Anp_i5q+)pEa;-7{}^$I z(0>sq?Mx^~6Tr|*J!YI@ra7_bcyB>>${wvSF&e=s1iHkUHy68r3S3jxp;c^8S&EX$f?!`B)1Sv!S`xSER))>Aq|LaD$U;3-mOb!8Q^U4l^qxDKsers)D%NaYB}`|O1}8FREr*=cfV z9ZCDZq=ZbJh&F4alcLK{gvpSQr|5D-%jbjhi?n2)x{H*g-*}aeEk9-U=HYBfWTVQ_ z;O>A$-`UXuj&j=!du0^Y(>UBiiX1&D!OogPn5YZ(lu-%EF&m+xqE zqMH&!Z|q`!?kF0rf~K@lvIPrTc~T1QlB)o-|2igbQw`LDBOy1|;UW^n+%o{PgR1D{ z+vnp3dTc%8VdDypwkl^Kmtt4%oCh0O&Mc(~HwA1WMWqE#tEgRb@3d4N;ZK$yf=dO4?ec>_LG|76Ng6^cC&+aI)l1>%`Ir`Rn#eaUk%f!<|IUa+hJI`k!Y%P%-&TKN9 zK}F~570ynXtli0*Y}E>tg$JeQFnn6KMc&jFAXT3jN@`KSG90VE@ya@*$t!g?jy?j% zGilT!sqV$KuK}gMH~vaKV^n!1xm9GxE`4m}<;P+5DG7ZGZtI}o+H0k5X%}2E*+KX! zGKjB}r(H@jhuwfgOj0mrEWVC?7IZ!k-g~A&{TWt7bC!SK(KCOPk-Rbt;yYF8ddWKS zRq4(MpRRTvd3*g@*&8q!QwgvG$%^ix{^(@bU53nZAO;;JcJqgu+(lC}EwW)3h9|PI zmQ#WQ@fPjX*oB3y;lTon{27;ZBmF;+NOfST0aS$nkllqb00?>oEJgnJ$RD6t0mLbk zaj5XY^&c`X5#Hj6@g5`n91ch${}t(f?3%0Fb4%{rd3LpBD7rh%f;90q{bbC0t+tKJHm;VjyRsaUme}G%~7ngp25%7O= z#(#0p|6l3~ZbcNG`M=%kND;;qZ@47EQt-}qY?ev$tjS8>qPoC4PtNULA{C$Ce!)lH z7uI2D_k=a1LjxU@uBflh(Io@2jysO6lV$HZlEt#Y+teaBo~){5VZ)ylUF%^X&Nf}n zW?eTdXLAex;?WCrMDLY#>k+-3VQv_Y6f(cc6aJ(gnQ))D6cTmpNwKn*R8!cQHG|y0sn8N`s+q+{$z)`y6*0F*ckL@H1}6+*$NX^ zE4kmzTkAc={l;#^NYvg0H(9DqkVPKc=Y}Ig`w-^f0G-?vQ;&rYg+ka08`-pUJHSGF zJU{vt>O3hfMNZo5t#H1<;>P%;Kga1uli_X?jxWsNlneS=MI*}vrw@cRKKHN_7-aJcMIGm$6IgWnKA;>Oa;h{D^Iarl9{5pb@!@hMm@D3N#JVp#X%9xC><4gZK}kLp7~L+x6Y-o7!7#V)L)J_o;jZG|315UjVGlXyo_Eho zPwMFked>J=u!AV9q#JNo{yaTs1)+sPIQ}gtZ;k;$+#&}on}?K|+fp+Wpe?2{lI3dm zN6;LtdmBRruG8W)&UH7RCN3ItHoeHyE*3}u!-emwW)d5?sIe_@Kp#2IsH13?-~k5G zBCK)dbHGI+tSGcAw+pvT$Y1v*Zns`BH%M%;=gV4>uI(^q)oE`1SB6h>hLQUq)(n(g z>>;>CLH?kVB+d}KEmr9BLV5c#pUg+D-_VVcRssxXB?;C!XjURs*2%mf7rbT_^pGsx zI?Q6S?`|-()H+caMdv@Nqi3_d(5$T=4pc_F(6Nbc0GGHxSaC z7f{%dNg=`wZ0+zE)(<-EKHSiVk1VFk(H?Og;C^*VgdRhC5{Y)G_P&0@z1;d>Sl6IU zbW+GdrO&EAOgGM_fKUyov{hSesW#0WpQotj`Z`|bb8|mxV?ItSr%zGCnQ2N-UA!!A z>*AnJVB+n?KgOp&ZtLZ1?Q~}ZPE;t6<&*p9<;#x#_<^S}0Lg9gfJn?7LRjX!^`@={ zUdbwYmd3>=$-?1NCRPs-8m*-}GoEB0$Q-%4Kh;n_^AD%M=af1m&WgOV3|w*Mm36$X zTH_VA`gAVKhUOT1>J6RuSWZ@W&J>^hat7rZzqm6h*e9ogWGnYGjM}QYE6COS@jZ2Q zmuS%i^@(AO%wWq(MF~f76Njd?2Gc46EvlTHtUVzHvWZUaexB%a;6_r&;j@vV&DA13 z6Q0jZd#dcZG1mFy@riOjQiIVnE*`5g04Av(bMarkR$w7#b4{W3ZKR>uf zC8jUBxgW%WVOME0tL_>?E~A)3+MxVlv;3hR*;QeK7@E>Sg`gameF|rOtQn@o;6BG(2W5|3M8tf5PW(^St7|%k z+A3Afs@QA3rnud)P7^PB<3NR}*I8nXRF|4iMebkW%OLm3nfvH*De4RcVNdVxNJm5g z-D3FTC9l~!_W=_BucLDW5HGUq2G%>3a~6m*I&LBOe*X3>zi)cWCPi9#c8>GOjP0Af z6ST`z@T6_MSpIC^!S(VSOBx7Ix>}T4ln!;NsXHawqO4Zpj<)8aYG7CHd>x>=an1-A zKXs`S<(RjNGaJyko8LF#s6--G$CV)9KinljcioY4$u{wsxiip<@exxl*L;IoOoiP` z^}()ZYz)rwYqLT5O^?kqHQC1p_IblxH2N4>Cby}^9b67zvoi0yN~%K~l)D$%W%Q=* zEg(HW-S3qRL~^(JH&5Ut)t9h@3^(oW^;<+>`iEm&D=%9uNV}arI?beHJy)3#!yAtd zUD&8jvWe#b7wdFElfP$&NCVH6x0A#R7SkIZUMb1<7Z(6WvKR!7AvE0_4@TNV?lHBZXFp$r zjFt7wJo4B@kK0TK)XRHxjkX5k6g~4*QiPMYX%#E4ki6VS(i46Q7Ti2uARKMMHyx+) zJ{;&WFN=v@Uo~5PyZMGiblw?HV^DeEQ2c!a2XzJTB&sonQ8k&}LzjiCEg;Y7!3Wde ztW{NfYRJYi2e*oC9YW+RR`&BHdlBBAL4XI42!A4*^^$<@)^$|#{L|{&doP8mE?Q9q zzAa;*nL*!{pt12ApMUY*MQ!!I00tFa(tF>IhR+|;viX|o-Pb>9ZS|oVYJC`GPvGw? z;mXlTuYWYy`c)^ze^;1zNRBRXdXrWqG+sgwqZ0mfal16qPI243HbTs$43TVDwxK^f zfwP0C$D^=o+Hjqjg97HUZ6-~6&TG`%jh1<*Eu(8-#h_n7c*Nw(RXVd80_3aWhpW|h z{>9_#S>C3fjrJYO$t`==noVdqGb3bsh5CAybK*SNvuyrKm!op-q2*>ZIiZ*y8$<0~ zm}7_1Ga3cyo`qq}8Ka$I!lFJzJ=gHS4(O7Ex1uozB*`_PaFpu^LR>QG_A7hw&FAef z8>gLR2(jx;$4^7VL1YutT2XmSsHCHH`wEM0!Q9o~c?!5dQFxo4mKO69EW}-#;}V35 z6E(uHK{2}dqyf&ct27YMX-xd?zW0RhpIrQep`9;|Xz#=7_dOY0^HZsvNI9QrkE6vQ zT}U#f90eq@Yq~mZwK50X;pD!(cO)g=D;)syfKP~Z6`%geXXaQ0L92(+t6GwJu0 zvpv6l4z3ewM&YJm#4ZPl4n_j+^!b(D3R{YvcgkN{E9CXukh5bO6;!n~#ho6jmE##BNMCX{KU?q7{TM@xn9>|uTC4LBU(X_Um1a@m6(-@M7iq|!ua8q zu%udV8b<>`hZX4w-iLF05pHY`=zVby8gJvri!n^x`m}V6N7AN|eRfKfa24xzlu^6D z2VtsObL4&;AM)`?XDya@7lB=2RK8@Y<0uZgB2(a1SDx>gM#4t%xW7WW=x2~sbxXd!Z} zt%`0J&+^brq}zwZVEz7hYSnOqR_J{hshfrJ?h*VA!7CnZdq9wp*CkCIGeoHu`Y_S=w{b(!-m!drSH8_t3dXsmJIW7E={dW>A88r zkpz=(c)roDFH_xZK5u?M$9G&5E+s?vphmZTXx zab}mzGBN35JCxbXu%9^Bqmy`Z$(qOJB{ctCZ4tk@Dwt~VSrO91g~LHKha244e9*|$ zIm~)af3lzZWRF6bmM1VQlATt^&?ls_K8a5$9=}+#peKv**-@04st_mc=^qjgGoZa0 z5PmOXVa)AsVfD|J-|Tqn1-hYL-oc)Z&mx2-ycDPQbb1jy9-|RbLY@!BSPxH*Cf9GM z#aRH&cy}nIt4U+3bb^?^*P{J(svZz67z|ezZD*cf*Yb+UtykXDe;cX!FJAdoSxuBU zMPaqxv{yt9ewClBEXm%^z|+`$yF7AHxL28mVii$QwqtNFKR1+Gn*ajdw23(R`5$9MXs;M&(0mRw@d)cO2a+f4 zgZ30wqJh zGSO_Ce@NmXiS}N9f@NX*GwiluUOkuZ(3r+dMjjt^yR zOROmMHQzRcZoV7gh6{Cf6nN7qdMoZf0_P{tFu6!9-! z+3~h%TX^EUqJqXFGwRk(*F4M0#GlGhTPN=c*nVtFs|V~Wh4BuD=P#7}Zq)IupD!7T zL*972Pgfm2O_JDfJ9d*}$xUM>jAc+V(Jw?GTu}KkzVpIh;>8n(vvM2{*&BQAK&wTb zyRTfzrkimX{qEs5{@-#z=IT&4*eqm~Z=36csPYTnB#Rxo>1F0ZB>{DOfA}gLvGw|7 zoEMy?aF4W@>&f(!(ql&0{mRVV8njh)b9HfYUh`<~g0UdlfPi{dZG9wrAGlw0s6^a5 zluTBT@zg75D!@iXHRA6bS44&_NRymp;>spv$Wt(BU#_HmjZJPV8wn}rx)T{~JR#th z12@`eoeJ>IoeP74%dMR)e|J;W(>tqRm$fUb>AB-9hf&EfHvX~pBC~@h>@wPX@G=9l zH+;>8?8B|yf!24#?ZerJ3uM*SJNO29%wy0tyD61BQ;o$V+S0)WWZ1cHUP22qQajQY zP7VAm0g;*4&t%1(s>@3@ude3EF(kmfj`l@4j`WL0+0?R6^beL}4f^O~Ee-eIpPE1$ z#GFpeDB|lRa!wgIuN3O{c3TP(v9qWgUITP&7O@(Zb^dQc~RsSQ5=o}#5E2FZSBrrT;e#WY5zY0&++2BG zs%~CyS+G7ssEnfBOoxc0A-TzUM{CoEvThz%N7^t@@}!Erc99m#R(;HH>7j3U<0CKU zGZ`~y@A;n7eb-=2D@6K4SBd$^<;TNqd)!1S{9(BSdMK;OqSV%D7$H^^>vT$IF24g~D(CD&j;Td&)6ecLxuV*x5Dt@xzqWelJ`-(L~*VBWWoP zbeUWqF;wxR39?=3kq84h9<8qYOJ~~2q9sA598`1C8yW?wq2 zoyKa-uhMb(cjUm?-xpZrj|@f0**Nc2%q5Kt%4$eq&ph|jT4p7khUL>*XW4-2l>FXG z$!$s>BW@E4{u23J^?TMC_jU%=u$86xF$ROWlI`cxq^eP)pnT0#ou2#ZxubCHOOcEM z@>%gIjVC@P-hn0GlD1jt0M~pu$zBmIe>xbk7eMm z83LHS`@#VK%O51a&*yXE8NP6{fAKIt0;>=hg9B_)Yrq-P%7E)U-v$QcKZJ=>fBaW3 zNIwe)*q?uf^Z!Ag;{UN5{F$!5x*$%?Waz1CTKvyQy`|-7@pI&CS}>5>xF!Jl2qb{X z^AE>Fn&_^y(t-4V!8psTL0};*V7K{W|M}xJBm{g_KmWG|^i|a#CG%e$+JA&p0A}Pb zf&Z_<7^pn}o`#%1suIA$@qc=?|NouNQ!CH1)CmPY_I4m za@M~*_0fzj+@AR|sYT-+eDOu^O&3GAy$I#9E?;o$zPhpMlZ6>hI;J=|ldOD6?^y8U zO2Y53^(_-I76IY>Oj%+9EF)=RfGi+SmQm_S zS!~KGH%5!`*t&qV*+fm+DI-avAT&1y(Rr>jcnl#WIrerA+d}gN4=jv@1ltz%+u1o`@CS;p*Kpfzf^DyS5h5r;(^4nDTjF+ zD`K9gU$3NOn)R`5jKe@wdCIZZ4dA;B@dq773_=#NeeBAaTpuSPuhn(QQ6?~QWAmo> ztV8n zY=K8d8h*$@;h0dQa@g1ti>^xb{iu$nJ6>RUFFsrt)p3f^y%rsFn%lhR6w2(AAFB_N zXszVc4wXnIS*JLnEdt<)(V8imUHa6aV8KZT-9ZA*sXM^ z58kZazds9C&7%aRrLIhLkZ?H^ql`8b$W`YwH5I0efu@;91`6|9!gDk$rI8BSDUBPr ze>S!FKzY;PNm1tT)nkE9q2SMg9p1G|%0FXdxEpd2pSrRsBBXz9eGhbIrbX8vfAUO8 z_WEeV+V$BQDo`6pEf9jcD~+`{g|*_;EIQND}mU}d`zvI5C4TWgbKlSe@@PRb!7O$vf#YR^RRPg)K z=v)K5@P^Xu3=#&2?%srcGDOx?vlHjOS5QuBge_ z25A?SQq`QL@6&3JWA?z;1TxWHBse@;>MEcenrJy0`|2~HGneW6`Kw>WgjK}P(mz{@ z(W?gh7=gdst``;kHp7Hc8n>~oq-T5sU$@G}YaId{eeXHp%msT1>6H2xSf9aaAXU0=iajCcO3 z-G;m8IkOUx5@lo_OXeMDR9V2%OeVSb6%tX$+yhf8vwbrfDW^hs*6Tt*K()!nF{h2W z9XGRXNUoMr3$w3+M_cMqYL8)JEo&QQqpDNJlI{$K0zIu;%p>5$C5yW{c7AN5I-i;H zZxx$9YFlJ`wGj92c5&aa7t0I&q|ho(D-9=|mD&CDF7k5J?6gf0B>`N4=$^4r0#8N9 zFZ(Edn*(%kpcy%>c7Hi4?LgI4>DJ97H|`As3AJF2ak|RI>x!a{sx=s&|C6fMVB?aP zcVT=Pvf4JMJfE^i`jq zm4q_Wck<~jTc&4GGG0r$rmMGn1s5J%WJ?*SHje~yHiqwDzC?(GkEq8tPuyg4(46ke6e!yd+#U!!U=0!Xui3}7iXFe+cVX8s1 zS5TU_uy@1yvQlDPln5uXO#-tv#`6*fbBG*aXdJm~cYPDi_3*=(3JrCxp1v% z6kT|_X$k`IMwEe9uN^`fnJ!{{7O5n3(XSLe)V0Rek{r*XtUpKE#mtV~StQydRQ6yi zaMXgj#$gW5rl&}wkm~y?c`*J4ag~BTs)m^5TA0fvyh+9+J?BJ{Htk4JAd+NEl!N`aEJ#{ebuLnCp`ruh`@>7QxgH)^|>v|DIwAq*suZ$fE0{n24h5rDW*F$$_^1 zs=ZaZn}Jdw0^@|Cm}F)OP*7m*d0JyC!QbytW6HE>zK+${6n#fb%bos!n#Dcp>wS|8Gbl07BiwR|H8R<4z zP5Av`K3>NiAH^>i9iTw)qCp;p0sgf%8`}-BD!^|>H(#i7I8Y&oJ{IIysRlrf%IV*R z(TWZ&gyBf|%oS~w%bbR5-E%4WGoJ>-J%`0q-|}(VSEo;FJsm^~YiKr={>5WiKM>NK zUia-O9Q2*0zH02e5>d5+?MeF;k=rCg_Lffa<>5h-eTy!te&8R%I0)@0v75)A4K!M> z#P^Ftd(AlQ9>pm8IjFS3xTotU9aNMcJqvND=VtD$JsoBfkxy&s=g4Ji6_SJunC6od zJtJ6MDiP)tV{2Q(3VTcTS@!FbFW&lF%g4tP(QxdMlN%GJzwCH|#}|6dFV%rEzUL|W znq8JRiqn{?Q@(=_4q?uKXjw;niv=1ejwrO42s=#0AqFv11F4*9+^(CmmrcX%jERfr zkBv!s_&OHJ0~=58T#$RaW-8E`Y-_67^Ri;bI=E?>stn3AA^6^L@>4^j5~0=7?9H$5 zgTpmC_emZNx4w3xYs63+q5BArjhUH)!r*pc5#v>^m8V%T!zo1u8ut^7nbybRNvJu5 zRkLxyz(sM4OCceywNFnnJ_%)Z#h8l6Ds8ssE(yU`VokmEgXwT{ZZ7m{a`H-T*XN+& zBJEvi%@Bk`D+9umP?`kcYV1^M{b_I}=XDF{nS<$s=jjFao7YGrrNz01lai_w8q<8| z8Fc#-u4?;y_Y@Vmfb{ZH+2r}OyITBukW4qH-W;d56IxGR+XtQh3W`Zrk=yAfy!t_U z!Afj*4dxG$;5|_(HsO?did_s2(};kU#z!`!)!fC%Ew~og8qY75_d2_E2iOZOLW;B# zl3^}`?FW;C>&(9H=GQX}iYFu_K*K#1n3;V#(QBHguQ+KOO8dj&{3q%>l^pn*e2Or} zjXdZx%gE1V{)X97V^c^(MuC3YiPc6vXX<^PqXmHnbJX!?VCe>K$qv851n;@Z=;(qO17Idlfx7L{hd3%|9o%Y zQ%>}Azo`~7h3AvevbCNP^u*-kWiUwsybCy%O^Fm9M+ghgA597rJv^9&&FCQ&3J`2r zQx>e|sfH-!fPA$eGgyjHpICRCe9L_ccSuW@-myoWvxFp1ODge@kEb{5ONIDb`u1i< z3jqY$g98}dS4})gHP%D&M&1fjkRF!agN%?H2hTGj=nEi=!>%xhD2v0>t zX`gzdrB{Q}W+T%=R`j^@d~T~wxfzW;wzo%oZ^nD>wQe}P80Bb3>B*+o7k;N-=lk8# zHlvbiD1Vy~NCho>ze)`F4kBbFO+;*6NMR}-GQw7}BlbPOhjV2))o2OT>- z1r-UZVWV92j|(6SlOzEjLtnJqn>iYrgo*IsebT+E>71d$FH%~n8AE6Yw;ejF<^*Le z(@9dY?sV+Vr$_5FzP_Kk#4WD9- z2@?`xFUkJf^baLreA#I*`!s`|&)fPU90rz=skU!^UF^79d4k86Ws8+A?aGaDO8*#i z4^B>=K^MDkWmD|0A7a^v@%f)KIq-@+y8p9ZKtD)5L9LHZfkd{Fo;OsrSiP%47HJ{I zHVZy%{FB!}J$Zjt;UFVBd=@XfbL`pL&xIZVYLS8rosJ6%(XJjOL;zrd{7 zZNsYn56pPY~&t zC&|M)!F+G~UWah#xh`DbaYWv>z51#)L>qj7cn#WW;hF?>*&Mqf%GQRD{;{hR7nAav z{Fy4g_ZWvTqB zw+tEQ83+qmymk~ zGdwEJD3a*wmwy(G^6?04tPa31mLdUCjmKijCvi;6Jqo1cRIGa~C~_@rQg}GLs0Th< zyvepA7IZg&?LY%9i>xS^|4`|3h+39Wteg8*qkj$4K0NW=)6J5sD9XvHJ;0cG6n>9< zMa1-O+PCSqT1ydsAewr?5Rv4njWEq<5^zrI$XG52`Z1zs3(I1<@flKX%94^@iP|e@ zqma4#ZE^RJ#n}73ue_+GTq3g#Rk{!9D#T=kpB+jsG z+IX}XZF@&p_)r1}o}$G{&a@Dlm6dro5%(@bIiaL^G$$lJ|9wYoY`XV!I#?30oWTSl zlWLf4Y`!6+IL&`QvJ__xeWrig^%ry8&-Y4Kl~tGj*mlyU4Xh%?7PoF7I+e-ph*QR9 z=!`**6{+sk%bK!~`Td;F6$&8A8M<-6;!&DYhW7?r3L&o(G=xl-GWQ@v3D29MHVKVc z3%FfJ8SG*YW*BZ!%=O;EQCnDL1#3NaIyC0t?jlO-8*K1Ty{pqju%9zPHm_Z(A3CGd zN^YeI;n1F8(VoAcG3wBkPPi@fI;Dm_jqV_2%l#FUcrXyuEz zraBejEr*4&d&&vmlF<@Xq|zjAI+xwqfM6%*Fsx?zhWi>>JTl;oQ+hHt(=XCnd2v`- zIQ-7X^dH67&LfCPGv?L!PTg|miEtNOGSLOM;=-(z-*RT+hmz`gK_>%v=#S9=HTM@8 zd91-GiSO2;YQ5b%r4eN;=z{$fS3U6-#dpR{EG z7u*3IYZ=Dd&dh>Q>bVb`5OnZl8Z9Ki6g>C@J!`F_K8DeyLY`rZ0<22+P@O9nT1h?>EC! z6bN`BCQZN3Bi3y%niFftTMahxVj5~&i42Rd6!3?);5LfQ#2lthM_ICpS*dEE2f@>J zk@yUPrL?j!+xaaTp$3OL>@3^8+qCQ+TpgJGIvm}$R9VEn{}1R= zkE<~Pk#n~BrjpqHx%^e~QxDP1<&0Dbg&d>k&Rpmm`_;vhgWiu%*t?b!6SI&Q73UK5 zq@md{-O;@v@26VuoU74iQ8_W~zg#Vha_98rJE*=eU$cDl=_+ijgWG7@=~0$H3eBJH;5n2M!@)8*BPg}54+EF6dvkKs)S=W_-$vb+_2Xh z4tlEE&LM}d_IBHLCx+GTFC;^RiV58pxTJNe4tMIMgTCJBo26NN-SEMskaC~7j@KA3 zk^ADtVWF7V@j<>yF$`JontQKp5cVEE0TYLk9e5a62<2UvskA5CZHY zb0Xy)*_jxzjl%5d%r$!Qv)1A>ikZKD$$pZ?^QHSBa*}z zou3tCK9VI?^l87}VIRKU%^!e_HK9OLQWT*+rWB6#2`ti?0DPtJjID*yBr64>!Bd_1 zKO$Y}fy2`RVADYK*Gv7!OZMMYgP+s-=G4>_Jr>vr;2&LaE%5;D17NDZX+?nhQys9M zc9KeM%KK{s19JKA{tpK;?7uECpnw3R`j0xRGXZKjfMv4fU7yOqeUcs+p8d-@>iHvK zKJyr?0;&P-KDVM^QYhb4X%1;6z(x!#nt+xA?tg5@@y&lV-d_HIm;Jx)ZvQ`=bU?E0Q`9B+#j#oE#OZ8i;{I&Ky!RVatOH00q!_3E0Ox+ z^dOzM&P7W(%YQA&wg!c3_#yX*axhPu0#}(H^ zU~$86X&mY_Wz?p$NHUdQ4ZsuOH)_L$5SvLZR!N=6T#E-gODwn#Chp5;J8 z<1E!vAXVb!u~|EFu9)4AwN)9=6KTaju+-gH_SZ=PDnP;?{Uk?->KcnJgLFeTP>k*{ z73EcJZ8|B|vu_gXO(X%etbs^))mY;*gQ;3Ym&}lDumpZU3}+6#Lu`sewwCpvU(e|@ z2`=8ajhyidhT4#q6nRpeUux0ar~f1~6V+5hfi!4CsnsYY_q+K8-JKm$E)Ip%YC;j> zg0%4Pd`WdkyJZe@7qu@TSuCUGQG{)~?|om>6p8^wQ%d?5qh46Q7P6{Fw(*aqgtis; zN$GVIg+;pfu@=_J`Vt_kxoDk(zf0oQptE4SL*57TL9Hd#%tc;cW)fzFXoH{e-%>|vWE zYQAex#W7Y6qcq>WdFVwR>W15={Nl84k|}_hiHsILts7?+{Wx;mwQ5>jjWrH=5sI6r z_{VEpt>kyYOub%*pu?oWZ}$gz9Su~qq#(6 z>KLQ^inJ-p>afx>BjDD!@o8Ry@{SC>TA%T>

    G70I+L0YOf(V_fsKstz|ZToE#W_Q#T&B4!kJ`i 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