TI CC2640R2F Eddystone Beacon

BLE Eddystone Beacon

This project features the Texas Instruments SimpleLink Bluetooth Low Energy CC2640R2F Launchpad  powered by 2xAA batteries to function as Bluetooth Low Energy Eddystone Beacon.

What are Beacons?

Beacons are used to mark important places. They have been used throughout history. A good example of a beacon is a lighthouse. A lighthouse is a tower, building, or other type of structure designed to emit light from a system of lamps and lenses. It serves as a beacon to sea vessels and function as navigational aid.

Similar to a lighthouse, Bluetooth Beacons broadcast identifiers to provide information about a particular place.

Google developed the Eddystone open Beacon format. Any Bluetooth Beacons that uses the Eddystone Beacon format are called Eddystone Beacons. Here below are the types of Eddystone Beacon format.

  • Eddystone-UID: A unique, static ID with a 10-byte Namespace component and a 6-byte Instance component.
  • Eddystone-URL: A compressed URL that, once parsed and decompressed, is directly usable by the client.
  • Eddystone-TLM: Beacon status data that is useful for beacon fleet maintenance, and powers Google Proximity Beacon API’s diagnostics endpoint. -TLM should be interleaved with an identifying frame such as Eddystone-UID or Eddystone-EID (for which the encrypted eTLM version preserves security).
  • Eddystone-EID: A time-varying beacon frame that can be resolved to a stable identifier by a linked resolver, such as Proximity Beacon API.

For this project the TI CC2640R2F Eddystone Beacon will advertise Eddystone-URL packets. Every 10th advertise is a Eddystone-TLM Packet which will consist of Battery Voltage, Temperature, Advertise Packet Count and Running time. The TI CC2640R2F Launchpad does not have temperature sensor and Temperature Value is set at 19.5 Celsius.

At Power On the TI CC2640R2F Eddystone Beacon will go to Configuration Mode. At this state the device is connectable. If there is no connection made within 30 seconds the device will enter Beacon Mode. At Beacon Mode the device is not connectable.

At Configuration Mode you can change Beacon Settings using the Eddystone URL Configuration Service, shown in this video below.

Program: TI CC2640R2F Eddystone Beacon

Note: See, program link README.md for instructions.

Using the Eddystone URL Configuration Service you can also change the Beacon Interval and TX Power. I do not have a Spectrum Analyzer to verify the change in TX Power. An alternative way to verify a change in TX Power is to measure the peak current consumption of a device during Beacon Advertisement. To do this I use a XDS110 Debug Probe plus Energy Trace Add-On.

0 dBM Energy Trace Current Consumption Profile:

0dbmbeacon
7.319 mA Peak Current

5 dBM Energy Trace Current Consumption Profile:

5dbmbeacon
11.721 mA Peak Current

Beacon Advertisement Current Waveform:

advertising

Using Energy Trace I can also get the estimated Battery Life with Beacon Interval = 300 ms and TX Power = 0 dBM. The estimated Battery Life is 4 months and 3 days.

energytrace

Advertisements

Bluetooth Low Energy Game Controller

Slide1

This project features the Texas Instruments SimpleLink Bluetooth Low Energy CC2640R2F Launchpad interfaced to a Educational BoosterPack MKII to function as Bluetooth Low Energy Game Controller.

Hardware Block Diagram:

Slide2

BOOSTXL-BATPAKMKII is used to power up the Bluetooth Low Energy Game Controller. Alternatively you can use 4 AA batteries as power supply.

Project Hardware Modifications:

  • Remove TI CC2640R2F Launchpad R52. This effectively disconnects the LaunchPad’s BPRST header pin from the CC2640R2F device’s RESET_N pin. Then EN1 circuitry of BOOSTXL-BATPAKMKII pulls the signal down to ground which is connected to the TI CC2640R2F BPRST Pin 13. If you are using 4 AA batteries as power supply skip this step.R52
  • Put a 10K Ohm Resistor across R9 of BOOSTXL-BATPAKMKII Rev 1.0. This is fix for the charging issue. Place a jumper at JP6 BIN. If you are using 4 AA batteries as power supply skip this step.IMG_1216
  • Remove 5V and 3V3 jumpers. Move VSENSE jumper from XDS110 Power to External Power. IMG_1207 - Copy
  • BTN1 of Educational BoosterPack MKII is connected to TCK pin of TI CC2640R2F LP BP Connector. The TCK pin at CC2640R2F LP BP Connector is not connected to anything. So to make use of it short it to DIO15.IMG_1224 - Copy
  • BTN2 of Educational BoosterPack MKII is connected to TD0 DIO16 pin of TI CC2640R2F LP BP Connector. To connect DIO16 to CC2640R2F place a wire short at R48 pad. Remove TDO and TDI Jumper.IMG_1225 - Copy
  • Set Educational BoosterPack MKII J5 jumper to 2-3 position. This is so we can set the LCD Backlight to off.IMG_1226

