BM71 GAP Peripheral Demo (Making Connections)


This lab exercise will have you configure, then explore, GAP discovery and connection procedures on a BM71 configured as a GAP Peripheral, using a BM-71-PICtail board.

You will:

  • Configure key static module configuration settings using the UI Configuration Tool (Device Name, Pinout, Operation Mode, Default ADV & SCAN_RSP packet payload data & interval, LED0 etc…)
  • Dynamically trigger GAP Discovery modes/procedures via BM71 OP codes using the Manual Pattern Test Tool
  • Interact with the board using a Smartphone App


Hardware Tools

  • BM71 PICtail
  • Android Smartphone (Lab tested with BLU Advance 5.0).
    • OS version 4.4 or higher
    • BT 4.0 or higher hardware
  • Apple Smartphone
    • OS version 5 or later
    • BT 4.0 or higher hardware

This lab uses a BM71 PICtail with version 1.06 of the firmware. If you don't have v1.06 (or, are unsure which version you do have), go to the BM71 Firmware Upgrade page to update your BM71 module.

Software Tools

Be sure to install the MCP2200 USB drivers before starting. Also, download/extract the UI Configuration Tool as well as the Manual Pattern Test Tool to your PC using the links above.

 Connection Diagram


Manual Pattern Flow Chart

For this example, the BM71 is configured to operate in Manual Pattern Mode (i.e. a Generic BLE Link Controller). The following flow chart depicts the operation:



Peripheral Configuration


Place the Module in Test Mode

After connecting the PICtail to your PC using the supplied USB cable, place the module in Test Mode by setting SW7 in the ON position, then press SW5 (Reset) to reset the module. Also ensure the jumpers are all set as shown:


With Jumper JP8 shorted, LED0 will be lit (BLUE) indicating the module is in Test Mode, as shown above.


Launch the User Interface (UI) Configuration Tool

Open the BLEDK3 User Interface (UI) Configuration Tool and load the default BM71 configuration file: IS1871SF_102_BLEDK3_UI v100.132(BM71) default.txt


"Default" BM71 Configuration Files are located in the root folder where the UI Config Tool is installed.

Select Edit and ensure that the BLEDK radio button is checked and that BM71 is the device selected under the Main Feature window. Then press OK.


System Setup Tab


Change Device Name

In the Device Information box, set the Name Fragment to lab2p-XXXX where XXXX are the last 4 digits of the BM71 MAC address. This identifier will become the GAP Service Device Name characteristic, as well as the Local Name identifier during advertising.


This Lab exercise was developed for a classroom environment having many radios. Appending the last four digits of the MAC address to the Device Name aids in identifying a specific board during the general discovery process.

The device name should be unique. Also, since the advertising packet is pretty small (31 byte max. payload), suggest you limit the name ID to fewer than 8 characters (i.e. for the 10-character device name shown, if you try to add a 16-byte private service to the ADV payload, you will get an error message).



Scroll down to the Uart Setting box, then select the pull-down to disable this feature as shown.


When enabled, this feature places the module into a lower power operating mode, shutting off its UART RX operation. The host MCU needs to drive this pin low for at least 3 ms before sending the next packet to the module, as shown:



Configure Manual Pattern (BLE GATT) Operation Mode

In the Operation Mode Setting box, select Manual Pattern as shown.


Click OK to the pop-up dialog box that follows.


Click Next to proceed to the next tab.

System Setup2 Tab


GPIO Configuration

In the GPIO Configuration box, ensure the GPIO pin radio button settings are left at default settings as shown below.


Click Next to proceed to the next tab.

LE Mode Setup Tab


ADV Packet Interval

In the LE Advertising Setting box, set the ADV packet interval, here referred to as LE Fast Advertising Interval, to 100 ms by writing 0x00A0 in the field as shown below.


LE Fast Advertising Timeout & LE Reduced Power Interval/Timeout parameters are only used for Auto-Pattern Mode operation

Leave the remaining parameters as-is.


ADV Packet Payload

In the Advertising Data Setting box, ensure the Complete Device Name and Flag are included in the payload. (The GAP Device Name characteristic will automatically be included in the ADV packet as the Local Name).


This tab sets the default (static) ADV_IND type advertising packet payload, which is issued when the BM71 is operating in GAP General Discoverable mode. ADV types and parameters may be changed dynamically via op-code 0x13 (Set_Advertising_Parameter).


SCAN_RSP Packet Payload

In the Scan Response Data Setting box, ensure that Tx Power is enabled for the payload.


