Enhanced NRF24L01 Radio With a DIY Dipole Antenna Modification.

88,785

411

30

Published

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

About: Professional Software, Hardware, Systems Engineer for more than 40 years. Amateur Radio HAM (KI7NEW)

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:

12 People Made This Project!

Recommendations

  • Casting Contest

    Casting Contest
  • Woodworking Contest

    Woodworking Contest
  • Make it Move Contest

    Make it Move Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

1 Questions

I did on one of my modules. and the range got halfed! I didn't change my code. What did I do wrong?

I cut the old antenna connection, I did solder it properly. I checked with ohm meter and it shows that the 2 antennas are shorted. It shows the same on the unmodified one.

0

The good news is you didn't break it, as it still works, be it poorly.
Focused Visual Inspection is your Best tool. First simply look at every detail of the board very close up (with magnification and good lighting) to see what you see. Have no expectations.
You may find something unexpected. Perhaps there is a small clipping of a wire strand or micro solder splatter.
If nothing is discovered, further inspect the two cuts (refer to first image in step 2) making sure they are complete, have nothing in them and that soldering has not bridged them.
At the mounting point of the front antenna element verify that the solder didn't make a short to adjacent points or across the surface mounted component there (a capacitor).
Make sure that capacitor didn't get unsoldered from the board on either side. Check that your solder joints aren't "cold" ones, else there will be added resistance which will be bad for proper impedance matching. Let me know what you find.

30 Comments

Thanks for the tutorial Ron.

I have a question after having a quick read coming from the fact I would need miniaturization in my project (actually I was expecting to use an SMD version of the nRF24L01 module):

- since after the cuts the antenna is effectively out from the circuit (as you point out in step 1), is there any problem if just removing the whole part from the pcb keeping the dipole part of the antenna unchanged (see schematics attached)? I understand the dipole antenna is not affected right?

Thanks in advance

Nueva imagen.jpg
2 replies

I would expect it to work, given no
needed traces are cut. But impedance matching of the load to the
transmitter output may be off enough to significantly lose
performance; due to the change in the transmission lead wires (those
two short parallel wire sections you have eliminated). To optimize
lead-in dimensions for high frequency transmission is a challenge
requiring sophisticated setup and instruments. Often the best we can
do is minimize heat production while maximizing transmitted signal
strength through trial and error. If you are not getting added heat
between the antenna and the drive circuitry and you are getting
satisfactory performance, you're pretty much good to go, else rethink
it.

On the other hand, consider using one
of these mini units:
http://www.ebay.com/itm/1Pcs-Mini-2-4G-NRF24L01-24L01-M-wireless-transceiver-module-1-9-3-6-V-/141976853993
These board have two feed through holes where the antenna appears to
start. Which makes me believe they placed these, by design, such that
if you cut off the on-board antenna you will have the proper output
matching impedance up to that point. I would try one of these and
attach the dipole antenna directly to those holes (with old antenna
out of circuit). If you do so please let us know what sort of results
you obtain.

miniRF24.jpg

Thanks for the detailed answer Ron.

It's funny because the mini board reference you attach is actually one of the ones I had ordered to Aliexpress (https://www.aliexpress.com/item/10pcs-Component-Kit-NRF24l01-2-4GHz-Wireless-Module-Mini-Version-Power-enhanced-version-SMD/32430639804.html?spm=a2g0s.9042311.0.0.xf7R22) and the one I was referring to as an "SMD version" in my post. I was totally unaware though about the through holes you remark (at first sight I only saw the one connected to GND and I thought it was just a via). Unfortunately after re-reading the product description I don't find any reference to them (even though such description is longer than ebay's one) so I've just sent a message to the manufacturer requesting some clarification.

It will take me some weeks if not months to test them (as you know Aliexpress is cheap but delivery is slow) but as soon as I have any news I'll let you know.

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
2 replies

The driven element is no joke. The designer incorporated those rectangular metal tabs to make the antenna usable over a broader range of frequencies. The effect of increasing the surface area of the conductors making up the elements of the dipole is to broaden the overall bandwidth of the antenna. Using small diameter wire will narrow the bandwidth. In the case of NRF24L01/ESP8266, broader bandwidth is no advantage. However, using larger diameter conductors should theoretically make the antenna easier to tune without the need for sophisticated equipment. It would be interesting to try using larger diameter conductors for Ron's mod ... say, 14 guage? This should make the lengths of the elements less critical. I'll have to get a couple of NRF24L01s and give it a try. Great post, Ron!

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.

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

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.

1 reply

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.

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

6 replies

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.

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.

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.

1.1Km - with 30mm/1.5mm wire

Very cool!

30 mm of length and 1.5mm of diameter ?

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

1 reply

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

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)