Antenna Comparison of XIAO nRF52840, ESP32C3, ESP32C6 and MG24

Now that the XIAO nRF52840, ESP32C3, ESP32C6 and MG24 with on-board antennas and/or antenna switching functionality are available, I compared the performance.
Hopefully this will help anyone interested.

Measurements:
The transmitter advertises with varying Tx power, while the receiver scans and measures RSSI. As RSSI is greatly affected by antenna orientation and ambient conditions, measurements were taken under the same conditions as far as possible and in as short a time as possible. The communication distance is about 10 metres, separated by a wall.

The nRF52840’s on-board antenna has an RSSI about 5 dBm higher than the ESP32C6 and MG24, despite having smaller antenna element. This may be due to the lack of interfering components around it.

The external antenna of the MG24 has an RSSI about 5 dBm higher than the ESP32C3 and ESP32C6, but this may be due to the opening of the metal cover near the antenna connector.

The MG24 and nRf52840 graphs show limited RSSI in places, but TxPower may be limited by firmware.

3 Likes

The following information was found.

nRF52840 Data Sheet 6.20.15.4 Transmitter specification

-20 to +8 dBm TX power, configurable in 4 dB steps

\Arduino15\packages\SiliconLabs\hardware\silabs\2.2.0\variants\xiao_mg24\ble_silabs\include\sl_bt_api.h sl_bt_api.h: L1276-L1317

By default, the minimum radiated TX power level is configured to -3 dBm and the maximum radiated TX power level to 8 dBm.

1 Like

Hi there,

Pretty Awesome Stuff :+1: I like the 4db steps they should all do that! IMO.
I’m skeptical on the MG24 because of the lack of published data , info… What are they trying to HIDE!? I’m guessing the Next benchmark is performance based on Cores? The M33 is better but with no good documentation it may as well be a Z80 :grin:

Thanks for the great work.
GL :slight_smile: PJ :v: Happy New Year!

Not sure I get this right, is there really a new version of the Seeed XIAO nrf52840 with a better antenna compared to say a year ago?
I have my project running (you may remember it @msfujino) but always at the very edge of range with it

Where did you find this information?

Have you read this article on Coded-Phy that extends communication distance?

Yes, but I am using Arduino. How can I use coded PHY on the XIAO nrf52840? Could you share a code example, pretty please?

You may need to make other changes besides this line, but try the following.
Coded has a bit rate of 125 kbps, so if the amount of data is large, it will take longer to transmit and the current required will increase.

//connection->requestPHY();
connection->requestPHY(4); // 1(default):1Mbps, 2:2Mbps, 4:Coded See ble_gap.h:549

This document is very helpful.

I am preparing an experiment to see how much it affects the communication distance.

Grok AI just told me to do this

#include “nrf_sdm.h”
#include “ble_gap.h”

and then in connect_callback

add this

ble_gap_phys_t phy_params;
phy_params.tx_phys = BLE_GAP_PHY_CODED;
phy_params.rx_phys = BLE_GAP_PHY_CODED;
uint32_t err_code = sd_ble_gap_phy_update(conn_handle, &phy_params);
if (err_code == NRF_SUCCESS) {
Serial.println(“PHY update requested successfully”);
} else {
Serial.print("PHY update failed with error: ");
Serial.println(err_code);
}

…and it seems to WORK so far?!

Hi there,

AFAIK, There isn’t a canned example of Coded PHY for Arduino and ArduinoBLE.h you may look to NIMBLE for those extras or to NRF_SDK or ESP_IDF for native support. The link @msfujino provides is the best jumping off point to get some reference.

I managed to duplicate some of the codedPHY examples in the dev course, but I’m Stuck like chuck on the MCUBoot, Bootloader Partition manager for the Flash management on the Xiao (onboard 2Meg), I need two Slots defined for DFU with failover. Crazy Good how capable this chip is. We need a Nrf54L15 Xiao ASAP! (BLE to 4Mbit)

HTH
GL :slight_smile: PJ :v:

I just got 112m range outdoor with 2 peripherals connected to one central using the above changes! Before, 8m were the maximum I could get

WOW, that is pretty steller my man… :+1:

GL :slight_smile: PJ :v:

what does the setup look like?

3 XIAOs nrf52840 Sense using the wire antenna mod, right now testing how much difference this makes. However, I only got 8 meter with the exact same hardware but without the PHY-mode!

1 Like

Ok shit range without the short wire antenna but that’s okay for me

1 Like

112m, great result.
connection->requestPHY(4); is another bluefruit library function with the same effect.
It is easy to write, so please try connection->requestPHY(4); as well.

Hi there,

Another Golden Nugget from @msfujino I didn’t even know that Bluefruit had any CodedPHY great stuff fellas. I would like to try the Factory ANT on the Xiao Nrf52840 with this and see what I can get. I will do another video like the old one where we got maybe 20 meters? outside, LOS but with this updated code and time permitting.

GL :slight_smile: PJ :v:

I wonder if these they offer for the C3 could be used for the BLE

I have already confirmed that the function requestPHY() can communicate with PHY set to 1Mbps, 2Mbps, and Coded125Kbps, but a report comparing communication distance and current consumption is forthcoming.

1 Like

Hi there,

That’s OUTSTANDING! Once again thanks for pushing the tech envelope and the great documentation doing so!
Looking forward to your results. :+1:

GL :slight_smile: PJ :v:

I can confirm that this works absolutely the same.

I got more than 100m of range easily with both sides 1m above the (wet) ground and a reconnect happened 50m away

More than enough for my project, although even more should be possible

2 Likes

Hi there,

That is excellent and repeatable is great news too.
reconnect at 50 meters is stout IMO with just the mod then NICE! :grin: :ok_hand: I’m gonna give the bluefruit stuff another go then… :+1:
wonder if the MG part with the FLAG ant. what it will do ? CodedPHY ?
:thinking:

GL :slight_smile: PJ :v:

Yo , EVERYONE… Listen UP …REAL work in this here Thread , BOI !!! :grin: :point_up:

Interesting comparison! It’s impressive how the nRF52840 outperforms despite the smaller antenna. Did you notice any significant differences in stability or packet loss between these modules blinds Conroe tx, especially through the wall.