Mesh range / external antenna?

I’m getting
90% reliability at 150ft line of site, no obstacles (this is about the max usable and falls off fast after that)
99.9% (not actually measured 99.9 but I don’t see any loss) at 140 ft or less
99.9% (same) 50 ft through 1 brick wall.

So for some scenarios the mesh is plenty and others the above limits come into play

How many nodes are you testing with on the mesh network?

4 right now. 1 argon gateway and 3 xenon. (argon connected to an old, interposing cheap router because of the argon-to-xenon router allergy that causes the xenons connected to an argon to fast flash green).

1 Like

There will eventually be a setting to set and save the selected mesh antenna (internal vs. external). However, if you want to play around with it now, you can just copy and paste this function and call it to select the external (u.FL connector) mesh antenna. The setting is not saved. The default is internal.

void selectExternalMeshAntenna() {

	digitalWrite(ANTSW1, 1);
	digitalWrite(ANTSW2, 0);
	digitalWrite(ANTSW1, 0);
	digitalWrite(ANTSW1, 0);
	digitalWrite(ANTSW2, 1);

Awesome, thanks @rickkas7! I will definitely give this a try this evening.

1 Like

Happy to report much improved range with external antennas. Using two xenons running the marco & polo code, there’s no place in my house or on my property where I get dropped messages while standing still. while i was moving I could occasionally lose one, but I couldn’t reproduce it while standing still. I had one xenon in a window on one side of the house, and even when I was outdoors on the opposite side of the house, I was still getting responses in 10s or 20s of milliseconds.


That’s great to hear, though I won’t deny that I’m highly disappointed with the range of the mesh devices with the built-in antenna. Is this something that can be improved with future firmware updates or is this a hardware level issue?

Possibly, with all the stability issues in RC.25, I think the out-of-the-box range can only improve. I just bought some external antennas and I’ll be testing soon. But I’m still ready for the RC.26 firmware to improve things.

1 Like

Sweet, thank you for posting this result.
Could you please state what antennas you did the test with ?

I used the ones I linked above. I’ve had the marco polo test running for about a week now and sometimes still do miss a response. Once the whole mesh stopped responding and i had to restart the gateway. I’m not really keen on investigating too much more till 0.8.0-rc26 comes out, since folks here are saying that it improves mesh stability significantly.

1 Like

Hey folks! Wanted to jump into this thread to let folks know that RC.26 has been released with a couple of improvements that should improve the effective range between 3rd Gen devices.

  • Increased the default nRF52840 transmit power by 8dBm
  • Resolved some OpenThread stability issues which limit effective range of a device connected via a gateway device to the Particle Cloud

Instructions for upgrading are available here:


Hi there, I updated an Argon and some Xenons to the latest FW v0.8.0-rc.26 last Friday. As expected the +8dBm improved the range nicely. I placed the Argon outside the window on the first floor and started walking away from home with a Xenon in my hands. The test was perfomed with both devices having an external antenna for mesh and running the above mentioned Marco-Polo code.

600m (660 yards) are not a problem, if you have a clear line of sight! I probably could have gone even further, but I reached the nearby forest/hills where the clear line of sight ends…;-).

But if you are behind concrete buildings its a totally different story. I got approx. 10-50m.

That’s all for now…:wink:


So the antennas really help. I’m going to order some. Thanks for sharing.

My previous tests with no external antenna and with pre-RC26 was seeing reliability fall off around 150 Feet (50 yards / 46 meters).

Was that with the built in antennas?

He states:


Does this selectExternalMeshAntenna() function enable Bluetooth on the external u.FL antenna (as it shares the Mesh radio)? I’m not seeing any change in my Bluetooth range when I run this function in STARTUP.


The function might not work from STARTUP. Or you may need to set the pinMode to OUTPUT if you do call it from there.

I used SYSTEM_THREAD(ENABLED) and put the call in setup().

Yes, it affects both BLE and mesh.

Man, I totally forgot about needing to manually set the Bluetooth antenna to external on the Argon and Xenons when I have a antenna attached to the BT Connector. I thought it was automatic now for some odd reason.

No wonder I have been getting less range that I was expecting with the external antennas attached.

Update! - Added this code and BLE range is so much better now!

1 Like

Hi @rickkas7

Good Morning,

I am wondering if you can comment on the my past at Find if Onchip or External Antenna being used.

I am trying to confirm if ANTSW1 will work for Particle p1 chip as well??


It’s completely different on the Photon and P1, the code above is only for Gen 3 devices (Argon, Boron, Xenon).