Edge AI Evangelist’s Thoughts Vol.14: Bluetooth Microcomputers – Part 1

Edge AI Evangelist’s Thoughts Vol.14: Bluetooth Microcomputers – Part 1

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 [2][3].

Experiment Preparations

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:

  1. BRD4001A Wireless Starter Kit Mainboard
  2. BRD4310A BGM220S Wireless Gecko Module Radio Board
  3. BRD4311A BGM220P Wireless Gecko Module Radio Board
  4. BRD8010A Debug Adapter Board
  5. USB Type-A to Mini-B cable
  6. 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.

An image that shows all of the various components of the Gecko Module Starter Kit. On the right is an image of how the BG220P is installed onto the main board.

Figure 1 Silicon Lab’s BGM220P Wireless Gecko Module Starter Kit & the BG220P radio board installed on the Main board [4]

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 [5].  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 [13]. 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).

The image shows two separate program windows that illustrate how to create a project in Simplicity Studio 5.

Figure 2 SoC Blinky Project creation (Steps 1 & 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. 

The image shows two program windows that explain how to create a project in Simplicity Studio 5. It shows the 3rd and 4th steps of the procedures.

Figure 3 SoC Blinky Project creation (Steps 3 & 4)

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. 

The image shows another 2 program windows that show the last two steps of making a project in Simplicity Studio 5.

Figure 4 SoC Blinky Project creation (Steps 5 & 6)

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. 

Experimental Setup

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 [11]. 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.

The image shows the tree various components of the data collection device. It also shows what Bluetooth and Wifi devices show up within the area.

Figure 5 Configuration of the experimental setup

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 four images show the various steps in the LED blinking experiment.

Figure 6 SoC Blinky Sample Project operation

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.

The graph on the left sows the relationship between RSSI and the distance of the microcomputer from Central.

Figure 7 RSSI of the SoC Blinky Sample Project

Thermometer sample project

In this project, we observed how the measured values from the temperature sensor on the development board were transmitted via Bluetooth [12]. 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 left image shows the configuration of the thermometer sensor device and the ambient temperature of the area. The right image then shows a finger being placed on the sensor and its affect on the temperature.

Figure 8 Thermometer Sample Project operation

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. 

The graph shows the correlation between distance and RSSI for the peripheral in both advertising and connected mode.

Figure 9 RSSI of the thermometer sample project

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.

The program window shows the outputs for AEM over the last 10 seconds. There are two outputs where the top shows current and the bottom shows voltage.

Figure 10 AEM results for thermometer sample project

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 [14]. 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 image shows the peripheral device and the change in throughput for both the indication and notification protocols.

Figure 11 Throughput sample project operation

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.   

The graph shows the results of throughput for the notification and indication protocols.

Figure 12 Throughput results of the throughput sample project

Summary

  • 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.

References

[1] 『半導体業界の第一人者,AI業界を行く!』 Vol.13:ブルートゥース・マイコン
https://hacarus.com/ja/ai-lab/20210726-bluetooth/ 

[2] SLWSTK6103A BGM220 Bluetooth Module Wireless Starter Kit
https://www.silabs.com/development-tools/wireless/bluetooth/bgm220-wireless-starter-kit

[3] SLWSTK6103A
https://www.mouser.jp/ProductDetail/Silicon-Labs/SLWSTK6103A?qs=7MVldsJ5UazVuIvsw30gfw==

[4] UG432: BGM220P Wireless Gecko Module Starter Kit User’s Guide
https://www.silabs.com/documents/public/user-guides/ug432-brd4311a-user-guide.pdf

[5] Simplicity Studio Software
https://www.silabs.com/developers/simplicity-studio

[6] Simplicity Studio® 5 User’s Guide
https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-overview/

[7] QSG169: Bluetooth® SDK v3.x Quick-Start Guide
https://www.silabs.com/documents/public/quick-start-guides/qsg169-bluetooth-sdk-v3x-quick-start-guide.pdf

[8] Silicon Labs Support & Community Bluetooth
https://community.silabs.com/s/topic/0TO1M000000qHWhWAM/bluetooth?language=en_US

[9] Silicon Labs 社 EFM32 クイックスタートガイド
https://www.macnica.co.jp/business/semiconductor/articles/pdf/SiliconLabs_EFM32_QuickStartGuide_v2_3__1.pdf

[10] Silicon Labs 社 BGM1xx アドバンストガイド(上級編)
https://www.macnica.co.jp/assets/arc/article_files/120897/SiliconLabs_BGM1xx_AdvancedGuide_v2_1__1.pdf

[11] EFR Connect BLE Mobile App
https://www.silabs.com/developers/efr-connect-mobile-app

[12] Thermometer Example with EFR32 Internal Temperature Sensor
https://docs.silabs.com/bluetooth/2.13/code-examples/applications/thermometer-example-with-efr32-internal-temperature-sensor

[13] UG343: Multi-Node Energy Profiler User’s Guide
https://www.silabs.com/documents/public/user-guides/ug343-multinode-energy-profiler.pdf

[14] The First BLE Mobile App with Throughput and Mobile Interoperability Tests
https://community.silabs.com/s/share/a5U1M000000koFpUAI/the-first-ble-mobile-app-with-throughput-and-mobile-interoperability-tests?language=en_US

 

 

Subscribe to our newsletter

Click here to sign up