BLE Central Device Demonstration

This application provides a demonstration use of Bluetooth Low Energy
central device by utilizing TIs BLE CC2540 Evaluation Module and
SesorTags.

By connecting a CC2540 EM board to the EM header on the TM4C129X development
board, the TM4C129X can communicate with the CC2540 by means of
vendor-specific HCI commands using the UART interface. This application can
discover up to three SensorTag devices, it can connect to any one of them,
perform pairing and bonding, read some sensor data and RSSI data from the
slave, and display the information on the LCD display.

This application can discover any BLE device although it may not be
able to make a connection to a device other than a SensorTag/CC2540 as the
bonding process will likely fail due to the use of a default passcode.
We have tested this application with SensorTag and CC2540 Development
boards (SmartRF05EB + CC2540 EM) with the SimpleBLEPeripheral
sample application programmed. It can successfully bond with both boards
since the same default passcode is expected. Both SensorTag and CC2540
devices have BLE Stack 1.4.0 release code programmed.

CC2540 device should be programmed with the HostTestRelease
(Network Processor) application. A hex file containing the this application
can be found in the BLE stack 1.4.0 release under
C:\\...\\BLE-CC254x-1.4.0\\Accessories\\HexFiles\\
CC2540_SmartRF_HostTestRelease_All.hex. Please refer to the Bluetooth Low
Energy CC2540 Development Kit User's Guide for information on how to load
the hex file to the CC2540. This User's Guide can be found in
http://www.ti.com/lit/ug/swru301a/swru301a.pdf

On the TM4C129X development board, make sure that jumpers PJ0 and PJ1
are connected to the "EM_UART" side which allows UART3 TX and RX signals to
be routed to the EM header. UART3 is used as the communication channel
between the CC2540 device and the TM4C129X device.

Once the application starts, it will verify the serial connection by
sending the CC2540 device a vendor-specific HCI command, and waiting for the
expected responses within a short time period. Once the physical connection
between TM4C129X and CC2540 is verified, the device will automatically
start to discover BLE peripheral device. If no devices are found within 20
seconds, the application will timeout and display "No Device Found",
otherwise the discovered device names will be shown on the display.
Touching any of the device names will start the process of establishing a
connection with that device.  This sample application always tries to make
a secure connection by pairing the device with default passcode "00000".
Upon successfully linking and pairing, application will start querying
sensor data, including IR temperature, ambient temperature, humidity and
RSSI.

Whe run inside, IR and ambient temperature should typically be in the low
20s (Celsius).  You can place the SensorTag near a hot object (such as a
cup of coffee) to verify that the IR temperature increases. You can move
the SensorTag further from the TM4C129X development board to verify that
its RSSI reading will decrease.

At any time after the connection is established, you can touch the
"disconnect" button on the bottom of the screen to terminate the
connection with the peripheral device.

In order to make the SensorTag discoverable by a central device, the
SensorTag needs to be in the discovery mode. The LED in the middle of the
board will blink periodically if the SensorTag is in discovery mode. If the
LED is not blinking, pressing the side button on the SensorTag should
place it in discovery mode.  Once it is connected to a central device,
the LED should be off, pressing the side button while it is connected will
terminate the connection and put the SensorTag in discovery mode again.
For more information on SensorTag, please visit
http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag

Every HCI command and event are output to the UART console for
debugging purpose. The UART terminal should be configured in 115,200 baud,
8-n-1 mode.


-------------------------------------------------------------------------------

Copyright (c) 2013-2017 Texas Instruments Incorporated.  All rights reserved.
Software License Agreement

Texas Instruments (TI) is supplying this software for use solely and
exclusively on TI's microcontroller products. The software is owned by
TI and/or its suppliers, and is protected under applicable copyright
laws. You may not combine this software with "viral" open-source
software in order to form a larger program.

THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, FOR ANY REASON WHATSOEVER.

This is part of revision 2.1.4.178 of the DK-TM4C129X Firmware Package.
