title: Sending 20-byte characteristic values with CurieBLE
body: <p>The documentation for <a href="https://www.arduino.cc/en/Main/ArduinoBoard101" rel="nofollow noreferrer">Arduino/Genuino 101</a>'s <a href="https://www.arduino.cc/en/Reference/CurieBLE" rel="nofollow noreferrer">CurieBLE library</a> states the following, in the section &quot;Service Design Patterns&quot;:</p>
  <blockquote>
  <p>A characteristic value can be up to 20 bytes long. This is a key
  constraint in designing services. [...] You could also combine readings into a single characteristic, when a given sensor or actuator has multiple values associated with it.</p>
  <p>[e.g. Accelerometer X, Y, Z   =&gt; <code>200,133,150</code>]</p>
  <p>This is more efficient, but you need to be careful not to exceed the 20-byte limit. The accelerometer characteristic above, for example, takes 11 bytes as a ASCII-encoded string.</p>
  </blockquote>
  <p>However, the typed <a href="https://www.arduino.cc/en/Reference/BLECharacteristicConstructor" rel="nofollow noreferrer">Characteristic constructors</a> available in the API are limited to the following:</p>
  <blockquote>
  <ul>
  <li>BLEBoolCharacteristic</li>
  <li>BLECharCharacteristic</li>
  <li>BLEUnsignedCharCharacteristic</li>
  <li>BLEShortCharacteristic</li>
  <li>BLEUnsignedShortCharacteristic</li>
  <li>BLEIntCharacteristic</li>
  <li>BLEUnsignedIntCharacteristic</li>
  <li>BLELongCharacteristic</li>
  <li>BLEUnsignedLongCharacteristic</li>
  <li>BLEFloatCharacteristic</li>
  <li>BLEDoubleCharacteristic</li>
  </ul>
  </blockquote>
  <p>None of these types of Characteristics appear to be able to hold a 20-byte string. (I have tried the <code>BLECharCharacteristic</code>, and it appears to pertain to a single <code>char</code>, not a <code>char</code> array.)</p>
  <p>Using CurieBLE, how does one go about using a string as a characteristic value, as described in the documentation as an efficient practice?</p>