Arduino Install of Seeed Xiao BLE nRF52840, can't find files

I just received my new Xiao BLE nRF52840. I’m developing in the Arduino IDE and installed the board manager pointer to
I install the boards in Board Manager.
When I try to compile a simple blink LED program, I get the following errors
arm-none-eabi-g++: error: C:\Users\erikj\AppData\Local\Arduino15\packages\Seeeduino\hardware\nrf52\2.6.1\variants\SEEED_XIAO_NRF52840_SENSE/defines.txt: No such file or directory
arm-none-eabi-g++: error: C:\Users\erikj\AppData\Local\Arduino15\packages\Seeeduino\hardware\nrf52\2.6.1\variants\SEEED_XIAO_NRF52840_SENSE/cxxflags.txt: No such file or directory
arm-none-eabi-g++: error: C:\Users\erikj\AppData\Local\Arduino15\packages\Seeeduino\hardware\nrf52\2.6.1\variants\SEEED_XIAO_NRF52840_SENSE/includes.txt: No such file or directory
exit status 1
Error compiling for board Seeed XIAO BLE Sense - nRF52840.

I look at the directory structure and sure enough there is no sub-directory 2.6.1\variants…
variants is a missing directory under 2.6.1

Any ideas? I’ve uninstalled and reinstalled the boards with no luck

Huh? My variants\SEEED_XIAO_NRF52840_SENSE directory has a number of text files, including the ones flagged as errors in your program. The first attachment shows the complete path. I guess those files are used by the compiler; they are not part of a sketch.

Here’s my little test program.

  Blinky program for XIAO BLE Sense
  Makes an LED blink briefly once every second.


int led = LED_BUILTIN; // This is the Red LED on the XIAO BLE board

#define LED_ON  LOW    /* According to the schematic LEDs are active-low, so a */
#define LED_OFF HIGH   /* LOW value turns it on and a HIGH value turns it off. */

void setup() {
  // Wait until it can talk to the Serial Monitor or other terminal
  while (!Serial) ;
  Serial.println("Dave's Blinky compiled on " __DATE__ " at " __TIME__);

  // BOARD_NAME is defined in Seeeduino\hardware\nrf52\2.6.1\variants\SEEED_XIAO_NRF52840_SENSE\pins_arduino.h
  Serial.println("Board is " BOARD_NAME);
  pinMode(led, OUTPUT);
} // End of setup()

void loop() {
  digitalWrite(led, LED_ON);
  delay(100);                 // Leave it on  a little while.
  digitalWrite(led, LED_OFF);
  delay(900);                 // Leave it off somewhat longer.
} // End of loop()

Serial Monitor output is attached

Arduino version 1.8.19 on Windows 10, “Seeed nRF52 Boards” version 1.6.1, Selected board is “Seeed XIAO nrf52840 Sense”




I have had problems, from time to time, with Seeed changing the json file in ways that screwed the pooch, so…

Just for kicks, I uninstalled the “Seeed nRF52 Boards” using the Boards Manager and re-installed version 2.6.1.

Results on disk were the same, but now the board selection shows up under “Seeed nRF Boards” rather than the old location under “Arduino Mbed OS Boards”

Bottom line: I still have everything in the variants directory for the XIAO nRF52840 Sense board, but now there is a variant that doesn’t have “Sense,” so they definitely changed their distribution without changing the revision number. Bad show! Really amateurish.

I’m guessing there may have been releases between my first download and the one a few minutes ago that were wonky. It wouldn’t be the first time Seeed confused us by putting up bad stuff and then changing it with no update of version numbers.

Maybe you can try again. If you still don’t have a variants subdirectory, maybe you can contact Seeed support. Lots of luck on that!



Footnote: I note that pins_arduino.h for the “Sense” variant is identical to pins_arduino.h for the non-“Sense” variant, including the definition for BOARD_NAME.
The Sense variant and the non-Sense variant both define BOARD_NAME as “Seeed XIAO nRF52840 Sense”
Wonder why they bothered. Also wonder if anyone at Seeed (other than the one who implements this stuff) ever reviews it and, gasp, even tests it before release.

Thanks for the response Dave.
I’ll take a look at this when I get back home.
Appreciate the feedback

Just a quick follow-up.
I had to install the 1.0.0 Board drivers first and then upgrade to the 2.6.1 drivers afterwards. This seemed to get the file structure set up properly. So now one of my two BLE Sensor nRF units is working. The other seems to be defective and I will be trying to return it.

1 Like

I have paid attention to this issue, about the new onboard files you mentioned need to install the old version before upgrading the new version of the problem, I will feedback to the R & D to follow up.