Bluetooth Low Energy Game Controller Inputs:

  • Educational BoosterPack MKII Joystick, BTN1 and BTN2.
  • CC2640R2F Launchpad BTN1 = SELECT, BTN2 = START

The BTN inputs are mapped to HID commands that is for NES Online Games Website.

Software Requirements:

Sending HID Commands Periodically every 80 ms:

The usual format for keyboard reports is the following byte array:
[modifier, reserved, Key1, Key2, Key3, Key4, Key5, Key6]
Key1 = Joystick X
Key 2 = Joystick Y
Key 3 = Educational BoosterPack BTN1
Key 4 = Educational BoosterPack BTN2
Key 5 = CC2640R2F LP BTN1/BTN2

Program: TI CC2640R2F BLE Game Controller

Note: See, program link README.md for instructions.

Bluetooth Low Energy Power Bank

BLE Power Bank

This project features the Texas Instruments SimpleLink Bluetooth Low Energy CC2640R2F Launchpad interfaced to a BOOSTXL-BATPAKMKII to function as Bluetooth Low Energy Power Bank.

With a Bluetooth Low Energy Power Bank you can use a Smart Phone App to see how much charge it has and receive notifications if its charge level has reached a set critical or high level. See, video below.

Bluetooth Low Energy Services:

  1. LiPo Batt Service – Custom Bluetooth Service.
  • Battery Level Critical and High Notifications.

 

Hardware Block Diagram:

BLE Power Bank Block Diagram

Hardware Setup:

IMG_1203

Project Hardware Modifications:

  • Remove TI CC2640R2F Launchpad R52. This effectively disconnects the LaunchPad’s BPRST header pin from the CC2640R2F device’s RESET_N pin. Then EN1 circuitry of BOOSTXL-BATPAKMKII pulls the signal down to ground which is connected to the TI CC2640R2F BPRST Pin 13. Remove 5V and 3V3 jumpers. Move VSENSE jumper from XDS110 Power to External Power.

R52

  • Put a 10K Ohm Resistor across R9 of BOOSTXL-BATPAKMKII Rev 1.0. This is fix for the charging issue. Place a jumper at JP6 BIN.

IMG_1216

Project Software Requirements.

  1. Simplelink CC2640R2 SDK: SDK v1.50.
  2. TI Code Composer Studio 8.0.
  3. SmartRF Flash Programmer 2.
  4. SmartPhone LightBlue IOS App.

Program: TI CC2640R2F BLE Power Bank

Note: See, program link README.md for instructions.

Project Photos:

IMG_1210
CC2640R2F Launchpad, BOOSTXL-BATPAKMKII, 430BOOST-SHARP96
IMG_1209
MOSFET Switch Board

 

 

 

Secure Internet Of Things Humidifier

Secure IOT Humidifier System
Device Connection to WiFi Network

This project features the Texas Instruments SimpleLink™ Wi-Fi® CC3220SF LaunchPad™ with Integrated Security Features as shown below.

Overall Project Features:

  1. Easy connection to CC3220SF Launchpad using SimpleLink™ Wi-Fi® Starter application.
  2. Direct connection to CC3220SF Launchpad set as Access Point.
  3. Easy access to CC3220SF Launchpad using its internal web server.
  4. Demonstrates reading Sensors Booster Pack BME280 humidity and temperature.
  5. Demonstrates setting of desired humidity. If desired humidity is greater than actual humidity, the humidifier will turn on.
  6. Neopixel Ring RGB Led Lights Show upon internet connection.

Hardware Block Diagram:

Secure IOT Humidifier HW Block Diagram
Enter a caption

CC3220SF Launchpad connection to Sensors Booster Pack:

The I2C pins of Sensors Booster Pack is in conflict with the TDO and TDI of CC3220SF Launchpad. Set CC3220SF Launchpad SOP Jumper to 001, to change from 4-wire JTAG Connection to 2-wire JTAG Connection. Remove the CC3200SF Launchpad I2C jumper connection to on-board sensors.

