Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new examples and more #691

Merged
merged 198 commits into from
Dec 14, 2020
Merged
Show file tree
Hide file tree
Changes from 195 commits
Commits
Show all changes
198 commits
Select commit Hold shift + click to select a range
361230b
don't hide EN_ACK_PAY reqs; adjust examples & docs
2bndy5 Oct 18, 2020
25c1a00
removed duplicated calls in examples/tests
2bndy5 Oct 19, 2020
1f1942e
too many examples
2bndy5 Oct 19, 2020
1993a7f
update docs about reUseTx()
2bndy5 Oct 20, 2020
38d4bfb
deprecate enableDynamicAck()
2bndy5 Oct 19, 2020
cf0216c
clarify reUseTx()
2bndy5 Oct 18, 2020
ebcca2e
typo in func ref
2bndy5 Oct 18, 2020
45c9192
append setAutoAck() about pipe 0
2bndy5 Oct 18, 2020
64c957e
consistent casing in "auto-ack"
2bndy5 Oct 18, 2020
479df40
fix typo
2bndy5 Oct 18, 2020
92ea3b2
revert this "see also" changes
2bndy5 Oct 18, 2020
13af7e4
use ack_payloads_enabled to full potential
2bndy5 Oct 19, 2020
3b5ed1e
undeprecate flush_rx()
2bndy5 Oct 20, 2020
ea8491e
isPVariant return internal var; default dyn_pl on
2bndy5 Oct 20, 2020
e58fbeb
oops, readdress nRF24#401 nRF24#641 nRF24#660
2bndy5 Oct 20, 2020
98946e6
address nRF24#640
2bndy5 Oct 20, 2020
9034a0a
deprecate isAckPayloadAvailable() nRF24#664
2bndy5 Oct 20, 2020
86ed1b8
try to ignore return value; trigger forked actions
2bndy5 Oct 20, 2020
731ac2a
this is why I can't have nice things
2bndy5 Oct 20, 2020
2e40a6e
retrying to ignore return value; fix init order
2bndy5 Oct 20, 2020
7194f4e
add CI for avr compiling examples
2bndy5 Oct 20, 2020
4f5fdbc
build doxygen with latest release ver number
2bndy5 Oct 20, 2020
d26a6f6
revert doxyfile, fix doxygen.yml, make2 = install
2bndy5 Oct 20, 2020
48e378c
build examples changes, doxygen.yml bad indent
2bndy5 Oct 20, 2020
34092a9
remove unnecessary pipe chars in doxygen.yml
2bndy5 Oct 20, 2020
4f3743e
linux CI changed, pde->ino files
2bndy5 Oct 21, 2020
08c1ed9
platform specific examples; fix WiringPi build
2bndy5 Oct 21, 2020
e995665
fix using void return value
2bndy5 Oct 21, 2020
42be28b
remove gemma & lilypad; fix certain example vars
2bndy5 Oct 21, 2020
c7a737f
wiringPi may be broken nRF24#669
2bndy5 Oct 21, 2020
5988239
8 paragraphs that say keep auto-ack enabled
2bndy5 Oct 21, 2020
fcc740d
reverted examples folders; exclude maple & 3pin
2bndy5 Oct 21, 2020
7b4cca6
exclude didn't work
2bndy5 Oct 21, 2020
3bbc77b
trigger arduino build on workflow changes
2bndy5 Oct 21, 2020
394c616
explicit examples' paths
2bndy5 Oct 21, 2020
fbd0a41
no wildcards in explicit paths
2bndy5 Oct 21, 2020
335fc07
no quotes in yaml sequence
2bndy5 Oct 21, 2020
e872df6
try using a pipe char
2bndy5 Oct 21, 2020
9f37e6b
arduino build "needs" A-style check
2bndy5 Oct 21, 2020
483380a
applied arduino IDE's auto formatting
2bndy5 Oct 21, 2020
02bbd07
remove format checker
2bndy5 Oct 21, 2020
a56fe25
fine let the example terminate
2bndy5 Oct 21, 2020
f14b262
all official arduino cores to build_arduino.yml
2bndy5 Oct 21, 2020
fef6be0
backup examples; new GettingStarted
2bndy5 Oct 22, 2020
3b9280c
no explicit examples; compile all
2bndy5 Oct 22, 2020
ee727d3
new InterruptConfigure example
2bndy5 Oct 23, 2020
f4bb417
// about when IRQ flags get cleared; & a fix typo
2bndy5 Oct 23, 2020
a577776
new StreamingData & MulticeiverDemo examples
2bndy5 Oct 24, 2020
d701485
reduce streamData compilation size
2bndy5 Oct 24, 2020
37d3297
tested GetStarted, AckPayloads, Streaming
2bndy5 Oct 24, 2020
e9a3c3c
IRQ & Multicceiver examples tested
2bndy5 Oct 25, 2020
723f5c7
undo nRF24#646; add broken FakeBLE example
2bndy5 Oct 27, 2020
c284bba
fix arduino build CI
2bndy5 Oct 27, 2020
47aca0e
forgot to use pipe char
2bndy5 Oct 27, 2020
7d1ef40
typo
2bndy5 Oct 27, 2020
d2c1088
2nd job should run on ubuntu-latest
2bndy5 Oct 27, 2020
3f6b1af
fqbn arch-type is wrong?!
2bndy5 Oct 27, 2020
a9dee4c
uncomment #define IRQ_PIN from testing artifacts
2bndy5 Oct 27, 2020
b683fae
use SpenceKonde core released zip file
2bndy5 Oct 27, 2020
6800c0e
use SpenceKonde board definitions
2bndy5 Oct 27, 2020
b53690e
use correct vendor name?!
2bndy5 Oct 27, 2020
7b7366e
use lower case?!
2bndy5 Oct 27, 2020
bcf4db2
platform name should match the fqbn
2bndy5 Oct 27, 2020
f0e9d82
what am I doing wrong? use SpenceKonde attiny core
2bndy5 Oct 27, 2020
f60bf31
under "platforms" not "with"
2bndy5 Oct 27, 2020
df8c017
yml formatted "platforms" options
2bndy5 Oct 27, 2020
a113a9b
"with: platforms:"
2bndy5 Oct 27, 2020
2d0b2ec
source-path uses relative path
2bndy5 Oct 27, 2020
c0aaacf
use trailing / in source-path
2bndy5 Oct 27, 2020
0d0efac
clear advice from per1234 about yml syntax
2bndy5 Oct 27, 2020
8405fb0
fixing source-path and version number
2bndy5 Oct 27, 2020
e1e2e2a
use direct download link to SpenceKonde release
2bndy5 Oct 27, 2020
0b25b40
adjust source-path again
2bndy5 Oct 27, 2020
75db459
no source-path
2bndy5 Oct 27, 2020
79f1e9c
redo-ing nRF24#646
2bndy5 Oct 27, 2020
59afeab
timingSearch3pin includes stdio
2bndy5 Oct 27, 2020
04c2048
don't ignore rf24_ATTiny examples
2bndy5 Oct 27, 2020
056749a
separate job for separate ATTiny examples
2bndy5 Oct 27, 2020
04658e9
timingSearch3pin uses redefined spi funcs
2bndy5 Oct 27, 2020
fd59e00
drop testing on attiny43, install core from json
2bndy5 Oct 27, 2020
a84ceee
keywords updated removed duplicate examples
2bndy5 Oct 27, 2020
483da85
CallResponse was duplicate; (+) ManualAck example
2bndy5 Oct 28, 2020
1e9240f
doc updates nRF24#671 tested new manAck example
2bndy5 Oct 28, 2020
0400890
FakeBLE crc calc not checking out
2bndy5 Oct 28, 2020
a26efe3
add per1234's action to check formatting
2bndy5 Oct 28, 2020
2a37c1d
did not find expected alphanumeric char?!
2bndy5 Oct 28, 2020
905c63e
add manualAcknowledgements example to docs
2bndy5 Oct 28, 2020
f1c4053
don't remove comment block prefix
2bndy5 Oct 28, 2020
685e89d
restored comment prefix in old examples also
2bndy5 Oct 28, 2020
883d7b5
less confusing comments about addresses
2bndy5 Oct 28, 2020
c9c368e
clarify docs on return value for all write-related
2bndy5 Oct 28, 2020
ba2204c
remove broken fakeBLE example
2bndy5 Oct 28, 2020
4c4bc76
forgot to remove fakeBLE from arduino workflow
2bndy5 Oct 28, 2020
c342ed2
test deploy to gh-pages
2bndy5 Oct 28, 2020
be5cd99
bad yml format
2bndy5 Oct 28, 2020
9b04b43
something's wrong with the doxygen build CI
2bndy5 Oct 28, 2020
b7627b1
lack of new line in end of doxyfile
2bndy5 Oct 28, 2020
283d40a
remove debug prompt; deploy on publish released
2bndy5 Oct 28, 2020
cce2960
deploy on any release event
2bndy5 Oct 28, 2020
d98f96c
fix main page useful links
2bndy5 Oct 28, 2020
1df23ea
only clear RX_DR flag in read()
2bndy5 Oct 28, 2020
0ab70d0
typo
2bndy5 Oct 28, 2020
1ef330b
doc updates; new python examples
2bndy5 Oct 29, 2020
34bd0ca
new gettingstarted example for linux
2bndy5 Oct 30, 2020
9c23daf
add micros() to applicable utilities compatiblity
2bndy5 Oct 30, 2020
4ffe665
define micros() in arch_config.h
2bndy5 Oct 30, 2020
c17c6ac
printDetails() in linux
2bndy5 Oct 30, 2020
e9aa0c7
pipe number not printing correctly
2bndy5 Oct 30, 2020
2369c3c
oops it was a non-printable char
2bndy5 Oct 30, 2020
98fe7e5
avoid keyboard interrupt
2bndy5 Oct 30, 2020
e3704ce
build wiringPi examples also
2bndy5 Oct 30, 2020
14bcf4a
linux build CI for SPIDEV
2bndy5 Oct 30, 2020
2a50730
ignore return value in utilty/SPIDEV/interrupt.c
2bndy5 Oct 30, 2020
441b5d4
trying rf24_micros()
2bndy5 Oct 30, 2020
24ad115
ammend example to use rf24_micros()
2bndy5 Oct 30, 2020
1405b11
let micros() be defined in examples for linux
2bndy5 Oct 30, 2020
0b5b469
need cstdio
2bndy5 Oct 30, 2020
d544eba
ported arduino examples to linux (& python)
2bndy5 Nov 1, 2020
f9ca17c
oops
2bndy5 Nov 1, 2020
760305d
should probably declare i huh
2bndy5 Nov 1, 2020
8c00652
copy n paste much?
2bndy5 Nov 1, 2020
443b8d9
don't use stoi for a char
2bndy5 Nov 1, 2020
584de32
typo, expose digitalRead(), ifdef RF24_WIRINGPI
2bndy5 Nov 1, 2020
584e5ee
ifdef WIRINGPI didn't help, fix inline condition
2bndy5 Nov 1, 2020
b641a27
testing round 1; fix pyRf24/setup.py
2bndy5 Nov 1, 2020
561f027
bug fixes in py examples prompt fixes in linux
2bndy5 Nov 1, 2020
2215b1d
fix irqConf for arduino, rename stream_data.py
2bndy5 Nov 1, 2020
f74c1e3
copy n paste artifact
2bndy5 Nov 1, 2020
31a1e7d
debugging streamingData
2bndy5 Nov 1, 2020
8d27710
testing round 2
2bndy5 Nov 2, 2020
0b02afc
oops
2bndy5 Nov 2, 2020
96daeb6
timing output changes; printDetails() also
2bndy5 Nov 2, 2020
66e49e1
debugging IRQ configure example
2bndy5 Nov 2, 2020
ef8ae09
debugging IRQ_config.py also
2bndy5 Nov 2, 2020
46db970
declare timer stuff for micros in manACK example
2bndy5 Nov 2, 2020
32cba92
typo
2bndy5 Nov 2, 2020
9dec292
doc read() for python; add flush_rx() to py wrap
2bndy5 Nov 2, 2020
13ed0bd
remove cap on how many bytes to read in python!!!
2bndy5 Nov 2, 2020
27ec815
don't cap bytes read() from RX FIFO in C++
2bndy5 Nov 2, 2020
ce1c422
supposed to be decode() not encode()
2bndy5 Nov 2, 2020
ead31e6
fix typos; better python doc about read()
2bndy5 Nov 2, 2020
3a641b0
py wrapper omits len args for buf-related funcs
2bndy5 Nov 2, 2020
e6d9dfe
fix streaming_data.py master()
2bndy5 Nov 2, 2020
0da09f5
duplicate prompt in ackPay.py
2bndy5 Nov 2, 2020
2527bcb
prompt format changes
2bndy5 Nov 3, 2020
5ba9b5f
big commit
2bndy5 Nov 6, 2020
2562444
Linux build CI use pip3 to install RPi.GPIO
2bndy5 Nov 6, 2020
f67f9c0
workflow uses python 3.7 x86
2bndy5 Nov 6, 2020
fc61fc6
workflow uses python 3.x x86
2bndy5 Nov 6, 2020
a30ecd9
python needs x32 called in workflow
2bndy5 Nov 6, 2020
878252d
fix address assignment in linux examples
2bndy5 Nov 6, 2020
3986c1b
don't check python examples in workflow
2bndy5 Nov 6, 2020
d46dad6
define INPUT in RPi-BCM driver
2bndy5 Nov 6, 2020
c8571fa
remove GPIO.cleanup() from py examples
2bndy5 Nov 6, 2020
1627ec5
payloadSize is an attribute in python
2bndy5 Nov 6, 2020
2d718f0
fix python examples about getPLsize()
2bndy5 Nov 6, 2020
8ebbc48
use RuntimeError in python examples when begin() is false
2bndy5 Nov 6, 2020
aac3ece
testing round 3
2bndy5 Nov 6, 2020
2b5f070
streamData uses write(); python examples need 3.7+
2bndy5 Nov 7, 2020
4ce1c03
fix ellapsedTime in streamingData
2bndy5 Nov 7, 2020
1e9bcb8
status byte saved as private member
2bndy5 Nov 10, 2020
47ce8fd
simplify logic about _is_p_variant
2bndy5 Nov 10, 2020
675fb35
testing round 4 & address nRF24#680
2bndy5 Nov 11, 2020
59f4a86
fix irq examples
2bndy5 Nov 15, 2020
af1a5cc
fix compilation errors for IRQ examples
2bndy5 Nov 15, 2020
84ef5fd
fix irq example for linux
2bndy5 Nov 15, 2020
8d32772
tweak IRQ py example; writeAckPayload returns bool
2bndy5 Nov 15, 2020
cc3ac70
final tweaks to IRQ examples; some doc updates
2bndy5 Nov 16, 2020
4998f23
leave closeReadingPipe(0) in startListening()
2bndy5 Nov 16, 2020
41efb17
arduino examples work
2bndy5 Nov 20, 2020
5bc9039
remove volatile from radio declaration
2bndy5 Nov 20, 2020
8f7baf2
datasheets; fix man_ack.py example
2bndy5 Nov 21, 2020
d2b1789
ATTiny examples should work on SpenceKonde core
2bndy5 Nov 23, 2020
8b73043
exclude ATTinyx313 from timingSearch3pin example
2bndy5 Nov 23, 2020
f87d7b2
oops, bad indent
2bndy5 Nov 23, 2020
8f82ca1
Astyle indent for #ifdef is 0
2bndy5 Nov 23, 2020
7dc836a
(+) CLI args to examples. pwr down radio on ctrl+c
2bndy5 Nov 26, 2020
65e5b67
fail if no valid arg is specified
2bndy5 Nov 26, 2020
52ec729
fix parsing args in python examples
2bndy5 Nov 26, 2020
75d45d2
make py examples behave like c++ examples
2bndy5 Nov 26, 2020
530d672
found a bug in py examples' -r arg
2bndy5 Nov 26, 2020
f32bdc9
testing round 5
2bndy5 Nov 26, 2020
e93bc79
adjust manpage descriptions
2bndy5 Nov 26, 2020
6a730ce
don't use signal.h in cpp examples
2bndy5 Nov 27, 2020
2de5dfc
del cli args from all linux examples except 2
2bndy5 Nov 28, 2020
521abce
edit doxyfile OUTPUT_DIR
2bndy5 Nov 28, 2020
ee0c918
only run doxygen on master branch
2bndy5 Nov 28, 2020
162b449
redirect doc links to nRF24 org
2bndy5 Nov 28, 2020
30a7e4e
missed a link
2bndy5 Nov 29, 2020
2a53d3f
Merge branch 'master' into master
2bndy5 Nov 29, 2020
b56aa93
remove use of timeout bool in manAck.ino
2bndy5 Nov 30, 2020
5c46dbe
self-reviewed PR changes
2bndy5 Dec 2, 2020
2c2775c
ATTinyCore adjustments
2bndy5 Dec 7, 2020
ec63387
some more self-reviewed PR changes
2bndy5 Dec 7, 2020
37c926b
exclude root README from doxygen output
2bndy5 Dec 8, 2020
95787fe
exclude GPIO & SPI classes from doc'd classes
2bndy5 Dec 10, 2020
a774ef2
add Arduino & Linux build badges to readme
2bndy5 Dec 10, 2020
ccf245c
Change link to docs in readme
2bndy5 Dec 13, 2020
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
157 changes: 157 additions & 0 deletions .github/workflows/build_arduino.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
name: Arduino CLI build

