Skip to content

Releases: nRF24/RF24

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

v1.3.12

27 Feb 23:43
Compare
Choose a tag to compare
  • Fix millis() issues for Linux devices
  • fixed inaccuracies in the new printPrettyDetails() (concerning "Primary Role" and "Auto-ACK" outputs)
  • added C++ style functions to python wrapper instead of relying on python style attributes (concerns payloadSize and channel)
  • setRetries() now properly clamps input values to valid range (not just truncate unused bits)
  • addressed community concerns about backwards compatibility with begin() and enableAckPayload()
  • added STM32 as a supported platform for PlatformIO

Docs changes

  • fix link to littlewire website
  • fix links to datasheets (links' text/src was backwards in only v1.3.11)
  • main page now refers to this GitHub release page for list of changes
  • explicitly indicate that ATTiny2313 is unsupported due to insufficient memory capacity
  • added info about using PA/LNA modules to COMMON_ISSUES.md

v1.3.11

18 Dec 20:27
045a689
Compare
Choose a tag to compare
  • Note: stopListening() must be called before write()
  • New examples
  • Improvements to underlying functions
  • New printPrettyDetails() function
  • Many many changes, see #691

v1.3.10

14 Dec 07:43
c7cfbea
Compare
Choose a tag to compare
Update library.json

v1.3.9

22 Aug 14:52
Compare
Choose a tag to compare

Fix broken compilation for some devices due to recent changes

v1.3.8

17 Aug 04:29
Compare
Choose a tag to compare
  • Introduces change that mainly reduces the time required to call startListening(), powerUp(), and powerDown()
  • Affects speed of switching from TX->RX. Users might consider starting updates of slower devices with this release to prevent missed packets when similar changes are introduced, affecting switching from RX->TX
  • Clean up begin() function (reduce program size)

v1.3.7

01 Aug 09:08
4c6c106
Compare
Choose a tag to compare
  • Very important bug fix for startWrite() function. Affected entire RF24 communication stack in a
    number of ways.
  • Unify Arduino and Linux constructor to both accept SPI Speed in Hz as optional note: Only works
    with Arduino devices that support SPI Transactions, otherwise a set clock divider is used
  • The old way of setting SPI speeds using BCM2835 driver enums has been removed
  • printDetails() function: Removed BCM2835 constants, display CE,CSN & SPI Speed on all Linux devices
    and SPI Speed on Arduino devices
  • Cleanup Linux examples to reflect removal of BCM2835 SPI Speed constants from BCM driver and RF24
  • Update to latest BCM2835 driver, separate millis() from BCM driver for easier future updates
  • Fix bug with RPi millis() code
  • Added Constant Carrier Wave support. startConstCarrier & stopConstCarrier functions and added new
    functionality to scanner example
  • Modify setPALevel() function to allow setting of LNA gain via optional parameter
  • Remove ancient files from RF24 examples
  • Cleanup of warnings & errors

v1.3.6

14 Jul 13:25
7dc779c
Compare
Choose a tag to compare

Arduino:
Fix problems with detection of SPI_HAS_TRANSACTION define affecting a number of platforms including Arduino Uno, ESP32, STM32 etc. Problems getting the driver working or working along with other SPI devices should be resolved with this update.

Linux:
Update Linux SPI drivers to support setting the SPI speed in HZ. RF24 radio(22,0,8000000); will configure a speed of 8Mhz or users can modify RF24_config.h #define RF24_SPI_SPEED to set a default for all devices.

v1.3.5

08 Jul 08:58
80ef52b
Compare
Choose a tag to compare

Linux:
Support multiple instances of SPIDEV
Minor fixes/changes

Arduino:
Fix ESP32 progmem error/warning
Cleanup/Update some examples & printf usage
Revert compatibility changes for digitalWrite required due to the new API due to support being added for the 'old' methods
Minor bug fixes

v1.3.4

15 Feb 22:29
80c456a
Compare
Choose a tag to compare
  • MegaAVR fixes
  • Raspberry Pi 4 & 1 fixes
  • Added function to get ARC
  • Made RF24 return an exception when not ran as privileged user
  • Other small improvements