I will touch very briefly on two boards that I just picked up from Seeed Studio. Very short because I thought they would run on ESP32 chips – but they don’t – I guess the giveaway is in the name (nRF52840)
Here they are, the demos are very nice but since my go-to development software is ESPHOME, it will be a while before I can familiarize myself with the tools to do anything with these.
Both boards (they have 3 different sizes) are very similar but for the 1.47″ touch display versus the 0.96″ display on the smaller board. Both have connectors for 3v7 rechargeable batteries and both have USB connectors for charging or battery-free operation.
Both boards fully support their full color display, built-in motion and gyro sensors, battery status, backlight control and microphone – and the demos the boards come with do a great job of showing off the sensors. Both have TAP sensors, although I couldn’t seem to get consistent operation there – everything else was fine.
One important point I almost missed: the XIAO nRF52840 Plus is not a Wi-Fi device. The nRF52840 offers Bluetooth/Bluetooth Low Energy (BLE) Connectivity, but there is no Wi-Fi hardware on board.
That means these boards are rather different than the ESP32-based XIAO boards I’ve been using recently. In particular, they cannot provide the Wi-Fi-based functions that I am used to with ESPHome, such as a web interface, network connection or OTA updates.
It seems though thst by msking use of one of my BLE proxies I should be able to get the Xiao-nRF52850-Plus boards to talk to the Home Assistant – time will tell.
And so it is only moments later. Safe in the knowledge that the demo code is available on the Seeed site, that gave me the confidence to try a little trick that CHATGPT suggested – putting the simplest possible Arduino code into the smaller of the two boards. I started the Arduino IDE on my PC and added this link below for the seed boards.
Arduino IDE – File Preferences – Additional Boards Manager – I already had a list of nweline separated values there and added this:
I then started a new Arduino project – and installed “Seeed NRF52 Boards from Seeed Studio”, made sure the smaller board was plugged into my PC USB (I have a hub with several connections available) – chose the correct serial port and selected Seed XIAO nRF52840 Plus in the board list.
I replaced the dummy sketch in the new sketch with:
#includevoid setup() { Serial.begin(115200); Bluefruit.begin(); Bluefruit.setName("XIAO-096-PETE"); Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); Bluefruit.Advertising.addTxPower(); Bluefruit.Advertising.addName(); Bluefruit.Advertising.restartOnDisconnect(true); Bluefruit.Advertising.setInterval(32, 244); Bluefruit.Advertising.start(0); } void loop() { delay(1000); }
That’s it, I don’t have anything else to install – I didn’t miss any steps here.. I then hit the UPLOAD option in the IDE (no need to compile first – this is done automatically before uploading).
Once that was done – I made sure one of my BLE proxies monitors was running and noticed THIS:
See that? XIAO-096-PETE near the top of the list at -76dBm – if only all BLE devices send a name as well as the MAC. That’s it – that’s all the little demo does – nothing else.. but that’s good enough to prove the point – I’ll be able to get info from these boards and into the Home Assistant.
So, sitting next to the proxy – why is XIAO-096-PETE RIGHT at the top – well, I have a lot of BT devices and antenna orientation is important.. moving the little unit around was easy to bring XIAO-096-PETE right to the top.
Although the XIAO nRF52840 Plus has Bluetooth Low Energy capability, the factory demonstration firmware does not seem to advertise the board as a BLE device. I confirmed this with both an Android BLE scanner and my own ESP32 BLE scanner. When I loaded a simple Arduino BLE advertising test, the board immediately became visible to both.