IMG_1130mod1

Overall Pin Compatibility:

pin compatibility

Project Photos:

IMG_1140
NeoPixel Ring 16 RGB Leds
IMG_1132
SeedStudio Grove Water Atomization
IMG_1138
Ultrasonic Transducer Disc
IMG_1135
MSP430FR5969 Launchpad and CC3220SF Launchpad

Program: TI CC3220SF IOT Humidifier

Note: See, program link README.md for instructions.

Program Details:

The program firmware and internal web pages are modified version of the CC3220SF Launchpad Out of Box Demo.

Provisioning Process:

  1. When there is no network profile previously saved at TI CC3220SF Launchpad it will start the provisioning process. If the TI CC3220SF Launchpad is connected to your PC you can see the output at Tera Term that provisioning has been started.teraterm1
  2. Open SimpleLink™ Wi-Fi® Starter application and set your WiFi Network Details.IMG_1128
  3. After successful provisioning your device IP address will be shown.

teraterm2

 

Internal Web Pages:

index
index.html
demo
demo.html
status
settings.html Status Tab
profiles
settings.html Profiles Tab
device
settings.html Device Tab
network
settings.html Network Tab

Project Demo:

 

 

TI CC2640R2F BLE Keyboard

TI CC2640R2F BLE Keyboard
Bluetooth Low Energy Connection to Smart Phone

This project features the Texas Instruments SimpleLink Bluetooth Low Energy CC2640R2F Launchpad interfaced to a USB Keyboard to function as a BLE Keyboard. 

The reference for this project is based from the Bluetooth SMART Keyboard Reference Design which uses a BLE CC2650 board interfaced to Mini Keyboard.

BLE CC2640R2F was used instead since it is able to support BLE 5 Long Range and High Data Rate feature. For a BLE Keyboard application the BLE 5 Long Range feature is desirable. Imagine able to type at your Laptop through BLE Connection at a distance of 400 meters. However, at the moment there is no Personal Computer or Smart Phone that supports BLE 5 Long Range Feature. If that time comes when there are Personal Computers and Smart Phones that are able to support BLE 5 Long Range Feature, then the BLE CC2640R2F Long Range Feature can be enabled through software so this project can become a “TI CC2640R2F Long Range BLE Keyboard”.

Interfacing the USB Keyboard to TI CC2640R2F Launchpad:

I used a Logitech K120 USB Keyboard to interface with TI CC2640R2F Launchpad. I dismantle the Logitech K120 USB Keyboard and remove the USB cable connected to the Keyboard motherboard.

The next step is trace the top and bottom keyboard matrix. The top keyboard matrix has 8 pads connected to the board and. The bottom keyboard matrix has 18 pads connected to the board. For this project at the moment I only aim to output Keyboard Letters and Numbers, which you can see at the Keyboard Matrix Table below are highlighted in green.

Keyboard Matrix
Keyboard Matrix

Then ribbon cable is soldered to the pads of the motherboard. Only half of the pad is in contact with the keyboard matrix. To solder the ribbon cable to the pad, the black conductive material on the pad needs to be scraped off first.

IMG_1058
Keyboard Motherboard Top Side
IMG_1057
Keyboard Motherboard Bottom Side
IMG_1061
Keyboard Motherboard with ribbon cable soldered to the pads
IMG_1062
Assembling the Keyboard with the Ribbon Cable

Overall Pin Compatibility:

TI CC2640R2F LP Pin Compatibility

Keyboard Interfaced to CC2640R2F Launchpad:

IMG_1104
Enter a caption

The TI CC2640R2F Launchpad is powered using Power Bank.

Program: TI CC2640R2F BLE Keyboard

Note: See, program link README.md for instructions.

Program Details:

Using the Key Matrix Data I was able to generate Key Scanning codes from the Bluetooth SMART Keyboard Reference DesignThe Key Scanning Codes are for BLE CC2650. I then port the code to work for HID Emu Kbd Example Program from CC2640R2F SDK Version 1.30.

I used a Iphone 4s for testing because there was some issue pairing with my Windows 10 Laptop. Using LE LightBlue App, I was able to see the BLE Services.

The key pressed from the BLE Keyboard can be seen at the Iphone 4s Notes App.

TI CC2640R2F Play Buzzer Tunes

CC2640R2 SensorTag2
Bluetooth Low Energy Connection to Smart Phone

