BLE Advertising Junk Data

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

I'm using the CY8CKIT-042-BLE-A PIONEER KIT and working on the Find Me project. My observer is an Android app that reads the advertising data (without establishing any connection), that is, using the getManufacturerSpecificData(MANUFACTURER_ID) Android function.

I set the advertising data fields (Manufacturer ID and some data) in the GAP Settings and when I start advertising, my Android app gets this data, but sometimes, some junk data is also fetched. Initially I thought it was the "scan response" data and I unchecked all the boxes in this tab but the same thing is repeated.

Broadcaster (board): My Manufacturer specific data: 01

Observer (Android):

Reading size: 1 with value: 01 (NEED ONLY THIS ONE)

Reading size: 27 with value: 07 19 01 02 20 21 77 0F 00 00 00 D5 67 C4 B7 15 54 63 22 B1 2B 06 09 57 36 AB 1A

Reading size: 8 with value: 09 06 03 03 C0 A8 4A 0A

Code in Android:

byte[] data = result.getScanRecord().getManufacturerSpecificData(MANUFACTURER_ID);

if (data != null) Log.d(TAG, "Reading size: " + data.length + " with value: " + bytesToHex(data));

I'm a beginner. Any help is appreciated.

0 Likes
1 Solution
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

It looks like you are receiving advertising packets from other devices. You can specify the UUID of the BLE device in your Android code so that you only connect to that. The data is not junk, but the manufacturer data of other devices near you.

Other possible way to check this would be to place a breakpoint in the line where you get the result and then observe for the device name in the scanRecord in the debug window as shown below:

debuggerAndroid.PNG

You can see the value corresponding to the device name as highlighted. I had put device name as "Cypress" and Manufacture data as "0x02" which is being shown.

Do let me know if you need any help. Make sure you use our Github Library for reference: bleapp/PSoCCapSenseLedService.java at master · cypresssemiconductorco/bleapp · GitHub

Regards,

Dheeraj

View solution in original post

2 Replies
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

It looks like you are receiving advertising packets from other devices. You can specify the UUID of the BLE device in your Android code so that you only connect to that. The data is not junk, but the manufacturer data of other devices near you.

Other possible way to check this would be to place a breakpoint in the line where you get the result and then observe for the device name in the scanRecord in the debug window as shown below:

debuggerAndroid.PNG

You can see the value corresponding to the device name as highlighted. I had put device name as "Cypress" and Manufacture data as "0x02" which is being shown.

Do let me know if you need any help. Make sure you use our Github Library for reference: bleapp/PSoCCapSenseLedService.java at master · cypresssemiconductorco/bleapp · GitHub

Regards,

Dheeraj

Anonymous
Not applicable

Perfect. Thanks Dheeraj.

So what happened was I added Manufacturer ID of Apple for testing but it may have fetched data from the Apple devices nearby.