on:
pull_request:
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/recipes/pingpair_maple/**"

push:
paths:
- ".github/workflows/build_arduino.yml"
- "examples/**"
- "!examples/old_backups/recipes/pingpair_maple/**"

jobs:
check_formatting:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Check code formatting
uses: per1234/artistic-style-action@main
with:
options-file-path: ./examples/examples_formatter.conf
name-patterns: |
- '*.ino'
- '*.cpp'
- '*.hpp'
- '*.h'
target-paths: |
- examples
build:
needs: check_formatting
runs-on: ubuntu-latest

strategy:
fail-fast: false

matrix:
fqbn:
- "arduino:avr:yun"
- "arduino:avr:uno"
- "arduino:avr:diecimila"
- "arduino:avr:nano"
- "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:samd:mkr1000" # InterruptConfigure.ino uses pin 2
# - "arduino:samd:mkrzero" # 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

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Compile examples
uses: arduino/compile-sketches@main
with:
sketch-paths: |
- examples/GettingStarted
- examples/AcknowledgementPayloads
- examples/ManualAcknowledgements
- examples/StreamingData
- examples/MulticeiverDemo
- examples/InterruptConfigure
# - 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/scanner
# - 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 }}
attiny:
needs: check_formatting
runs-on: ubuntu-latest

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

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Compile examples
uses: arduino/compile-sketches@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 }}
77 changes: 30 additions & 47 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
@@ -1,64 +1,47 @@
name: C/C++ CI
name: Linux build

on: [push]

jobs:
build-RPi-BCM2835:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: provide toolchain
run: |
sudo apt-get update && \
sudo apt-get install binutils-arm-linux-gnueabi gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf &&
arm-linux-gnueabihf-gcc -v &&
arm-linux-gnueabihf-g++ -v
- name: configure
run: ./configure --soc=BCM2835 --driver=RPi
- name: make
run: make
- name: make
run: sudo make install
strategy:
fail-fast: false

build-RPi-BCM2836:
runs-on: ubuntu-latest
matrix:
config-options:
- "--soc=BCM2835 --driver=RPi"
- "--soc=BCM2836 --driver=RPi"
- "--soc=BCM2835 --driver=wiringPi --extra-cflags=-I/usr/local/include"
- "--driver=SPIDEV"

steps:
- uses: actions/checkout@v1
- name: provide toolchain
run: |
sudo apt-get update && \
sudo apt-get install binutils-arm-linux-gnueabi gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf &&
arm-linux-gnueabihf-gcc -v &&
sudo apt-get update
sudo apt-get install binutils-arm-linux-gnueabi gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
arm-linux-gnueabihf-gcc -v
arm-linux-gnueabihf-g++ -v
- name: configure
run: ./configure --soc=BCM2836 --driver=RPi
- name: make
run: make
- name: make
run: sudo make install

build-wiringPi-BCM2835:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: provide toolchain
run: |
sudo apt-get update && \
sudo apt-get install binutils-arm-linux-gnueabi gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf &&
arm-linux-gnueabihf-gcc -v &&
arm-linux-gnueabihf-g++ -v
- name: provide wiringPi
python3 --version
- name: provide WiringPi
if: ${{ matrix.config-options == '--soc=BCM2835 --driver=wiringPi --extra-cflags=-I/usr/local/include' }}
run: |
git clone https:/CoRfr/WiringPi &&
cd WiringPi/wiringPi &&
CC="arm-linux-gnueabihf-gcc -marm -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" V=1 make -j5 &&
git clone https:/CoRfr/WiringPi
cd WiringPi/wiringPi
CC="arm-linux-gnueabihf-gcc -marm -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" V=1 make -j5
sudo make install
- name: configure
run: ./configure --soc=BCM2835 --driver=wiringPi --extra-cflags=-I/usr/local/include
- name: make
- name: library configure
run: ./configure ${{ matrix.config-options }}
- name: library make
run: make
- name: make
- name: library make install
run: sudo make install
- name: make linux examples
# compiling examples for wiringPi is broken see nRF24#669 issue
if: ${{ matrix.config-options != '--soc=BCM2835 --driver=wiringPi --extra-cflags=-I/usr/local/include' }}
run: |
cd examples_linux
make
file ./gettingstarted
46 changes: 46 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: DoxyGen build

on:
pull_request:
branches:
- master
push:
branches:
- master
release:
branches:
- master
types:
- published
- edited

jobs:
build-doxygen:
runs-on: ubuntu-latest

steps:
- name: get latest release version number
id: latest_ver
uses: pozetroninc/github-action-get-latest-release@master
with:
repository: nRF24/RF24
- name: checkout
uses: actions/checkout@v2
- name: overwrite doxygen tags
run: |
mkdir docs
touch doxygenAction
echo "PROJECT_NUMBER = ${{ steps.latest_ver.outputs.release }}" >> doxygenAction
echo "OUTPUT_DIRECTORY = ./docs" >> doxygenAction
echo "@INCLUDE = doxygenAction" >> Doxyfile
- name: build doxygen
uses: mattnotmitt/doxygen-action@v1
with:
working-directory: '.'
doxyfile-path: './Doxyfile'
- name: upload to github pages
if: ${{ github.event_name == 'release'}}
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/html
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,16 @@ Session.vim
Makefile.inc
utility/includes.h
examples_linux/*
!examples_linux/**/
!examples_linux/*.*
examples_linux/**/*
!examples_linux/*.cpp
!examples_linux/*.py
!examples_linux/**/*.cpp
!examples_linux/Makefile
!examples_linux/**/Makefile
*__pycache__/
.directory
.idea
doxygenAction
.vscode/
*venv
*.pyc
50 changes: 45 additions & 5 deletions COMMON_ISSUES.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,48 @@
# Here are the most common issues and their solutions.
# Common Issues

