Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 9 additions & 126 deletions .github/workflows/build-for-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:[email protected]"

- name: Get Known Libraries
run: arduino-cli lib install
"[email protected]"
"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 }}
Expand Down
81 changes: 9 additions & 72 deletions .github/workflows/non-release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:[email protected]"

- name: Get Known Libraries
run: arduino-cli lib install
"[email protected]"
"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
Expand Down
21 changes: 20 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,33 @@
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:
---------

* 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:
---------
Expand Down
Loading