I am trying to send sensor orientation in quaternions (from a BNO055 sensor) over BLE.
From reading the CurieBLE (https://www.arduino.cc/en/Reference/CurieBLE) reference page to be efficient I want to send all 4 double components (qW,qX,qY,qZ) as a string. this is also advantageous for me on the on the client end of my bluetooth connection because it is easier to convert string to float than vice versa. The problem is that because each quaternion component could be 5 characters ("-0.00") all four together with commas this string could be too large for the BLE 20 byte limit.
So my idea is now to send them as two seperate strings.
But the real question I have is how can you define a characteristic as a string using the ArduinoBLE library? I noticed that BLECharCharacteristic is a keyword but not BLEStringCharacteristic. If anyone knows any info about how to do this or has tips or a better way to send out orientation over BLE I would really appreciate it.
Could you please open an issue on Github to request this feature?
Please note, Arduino BLE supports characteristic values of 512, the limit of 20 only applies to CurieBLE.
For those interested in following this, there some activity on GitHub:
- Issue: https://github.com/arduino-libraries/ArduinoBLE/issues/4 (https://github.com/arduino-libraries/ArduinoBLE/issues/4)
- Pull Request: https://github.com/arduino-libraries/ArduinoBLE/pull/5 (https://github.com/arduino-libraries/ArduinoBLE/pull/5)