Bluetooth under VEXOs


I have updated to VEXOs (2.0.1), including 1.3 firmware for the SmartRadios. Since that time, the brain no longer connects to by device. I have a gadget that I have used for wireless programming (USB-Serial -> BTLE bridge) and it worked well for me using brain firmware 1.16 (and SmartRadio 1.1).
I have noticed that when upgrading the brain to VEXOs 2.0.1, the SmartRadio got upgraded to 1.3 and the data exchanged between the brain and the controller has changed a bit too (or at least the controller advertises with version 1.6 and radio version 1.3 instead of 1.5/1.1 as described in the SmartRadio SDK).
When my gadget keeps advertising the way it used before (name of “<id>-1-5-1-1”), the brain never tries to connect. Even when I change the name advertised to “<id>-1-5-1-3”, the brain still ignores the advertisements.
Is there a new SmartRadio SDK or set of docs? Does the VEXOs2.0.1+SR1.3 still support the name based advertisement?

What James mentioned is most likely your issue. But just to answer your question, the versions you are advertising are fine the radio firmware is backwards compatible so you can advertise the older versions and it should still connect.

Thanks for the replies.
Yes, I am aware of the “Radio Data” setting and I keep it at “On”. (I have tried “off” too, out of frustration). Anyway, I can’t get the brain to even initiate a connection (the first thing it would need to do to actually find out if the peripheral isn’t a controller).
Brain ID: 56134, 0xdb46

Today I made few more observations, using BT sniffer and the “nRF Connect” tool on an Android phone as a simulator and a debugging aid.

First I’ve got a trace of a paired controller advertising and a connection event to have a baseline to compare with. Connected, check.
The controller was using this AdvData: 02 01 06 0b ff 11 11 01 03 46 db 00 00 01 06

Next, I have tried simulating the controller advertising (manufacturer-specific-data way) with nRF Connect. The brain has initiated a connection, looked for some services and (expectedly) gave up, since the VeX services weren’t present. The AdvData I used were: 02 01 1a 0b ff 11 11 01 03 46 db 00 00 01 06

  • the flags were wider, 0x1a as the phone is BR/EDR capable, but otherwise the format was the same, so the brain had little reason to not try that

To get closer to my use case, I switched to the name-based advertising with nRF Connect. I have renamed my phone to “56134-1-6-1-1” and advertised the name instead of mfg. data from nRF app.
The full format was: 02 01 1a 0e 09 35 36 31 33 34 2d 31 2d 36 2d 31 2d 31
The brain still tried to connect to such an advertisement, so the name-based advertisement is not the problem either.

Last, I have compared to my device’s advertisement data: 0e 09 35 36 31 33 34 2d 31 2d 36 2d 31 2d 31 03 19 34 12 02 01 05
As you see, my advertisement packet contained one more field, tag 0x19: Appearance, set to 0x1234 (phony value, eh?).
It turned out the brain didn’t like that at all. Once I have modified my firmware to omit appearance in AdvData, the brain now connects happily.

So I have a solution, though the brain, with VEXos and v1.3 BTLE firmware is now little more picky than what it used to be. It used to ignore the Appearance value before…