BLE010 CC2640S1 – Docs – FWVer101 – Rev 20180823 1500

BLE010 Firmware Ver 101 Revision 20180823 1500
– Time Limited Demo Firmware released 20180823


GATT Characteristics

Generic Access Service UUID 0x1800
UUID 0x2A00 – Device Name – utf8s *
UUID 0x2A01 – Appearance – Enumeration
UUID 0x2A04 – Peripheral Preferred Connection Parameters

Generic Attribute Service UUID 0x1801
UUID 0x2A05 – Service Changed

Device Info Service UUID 0x180A
UUID 0x2A24 – Model Number (BLE010)
UUID 0x2A25 – Serial Number (UUID 0xFFFE – Device ID Number) *
UUID 0x2A26 – FW Rev ID (YYYYMMDD_HHMM)
UUID 0x2A27 – HW Rev ID (PCBV_R__ HWV_R__)
UUID 0x2A28 – SW Rev ID (FURZY101)
UUID 0x2A29 – Manufacturer Name ID (www.furzy.com)

Sensor Service UUID 0xFFC0

UUID 0xFFC1 = TI HDC2010 – Read
[0] Status
[1][2] Temperature RAW – Little Endian
[3][4] Humidity RAW – Little Endian
[5] Temperature Offset Signed 0.1deg/LSB **
[6] Humidity Offset Signed 0.1%RH/LSB **

UUID 0xFFC2 = Bosch BME280 – Read
[0] Status
[1][2] Temperature Processed – Little Endian – 1LSB = 0.1degC, 500 = 0degC
[3][4] Humidity Processed – Little Endian – 1LSB = 0.5%RH
[5][6] Pressure Processed – Little Endian – 1LSB = 10Pa
[7] Temperature Offset Signed 0.1degC/LSB **
[8] Humidity Offset Signed 0.1%RH/LSB **
[9] Pressure Offset Signed 5Pa/LSB **

UUID 0xFFC3 = VBatt Opto – Read
[0] Battery Voltage – Scaled for 0V-3V3 => 0x00-0xFF (ie 1LSB = ~12.94mV)
[1][2] Opto ADC Conversion – Little Endian

UUID 0xFFC4 = SensorSamplePeriod – Read/Write
[0][1] Sensor Sample Period in 10ms – Little Endian – (range limited to 500ms to 600s)

UUID 0xFFE1 = Advertising Timing – Read/Write
[0][1] Advertising Time Non Connectable in ms – Little Endian – (range limited to 100ms to 10sec)
[2][3] Advertising Timeout Connectable in ms – Little Endian – (range limited from 5sec to 30sec)
[4][5] Auto Start Advertising Connectable Period – Not implemented in Demo

UUID 0xFFE2 = Led Timing – Read/Write
[0][1] Led Green Advertising Flash Period in ms – Little Endian – range limited to 100ms to 60secs – 0x0000 = OFF, 0x0001 = in sync with advertising
[2][3] Led Green Flash ONTime in ms – Little Endian – range limited 10ms to 500ms

UUID 0xFFFE – Device ID Number – Read/Write *
[0][1][2][3] Used for the Serial Number – Little Endian – Base64 expected – ‘A’ – ‘/’
– Demo limited to 0001 to 0009
– Power Cycle reset back to 0001

Notes

* The Device ID Number is four Base64 digits.
This is used in the UUID 0x2A00 – Device Name, UUID 0x2A25 – Serial Number, and is present in the Advertising Data in the Complete Local Name.
The demo firmware allows 0001 – 0009, enabling a small network of up to 9 devices for a Demo.
This enables identification of individual sensors in systems where devices are identified by a UUID (eg iOS phone / tablet) rather than the device address.
** The offsets are not used by the firmware. They provide a location for storing an offset.

Use an App such as nRF connect to view the GATT table.
Contact if you have any questions after using an App such as nRF.

The Sensor Sampling is synchronised to the advertising. When the accumulation of Advertising Periods exceeds the Sample Period, the sensors are sampled and the accumulation restarts from ZERO.
The setup is intended for where the advertising period is smaller than the sensor sampling period, for example a 2 second advertising period with a 6 second sensor sampling period, the sensors are samples every 3rd advertisment.

Similarly for the Green Led Flash timing.


Advertising Data 

Advertising Payload – GAP Type 0x01 – Flags
Advertising Payload – GAP Type 0x09 – Complete Local Name
[0]..[4] = “FURZY”
[5]..[7] = Firmware Version – Little Endian Byte Order = “101”
[8]..[11] = Device ID Number – Little Endian Byte Order – Base64 – eg “2000”
Advertising Payload – GAP Type 0xFF – Manufacturer Specific Data
[0] = Manufacturer Specific ID – Low Order Byte – 0xFE
[1] = Manufacturer Specific ID – High Order Byte – 0xFF
[2] = Status Nibble (High Order Nibble) : Content ID nibble (Low Order Nibble)
[3]..[11] see Content ID to determine fields
Advertising Payload – GAP Type 0xFF – Manufacturer Specific Data
Content ID Nibble = 0x1
[2] = Status : 1
[3] = Battery Voltage – Scaled for 0V-3V3 => 0x00-0xFF (ie 1LSB = ~12.94mV)
[4][5] = OPTO (Little Endian Byte Order) – ADC conversion
[6][7] = Tempertaure BME280 1LSB = 0.1degC, 500 = 0degC (Little Endian Byte Order)
[8][9] = Humidity BME280 1LSB = 0.5%RH (Little Endian Byte Order)
[10][11] = Pressure BME280 1LSB = 10Pa (Little Endian Byte Order)
Advertising Payload – GAP Type 0xFF – Manufacturer Specific Data
Content ID Nibble = 0x0
[2] = Status : 0
[3] = Battery Voltage – Scaled for 0V-3V3 => 0x00-0xFF (ie 1LSB = ~12.94mV)
[4,5] = OPTO (Little Endian Byte Order) – ADC conversion
[6,7] = Tempertaure (Little Endian Byte Order) HDC2010 RAW Sensor Reading
[8][9] = Humidity (Little Endian Byte Order) HDC2010 RAW Sensor Reading
[10][11] = Operating Time Accumulator (1/2 hr increments)

EvoThings App FurzyBLE _