diff --git a/.github/workflows/compile-sketch.yml b/.github/workflows/compile-sketch.yml
new file mode 100644
index 0000000..c30ef88
--- /dev/null
+++ b/.github/workflows/compile-sketch.yml
@@ -0,0 +1,127 @@
+name: Cross-compilation
+
+on:
+  push:
+    branches:
+      - main
+  workflow_dispatch:
+
+
+jobs:
+  compile-sketch:
+    runs-on: ubuntu-latest
+
+    strategy:
+      fail-fast: false
+
+      matrix:
+        board:
+          # Uno
+          # https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt
+          - fqbn: arduino:avr:mega
+        #     platforms: |
+            name: arduino:avr
+            source-url: https://downloads.arduino.cc/packages/package_index.json
+
+          # ESP32
+          # https://github.com/espressif/arduino-esp32/blob/master/boards.txt
+          - fqbn: esp32:esp32:esp32
+          #  platforms: |
+            name: esp32:esp32
+            source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
+
+          # ESP32-S2
+          # https://github.com/espressif/arduino-esp32/blob/master/boards.txt
+          - fqbn: esp32:esp32:esp32s2
+        #     platforms: |
+            name: esp32:esp32
+            source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
+
+          # ESP32-C3
+          # https://github.com/espressif/arduino-esp32/blob/master/boards.txt
+          - fqbn: esp32:esp32:esp32c3
+        #     platforms: |
+            name: esp32:esp32
+            source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
+
+          # Artemis / Apollo3
+          # https://github.com/sparkfun/Arduino_Apollo3/blob/main/boards.txt
+          - fqbn: SparkFun:apollo3:sfe_artemis_atp
+        #     platforms: |
+            name: SparkFun:apollo3
+            source-url: https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/master/package_sparkfun_apollo3_index.json
+
+          # ESP8266
+          # https://github.com/esp8266/Arduino/blob/master/boards.txt
+          - fqbn: esp8266:esp8266:thingdev
+        #     platforms: |
+            name: esp8266:esp8266
+            source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
+
+          # SAMD21
+          # https://github.com/arduino/ArduinoCore-samd/blob/master/boards.txt
+          - fqbn: arduino:samd:mkr1000
+        #     platforms: |
+            name: arduino:samd
+            source-url: https://downloads.arduino.cc/packages/package_index.json
+
+          # Nano BLE 33 / nRF52840
+          # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt
+          - fqbn: arduino:mbed:nano33ble
+        #     platforms: |
+            name: arduino:mbed
+            source-url: https://downloads.arduino.cc/packages/package_index.json
+
+          # RP2040
+          # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt
+          - fqbn: rp2040:rp2040:sparkfun_promicrorp2040
+        #     platforms: |
+            name: rp2040:rp2040
+            source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
+
+            # RP2350
+          # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt
+          - fqbn: rp2040:rp2040:sparkfun_promicrorp2350
+          #     platforms: |
+            name: rp2040:rp2040
+            source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
+
+          # STM32
+          # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt
+          - fqbn: STMicroelectronics:stm32:GenF4
+        #     platforms: |
+            name: STMicroelectronics:stm32
+            source-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+        
+      - name: Branch name
+        run: echo running on branch ${GITHUB_REF##*/}
+
+            # Setup Arduino command line - install esp32 and all the libs flux needs
+      - name: Arduino - Install and setup the Arduino CLI
+        uses: arduino/setup-arduino-cli@v2
+
+      - name: Arduino - Start config file
+        run: arduino-cli config init --additional-urls ${{ matrix.board.source-url}}
+
+      - name: Arduino - Update index
+        run: arduino-cli core update-index
+
+      - name: Arduino - Install platform
+        run: arduino-cli core install ${{ matrix.board.name}}
+
+      - name: Arduino - Install libraries
+        run: |
+            arduino-cli config set library.enable_unsafe_install true
+            arduino-cli version
+            arduino-cli lib install 'SparkFun Toolkit'
+
+      - name: Compile Sketch
+        run: arduino-cli compile --fqbn ${{ matrix.board.fqbn }} examples/Example1_BasicReadings --library .
+        
+    # outputs:
+    #   report-artifact-name: ${{ steps.report-artifact-name.outputs.report-artifact-name }}
+