Skip to content

Releases: nRF24/RF24

v1.4.9

11 Jun 07:54
Compare
Choose a tag to compare

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

Full Changelog: v1.4.8...v1.4.9

fix for `available()` inconsistency

27 Sep 06:02
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.4.7...v1.4.8

v1.4.7

06 Jun 23:41
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.4.6...v1.4.7

fix pgm_read_* macros & add printf_P support for more boards

18 Sep 15:24
Compare
Choose a tag to compare

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

Full Changelog: v1.4.5...v1.4.6

fix sprintf defines

19 Jul 12:11
Compare
Choose a tag to compare
  • 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

18 Jul 13:24
Compare
Choose a tag to compare
  • Fix data corruption issues #854

EDIT: This did not fix the mentioned issue as intended. Please use v1.4.5 instead

PIGPIO support and more

09 Jul 12:34
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.4.2...v1.4.3

v1.4.2

28 Nov 12:40
2bfde05
Compare
Choose a tag to compare
  • 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 combines setPALevel() and setDataRate() into 1 SPI transaction)
  • add toggleAllPipes() and setRadiation() 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

02 Jul 11:33
7c3d6ec
Compare
Choose a tag to compare

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)

13 Apr 01:37
Compare
Choose a tag to compare

Overloaded begin()

  • new overloaded begin(_SPI*) function for Arduino based platforms (but not Due, ATTiny, LittleWire, or SPI_UART) that allows the user to specify a non-default SPI bus object
    1. /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)
    2. The SPIClass::begin() function must be called before calling RF24::begin() as warned in /docs/arduino.md page and the RF24::begin(_SPI*) function's docs (which also defers to the Arduino support page).
    3. A new macro RF24_SPI_PTR which is only defined when _SPI is used as a datatype (as opposed to the actual SPI object for a platform).
  • 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 to RF24_SPI_SPEED - so it could essentially be used as an empty c'tor). Note that begin() returns false if CE & CSN pins are never specified (either with c'tor or new overloaded begin(_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, or SPI_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 using printf(). 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 declare printf() 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 members ce_pin & csn_pin are 0xFFFF because it seems it wasn't updated when the c'tor parameters changed their datatype from uint8_t to uint16_t