Introduction: Enhanced NRF24L01 Radio With a DIY Dipole Antenna Modification.

The situation was that I was only able to transmit and receive through 2 or 3 walls with a distance of about 50 feet, using standard nRF24L01+ modules. This was insufficient for my intended use.

I had earlier tried adding recommended capacitors, but for me and my hardware got very little to no improvement. So, please ignore them in the photos.

For my remote sensors I did not want the bulk of a unit like a nRF24L01+PA+LNA with a SMA Mount and exterior antenna. So I created this modified module.

With this modified RF24 module I could go through four walls with a distance of about 100 feet.

This module should also nearly double the distance over a standard nRF24 module when used with line of sight applications; like RF planes, quad-coppers, cars and boats (100s of meters). I have not made any clear line of sight tests. In my tests there were kitchen appliances and cabinets and closets full of stuff between the transceivers.

Here is some in depth information on a dipole antenna https://en.wikipedia.org/wiki/Dipole_antenna for further antennas study try: http://www.arrl.org or http://antenna-theory.com

I have studied antenna design some, but there is so much specific design data and theory around a vast and growing number of antenna designs (particularly for high frequency compact antennas), that it is easy to feel a little lost in the woods. So experimentation tends to play a key role.

Now having gone through all of this, I give you here the implementation of my resulting design modification.

Step 1: The Items You'll Need

To fabricate your own enhanced NRF24L01+ with an improved (Dipole) antenna you will need:

Step 2: Modifying the Radio Module

I started with basic dipole antenna designs and experimentally tuned them.

Some designs which call for a ¼ wavelength element need fine adjustments due to instances of capacitance, impedance, inductance and resonances. I do not have means to measure these characteristics in an active 2.4 GHz circuit, so I made the apparently needed adjustment through empirical testing.

Pictured is a few of my test units. Some of the traces got pulled off, as I soldered, un-soldered, bent & re-bent would-be antennas. Two good things came out of this. 1) I switch from the top side to the bottom side for attaching one leg to ground, which turned out to be better mechanically and performance wise. 2) I found it is a good idea to attach the wire with super-glue or hot glue for strain relief (I kept accidentally bending the antenna during all the testing.) Done first, this can hold them for soldering.

Steps to make the modification:

  1. Make two cuts, 1-2 mm wide, of the traces near the base of the PCB antenna, as seen in the image the first image above. This effectively takes the existing antenna out of the circuit.
  2. On the other side, using an exact-o knife, scrape off the protective coating over the edge of the ground plane, as indicated in the second image above
  3. Cut two 24ga. Wires to approx. 50mm
  4. Strip off a couple of millimeters of insulation from one end of each wire.
  5. Bend the bare portion at a right angle on the wire to be attached to ground.
  6. Glue each wire down (recommend: supper-glue or hot glue), so that the bare end is ready to be soldered; one just below the cut traces, the other at the edge of the ground plane on the back. The two wire must lay parallel and 6mm apart.
  7. Once the glue is set, put solder flux paste where your going to solder, and then solder them. I recommend using flux so that your soldering will take quickly and you won't over heat the board.
  8. Make crisp right angle bends in the wires, away from each other, by the edge of the PCB, ~6mm up from where the ground plane ends. Refer to the last two images above. If you have not glued your wires down, be extra careful not to put too much stress on the solder points.
  9. Measure out each wire segment running along the edge of the board to 30mm from it's 90 degree bend and cut them off there. I discovered that I could not accurately measure and cut, so I measured and marked with a fine fiber-tipped marker where to cut.
  10. With an ohm meter check to make sure the wire near the old antenna PCB traces does not have continuity across either of the cuts made in step #1.

Step 3: The Finished Product

Your NRF24L01+ module will now perform far superior in what ever project you use them in. You can either enjoy enhanced reliability with greater range or with lower radio power settings. You should find this so, even with only modifying one radio (the transmitter or receiver); and reap twice the benefit when using a modified unit at both ends. Remember to be sure to orient the antennas parallel to each other. I am implementing a project with multiple remote sensor units utilizing these modified radios (vertically oriented with their ground legs pointing down), which will all converse with a central base station using a NRF24L01+PA+LNA and an external antenna.

