BM70 Transparent UART Demo (Smartphone)

Last modified by Microchip on 2023/11/09 09:03

Objective

The first part of this lab exercise shows how to transfer data via a Transparent universal asynchronous receiver/transmitter (UART) service using an iOS smartphone. The second part of the lab uses Microchip's Smart Discover app to connect to the BM70 module and briefly discusses how you can configure LED1 on the PICtail to indicate different BLEDK3 statuses (Standby, Connected, etc.).

You will:

  • Configure the BM70 module to be used in Auto Pattern mode.
  • Use the Bluetooth Smart Data app to communicate with the module via the Transparent UART service.
  • Learn how to configure the blink rate of LED1 on the BM70 PICtail to indicate different BLEDK3 statuses.

Back to Top

Reference Materials

Hardware Tools

This lab uses a BM70 PICtail™ board with version 1.06 of the firmware. If you don't have v1.06, go to the "Firmware Update for the BM70 Bluetooth® Low Energy (BLE) Module" page to update your BM70 module.

  • Apple Smartphone
    • iOS version 5 or later
    • BT 4.0 or higher hardware

Software Tools

Be sure to install the MCP2200 USB drivers before starting. Also, download/extract the UI Configuration Tool to your PC using the link above. Lastly, make sure you have installed the Bluetooth Smart Data (iOS) and the Smart Discover app on your smartphone.

Back to Top

Auto Pattern Mode State Machine

Auto Pattern Mode State Machine

The picture above represents the basic flow chart for the Auto Pattern Mode state machine. After the device is powered on, it will enter the Standby State which means that the BM70 module is discoverable and connectable to a peer device. Then, it can enter the Link State, which means that the BM70 module is connected to a peer device and is exchanging data. This state also processes how the device responds if disconnected. Lastly, it will enter the Shutdown State.

Back to Top

Procedure

Connect to BM70

Connect the BM70 PICtail to your PC. Ensure the jumpers are set as shown.

BM70 PICtail connected to your PC

COM Port

Open the Device Manager window by going to Start Menu > Control Panel > Hardware and Sound and then select 'Device Manager'. Once open, check which COM Port has been assigned to the BM70 PICtail. In this case, it is COM18. Please note that yours will probably be different.

Device Manager window showing COM port

Test Mode

Place the module in Test Mode by setting SW7 in the ON position, then press Reset (SW5) to reset the module.

BM70 module in Test Mode

The module's basic operating mode (Test/Application) is sampled and established on a module reset condition. We recommend pressing the Reset (SW5) push button whenever SW7 is first changed, or when you want to be sure that SW7 is sampled and applied by the module.

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


Launch the User Interface Configuration Tool

After extracting files from the User Interface (UI) Configuration Tool ZIP file, double-click on the application file called IS187x_102_BLEDK3_UI v100.132.exe to launch the utility.

Immediately after launch, the Start Menu window will pop up. Before we can do anything with this tool, we must load a UI parameter table. One way to load the UI parameters is by using an existing UI text file.

Click on Load in the Start Menu window.

UI Configuration Tool Load Button


Load Text File

Selecting Load Text File will open up another window. Choose the IS1870SF_102_BLEDK3_UI v100.132(BM70) default text file and click Open.

Select Load Text File. Choose the IS1870SF_102_BLEDK3_UI v100.132(BM70)


Edit Text File

Once the text file has been loaded, the edit button will be enabled. Click on Edit.

UI Configuration Tool Edit Button Selected

When you press the edit button to start editing UI parameters, the Main Feature window will pop up. This is where you can select the target application. BLEDK3 supports all BLE operations, while the Beacon mode is used for non-connectable advertising only. If 'BeaconThings' is selected, the module will support both BLEDK and Beacon operations.

For the purposes of this demo, we will only select 'BLEDK 0x00: BM70' and then click OK.

Select the target application from the pulldown menu


Device Name

The main dialog window opens up providing all the parameter options that we can change. The first setting we will change during this lab is the Name Fragment in the Device Information pane. In this case, the module is named "DeveloperHelp". This is the name that will be displayed in the scan results.

Main dialog window providing all the parameter options that we can change

​The Name Fragment identifier becomes the module's GAP Service Device Name characteristic.


Disable UART_RX_IND

In the Uart Setting window, select the pull-down to disable this feature as shown below:

Disable UART_RX_IND  In the UART Setting window

When enabled, this feature places the module into a lower power mode, shutting off its UART RX operation. The host MCU then needs to drive this pin high to enable subsequent packet I/O operations.


Save Settings

After we have changed the name of our BM70 module and disabled UART RX IND, we need to write these new configuration settings into the module. Notice that Auto Pattern mode is selected by default; therefore we do not need to change that. Click on Finish.

Save Settings by selecting Finish


Write Settings

After that window closes, click Write on the Start Menu window that remains open.

It is useful to Save a UI Configuration file if you will use those certain settings repeatedly. You will save time by being able to Load the text file instead of having to go back and Edit all the settings from the default file.

Select Write on the Start Menu window

In the window that pops up, select the correct COM port that has been assigned to your BM70 PICtail. For Baudrate, select 115200 and then click on Write.

COM port displayed that has been assigned to your BM70 PICtail. For Baudrate, select 115200 and then click on Write


Finish

You will see a window asking if you are sure you want to write to the EFLASH, select Yes.

Write to the EFLASH Yes button

Lastly, you will see a window letting you know the write has been successful. Click on OK.

Write Flash Finish OK button

You can now close the Start Menu window.


App Mode

Put the module in App Mode by moving dip-switch SW7 to the OFF position and reset the module by pressing SW5 (the button immediately above the dip-switch).

Module in App Mode


Smart Data App (iOS)

Open the Smart Data app and look for your device.

Device showing in Smart Data App

Tap on its name (in this case DeveloperHelp) and you will see that the Status reads "Connected".

Smart Data App shows Connected


Tera Term

The next step is to set up a Tera Term serial port connection. Below you will find the setting used. Be sure to select the correct COM port from Step 1a. The Baud rate should be 115200.

Tera Term serial port connection settings window


Send Data

You can now start exchanging data. Once you have typed your message on the app, press Send and you will immediately see it on the Tera Term window.

Data echo in the Tera Term window.

If you are typing on the Tera Term window, once you press Enter on your keyboard, the message will show up on the Smart Data app.

Data echo in the Smart Data App

As you can see, whatever you type into the Smart Data app on the iOS device will show on the Tera Term window and vice versa.


Smart Discover App (iOS and Android)

Launch the Smart Discover App on your smartphone and tap on your module's name to connect to it. The app will immediately list all the preloaded services on the module.

If you would like to see how the information found within the app can be useful, please visit the "BM70 GATT Server Demo (Public Service)" page.

App listing all the preloaded services on the module

Besides showing Connected under State, you can verify you have established a link to your BM70 by taking a look at the PICtail itself. LED1 should be blinking twice every 1.5 seconds, which is the default setting. The LED blink rate is something that you can customize using the User Interface Tool (see screenshot below).

The LED blink rate showing in LED setup tab of settings window

If you have an Android phone or tablet, you can download the Smart Discover App (found in the "Software Tools" section of this page) and connect to your BM70 module that way.


Lastly, you can tap on Disconnect to drop the link between the smartphone and the BM70. LED1 will go back to flashing once every three seconds to show it is now on Standby mode. Again, this setting can be customized using the UI Tool.

Back to Top


Conclusions

In this lab you:

  • Worked with the Transparent UART Service built into the BM70 module.
  • Learned that LED1 on the BM70 PICtail can be customized to indicate what state the module is currently in.

Back to Top