From 9550b387c91aff7d7577a381043ee3ebf4b95343 Mon Sep 17 00:00:00 2001 From: jonny_l480 Date: Sun, 13 Aug 2023 10:31:51 +0200 Subject: [PATCH 01/11] Config: Replace abInverted with a- and bEnabledPinState Changed config and code for motor driver: Now its possible to configure whether a and b pins are inverted separately e.g. a connected to mosfets (inverted) and b connected directly --- main/config.cpp | 6 ++++-- main/motordrivers.cpp | 24 ++++++++---------------- main/motordrivers.hpp | 3 ++- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/main/config.cpp b/main/config.cpp index 832f984..e0db87e 100644 --- a/main/config.cpp +++ b/main/config.cpp @@ -10,7 +10,8 @@ single100a_config_t configDriverLeft = { .gpio_b = GPIO_NUM_4, .ledc_timer = LEDC_TIMER_0, .ledc_channel = LEDC_CHANNEL_0, - .abInverted = true, + .aEnabledPinState = false, //-> pins inverted (mosfets) + .bEnabledPinState = false, .resolution = LEDC_TIMER_11_BIT, .pwmFreq = 10000 }; @@ -22,7 +23,8 @@ single100a_config_t configDriverRight = { .gpio_b = GPIO_NUM_14, .ledc_timer = LEDC_TIMER_1, .ledc_channel = LEDC_CHANNEL_1, - .abInverted = false, + .aEnabledPinState = true, //-> pins not inverted + .bEnabledPinState = true, .resolution = LEDC_TIMER_11_BIT, .pwmFreq = 10000 }; diff --git a/main/motordrivers.cpp b/main/motordrivers.cpp index fc0f16d..477f861 100644 --- a/main/motordrivers.cpp +++ b/main/motordrivers.cpp @@ -79,14 +79,6 @@ void single100a::init(){ //function to put the h-bridge module in the desired state and duty cycle void single100a::set(motorstate_t state_f, float duty_f){ - //define enabled signal state (gpio high/low) TODO: move this to constructor? - bool enabled; - if (config.abInverted) { - enabled = false; - } else { - enabled = true; - } - //scale provided target duty in percent to available resolution for ledc uint32_t dutyScaled; if (duty_f > 100) { //target duty above 100% @@ -105,29 +97,29 @@ void single100a::set(motorstate_t state_f, float duty_f){ ledc_update_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel); //TODO: to fix bugged state of h-bridge module when idle and start again, maybe try to leave pwm signal on for some time before updating a/b pins? //no brake: (freewheel) - gpio_set_level(config.gpio_a, enabled); - gpio_set_level(config.gpio_b, enabled); + gpio_set_level(config.gpio_a, config.aEnabledPinState); + gpio_set_level(config.gpio_b, config.bEnabledPinState); break; case motorstate_t::BRAKE: ledc_set_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel, 0); ledc_update_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel); //brake: - gpio_set_level(config.gpio_a, !enabled); - gpio_set_level(config.gpio_b, !enabled); + gpio_set_level(config.gpio_a, !config.aEnabledPinState); + gpio_set_level(config.gpio_b, !config.bEnabledPinState); break; case motorstate_t::FWD: ledc_set_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel, dutyScaled); ledc_update_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel); //forward: - gpio_set_level(config.gpio_a, enabled); - gpio_set_level(config.gpio_b, !enabled); + gpio_set_level(config.gpio_a, config.aEnabledPinState); + gpio_set_level(config.gpio_b, !config.bEnabledPinState); break; case motorstate_t::REV: ledc_set_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel, dutyScaled); ledc_update_duty(LEDC_HIGH_SPEED_MODE, config.ledc_channel); //reverse: - gpio_set_level(config.gpio_a, !enabled); - gpio_set_level(config.gpio_b, enabled); + gpio_set_level(config.gpio_a, !config.aEnabledPinState); + gpio_set_level(config.gpio_b, config.bEnabledPinState); break; } ESP_LOGD(TAG, "set module to state=%s, duty=%d/%d, duty_input=%.3f%%", motorstateStr[(int)state_f], dutyScaled, dutyMax, duty_f); diff --git a/main/motordrivers.hpp b/main/motordrivers.hpp index 19da930..71218ea 100644 --- a/main/motordrivers.hpp +++ b/main/motordrivers.hpp @@ -34,7 +34,8 @@ typedef struct single100a_config_t { gpio_num_t gpio_b; ledc_timer_t ledc_timer; ledc_channel_t ledc_channel; - bool abInverted; + bool aEnabledPinState; + bool bEnabledPinState; ledc_timer_bit_t resolution; int pwmFreq; } single100a_config_t; From 86638ff7c560f7cc700193041b9c2ed0de1a1d3d Mon Sep 17 00:00:00 2001 From: jonny_l480 Date: Mon, 14 Aug 2023 23:07:52 +0200 Subject: [PATCH 02/11] V2 - rework connection-plan: new pin assignment, wiring plan Update connection plan with new wiring and pin assignment - add display - add temp sensors - single fan - add rotary encoder Add wiring plan with details about hardware --- connection-plan.drawio.pdf | Bin 1316085 -> 1371552 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/connection-plan.drawio.pdf b/connection-plan.drawio.pdf index 4a430bc70ce69f5a1aa611df81f0ee808ed27fff..28d67e488fe2e5f7ffd1f461be26dff0a4268f5b 100644 GIT binary patch delta 856236 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