The transmitter and receiver antennas, in your project must be oriented similarly both horizontal or vertical and highly preferably parallel to each other. Additionally, perhaps in a complimentary orientation if you know they have a directional preference (this is not generally indicated here). If your antennas are not necessarily physically different, like you are not using a high gain external antenna on one end, then it is best that the antennas are identical and oriented exactly the same. This is in order to achieve maximum reliability and range, and given the antennas are mounted stationary.

In the end the amount of improvement is a little hard to quantify; but in my application, I put it at from 50 to 100% over the unmodified versions. I think it is at least as good as a unit with a 2.5db external antenna; but not as effective as a NRF24L01+PA+LNA unit.

The main intention of this Instructable is simply to instruct on how to devise a modified NRF24L01+ with a superior dipole antenna so that it will achieve greater transmit and receive capability and better usability in projects.

That is probably all that most people will be interested in. With the idea: “What do I do to get greater usable range out of these units?”

So at this point ... have at it; and let me know of your successes with your projects using your own customized radios.

If you want to pre-test your modified radio(s) I have included the software I created for my testing, in a later step.

Step 4: How I Optimized This Design

Now for those who are interested, I'll go on to share a little about how I tested and qualified would-be improvements. However, please note, how to implement testing is not the focus of this instructable.

For testing any Arduino or comparable boards, along with NRF24L01+ modules, can be used. The 01+ versions are needed with the test software, as written, because it uses the 250KHz transmit rate. Be sure to only power the radios with voltages of 1.9-3.6v.

For my range reliability testing, I used a pro-mini Arduino and an unmodified NRF24L01+ as the remote. Which simply receives a data packet and echos it back as an acknowledgment. These were run off of 3.3V regulated.

I had this assembly taped in a small box which I could easily, and repeatedly, position in various test locations.

I used a Nano3.0 MCU with the modified NRF24L01+ as the main transceiver. This end was stationary and provided test results (via either a 16x02 LCD display or the serial monitor). Early on I established that an improved antenna would result in both better transmit and receive capability. Further, I would get the same test results with a given modified radio used at either end. Note that in the test each side both transmits and receives, that is because after a transmission there is an acknowledgment that needs to be received in order for it to be counted as a successful communication.

Note that there are many things that can effect testing results:

  • Touching, or nearly so, the RF24 module or wires to it.
  • One's body inline with the transmission line.
  • The above two have a positive effect.
  • The supply voltage characteristics
  • Most of all, the orientation of the transmitter and receiver antennas.
  • Other WiFi traffic in the area. These could cause differences that can feel like those of 'good weather' to 'stormy conditions'. So I tried to mainly test during the favorable conditions. I would repeat test to get the best results for a given unit under test and later compare those results with comparable results obtained on other test units.

Indoors is harder to get reliable test results compared to outdoors with a line of sight. I could get drastic differences in results by moving the position of one of the units by just a few inches. This is due to densities and make up of barriers and reflective signal paths. Another factor could be antenna signal strength patterns, but I doubt it could cause drastic differences in a few inches movement side to side.

I devised some software to provide me with some needed performance statistics.

Plus I setup fixed, as much as possible, test conditions. Like taping down to a marked place the antennas (Tx & Rx) placed with the same orientation for each battery of performance tests. The test results below are a combined average of multiple tests from multiple locations. Under the used test conditions an unmodified radio was unable to get any successful messages through.

I got best results with 24ga. over 30ga. wire. Results were only a little better; say 10 percent. Admittedly I only tried two likewise wired up instances, and there may have been a 1 mm differences in total antenna topology (sum of differences across segments). Further, I tweaked the first iteration using the 30ga.; making several 1mm adjustments. Then duplicated those wire lengths with 24ga. without further comparable experiments in lengths with the 24 ga. Wire.

