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 }} 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/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/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/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..275d4de --- /dev/null +++ b/Firmware/Dockerfile @@ -0,0 +1,110 @@ +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 +# Uncomment to disable power loss protection +#RUN cd ./OpenLog_Artemis \ +# && sed -i 's|#define noPowerLossProtection|//#define noPowerLossProtection|g' OpenLog_Artemis.ino + +# X04 Hardware +# 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 \ + && 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/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 diff --git a/Firmware/OpenLog_Artemis/autoDetect.ino b/Firmware/OpenLog_Artemis/autoDetect.ino index 1531008..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 = 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 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! }; 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 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 0000000..cbaca35 Binary files /dev/null and b/img/CompileSource/Clone_Repo_To_GitHub_Desktop.png differ diff --git a/img/CompileSource/Download_Zip.png b/img/CompileSource/Download_Zip.png new file mode 100644 index 0000000..00163c2 Binary files /dev/null and b/img/CompileSource/Download_Zip.png differ diff --git a/img/CompileSource/Fork_Repo.png b/img/CompileSource/Fork_Repo.png new file mode 100644 index 0000000..7883702 Binary files /dev/null and b/img/CompileSource/Fork_Repo.png differ diff --git a/img/CompileSource/compile_me_batch_file.png b/img/CompileSource/compile_me_batch_file.png new file mode 100644 index 0000000..b10c841 Binary files /dev/null and b/img/CompileSource/compile_me_batch_file.png differ