Releases: nRF24/RF24
Releases · nRF24/RF24
v1.4.9
What's Changed
- Update clang format by @2bndy5 in #940
- Bump actions/checkout from 3 to 4 by @dependabot in #941
- GPIO changes (RPi5 support) by @TMRh20 in #942
- Docs: Byte alignment/packing mismatches by @TMRh20 in #945
- Update COMMON_ISSUES re: write() function by @TMRh20 in #947
- Docs: testRPD by @TMRh20 in #948
- Update MRAA timer functions by @TMRh20 in #950
- Modify Main docs page by @TMRh20 in #951
- Fix for SPIDEV & MRAA: delayMicroseconds() by @TMRh20 in #952
- Add delay to manualAcknowledgements example by @TMRh20 in #953
- Fix for pigpio delayMicroseconds by @TMRh20 in #954
- Link to new (CMake) installer by default by @TMRh20 in #957
- separate ISR handling from IRQ processing by @2bndy5 in #956
- Promiscuous scanners by @2bndy5 in #955
- Update SPIDEV driver for Character Device v2 ABI; cache FDs by @2bndy5 in #959
- IRQ support using Linux kernel Character Device + Posix threads by @2bndy5 in #961
- cache gpio chip detection when properly initialized by @2bndy5 in #962
- use quotes for linux/gpio.h include by @2bndy5 in #963
- Add link to RF24G library in docs by @TMRh20 in #964
- revise MRAA driver's GPIO implementation by @2bndy5 in #966
- update python wrapper/examples/doc by @2bndy5 in #967
- wrap MRAA lib's
Gpio::isr()
for IRQ support by @2bndy5 in #970 - Use BCM2835 lib's Edge Detection Status for IRQ support by @2bndy5 in #969
- wrap
wiringPiISRStop()
in driver API by @2bndy5 in #968 - disable auto-detect driver and default to SPIDEV by @2bndy5 in #973
New Contributors
- @dependabot made their first contribution in #941
Full Changelog: v1.4.8...v1.4.9
fix for `available()` inconsistency
v1.4.7
What's Changed
- Doc tweaks and reusable CI by @2bndy5 in #887
- Reworked the utility/rp2 SPI class and removed static members by @TheGarkine in #892
- solve #894 by @2bndy5 in #895
- Update pico_sdk.md to reflect changes to SPI with user-specified pins by @matt-walker0 in #900
- [OrangePi Zero] Linux chip enable conditional statement by @fertinator in #904
- Alias gpio pin datatype by @2bndy5 in #898
New Contributors
- @TheGarkine made their first contribution in #892
- @fertinator made their first contribution in #904
Full Changelog: v1.4.6...v1.4.7
fix pgm_read_* macros & add printf_P support for more boards
What's Changed
- Fix Raspberry Pi company name (in docs) by @lurch in #858
- make utilities/CMakeLists.txt respect RF24_NO_IRQ by @2bndy5 in #859
- adjust writeFast docs by @2bndy5 in #866
- add manual trigger to docs CI by @2bndy5 in #868
- Fix
pgm_read_ptr()
: 'const void*' is not a pointer-to-object type by @bblanchon in #864 - Fix
pgm_read_byte/word()
definitions by @2bndy5 in #871 - add printf support to ESP32/8266 and arduino-pico cores by @2bndy5 in #873
New Contributors
- @lurch made their first contribution in #858
- @bblanchon made their first contribution in #864
Full Changelog: v1.4.5...v1.4.6
fix sprintf defines
- All single line loops and conditions use curly brackets
- Moved preprocessor directives about
sprintf()
to respective arch_configs
Full Changelog: v1.4.4...v1.4.5
v1.4.4
PIGPIO support and more
What's Changed
- fix recieved -> received typos by @prawnpie in #817
- Updated common issues added issues and fixes by @matt-walker0 in #820
- add support for sprintf by @dstroy0 in #821
- add new feature encodeRadioDetails and optimize sprintfPrettyDetails by @dstroy0 in #825
- PIGPIO support for IRQ feature (now that wiringPi is no longer shipped with RPi OS) @TMRh20 in #819
- Update printf.h to include megaAVR by @Cobalt6700 in #843
- various improvements to docs by @2bndy5 in #844
- Clang format by @2bndy5 in #824
- Add isFifo() methods by @2bndy5 in #849
- add model variant info to printPrettyDetails() by @2bndy5 in #850
- Update py examples by @2bndy5 in #851
New Contributors
- @prawnpie made their first contribution in #817
- @dstroy0 made their first contribution in #821
- @Cobalt6700 made their first contribution in #843
Full Changelog: v1.4.2...v1.4.3
v1.4.2
- new Sphinx docs generation (currently hosted on https://rf24.rtfd.io)
- Update documentation
- RP2040 support
- CMake support
- Example touch-ups
- add new
toggleAllPipes()
function (as opposed to individually opening/closing pipes) - add new function
setRadiation()
function (which combinessetPALevel()
andsetDataRate()
into 1 SPI transaction) - add
toggleAllPipes()
andsetRadiation()
to python wrapper - improved all CI workflows
Warning for installing from the packaged release assets (.deb or .rpm files below)
If you have previously installed the library from source code using the traditional ./configure; make; sudo make install
, then you will need to uninstall it manually to avoid runtime conflicts.
sudo rm /usr/local/lib/librf24.*
sudo rm /usr/local/lib/librf24-bcm.so
sudo rm -r /usr/local/include/RF24
This is because the Linux package manager puts the newly installed library into a /usr/lib and /usr/include folders. Installing from source will put the lib in /usr/local/lib and /usr/local/include folders.
Bug fix for SoftSPI
This release reverts the changes made to SoftSPI
implementation in v1.4.0. Also has a slight adjustment of a code snippet in the docs. Thank you @bifferos
Feature update (& some patches)
Overloaded begin()
- new overloaded
begin(_SPI*)
function for Arduino based platforms (but not Due, ATTiny, LittleWire, orSPI_UART
) that allows the user to specify a non-default SPI bus object- /docs/arduino.md has example snippets for
- NodeMCU (using pins' on-board labels via macros from the ESP8266 Arduino core)
- ESP32 (generic)
- Teensy (generic) - though I don't think teensy users need to use the overloaded
begin(_SPI*)
(as demonstrated in example snippet)
- The
SPIClass::begin()
function must be called before callingRF24::begin()
as warned in /docs/arduino.md page and theRF24::begin(_SPI*)
function's docs (which also defers to the Arduino support page). - A new macro
RF24_SPI_PTR
which is only defined when_SPI
is used as a datatype (as opposed to the actualSPI
object for a platform).
- /docs/arduino.md has example snippets for
- new overloaded
begin(_cepin, _cspin)
to implement feature request from #539. This applies to all supported platforms. This implementation also provides an overloaded c'tor that accepts only the_spi_speed
parameter (that still defaults toRF24_SPI_SPEED
- so it could essentially be used as an empty c'tor). Note thatbegin()
returnsfalse
if CE & CSN pins are never specified (either with c'tor or new overloadedbegin(_cepin, _cspin)
/begin(_SPI*, _cepin, _cspin)
methods). This feature is extended to the python wrapper as well. - new additionally overloaded
begin(_SPI*, _cepin, _cspin)
on Arduino based platforms (but not Due, ATTiny, LittleWire, orSPI_UART
) to allow also specifying a SPI bus from feature request #743 when combined with feature request from #539
Patch updates
- fix releases for PlatformIO (a missing comma prevented v1.3.12 from showing in PlatformIO)
- abstract docs (main page and all "Related Pages" now live in the docs folder)
- added fix for mbed platform about printf.h from @TonioChingon in #739
- added fix for #414 to RF24_config.h concerning
ARDUINO_ARCH_SAMD
about internally usingprintf()
. This fix is only appicable to the adafruit fork of the ArduinoCore-samd. Original ArduinoCore-samd does not use avr/pgmspace.h and doesn't declareprintf()
as accessible method from the Serial object(s). - Removed useless /utility/Due/R24_arch_config.h file and fixed missing avr/pgmspace.h for Arduino Due (pgmspace was added back into the Due core in 2013).
- added Arduino Due to the ArduinoCLI workflow. Also introduced a new workflow that uses PlatformIO to test the examples on the Teensy platform (thus the new badge in the README).
- amended
isValid()
to check if private membersce_pin
&csn_pin
are0xFFFF
because it seems it wasn't updated when the c'tor parameters changed their datatype fromuint8_t
touint16_t