[See Table 1 results in image above]

As I wanted my units to fit in a small case I had, I switched from having the antenna transmission leads being 10mm apart and 10mm long to only being 6mm and 6mm, then tested for optimum tuned antenna lengths for that configuration. Here is a boiled down summary of the results from my various tests:

[See Table 2 results in image above]

Further testing, with better lab measurement equipment, could no doubt devise and validate improved segment lengths (wire size and possibly points of attachment or orientation) for true optimum performance of this dipole antenna modification for nRF24 radios.

Let us know if you obtain a verifiable improvement (over a 24ga. 6X6mm x 30mm configuration). Many of us would like to get the most out of these radios (without adding a bulky antenna).

The transmitter and receiver antennas, in your project must be oriented similarly both horizontal or vertical and highly preferably parallel to each other. Additionally, perhaps in a complimentary orientation if you know they have a directional preference (this is not generally indicated here). If your antennas are not necessarily physically different, like you are not using a high gain external antenna on one end, then it is best that the antennas are identical and oriented exactly the same. This is in order to achieve maximum reliability and range, and given the antennas are mounted stationary.

Step 5: Hardware and Software I Used in My Testing

Hardware I used for my testing
2 MCUs Arduino compatables

2 NRF24L01+

At times I also used a16x02 LCD display (for convenient real-time viewing. The serial console can also be used to get test results) a push button (in order to initiate a new set of tests, else you would need to go through a restart)

Links to hardware I would recommend and used:

MCUs: Nano V3.0 Atmega328P on eBay or Pro-Mini: http://ebay.com/itm/261791591581

NRF24L01+ modules http://ebay.com/itm/191351948163 and http://ebay.com/itm/191351948163

16x02 LCD IC2 display module http://ebay.com/itm/200951469149

Download the zipped code files here:

Comments

author
3roBVP0s50C4TxeT (author)2017-07-27

Great work Ron. Your work gave me an idea for a long range NodeMCU ESP-12E ESP8266/antenna unit. Taking one of those ebay 15 element yag antennas, removing the plastic cap that cover the driven element, removing the driven element and replacing it that an ESP8266 with your modification. The antenna on the modified ESP8266 would then become the driven element. That should element a lot of loses and deliver maybe a +13db gain. The driven element that comes with the antenna is a joke. It consists of two pieces of brass shim stock and what seems to be some type coaxial cable of lead to match impedance. It will be at least a few months before I get around to trying it but I thought I would get the idea out there in case anyone wanted to take a shot at it. I also would like you thought on the attempting this. One of my main concerns is the location of the module relative to the rest of that antenna. Do you think it would be possible to increase the length of you antenna leads more that 6 mm. Basically, turning the lead in to something like twin lead maybe closer to 4" in length to move the module away from the antenna and shielding it. Any thoughts?

antenna.jpg
author
RonM9 (author)3roBVP0s50C4TxeT2017-07-30

