From fe41cc86f227e20b9c31d40f34431851b3b7599f Mon Sep 17 00:00:00 2001 From: Etienne Boucher Date: Wed, 23 Apr 2025 20:50:49 -0400 Subject: [PATCH 1/3] Moved startTracking to setup() so that it executes after pin & uart initialization --- esp32_wireless_control/firmware/axis.cpp | 5 ----- esp32_wireless_control/firmware/axis.h | 3 +++ esp32_wireless_control/firmware/firmware.ino | 14 +++++++++++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/esp32_wireless_control/firmware/axis.cpp b/esp32_wireless_control/firmware/axis.cpp index ea74ea97..6eb01d0a 100644 --- a/esp32_wireless_control/firmware/axis.cpp +++ b/esp32_wireless_control/firmware/axis.cpp @@ -60,11 +60,6 @@ Axis::Axis(uint8_t axis, uint8_t dirPinforAxis, bool invertDirPin) : stepTimer(4 stepTimer.attachInterupt(&stepTimerDEC_ISR); break; } - - if (DEFAULT_ENABLE_TRACKING == 1 && axisNumber == 1) - { - startTracking(trackingRate, trackingDirection); - } } void Axis::startTracking(trackingRateS rate, bool directionArg) diff --git a/esp32_wireless_control/firmware/axis.h b/esp32_wireless_control/firmware/axis.h index e4cfa93b..293a000c 100644 --- a/esp32_wireless_control/firmware/axis.h +++ b/esp32_wireless_control/firmware/axis.h @@ -27,6 +27,9 @@ class Axis public: Axis(uint8_t axisNumber, uint8_t dirPinforAxis, bool invertDirPin); void startTracking(trackingRateS rate, bool directionArg); + void startTracking() { + startTracking(trackingRate, trackingDirection); + } void stopTracking(); void startSlew(uint64_t rate, bool directionArg); void stopSlew(); diff --git a/esp32_wireless_control/firmware/firmware.ino b/esp32_wireless_control/firmware/firmware.ino index 2e0ee43c..275a49ac 100644 --- a/esp32_wireless_control/firmware/firmware.ino +++ b/esp32_wireless_control/firmware/firmware.ino @@ -448,14 +448,22 @@ void setup() digitalWrite(EN12_n, LOW); // handleExposureSettings(); - // Initialize Wifi and web server - setupWireless(); - if (xTaskCreate(uartTask, "UartTask", 4096, NULL, 1, NULL)) { print_out("\033c"); print_out("Starting uart task"); } + + // Start tracking axis now that pins and UART is initialized +#if defined(DEFAULT_ENABLE_TRACKING) && (DEFAULT_ENABLE_TRACKING == 1) + print_out(c_DIRECTION ? "Tracking with c_DIRECTION: HIGH (North)" + : "Tracking with c_DIRECTION: LOW (South)"); + ra_axis.startTracking(); +#endif // DEFAULT_ENABLE_TRACKING + + // Initialize Wifi and web server + setupWireless(); + if (xTaskCreate(intervalometerTask, "intervalometerTask", 4096, NULL, 1, NULL)) print_out("Starting intervalometer task"); if (xTaskCreatePinnedToCore(webserverTask, "webserverTask", 4096, NULL, 1, NULL, 0)) From 18b1e99d10b3a18b3364824c51c81b2824f55507 Mon Sep 17 00:00:00 2001 From: Etienne Boucher Date: Wed, 23 Apr 2025 22:38:47 -0400 Subject: [PATCH 2/3] Format fix --- esp32_wireless_control/firmware/axis.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/esp32_wireless_control/firmware/axis.h b/esp32_wireless_control/firmware/axis.h index 293a000c..876e994a 100644 --- a/esp32_wireless_control/firmware/axis.h +++ b/esp32_wireless_control/firmware/axis.h @@ -27,9 +27,10 @@ class Axis public: Axis(uint8_t axisNumber, uint8_t dirPinforAxis, bool invertDirPin); void startTracking(trackingRateS rate, bool directionArg); - void startTracking() { + void startTracking() + { startTracking(trackingRate, trackingDirection); - } + } void stopTracking(); void startSlew(uint64_t rate, bool directionArg); void stopSlew(); From e889779d46e1fd7189fd2769cceefd6fb345a5f8 Mon Sep 17 00:00:00 2001 From: Etienne Boucher Date: Wed, 7 May 2025 01:51:38 -0400 Subject: [PATCH 3/3] Feedback changes --- esp32_wireless_control/firmware/axis.h | 4 --- esp32_wireless_control/firmware/firmware.ino | 26 ++++++++++++-------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/esp32_wireless_control/firmware/axis.h b/esp32_wireless_control/firmware/axis.h index 876e994a..e4cfa93b 100644 --- a/esp32_wireless_control/firmware/axis.h +++ b/esp32_wireless_control/firmware/axis.h @@ -27,10 +27,6 @@ class Axis public: Axis(uint8_t axisNumber, uint8_t dirPinforAxis, bool invertDirPin); void startTracking(trackingRateS rate, bool directionArg); - void startTracking() - { - startTracking(trackingRate, trackingDirection); - } void stopTracking(); void startSlew(uint64_t rate, bool directionArg); void stopSlew(); diff --git a/esp32_wireless_control/firmware/firmware.ino b/esp32_wireless_control/firmware/firmware.ino index 275a49ac..d8b30a2c 100644 --- a/esp32_wireless_control/firmware/firmware.ino +++ b/esp32_wireless_control/firmware/firmware.ino @@ -424,6 +424,15 @@ void setupWireless() dnsServer.start(DNS_PORT, WEBSITE_NAME, WiFi.softAPIP()); } +void setupTracking() +{ +#if defined(DEFAULT_ENABLE_TRACKING) && (DEFAULT_ENABLE_TRACKING == 1) + print_out(c_DIRECTION ? "Tracking with c_DIRECTION: HIGH (North)" + : "Tracking with c_DIRECTION: LOW (South)"); + ra_axis.startTracking(ra_axis.trackingRate, ra_axis.trackingDirection); +#endif // DEFAULT_ENABLE_TRACKING +} + void setup() { // Start the debug serial connection @@ -454,22 +463,19 @@ void setup() print_out("Starting uart task"); } - // Start tracking axis now that pins and UART is initialized -#if defined(DEFAULT_ENABLE_TRACKING) && (DEFAULT_ENABLE_TRACKING == 1) - print_out(c_DIRECTION ? "Tracking with c_DIRECTION: HIGH (North)" - : "Tracking with c_DIRECTION: LOW (South)"); - ra_axis.startTracking(); -#endif // DEFAULT_ENABLE_TRACKING - - // Initialize Wifi and web server - setupWireless(); - + if (xTaskCreate(intervalometerTask, "intervalometerTask", 4096, NULL, 1, NULL)) + print_out("Starting intervalometer task"); if (xTaskCreate(intervalometerTask, "intervalometerTask", 4096, NULL, 1, NULL)) print_out("Starting intervalometer task"); if (xTaskCreatePinnedToCore(webserverTask, "webserverTask", 4096, NULL, 1, NULL, 0)) print_out("Starting webserver task"); if (xTaskCreate(dnsserverTask, "dnsserverTask", 2048, NULL, 1, NULL)) print_out("Starting dnsserver task"); + + // Initialize Wifi and web server + setupWireless(); + // Start tracking axis now that pins and UART is initialized + setupTracking(); } void loop()