5 ms·
What I want is one with included Bluetooth LE so that it can easily talk to smartphones.
by megablast 11y ago
What I want is one with included Bluetooth LE so that it can easily talk to smartphones.
- mschuster91 11y agoFuck BTLE. It's a nightmare to work with. Complex, extremely sparsely documented, and the Linux bluetooth stack is a PITA - not to mention that the BTLE part of BlueZ is ENTIRELY undocumented and you have to be really lucky to catch a bluez dev on IRC. I wonder how all the cheap-ass Android device makers get BT(LE) running... or wait, often they don't and the user is screwed...
- asimuvPR 11y agoI understand the anger, but could you provide more information? Thanks! :)
- tdicola 11y agoGo to www.bluez.org and try to figure out how to use BLE. Like how to scan for BLE devices, connect to one and read its GATT, interact with characteristics, etc. Bonus points try to figure out how to do it using their APIs and not command line tools. Good luck! (here's a hint, I hope you like dbus)
- asimuvPR 11y agoZeus! You are right. I'm going to try and get in touch with them to see if we could collaborate and improve documentation.
- tmuir 11y agoI do embedded development, and BLE is just another stack. It's actually very well documented in the official Bluetooth Core Specification. It's thousands of pages long, but it's a big stack with lots of layers and protocol. Just like any networking stack, there's a decent learning curve, but its not like it requires any fundamental tool foreign to firmware development. On the other hand, your average arduino tinkerer has been handed so much abstraction of low level details, learning BLE, at least on the device side, would be a tall task. Specific implementations of stacks and sdks will obviously vary in quality and documentation. On the device side, Nordic does a very good job with tools and documentation for their parts. There are several companies that make modules with nordic parts and provide libraries and example projects. I've also used noble, which is a node js module that allows you discover and connect to devices. On a Mac, all you need is Xcode.
- asimuvPR 11y agoThank you. You make some good points. I've kept myself from touching BLE too much in favor of wifi and zigbee. I'll give noble a try on my mac. :)
- tmuir 11y agoYou should seek out a primer of the general architecture. Its definitely a departure from IP networking. Here's a brief overview: Devices advertise their presence when they are not connected. The usual connection is one device to one client, although multiple simultaneous connections are possible. Clients can look at advertisement data to see what services the device offers. Once a client connects to a device, it can interrogate the device further. A BLE device makes multiple pieces of data available individually, called characteristics. So if your device had a heartrate sensor and a battery, your bluetooth profile would likely have a heart rate characteristic and a battery level characteristic. A client that connects to this device could discover these characteristics, and read/write them, as well as set up notifications, so the device can asynchronously send the client data. An IP based system treats its connection as a single pipe, whereas in a BLE system, on top of a single physical connection, you effectively plumb a separate pipe to each piece of information you make available to the client. Each characteristic has its own read and write callbacks, and each characteristic can be individually customized with things like read write notify permissions, data type, description, etc.
- Already__Taken 11y agoI just started a little BLE work to get into things. I've found it really odd there's a definitive list[1] of services that can be advertised. Why is it not just a specified key/value to advertise? Like "Health Thermometer" is crazy specific. [1]: https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx https://developer.bluetooth.org/gatt/services/Pages/Services...
- tmuir 11y agoYou can make custom services and characteristics. The nice thing about standard services is that 3rd party apps that know how to interact with those services can work out of the box.
- megablast 11y agoHow else should I communicate with a smartphone?
- danellis 11y agoUltrasonics!
- rch 11y agoThe LoPy is about the same size, and is shipping with LoRa, Wifi, and BLE on board. http://www.pycom.io/solutions/py-boards/lopy/ http://www.pycom.io/solutions/py-boards/lopy/
- jdietrich 11y agoCheck out the Nordic nRF51-Dongle. https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/ https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/
- Coko 11y agoI was looking for exactly this before and found the LightBlue Bean by PunchThrough, (https://punchthrough.com/bean https://punchthrough.com/bean). The documentation is a bit on the weak side, but it's small, easy to use, and low-power (~1.3mA @ 3V connected, ~0.2mA advertising)! I recently used one to make a BLE smartwatch that uses my iPhone as a network connection (http://workhardanywhere.com/smartwhatch http://workhardanywhere.com/smartwhatch)
- adunk 11y agoAlthough this is pretty far away from the Arduino-style boards, you may want to have a look at the Sensortag from Texas Instruments: http://www.ti.com/sensortag http://www.ti.com/sensortag It is based on a single-chip wireless microcontroller that has both support for both BLE and IEEE 802.15.4 (6lowpan/ZigBee). It is supported by the Contiki OS (http://www.contiki-os.org/ http://www.contiki-os.org/). The learning curve is probably quite a bit steeper than that of an Ardiuno, but the board and the chip can be readily included in commercial products. There are reference designs with design files, BOMs, schematics available from TI. Since it has both BLE and 6lowpan support, you can do some pretty nice things with it, such as providing both quick discovery via smartphones and secure remote access: http://www.thingsquare.com/blog/articles/proximity-control/ http://www.thingsquare.com/blog/articles/proximity-control/
- hatsunearu 11y agoCheck this out! http://www.cypress.com/documentation/development-kitsboards/cy8ckit-142-psoc-4-ble-module http://www.cypress.com/documentation/development-kitsboards/... FCC Certified, how neat! It's got a tiny CPLD on it with programmable analog routing logic as well (DACs, ADCs, op amps). I was trying to use one of these to drive my Nixie Tube Clock and using the CPLD to do the multiplexing in hardware but I accidentally touched 12V on one of the pins and it blew up :(