BlueTooth advertising data
- 
					
					
					
					
 Tag: Bletooth data This is maybe easier to see here: http://bellacon.com/Forum/advertising.html I am trying to receive content of advertising packet as I am receiving using TI sniffer. When my adv data is set to test pattern: 010102030405060708090a0b0c0d0e0f1011121314151617 I can clearly see it in TI sniffer:  As well in content of adv.data: (mac=b'\xb4\x99Ld\xba\xc9', addr_type=0, adv_type=0, rssi=-55, data=b'\x01\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\xca\x00\xf8\xff\xfd?\x1c') 
 b'\x01\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\xca\x00\xf8\xff\xfd?\x1c'
 010102030405060708090a0b0c0d0e0f1011121314151617ca00f8fffd3f1c
 NoneCode to print above lines is: adv = bluetooth.get_adv() 
 print(adv)
 print(adv.data)
 print( binascii.hexlify(adv.data).decode("utf-8"))print(bluetooth.resolve_adv_data(adv.data, Bluetooth.ADV_MANUFACTURER_DATA)) When advertising packet data changes to contain my sensor data, there is Scan request performed by WiPy as it is clerly visible on sniffed data below:  and there is no mention of needed data: 01A8681E..... in WiPy output...: (mac=b'\xb4\x99Ld\xba\xc9', addr_type=0, adv_type=0, rssi=-54, data=b'\x01h\n\tSensorTag\x05\x12P\x00 \x03\x02\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 
 b'\x01h\n\tSensorTag\x05\x12P\x00 \x03\x02\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
 01680a0953656e736f72546167051250002003020a00000000000000000000
 NoneSo my question is: How do I receive data contained in Advertising packet (01A8 to 9F01) ??? bluetooth = Bluetooth() 
 bluetooth.start_scan(-1)
 allmessagecount=0while True: 
 try:
 adv = bluetooth.get_adv()if adv: if (allmessagecount %2) == 0: 
 pycom.rgbled(0x000030)
 else:
 pycom.rgbled(0x00007f)
 allmessagecount=allmessagecount+1gc.collect() print(adv) 
 print(adv.data)
 print( binascii.hexlify(adv.data).decode("utf-8"))mfg_data = bluetooth.resolve_adv_data(adv.data, Bluetooth.ADV_MANUFACTURER_DATA) 
 print(mfg_data)except Exception as err: 
 print('MainLoop-ERR#: ',err)
 gc.collect()
 
- 
					
					
					
					
 Make sure you are sending the correct length and AD types according to the ADVERTISING AND SCAN RESPONSE DATA FORMAT (page 2081 on the Bluetooth 4.2 Core Spec - you can access the specification here https://www.bluetooth.com/specifications/adopted-specifications ). If you're looking to use BLE advertising packets to send your data you probably want to use AD type 0xFF (Manufacturer Specific Data) followed by the 2 company identifier octets. So your format should be 1 byte length + 0xFF + <2 bytes company identifier> + your data then filled with 00 until the 31 byte limit. You can't read improperly formatted advertising data. 
 