The
output of the ESP8266 is apparently 50 ohm impedance (read fully
https://forum.arduino.cc/index.php?topic=314904.0)
and hopefully so is the antenna (at 2.4GHz) that you are going to connect.
Given that is the case, you can use a length of 50 ohm coax to connect them,
rather than parallel open wires who's impedance would be hard to
determine. (for some short 50 ohm coax:
www.ebay.com/sch/i.html?_nkw=rg-316+rg-8x+pigtail
) The RG-8x will likely be easier to strip and solder than the skinny
RG-316. I look forward to hearing of your successes with your modification.

author
HaseH (author)2017-06-08

http://wildlab.org/index.php/2016/03/02/tutorial-how-to-increase-range-of-your-quadcopter/ worked out much better

author
JohnA120 made it! (author)2017-05-04

Outstanding - great work Ron! I've gone with your instructions against my instincts to try all kinds of spacings and configurations on my own. No need! I built according to your well documented design and quickly realized outstanding results. I went with 6mm x 6mm x 30mm config and used 24 AWG magnet wire since I have tons of that around. Easier than stripping insulation IMO - just use a lighter to burn off the enamel on the ends. The most impressive test involved standing 50ft away from receiver, directly behind a tree, which was behind a thick brick wall. Without your antenna this failed every time. With it 100% success using RF24.setRetries(15,15) @ 250kbps.

See image attached - this is a doorbell that sends various char arrays depending on who's punching in the "code". It's meant to help my mother know who's at the door. WORKS!!!

momsDoorbell.JPG
author
RonM9 (author)JohnA1202017-05-04

Fantastic, I am happy to hear that you and your mother are benifiting from my efforts.

author
JohnA120 made it! (author)JohnA1202017-05-04

This works much better than I expected - I didn't even think to try my latest test as I was certain this would fail: I stood about 90ft away behind a shed with two wooden walls and lots of stuff inside - almost no metal in there. Then the brick wall in between that and the receiver. 100% success. So good it's almost dangerous! See pic attached.

backOfShedEdit.JPG
author
adeb2 (author)2017-03-14

Thanks Ron (and other commenters) for this excellent instructable.

Such an easy to implement mod with a significant effect!

I was finally able to stabilize a mesh network of 10 nodes with the given instructions.

author
RonM9 (author)adeb22017-04-11

That's great to hear, about your success with your mesh network. Is there a related instructable? I am happy you enjoyed, found useful, this instructable.

author
duncangallimore (author)2016-01-11

Do you need to have this modification at both ends? I am having problems getting these radios to work in my old house (with thick walls) and was hoping to use your 'ible on the furthest sensors away from the controller (without having to do the controller as well).

Also, how much does the thickness of the wire matter?

Many thanks, Duncan

author
RonM9 (author)duncangallimore2016-01-14

You don't have to do both ends of the communication link. I got significant improvement modifying only one end. I did my testing for this instructable with only one end modified. Check out the last photo in step 4. Doing both does give even better results.

I think that the wire size is not very important (22-30 ga). It would take testing to know; unless someone less knows better. I am sure that you need solid wire not stranded.

author
Quite Composed (author)RonM92017-01-18

In response to your concern about wire size, I offer the following...

When calculating and cutting a 1/2 wavelength dipole antenna using the formula L (ft) = 468 / f (MHz), it is known that a wire with a greater diameter (a thicker wire) that is cut to the same length for the same frequency as an antenna using a smaller diameter (a thinner) wire, when both are properly tuned to the same frequency the antenna with the larger diameter wire will resonate over a little wider bandwidth than antenna built with the smaller diameter (a thinner wire). Although you may not see any noticeable difference with wires close to the same size, it may be noticeable if/when extreme differences in diameters are used.

author
RonM9 (author)Quite Composed2017-01-25

Thank you for the added information. It's always great to have other contribute.

That said, I know there are some that I have not directly acknowledged their posts; I want them to know their sharing is appreciated.

author
pbruckmann (author)RonM92016-08-17

1.1Km - with 30mm/1.5mm wire

Very cool!

author
thib02140 (author)pbruckmann2017-01-17

30 mm of length and 1.5mm of diameter ?

author
BillT62 (author)RonM92016-06-28

The element diameter will have a number of effects on
antenna performance:

www.eham.net/ehamforum/smf/index.php?topic=...

author
periprohus (author)2017-01-23

This is great! Thanks a lot. It seems that adding a tin foil shield around the board and a low pass filter to remove noise from the power supply improve range as well.

http://blog.blackoise.de/2016/02/fixing-your-cheap...

I haven't tried yet though!

author
HoracioDos made it! (author)2016-10-15

Thank you very much! It seems to be working. As I couldn't find a 25 ga = 0.5mm wire I got it from an old RG59. Now I can connect an indoor weather station to the main station in the rooftop.

NRF24L01_Mod1.jpgNRF24L01_Mod2.jpg
author
beautifulsmall made it! (author)2016-08-16

Works great . I tried the single antenna 83mm and it was worse. The dipole has doubled the range. Also using mesh.begin(110,RF24_250KBPS,60000).

I have cut my total dipole length to 83mm and tried to have the gnd connection opposite the RF connection. Not sure if that helps.

Thanks.

IMG_1146.JPG
author
pbruckmann made it! (author)2016-08-15

Thank you for this awesome mod. I tested today and achieved 1.1Km in straight line with clean line of sight. (Both modules with modded dipole, 3.3v Max power).

IMG_1308.JPG
author
Timofte Andrei made it! (author)2016-08-07

Here's the module with dipole antena and a nRF24+PA with shielding made from plastic film and aluminium foil.

temp_-553077705.jpg
author
ebojarski98 made it! (author)2016-07-09

Thanks for the tutorial, works great ^_^

13644160_1184816978274208_1445011858_n.jpg13643993_1184817194940853_345098022_n.jpg
author
MerouaneK (author)2016-03-06

have you measured the input impedance of the antenna and the output impedance of the circuit in order to avoid the mismatching between the components

author
RonM9 (author)MerouaneK2016-03-06

I designed it the best I practically could based on theory followed by empirical testing.
I do not have the setup to measure RF impedance.
Given that when you have impedances matched, you'll realize the most efficient and effective transceiving; I experimented with the transmission line dimensions (spacing and length, the first leg of the wires), though not extensively, as well as the antenna lengths, to obtain optimum results.
It would be great if you or anyone else could improve on the specifications of the antenna through superior measurements and testing.

Thank you for your interest, Ron

author
MatthiasD12 (author)2016-01-04

Ok, some info for all people wondering about "24 ga wire" (like me):

This is the so called "american wire gauge" in Europe we use diameter as equivalent. In short:

24GA = 0.5mm diameter wire

30GA = 0.25mm diameter wire (both little rounded)

author
OscarC24 (author)MatthiasD122016-03-05

+nice info

author
Gabriels_Voice (author)2016-02-16

When people talk about range, what do they mean?

Is a total failure to exchange data between the sensor and the Master the definition of failure or the beginning of abnormal communication pattern?

I have measured the ratio of PASS/(PASS+FAIL) by sending some data between the 2 units and then compared the success rate.

Depending on the distance between the 2 units (max power) and adding a single 83mm wire, I get anywhere between 0.05% and 10% errors.

The higher number is when there are 2 brick walls between the units and the units are about 17 feet apart.

It would be nice to standardize the tests.

Gabe

author
RonM9 (author)Gabriels_Voice2016-02-21

For me I would say at the point where neither the hardware nor software re-trys can effectively get your communication through; and I find that happens at a rather obvious point. So you can be fine with a 75% hardware success rate, but not likely 20%.

Truly standardized tests for antenna designs would naturally require standardized conditions plus scientific measurements of signal strengths in dBms.
I, and probably most of us, don't have the equipment for those measurements.
What I did do, is use a fixed distance with fixed barriers, about double (in distance and mass) of that which the unmodified units failed totally.
My tests operated the test unit at each of its 4 power setting (%25 of the time for each). This is because at one power level setting a unit tended to Go/No-go fairly quickly, and this way I got more usable result in the #msg/sec and success rates (hardware success without software retries). See my tables image in step #4. BTW I found going just a mm or 2 longer or shorter (in antenna lengths beyond what's in the table data) would likely drop the # messages/sec and %success into the teens if not 0; which were clearly unusable.
The software I used to test is in a .zip above. Using the same software would give some degree of standardization.
So of course these were not range tests, they were quality if operation at a given desirable extended range. And range will vary wildly based on conditions.
You may want to check this out: https://www.youtube.com/watch?v=lR60toEjHl8

author
Krieghund made it! (author)2016-02-05

working well! I used a dremel to cut the traces and exposing the ground plane. I covered all exposed joints with hot glue. Thank you Ron!

image.jpegimage.jpegimage.jpegimage.jpeg
author
RonM9 (author)Krieghund2016-02-10

I like what you have done with the dremel. Next time I will do the same. Your photos make the modifications to the board clearer. I am sure others will find your photos helpful.

author
SeanT24 made it! (author)2015-11-14

Set up the led_remote sketch from the nRF24 examples. Before the modification, I needed to have my whole body attached to the remote to have any chance of success. After the mod, it worked flawlessly.

100_1974.JPG
author
RonM9 (author)SeanT242015-11-15

That's Great!

I am so happy to see someone else benefiting from the work and experimentation that went into realizing this instructable. :)

