Federico Fuga

Engineering, Tech, Informatics & science

Pairing Bluetooth with no pin on Intel Edison

10 Aug 2015 15:30 UTC Code Embedded
It may seems strange for an IoT enabled device, but there's no obvious way to pair an Intel Edison through Bluetooth without accessing the shell.







I spent different hours to do something that with Bluez4 took at most 4 minutes, including the research on Google.







Here's what I did.







Edison provides Bluez5 that reworks most of the tools using DBUS, so to make two quite frequent actions, like pairing a device without providing user intervention on the device, and registering a new bluetooth RFCOMM service, you need to interface with it, that isn't so obvious from C or C++.







The second action can be done if bluetoothd is started with legacy support and using the usual sdp service.







Regarding pairing, you must add an agent that responds with a set of fixed responses, like fixed / predictable pin, authorization confirmation and so on.







Bluez5-testtools package provides a simple-agent python script that can be easily modified. It also provides the support script bluezutils.







You can find both on[ this link to GIST](https://gist.github.com/studiofuga/249035dd86e1c7c7bb75). Hope that helps.