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
19 changes: 19 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,22 @@
*.cpp text eol=lf
*.c text eol=lf
configure text eol=lf
.yaml text eol=lf
*.yml text eol=lf
*.md text eol=lf
*.txt text eol=lf
*.json text eol=lf
*.properties text eol=lf
LICENSE text eol=lf
nurfile text eol=lf
.gitignore text eol=lf
.gitattributes text eol=lf
.clang-format text eol=lf
.clang-tidy text eol=lf
Makefile text eol=lf
*.svg text eol=lf
*.ino text eol=lf
*.dot text eol=lf
*.cmake text eol=lf
*.css text eol=lf
Doxyfile text eol=lf
8 changes: 7 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,10 @@ updates:
# default location of `.github/workflows`
directory: "/"
schedule:
interval: "weekly"
interval: "monthly"
cooldown:
default-days: 5
groups:
actions:
patterns:
- "*"
6 changes: 5 additions & 1 deletion .github/doxygen.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
Running this locally will alter the Doxyfile.
Such changes SHOULD NOT be pushed to the remote.
"""

from pathlib import Path
import json

Expand All @@ -17,9 +18,12 @@ def overwrite_doxygen_value():
properties = json.loads(PROPERTIES.read_text(encoding="utf-8"))
assert "version" in properties
config = CONFIG.read_text(encoding="utf-8")
TMP.write_text("PROJECT_NUMBER = {}\n".format(properties["version"]), encoding="utf-8")
TMP.write_text(
"PROJECT_NUMBER = {}\n".format(properties["version"]), encoding="utf-8"
)
config += f"\n@INCLUDE = {str(TMP)}\n"
CONFIG.write_text(config, encoding="utf-8")


if __name__ == "__main__":
overwrite_doxygen_value()
335 changes: 172 additions & 163 deletions .github/workflows/build_arduino.yml
Original file line number Diff line number Diff line change
@@ -1,163 +1,172 @@
name: Arduino CLI build

on:
pull_request:
branches: [master]
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/**"
- "RF24.*"
push:
branches: [master]
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/**"

jobs:
build:
uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
with:
sketch-paths: |
- examples/GettingStarted
- examples/AcknowledgementPayloads
- examples/ManualAcknowledgements
- examples/StreamingData
- examples/MulticeiverDemo
- examples/InterruptConfigure
- examples/scanner
- examples/encodeRadioDetails
# The following examples still exist for posterity. They don't trigger this workflow
# - examples/old_backups/GettingStarted_HandlingFailures
# - examples/old_backups/pingpair_dyn
# - examples/old_backups/pingpair_irq
# - examples/old_backups/pingpair_multi_dyn
# - examples/old_backups/pingpair_sleepy
# - examples/old_backups/TransferTimeouts
# - examples/old_backups/recipes/led_remote
# - examples/old_backups/recipes/nordic_fob
# - examples/old_backups/recipes/pingpair_maple
fqbn: ${{ matrix.fqbn }}
enable-deltas-report: ${{ matrix.enable-deltas-report }}
# install earlphilhower's arduino-pico platform index
platforms: |
- name: rp2040:rp2040
source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
- name: arduino:avr
- name: arduino:megaavr
- name: arduino:sam
- name: arduino:samd
- name: arduino:mbed
strategy:
fail-fast: false
matrix:
fqbn:
- "arduino:avr:yun"
- "arduino:avr:uno"
- "arduino:avr:diecimila"
- "arduino:avr:mega"
- "arduino:avr:megaADK"
- "arduino:avr:leonardo"
- "arduino:avr:micro"
- "arduino:avr:esplora"
- "arduino:avr:mini"
- "arduino:avr:ethernet"
- "arduino:avr:fio"
- "arduino:avr:bt"
# - "arduino:avr:LilyPad" # board not found
- "arduino:avr:LilyPadUSB"
- "arduino:avr:pro"
- "arduino:avr:atmegang"
- "arduino:avr:robotControl"
- "arduino:avr:robotMotor"
# - "arduino:avr:gemma" # does not support SPI
- "arduino:avr:circuitplay32u4cat"
- "arduino:avr:yunmini"
- "arduino:avr:chiwawa"
- "arduino:avr:one"
- "arduino:avr:unowifi"
- "arduino:mbed:nano33ble"
- "arduino:mbed:nanorp2040connect"
- "rp2040:rp2040:rpipico"
- "rp2040:rp2040:rpipicow"
- "rp2040:rp2040:adafruit_feather"
- "arduino:samd:mkr1000" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwifi1010" # InterruptConfigure.ino uses pin 2
- "arduino:samd:nano_33_iot"
- "arduino:samd:mkrfox1200" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwan1300" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwan1310" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrgsm1400" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrnb1500" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrvidor4000" # InterruptConfigure.ino uses pin 2
- "arduino:samd:adafruit_circuitplayground_m0"
- "arduino:samd:mzero_pro_bl"
- "arduino:samd:mzero_bl"
- "arduino:samd:tian"
- "arduino:megaavr:uno2018"
# - "arduino:megaavr:nano4809" # board not found
- "arduino:sam:arduino_due_x_dbg"
# By default, don't generate size deltas data.
enable-deltas-report:
- false
# Generate size deltas data for this board
include:
- fqbn: arduino:avr:nano
enable-deltas-report: true
- fqbn: arduino:samd:mkrzero # InterruptConfigure.ino uses pin 2
enable-deltas-report: true

#### NOTE installing ATTinyCore has become too problematic for various reasons
#### I'll have to revisit this later when the Arduino CLI tool gets their act together
# attiny:
# uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
# with:
# platforms: |
# - source-url: "http://drazzy.com/package_drazzy.com_index.json"
# name: "ATTinyCore:avr"
# - name: "arduino:avr"
# sketch-paths: |
# - examples/rf24_ATTiny/rf24ping85
# - examples/rf24_ATTiny/timingSearch3pin
# fqbn: ${{ matrix.fqbn }}
# enable-deltas-report: ${{ matrix.enable-deltas-report }}
# strategy:
# fail-fast: false
# matrix:
# fqbn:
# - ATTinyCore:avr:attinyx4
# - ATTinyCore:avr:attinyx4opti
# - ATTinyCore:avr:attinyx4micr
# - ATTinyCore:avr:attinyx5
# - ATTinyCore:avr:attinyx5micr
# - ATTinyCore:avr:attinyx8
# - ATTinyCore:avr:attinyx8opti
# - ATTinyCore:avr:attinyx8micr
# - ATTinyCore:avr:attinyx7
# - ATTinyCore:avr:attinyx7opti
# - ATTinyCore:avr:attinyx7micr
# - ATTinyCore:avr:attinyx61
# - ATTinyCore:avr:attinyx61opti
# - ATTinyCore:avr:attinyx41
# - ATTinyCore:avr:attinyx41opti
# - ATTinyCore:avr:attinyx41micr
# # - ATTinyCore:avr:attiny43 # doesn't seem to support USI implementation of SPI
# - ATTinyCore:avr:attiny828
# - ATTinyCore:avr:attiny828opti
# - ATTinyCore:avr:attiny1634
# - ATTinyCore:avr:attiny1634opti
# - ATTinyCore:avr:attinyx313
# # By default, don't generate size deltas data.
# enable-deltas-report:
# - false
# # Generate size deltas data for this board
# include:
# - fqbn: ATTinyCore:avr:attinyx5
# enable-deltas-report: true

# When using a matrix to compile for multiple boards, it's necessary to use a separate job for the deltas report
report:
needs: [build] # , attiny]
if: github.event_name == 'pull_request'
uses: nRF24/.github/.github/workflows/arduino_size_deltas.yaml@main
name: Arduino

on:
pull_request:
branches: [master]
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/**"
- "RF24.*"
push:
branches: [master]
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/**"

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
build:
uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
with:
sketch-paths: |
- examples/GettingStarted
- examples/AcknowledgementPayloads
- examples/ManualAcknowledgements
- examples/StreamingData
- examples/MulticeiverDemo
- examples/InterruptConfigure
- examples/scanner
- examples/encodeRadioDetails
# The following examples still exist for posterity. They don't trigger this workflow
# - examples/old_backups/GettingStarted_HandlingFailures
# - examples/old_backups/pingpair_dyn
# - examples/old_backups/pingpair_irq
# - examples/old_backups/pingpair_multi_dyn
# - examples/old_backups/pingpair_sleepy
# - examples/old_backups/TransferTimeouts
# - examples/old_backups/recipes/led_remote
# - examples/old_backups/recipes/nordic_fob
# - examples/old_backups/recipes/pingpair_maple
fqbn: ${{ matrix.fqbn }}
enable-deltas-report: ${{ matrix.enable-deltas-report }}
# install earlphilhower's arduino-pico platform index
platforms: |
- name: rp2040:rp2040
source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
- name: arduino:avr
- name: arduino:megaavr
- name: arduino:sam
- name: arduino:samd
- name: arduino:mbed
strategy:
fail-fast: false
matrix:
fqbn:
- "arduino:avr:yun"
- "arduino:avr:uno"
- "arduino:avr:diecimila"
- "arduino:avr:mega"
- "arduino:avr:megaADK"
- "arduino:avr:leonardo"
- "arduino:avr:micro"
- "arduino:avr:esplora"
- "arduino:avr:mini"
- "arduino:avr:ethernet"
- "arduino:avr:fio"
- "arduino:avr:bt"
# - "arduino:avr:LilyPad" # board not found
- "arduino:avr:LilyPadUSB"
- "arduino:avr:pro"
- "arduino:avr:atmegang"
- "arduino:avr:robotControl"
- "arduino:avr:robotMotor"
# - "arduino:avr:gemma" # does not support SPI
- "arduino:avr:circuitplay32u4cat"
- "arduino:avr:yunmini"
- "arduino:avr:chiwawa"
- "arduino:avr:one"
- "arduino:avr:unowifi"
- "arduino:mbed:nano33ble"
- "arduino:mbed:nanorp2040connect"
- "rp2040:rp2040:rpipico"
- "rp2040:rp2040:rpipicow"
- "rp2040:rp2040:adafruit_feather"
- "arduino:samd:mkr1000" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwifi1010" # InterruptConfigure.ino uses pin 2
- "arduino:samd:nano_33_iot"
- "arduino:samd:mkrfox1200" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwan1300" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrwan1310" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrgsm1400" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrnb1500" # InterruptConfigure.ino uses pin 2
- "arduino:samd:mkrvidor4000" # InterruptConfigure.ino uses pin 2
- "arduino:samd:adafruit_circuitplayground_m0"
- "arduino:samd:mzero_pro_bl"
- "arduino:samd:mzero_bl"
- "arduino:samd:tian"
- "arduino:megaavr:uno2018"
# - "arduino:megaavr:nano4809" # board not found
- "arduino:sam:arduino_due_x_dbg"
# By default, don't generate size deltas data.
enable-deltas-report:
- false
# Generate size deltas data for this board
include:
- fqbn: arduino:avr:nano
enable-deltas-report: true
- fqbn: arduino:samd:mkrzero # InterruptConfigure.ino uses pin 2
enable-deltas-report: true

#### NOTE installing ATTinyCore has become too problematic for various reasons
#### I'll have to revisit this later when the Arduino CLI tool gets their act together
# attiny:
# uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
# with:
# platforms: |
# - source-url: "http://drazzy.com/package_drazzy.com_index.json"
# name: "ATTinyCore:avr"
# - name: "arduino:avr"
# sketch-paths: |
# - examples/rf24_ATTiny/rf24ping85
# - examples/rf24_ATTiny/timingSearch3pin
# fqbn: ${{ matrix.fqbn }}
# enable-deltas-report: ${{ matrix.enable-deltas-report }}
# strategy:
# fail-fast: false
# matrix:
# fqbn:
# - ATTinyCore:avr:attinyx4
# - ATTinyCore:avr:attinyx4opti
# - ATTinyCore:avr:attinyx4micr
# - ATTinyCore:avr:attinyx5
# - ATTinyCore:avr:attinyx5micr
# - ATTinyCore:avr:attinyx8
# - ATTinyCore:avr:attinyx8opti
# - ATTinyCore:avr:attinyx8micr
# - ATTinyCore:avr:attinyx7
# - ATTinyCore:avr:attinyx7opti
# - ATTinyCore:avr:attinyx7micr
# - ATTinyCore:avr:attinyx61
# - ATTinyCore:avr:attinyx61opti
# - ATTinyCore:avr:attinyx41
# - ATTinyCore:avr:attinyx41opti
# - ATTinyCore:avr:attinyx41micr
# # - ATTinyCore:avr:attiny43 # doesn't seem to support USI implementation of SPI
# - ATTinyCore:avr:attiny828
# - ATTinyCore:avr:attiny828opti
# - ATTinyCore:avr:attiny1634
# - ATTinyCore:avr:attiny1634opti
# - ATTinyCore:avr:attinyx313
# # By default, don't generate size deltas data.
# enable-deltas-report:
# - false
# # Generate size deltas data for this board
# include:
# - fqbn: ATTinyCore:avr:attinyx5
# enable-deltas-report: true

# When using a matrix to compile for multiple boards, it's necessary to use a separate job for the deltas report
report:
needs: [build] # , attiny]
if: github.event_name == 'pull_request'
permissions:
# for posting/updating comments on PR threads
pull-requests: write
uses: nRF24/.github/.github/workflows/arduino_size_deltas.yaml@main
Loading