author
SeanT24 (author)RonM92016-02-04

Hi Ron,
Thank you for all of your experimentation. It allowed me to create this small add on for a Raspberry Pi. I have a reference to your Instructable as it was my primary source for my nRF24L01+ radio modification. The communication improvement is really quite remarkable for such a simple modification.

100_2229.JPG100_2234.JPG
author
RonM9 (author)SeanT242016-02-10

It looks like you have done some pretty cool work, yourself, there.

I appreciative the link, and hopefully it will be a boon for other.

author
joneser005 made it! (author)2016-01-26

RonM9 - Bravo! Bravo! Thank you for posting your modification, and all of the hard work behind perfecting it. I used this to extend the range of my radios for a remote controlled race tree. You mod worked perfectly on my first attempt. I used it at our cub scout space derby in November, unmodified, and started seeing dropped transmissions around maybe 30 feet (one of the radios is inside a wooden box). I applied your hack to the boxed radio, then used the same setup at our pinewood derby the other day. The radios performed flawlessly from the opposite side of the gym! Hit the Flickr link to see pictures of the entire project. I should make an Instructable for it to improve my give/mostly-take-from-the-internet karma :-)

https://www.flickr.com/photos/joneser005/albums/72157663329671880/with/24294725820/

P1249359.JPGP1249360.JPG
author
RonM9 (author)joneser0052016-02-10

