Skip to content
An Arduino & attiny port of the library.
Branch: master
Clone or download
Pull request Compare This branch is 13 commits ahead, 7 commits behind xdarklight:master.
Type Name Latest commit message Commit time
Failed to load latest commit information.
SPI85 Changed USI defines to USI_DI/USI_DO Aug 11, 2013


An Arduino port of the library. It works with most nRF24L01+ modules.

For the attiny, pls use the tiny cores below as they are many other tiny cores with 
different mappings to Arduino Digital pins.

For this fork, I include :-
* SPI85 libs for attinyXX support
* attiny84 examples codes working with RF24
* Rename SPI pin names to USI_DI / USI_DO
* To set radio MAX power, use this code below :-
  Mirf.configRegister( RF_SETUP, ( 1<<2 | 1<<1 ) );
* If the RF24 receiver have dynamic payload enable, use this code :-
  Mirf.configRegister( FEATURE, 1<<EN_DPL ); 
  Mirf.configRegister( DYNPD, 1<<DPL_P0 | 1<<DPL_P1 | 1<<DPL_P2 | 1<<DPL_P3 | 1<<DPL_P4 | 1<<DPL_P5 ); 
* If attiny used as a receiver from RF24 libs/devices, the RF24 libs config, pls disable Dynamic Payload as
  the Mirf does not "yet" support reading the dynamic payload size. Use static payload instead.
* Blog entry on getting nRF24L01 working with attiny84 :-

From xdarklight/arduino-nrf24l01 forks :-
This fork includes the following changes:
* Added support for the SPI85 library on ATtiny85 chips.
* Compatible with ATmega and ATtiny chips (tested with ATtiny85).
* Can connect to devices using the RF24 library by setting
  "Mirf.baseConfig = _BV(EN_CRC) | _BV(CRCO);" before calling
* Reduced binary size.

Other information:
* This library supports changing less popular registers without
  having to "hack" the libraries code. An example for changing
  the RF_SETUP register:
  "Mirf.configRegister(RF_SETUP, _BV(RF_DR_LOW));"

You can’t perform that action at this time.