| BlueNRG-1 DK: BLE examples

- Main Page
- Modules
- Files

- File List

BLE_RC_main.c File Reference

This example shows a simple remote control application (like an attuator). More...

Go to the source code of this file.

## Detailed Description

This example shows a simple remote control application (like an attuator).

# ATOLLIC project

To use the project with ATOLLIC TrueSTUDIO for ARM, please follow the instructions below:

1. Open the ATOLLIC TrueSTUDIO for ARM and select File->Import... Project menu.
2. Select Existing Projects into Workspace.
3. Select the ATOLLIC project
4. Select desired configuration to build from Project->Manage Configurations
5. Select Project->Rebuild Project. This will recompile and link the entire application
6. To download the binary image, please connect STLink to JTAG connector in your board (if available).
7. Select Project->Download to download the related binary image.
8. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

# KEIL project

To use the project with KEIL uVision 5 for ARM, please follow the instructions below:

1. Open the KEIL uVision 5 for ARM and select Project->Open Project menu.
2. Open the KEIL project `...\Project\BLE_Examples\BLE_RC\MDK-ARM\BLE_RC.uvprojx`
3. Select desired configuration to build
4. Select Project->Rebuild all target files. This will recompile and link the entire application
5. To download the binary image, please connect STLink to JTAG connector in your board (if available).
6. Select Project->Download to download the related binary image.
7. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

# IAR project

To use the project with IAR Embedded Workbench for ARM, please follow the instructions below:

1. Open the Embedded Workbench for ARM and select File->Open->Workspace menu.
2. Open the IAR project `...\Project\BLE_Examples\BLE_RC\EWARM\BLE_RC.eww`
3. Select desired configuration to build
4. Select Project->Rebuild All. This will recompile and link the entire application
5. To download the binary image, please connect STLink to JTAG connector in your board (if available).
6. Select Project->Download and Debug to download the related binary image.
7. Alternatively, open the BlueNRG1 GUI, put the board in bootloader mode and download the built binary image.

## Project configurations

- `Release` - Release configuration

# Boards supported

- `STEVAL-IDB007V1`

# Power configuration settings

STEVAL-IDB007V1
Jumper name |  | Description
JP1 | JP2 |
ON 1-2 | ON 2-3 | USB supply power
ON 2-3 | ON 1-2 | The supply voltage must be provided through battery pins.
ON 1-2 |  | USB supply power to STM32L1, JP2 pin 2 external power to BlueNRG1

# Jumper settings

STEVAL-IDB007V1
Jumper name | Description
JP1 | 1-2: to provide power from USB (JP2:2-3). 2-3: to provide power from battery holder (JP2:1-2)
JP2 | 1-2: to provide power from battery holder (JP1:2-3). 2-3: to provide power from USB (JP1:1-2). Pin2 to VDD to provide external power supply to BlueNRG-1 (JP1: 1-2)
JP3 | pin 1 and 2 UART RX and TX of MCU. pin 3 GND.
JP4 | Fitted: to provide VBLUE to BlueNRG1. It can be used also for current measurement.
JP5 | Fitted : TEST pin to VBLUE. Not fitted: TEST pin to GND

# Pin settings

PIN name | STEVAL-IDB007V1
ADC1 | Not Used
ADC2 | Not Used
IO0 | Not Used
IO1 | Not Used
IO11 | Not Used
IO12 | Not Used
IO13 | Not Used
IO14 | Not Used
IO2 | Not Used
IO3 | Not Used
IO4 | Not Used
IO5 | Not Used
IO6 | Not Used
IO7 | Not Used
IO8 | Not Used
TEST1 | Not Used

# Serial I/O

The application will listen for keys typed and it will send back in the serial port. In other words everything typed in serial port will be send back.

Parameter name | Value | Unit
Baudrate | 115200 [default] | bit/sec
Data bits | 8 | bit
Parity | None | bit
Stop bits | 1 | bit

# LEDs description

LED name | STEVAL-IDB007V1
DL1 | Led under remote control
DL2 | Led under remote control
DL3 | Led under remote control
DL4 | Not Used

# Buttons description

BUTTON name | STEVAL-IDB007V1
PUSH1 | Not Used
PUSH2 | Not Used
RESET | Reset BlueNRG1

# Usage

This demo shows how to control a remote device (like an attuator) using BlueNRG-1.

The device is connectable and exposes a characteristic used to control the LEDs (LED1, LED3) on the eval board. The value of this characteristic is a bitmap of 1 byte. Each bit controls one of the LEDs: bit 0 (i.e. the least significant bit) is the status of LED1 (1 for LED ON, 0 for LED OFF), while bit 2 is the status of LED 3. Hence, a remote device can connect and write this byte to change or read the status of these LEDs. The peripheral will disconnect after a timeout (DISCONNECT_TIMEOUT), to avoid a central to be always connected to the device. By default no security is used, but it can be enabled with ENABLE_SECURITY (see BLE_RC_main.h). When security is enabled the central has to be authenticated before reading or writing.

In addition, this application periodically send broadcast data (like temperature) that can be read by any device. The broadcast data is encapsulated in a manufacturer specific AD type. The content (besides the manufacturer ID, i.e. 0x0030 for STMicroelectronics) is:

byte 0 | byte 1, byte 2
App ID (0x05) | Temperature (little-endian)

Temperature is given in tenths of Celsius degree.

To use this example, build and download the firmware in one of the supported boards. Use a BLE device (another BlueNRG-1 or any SMART READY device), to scan and see broadcast data. To control one of the LEDs, just connect to BlueNRG and write into the exposed characteristic. The characteristic is identified with a 128bit UUID. Service UUID is ed0ef62e-9b0d-11e4-89d3-123b93f75cba. The characteristic UUID is ed0efb1a-9b0d-11e4-89d3-123b93f75cba.

Definition in file BLE_RC_main.c.