This project shows how to play buzzer tunes through Bluetooth Low Energy Connection. I used my earlier blog project “TI CC2640R2F SensorTag“, and added playing buzzer tunes functionality. 

Project Hardware Requirements:

  1. TI CC2640R2F Launchpad.
  2. TI Educational BoosterPack MKII.
  3. TI BLE USB Dongle or TI CC2650 Launchpad with Host Test Program.

Program: TI CC2640R2F SensorTag

I added code files sensortag_playtunes.c, sensortag_playtune.h and pitches.h to TI CC2640R2F SensorTag CCS Project.

TI CC2640R2F SensorTag Play Buzzer Tunes:

Buzzer Tunes Credits to:

  • Dung Dang for the Happy Birthday Buzzer Tunes.
  • Dipto Pratyaksa for the Mario Brothers Main Theme and Underworld Tunes.

TI CC2640R2F SensorTag

TI CC2640R2F SensorTag
Bluetooth Low Energy Connection to Smart Phone

This project features the Texas Instruments SimpleLink Bluetooth Low Energy CC2640R2F Launchpad with SensorTag and Key Fob codes ported from BLE Stack 2.2.1.. 

Bluetooth Low Energy Services:

  1. Device Information Service.
  2. Link Loss Service.
  3. Immediate Alert Service.
  4. Tx Power Service.
  5. Accelerometer Service.
  6. Battery Service.
  7. Simple Keys Service.
  8. TI Sensortag 2.0 I/O Service.
  9. TI Sensortag 2.0 Register Service.

Note: Texas Instruments Sensors BoosterPack Plug-In Module will be later on added to this project to have full SensorTag Functionality.

Project Hardware Requirements:

  1. TI CC2640R2F Launchpad.
  2. TI Educational BoosterPack MKII.
  3. TI BLE USB Dongle or TI CC2650 Launchpad with Host Test Program.

Project Software Requirements.

  1. Simplelink CC2640R2 SDK: BLE-STACK V3.0.1 (Support for CC2640R2F)
  2. BLE-STACK V2.2.1 (Support for CC2640/CC2650/CC1350)
  3. TI Code Composer Studio 7.0.
  4. TI SmartRF Flash Programmer 2.
  5. TI BLE Device Monitor.
  6. SensorTag App.

Hardware Setup:

IMG_0809
TI Educational BoosterPack MKII connected to TI CC2640R2F Launchpad

Overall Pin Compatibility:

Overall Pin Compatibility 2

TI CC2640R2F Blogs:

5 need to know facts about the new SimpleLink™ Bluetooth low energy CC2640R2F wireless MCU

How does Bluetooth® 5 increase the achievable range of a Bluetooth low energy connection?

Program: TI CC2640R2F SensorTag

Note: Using SmartRF Flash Programmer 2, you can program the app and stack hex files to your device setup. See, program link README.md for instructions.

Program Details:

The TI CC2640R2F SensorTag Program, are made up of SensorTag and Key Fob codes from BLE Stack 2.2.1 ported to CC2640R2F SDK simple peripheral.

See, CC2640R2 SDK Porting Guide, to learn how to port codes from BLE Stack 2.2.1 to CC2640R2 SDK simple peripheral example programs.

TI SensorTag App:

Note: As of this Blog Post Publishing , the SensorTag App crashes when going to Sensor View. However, the SensorTag App does not crash going to Services.

TI CC2640R2F SensorTag IO:

To activate TI CC2640R2F Launchpad IO, first set Config to “01”, to enable control by remote client. Then set Data to these below settings.

“00” – All IO’s set to OFF
“01” – Blue LED ON
“02” – Green LED ON
“03” – Both Blue and Green LED ON
“04” – Buzzer ON

TI CC2640R2F SensorTag SimpleKeys:

TI CC2640R2F Launchpad Button 1 and Button 2, presses are passed on the SimpleKeys BLE Service.

TI CC2640R2F SensorTag Immediate Alert:

Immediate Alert is triggered by setting Link Loss Alert Level to either “01” or “02”. Then set Immediate Alert to “01” for Low Alert or “02” for High Alert.

TI CC2640R2F SensorTag Link Loss Alert:

Set the Link Loss Alert Level to either “01” or “02”. Then remove link to Bluetooth Device. In this case, I removed the TI BLE USB Dongle. When connection timeout is reached, Link Loss Alert is triggered.

I think, I learn, I create