OSI Layer 2 driver for nRF24L01 on Arduino & Raspberry Pi/Linux Devices
Full Changelog: https://github.com/nRF24/RF24/compare/v1.4.7...v1.4.8
Full Changelog: https://github.com/nRF24/RF24/compare/v1.4.6...v1.4.7
pgm_read_ptr()
: 'const void*' is not a pointer-to-object type by @bblanchon in https://github.com/nRF24/RF24/pull/864
pgm_read_byte/word()
definitions by @2bndy5 in https://github.com/nRF24/RF24/pull/871
Full Changelog: https://github.com/nRF24/RF24/compare/v1.4.5...v1.4.6
sprintf()
to respective arch_configsFull Changelog: https://github.com/nRF24/RF24/compare/v1.4.4...v1.4.5
EDIT: This did not fix the mentioned issue as intended. Please use v1.4.5 instead
Full Changelog: https://github.com/nRF24/RF24/compare/v1.4.2...v1.4.3
toggleAllPipes()
function (as opposed to individually opening/closing pipes)setRadiation()
function (which combines setPALevel()
and setDataRate()
into 1 SPI transaction)toggleAllPipes()
and setRadiation()
to python wrapperIf 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.
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
begin()
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
begin(_SPI*)
(as demonstrated in example snippet)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).RF24_SPI_PTR
which is only defined when _SPI
is used as a datatype (as opposed to the actual SPI
object for a platform).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.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 #539ARDUINO_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).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
millis()
issues for Linux devicesprintPrettyDetails()
(concerning "Primary Role" and "Auto-ACK" outputs)payloadSize
and channel
)setRetries()
now properly clamps input values to valid range (not just truncate unused bits)begin()
and enableAckPayload()