I have a couple NRF905 RF trancievers I want to experiment with.
Has anyone got any of these working? Every library I have tried gives compile errors…

Can you post a link to their datasheet?



I have tried these three…

Compile Error…

Arduino: 1.6.8 (Windows XP), Board: “Arduino/Genuino Uno”

C:\Program Files\Arduino\libraries\nRF905\NRF905.cpp:16:33: error: variable ‘freq_tab’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’

PROGMEM unsigned int freq_tab[10] = {


C:\Program Files\Arduino\libraries\nRF905\NRF905.cpp: In member function ‘void NRF905::RxPacket(unsigned char*)’:

C:\Program Files\Arduino\libraries\nRF905\NRF905.cpp:264:34: warning: passing NULL to non-pointer argument 1 of ‘static uint8_t SPIClass::transfer(uint8_t)’ [-Wconversion-null]


  • ^*
    exit status 1
    Error compiling for board Arduino/Genuino Uno.

This is the important document

It looks like it is very similar to the nRF24L01+ but working on a different frequency.

I would be very tempted to try TMRh20's RF24 library with it - but some careful reading may be useful beforehand.

It may be that the libraries you are trying to use were written for an earlier version of the Arduino IDE. It may be worth installing version 1.0.6 to see what happens.

Failing all that it might be the best balance between time and money to buy a couple of nRF24L01+ modules as they are not expensive.


error: variable 'freq_tab' must be const

Add the const keyword to the variable type specification.

Add the const keyword to the variable type specification.

Cant see a declaration in the core code or any library file.
This is the code:

 @brief nRF905 TX Demo, by elechouse.

#include <NRF905.h>
#include <SPI.h>

#define BUF_LEN          32
#define CONF_LEN         10

#define NRF905_CSN       4

unsigned char tx_buf[BUF_LEN]= "Hi, Arduino   \r\n";
unsigned char read_config_buf[CONF_LEN];

byte tx_address[4]= {0xcc,0xcc,0xcc,0xcc};

void setup()
   unsigned char i;
   pinMode(10, OUTPUT);        // make sure SPI works
   /** register configuration */
   // user self-defined configuration
//    nrf905.write_config(write_config_buf);

       default configuration, need to specify frequency
       choose Z-Wave frequency band, support :
       US 908.42Mhz
       EUROPE 868.42MHz
       AFRICA 868.42MHz
       CHINA 868.42MHz
       HK 919.82MHz
       JAPAN 853.42MHz
       AUSTRALIA 921.42MHz
       NEW_ZEALAND 921.42MHz
       BRASIL 921.42MHz
       Russia 896MHz


   for(i=0; i<10; i++)
       Serial.print(' ');
   tx_buf[12] = '0';

void loop()
   /** transmit data packet with default TX Address */
   /** transmit data packet with specified TX Address */
//    nrf905.TX(tx_buf, tx_address);
   // NOTE: TX_Address and RX_Address must be the same
   /** Count Sending times */
   if(tx_buf[12] > '9'){
     tx_buf[12] = '0';

Please edit your post and add [u]code tags[/u]!

jremington: Please edit your post and add [u]code tags[/u]!

what is a code tag?

Explained in the "How to use this forum" post.

Hi, Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.,148850.0.html then look down to item #7 about how to post your code. It will be formatted in a scrolling window that makes it easier to read.

Tom... :)

Hi, note your sketch includes NRF905, but the library is nRF905

Tom.. :)

Thanks, sorry I didnt read that far down those instructions...

Also, the system has the reply box open down the bottom which is what I normally only use, no wysiwyg editor on this so havent seen that option before. Code tags added now.

I get the same error if I rename the dir to all capitals...

Hi, Do not rename the directory, the files in the directory all refer to nRF905, not NRF905. Change the code from NRF905 to nRF905.

Tom... :)

I get different error messages now.

nRF905_TX:24: error: 'nRF905' was not declared in this scope

I dont want to waste your time, I will return this item and go for a 2.4G option, I saw that at Jaycar here in Aus.

I got my nRF24s working with this Tutorial

The pair of programs in this link may be useful.

They require the TMRh20 version of the RF24 library which solves some problems from the earlier ManiacBug version