From d621bea6da2f5acd950bd0572d6089520ee0cd09 Mon Sep 17 00:00:00 2001 From: Vanessa Brown Date: Wed, 17 Sep 2025 01:51:44 -0400 Subject: [PATCH 1/7] Add Mode 1/2 option for LPS28DFW sensor with SD card persistence --- Firmware/OpenLog_Artemis/autoDetect.ino | 2 +- Firmware/OpenLog_Artemis/menuAttachedDevices.ino | 11 +++++++++++ Firmware/OpenLog_Artemis/nvm.ino | 3 +++ Firmware/OpenLog_Artemis/settings.h | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Firmware/OpenLog_Artemis/autoDetect.ino b/Firmware/OpenLog_Artemis/autoDetect.ino index 1531008..02859f6 100644 --- a/Firmware/OpenLog_Artemis/autoDetect.ino +++ b/Firmware/OpenLog_Artemis/autoDetect.ino @@ -440,7 +440,7 @@ bool beginQwiicDevices() temp->online = tempDevice->begin(temp->address, qwiic) == LPS28DFW_OK; lps28dfw_md_t modeConfig = { - .fs = LPS28DFW_1260hPa, // Full scale range + .fs = (nodeSetting->mode == 2) ? LPS28DFW_4000hPa : LPS28DFW_1260hPa, // Full scale range .odr = LPS28DFW_ONE_SHOT, // Output data rate .avg = LPS28DFW_4_AVG, // Average filter .lpf = LPS28DFW_LPF_DISABLE // Low-pass filter diff --git a/Firmware/OpenLog_Artemis/menuAttachedDevices.ino b/Firmware/OpenLog_Artemis/menuAttachedDevices.ino index 6214bbd..083e2f9 100644 --- a/Firmware/OpenLog_Artemis/menuAttachedDevices.ino +++ b/Firmware/OpenLog_Artemis/menuAttachedDevices.ino @@ -873,6 +873,10 @@ void menuConfigure_LPS28DFW(void *configPtr) SerialPrint(F("3) Log Temperature: ")); if (sensorSetting->logTemperature == true) SerialPrintln(F("Enabled")); else SerialPrintln(F("Disabled")); + + SerialPrint(F("4) Toggle Pressure Range: ")); + if (sensorSetting->mode == 1) SerialPrintln(F("Mode 1 (260 - 1260 hPa)")); + else SerialPrintln(F("Mode 2 (260 - 4000 hPa)")); } SerialPrintln(F("x) Exit")); @@ -886,6 +890,13 @@ void menuConfigure_LPS28DFW(void *configPtr) sensorSetting->logPressure ^= 1; else if (incoming == '3') sensorSetting->logTemperature ^= 1; + else if (incoming == '4') // <-- NEW: Mode toggle + { + if (sensorSetting->mode == 1) + sensorSetting->mode = 2; + else + sensorSetting->mode = 1; + } else if (incoming == 'x') break; else if (incoming == STATUS_GETBYTE_TIMEOUT) diff --git a/Firmware/OpenLog_Artemis/nvm.ino b/Firmware/OpenLog_Artemis/nvm.ino index 9b353a2..0871d0d 100644 --- a/Firmware/OpenLog_Artemis/nvm.ino +++ b/Firmware/OpenLog_Artemis/nvm.ino @@ -622,6 +622,7 @@ void recordDeviceSettingsToFile() settingsFile.println((String)base + "log=" + nodeSetting->log); settingsFile.println((String)base + "logPressure=" + nodeSetting->logPressure); settingsFile.println((String)base + "logTemperature=" + nodeSetting->logTemperature); + settingsFile.println((String)base + "mode=" + nodeSetting->mode); } break; case DEVICE_PHT_BME280: @@ -1206,6 +1207,8 @@ bool parseDeviceLine(char* str) { nodeSetting->logPressure = d; else if (strcmp(deviceSettingName, "logTemperature") == 0) nodeSetting->logTemperature = d; + else if (strcmp(deviceSettingName, "mode") == 0) + nodeSetting->mode = d; else SerialPrintf2("Unknown device setting: %s\r\n", deviceSettingName); } diff --git a/Firmware/OpenLog_Artemis/settings.h b/Firmware/OpenLog_Artemis/settings.h index 3bc67a0..720a5af 100644 --- a/Firmware/OpenLog_Artemis/settings.h +++ b/Firmware/OpenLog_Artemis/settings.h @@ -101,6 +101,7 @@ struct struct_LPS28DFW { bool log = true; bool logPressure = true; bool logTemperature = true; + uint8_t mode = 1; //Allow selection of pressure mode 1 (260-1060 hPa) or mode 2 (260-4000 hPa) unsigned long powerOnDelayMillis = minimumQwiicPowerOnDelay; // Wait for at least this many millis before communicating with this device. Increase if required! }; From 00056804a292e097098257f7b84571ac4a658f26 Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Thu, 6 Nov 2025 15:54:32 +0000 Subject: [PATCH 2/7] Update Dockerfile. Workflow uses Dockerfile --- .github/workflows/non-release-build.yml | 81 ++-------------- Dockerfile | 82 ---------------- Firmware/Dockerfile | 108 +++++++++++++++++++++ {Extras => Firmware/Extras}/UartPower3.zip | Bin {Extras => Firmware/Extras}/spi.diff | 0 Firmware/compile_with_docker.bat | 4 + 6 files changed, 121 insertions(+), 154 deletions(-) delete mode 100644 Dockerfile create mode 100644 Firmware/Dockerfile rename {Extras => Firmware/Extras}/UartPower3.zip (100%) rename {Extras => Firmware/Extras}/spi.diff (100%) create mode 100644 Firmware/compile_with_docker.bat diff --git a/.github/workflows/non-release-build.yml b/.github/workflows/non-release-build.yml index 2902797..3060036 100644 --- a/.github/workflows/non-release-build.yml +++ b/.github/workflows/non-release-build.yml @@ -29,83 +29,20 @@ jobs: - name: Get firmware version 2 run: echo "firmwareMajorMinor=-V10-v${{ env.firmwareMajor }}${{ env.firmwareMinor }}" >> "$GITHUB_ENV" - - name: Setup Arduino CLI - uses: arduino/setup-arduino-cli@v1 - - - name: Start config file - run: arduino-cli config init --additional-urls "https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json" - - - name: Update index - run: arduino-cli core update-index - - - name: Install platform - run: arduino-cli core install "Sparkfun:apollo3@2.2.1" - - - name: Get Known Libraries - run: arduino-cli lib install - "SdFat@2.2.2" - "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library" - "SparkFun I2C Mux Arduino Library" - "SparkFun CCS811 Arduino Library" - "SparkFun VL53L1X 4m Laser Distance Sensor" - "SparkFun BME280" - "SparkFun LPS25HB Pressure Sensor Library" - "SparkFun VEML6075 Arduino Library" - "SparkFun PHT MS8607 Arduino Library" - "SparkFun MCP9600 Thermocouple Library" - "SparkFun SGP30 Arduino Library" - "SparkFun VCNL4040 Proximity Sensor Library" - "SparkFun MS5637 Barometric Pressure Library" - "SparkFun High Precision Temperature Sensor TMP117 Qwiic" - "SparkFun u-blox GNSS Arduino Library" - "SparkFun 6DoF ISM330DHCX" - "SparkFun Qwiic Scale NAU7802 Arduino Library" - "SparkFun SCD30 Arduino Library" - "SparkFun Qwiic Humidity AHT20" - "SparkFun SHTC3 Humidity and Temperature Sensor Library" - "SparkFun ADS122C04 ADC Arduino Library" - "SparkFun MicroPressure Library" - "SparkFun Particle Sensor Panasonic SN-GCJA5" - "SparkFun SGP40 Arduino Library" - "SparkFun Qwiic Button and Qwiic Switch Library" - "SparkFun Bio Sensor Hub Library" - "SparkFun MMC5983MA Magnetometer Arduino Library" - "SparkFun ADS1015 Arduino Library" - "SparkFun KX13X Arduino Library" - "SparkFun SDP3x Arduino Library" - "SparkFun LPS28DFW Arduino Library" - "SparkFun VEML7700 Arduino Library" - "SparkFun TMP102 Breakout" - - - name: Enable external libs - run: arduino-cli config set library.enable_unsafe_install true - - - name: Get Libraries - run: arduino-cli lib install --git-url - https://github.com/bluerobotics/BlueRobotics_MS5837_Library.git - - - name: Enable ICM20948 DMP - run: sed -i 's|//#define ICM_20948_USE_DMP|#define ICM_20948_USE_DMP|g' /home/runner/Arduino/libraries/SparkFun_9DoF_IMU_Breakout_-_ICM_20948_-_Arduino_Library/src/util/ICM_20948_C.h - - - name: Patch Apollo3 Core + - name: Run Dockerfile and copy files run: | - cd ./Extras - unzip UartPower3.zip - cp HardwareSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h - cp HardwareSerial.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp - cp UnbufferedSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h - cp serial_api.c /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c - cp libmbed-os.a /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a - cp SPI.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src/SPI.cpp - - - name: Compile Sketch - run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino + cd ./Firmware + docker build -t openlog_artemis_image --no-cache . + docker create --name=openlog_artemis_container openlog_artemis_image:latest + mkdir ./build + docker cp openlog_artemis_container:/${{ env.FILENAME_PREFIX }}.ino.bin ./build + docker container rm openlog_artemis_container - name: Rename binary run: | - cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ + cd ./Firmware/build mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin - echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" + echo "targetBinary=./Firmware/build/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" - name: Upload binary to action uses: actions/upload-artifact@v4 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 01369fc..0000000 --- a/Dockerfile +++ /dev/null @@ -1,82 +0,0 @@ -FROM ubuntu:latest - -ENV DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && apt-get install -y curl git unzip && apt-get clean - -RUN curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/local/bin sh - -RUN arduino-cli config init - -RUN arduino-cli config add board_manager.additional_urls https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json - -RUN arduino-cli core update-index -RUN arduino-cli core install "Sparkfun:apollo3@2.2.1" - -RUN arduino-cli lib update-index - -# RUN arduino-cli lib install "SparkFun Qwiic Power Switch Arduino Library" -RUN arduino-cli lib install "SdFat@2.2.0" -RUN arduino-cli lib install "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library" -RUN arduino-cli lib install "SparkFun I2C Mux Arduino Library" -RUN arduino-cli lib install "SparkFun CCS811 Arduino Library" -RUN arduino-cli lib install "SparkFun VL53L1X 4m Laser Distance Sensor" -RUN arduino-cli lib install "SparkFun BME280" -RUN arduino-cli lib install "SparkFun LPS25HB Pressure Sensor Library" -RUN arduino-cli lib install "SparkFun VEML6075 Arduino Library" -RUN arduino-cli lib install "SparkFun PHT MS8607 Arduino Library" -RUN arduino-cli lib install "SparkFun MCP9600 Thermocouple Library" -RUN arduino-cli lib install "SparkFun SGP30 Arduino Library" -RUN arduino-cli lib install "SparkFun VCNL4040 Proximity Sensor Library" -RUN arduino-cli lib install "SparkFun MS5637 Barometric Pressure Library" -RUN arduino-cli lib install "SparkFun High Precision Temperature Sensor TMP117 Qwiic" -RUN arduino-cli lib install "SparkFun u-blox GNSS Arduino Library" -RUN arduino-cli lib install "SparkFun 6DoF ISM330DHCX" -RUN arduino-cli lib install "SparkFun Qwiic Scale NAU7802 Arduino Library" -RUN arduino-cli lib install "SparkFun SCD30 Arduino Library" -RUN arduino-cli lib install "SparkFun Qwiic Humidity AHT20" -RUN arduino-cli lib install "SparkFun SHTC3 Humidity and Temperature Sensor Library" -RUN arduino-cli lib install "SparkFun ADS122C04 ADC Arduino Library" -RUN arduino-cli lib install "SparkFun MicroPressure Library" -RUN arduino-cli lib install "SparkFun Particle Sensor Panasonic SN-GCJA5" -RUN arduino-cli lib install "SparkFun SGP40 Arduino Library" -RUN arduino-cli lib install "SparkFun Qwiic Button and Qwiic Switch Library" -RUN arduino-cli lib install "SparkFun Bio Sensor Hub Library" -RUN arduino-cli lib install "SparkFun MMC5983MA Magnetometer Arduino Library" -RUN arduino-cli lib install "SparkFun ADS1015 Arduino Library" -RUN arduino-cli lib install "SparkFun KX13X Arduino Library" -RUN arduino-cli lib install "SparkFun SDP3x Arduino Library" -RUN arduino-cli lib install "SparkFun LPS28DFW Arduino Library" -RUN arduino-cli lib install "SparkFun VEML7700 Arduino Library" - -# Add BlueRobotics_MS5837_Library from git -WORKDIR /root/Arduino/libraries -RUN curl -L https://github.com/bluerobotics/BlueRobotics_MS5837_Library/archive/refs/heads/master.zip -o ms5837.zip -RUN unzip ms5837.zip - -WORKDIR /work - -ADD . . - -# Patch Apollo Core -WORKDIR /work/Extras -RUN unzip UartPower3.zip -RUN cp HardwareSerial.h /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h -RUN cp HardwareSerial.cpp /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp -RUN cp UnbufferedSerial.h /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h -RUN cp serial_api.c /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c -RUN cp libmbed-os.a /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a - -WORKDIR /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src -RUN patch -p1 < /work/Extras/spi.diff - -# Enable DMP on ICM 20948 -RUN sed -i 's|//#define ICM|#define ICM|g' /root/Arduino/libraries/SparkFun_9DoF_IMU_Breakout_-_ICM_20948_-_Arduino_Library/src/util/ICM_20948_C.h - -# Enable debug symbols -# echo "compiler.c.extra_flags=-MMD -g3" >> /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/platform.local.txt -# echo "compiler.cxx.extra_flags=-MMD -g3" >> /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/platform.local.txt - -WORKDIR /work/Firmware/OpenLog_Artemis - -CMD arduino-cli compile --build-cache-path /tmp/cache -v -e -b SparkFun:apollo3:sfe_artemis_atp diff --git a/Firmware/Dockerfile b/Firmware/Dockerfile new file mode 100644 index 0000000..8a089b8 --- /dev/null +++ b/Firmware/Dockerfile @@ -0,0 +1,108 @@ +FROM ubuntu:latest AS upstream + +ARG DEBIAN_FRONTEND=noninteractive + +# Get curl, git and unzip +RUN apt-get update \ + && apt-get install -y curl git unzip \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Setup Arduino CLI +#RUN curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/local/bin sh +RUN curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh + +# Start config file +RUN arduino-cli config init --additional-urls https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json + +# Update core index +RUN arduino-cli core update-index + +# Update library index +RUN arduino-cli lib update-index + +# Install core +RUN arduino-cli core install "Sparkfun:apollo3@2.2.1" + +# Get known libraries +# RUN arduino-cli lib install "SparkFun Qwiic Power Switch Arduino Library" +RUN arduino-cli lib install "SdFat"@2.2.2 +RUN arduino-cli lib install "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library"@1.3.0 +RUN arduino-cli lib install "SparkFun I2C Mux Arduino Library"@1.0.3 +RUN arduino-cli lib install "SparkFun CCS811 Arduino Library"@2.0.3 +RUN arduino-cli lib install "SparkFun VL53L1X 4m Laser Distance Sensor"@1.2.12 +RUN arduino-cli lib install "SparkFun BME280"@2.0.11 +RUN arduino-cli lib install "SparkFun LPS25HB Pressure Sensor Library"@1.1.1 +RUN arduino-cli lib install "SparkFun VEML6075 Arduino Library"@1.1.5 +RUN arduino-cli lib install "SparkFun PHT MS8607 Arduino Library"@1.0.5 +RUN arduino-cli lib install "SparkFun MCP9600 Thermocouple Library"@1.0.5 +RUN arduino-cli lib install "SparkFun SGP30 Arduino Library"@1.0.5 +RUN arduino-cli lib install "SparkFun VCNL4040 Proximity Sensor Library"@1.0.4 +RUN arduino-cli lib install "SparkFun MS5637 Barometric Pressure Library"@1.0.2 +RUN arduino-cli lib install "SparkFun High Precision Temperature Sensor TMP117 Qwiic"@1.2.5 +RUN arduino-cli lib install "SparkFun u-blox GNSS Arduino Library"@2.2.26 +RUN arduino-cli lib install "SparkFun 6DoF ISM330DHCX"@1.0.6 +RUN arduino-cli lib install "SparkFun Qwiic Scale NAU7802 Arduino Library"@1.0.6 +RUN arduino-cli lib install "SparkFun SCD30 Arduino Library"@1.0.20 +RUN arduino-cli lib install "SparkFun Qwiic Humidity AHT20"@1.0.3 +RUN arduino-cli lib install "SparkFun SHTC3 Humidity and Temperature Sensor Library"@1.1.4 +RUN arduino-cli lib install "SparkFun ADS122C04 ADC Arduino Library"@1.0.4 +RUN arduino-cli lib install "SparkFun MicroPressure Library"@1.0.1 +RUN arduino-cli lib install "SparkFun Particle Sensor Panasonic SN-GCJA5"@1.0.1 +RUN arduino-cli lib install "SparkFun SGP40 Arduino Library"@1.0.4 +RUN arduino-cli lib install "SparkFun Qwiic Button and Qwiic Switch Library"@2.0.6 +RUN arduino-cli lib install "SparkFun Bio Sensor Hub Library"@1.0.6 +RUN arduino-cli lib install "SparkFun MMC5983MA Magnetometer Arduino Library"@1.1.4 +RUN arduino-cli lib install "SparkFun ADS1015 Arduino Library"@2.3.2 +RUN arduino-cli lib install "SparkFun KX13X Arduino Library"@2.0.4 +RUN arduino-cli lib install "SparkFun SDP3x Arduino Library"@1.0.4 +RUN arduino-cli lib install "SparkFun LPS28DFW Arduino Library"@1.0.0 +RUN arduino-cli lib install "SparkFun VEML7700 Arduino Library"@1.0.0 +RUN arduino-cli lib install "SparkFun TMP102 Breakout"@1.1.2 + +# Enable external libs +RUN arduino-cli config set library.enable_unsafe_install true + +# Add BlueRobotics_MS5837_Library from git +RUN arduino-cli lib install --git-url https://github.com/bluerobotics/BlueRobotics_MS5837_Library.git + +# Deploy +FROM upstream AS deployment + +# Add the source files +ADD . . + +# Patch Apollo Core +RUN cd ./Extras \ + && unzip UartPower3.zip \ + && cp HardwareSerial.h /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h \ + && cp HardwareSerial.cpp /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp \ + && cp UnbufferedSerial.h /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h \ + && cp serial_api.c /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c \ + && cp libmbed-os.a /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a \ + && cp SPI.cpp /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src/SPI.cpp + +# Enable DMP on ICM 20948 +RUN sed -i 's|//#define ICM|#define ICM|g' /root/Arduino/libraries/SparkFun_9DoF_IMU_Breakout_-_ICM_20948_-_Arduino_Library/src/util/ICM_20948_C.h + +# Enable debug symbols +# echo "compiler.c.extra_flags=-MMD -g3" >> /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/platform.local.txt +# echo "compiler.cxx.extra_flags=-MMD -g3" >> /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/platform.local.txt + +# Disable Power Loss Protection +RUN cd ./OpenLog_Artemis \ + && sed -i 's|#define noPowerLossProtection|//#define noPowerLossProtection|g' OpenLog_Artemis.ino + +# X04 Hardware +RUN cd ./OpenLog_Artemis \ + && sed -i 's|#define HARDWARE_VERSION_MAJOR 1|#define HARDWARE_VERSION_MAJOR 0|g' OpenLog_Artemis.ino \ + && sed -i 's|#define HARDWARE_VERSION_MINOR 0|#define HARDWARE_VERSION_MINOR 4|g' OpenLog_Artemis.ino + +# Compile +RUN cd ./OpenLog_Artemis \ + && arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp OpenLog_Artemis.ino + +# Copy the compile output. List the files +FROM deployment AS output +COPY --from=deployment ./OpenLog_Artemis/build/SparkFun.apollo3.sfe_artemis_atp / +CMD echo $(ls /*.*) diff --git a/Extras/UartPower3.zip b/Firmware/Extras/UartPower3.zip similarity index 100% rename from Extras/UartPower3.zip rename to Firmware/Extras/UartPower3.zip diff --git a/Extras/spi.diff b/Firmware/Extras/spi.diff similarity index 100% rename from Extras/spi.diff rename to Firmware/Extras/spi.diff diff --git a/Firmware/compile_with_docker.bat b/Firmware/compile_with_docker.bat new file mode 100644 index 0000000..586dea8 --- /dev/null +++ b/Firmware/compile_with_docker.bat @@ -0,0 +1,4 @@ +docker build -t openlog_artemis_firmware --progress=plain --no-cache-filter deployment . +docker create --name=openlog_artemis_container openlog_artemis_firmware:latest +docker cp openlog_artemis_container:/OpenLog_Artemis.ino.bin . +docker container rm openlog_artemis_container From a3e95573606b1c80bd0919f205ae49c09929ba65 Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Fri, 7 Nov 2025 15:54:43 +0000 Subject: [PATCH 3/7] Move LPS28DFW setModeConfig into configureDevice --- Firmware/OpenLog_Artemis/autoDetect.ino | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Firmware/OpenLog_Artemis/autoDetect.ino b/Firmware/OpenLog_Artemis/autoDetect.ino index 02859f6..a0a77f0 100644 --- a/Firmware/OpenLog_Artemis/autoDetect.ino +++ b/Firmware/OpenLog_Artemis/autoDetect.ino @@ -438,14 +438,6 @@ bool beginQwiicDevices() struct_LPS28DFW *nodeSetting = (struct_LPS28DFW *)temp->configPtr; //Create a local pointer that points to same spot as node does if (nodeSetting->powerOnDelayMillis > qwiicPowerOnDelayMillis) qwiicPowerOnDelayMillis = nodeSetting->powerOnDelayMillis; // Increase qwiicPowerOnDelayMillis if required temp->online = tempDevice->begin(temp->address, qwiic) == LPS28DFW_OK; - lps28dfw_md_t modeConfig = - { - .fs = (nodeSetting->mode == 2) ? LPS28DFW_4000hPa : LPS28DFW_1260hPa, // Full scale range - .odr = LPS28DFW_ONE_SHOT, // Output data rate - .avg = LPS28DFW_4_AVG, // Average filter - .lpf = LPS28DFW_LPF_DISABLE // Low-pass filter - }; - tempDevice->setModeConfig(&modeConfig); } break; case DEVICE_PRESSURE_MS5637: @@ -862,7 +854,18 @@ void configureDevice(node * temp) //Nothing to configure break; case DEVICE_PRESSURE_LPS28DFW: - //Nothing to configure + { + LPS28DFW *sensor = (LPS28DFW *)temp->classPtr; + struct_LPS28DFW *sensorSetting = (struct_LPS28DFW *)temp->configPtr; + lps28dfw_md_t modeConfig = + { + .fs = (sensorSetting->mode == 2) ? LPS28DFW_4000hPa : LPS28DFW_1260hPa, // Full scale range + .odr = LPS28DFW_ONE_SHOT, // Output data rate + .avg = LPS28DFW_4_AVG, // Average filter + .lpf = LPS28DFW_LPF_DISABLE // Low-pass filter + }; + sensor->setModeConfig(&modeConfig); + } break; case DEVICE_PHT_BME280: //Nothing to configure From 95f8312039a7aa43a88e79c97b8a7497fa044653 Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Fri, 7 Nov 2025 15:56:38 +0000 Subject: [PATCH 4/7] Update COMPILE_BINARY - to include Dockerfile and compile_with_docker.bat --- COMPILE_BINARY.md | 164 ++++++++++++++---- .../Clone_Repo_To_GitHub_Desktop.png | Bin 0 -> 56580 bytes img/CompileSource/Download_Zip.png | Bin 0 -> 1273 bytes img/CompileSource/Fork_Repo.png | Bin 0 -> 14988 bytes img/CompileSource/compile_me_batch_file.png | Bin 0 -> 89716 bytes 5 files changed, 126 insertions(+), 38 deletions(-) create mode 100644 img/CompileSource/Clone_Repo_To_GitHub_Desktop.png create mode 100644 img/CompileSource/Download_Zip.png create mode 100644 img/CompileSource/Fork_Repo.png create mode 100644 img/CompileSource/compile_me_batch_file.png diff --git a/COMPILE_BINARY.md b/COMPILE_BINARY.md index 1559585..05b1c82 100644 --- a/COMPILE_BINARY.md +++ b/COMPILE_BINARY.md @@ -1,14 +1,125 @@ # OpenLog Artemis : How To Compile The OLA Firmware Binary -These are _abbreviated_ instructions on how to compile the OLA firmware. It's more of an aide-memoire really... Sorry about that. +* [Using Docker](#using-docker) +* [How SparkFun does it](#how-sparkfun-does-it) +* [Using Arduino IDE (Deprecated)](#using-arduino-ide-deprecated) -## Install Arduino IDE +## Using Docker + +Installing the correct version of the Apollo3 core and of each required Arduino library, is tedious and error-prone. Especially on Windows. We've lost count of the number of times code compilation fails on our local machines, because we had the wrong core or library installed, or forgot to patch the core correctly... It is much easier to sandbox the firmware compilation using an environment like [Docker](https://www.docker.com/). + +Docker is open-source. It is our new favourite thing! + +Here is a step-by-step guide for how to install Docker and compile the firmware from scratch: + +### Clone, fork or download the OpenLog_Artemis repo + +To build the OpenLog_Artemis firmware, you obviously need a copy of the source code. + +If you are familiar with Git and GitHub Desktop, you can clone the OpenLog_Artemis repo directly into GitHub Desktop: + +![Clone OpenLog_Artemis with GitHub Desktop](./img/CompileSource/Clone_Repo_To_GitHub_Desktop.png) + +If you want to _contribute_ to OpenLog_Artemis, and already have a GitHub account, you can Fork the repo: + +![Fork OpenLog_Artemis](./img/CompileSource/Fork_Repo.png) + +Clone your fork to your local machine, make changes, and send us a Pull Request. This is exactly what the SparkFun Team do when developing the code. Please use the `release_candidate` branch for any such changes. We are very unlikely to merge anything directly into `main`, unless it is (e.g.) docs corrections or improvements. + +If you don't want to do either of those, you can simply Download a Zip copy of the repo instead. You will receive a complete copy as a Zip file. You can do this from the green **Code** button, or click on the icon below to download a copy of the main (released) branch: + +[![Download ZIP](./img/CompileSource/Download_Zip.png)](https://github.com/sparkfun/OpenLog_Artemis/archive/refs/heads/main.zip "Download ZIP (main branch)") + +For the real Wild West experience, you can also download a copy of the `release_candidate` code branch. This is where the team is actively changing and testing the code, before it becomes a full release. The code there will _usually_ compile and will _usually_ work, but we don't guarantee it! We may be part way through implementing some breaking changes at the time of your download... + +[![Download ZIP - release candidate](./img/CompileSource/Download_Zip.png)](https://github.com/sparkfun/OpenLog_Artemis/archive/refs/heads/release_candidate.zip "Download ZIP (release_candidate branch)") + +### Install Docker Desktop + +* **(Optional)** Head to [Docker](https://www.docker.com/) and create an account. A free "Personal" account will cover occasional compilations of the firmware +* Download and install [Docker Desktop](https://docs.docker.com/get-started/get-docker/) - there are versions for Mac, Windows and Linux. You may need to restart to complete the installation. +* Run the Desktop + * You don't _need_ to have an account and you don't _need_ to be signed in + * You only need to be signed in if you want to store or share your Container on Docker Hub + * If you don't sign in, Docker Desktop will run in Personal mode - which will cover local compilations of the firmware +* On Windows, you may see an error saying "**WSL needs updating** Your version of Windows Subsystem for Linux (WSL) is too old". If you do: + * Open a command prompt + * Type `wsl --update` to update WSL. At the time of writing, this installs Windows Subsystem for Linux 2.6.1 + * Restart the Docker Desktop +* If you are using Docker for the first time, the "What is a container?" and "How do I run a container?" demos are useful - _but not essential_ + * On Windows, you may want to give Docker Desktop permission to access to your Network, so it can access (e.g.) HTML ports + * You can Stop the container and Delete it when you are done +* You may want to prevent Docker from running when your machine starts up + * Uncheck "Start Docker Desktop when you sign in to your computer" in the Desktop settings + +### Using Docker to create the firmware binary + +* **Make sure you have Docker Desktop running.** You don't need to be signed in, but it needs to be running. +* Open a Command Prompt and `cd` into the OpenLog_Artemis folder +* Check you are in the right place. Type `dir` and hit enter. You should see the following files and folders: + +``` + .gitattributes + .github + .gitignore + ADDING_SENSORS.md + Binaries + CHANGELOG.md + COMPILE_BINARY.md + CONTRIBUTING.md + Firmware +``` + +* `cd Firmware` and then `dir` again. You should see: + +``` + compile_with_docker.bat + Dockerfile + Extras + OpenLog_Artemis + Test Sketches +``` + +* The file that does most of the work is the `Dockerfile`. You can run the Dockerfile manually to create a container and image, from which you can extract the firmware binary. + +* But, if you're short on time, simply run `compile_with_docker.bat`. It does everything for you: + +![Output of the compile batch file](./img/CompileSource/compile_me_batch_file.png) + +* Hey presto! You have your newly compiled firmware binary! + +You can then use the [SparkFun Artemis Uploader App](https://github.com/sparkfun/Artemis-Firmware-Upload-GUI) to upload the binary onto the Artemis. See [UPGRADE](./UPGRADE.md) for more instructions. + +On Linux, you will need to convert `compile_with_docker.bat` into a shell script. Or run each of the four docker commands manually to: build the image, create the container, extract the firmware binary, and delete the container: + +``` +docker build -t openlog_artemis_firmware --progress=plain --no-cache-filter deployment . +docker create --name=openlog_artemis_container openlog_artemis_firmware:latest +docker cp openlog_artemis_container:/OpenLog_Artemis.ino.bin . +docker container rm openlog_artemis_container +``` + +## How SparkFun does it + +At SparkFun, we use GitHub Actions and a Workflow to compile each release of the OpenLog Artemis firmware. We run the [compilation workflow](https://github.com/sparkfun/OpenLog_Artemis/blob/main/.github/workflows/build-for-release.yml) directly on GitHub. A virtual ubuntu machine installs the [Arduino CLI](https://github.com/arduino/arduino-cli/releases), installs the Apollo3 Arduino core, patches the core in a couple of places, installs all the required libraries at the required version, and generates the firmware binary for the Artemis. That binary is either uploaded as an Artifact (by [non-release-build](https://github.com/sparkfun/OpenLog_Artemis/blob/main/.github/workflows/non-release-build.yml)) or pushed to the [Binaries Folder](https://github.com/sparkfun/OpenLog_Artemis/tree/main/Binaries) (by [compilation workflow](https://github.com/sparkfun/OpenLog_Artemis/blob/main/.github/workflows/build-for-release.yml)). + +You are welcome to clone or fork this repo and do the exact same thing yourself. But you may need a paid GitHub Pro account to run the GitHub Actions, especially if you keep your clone / fork private. + +You can then download the firmware binary and use the [SparkFun Artemis Uploader App](https://github.com/sparkfun/Artemis-Firmware-Upload-GUI) to upload the binary onto the Artemis. See [UPGRADE](./UPGRADE.md) for more instructions. + +## Using Arduino IDE (Deprecated) + +We strongly suggest using Docker to compile the binary, it is **much** easier. + +These are _abbreviated_ instructions on how to compile the OLA firmware using Arduino IDE. It's more of an aide-memoire really... Sorry about that. + +### Install Arduino IDE Tested version: 1.8.19 (IDE version 2 has not been tested) -## Add Apollo3 To The Additional Boards Manager URLs +### Add Apollo3 To The Additional Boards Manager URLs Open `File \ Preferences` @@ -26,7 +137,7 @@ Click OK Close and re-open the IDE -## Install the Apollo3 Board Package +### Install the Apollo3 Board Package Open `Tools \ Board \ Boards Manager` @@ -34,7 +145,7 @@ Enter `Apollo3` in the search box Install the SparkFun Apollo3 Boards. Tested version: 2.2.1 -## Install All The Required Libraries +### Install All The Required Libraries Copy and paste the following into an empty sketch. Click on each link in turn to install the libraries via the Library Manager: @@ -72,9 +183,10 @@ Copy and paste the following into an empty sketch. Click on each link in turn to // http://librarymanager/All#SparkFun_KX13X // http://librarymanager/All#SparkFun_LPS28DFW_Arduino_Library // http://librarymanager/All#SparkFun_VEML7700 +// http://librarymanager/All#SparkFun_TMP102 ``` -### Blue Robotics MS5837 +#### Blue Robotics MS5837 Please manually download and install the latest version of the Blue Robotics MS5837 library from: @@ -82,7 +194,7 @@ https://github.com/bluerobotics/BlueRobotics_MS5837_Library/archive/refs/heads/m (Version 1.1.1 - available through the Arduino Library Manager - is not the latest version...) -## Download the OLA Firmware Zip +### Download the OLA Firmware Zip Open this link in a web browser to download a complete Zip of the OLA firmware repo: @@ -90,7 +202,7 @@ https://github.com/sparkfun/OpenLog_Artemis/archive/refs/heads/main.zip Unzip it (Extract All files) -## Copy the OLA Source Code +### Copy the OLA Source Code Navigate to the `Firmware` sub-folder @@ -100,7 +212,7 @@ Copy the entire `OpenLog_Artemis` folder from the Zip file into your `Arduino` f C:\Users\\Documents\Arduino\OpenLog_Artemis ``` -## Patch the Apollo3 Core +### Patch the Apollo3 Core The Apollo3 core (2.2.1) requires patching - using code kindly provided by Paulvha. For more information, open [this link](https://github.com/sparkfun/OpenLog_Artemis/issues/117#issuecomment-1085881142) in a web browser. @@ -121,7 +233,7 @@ Unzip it (Extract All files) Follow the instructions contained in `uart_power_3.odt` -In summary: replace the following five files with the ones from `UartPower3.zip` : +In summary: replace the following six files with the ones from `UartPower3.zip` : ``` C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.2.1\cores\arduino\mbed-bridge\core-extend\HardwareSerial.h @@ -129,34 +241,10 @@ C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\ C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.2.1\cores\mbed-os\drivers\UnbufferedSerial.h C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.2.1\cores\mbed-os\targets\TARGET_Ambiq_Micro\TARGET_Apollo3\device\serial_api.c C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.2.1\variants\SFE_ARTEMIS_ATP\mbed\libmbed-os.a -``` - -## Update Apollo3 SPI.cpp - -Open the following file: - -``` C:\Users\\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.2.1\libraries\SPI\src\SPI.cpp ``` -Search for `::end` - -Replace `::end` with: - -``` -void arduino::MbedSPI::end() { - if (dev) { - delete dev; - dev = NULL; - } -} -``` - -Save the updated file - -The extra code prevents badness when the Artemis goes into deep sleep - -## Enable ICM29048 DMP Support +### Enable ICM29048 DMP Support Open the following file: @@ -172,7 +260,7 @@ Uncomment the following line (29): Save the updated file -## Compile / Upload the Code +### Compile / Upload the Code Re-open the Arduino IDE @@ -191,7 +279,7 @@ If you have the OLA connected via USB, you can click the `Upload` (Right-Arrow) If you want to be able to swap between firmware versions more quickly, use the `Sketch \ Export compiled Binary` to create a binary which you can upload with the `Artemis Firmware Upload GUI`. See [UPGRADE.md](./UPGRADE.md) for more details. -## Board Versions +### Board Versions If you are compiling for the Red (SparkFun) OLA: leave the hardware version defines as: @@ -207,7 +295,7 @@ If you have an original Black (SparkX) OLA - way to go! Change those lines to: #define HARDWARE_VERSION_MINOR 4 ``` -## No Power Loss Protection +### No Power Loss Protection To disable the sleep-on-power-loss functionality, uncomment this line: diff --git a/img/CompileSource/Clone_Repo_To_GitHub_Desktop.png b/img/CompileSource/Clone_Repo_To_GitHub_Desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..cbaca354353c94db1f4ce9e85b7e550aa8409edf GIT binary patch literal 56580 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

->N0s1E@A3@f6Lhy?*Tb{FE+2Cwg zhnAfkVlmlanz8pMcl2OMCiHMPkkWMjVIC;(`?vZbn|V8woHr6}>UPbaXVwX0JI~q% zs!lf^M?e+b7U87_l3PC`=$eo3{Pn6P%`;Tl^^>|4%3UB;^QItEy#KqD>k(brBYB_e4J!Wl77Xd^?<32F~!8j zx4(DMa4%AAiE5JaZT91q{-$y1aWX8~@w9#s6=J3dm9C2Gd8e@=$?sX*PoXGWr=A1WGaIVieMB$zSRsz_$0Z_`I}?eyywB&49}Pj*20d}Zc)?kIkjArspAEMvsE&rdxM?;w z2s5@?^=s>so5 zDm;W}b~>)Ib-tOfH!~-en|p9_&{7K4`iWxQO5Zs(Wb8#< z1%Zsh=mu|Ws){%KS@-u?(yLCurg95Aa}f{|`vA*?;P2V1T;w`&-|WTL^;*U4^<7p= z>|?@LXxX75K$a<3lyB&T4cab-|EDa$ZUxw3BpjmoF&j1$IK;#d*nA;{YM%=FU z+j%4-{zmZcJtit$+*#KL>Yc#HtZ}W=aHkRGBnvk9$f*nvHG7Kab8vuKf}c7O@$I4u zA~_JB%5$^RpTfUjOi6)~iHAixu`@14M)Y*6m(wFJ95~&dRHI5tglykEeHqy!eBEY~3>CPr_qfX~Hf^~G-d4AAxE&b_(( z2ExLpPl3C*!)JfEf~RB&|BG{r5{(2}YIkz{H>^CZ_=<*NAKbCe+Y4?9Y~a!JZX#yv z+?F>{SADktAGmDSU07YW2IR;y#qT*wT%oMbH7~+=Ro0JK-fWCDVahVJtgIpN@bDz) z`TluyX%USI_P4`L56|B!^nDs21L0LcdoGBge4|gs2!n{Nmij-QAkE$K)a#2Du5ILV znEHRt{WVilZ?H>Z@v|t`{^WRQXwJ23SL4mFuG+5rY{U4wekIBxr0R*>40R}^wWXFO{g!$K*Kl6`6UxY@#2x zxW!3l>{d_5cE1$=88Q}+^M8Y)8%+&7&7-Y`*fNE2>qEyAo#g#|{pK|*u_co2LtC?j zn79>528Ax#=3K!Gt+QYc>>z*;2PFuWe|wVa-`2>X9yZNeVn>Bk z*w^`)?@q+@`H@{24yXE@JU1aFC2jR|5gE$Lep_j2ear+@J7NExkFblNJ9IC+^T%?z zt%zB#Abb0jt0)L45WYs`1TaD3tfn03Ak@^I^s6NotdDc6_GSI|&(y^pOTR__ z)zzif9;L_*eJ+eBB|D-b6Z)0c2KBw~`qSg%$4*z;>z@z0>(#@b2CNoRS35mf2tD?! z1jz&kx5uhEg>o5)Qx4*@nRvOSD7wgfL6NPfzkV7*-1&Cp;eueD$%jXlTxX1b%Z1*By7vm% z{rs!6lrLnfy+wY=s-;!{s-U4Gz76I4`iri)!k+*JMO07MXv= z6gzqt)H_-HMttn+pVziZqDVd%KPWcC?y9G~8ovBYM`4nWf=Y}NPVbuNl`^G}!OOhH z8CreSrQiJ?f?if4UEO%#_@QMpO$$5Bn6e96EC-qniCY?A*FB5CZ?z*SvDD49_@*5a z89LbZ5$-W=Fg621KBGcc);G3~<@w0#b!VXUt`6pr!d~}y>(XpNO5)=E^R*-B7t80u zi^I8V_w(HJ{j7SaA)4WRL&Gg)#OYm3^CaqaG|CiusHkIRIgCand#$2Fp zSu*4Pn*$w#rI_@BB1$D*T%VAR$U-o;b1jseMM`T-8Y46ge%rnryDzo9!0P9gL2wbS zI>GJPR@A8H>F4R=Fft@AJ5z^nqCRb(J89-apmdd8%9U57pzTYl%eRQHFU%KZiURvI zJ~f_KGBGy?WpXyBFICGlFhmD^=Xx9U?hs0kpK^(4v`S6ga$&%EmhesOklE|GKMlB=yvAwF^SKewKlBRt4PkP&QRMrAWWNECrnz4c@3@tnCxMttnxM`3Uq!?8f& z>Pss*d{y!X1e6(0scCNrmn7>E`8HRq#=&q)S|Ur?H_SKT&A zp;d9j2V6pGH-3j}#+^tf@@4#!(KunhyQ@oa%7URH>^Y?JDi%Th{huM8a+-KwRI&q~ zLRHV{(bvB992M;(y`X%a9EXnk@f!thu&uF3R8uGEH>jS@!ShZx87WPE1WM<`aC!ql z>er%R+5XWZErt83ssdxKuj<;ZR(c?ADgM}~#%0qPHjY)GXazQHUx9L>AI$NWaWtS@ z5Qza#&(7X2DT!2;z17h7rt%Nn0t(hpr^+cIJ0%oN>qd;sQLan1r4DB)2jOy?VVujOJH2TxHOHIk5W>1g zz`zGpJ)+)mz~z2Qd7FdC`-LoOyf%0v?XJi%%^aUyakXhnmlVu$r1?s`zpG|Ro}*vn z!`I(E*A+mU4>UNGN_NALtFb@IcPUG|QFHiHMs80CPS1X&e^YMHu~k=x4%W6YkC!1n zwcE&gqs}dCM8BV`zp6x{z=G^G=_FHwRlMu*QJy4LLRND13O5xu-29t|gme@H6<4;W zhVH3~j8OwC^MBn2z)AfnT5x@Mc@ae)TMS`X@s(n<&-9Kp4B9)TN3b|`)-HTq14G3+ zKf^NC53p>xFSzhD{J%2TbxZ#j4EO=If+1JFFhmmeGDm!X2EnR4js`<}VXyxq5#F7< zFTb`#sboScKm#((iWgmD(-(V&tPs8BY|X=-?Zc&Km=n&7z(MOeOdMn_ zs-Coe*RgyEs9@?>Tcim$7ms!? zw9S@;ROwgWy>i;Qqg?Cvz}+j3cKFPs(w=$!Kep9pSQi>XK0JqThCF09kd! zB9m=zbLIR5{=wagr`R5A^HenZ%u4SC90Lyz;2pI-!jom_)=iRSPn7)%vC>+#YuOpi zN`e8!;+3)w9<%h<7=&Lx5dRN8LS9jf*yhy1A3_$YDW$oRk+I;eEIwq}!^Tk9gH)n@ z{t$iugHyKs?uv)_lVr2`m(SpW0PeS*%)e$>>m0kR3s;@C3f3`MqG9sSEl-`CSh(0! zwUQsyssA~3m1{GttSNBHk`EwZm$RR0CE$u(uHRMij!zuOz#Awn=*ihqmA{TIAw}Dil6P9 zZ$gUJSeIhNV1qv4o^)`NoLxdKgap9q&RShBF8|C>BJcLaFj^PSRnd-O*C*usT7J&l z9%xLjEn1^gP`ve?b9Z$8tz2cJ+P#kesb-b8d@&KQ+g@<78Hjmc>{0S-X^EHHE4&~a zNcxO<$boXQ{~5r7W1=%rYV#s&_Y{Di;0HeE{gxDHzwSlA0|!aC+(!u`=Xms*=e!fd zJ15P8#5upuJ=_oadE-1qq16V{jPG3PP=pEb;UV%Le%0ugzwl1VW?o3Z24}3HFi2 z@w(R~0gyPa7Yz}ttD09x@Q|Y2F`QfLO+T9m<0m>@Do0Li@DS@wJX6#CF?4Ue0@a`7 zj{8)~S`9%*A)yzg>5mDB*gkfr*H;)(VmDKg^Xp`3)|*$Jrn;YfjkIw6(%=odF{w=r zg~>p&nClxvJFo7peouJIGfmHavCRcjC|X@@^+b>P{uE&mKVf{8J$ZXJ*+Nd{Tt|XZim#Fal zJ=729u0>sd>l!hsN=+?=&mOB#v(ndnTXjjfFn7RR^?dmvSc^>f8@fFa8%Eu>6PfhA zME*ye{pD~@lYzw(h2JjbXXrEBlby}kUo_moiB&yhG!A;OSUV%thN{0mP!Wg)(Q5Z=SDd}SUAD{DyS2fF4QyYk5MpuTRL=y=w$7j74%k>NH%CR#{fxQsllUS1|2bUoT%T zS&U{O=2)?DYF3!Mb^&QP)qoQ9@mKF=g0)?37RHZFqHz`HKEm=XH1)HZ)txef106p6 zS5IbGCOew^_^r`#i6lYK4+p#2N=&CMKtL(lQDHLF+Z^arsH*}~<LqA&}3@%TO z953aGj|Cmt!*YHkj}I$6=!KD^Ej_yi?dUR%ebW43*&XGsu{hoR?FM4j;2<(RL|6t7 z4o9K4Ku?EnYhBMP?L3Q{(81oOp64$$jk&b>`&QVhO=B+7G5X>mhg<#qk!)4>f04&> zs(otND1&C<1TGR!4^Jql?$vAoi~@U^hi$Rwc_knw;|axIC_gPZp?Y^1XqyaM0zvE2 z-0G2zTL(LECLJshWlZW`ZcSlU(pbnE!7B`Z68dPL#?Vos&!1{{{tm}!_Y_!Z-_&E;w<(mKCQsNr z$pmTQl_hN~)M}i2bi+UGB)W&&!79f*$<+LL8xdWr@AHC?AQ*wp$aVRwVA%Z0sOre*S0-5-DkY82aK$}XWL ztF_sO#%>%{tO;M9>F%mBy60^>VN}l}HN!zzXK>j~Q{Xjc zYc6o1D!^_;KhazYZ!_48EPUtuq$-6l9wtCaxtB0lg;nMLhQs^&C%IqumIY}$2#}3e zmKZlDy$+-yfj8y0&(*wU9H)pc$OmKnK6stYC(L!FnA!x&zkWw+ ziHe9>g7|OFNMFk(1>MbX@=3|7L{s`c9wF*x{`4s&tN*OwF$sxJOnU@EoTKLJ4I+5R z8z~tOzhz{lJ2nTvu!NasteZS?_o;rvly6ElqV*OOC(bmIZmaCcAT9O@Tqov}o>=93 zj3Hm+Yzdts%J=Foo4##$)3v`Qz^hqKJ7(|HbY1df+uL>|3>*pl@)OvLElC)Rl6149 z3U5&9xE&$l5SW$~DYZF4{&`xnl#`M-wu0a@Eu;R0Iz7tXTu6V00lSp8>VmO5jB$pa z($kMv7H{CgN{6i;7oNPl0ONU$qppt&vL)0r>1v?q9iDvtZnMK#6;U+uEZ9jMt$?L` z%Rrm((-kAXv;3*(MwIJDT9deryv0uzpPx0HeODIDm@Bu=#C9qHXHaLW{BLfoO-Achw5&eR>UQ#Vi_%?q=!lGg0;Lu2_Y3GNF@k_ zNgorz7!#9(kAzQCbvY|ly0Q%VPQbrVy#dk1G(n3`@Lw#m7Qiyws_+eNHDG784Ov72 z7+z%|j1y)V$u(Qj74~T|b~o_VKSy1^<1gpK@F@ zXt~v!`JS&)$WiAkejr?-{c^=`yV}~P+5R#_-?{q*-8r!G==0@CeWzy{;UmZf4+|1! z-G+6JJ+FFBa!>3a0c~j5ZVfux;}`QXL?Yv-iw(XXR&76}xZWHmc+Ii)O=uWqFXJ%s zT-MT}xZJ*7Wi7KIT5hV1{*?buUpWA;F4!+Ki}7eUJ1`3!N4xyLi|p&-KUd-aAce_8 zhi?4IVMT#AIML@3Dgz|y1dm(z`UP5NK}QUgD~xXb9^^w%c{Mcxtc^`3M}RLd9shp` z7*%Xwel7_uQr{IrYTT2D1%8}PZ$dNl`M)^iRxmQy1CeXm7E#If0ZGs*(7V%6?caV6 zbP%F7`fJ=sjU9IFgL9+xuh6lM%<>z6rNJwcIpY5*{s(vcPa^!^_5W%?ZIcl4@yO2w zaH5JgY<3TA)#Zh;$dJ2Ap3TVmMzvkl47XzHM{){XO5_p_vjhD6z))&k<6p>rnk*c z>$kRvuxM!Nj%H_PhdLW8c`dUT2xQ|C7&Hw*kGE1?G>Uo&r)A>3x@_WEg8{j3%>Q%49>li<6zJ2iJ`(xBuKo5Qu7v1lgJh*bdwyxqafPdz) zb+zF2zkwslR-{7nVVIOQgaG8tNnF;3JsajqYQ;N$6ZFoIC3^wF=Li;lr{#EE8Msx1 zdRhi~kpq@S0GHT8d=l?d!%pt62@m(J$IdF-xprY}mf0t`hEo(^Y%z9cs&E1^T!>%+ zf1YD7H0tkgEnX)^v!qv84f32#4PZHd-xLNCOuZP*$guFQALZ!wT&FzKP`$>M4T|+ooitmrg zYt;RYC$5~?H`Bf`73Vz8hCr^Pqf-X>%Y^x+KMA-kkcC|ivOpj)F*jiuv=Rp1c4al+ zjqmKy55Pqo`VEzL$%AfHbZ!ZEfMy;>8lhJ?nm@{mO~ z);qyV4;>xU5Y{_+MARc=J%Sh-87+SfY$KJWN~7SCgYMfjzYVN*Cc3dYcnAI!8anZP z>yZgfp8La-SE6L%S@kE%W!R0b1d_Wi;TY|_T4FYj*|(?ZYaBM6Z4aOAD#%NiyCHEm zT9QhEQFt zAVwO-Wj}155GBCWd?50DlPPMtGVk-eLUq`hdQG}LR*JADbo&T=_^iFGXsXfzo55eu z6h$ddcYC?>LH5do4s7idFwS8yv>#EAK~P^ke`OO}tO?K==XqDk zNa4GjQL0=UqPeu>u)sFT_QPdHc9)G$fzT?+dm-f|cVwR<^i}!DTIRhPmPcI*$zx5F z=1IkMa-QQn%*>>>do{hA+qu0tvAy64B}Uua?MF)%8{QOJx2|BKw?80^tlP7>cx$rW z@G1O`zS)u{yW3mOigQHt7tI{@z5I9)A*O)RIa6sBx|AkUQHsdc+-tY2@$ummqUoC%Oh4Xp!!R2U&vhq1kwB@jVE|P2ZJ^ z8}`@x{2Dr7`ne3ri_9W7vS~Q@&Cvk&L?^k36ZSk`O%Weq(JRDdAcYtJIP|h9VT?DI zW=Uq098{=QqG8n$U@M@EPLOl2P^_%or9c5I^wEki>>9zQu$@VLJ{_rc}8 zKHJ@`=*d~%+MX%bbuLfan!k{0AUuLiOhNPSHR`cs}HPs_Ed%-PzYwM`o2a-a2SuXEpe4r?#7(Ua=1^K&&7d0T z@ag=idBIQVs@nCxJZ}+QO~wp#$hXd0+S?IoYlW!EHHa*FxtD<%~ zdt*{!JKCi(pIhyIPWn#WWoB(XPrLq1{$9_P?_YY?p!J`HXSy%Xf|o(L)PhUL_(yeE zVNp}LWpNf2jkzq~|5FQyo~uV^^!>vj(C{Z9$sAK(b`J^?brAhlgAZwmD(PO-vI244 z$Zll$asqHqZ@t9%?~Z0kqjfus1GhmRXah5IR!l7CYO^&Wqc}}$7dG^l)+}d%wQXpu z*V}5&!qC_AwtJDe-Y0g__axw1%w190bu9l-1i2s@z*e(t7UtCtd!8k|v*iQx{fje^ zjmODhwnnAh#*q8La93Izv_5n$33ogokkKDD8~VeYwtO{)%XKubI0@ObSy|T(66!@8 z6Xk(nD%9p05{Be%K5;4*V*v_PT$p*eFoCICro51`ArA;olGOWs?WHdms>7!*3i;P%_eKZ7NGjQEgREB ztp*3aDx0?zxkB@9y(|~dzZn~z_UtfG_AxV8l$;N~jcfOO<+*B=;g6^}*yY=05 z0C$5~@3lJKlO{gmMZEinKlc~)H3_2z){%E>qSbR85ZIctSS~6Ev=co2v7kw6RkB;d zOof$SSaI`2XET^^$LoRyQ%!YuN!v>mR6+_usWh3=ah= z>ZOMGW7@Ffs+{rZtr6hM)QcEmh+=Jb?Un;(M1>JPx2!!2or;{$eB2PRY~j+8;O0S+ zi(xr-92*5<`IVr{B3~FMLewLvuX^xQZ*l3~f?VrQZk-PwP~W17fCy@fzSkD)g0dJ*Pjv+yoLCS}_$Q+-buTBwGA$f4B zL|Iog143v}PHJ1eQk&CQXFGSq|HaCz7Y-!z7lwrLZL-0P*QqAIb?b3jns_Kf?JDSc zDuUYeZ!oRy`9D>3eQ&!*V5O!Oi!W6d!>rO3>q0U{bdt7Qv<)nB>I%FP0m?L5**KAt zN$j6{s1nG})cW$DvP!4gCaUkO17MzJhVnbxKsE zLg`h92vR5)x92i5r*YmlcgUq|?(gU8?+_POL^*o05KN$~BzdUNEwI5nl+ z-TOyEXMnZu{GKfIw3Wr3FCx58LPwtaBNFrC3taUy+Q`*i)E3F!u`?n{49e}ue(1PJ zVpxYbBv`X@=)1iD>9PdYqjx?jU0r{D%2NKRvm~K2N~&fmE_cMOqj{p}rR3w-v%S_q z^J!YC(v9UQ4wqOQyt;rV*gX=;>n9i7;_%axvyT%!zam}D|E0{=iMYCth9*Dgto=^y zUYl%dFo)P#Y~WLIysa*(Y|E>P2uSf#Gj(;O;UdhBs3A^Ay#4iOAJKDlLZ2_D=Q@e! z{ahMx0r3ZamE)8BNe-Dd?jJ5l8EJE4Iq{!6$W3h5t(=}^=WZXEYT;0*m!RE82`^^M z6R680Kt}HNHFw>5VbKNzWV!S!PH}ODW5>l2)=VuPk5QBoXY2le(sjt5DW-PAaje(u z?djjaDr!$Rn|9OMZRBGrcdMXu1!)G2+&{KUI1czznUR0rXc-0!bb8!tt*nTlCTHQi zB8C-VuF^S-7smrej+IPH&65e&9RM%|cs>dGVDA$drT&{P^J?gczS4M=60GJDlI{Io zG!`&$K4`x0uSR^RqEwrZ`xjY<;0>FZuYIf9^*@#t->F1N};=z0k~A z0-s*d~%OVRLr$i8Ek3tW2PmIF|!VcMspe4={-dXC}-#jxf^0rEn09P-_ik&U2)h;P- z`-x?UjPL#mGbxCmgS3V%5!OJBp8Bkk)wftp74qZHx(ZaBlj>Z3d_~wl|6BA-sdoHq z-t?jfZAioL_^dA=&6+v0Xs#Y1qg0fOJBf#oCi6Q7a#phm;d=|*wlUJ}jlEfo!W-Iv zH!`13Yp0QoZ?*NuC1X`Yx+gUykf@Bb9gDs>4D2i$)i*;Rl9MVLHd{)o;l35i8ym*b zDLCAOfNmcwV<#L%MeiZH;0eLe<4?*5m0Aq0QmcV?Fgd{Hk>Pb3G*h_}OiK=Gn& zrfuSDT1i@yUUQEzrCe1ffaI1CgjPeaF{5?2m91Ha%IhcK-JhA|kD@UkMYh&-JPja4 z0sMvJ5xcs9vtydki5kMbj=a>>PXQ?q1W#UtxW72H)C3419q)T)0m>@Yy+(&{K7fMk;6TC=7biJj-AAC zSu5S!#ciHco=fV?@92rXn1^_a^`60t@+C=q83Ry0g0;h}A>G|S{zg+E&7N*5=0)}>|(Dt>2*zx?U7SLr25P6j}SV&1m*_4ckk zyYnr?@(Sx>HIsK)D|@1)9j;|=GL#dH?vJU<=e=v7{%t#L@@!oXUgU!-;xlIE-(XV) zbKn0!Y|{KbJV0ID9NS$!1tqnA};O( zM7M`Xlk^oGg#}Aww zKF7oAg`w(rVL*9+KaV8;3#LcikpVq& zR1jbxO_lL6e6MM^`roo}?l6QFE9%<=r<){RmyHtr1!Dq$0G#=?Di{h z@%StTmNHgkSshsB6$Sxjj7V zUb)M9p`!--d$INI#q*_D0z02VHZ_n}Q_|A%?Ye&wyegwBy07z@`ExZdnt5giWMT$Y_6O z89}k$&W7T~9P_*6GK(dHMHCDa5k=cl-Z$dP#s3sdYQ(X4Ai?Cwhpsa*V`vebosA5C zH-o49i)^g(4v!RDSJ->^Fm1|3B-bT^*q$;ZR0i_%$a%e`b*j;s5|UofK!*KAp<}P{ z`W2X&I0FiTl3LtjjW{=|T~C1O-15gx76{7)00xT@h>$ zdKWm6G@V8Wr1|cOxyqx7d^1q#tLsYyZBGxdgAVh|c3w|U?_p#R<6na_nBN7c&7}-$ zDzdJ2-wCB6Dfk24unA=Ej^_HplL>LwH?Z5Z!wnp~e7owCu=^Owb8K$k@he&Z4MR0^P=Hc8-JZ zBQDzWF9AKY5P*tcGYNWA*k_uU8#vE;k=9*ZnCd%q|9w5v9|Y=YK6P19gZrsL*Z<%| zSA69)JfNEOUf{LTi~##pp@D%P1$&SfG3yLJ`vDrJWilB7YJrg-X10oqc6B$rh`c=3 z&CSg_Fh)Pu2ito`N7=nc<>o5&T)^+rd+$F?tgNrWclIbL(U_=hfz;VQb~FY!YAY&h zg#j~@AqVB2Q3sW(7YU7(?95d|dCrcG6@x0%K$`#-#^tYJvL-$_mX{B}t@y>LAd*M_ z$SZD^^5}4ST{m6fukQAbH)l|T#O|v--o0iUGFV6k?mXS-8Xh@K3gj`It;QCUDjca@ zf1Yjyt*U9QCbe!{HTL*cLHcu@O__fK&L=*bQF<_KQp57px-PeVLX@BHV-(@h7~0Q9 zPgZ6&$w}l2sv*0Kibo>JnUSD-{2vlFFcqG@5L!-_zw4qf?G+bps z>%veyA)F=xh`>4&BA#6m>AalnUI%~1o<(oTeV&Jw;2D4zU9@7pEHAyWkK4TV4PS$C*xtsKEwKZRJ=Pq^9s-!=Z?$ zKjQf~@osx2=G*`dLUqSg%XMbBhuwxd9vvSa_>~{o-0GL@;Wkju_Qw@>T=ejfg1AL2 zM0V>U&)pXJ+F#I0%!ZDPyx%nz(n(EaVqy7RSUv0Up)d=`?+}$4klHuE&j zO`wW-ONCjdzNv#0Oh?e$1<{-#eZm}|fifD_=84#7|5 zl(RoMsrc~nzr3K#tc&>WBKc|bDl&m&a8`28m(g{X2@dvP=; z?8G~8dz7!gGs?n`G00;B{j!wi-6^&#N!kfK2-KWTzJPxdSnIV~W9X!ElF)w51EZu) zdQL(27VNdqHufiS{8BO&Jo>gQS5LG^z3xBwHFjbT^xKnv@?twp9#nS72Y*c_x<=i7 zJPf)pVPsYxGRgcKCffLlHS0*a*5)m& zwBn+{sssXgQNsNZ2X~dRvb_wmoRNS2*KIQc6!m9MR~*Q~ssvsk%V<^^oDICiZ1T;$ zx)8GU2ee%VfL6@EkzNR%V()h&8mizbZK-&=VWM8O_8c|zvDFhJm%^>w>)QwDV$D^Z zV_qiNj_N-U4!+5tuHW-!A9P!ld*VeAl}7TCKn0f%-Qw(}or}A6D4{jxoy{NMRruW8 zb){Y8u3&)SN0w#KMpVjuxAiOmzzlEiut{WKyr?Zv9NhKB(1vfvmhigG8fX@k`K7!2 ztL5jDfAgj^v)`ceXw{w6!#J=j%C5iPRG8|M;_aqb?3lR`^gZP9eGoJmGnmmH^B6Nl z^aml*07^K-zmvvhH9Uxv6F;;Zu7&dWoKCOo>}s`PMyk*%k4=VAYQFJhdyph zhv**;v?abzAqBh^XgQ?NE=L(R_GcfhBSAA@G8LEWOr{U~1Z4a?+8OpM$xc0Ulw=#3 z!JoHZ`pI&9Ee z-=A<6Sx>_k-rEuAy~y}-#z8-U#xT}0t;L*>L|aYs61H7eDRDe6Vw0BwT(Jo)8zbqq zSb3?7Tv^!qOL(AN5)tovqvwrnLS-+(a3kuO{MV33~IrCV~7c zGPE$J2IC}DGyHtAF=W$o02KdQN@o0d1PZItbOVZgjhCBk3OcSTnI9+LQDebfkh8q= zI^?kh^(f- zt@fnMVT3s!rpRGA^ApM_t%I}3$|*Tza?Xr$h=ir~tISG~LzGh?Th4o~<#}Gu{qJ6{ zYuA14wfnw4-|zeLx#~PV>Ih8HB0;1LpWg1GB0h9Ef!Pamq+n0@WUj#E&(1R+i}i{1 zY1AJNvO&$`xXQtRAQP2~&p>Xsfr4g1*KW#=BBjJsAzN`-{&PqFBlI%zw)m?{?T66J7VS_DzHjwEwh8jJ}|3z@*t*Ef?;u z2t*l2Xgo`T8;kK>-?u_}p(v5uFakGR@f@Rxb*Pb*FxeWFyOAo%;1HXH`rAnw?Uy8j zg2E!}=~SmhSYc7lYZai{s(qif<4LWrz z8gNu>2I%1ngzK$&p3Z(fH&NOcE_dMl)d&{G#nodyN&cVE7I+3^oxoWPvq_l~{pB+< z#$EyjB$xe_?xgT&3_n(z=wo=#QZN6|%QX4`4({^cdanGNtuT)!0pJg;YG}_p12Hl( zBf4~z{2f$h_gcEJa<3j6sD0zhsokN2?FBzw8$Rzf29pqKK7PcnWkR#Qq4b&x zDwDp)p71Fc#JmMv{fZD)4_$_I=C6ns!UCey(Wl1`TZ$-!SV&sU&p?f)g4o{M;kc?^EcouLSIBGxZYBU^iev;>EC%*?0OA| z^V{6WFwSJ*p=YJ`AWWO<-axBN4S=r#hjv5TRXiddW!i6NJ)5x@vo}vr|6-7WGkdhN_5foTe#|^F!1ipIzyxoh5yJVsY^?8{|xP z6kl$eU|hvi>(2k1U@FxAn0|En8E1o~!T*-0>l(J2Rr#T+Dm0cs2GPH)zyA+jUp%?s6;4Z zOg}7bgk7H5liF19U7LXc-z<`;s{3obkT}|8LG17j`?vgW2S0XBWhm~|UB9uZsf8LQ zcoWhvnTaTEZ650~Iv$*3;}9pAX@9HTZ5Zm<=%;xDBQ<&f;Vf8&LFzu@Z=f*R?e+0; z8VLwjBWZdFkhPAaOSh>zEmt2O!l1lfHRw)Eoa+rVhbpn-gt(h5csj69+m;TeYo6>Z zBsz@$MsZ&h5;tz4xLM!k8%@AM{EgcDg1qc5@T7IjQ1n@!dtMNpp7CqaD^G(Z7A=JT z3Li`xZTSlZ*2(W}XQB+;wbv+tpzNr@9)rT95aHHE468O$h`(Ly5%B7+cYts6LC8hv zD&h~?ZB1d!(L|S?<*ItH4OlW%BEm6YPvQ7_l9SKAY?>~({o0%E8n7$fl9@81%t1#! zb6S?`d8Yij_oU2&oG)xr{Pg1(|0`mX1fIxvNa`EWbb-X1ci49o?bl&Ts9BnulcmwH zffJOGBW6w2d2USEI$KY`%*ly2QZz)hJbQ7c+5EjM?2KSB(oNum1C~GL_jdRj4$X?$~|E3MQ4B-|whJeraBQ`K3)$aog2=);9S~ zo69c?M3=pHaCW~r;CZK_>Z1ISNzG$5gind4z`_>a%CH_3M#Vn2Rfq}?x1(e(A$r2F zMQKny=8ck|;@dN7e-yeLGPXP*(o!t_T;*eZJl$@FMG7c0@xP?7nj;chGiw%k7eGog z4YE`F_3sVzYI4DuXoN@Jbeu(Cw2!1dK42CTA7fP>Cm#d5bBhOgJt}I5q70@rA3#h_ zKKZ8iMjPVXPF)|Ow%hCmZ2<3$s3F+ObO8Z}sbVs{rR3QBcCMbgat0$)wr3*}TTVFN zYrj?LmR3>7Lf$Xha`GP!vjJfX_UhX^pf}jX3ZmKPNbaL<|J0X^O#+jYZChb>V)r;Xb(=K>k^P(; z5wN|#`IXp|fBnQ_`&x|}Uk_GmkELvNb7FodfXaC2g=i{vm=x;XEA)bJxGJfS5!j@D zlqSRD^pJIk3PmGi4p+NS|FLzms6s@esoBDfB$yk7y1qM3ukI>ht;s1VC<}vWCHbYSPDe6_4OR#SP6 zm!)cT@i&+_kLH}fhlQl1&`0u~r7q0b%KmNr!Nzp_kMMz2XASNujL7QY1F z!K|~~n;w+7zSxTH%%HqEwrzg!4;hQ_m_(3fz>*k9QgP-PaU*9rl>zb;uCTRlp-}ya R?ifCBVN9{7s?qqX{{h^aR&xLV literal 0 HcmV?d00001 diff --git a/img/CompileSource/Download_Zip.png b/img/CompileSource/Download_Zip.png new file mode 100644 index 0000000000000000000000000000000000000000..00163c2f1650b73eaa6842950ad46a52f6719b22 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0vp^(}38LgAGVt@xF8uNHG=%xjQkeJ16rJ$YDu$^mSxl z*x1kgCy^D%=PdAuEM{QfI}E~%$MaXD0M+z)x;TbZ#J!!nJ6qIIr2VhIPEJt7ji`tS zO^pmyjffu%ih`{2f-Ndt{sQs7A}-SRGeku1uZUP8AaaB~qJzuKP0&T?bk85Lb5HL~ zw%k42dN;TE_wNT218nW#N2x98x6iS0m|dh|20KWO@@ z?6xrCe*K?K(>?o{)zfstB&9huKdFT4=+z%#&MVOoQ>=Wl(`lo}@h3YksfEQkIwe({ z3(%R=@|@?Wk|$oK&)THi7x!h`_+I)1M?GU5N3*3*e^m*qY@)oZ;?>ZOuR zdX^~nBL}6#f*&4Yhqi94Ha<1s-J#-Tfg4$LZye3uzNzTDy#4m0G57ZV7x*Qn$MsqK z%hscp)1Tg6A#|tw?5(efMXTo3x7^v7?Jr?leQq9~u(18%N2=cGJeI-kJra-Z!IYLQgdTR>4wr6mLpO7ib`)cbmU0vShn%xYAOFU5)#5ayvLYt z?7O*b!+fRb&wUmr-CP>rAUQ?X+easXeXC~9r&Y&JO=#E6{++h|@t^z zHmo|rRQ6!Q`sH;y({4{lb)6Q>V>$I{eEaTi9^vdqB zlu*2z&h7pimezJF`4@u>sq{{qnv{4U#d6E#J=5H~nK!s9E!8{q$ZA`VzmQ7l(lvhb z_NrZ9+ffv+ZSrf4>x4Sd&ZnF~D%1Af&-pkfGepNan6tDa_2|aysqt)*x08?ir*39` zwP@b7Gitu-KJSnJdiK?ILQ3`1H9Up^Zl`sQ9Jyp%(G_w49MakmQayT{AJc4{3t#PI0kb><$%FZVXG@O;@Mx;pCl1+%_X&nZ=@M}-8xY-)LZ ziU0PrFP@WntD;zb?zEBIqZ%;db5if!+8MI`zJE_|vk$WhIblDYAQTzGUE0OavqmJI%QtJQhxc`Eu z7Y`+R-l_jm^5VYbm9Xh0?DLGbc71(tvfH5Mhs!qoq?ft}y#E|nx9~&JpQ$T-cQJzW zUP?%d+Fn_$Cc5p{)43)3zyRrVeWo_gSfpF!p{4Ui4^oVk z8m?2vruot17tf^#Rwsvv>c&Tyb}`vMpBrKIYfgDW?i2H1feC-kiW~@Y`>?yDYP#1x zZ}$zo1`<}EPKa{fI3~g4BG{V5xh>Hx-!0Os+x0}wf`}zz8e%J3|7Qn2*(|Yc-63Fc O#o+1c=d#Wzp$Pz;i%q8h literal 0 HcmV?d00001 diff --git a/img/CompileSource/Fork_Repo.png b/img/CompileSource/Fork_Repo.png new file mode 100644 index 0000000000000000000000000000000000000000..788370230151562ea7de94fc7a0f008d145042fb GIT binary patch literal 14988 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 literal 0 HcmV?d00001 diff --git a/img/CompileSource/compile_me_batch_file.png b/img/CompileSource/compile_me_batch_file.png new file mode 100644 index 0000000000000000000000000000000000000000..b10c841ec77520448e8be29a3ae65a70675811aa GIT binary patch literal 89716 zcmb@u2UOGB*DV^$u`7Z~7X$>Q2!a$r%2801BGN&c66rm3A)vC&XvP^1$&q22Yf{J-!=VH4O5O>Xt-yVX^`$s6$Zt@+O>uN6gGuxgns-3ZXF`}u8gKk$qn|=?ET?Tu)5_ml`BxHDeTwfeH&b4?E&8|o$QPH#Gc1>P;`V=CQHUZr z^**}iE;oCxMeQA(CjY~iubC6}s(!ithU5BLfcdQTB^xuo?l0?v%@y(KJs-;R*2pAn zoz|Sy?~aw^j%+H;EZxtqm_59>HM52m$Ld|?%hzltTiJC>9PTt%V#bb8dCSO=8*MzE zZ7fN>aG>&j9usQsEwh(~XjewR#ktcZd9Va=yfDTWSDld*eR zWFR6uNAHD-&fVSpo@)WpMN5IZ|6G%@{wlR}YAaykfN}|$Zz0wG*oN6wX#w3X-;PqI zGv6DLvF9o}98c3)PxzvBFs?C?S4_TY6S=~z68e;x!YKv_o9ndi+E$)ZZ+8lB=~Sm0#)yuX#!BkUMQPKg(WSteQvfHgYe}c#;X9y5kdBA(CL zq~@yYD~pe=7#R3Qd%7Lk-PPNDnxk&;v~88?#9aRi(+z{6;hX^5AD(kJW|}IWWIW;+ z*sPICT8eER;$z}{ri*43aPD{Ptko9WqmXR(P$%aK6M>dbHTTl|(7~tMMJu~I2j;lm z9H}8MIF~jNk4~GDCK;L%Jv( z=XsUwlAD)KIBlK%a(Suw0Yok@hszAM^8s()kJ>=RqtD z4X^HH!8cyN9;T0Tv6csR)(GQPv`ds1n`kNWqi6P4+inD9^c9b6c2n}3K;mJhd`YUeCI_WNX%M#FI5 zmAl6E@Rx=fp%U z{-4*4&bR6neqJ@~Yt~y}wb+(b%)I?WR;$1=GUkI$fhC>CauRcGH(G#L7s`#%e~skO zqyWjFTyImV^@S>mHeOzZPI-$Ii_)KSi%%~pq2~=hdN;LAuvnK@O;fX8sdT)+viqOP zjp#~#JzH%!=<|x=~qEA6W5!xWwoi!r#8x#Ed9`A7FZZwx)7IO%t5Y=+WZY1>(pn_Fq8(V$*i zCS>2un>UMwUowo&@WV;FBktaUamK^Qk6HeV->6SthA+q5O^u1Yk=&4PsH?ljwuAcq z4mo>QtZ>kBV??0P=yeRa-^kN{q^*uI>in~IVww9WS$nyc$iL*Qg6^s_0S)o3@8GIfjAKR;p7-6H&MMF7Gv-f%P zZdWYD&JQ*3ZZ(ftZf(TxiXzXycKG@5>dotzc=Xc@I2c2fR5XC>o|SR& zP0gM=_A_0$eFp1aXr7EVThmRu!pMqmEmVn4KSK^*xn9G!@QiuuflM#lp}~XUFE6x; zY*~0=@Ed77IC5zW+$lXOnU$or1-}e0Jl8Qr0^9>W@$Q|}4pE9JaAM{0SgL=w!FGqi zXCmnxPtnhz5ND#;nabYbO6K_)KYCdEiKft8hsXjw`NbPPwn8+zn2N3-NLx@%hfAij z+GsQ}xUZ~5y1b|-%@e^Qdr(euecmsQ(u^d$V)~M)ool-|ddG6G;w(f`wElSc+CbHZ z!hzRGvH^x;b)oB>p4*xsp`m*|c~O*b8M(Q+4XO5G-*xs4Joobs!Gw3v7_ZKBC)t!Dv+}_P zdz7zY-SF-vGB_^VE1k%Z_dmNXC@44-=Qj6wLUK*CY^mv*%S5d6W%v_}x3uR8qltoE zYiWD?D~}&PzNf6rKf=V@*@G0E_V3?Q-VJVzi?A(jc~ow-^Ix+cKUP8Vv-$Beh8YIe z4?ys;(OmeM|1vJp9!o4Nbgpi6zd1EKd-F1FNW4?y2ZKtF>Ki`isCB<*8}QlC2gmRg z(CPs+;oN0Cc$80M(ESQ(sIzh>zw9vTo`%NDr%(56EvHKTg>s*F8%Mn%3~N@B&uC=ndT(vHOE9CHW_w;3?2

^_ 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 Date: Fri, 7 Nov 2025 15:57:10 +0000 Subject: [PATCH 5/7] Update build-for-release.yml - to use Dockerfile --- .github/workflows/build-for-release.yml | 135 ++---------------------- 1 file changed, 9 insertions(+), 126 deletions(-) diff --git a/.github/workflows/build-for-release.yml b/.github/workflows/build-for-release.yml index a9f438e..26edaa9 100644 --- a/.github/workflows/build-for-release.yml +++ b/.github/workflows/build-for-release.yml @@ -34,141 +34,24 @@ jobs: echo "firmwareMajorMinor=-V10-v${{ env.firmwareMajor }}${{ env.firmwareMinor }}" >> "$GITHUB_ENV" echo "firmwareMajorMinorX04=-X04-v${{ env.firmwareMajor }}${{ env.firmwareMinor }}" >> "$GITHUB_ENV" - - name: Setup Arduino CLI - uses: arduino/setup-arduino-cli@v1 - - - name: Start config file - run: arduino-cli config init --additional-urls "https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json" - - - name: Update index - run: arduino-cli core update-index - - - name: Install platform - run: arduino-cli core install "Sparkfun:apollo3@2.2.1" - - - name: Get Known Libraries - run: arduino-cli lib install - "SdFat@2.2.2" - "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library" - "SparkFun I2C Mux Arduino Library" - "SparkFun CCS811 Arduino Library" - "SparkFun VL53L1X 4m Laser Distance Sensor" - "SparkFun BME280" - "SparkFun LPS25HB Pressure Sensor Library" - "SparkFun VEML6075 Arduino Library" - "SparkFun PHT MS8607 Arduino Library" - "SparkFun MCP9600 Thermocouple Library" - "SparkFun SGP30 Arduino Library" - "SparkFun VCNL4040 Proximity Sensor Library" - "SparkFun MS5637 Barometric Pressure Library" - "SparkFun High Precision Temperature Sensor TMP117 Qwiic" - "SparkFun u-blox GNSS Arduino Library" - "SparkFun 6DoF ISM330DHCX" - "SparkFun Qwiic Scale NAU7802 Arduino Library" - "SparkFun SCD30 Arduino Library" - "SparkFun Qwiic Humidity AHT20" - "SparkFun SHTC3 Humidity and Temperature Sensor Library" - "SparkFun ADS122C04 ADC Arduino Library" - "SparkFun MicroPressure Library" - "SparkFun Particle Sensor Panasonic SN-GCJA5" - "SparkFun SGP40 Arduino Library" - "SparkFun Qwiic Button and Qwiic Switch Library" - "SparkFun Bio Sensor Hub Library" - "SparkFun MMC5983MA Magnetometer Arduino Library" - "SparkFun ADS1015 Arduino Library" - "SparkFun KX13X Arduino Library" - "SparkFun SDP3x Arduino Library" - "SparkFun LPS28DFW Arduino Library" - "SparkFun VEML7700 Arduino Library" - "SparkFun TMP102 Breakout" - - - name: Enable external libs - run: arduino-cli config set library.enable_unsafe_install true - - - name: Get Libraries - run: arduino-cli lib install --git-url - https://github.com/bluerobotics/BlueRobotics_MS5837_Library.git - - - name: Enable ICM20948 DMP - run: sed -i 's|//#define ICM_20948_USE_DMP|#define ICM_20948_USE_DMP|g' /home/runner/Arduino/libraries/SparkFun_9DoF_IMU_Breakout_-_ICM_20948_-_Arduino_Library/src/util/ICM_20948_C.h - - - name: Patch Apollo3 Core + - name: Run Dockerfile and copy files run: | - cd ./Extras - unzip UartPower3.zip - cp HardwareSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h - cp HardwareSerial.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp - cp UnbufferedSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h - cp serial_api.c /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c - cp libmbed-os.a /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a - cp SPI.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src/SPI.cpp - rm *.h - rm *.cpp - rm *.a - rm *.c - rm *.odt - - - name: Compile Sketch - run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino + cd ./Firmware + docker build -t openlog_artemis_image --no-cache . + docker create --name=openlog_artemis_container openlog_artemis_image:latest + mkdir ./build + docker cp openlog_artemis_container:/${{ env.FILENAME_PREFIX }}.ino.bin ./build + docker container rm openlog_artemis_container - name: Rename binary run: | - cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ + cd ./Firmware/build/ mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin - echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" - rm *.axf - rm *.hex - rm *.map + echo "targetBinary=./Firmware/build/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" - name: Move binary run: mv ${{ env.targetBinary }} ./Binaries - - name: Enable Power Loss Protection - run: sed -i 's|//#define noPowerLossProtection|#define noPowerLossProtection|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - - name: Compile Sketch - run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - - name: Rename binary - run: | - cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ - mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}-NoPowerLossProtection.bin - echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}-NoPowerLossProtection.bin" >> "$GITHUB_ENV" - rm *.axf - rm *.hex - rm *.map - - - name: Move binary - run: mv ${{ env.targetBinary }} ./Binaries - - - name: Disable Power Loss Protection - run: sed -i 's|#define noPowerLossProtection|//#define noPowerLossProtection|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - - name: X04 Hardware - run: | - sed -i 's|#define HARDWARE_VERSION_MAJOR 1|#define HARDWARE_VERSION_MAJOR 0|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - sed -i 's|#define HARDWARE_VERSION_MINOR 0|#define HARDWARE_VERSION_MINOR 4|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - - name: Compile Sketch - run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - - name: Rename binary - run: | - cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ - mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinorX04 }}.bin - echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinorX04 }}.bin" >> "$GITHUB_ENV" - rm *.axf - rm *.hex - rm *.map - - - name: Move binary - run: mv ${{ env.targetBinary }} ./Binaries - - - name: V01 Hardware - run: | - sed -i 's|#define HARDWARE_VERSION_MAJOR 0|#define HARDWARE_VERSION_MAJOR 1|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - sed -i 's|#define HARDWARE_VERSION_MINOR 4|#define HARDWARE_VERSION_MINOR 0|g' ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino - - uses: actions-js/push@master with: github_token: ${{ secrets.GITHUB_TOKEN }} From 055bb6f8e39d771d2a7a38d584f463f931d16e09 Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Fri, 7 Nov 2025 15:57:36 +0000 Subject: [PATCH 6/7] v2.11 --- CHANGELOG.md | 21 +++++++++++++++++++- Firmware/OpenLog_Artemis/OpenLog_Artemis.ino | 7 +++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41d5a53..738dbae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,25 @@ Change Log ====================== + +v2.11: +--------- + +* Adds support for LPS28DFW Mode 2 (4060 hPa) - thank you @thebrownhobbit-commits #221 +* Updates the Dockerfile to include the required library versions +* Adds `compile_with_docker.bat` to automatically generate the firmware binary - see [COMPILE_BINARY.md](./COMPILE_BINARY.md) for details +* Updates the workflows to use the Dockerfile to generate the firmware binary + +v2.10: +--------- + +* Restructures the serial logging code in loop() +* Where possible, residual serial data is written to file before closing +* Allows all log files to be deleted via `RM *` or `DEL *` in the SD menu + v2.9: -* Adds support for the TMP102 temperature sensor +--------- + +* Adds support for the TMP102 temperature sensor - thank you @summetj #200 v2.8: --------- @@ -9,6 +27,7 @@ v2.8: * Corrects the serial token timestamp printing - resolves #192 * The charsReceived debug print ("Total chars received: ") now excludes the length of the timestamps * Consistent use of File32/ExFile/FsFile/File. Don't use SdFile for temporary files +* Corrects the KX134 32G menu option - resolves #197 v2.7: --------- diff --git a/Firmware/OpenLog_Artemis/OpenLog_Artemis.ino b/Firmware/OpenLog_Artemis/OpenLog_Artemis.ino index 49a5bec..e8403a4 100644 --- a/Firmware/OpenLog_Artemis/OpenLog_Artemis.ino +++ b/Firmware/OpenLog_Artemis/OpenLog_Artemis.ino @@ -167,10 +167,13 @@ v2.10 Restructure the serial logging code in loop() Where possible, write residual serial data to file before closing + + v2.11 + Add support for LPS28DFW Mode 2 (4060 hPa) - thank you @thebrownhobbit-commits #221 */ const int FIRMWARE_VERSION_MAJOR = 2; -const int FIRMWARE_VERSION_MINOR = 10; +const int FIRMWARE_VERSION_MINOR = 11; //Define the OLA board identifier: // This is an int which is unique to this variant of the OLA and which allows us @@ -180,7 +183,7 @@ const int FIRMWARE_VERSION_MINOR = 10; // the variant * 0x100 (OLA = 1; GNSS_LOGGER = 2; GEOPHONE_LOGGER = 3) // the major firmware version * 0x10 // the minor firmware version -#define OLA_IDENTIFIER 0x12A // Stored as 298 decimal in OLA_settings.txt +#define OLA_IDENTIFIER 0x12B // Stored as 299 decimal in OLA_settings.txt //#define noPowerLossProtection // Uncomment this line to disable the sleep-on-power-loss functionality From 3265faed2f94d7dbdda00420259e14d4eb09fe6b Mon Sep 17 00:00:00 2001 From: Paul Clark Date: Fri, 7 Nov 2025 15:58:13 +0000 Subject: [PATCH 7/7] Update Dockerfile - comment power loss protection and X04 build --- Firmware/Dockerfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Firmware/Dockerfile b/Firmware/Dockerfile index 8a089b8..275d4de 100644 --- a/Firmware/Dockerfile +++ b/Firmware/Dockerfile @@ -90,13 +90,15 @@ RUN sed -i 's|//#define ICM|#define ICM|g' /root/Arduino/libraries/SparkFun_9DoF # echo "compiler.cxx.extra_flags=-MMD -g3" >> /root/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/platform.local.txt # Disable Power Loss Protection -RUN cd ./OpenLog_Artemis \ - && sed -i 's|#define noPowerLossProtection|//#define noPowerLossProtection|g' OpenLog_Artemis.ino +# Uncomment to disable power loss protection +#RUN cd ./OpenLog_Artemis \ +# && sed -i 's|#define noPowerLossProtection|//#define noPowerLossProtection|g' OpenLog_Artemis.ino # X04 Hardware -RUN cd ./OpenLog_Artemis \ - && sed -i 's|#define HARDWARE_VERSION_MAJOR 1|#define HARDWARE_VERSION_MAJOR 0|g' OpenLog_Artemis.ino \ - && sed -i 's|#define HARDWARE_VERSION_MINOR 0|#define HARDWARE_VERSION_MINOR 4|g' OpenLog_Artemis.ino +# Uncomment to compile for the original X04 SparkX OLA +#RUN cd ./OpenLog_Artemis \ +# && sed -i 's|#define HARDWARE_VERSION_MAJOR 1|#define HARDWARE_VERSION_MAJOR 0|g' OpenLog_Artemis.ino \ +# && sed -i 's|#define HARDWARE_VERSION_MINOR 0|#define HARDWARE_VERSION_MINOR 4|g' OpenLog_Artemis.ino # Compile RUN cd ./OpenLog_Artemis \