Receive BLE Advertisements in Go on Linux
Budget: $250 – $750 USD
I need a small Go program written to receive Bluetooth Low Energy (BLE) Advertisements. There is an existing open-source (GPL) library written in Go to do this, but (a) it contains too much additional functionality, (b) parses the BLE advertising data (payload) and doesn't provide access to the raw data/payload, and (c) GPL is unsuitable for my project which will be released under an MIT licence.
The program will:
1) Passively listen for BLE advertisements (endless loop)
2) Call a callback function with the Bluetooth address, the RSSI, and the advertising data payload
3) For development purposes, the callback function will simply print the address, RSSI, and advertising data payload in hex.
The Go program must work on Linux (Windows and MacOS support is not required).
I have tested the existing GPL library on AMD64 and a Raspberry Pi 4b and it functions correctly. I will provide the GitHub link to the GPL software I tested, but to be clear, no GPL code may be incorporated into this product, and no copyright violations will be tolerated.
While not required, if you happen to be familiar with ESP32 programming using the Arduino IDE, and have an ESP32 development board, I can provide an Arduino script that turns the ESP32 into a BLE Advertisement receiver so that you can compare the known-good data from the ESP32 to your Linux Golang code.
The program will:
1) Passively listen for BLE advertisements (endless loop)
2) Call a callback function with the Bluetooth address, the RSSI, and the advertising data payload
3) For development purposes, the callback function will simply print the address, RSSI, and advertising data payload in hex.
The Go program must work on Linux (Windows and MacOS support is not required).
I have tested the existing GPL library on AMD64 and a Raspberry Pi 4b and it functions correctly. I will provide the GitHub link to the GPL software I tested, but to be clear, no GPL code may be incorporated into this product, and no copyright violations will be tolerated.
While not required, if you happen to be familiar with ESP32 programming using the Arduino IDE, and have an ESP32 development board, I can provide an Arduino script that turns the ESP32 into a BLE Advertisement receiver so that you can compare the known-good data from the ESP32 to your Linux Golang code.