Thank you very much for the acknowledgement. And I am quite pleased to hear that I have been in some way helpful to the cub scouts.

author
dido_pido (author)2015-10-20

Great instructable, RonM9. Good way to get better range without using more power:).

I'm planning on doing the modification on the receiving end, hopefully I'll get some extended range.

author
RonM9 (author)dido_pido2015-10-20

Thank You for the acknowledgement.

I have been a little
surprised that there has been over 12 thousand views without a comment
of any sort. I look forward to seeing an "I Made it!" posting.

author
MatthiasD12 (author)RonM92016-01-04

I'm going to modify two NRF's for a 3d-printed, STM32 (or call it "Arduino IDE") based RC-Car. I'm sure you saved me some bucks because of NOT buying the antenna version of this module, because I have a bunch of the standard version at home. So thank you very much! :)

author
RonM9 (author)MatthiasD122016-01-06

I am very glad to be of service.

I'd be interested in seeing the results of your project.

author
Nguyễn VănK (author)2015-12-14

I give you the basic of connection using nRF24L01


author
TriA2 (author)2015-11-10

well your schematic is unclear in my perspective can you added some schematic to make it clear. then i see in your photo you add some tantalum capacitor can you explain it ? like how many farad or etc i suggest you to add some videos + sound to make full tutor

author
RonM9 (author)TriA22015-11-11

This instructable is meant to be just about how to make an antenna modification to the NRF24L01.
I modified the boards I had on hand. The capacitors on the one board were from an earlier experiment, which did not work well for me. I think they may only be warranted if you have a poor power supply. I am not recommending them.
To attach the new antenna wires, the physical locations and positioning are important not the schematic.
This is not meant to be an instructable about how to test or operate an NRF24L01 module; albeit that might be a good idea.
I am sorry if I had been misleading in my instructable or its intent.

About This Instructable

68,568views

391favorites

License:

Bio: Professional Software, Hardware, Systems Engineer for more than 40 years. Amateur Radio HAM (KI7NEW)
More by RonM9:Transform LED Globe Light Bulb Into a Fairy Lights BULBSignal Code Communicators (RFM69)Dual Power for Your Portable Micro-Controller Project
Add instructable to: