From cd366b7005fdeaa20b7f48d24c4bb6e7a0232576 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Feb 2025 11:40:40 -0500 Subject: [PATCH 1/8] Added initial gps logger functionalities --- LoggerFirmware/src/GPSLogger.cpp | 84 ++++++++++++++++++++++++++++++++ LoggerFirmware/src/GPSLogger.h | 1 + 2 files changed, 85 insertions(+) create mode 100644 LoggerFirmware/src/GPSLogger.cpp create mode 100644 LoggerFirmware/src/GPSLogger.h diff --git a/LoggerFirmware/src/GPSLogger.cpp b/LoggerFirmware/src/GPSLogger.cpp new file mode 100644 index 00000000..a6f47f32 --- /dev/null +++ b/LoggerFirmware/src/GPSLogger.cpp @@ -0,0 +1,84 @@ +#include "GPSLogger.h" +#include "serialisation.h" +#include "LogManager.h" +#include "Wire.h" + +namespace gps { + +Logger::Logger(logger::Manager *logManager) +: m_logManager(logManager), m_verbose(false) +{ + m_sensor = new SFE_UBLOX_GNSS(); +} + +Logger::~Logger(void) +{ + delete m_sensor; +} + +bool Logger::begin(void) +{ + // Configure I2C pins for GPS + Wire.begin(33, 36); // SDA, SCL + + if (!m_sensor->begin(Wire)) { + Serial.println("Failed to initialize ZED-F9P GPS"); + return false; + } + + configureDevice(); + return true; +} + +void Logger::configureDevice(void) +{ + // Configure GPS settings + m_sensor->setI2COutput(COM_TYPE_UBX); // Set the I2C port to output UBX only + m_sensor->setNavigationFrequency(5); // Set output rate to 5 Hz + m_sensor->setAutoPVT(true); // Enable automatic PVT messages + m_sensor->setDynamicModel(DYN_MODEL_MARINE); // Set dynamic model for marine applications + + // Configure RTCM message output + m_sensor->enableRTCMmessage(UBX_RTCM_1005, COM_PORT_I2C, 1); // Stationary RTK Reference + m_sensor->enableRTCMmessage(UBX_RTCM_1077, COM_PORT_I2C, 1); // GPS MSM7 + m_sensor->enableRTCMmessage(UBX_RTCM_1087, COM_PORT_I2C, 1); // GLONASS MSM7 + m_sensor->enableRTCMmessage(UBX_RTCM_1127, COM_PORT_I2C, 1); // BeiDou MSM7 + + // Save configuration + m_sensor->saveConfiguration(); +} + +bool Logger::data_available(void) +{ + return m_sensor->getPVT(); +} + +void Logger::update(void) +{ + if (data_available()) { + logGPSData(); + } +} + +void Logger::logGPSData(void) +{ + if (m_logManager == nullptr) return; + + // Create JSON document for logging + StaticJsonDocument<512> doc; + + doc["type"] = "GPS"; + doc["lat"] = m_sensor->getLatitude() / 10000000.0; + doc["lon"] = m_sensor->getLongitude() / 10000000.0; + doc["alt"] = m_sensor->getAltitude() / 1000.0; + doc["fix"] = m_sensor->getFixType(); + doc["siv"] = m_sensor->getSIV(); + doc["acc_h"] = m_sensor->getHorizontalAccuracy() / 1000.0; + doc["acc_v"] = m_sensor->getVerticalAccuracy() / 1000.0; + + String output; + serializeJson(doc, output); + m_logManager->LogData(output.c_str()); +} + +} // namespace gps \ No newline at end of file diff --git a/LoggerFirmware/src/GPSLogger.h b/LoggerFirmware/src/GPSLogger.h new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/LoggerFirmware/src/GPSLogger.h @@ -0,0 +1 @@ + \ No newline at end of file From af737bb2786ef155ed92cc5ceed9505aa9934d66 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Feb 2025 12:23:57 -0500 Subject: [PATCH 2/8] Did not commit header file changes --- LoggerFirmware/src/GPSLogger.h | 31 ++++++++++++++++++++++++++++++- LoggerFirmware/src/main.cpp | 12 ++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/LoggerFirmware/src/GPSLogger.h b/LoggerFirmware/src/GPSLogger.h index 0519ecba..046d189d 100644 --- a/LoggerFirmware/src/GPSLogger.h +++ b/LoggerFirmware/src/GPSLogger.h @@ -1 +1,30 @@ - \ No newline at end of file +#ifndef __GPS_LOGGER_H__ +#define __GPS_LOGGER_H__ + +#include +#include +#include "LogManager.h" + +namespace gps { + +class Logger { +public: + Logger(logger::Manager *logManager); + ~Logger(void); + + bool begin(void); + void update(void); + bool data_available(void); + +private: + SFE_UBLOX_GNSS *m_sensor; + logger::Manager *m_logManager; + bool m_verbose; + + void configureDevice(void); + void logGPSData(void); +}; + +} // namespace gps + +#endif // __GPS_LOGGER_H__ \ No newline at end of file diff --git a/LoggerFirmware/src/main.cpp b/LoggerFirmware/src/main.cpp index 2099e12b..25594964 100644 --- a/LoggerFirmware/src/main.cpp +++ b/LoggerFirmware/src/main.cpp @@ -39,6 +39,7 @@ #include "SupplyMonitor.h" #include "Configuration.h" #include "HeapMonitor.h" +#include "GPSLogger.h" /// Hardware version for the logger implementation (for NMEA2000 declaration) #define LOGGER_HARDWARE_VERSION "2.4.1" @@ -66,6 +67,7 @@ StatusLED *LEDs = nullptr; ///< Pointer to the status L SerialCommand *CommandProcessor = nullptr;///< Pointer for the command processor object mem::MemController *memController = nullptr; ///< Pointer for the storage abstraction logger::SupplyMonitor *supplyMonitor = nullptr; ///< Pointer for the supply voltage monitoring code +gps::Logger *GPSLogger = nullptr; ///< Pointer for the GPS data logger /// \brief Primary setup code for the logger /// @@ -204,6 +206,13 @@ void setup() Serial.printf("DBG: After voltage monitoring start, free heap = %d B, delta = %d B\n", heap.CurrentSize(), heap.DeltaSinceLast()); + Serial.println("Starting GPS logger ..."); + GPSLogger = new gps::Logger(logManager); + if (!GPSLogger->begin()) { + Serial.println("Failed to initialize GPS logger"); + LEDs->SetStatus(StatusLED::Status::sERROR); + } + Serial.println("Setup complete, setting status for normal operations."); LEDs->SetStatus(StatusLED::Status::sNORMAL); @@ -242,4 +251,7 @@ void loop() //Serial.printf("DBG: Supply voltage ADC dropped to %hu\n", supply_voltage); CommandProcessor->EmergencyStop(); } + if (GPSLogger != nullptr) { + GPSLogger->update(); + } } From cfe5cba077b94b1ce246f432fba05c24885b0122 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Feb 2025 12:40:39 -0500 Subject: [PATCH 3/8] Added calibration function --- LoggerFirmware/src/GPSLogger.cpp | 96 +++++++++++++++++++++++++++++++- LoggerFirmware/src/GPSLogger.h | 5 ++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/LoggerFirmware/src/GPSLogger.cpp b/LoggerFirmware/src/GPSLogger.cpp index a6f47f32..e1221ada 100644 --- a/LoggerFirmware/src/GPSLogger.cpp +++ b/LoggerFirmware/src/GPSLogger.cpp @@ -6,7 +6,7 @@ namespace gps { Logger::Logger(logger::Manager *logManager) -: m_logManager(logManager), m_verbose(false) +: m_logManager(logManager), m_verbose(false), m_isCalibrating(false) { m_sensor = new SFE_UBLOX_GNSS(); } @@ -81,4 +81,98 @@ void Logger::logGPSData(void) m_logManager->LogData(output.c_str()); } +bool Logger::runCalibration(void) +{ + if (m_isCalibrating) return false; + + m_isCalibrating = true; + configureCalibration(); + + // Log calibration start + if (m_logManager != nullptr) { + StaticJsonDocument<256> doc; + doc["type"] = "GPS_CAL"; + doc["event"] = "start"; + + String output; + serializeJson(doc, output); + m_logManager->LogData(output.c_str()); + } + + return true; +} + +void Logger::configureCalibration(void) +{ + // Set high precision mode + m_sensor->setAutoPVT(false); + m_sensor->setNavigationFrequency(1); // Reduce to 1Hz during calibration + + // Enable Raw Measurements + m_sensor->enableMeasurement(UBX_RXM_RAWX, true); + m_sensor->enableMeasurement(UBX_RXM_SFRBX, true); + + // Configure Survey-In Mode + m_sensor->enableSurveyMode(300, 2.0); // 300 seconds minimum, 2.0m precision + + // Save the calibration configuration + m_sensor->saveConfiguration(); +} + +bool Logger::isCalibrating(void) +{ + if (!m_isCalibrating) return false; + + bool surveying = m_sensor->getSurveyInActive(); + bool valid = m_sensor->getSurveyInValid(); + + if (!surveying && valid) { + // Calibration completed successfully + stopCalibration(); + return false; + } + + // Log current calibration status + if (m_logManager != nullptr) { + StaticJsonDocument<256> doc; + doc["type"] = "GPS_CAL"; + doc["event"] = "progress"; + doc["observations"] = m_sensor->getSurveyInObservationTime(); + doc["mean_accuracy"] = m_sensor->getSurveyInMeanAccuracy(); + + String output; + serializeJson(doc, output); + m_logManager->LogData(output.c_str()); + } + + return true; +} + +void Logger::stopCalibration(void) +{ + if (!m_isCalibrating) return; + + // Disable Survey-In Mode + m_sensor->disableSurveyMode(); + + // Restore normal operation settings + configureDevice(); + + m_isCalibrating = false; + + // Log calibration completion + if (m_logManager != nullptr) { + StaticJsonDocument<256> doc; + doc["type"] = "GPS_CAL"; + doc["event"] = "complete"; + doc["valid"] = m_sensor->getSurveyInValid(); + doc["total_time"] = m_sensor->getSurveyInObservationTime(); + doc["final_accuracy"] = m_sensor->getSurveyInMeanAccuracy(); + + String output; + serializeJson(doc, output); + m_logManager->LogData(output.c_str()); + } +} + } // namespace gps \ No newline at end of file diff --git a/LoggerFirmware/src/GPSLogger.h b/LoggerFirmware/src/GPSLogger.h index 046d189d..fc58908e 100644 --- a/LoggerFirmware/src/GPSLogger.h +++ b/LoggerFirmware/src/GPSLogger.h @@ -15,14 +15,19 @@ class Logger { bool begin(void); void update(void); bool data_available(void); + bool runCalibration(void); + bool isCalibrating(void); + void stopCalibration(void); private: SFE_UBLOX_GNSS *m_sensor; logger::Manager *m_logManager; bool m_verbose; + bool m_isCalibrating; void configureDevice(void); void logGPSData(void); + void configureCalibration(void); }; } // namespace gps From d4f4b47de6cede4ba4192afe1c5b60529576010d Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Feb 2025 11:50:47 -0500 Subject: [PATCH 4/8] Added error control, chose available raw values for RINEX post processing, added I2C Bus properties to class constructor to allow for different clock speeds and increased buffer to accomodate the new variables. --- LoggerFirmware/src/GPSLogger.cpp | 86 +++++++++++++++++++++++++++----- LoggerFirmware/src/GPSLogger.h | 5 +- 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/LoggerFirmware/src/GPSLogger.cpp b/LoggerFirmware/src/GPSLogger.cpp index e1221ada..5857c560 100644 --- a/LoggerFirmware/src/GPSLogger.cpp +++ b/LoggerFirmware/src/GPSLogger.cpp @@ -20,12 +20,17 @@ bool Logger::begin(void) { // Configure I2C pins for GPS Wire.begin(33, 36); // SDA, SCL + Wire.setClock(400000); // Set I2C clock to 400kHz for faster data transfer + Wire.setBufferSize(2048); // Increase buffer size for larger RAWX messages if (!m_sensor->begin(Wire)) { Serial.println("Failed to initialize ZED-F9P GPS"); return false; } + // Set larger internal buffer for u-blox library + m_sensor->setPacketCfgPayloadSize(2048); + configureDevice(); return true; } @@ -38,11 +43,15 @@ void Logger::configureDevice(void) m_sensor->setAutoPVT(true); // Enable automatic PVT messages m_sensor->setDynamicModel(DYN_MODEL_MARINE); // Set dynamic model for marine applications - // Configure RTCM message output - m_sensor->enableRTCMmessage(UBX_RTCM_1005, COM_PORT_I2C, 1); // Stationary RTK Reference - m_sensor->enableRTCMmessage(UBX_RTCM_1077, COM_PORT_I2C, 1); // GPS MSM7 - m_sensor->enableRTCMmessage(UBX_RTCM_1087, COM_PORT_I2C, 1); // GLONASS MSM7 - m_sensor->enableRTCMmessage(UBX_RTCM_1127, COM_PORT_I2C, 1); // BeiDou MSM7 + // Enable messages needed for RINEX post-processing with optimized rates + m_sensor->enableMessage(UBX_NAV_PVT, COM_PORT_I2C, 1); // Position, Velocity, Time (1Hz) + m_sensor->enableMessage(UBX_NAV_HPPOSLLH, COM_PORT_I2C, 1); // High Precision Position (1Hz) + m_sensor->enableMessage(UBX_NAV_TIMEUTC, COM_PORT_I2C, 1); // UTC Time Solution (1Hz) + m_sensor->enableMessage(UBX_RXM_RAWX, COM_PORT_I2C, 1); // Raw GNSS Measurements (1Hz) + + // Configure additional settings for better data quality + m_sensor->setMainTalkerID(SFE_UBLOX_MAIN_TALKER_ID_GP); // Set GPS as main constellation + m_sensor->setHighPrecisionMode(true); // Enable high precision mode // Save configuration m_sensor->saveConfiguration(); @@ -55,19 +64,35 @@ bool Logger::data_available(void) void Logger::update(void) { + static uint32_t lastI2CReset = 0; + if (data_available()) { - logGPSData(); + if (!logGPSData()) { + // If logging fails, check if it's an I2C error + if (Wire.getErrorCode() != 0) { + // Only reset I2C every 5 seconds at most + if (millis() - lastI2CReset > 5000) { + Serial.println("I2C error detected, resetting bus..."); + Wire.flush(); + Wire.begin(33, 36); + Wire.setClock(400000); + lastI2CReset = millis(); + } + } + } } } -void Logger::logGPSData(void) +bool Logger::logGPSData(void) { - if (m_logManager == nullptr) return; + if (m_logManager == nullptr) return false; // Create JSON document for logging - StaticJsonDocument<512> doc; + StaticJsonDocument<2048> doc; // Further increased size for reliability doc["type"] = "GPS"; + + // Standard PVT data doc["lat"] = m_sensor->getLatitude() / 10000000.0; doc["lon"] = m_sensor->getLongitude() / 10000000.0; doc["alt"] = m_sensor->getAltitude() / 1000.0; @@ -76,9 +101,46 @@ void Logger::logGPSData(void) doc["acc_h"] = m_sensor->getHorizontalAccuracy() / 1000.0; doc["acc_v"] = m_sensor->getVerticalAccuracy() / 1000.0; - String output; - serializeJson(doc, output); - m_logManager->LogData(output.c_str()); + // High precision position data + if (m_sensor->getHPPOSLLH()) { + doc["hp_lat"] = m_sensor->getHighResLatitude(); + doc["hp_lon"] = m_sensor->getHighResLongitude(); + doc["hp_alt"] = m_sensor->getHighResAltitude(); + } + + // UTC Time data + if (m_sensor->getNAVTIMEUTC()) { + doc["utc_year"] = m_sensor->getYear(); + doc["utc_month"] = m_sensor->getMonth(); + doc["utc_day"] = m_sensor->getDay(); + doc["utc_hour"] = m_sensor->getHour(); + doc["utc_min"] = m_sensor->getMinute(); + doc["utc_sec"] = m_sensor->getSecond(); + doc["utc_nano"] = m_sensor->getNano(); + } + + // Raw measurement data (for RINEX) + if (m_sensor->getRXMRAWX()) { + JsonArray rawx = doc.createNestedArray("rawx"); + for (int i = 0; i < m_sensor->getNumRXMRAWXmessages(); i++) { + JsonObject meas = rawx.createNestedObject(); + meas["pr"] = m_sensor->getRXMRAWXPseudorange(i); + meas["cp"] = m_sensor->getRXMRAWXCarrierPhase(i); + meas["do"] = m_sensor->getRXMRAWXDoppler(i); + meas["gnss"] = m_sensor->getRXMRAWXGNSSId(i); + meas["sv"] = m_sensor->getRXMRAWXSvId(i); + meas["cno"] = m_sensor->getRXMRAWXCNo(i); + } + } + + try { + String output; + serializeJson(doc, output); + return m_logManager->LogData(output.c_str()); + } catch (const std::exception& e) { + Serial.printf("Error serializing GPS data: %s\n", e.what()); + return false; + } } bool Logger::runCalibration(void) diff --git a/LoggerFirmware/src/GPSLogger.h b/LoggerFirmware/src/GPSLogger.h index fc58908e..ad2db7b7 100644 --- a/LoggerFirmware/src/GPSLogger.h +++ b/LoggerFirmware/src/GPSLogger.h @@ -24,9 +24,12 @@ class Logger { logger::Manager *m_logManager; bool m_verbose; bool m_isCalibrating; + static const uint32_t I2C_BUFFER_SIZE = 2048; + static const uint32_t I2C_CLOCK_SPEED = 400000; + uint32_t m_lastI2CError; void configureDevice(void); - void logGPSData(void); + bool logGPSData(void); void configureCalibration(void); }; From b6e4e2d578895915825baeafa25e3c297e52f2bd Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Feb 2025 11:56:09 -0500 Subject: [PATCH 5/8] Cleaned up error handling --- LoggerFirmware/src/GPSLogger.cpp | 25 +++++++++++-------------- LoggerFirmware/src/GPSLogger.h | 2 -- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/LoggerFirmware/src/GPSLogger.cpp b/LoggerFirmware/src/GPSLogger.cpp index 5857c560..57df2288 100644 --- a/LoggerFirmware/src/GPSLogger.cpp +++ b/LoggerFirmware/src/GPSLogger.cpp @@ -20,8 +20,8 @@ bool Logger::begin(void) { // Configure I2C pins for GPS Wire.begin(33, 36); // SDA, SCL - Wire.setClock(400000); // Set I2C clock to 400kHz for faster data transfer - Wire.setBufferSize(2048); // Increase buffer size for larger RAWX messages + Wire.setClock(I2C_CLOCK_SPEED); // Set I2C clock to 400kHz for faster data transfer + Wire.setBufferSize(I2C_BUFFER_SIZE); // Increase buffer size for larger RAWX messages if (!m_sensor->begin(Wire)) { Serial.println("Failed to initialize ZED-F9P GPS"); @@ -29,7 +29,7 @@ bool Logger::begin(void) } // Set larger internal buffer for u-blox library - m_sensor->setPacketCfgPayloadSize(2048); + m_sensor->setPacketCfgPayloadSize(I2C_BUFFER_SIZE); configureDevice(); return true; @@ -67,17 +67,14 @@ void Logger::update(void) static uint32_t lastI2CReset = 0; if (data_available()) { - if (!logGPSData()) { - // If logging fails, check if it's an I2C error - if (Wire.getErrorCode() != 0) { - // Only reset I2C every 5 seconds at most - if (millis() - lastI2CReset > 5000) { - Serial.println("I2C error detected, resetting bus..."); - Wire.flush(); - Wire.begin(33, 36); - Wire.setClock(400000); - lastI2CReset = millis(); - } + if (!logGPSData() && Wire.getErrorCode() != 0) { + // Only reset I2C every 5 seconds at most + if (millis() - lastI2CReset > 5000) { + Serial.println("I2C error detected, resetting bus..."); + Wire.flush(); + Wire.begin(33, 36); + Wire.setClock(I2C_CLOCK_SPEED); + lastI2CReset = millis(); } } } diff --git a/LoggerFirmware/src/GPSLogger.h b/LoggerFirmware/src/GPSLogger.h index ad2db7b7..4fbddbcd 100644 --- a/LoggerFirmware/src/GPSLogger.h +++ b/LoggerFirmware/src/GPSLogger.h @@ -22,11 +22,9 @@ class Logger { private: SFE_UBLOX_GNSS *m_sensor; logger::Manager *m_logManager; - bool m_verbose; bool m_isCalibrating; static const uint32_t I2C_BUFFER_SIZE = 2048; static const uint32_t I2C_CLOCK_SPEED = 400000; - uint32_t m_lastI2CError; void configureDevice(void); bool logGPSData(void); From 6e11d68371e1b3a4bdf03eb3b911d9a2e848dd77 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Feb 2025 11:58:53 -0500 Subject: [PATCH 6/8] Added gps_cal as an available command --- LoggerFirmware/src/SerialCommand.cpp | 18 ++++++++++++++++++ LoggerFirmware/src/SerialCommand.h | 3 +++ LoggerFirmware/src/main.cpp | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 LoggerFirmware/src/SerialCommand.h diff --git a/LoggerFirmware/src/SerialCommand.cpp b/LoggerFirmware/src/SerialCommand.cpp index 0fcc8804..ba1f2721 100644 --- a/LoggerFirmware/src/SerialCommand.cpp +++ b/LoggerFirmware/src/SerialCommand.cpp @@ -97,6 +97,8 @@ SerialCommand::SerialCommand(nmea::N2000::Logger *CANLogger, nmea::N0183::Logger Serial.printf("ERR: Failed to start WiFi interface.\n"); } } + + m_commandParser.addCommand("gps_cal", std::bind(&SerialCommand::HandleGPSCalibration, this)); } /// Default destructor for the SerialCommand object. This deallocates the BLE service object, @@ -1735,3 +1737,19 @@ bool SerialCommand::EmitJSON(String const& source, CommandSource chan) } return true; } + +void SerialCommand::HandleGPSCalibration(void) +{ + if (GPSLogger == nullptr) { + Serial.println("ERR: GPS Logger not initialized"); + return; + } + + if (GPSLogger->runCalibration()) { + Serial.println("INF: GPS calibration started"); + Serial.println("INF: Device must remain stationary for calibration"); + Serial.println("INF: Use 'gps_status' to check calibration progress"); + } else { + Serial.println("ERR: Could not start GPS calibration (already running?)"); + } +} diff --git a/LoggerFirmware/src/SerialCommand.h b/LoggerFirmware/src/SerialCommand.h new file mode 100644 index 00000000..f781a250 --- /dev/null +++ b/LoggerFirmware/src/SerialCommand.h @@ -0,0 +1,3 @@ +// Add to the private section +private: + void HandleGPSCalibration(void); // New command handler \ No newline at end of file diff --git a/LoggerFirmware/src/main.cpp b/LoggerFirmware/src/main.cpp index 25594964..c8c5c56b 100644 --- a/LoggerFirmware/src/main.cpp +++ b/LoggerFirmware/src/main.cpp @@ -42,7 +42,7 @@ #include "GPSLogger.h" /// Hardware version for the logger implementation (for NMEA2000 declaration) -#define LOGGER_HARDWARE_VERSION "2.4.1" +#define LOGGER_HARDWARE_VERSION "2.5.0" const unsigned long TransmitMessages[] PROGMEM={0}; ///< List of messages the logger transmits (null set) const unsigned long ReceiveMessages[] PROGMEM = From 739b5828cd36d98ef00cc8c5323fab0712f0436d Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Feb 2025 12:21:49 -0500 Subject: [PATCH 7/8] Forced IMU to be disabled until further testing --- LoggerFirmware/src/Configuration.cpp | 2 +- LoggerFirmware/src/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LoggerFirmware/src/Configuration.cpp b/LoggerFirmware/src/Configuration.cpp index bf5546db..0675c6aa 100644 --- a/LoggerFirmware/src/Configuration.cpp +++ b/LoggerFirmware/src/Configuration.cpp @@ -218,7 +218,7 @@ DynamicJsonDocument ConfigJSON::ExtractConfig(bool secure) LoggerConfig.GetConfigBinary(Config::ConfigParam::CONFIG_UPLOAD_B, upload_online); params["enable"]["nmea0183"] = nmea0183_enable; params["enable"]["nmea2000"] = nmea2000_enable; - params["enable"]["imu"] = imu_enable; + params["enable"]["imu"] = 0; //imu_enable; params["enable"]["powermonitor"] = powmon_enable; params["enable"]["sdmmc"] = sdmmc_enable; params["enable"]["udpbridge"] = udp_bridge_enable; diff --git a/LoggerFirmware/src/main.cpp b/LoggerFirmware/src/main.cpp index c8c5c56b..ee8a8c00 100644 --- a/LoggerFirmware/src/main.cpp +++ b/LoggerFirmware/src/main.cpp @@ -42,7 +42,7 @@ #include "GPSLogger.h" /// Hardware version for the logger implementation (for NMEA2000 declaration) -#define LOGGER_HARDWARE_VERSION "2.5.0" +#define LOGGER_HARDWARE_VERSION "2.6.0" const unsigned long TransmitMessages[] PROGMEM={0}; ///< List of messages the logger transmits (null set) const unsigned long ReceiveMessages[] PROGMEM = From 19c6e96a030b7096f884e4817cd28c319c82e809 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Feb 2025 12:30:07 -0500 Subject: [PATCH 8/8] =?UTF-8?q?Forced=20IMU=20to=20be=20disabled=20until?= =?UTF-8?q?=20further=20testing=1B[A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LoggerFirmware/src/Configuration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoggerFirmware/src/Configuration.cpp b/LoggerFirmware/src/Configuration.cpp index 0675c6aa..bf5546db 100644 --- a/LoggerFirmware/src/Configuration.cpp +++ b/LoggerFirmware/src/Configuration.cpp @@ -218,7 +218,7 @@ DynamicJsonDocument ConfigJSON::ExtractConfig(bool secure) LoggerConfig.GetConfigBinary(Config::ConfigParam::CONFIG_UPLOAD_B, upload_online); params["enable"]["nmea0183"] = nmea0183_enable; params["enable"]["nmea2000"] = nmea2000_enable; - params["enable"]["imu"] = 0; //imu_enable; + params["enable"]["imu"] = imu_enable; params["enable"]["powermonitor"] = powmon_enable; params["enable"]["sdmmc"] = sdmmc_enable; params["enable"]["udpbridge"] = udp_bridge_enable;