ADS1115 + RFduino
From TAMI
We are using the ADS1115 with an RFDuino (github)
Using Adafruit_ADS1X15 and trying to fix it's quirks here.
TODO (just a snapshot)
- do and document setup of RFDuino on fedora
- why does reading single ended results depend on order for RFduino and not for Uno?
- try with Uno
- use the RDY bit (writing special values to threshold hi and lo)
- use two with different addresses on the same I2C bus
- read the Wire library (I2C) and figure out difference between two RFduino and Uno implementations
Python serial for windows
- install python 2.7.6: 32 bit and 64
- install python serial library: 32 (no 64 on http://pyserial.sourceforge.net/)
BLE on linux
- Implemented GAP/GATT over L2CAP using bluez but didn't provide code: http://support.plugable.com/plugable/topics/bluetooth_low_energy_and_bluez5
- 2011 note @bluez saying it works, no examples http://www.bluez.org/bluez-low-energy-support-status/
- Finally some C examples http://people.csail.mit.edu/albert/bluez-intro/c404.html
- Bstack, dual licensed commercial/non commercial https://code.google.com/p/btstack/wiki/BLE
GATT ; Just saying
yum install d-feet (bluez uses dbus)
Some more links
- socket level tutorial, not LE specific: http://www.drdobbs.com/mobile/using-bluetooth/232500828
- stackoverfloweth
- http://www.spinics.net/lists/linux-bluetooth/msg29684.html
google "bluetooth GATT"
RFduino and Linux
Important lessons:
- You must advertise whenever you are not connected.
- If you don't advertise connections fail. Mysteriously they succeed sometimes as attested by gnome-shell but fail when using the gatttool in bluez 5.13
[E5:36:78:90:4D:E4][LE]> char-desc handle: 0x0001, uuid: 2800 handle: 0x0002, uuid: 2803 handle: 0x0003, uuid: 2a00 handle: 0x0004, uuid: 2803 handle: 0x0005, uuid: 2a01 handle: 0x0006, uuid: 2803 handle: 0x0007, uuid: 2a04 handle: 0x0008, uuid: 2800 handle: 0x0009, uuid: 2803 handle: 0x000a, uuid: 2a05 handle: 0x000b, uuid: 2902 handle: 0x000c, uuid: 2800 handle: 0x000d, uuid: 2803 handle: 0x000e, uuid: 2221 handle: 0x000f, uuid: 2902 handle: 0x0010, uuid: 2803 handle: 0x0011, uuid: 2222 handle: 0x0012, uuid: 2803 handle: 0x0013, uuid: 2223 Discover descriptors finished: No attribute found within the given range [E5:36:78:90:4D:E4][LE]> sec-level sec-level: low [E5:36:78:90:4D:E4][LE]> mtu Usage: mtu <value> [E5:36:78:90:4D:E4][LE]> characteristics handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb handle: 0x0009, char properties: 0x20, char value handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb handle: 0x000d, char properties: 0x12, char value handle: 0x000e, uuid: 00002221-0000-1000-8000-00805f9b34fb handle: 0x0010, char properties: 0x0c, char value handle: 0x0011, uuid: 00002222-0000-1000-8000-00805f9b34fb handle: 0x0012, char properties: 0x0c, char value handle: 0x0013, uuid: 00002223-0000-1000-8000-00805f9b34fb [E5:36:78:90:4D:E4][LE]> char-write-req 1 1 Error: Invalid value [E5:36:78:90:4D:E4][LE]> char-write-req 2 1 Error: Invalid value [E5:36:78:90:4D:E4][LE]> char-write-req 3 1
TI Sensor Tag
Broadcom chipset & SDK
The RFduino BLE chipset - Nordic
Bluetooth Adopted Specifications (aka the spec)
Beware, 2600+ pages
USB BLE Dongles (aka Bluetooth 4.0+)
- Configuring the BT800 in Linux and Android: @lairdtech