### I'm not receiving acks!
If you're not receiving acks correctly/reliably on data rates lower than 2MBPS,
try adding a big capacitor close to the module/chip. Example issues: [#264](https:/nRF24/RF24/issues/264) [#211](https:/nRF24/RF24/issues/211).
## Settings that must match
Before you report undesirable behavior, please make sure that the
following RF24 configurations match on both receiving and transmitting
nRF24L01 transceivers:
1. `RF24::setAddressWidth()`
2. `RF24::setChannel()`
3. `RF24::setDataRate()`
4. `RF24::setAutoAck()`
5. `RF24::enableDynamicPayloads()` or `RF24::disableDynamicPayloads()`
6. `RF24::enableAckPayload()` or `RF24::disableAckPayload()` (requires auto-ack and
dynamic payloads features)
7. `RF24::setPayloadSize()` (only if the dynamic payloads feature is disabled -- it is disabled by default)
8. `RF24::setCRCLength()` or `RF24::disableCRC()` (the auto-ack feature
automatically enables CRC because it is required)

For this application, please use Electrolytic or Tantalum capacitors. Ceramic capacitors will probably not be good enough.
Also, it helps to think of an address as a path (a commonly shared route)
instead of an identifying device destination. This means that addresses
have to match for a payload to travel from one transceiver to another.
However, the pipe numbers assigned with the matching address do not have
to match. You can think of pipes as parking spots for the packets, while
all packets' payloads live in a TX or RX FIFO buffer. Remember that the
TX FIFO buffers and the RX FIFO buffers both have a maximum occupancy of
3 payloads (regardless of the maximum 32-byte payload size).

## Here are the most common issues and their solutions.

### write() always returns true after setAutoAck(false)
Don't disabled the auto-ack feature. RF24::write() has no reason to doubt
that the payload was delivered if the auto-ack feature is disabled. We
recommend you read the docs about RF24::setAutoAck() before disabling the
auto-ack feature.

### write() returns false when the payload was received
If the settings match on both endpoint transceivers, then this can only
mean that the receiving nRF24L01 failed to send an acknowledgement (ACK)
packet back to the transmitting nRF24L01. Usually this is due to
instability (electric noise) in the power lines (VCC and GND) going to
the receiving nRF24L01.

If you're not receiving ACK packets correctly/reliably on data rates
lower than 2MBPS, try adding a big capacitor close to the module/chip.
Example issues: [#264](https:/nRF24/RF24/issues/264)
[#211](https:/nRF24/RF24/issues/211).

For reliability, please use Electrolytic or Tantalum capacitors. Ceramic
capacitors may not be good enough (depending on the manufacturing source).
6 changes: 4 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.

OUTPUT_DIRECTORY = "../../ArduinoBuilds/RF24 Docs"
OUTPUT_DIRECTORY = ./docs

# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
Expand Down Expand Up @@ -928,7 +928,8 @@ EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = bcm2835* \
readme* \
runtest* \
tests*
tests* \
README*

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
Expand Down Expand Up @@ -2582,3 +2583,4 @@ GENERATE_LEGEND = YES
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_CLEANUP = YES

Loading