I built my own transmitter and receiver PCB board using nRF24L01 and MSP430F1232. I sent a 18 bytes package 15 times/s. The system works properly only when the transmitter and receiver are close to each other (1-2 meters) and in certain orientation. Out of this range or if there are some obstacles between TX and RX, very few package can be received.
I have tried different frequency channels and enabled the AA. I set the data rate to be 1Mbps and RF output power to be highest (0dB). But the problem is still there.
I don’t know if it is the problem of my layout. After all, it’s my first time to layout a RF board. I have tried to separate the digital and analog parts as far as possible. Since my board is small (18mmx16mm), this separation is very limited. Ground plane was added on the backside of the board. But there is no ground plane beneath the ceramic antenna. I use the exactly matching network as stated in the datasheet. The track length between antenna and RF chip is pretty short and comparable with that on MiRF v2.
I’m a fresh in RF/wireless design. I wish you guys could give me some help. Any suggestions are appreciated.
I’m no specialist here, but I could give you some advice. I also use nRF24L01 and I started with some boards made after the evaluation boards from Nordic Semiconductors. It is very difficult to design your own layout and succeed. I could say that you are lucky you can get even that range in this frequency band, with your own layout. Even 1mm of difference between layouts could mean decreased efficiency. So I would recommend you to try some boards designed by specialists and tuned for efficiency, like the ones from Nordic Semi or from Sparkfun.
I have used the uMiRF v1 and v2. I wanted to go a further step so that I designed my own board. Some one told me that it was the problem of matching network. Is that correct? Or it might be some other reasons? Tuning matching network is painful and it is the last thing I want to do.
Usually you have a balanced output from the RF chip (plus and minus). You need to match that output with an unbalanced output to antenna. You need a balun network (balanced-unbalanced) to match the impedance of 50 ohms of the antenna. It is very difficult to do it and you need to use some software to do the calculations, and then do some trials and measurement on the real board to see the best values. That’s why you need to be advanced in RF to do that, and also have measuring equipment to do that. If you don’t have it, it’s better to stick to something already measured and tested.
I find it very bold of you to try the RF layout yourself!
I used the complete TRF-24G module, but I have similar experience.
Sparkfun’s story about the range test (see tutorial section), which results in a range of 280m, was done with short packages (4 bytes, not 18), at 250kbps (instead of your 1Mbps) and no obstacles between RX and TX.
280m was the point where 50% of the transmitted packages was actually received.
IF you receive ‘wrong’ packages that were not actually send, try 16bit CRC and 8bit address.
So before you start doubting the layout (which is hard to test), I’ld suggest you change settings to much shorter packages, reduce the on-the-air speed to 250kbps and give it another try.
Actually, I don’t need 280m transmission distance. 10m is far than enough for me. However, the current distance is only 2m… I’m going to try to change the configuration according to Marco’s suggestion. If it doesn’t work, I have to deal with the matching and layout…
I did calculate the width of .60 FR4. However that width (~.1") is too larger to be lay out in my small board. So I’ve used as wide track (0.025") as I could. I think I needs to tune the matching network to compensate the mismatch of track.
Hi i use the olimex version of the transciever, and i have made my own code for ATmega8L and i have the exact same problem.
Im sending one Byte Data with 5Byte adress, 2 Byte CRC, 2MBit/s, and Enhanced shockburst enabled. I also only get 1-2m good packetloss free communication, further away - say 4m i loose connection fully.
What could be wrong - is it the code that is bad, maybe we need more delays and stuff ?
Any luck with further ranges ?, im still trying to get better range and now with sparkfuns modul with 2,4Ghz duck antenna. Max ive got is 20m bearly… its very direcitonal sensitive still.