SparkFun's nRF2401A module

Is there a better data sheet available for the [nRF2401A module? There’s a lot on that board, yet all that are explained on the data sheet for the board are the second channel and the power up pin, both of which appear to have been REMOVED from later revisions of the board.

If I understand it right, does it work like this:?

Transmitting chip:

Power with 3.3V and GND (duh)

Tie a clock to CLK1

Set CE to enable chip

Set CS to select this chip to transmit

Set DR1 to transmit data

Send data to DATA

Clear CS when done

Receiving chip:

Power & Clock

Set CE to enable, and CS to receive

Get data from DATA

Clear CS when done

Does that seem about right? Again, I don’t know what’s on the chip, and I want to make sure I at least have a good idea what’s going on before I order 10 of these things. Thanks!](http://www.sparkfun.com/commerce/product_info.php?products_id=152#)

Have you got the data sheet for the chip?

Leon

I do. But, I don’t know what other components are on the board, and don’t know how the seven pins of the board are connected to the, what, 24 pins on the chip. Furthermore, and more importantly, I’m trying to make sure I understand what I need to do BEFORE I actually purchase the chips. If the communication process is very complex, or I don’t understand it well, I’ll probably look for a different module instead.

Oh yes, and would this work for changing one of the modules over the course of the program? One central module communicates with each of the others in turn. Thanks!

Minus

I didn’t have any problems using that module with a 16F88 by reading the module data:

http://www.sparkfun.com/datasheets/RF/uMiRF-v1.pdf

in conjunction with the chip data sheet.

I can let you have my schematic if you can’t work it out.

Leon

And again I prove myself to be an idiot. This time, I noticed the sample code at the bottom of the product page. I took a look. Not only does it show how the transceivers work, but it defines which pins of the 16F88 are being used for what. I need to keep my eyes open more. Thanks for your help though!

Minus

Yeah, yeah, I’m bumping an old topic with a double post. In any other forum, I’d get instantly ostracized; I hope it doesn’t happen here because this is relevant.

I may just not be seeing it, but is there anything relating packet loss and distance on the nRF2401A uMiRF? Come to think of it, it may be affected by the combination of the transceiver and the antenna (I’m looking at the chip antenna board), but I see nothing in the docs about what antenna is used. Does anyone know, or has anyone examined, the packet loss of this chip over distance?

I’m not sure about that chip, but I think there have been a few posts about it for the newer nRF24L01.

Leon

Well, how about this: if my range is under 1 meter, will my loss be under 25%? I ask because I’ve heard horror stories…

EDIT: And what brand of antenna is that, anyways? I’m wondering if antenna affects packet loss more than the transceiver; then again, I know little about this topic.

I used the SFE modules, with a PCB antenna. I don’t know of any data, it’s probably best to check it yourself.

Leon

I’ll be honest with you - if you haven’t bought these modules yet, you should give the 24L01 modules a look. They are much easier to interface, and also offer 2 Mbps data rate. You also get hardware packet acknowledgement and retransmission in case of failure (great when you’re using a really low-cost microcontroller). The chip antenna version of the 24L01 board is only $5 more than the 2401A and should have comparable range. I also have extensive information and code examples on my website for the 24L01 that you could use as a starting point.

OK, I think you sold me on this one. I wasn’t looking at the 24L01 for two reasons: first, I could have sworn that last time I looked, the 24L01 mod didn’t have an antenna attached, and I was hesitant to get a board without one; second, the configuration seemed to be more complicated on the 24L01. But, I’m looking at your first tutorial, this seems pretty good, actually. One last question: say I have a number of chips, A1 through A6 I think, and another chip B. The communication channel will cycle through A1-B, A2-B, A3-B, and so forth (the A chips don’t need to communicate with each other). Do I just enable/disable each A chip in turn? Or does something else have to happen here? Thanks!

Minus

Your question mainly comes down to the communication protocol that you will have to develop yourself and test out. You could give all the units the same address and send an extra byte in each packet such that the proper unit would know it’s been sent data, you could use the different pipes that are available to determine the message status, or you could just give all the units different addresses and only send data to the unit that’s supposed to be receiving it. There are probably a bunch of others that I can’t think of off the top of my head.

Keep in mind, if all your “A” units are running off batteries, you will want them powered down as much as possible. This would be another consideration to add to your protocol, since listening to the air actually uses more power than transmitting for the 24L01’s (unless you clear the LNA_GAIN bit).

Antiporcupine:
Is there a better data sheet available for the [nRF2401A module? There’s a lot on that board, yet all that are explained on the data sheet for the board are the second channel and the power up pin, both of which appear to have been REMOVED from later revisions of the board.

If I understand it right, does it work like this:?

Transmitting chip:

Power with 3.3V and GND (duh)

Tie a clock to CLK1

Set CE to enable chip

Set CS to select this chip to transmit

Set DR1 to transmit data

Send data to DATA

Clear CS when done

Receiving chip:

Power & Clock

Set CE to enable, and CS to receive

Get data from DATA

Clear CS when done

Does that seem about right? Again, I don’t know what’s on the chip, and I want to make sure I at least have a good idea what’s going on before I order 10 of these things. Thanks![/quote]

You might want to look at my code:

viewtopic.php?t=10146

Orin.](http://www.sparkfun.com/commerce/product_info.php?products_id=152#)

brennen: But it can be done pretty easily. That’s all I needed. As I continued with the tutorials, I found the stuff on the pipes, that’s probably what I’ll do.

And yeah on the batteries thing… These modules are hooked up to sensors as well. I’ve put minor consideration into long life/saving power, but I have more important specs to fulfill first. This is my senior project - certain things need to get done or I don’t graduate on time.

Hi Antiporcupine,

I am new to RF topics and I was wondering if you could help me out.

I think by the time now, you probably bought nRF2401L. Maybe not.

I have nRF2401A. There is a sample C code given by SparkFun.

The question I have is that this sample C code has “transmit” and

“receiver” functions all in one file. I am not sure if I burn this program

on PIC, how do I set one to be a transmitter and the other to be a

receiver?? Otherwise, what if both of them transmit data at the same

time?? Then nothing will happen.

Could you comment on this? And perhaps explain on how to set one to

be a transmitter and the other to be a receiver, vise versa??

Thanks.