A SCAN_RSP packet is returned to a Scanner who has issued a SCAN_REQ packet. These packets provide additional information to a Scanner/Central device.

The remainder of the settings are left at their defaults.


Write Settings

Press Finish.


To program these settings into the BM71 module click on Write, select the COM port you are using and press Write again.


On the window that pops up, click Yes and lastly, OK as shown above.

Close the UI Configuration Tool.

GAP Discovery & Connection

Discovery means:

  • Put the Peripheral in General Discoverable Mode (start Advertising)
  • Trigger the Central to initiate the General Discovery Procedure (Scanning)

Connection means:

  • Central runs a general Connection Establishment Procedure (scan/select a peripheral based on certain criteria, then initiate a direct connection establishment procedure)


Place the Module in Application Mode

Move dip-switch SW7 to the OFF position (1) and reset the module by pressing SW5 (button immediately above dip-switch).



Launch the Manual Pattern Test Tool

Open the Manual Pattern Test Tool, and connect to the COM port associated with the board.



Command and Response

Verify the connection by sending a Read Local Information packet using the Common tab.


If COM port connection was successful, you should see results similar to the following Log View and Local Information windows:


Log View does not display packet delimiter (0xAA) or checksum values on out-going or in-coming packets

Analysis of the “Read Local Information” (0x01) command packet:


Analysis of the “Read Local Information” (0x01) event packet:



Mode of Operation

Verify the BM71 state/mode of operation by sending a Read BLEDK3 Status packet using the Common tab.


The module should be on Idle mode.


Advertising Overview (BM71)


Set Advertising Data

On BM71, the ADV interval, as well as ADV_IND and SCAN_RSP payload data can be set statically (using the UI Configuration Tool) and dynamically (via command op-codes/packets).

Since we’ve set an appropriate ADV_IND Interval, as well as ADV_IND and SCAN_RSP payload data using the UI Configuration Tool (steps 7 thru 9 above), we will not need to update them dynamically via the Manual Pattern evaluation tool below.

If you need to update ADV and SCAN_RSP payload data dynamically, select the ADV / SR Data tab and set advertising and scan response data payload. Then, pressing Update will issue GAP Command Opcode 0x11 (Write_Adv_Data) to update the payload data sent during advertising (standby) mode:


If you need to update ADV Interval dynamically, GAP op-code 0x13 (Set_Adv_Parameter) may be used to dynamically alter the ADV interval:


On a BM71 Reset, the ADV interval, as well as ADV_IND and SCAN_RSP payload data will revert back to those settings made in the UI Configuration Tool, and saved to non-volatile configuration memory. Any dynamic changes (made via command op-codes/packets) will be lost.

Put the BM71 Peripheral in General Discoverable Mode


Begin Advertising

All GAP operations are controlled via the GAP tab

Select the GAP tab and Opcode 0x1C: (Set Adv Enable). Select Standby Mode parameter 0x01: (Enter Standby Mode). Finally, press Send as shown:


You should see the following indicators of success:
BT Status will show 0x03: (Standby Mode)


Blue LED (P2_0/LED) will blink once every 3 seconds (default setting - configurable via UI Config Tool):


You should also see the peripheral’s Local Name displayed in the Smart Discover App, along with RSSI & ADV Interval (Android):



Connect to the BM71 Peripheral using SmartDiscover App

In the scan list, select the BM71 device you wish to connect to by tapping on it.

You should see the following indicators of success:

BT Status will show 0x0C: (BLE Connected Mode) and LE Connection Information (provided by the Central) is also provided.


Blue LED (P2_0/LED) will blink twice every 1.5 seconds (default setting -configurable via UI Config Tool):


In SmartDiscover, the default services will have been enumerated, and the ADV and SCAN_RSP data displayed for the device:



Disconnect from the BM71 Peripheral using SmartDiscover App

In the SmartDiscover app, disconnect from the device by tapping DISCONNECT.

You should see the following indicators of success:

BT Status will show 0x09 (Idle Mode):


Blue LED (P2_0/LED) will stop blinking:



A GAP Peripheral device needs to setup

  • ADV payload data
  • SCAN_RSP payload data
  • Advertising interval
  • BM71 parameters may be modified statically or dynamically:
    • Statically: Using the UI Configuration Tool, or via Direct-write to configuration non-volatile memory.
    • Dynamically: Via op-codes/packets send to the module

20th Annual
Microchip MASTERs Conference 2016
Register now - Deadline: July 29

JW Marriott Desert Ridge Resort-Phoenix, AZ

© 2016 Microchip Technology, Inc.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.