RFduino Testing with Linux

# BLE on linux is suppose to use the DBUS API, but since bluez developers
# have not documented the API, most people resort to using the CLI gatttool.

# The RFduino BLE currently can only be used as a peripheral device.
# The RFduino Service UUID is 2220.
# It uses three charactertics with UUIDs; 2221, 2222, 2223
# All sketches communicate via the DATA out buffer and DATA in buffer.
# The content type of the DATA buffer is not discoverable and each application
# requires the arduino sketch and the client APP to have pre-knowledge
# of the contents schema of the DATA buffers.
# UUID 2221 (handle 0x000e) represents the sending DATA buffer on the RFduino.
# UUID 2222 (handle 0x0011) represents the receiving DATA buffer on the RFduino.
# UUID 2223 (handle 0x0013) is a receiving buffer. It's use is yet unknown to me. 
# The actual handle for the sending DATA buffer is 0x000e.
# The actual handle for the receiving DATA buffer is 0x0011. 
# NOTE: RFduino needs the random flag for some reason.
# Something like...
# gatttool -b <BLE_MAC> -t random -I 

In this experiment I want to send RGB values to the RFduino and I want them to be persistant.

I modified RFduino's example sketch ColorWheel.ino. Their example turns on the RGB LEDs upon connecting. And turns them off upon disconnecting. Since I want to send a RGB value that I expect to not go away, I comment out their code. Also upon connecting I don't want a sudden flash of all the LEDs before changing to my new settings, so I comment out that code as well.

myRGB.ino myRGB.ino

Here is an example of using Python scripting to get RGB data using 'curses' and send it to the RFduino using gatttool. Change the suffix from .pyt to .py after downloading.

Usage is myRGB.py XX:XX:XX:XX:XX:XX where the XXs is your RFduinos MAC address.

myRGB.pyt myRGB.pyt
Other RFduino Projects