3 ms·
Working with Bluetooth on a project last year was a gigantic pain in the ass. Linux support was reasonably good, though with bizarre quirks and changes of tool
by Niksko 10y ago
Working with Bluetooth on a project last year was a gigantic pain in the ass.
Linux support was reasonably good, though with bizarre quirks and changes of tooling between libbluetooth versions. OSX was a total nightmare.
The project is currently stalled because three days before I had to head off (I was doing all of the programming and troubleshooting on the software side) my collaborators decided to inform me that they would be using a different laptop to what they'd been using for the rest of the project, and when we tried our software with that version of OSX and hardware, it refused to work nicely. We eventually came up with a bizarre pairing ritual that involved removing devices, then quickly adding them, and in a specific order, and then that mysteriously stopped working and now I don't have access to hardware to fix it.
Knowing what I now know, if I'd had my time again I would have recommended ESP8266 based boards instead of the LightBlue Beans we were using. Even though one of our requirements was low power usage (which we certainly got through Bluetooth 4), it probably would have been less hassle to just make the WiFi modem sleep for a period and then transmit in bursts.
- BillinghamJ 10y agomacOS/iOS support for Bluetooth is very good at the core API level but ultimately that means you must use Objective-C for at least a small part of your codebase.
- jerluc 10y agoDepending on how much data you need to transfer between the two devices, I'd highly recommend a pair of ZigBee radios for low-bandwidth (<250k), super-low-power applications. Specifically using a pair of XBee (series 1) radios in "transparent" mode, you get what looks like a serial device on either end. When used with a USB dongle, you can simply write your code to use basic ioctl ops on the USB device file, which works well across most POSIX platforms.