A few weeks ago, Silicon Labs sent me some free Blue Gecko Bluetooth Smart Module Wireless Starter Kits, and we talked a little bit about these kits. We thought that it would be a good idea to create a little series to talk about the BGM111 module, explain what it is and what it does, how to program it, and to show a few example applications. I'm therefore thrilled to present my first video in my Bluetooth in Action series, a presentation of the module. I'll present the kit and the different elements, explain what it does and how it can be used, before showing the awesome default example application that is flashed onto these kits. I hope you enjoy my video, and please feel free to ask any questions, I'll see how I can answer them either here, or in a future video.
Welcome to a presentation on the Silicon Labs Blue Gecko Wireless Starter Kit. My name is James Langbridge, and in this blog series, we’ll be taking a closer look at the Blue Gecko, and what it has to offer. I’ll explain the Blue Gecko evaluation board, the default firmware that comes with it, and some of the interesting things you can do.
In only a few years, Bluetooth has gone from being a simple wireless RS-232 to an essential technology, used in almost every household. You might even be using Bluetooth without knowing it; for example, the PlayStation remote controls use Bluetooth to communicate, so you no longer need line of sight to the console.
Today, the Bluetooth logo can be seen in the most unexpected of places. Remote controlled helicopters, smart scales, headphones and even cars are Bluetooth enabled. And it offers much more than a simple audio link; some cars with Bluetooth also use that connection to send and receive calls, play music, but also to share a screen to use the on-board GPS software of your choice. If the Bluetooth speaker marker is expected to be worth seven billion dollars by 2019, you can only imagine what revenue IoT devices will bring in. To cite the Bluetooth internet site, “Bluetooth is everywhere consumers hang out”.
From a developer’s perspective, adding Bluetooth functionality was never that complicated. You added a Bluetooth chip, an integrated device with a microcontroller that handled radio operations. You never knew exactly what the microcontroller was, because you never needed to know. Your own device would control the Bluetooth adapter, sending commands through UART, I2C or SPI, depending on your needs. You would create a quick SDK, usable only on your application, and then use the Bluetooth adapter as a UART device. You would then call functions to configure the adapter, and send and receive data. Your device would still be in charge of analysing data received, and making the necessary calculations before sending data back. Some advanced adapters had GPIO pins that could be remotely accessed, and could be used for a variety of applications. I’ve used one to remotely re-flash a device, resetting it, and putting it into DFU mode, before sending a firmware.
I was called in for a project where a client wanted to add Bluetooth functionality. His product was designed to be used outside, in difficult conditions, ranging from polar to desert. If one of the devices needed to be debugged, or even re-flashed, the client wanted the customers to be able to do that from the comfort of a 4x4, without the need to get out and connect wires. Opening ports in monsoon rain isn’t a good idea, and wires become extremely difficult to bend in polar environments. I spent a few weeks evaluating some of the potential boards, without knowing what was on the board. Another two weeks to get an API up and running, based on technical documentation showing ASCII exchanges via UART. That’s when the problems started. Communications had to be secure, and the only feasible way to do that was to use a PIN code. Another problem was the ability to re-flash the device. In this mode, a Pocket PC would “talk” directly to the Bluetooth adapter, and activate a GPIO pin, that would reset the product, and put it into DFU mode. Without the processor to authenticate incoming requests, we ended up asking the manufacturer to add encryption. Thankfully, the client bought these chips 50 reels at a time, so that was an option, but for smaller projects, we would have had to make do. It was possible to make the solution work, but it lacked elegance. I would have loved to do something else.
Silicon Labs decided to change all that. Enter the BGM111. They coupled a Bluetooth radio stack together with an ARM Cortex-M4 with FPU, running at up to 40MHz. So what’s the difference? Your Bluetooth adapter now has a large amount of processor power, together with RAM, flash, GPIO, and even some unexpected peripherals like ADC and DAC, PWM and timers. With 32kB of RAM and 256kB of flash, there is more than enough space to put even the most advanced program directly onto the adapter. Now programs can be placed directly on the Bluetooth adapter, either alleviating the calculation needed on your hardware, or, in some cases, replacing your hardware altogether. For engineers starting projects, you have the power of a powerful microcontroller, a large amount of peripherals, together with Bluetooth Low energy in a single package. If you need something small and wireless, powerful and efficient, then this is the product for you.
This begs the question, just how large is the adapter, physically? All of this comes in a chip just 13 by 15 millimetres, and 2.2 millimetres high. And power wise? Silicon Labs is well known for their energy efficient devices, and the BGM111 is no exception. So let’s have a closer look!
Check out the next video in this series here.
This project describes an easy way to evaluate the link budget of the Wireless Gecko EFR32 devices using Silicon Labs’ Radio Abstraction Interface Layer (RAIL) to perform a range test between two nodes.
Range Test is a standalone test application that creates a radio link between two evaluation kits and sends predefined amount of packets from the transmitter side to the receiver. The range test demo implements packet error rate (PER) measurement. PER is a commonly-used technique for measuring the quality of RF links in wireless systems under particular conditions.
First, Simplicity Studio has to be run. Once the required software is installed, the EFR32 development kit can be connected to the PC using a mini-USB cable. This should be done before running the RAIL test. Make sure the 3-way power switch in the bottom left is set to AEM. If you want to connect to your WSTK over Ethernet, you should also plug in an Ethernet cable at this time. The IP address will be printed to the LCD screen during startup of the WSTK but may be lost when the app starts. To see this again, reboot the WSTK and press the reset button for several seconds to prevent the EFR32 from loading its application.
Fig: EFR32FG Radio Board with Main Board
The steps included in this stage are a selection of the Range Test application, generating and building the application, loading the binary onto your device/flash programming.
Second, some basics of the Range Test application must be noted. Range Test creates a radio link between two evaluation kits and sends predefined amount of packets from the transmitter side to the
receiver. The application can be configured through the on-screen menu system of the board and does not require a PC connection. The receiver calculates packet error rate (PER). It also displays the current RSSI level in dBm units and draws a chart of the RSSI historical data. For long tests, the transmitter can be set up to transmit continuously. It is not necessary to start both sides synchronously.
Next, the menu system can be examined. After starting the demo, the first screen is the Welcome Screen, which shows Silicon Labs logo, the carrier frequency and the RF power level. This is followed by a menu which allows the user to see important information about the settings and change them. All the RF settings of the radio, as data rate, modulation, frequency settings and output power are listed in the menu.
Fig 1: Radio Board Welcome Screen
Fig 2: RF Configuration Menu
Finally, the range test can be performed. This test can be performed inside a building if indoor propagation is tested. The steps are as follows:
Fig 3: TX mode
6. The test needs to be started at the transmit side by pressing [START].
7. Confirm that the transmitter sends packets and the receiver answers
8. If PER<1%, reset the PER on the boards and try to walk further in the area. Propagation conditions usually improve if the user distances himself from a possibly faded area.
Fig 4: RX mode
Demo is available in Simplicity Studio - Software Examples - Silicon Labs Flex SDK Examples - RAIL: Range Test
To read the complete, detailed user guide click here.
Bluetooth Smart allows for short bursts of long-range radio connections, making it ideal for applications that depend on long battery life and don’t need high throughput streaming data. To help users get familiar with our new EFR32 Blue Gecko family, we are inviting three community users who can create a project or a hands-on review based on the EFR32 Blue Gecko starter kit ($99.99) and share it with other members.
How to participate:
If you are interested, submit up to two ideas for new projects or anything particular you want to test/evaluate with the kit by leaving a comment on this page by March 28th, 2016.
Make sure to mention what features of the Blue Gecko family you would like to use in your project/review post and why. If you want to learn more about the family, check out these pages:
The submissions will be evaluated based on the following criteria:
and will be judged by Silicon Labs' Wireless team.
Number of Winners: 3
March 14, 2016 - March 28, 2016 11:59 pm PST
The winners will be announced on this page.