Releases: nRF24/RF24
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
v1.3.12
- 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
andchannel
) setRetries()
now properly clamps input values to valid range (not just truncate unused bits)- addressed community concerns about backwards compatibility with
begin()
andenableAckPayload()
- 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
v1.3.10
v1.3.9
v1.3.8
- 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
- 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
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
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