Dear Kees,
old firmwares don't have the manufacturer specific data record in neither the advertisement, nor the scan response data packet.
You can recognize these old bricks (beside updating the firmware, obviously :) ) by looking for devices with the name "SBrick". There are very old pre-production prototypes with the name "SmartBrick".
To support these, you need to match for names of "SBRICK" or "SMARTBRICK" case insensitive (so "SBrick", "sbrick" and "sbRIck" all match). Since you cannot prevent anyone to name a BLE device "SBrick", you might end up listing and connecting to non-SBrick devices. To prevent confusion and strange errors, check for the remote control service in the GATT database.
Cheers,
Tamas
Dear All,
Based on the protocol documentation I am matching for <98> <01> to identify SBrick bricks. That works for the SBrick Plus and for a classic SBrick that has updated firmware. However, I also have a classic SBrick with the stock firmware and that one is not matched. Can you please explain what I should match on to identify classic, stock, unpatched SBricks?
I am using https://social.sbrick.com/wiki/view/pageId/11/slug/the-sbrick-ble-protocol
Here's a hexdump of the scan data I am getting:
GAP: receive_gap_scan_response(rssi: -51 dBm, packet_type: [0x00 connectable advertisement packet], sender: 0:7:80:2e:43:e4, address_type: 0, bond: 0xff)
data 0000: 0x02 0x01 0x06 0x02 0x0a 0x00 0x11 0x07 '........'
data 0008: 0x0c 0x5b 0x66 0xda 0xab 0x15 0xf1 0xb5 '.[f.....'
data 0016: 0xde 0x41 0x7c 0x85 0xb0 0x91 0xc5 0x4d '.A|....M'
GAP: receive_gap_scan_response(rssi: -52 dBm, packet_type: [0x04 scan response packet], sender: 0:7:80:2e:43:e4, address_type: 0, bond: 0xff)
data 0000: 0x07 0x09 0x53 0x42 0x72 0x69 0x63 0x6b '..SBrick'