Pixel.js does not hear a specific device BLE advertisement #4022
Replies: 1 comment
-
Posted at 2022-06-20 by @fanoush you may try with Posted at 2022-06-20 by user127454 I used the filters in the findDevices function before but changed to dealing with it myself, if the manufacturer code is not 0x8282 it just prints the mac adress on the console, but if if it is 0x8282 it processes it for the screen. I added the active: true but it made no difference. Posted at 2022-06-20 by user127454 Is it not funny how things always resolve themself as soon as you ask a question?? Found the problem, just a line that checked a data version of the ruuvi sensor and exited... It now works as expected :-) Posted at 2022-06-20 by @fanoush
It makes a difference when data (like device name, or basically anything) is in scan response packet and not directly in advertisement packet. Packet size is very limited so sometimes the less important data is in scan response, which is asked for only with active scan. Anyway, great you got it working. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2022-06-20 by user127454
This might no be a espruino problem, but someone might be able to help.
I have a couple of Pixel.js units that are to display a value from a BLE advertisement packet.
For testing I used some Ruuvi sensors and this works just fine, the script builds an array of senders mac addresses and reads out the temperature and humidity, and then updates the display.
But then I got the real device we will listen to. This is based on a BlueGiga BLE112 module running a bgscript.
I have no problems finding the device with the Lightblue app on iOS etc.
I can also see the device just fine with Wireshark and the Adafruit BLE sniffer. I have attached a short pcap file with this data.
But the Espruino will not see this device, or, after days of testing the Pixel.js has found the device once, thats it.
The data sent has manufacturer id set to 0x8282 for this test.
The first 4 bytes of the manufacturer data is a timer value in seconds, then some flags and the last byte is a signature that always reads 0xDB.
The espruino script is a bit messy but this is in a testing phase... :-)
Attachments:
Beta Was this translation helpful? Give feedback.
All reactions