Split keyboard halves using XIAO unable to pair

I am making split keyboards for PC by flashing ZMK Firmware on XIAO nRF52840, and Bluetooth pairing between left and right fails on about 10 random XIAOs out of 80 newly purchased ones.
The ones I purchased at the end of March succeeds with the same procedure and I have never had this problem before.
How can I resolve this?
Is there any information on updates or bad lots that might be related to this?

Welcome… I think PJGlasso may be able to help you

Here is some additional information:

As for the failing XIAO, it seems to have basic Bluetooth functionality. This is because the wireless communication from the central unit to the PC succeeds even in pairs where the wireless communication from the peripheral to the central unit of the split keyboard fails.

The usual procedure to flash firmwares is as follows:

  1. connect the stock XIAO to the PC via USB, press the reset button twice and drag-drop them the left or right uf2 file.
  2. with no similar devices around, apply power to those pairs at the same time, and then they will be automatically paired up and remember the pair thereafter. Some microcontrollers require a single simultaneous presses of the reset button at this time, but XIAO does not require this operation, and trying this with the failed pair this time did not change the result.
  3. to reset the pairing information with left/right and PC, load the settings_reset firmware once. More at:
    Connection Issues | ZMK Firmware

I know only a little about microcontrollers and electronics in general. Is there some kind of basic firmware set in the stock XIAO that I can downdate to fix this problem?
Also, it would be nice to have some sort of console where I could see what the XIAO is doing in terms of left/right pairing, is there any way to do that?

Thanks for the response.
I am looking forward to his arrival!

HI there,

Yea, this is a popular application along with the midi one. definitely check out the threads on here for it.
In your case it is NOT unusual for the Reset after programing (flashing) to NOT work. Why is this:
it requires a certain setup on the RTS/CTS as Well as the DSR/DTR Serial ports pins to have it work correctly, think hardware flow control, vs Xon/Xoff software flow control.

sounds like a version build issue. Check the first one and working to the last one. Also are you always using the same Win10 PC? what serial USB vertual port numbers are you reaching?
you may want to clear old connections in the device manager (show hidden devices) and clean house a little.
Are you using a Nordic BLE dongle on the PC?
HTH
GL :slight_smile: PJ
:v:

At a minimum I would include a manual reset initially or a power reset. (usb port with a power switch)
This may be required based on which BSP you use and which Board family (embedded) , (non embed)
Look at the first 2-3 lines of the compiler output and locate what its using, i.e. 2.9.2 or 1.1.8
Check the date of your libraries and use the BSP closest to that 1 ahead and 1 back. see which performs better. WHy would it matter… some BSP handle the interrupts differently and have different priorities.
Be sure you are using a BLE xiao vs, a Sense version.
run the get Chip ID test and see what rev they are also.
REV 2 or REV 3 ?

2 Likes

Thanks for your detailed reply!

  1. I always use the same MacBook.
  2. The COM port is /dev/cu.usbmodem2101 when wired to my newly bought stock XIAO, but once I flash the keyboard firmware, I can no longer check it with the command. Also, the XIAO I bought in March cannot be checked because there is no one left that is not flashed yet.
  3. If device manager corresponding to System Settings > Bluetooth on Mac, there is no other Bluetooth devise being connected.
  4. I am using the MacBook’s built-in BLE.
  5. I have tried turning them back on or pressing the reset button once, which didn’t change the result. Is there any other way to reset? Also, I am not using the Board Support Package (and I don’t know what it is).
  6. If you mean the contents of the uf2 file by “compiler output”, most of the characters are garbled, but I don’t see a string of numbers that looks like that.
  7. If you mean the ZMK by “libraries”, I built it with the latest version.
  8. I’m sure that these are BLE version and not the Sense version, because the black part (accelerometer?) in the store picture of Sence is not attached. When connected as a serial device, it is marked with the word “SENSE”, though.
  9. I tried to use nrfutil to find out the chip ID, but I couldn’t figure out the command. By the way, according to the System Information of my Mac, the Product ID of my new stock XIAO is 0х8045, Vender ID is 0х2886, and Version is 1.01. Both old and new XIAOs with firmware flashed had Product ID: 0x615e, Vendor ID: 0x1d50, Version: 3.05, and “manufactured” by ZMK Project.

I also contacted Seeed’s Technical Support, who recommended that I try the following procedure, but I don’t have a “Jlink” machine so I can’t reproduce it immediately.

Hi there,
Oh’ OK…Mac Hmmm yea that is Strange.
SO try holding down the reset button and plug in the usb at the same time, it’s a bit tricky and may take a few tries but if your successful it will reset and you should hear the mac sound of it detecting a new device plugged in.
You are using a board support package if you are doing a build. If you are just dragging and dropping the UF2 file and not making it then What ever it was built with is what it’s using.
The black piece you speak of (missing) is the PDM microphone, not the IMU that’s under the tin shield
so yes that’s the BLE Xiao.
Nrfutil is great if you have a programmer or BLE dongle. not sure if that is available in the MAC version of Nrf Utils.
You do the Double reset to put it into BL mode.(also takes a few tries if there is code already on it.!)
even a programmed unit should still respond to the double tap on RESET.
Once the UF2 code is on it , the Double reset is how you get it to show back up only way, other than a programmer like a Jlink.
Note, when you put the xiao it in Bootl-Loader mode(double tap reset) the com port may change, fyi
Try that
and report back.
HTH
GL :slight_smile: PJ
:v:

2 Likes

Thanks again for your reply.
And I must apologize for the things I have to say.
This whole issue was due to my misunderstanding.

I followed your advice and tried many things, and I found a case of failed pairing even with a reset XIAO that I bought in March.
So I suspected that my “house is not clean”, went outside at midnight and tried flashing in the middle of nowhere. It worked like a charm.
I then repeated the attempt with various things in my house at a distance and identified the cursed object. It was the very keyboard; one that I had built just before this problem arose.
I had made a mistake and created a keyboard half that stays powered on forever, which was interfering with the pairing of new XIAOs. And since that happened to coincide with the timing of the XIAO being switched to a new lot, I mistakenly thought it was an controllers’ issue.

Now the problem is gone.
So sorry for taking your time.
:confounded:

1 Like

No fear… thanks for manning up and being honest… that is the best gift you could give back… you are forgiven… that is why we ask so many “Crazy” questions… whenever i encounter a problem I never go first for the obvious… i think the obvious must not be the cause

in any event you have truly troubleshoot and we are happy to learn along with you!

Please keep helping people here to pay it forward!

Thank you for looking out for us.
I will do my best to give back to the community!

1 Like