CODED_PHY function to extend the range of my project and develop in Arduino

As indicated in the Tittle… and I know “others” are interested also.

I am using XIAO nRF52840 BLE Sense , which is a variant of the nRF52 family , I’m also using the Xiao ESP32S3 which is a variant of the Espressif ESP32 family and using BLE 5 on both. I would like to use the CODED_PHY function to extend the range of my project and develop in Arduino.

Based on this example I need to set CONFIG_BT_BLE_50_FEATURES_SUPPORTED which is supposed to be in the sdkconfig file. However it appears that I have to recompile Espressif libraries.?
Is there an easier way of activating this feature or prebuilt libraries that do this? looking further
I found this library that does exactly what I was looking for.

https://github.com/h2zero/NimBLE-Arduino
The code already supports Bluetooth 5 and extended PHY can be set using nimconfig.h.
If you are using an RF%2 board with the ESP32 then you will need to install the n-ablecore - https://github.com/h2zero/n-able-Arduino
anyone have experience with this LIB?
HTH
GL :slight_smile: PJ

1 Like

Hi PJ,
It sounds difficult, but I want to participate and have set up a PlatformIO environment.
I am looking into the two githubs you mentioned in your link.

1 Like

Hi msfujino,
The quest of a TRUE BLE Ninja :ninja: , I was wondering why doesn’t <ArduinoBLE.h> oe even “Bluefruit.h” support it/ I know from reading the current softdevice supports it S140 , seems it should be added to the libraries. I may take the plunge for a Nrf52840DK & SDK ,
# nrf52840 concurrent bluetooth 1M and coded communication
thay have more than 3 concurrent connections also with the dev board as a central and the dongles as the peripherals, I have (2) of them so (2) Xiao’s would make 4 for testing…maybe for xmas :santa:

I was using platformio but it took a while to get the flow , that’s so easy in ArduinoIDE, however the Debugger works best in PlatformIO so I may go back for the advanced offerings.
but I would rather look into the
Nordic Thingy:91 or the ,Cellular IoT prototyping platforms like
the nRF52840 SoC on the nRF9160 DK (PCA10090)
get a real long reach… eventually.

GL :slight_smile: PJ

PJ,
My interest is only in communication between XIAOs to understand the relationship between distance and power consumption.
So far, I have debugged using only ArduinoIDE, waveforms from a digital oscilloscope and PPK2, and experience. I will take this opportunity to try my hand at debugging with PlatformIO. And getting my hands on Nordic’s SDK is a bit beyond my capabilities.

1 Like

msfujino,
Yes, for me as well may be to far of a climb for me right now. the whole SDK thing.
I Love being able to single step Xiao with debugger (JTAG-SWD) and watch variables’ update and edit them in real time, it makes debugging a large program way easier imo.
the distance is the main thing now for the improving my app and project. So I’m all in for the coded PHY.
GK :slight_smile: PJ

Well this is just Bananas…

https://jimmywongiot.com/2021/05/27/ble-multiple-central-peripheral-role/
GL :slight_smile: PJ

PJ,
I have installed PlatformIO and am now able to compere with mbed BSP 2.9.2 by following the link below.
Working with Seeed XIAO BLE Sense and PlatformIO IDE | by Alwin Arrasyid | Medium

I have a few questions I would like you to tell me.
Do I need a debugger like JLink for uploading(not debugging)?
Is there any way to enable the use of non mbed BSP?

Hi there, msfujino
I have also gone back to PLIO, NO you do not have to use a JLINK to program
(look in devices on bottom right stab of Platform io Home window) Pick which port Xiao to program (auto)
and YES I think you can pick either BSP 1.1.X or Mbed 2.9.2.
( I can’t seem to change it now? though?)
(Boards tab)
The key to Visual Studio with Platform IO it is the platform.INI in the workspace folder and status bar at bottom of the main screen. IMO
here are some screen grabs from my setup. let me know if that helps.
Board explorer PLIO

Select programming port.,Im set to AUTO


I’m adding the NRF-SDK to Platform IO and trying that out

clicking the icons at the bottom open the dialog boxes …FYI
HTH
GL :slight_smile: PJ

PS. I started with the same link…

Hi PJ,
I am new to both VSCode and PlatformIO, so I am still struggling to understand how to operate them. Is there a beginner’s site that explains how to set this up?

I have checked the PLIO_1 and 5 screens, but I do not know how to display the PLIO_2, 3, and 4 screens.
In which directory do you put BSP2.9.X and 1.1.X?
It looks like I need to edit the configuration file, but I don’t know which file.

Hi there,Msfujino,
Yea it’s a Learning curve for sure, the other screens you would get access to from the bottom status bar when you IMPORT an Arduino Project in Platform IO. It will bring the boards and LIBs in with it. Then the Status bar at bottom will have more options available.
Unfortunately I don’t see how to add the 2.9.2 BSP into it, I’m far from an Expert in this. So more reading to come. It has 2.8.1 which is old and doesn’t work for battery read.
Even though it compiles without ERRORS, Uploads and Runs, just no no battery level is showing.
Back to the LAB…
HTH
GL :slight_smile: PJ