Hello everyone, I’m Haruyuki Tago, Edge Evangelist at the HACARUS Tokyo R&D center.
In this series of articles, I will share some insights from my decades of experience in the semiconductor industry and I will comment on various AI industry-related topics from my unique perspective.
In this volume, I would like to talk a little about microcomputers with Bluetooth functionality. The microcomputers we will cover today are also designed for data collection in edge AI systems.
Microcomputers with Bluetooth Functionality
In volume 13, I gave a brief overview of the microcomputer. In this issue, we will continue this discussion using three sample programs that run on Silicon Labs’ BGM220 Bluetooth Module Wireless Starter Kit .
First, let’s look at the starter kit that was used. The Silicon Labs BGM220P development board from the Wireless Gecko Module Starter Kit comes equipped with the following hardware shown in Figure 1:
- BRD4001A Wireless Starter Kit Mainboard
- BRD4310A BGM220S Wireless Gecko Module Radio Board
- BRD4311A BGM220P Wireless Gecko Module Radio Board
- BRD8010A Debug Adapter Board
- USB Type-A to Mini-B cable
- 10-pin flat cable for debug adapter
Both (2) and (3) are Bluetooth MCUs, and either can be connected to the Main board shown on the left of Figure 1. Setup is very easy, and you can begin development immediately by connecting the Main board’s USB mini connector to the Windows PC USB board using the USB Type-A to Mini-B cable. For the projects that follow, (4) and (6) will not be used.Moving on to the software side of things, we used Simplicity Studio 5 as our software development tool (SDK). This software, developed by Silicon Labs, can be downloaded from their website free of charge . Simplicity Studio 5 is a powerful tool that includes an Advanced Energy Monitor (AEM) function, which can measure the current consumption and supply voltage of the Bluetooth microcontroller . This was necessary for the projects that I will soon explain.
The first project performed was the SoC Blinky project. In order to start collecting data, we first needed to create a sample project in Simplicity Studio 5. Figures 2-4 illustrate the steps needed to create a sample project that includes the source programs, object files, and other related files.
Creating a project is simple. After connecting the development board to the PC and booting up the software, the development board will be automatically recognized (Figure 2, step 1). Then click the [start] button on the right side of the device to display information about the development board and other related documents (Figure 2, step 2).
For step 3, click the [EXAMPLE PRODUCTS DEMOS] tab (Figure 3) to see a list of projects that are compatible with the development board. After finding [Bluetooth SoC Blinky], click [CREATE], and the Project Configuration window will appear (Figure 3). The last step is to enter the Project Name that will serve as the folder name for the project on your local PC. With everything done, click the [FINISH] button in the lower right corner to download all of the necessary files to your PC.
Step 4 involves selecting the folder we previously named from the Project Explorer on the left side of Simplicity Studio (Figure 4, left). Next, right-click on the [Run] button and move the cursor to the [Profile As] tab in the pull-down menu and click [Simplicity Energy Profiler Traget] (Figure 4, left). This will then start the project generation. The progress is shown in the CDT Build Console in the lower right of the screen (Figure 4, right). The generated binary program will be written into the target device (BGM220P), and the execution will start automatically after resetting.
One important thing to note is that except for the action of inputting the Project name, the sample project creation and execution can only be performed by mouse operation. Additionally, the main parameters for Bluetooth communication, such as the advertising interval, can be changed through the configurator in simplicity studio 5. It is also possible to edit the C++ source programs directly, but that is beyond the scope of this experiment.
Figure 5 shows the experimental apparatus that was used for today’s experiments. The development board from figure 1 is often called a peripheral, so this is what I will refer to it as for the remainder of this article. Simplicity Studio 5 also handled building the project, wrote the generated binary to the flash memory of the microcomputer, and measured the current consumption and voltages.
Another device we used was the smartphone, commonly referred to as Central. Central ran the EFR Connect to display the data sent by Bluetooth . In our first two experiments, we transmitted the pushbutton switch status and temperature sensor data from the development board to Central. By varying the distance between the peripheral and Central, we investigated the strength of the Bluetooth waves and observed the operation status of the projects.
The experiments performed using the microcomputer were conducted at a height of 123cm above ground level. As shown in this article’s cover photo, the experiment was conducted where the peripherals could be seen from the central location.
One last aspect of the experiment environment was the communication between Bluetooth devices in the surrounding area. Bluetooth communicates by searching for an available channel among the dozens of channels within the 2.4GHz band. This means that the communication status depends on the status of other Bluetooth and Wifi devices in the vicinity. In our experiment, we found 10 Bluetooth devices and 4 Wifi base stations are detailed in Figure 5.
SoC blinky sample project
The first project is the Bluetooth version of the blinking LED, a common test performed when starting up a microcontroller board. For the experiment, we used a peripheral pushbutton switch and LEDs. As shown in figure 6, the LED icon changed to green when the pushbutton was pressed.
The distance between the peripheral and central station was then varied between 0.2m and 20m and the Received Signal Strength Indicator (RSSI) was measured. The maximum distance of 20m was due to the limitations of the environment. The RSSI received by Central in advertising mode is shown in Figure 7.
The graph includes a dotted line that shows the theoretical relationship where the signal strength is inversely proportional to the square root of the distance (free space propagation loss). The slope for the RSSI data seems to mimic this relationship to a high degree.
Thermometer sample project
In this project, we observed how the measured values from the temperature sensor on the development board were transmitted via Bluetooth . Starting the experiment, we placed a finger on the temperature sensor to make the temperature rise (Figure 8, right). This change in temperature showed up on the application screen as well.
The main purpose of this project was to test how the RSSI of the temperature sensor changed as the peripheral was moved away from the central station. For this test, we varied the distance from 0.2m to 20m, as shown in figure 9. Looking at the graph we can see that the RSSI in the Advertising and Connected states showed a similar trend. For both states, the connection was stable even at a distance of 20 meters.
Figure 10 shows an example of data collected for current consumption and supply voltage for the microcontroller using the AEM function from Simplicity Studio 5. The horizontal axis shows the time (in seconds) for the past 10 seconds until the present time. The vertical axis represents the RSSI in dBm.
Taking a closer look at the time interval, we can see that from 10 seconds ago until 8.3 seconds ago, the peripheral was in the Advertising state. In this state, the peripheral is intermittently emitting radio waves in order for Central to find the peripheral. At around 8.3 seconds, Central found the peripheral, established a connection, and changed its state to ‘connected’. While in the connected state, temperature data was sent to Central every 4 seconds.
Looking again at Figure 10, the vertical axis represents two different variables, with current (yellow waveform) on the left and the power supply voltage (red waveform) on the right. The current consumption peaked at about 2.5mA, while in the Advertising state. The current then dropped to around 1.3mA in the connected state. We can observe that every time the peripheral transmits temperature data, the current spikes to around 3mA. On the other hand, the voltage remains constant at 3.3v the entire time because it was powered by USB from the PC.
As we can see, the AEM provided detailed information about the current consumption and supply voltage of the Bluetooth Microcomputer. The AEM also ran in conjunction with various C++ functions.
Throughput sample project
The last project for today involved measuring the data transfer rate between the peripheral and the central station as it was sent from the peripheral . When studying throughput, there were two types of data transfer protocols that needed to be understood: induction and notification. Indication is a protocol in which the peripheral sends data and the central station sends back a confirmation message. The peripheral will then move on to the next data transmission after receiving the confirmation message. Notification uses a different process, where it does not wait for a confirmation message, but instead sends data at its own pace.
There are two types of protocols for the internet: TCP/IP and UDP. The previously mentioned indication protocol corresponds to TCP/IP and the notification protocol corresponds to UDP. Figure 11 shows the results of the experiment where the notification throughput was about 180 kbps and the indication throughput was about 22kbps. This showed that indication performed around 9 times faster than notification.
The second part of the project measured the throughput speeds as the distance between the peripheral and the central system was varied between 0.2m to 10m (Figure 12). The results show that even at a distance of 10m, the throughput was stable for both the indication and notification protocols. For this project, distances greater than 10m were not tested.
- Using the BGM220P Wireless Gecko Module Starter Kit from Silicon Labs, we observed three sample projects (SoC blinky, Thermometer, and Throughput).
- We used the Simplicity Studio 5 software, developed by Silicon Labs, as our software development tool to measure the current and voltage of the microcontroller.
- When measuring the RSSI between the peripheral and the central station, all three test parameters were stable. The RSSI of the central station closely resembled an inverse relationship that was proportional to the square root of the distance (free space propagation loss).
- In the Throughput sample project, the Notification throughput was found to be about 180 kbps and the indication throughput was about 22kbps.
- Using the AEM function, we were able to measure the current and voltage consumption when switching between advertising and connected states.
Thank you for taking the time to read the latest volume of Edge AI Evangelist’s Thoughts. I hope that you enjoyed today’s topic, and I will continue my talk about microcomputers in the next volume.
 『半導体業界の第一人者，AI業界を行く！』 Vol.13：ブルートゥース・マイコン
 SLWSTK6103A BGM220 Bluetooth Module Wireless Starter Kit
 UG432: BGM220P Wireless Gecko Module Starter Kit User’s Guide
 Simplicity Studio Software
 Simplicity Studio® 5 User’s Guide
 QSG169: Bluetooth® SDK v3.x Quick-Start Guide
 Silicon Labs Support & Community Bluetooth
 Silicon Labs 社 EFM32 クイックスタートガイド
 Silicon Labs 社 BGM1xx アドバンストガイド（上級編）
 EFR Connect BLE Mobile App
 Thermometer Example with EFR32 Internal Temperature Sensor
 UG343: Multi-Node Energy Profiler User’s Guide
 The First BLE Mobile App with Throughput and Mobile Interoperability Tests