Silicon Labs
|
Silicon Labs Community Silicon Labs Community
  • Products
    1. 8-bit MCU
    2. 32-bit MCU
    3. Bluetooth
    4. Proprietary
    5. Wi-Fi
    6. Zigbee & Thread
    7. Z-Wave
    8. Interface
    9. Isolation
    10. Power
    11. Sensors
    12. Timing
  • Development Tools
    1. Simplicity Studio
    2. Third Party Tools
  • Expert's Corner
    1. Announcements
    2. Blog
    3. General Interest
    4. Projects
How to Buy
English
  • English
  • 简体中文
  • 日本語
//
Community // Blog

Tech Talks Blog: Bluetooth Software Structure – APIs and State Machines

06/176/2020 | 01:11 AM
Tracy Boyd
Employee

Level 4


In this Tech Talks session, Field Applications Engineer, Claudio Filho, describes the basics of Silicon Labs' Bluetooth LE Software structure as well as procedures for configuring the stack. Click here to watch the entire presentation and register now for future sessions. Highlights from Claudio's session are below. 

Bluetooth LE Software Features

Our Bluetooth LE software stack is 5.2-compliant, featuring dynamic transmission power control, the direction finding capabilities of Bluetooth 5.1, and standard features of Bluetooth 5.0 and 4.0. It is packed with functionality such as simultaneous advertising and scanning and is optimized for low-power consumption with the ability to go into sleep mode when inactive. 

The software stack can be used to create standalone Bluetooth applications for Wireless Gecko SoCs or modules or alternatively, network co-processor (NCP) applications. With the SoC model, which is the focus of this Tech Talk, the SoC is at the heart of the application, such as for wearable devices or smart lighting.  

Project Structure

The software stack is built on top of the EFR32 platform and includes the following components:

  • Gecko bootloader – distributed as source; has its own project structure.
  • Bluetooth stack and RAIL libraries – stack is distributed as a binary file; RAIL enables multiprotocol.
  • GATT related files – user-friendly GUI enables creating GATT database files.
  • Application libraries – emlib and emdrv libraries are used by the stack but can also be used by the application. Examples are available on our GitHub page.

Application Build Flow

The first step to configuring the Bluetooth LE software stack for your application is to open an empty SoC example project from the Simplicity Studio IDE. From here, you will have access to the Visual GATT Editor, a graphical tool for defining the GATT and generating gatt_db.c and gatt_db.h files.

With the GATT configurator, you can start with any pre-defined Bluetooth SIG profiles and drag-and-drop them into the configurator window. Adjustable settings allow you to customize the Bluetooth SIG services, characteristics and descriptors as needed. You can also import GATT data from external XML files.

A compiler will combine the GATT generated database files with your own application source code and begin building your project. Compiling the project generates an object file, which is then linked with the pre-compiled libraries provided in the SDK. The output of the linking is a flash image that can be programmed for production. You can also generate GBL files for enabling over-the-air (OTA) updates if needed.

Configuring Hardware and the BLE Stack

Two important files for configuring hardware within the empty SoC structure are:

  • hal-config.h file – enables board features.
  • hal-config-board.h file – enables hardware.

These files enable code re-use among different components and peripherals. A forthcoming UI will allow you to generate these files automatically.

The Bluetooth LE stack configuration is managed within the main.c file. From this file, you can customize several parameters of our stack. The file is pre-programmed for low-power management.

Our stacks are event-driven, and events can be blocking or non-blocking. All stack events are handled at App.c.

Support

Visit docs.silabs.com for supporting documentation including application notes, reference manuals, and user guides. Our GitHub pages include library and peripheral examples. For more information about our Bluetooth LE software stack solutions, contact your Silicon Labs sales representative.

  • Blog Posts

Tags

  • Wireless
  • High Performance Jitter Attenuators
  • EFR32FG22 Series 2 SoCs
  • EFR32MG21 Series 2 SoCs
  • Security
  • Bluegiga Legacy Modules
  • Zigbee SDK
  • ZigBee and Thread
  • EFR32BG13 Series 1 Modules
  • Internet Infrastructure
  • Sensors
  • Wireless Xpress BGX13
  • Blue Gecko Bluetooth Low Energy SoCs
  • Z-Wave
  • Micrium OS
  • Blog Posts
  • Low Jitter Clock Generators
  • Bluetooth Classic
  • Makers
  • Flex SDK
  • Tips and Tricks
  • timing
  • Smart Cities
  • Smart Homes
  • IoT Heroes
  • Reviews
  • RAIL
  • Simplicity Studio
  • Tiny Gecko
  • EFR32MG22 Series 2 SoCs
  • Mighty Gecko SoCs
  • Timing
  • Temperature Sensors
  • Blue Gecko Bluetooth Low Energy Modules
  • Ultra Low Jitter Clock Generators
  • General Purpose Clock Generators
  • EFR32BG22 Series 2 SoCs
  • Industry 4.0
  • Giant Gecko
  • 32-bit MCUs
  • Bluetooth Low Energy
  • 32-bit MCU SDK
  • Gecko
  • Microcontrollers
  • Jitter Attenuators
  • EFR32BG21 Series 2 SoCs
  • News and Events
  • Industrial Automation
  • Wi-Fi
  • Bluetooth SDK
  • Community Spotlight
  • Clock Generators
  • Biometric Sensors
  • General Purpose Jitter Attenuators
  • Giant Gecko S1
  • WF200
  • Flex Gecko
  • Internet of Things
  • 8-bit MCUs
  • Wireless Jitter Attenuators
  • Isolation
  • Powered Devices
  • Power

Top Authors

  • Avatar image Siliconlabs
  • Avatar image Jackie Padgett
  • Avatar image Nari Shin
  • Avatar image lynchtron
  • Avatar image deirdrewalsh
  • Avatar image Lance Looper
  • Avatar image lethawicker

Archives

  • 2016 January
  • 2016 February
  • 2016 March
  • 2016 April
  • 2016 May
  • 2016 June
  • 2016 July
  • 2016 August
  • 2016 September
  • 2016 October
  • 2016 November
  • 2016 December
  • 2017 January
  • 2017 February
  • 2017 March
  • 2017 April
  • 2017 May
  • 2017 June
  • 2017 July
  • 2017 August
  • 2017 September
  • 2017 October
  • 2017 November
  • 2017 December
  • 2018 January
  • 2018 February
  • 2018 March
  • 2018 April
  • 2018 May
  • 2018 June
  • 2018 July
  • 2018 August
  • 2018 September
  • 2018 October
  • 2018 November
  • 2018 December
  • 2019 January
  • 2019 February
  • 2019 March
  • 2019 April
  • 2019 May
  • 2019 June
  • 2019 July
  • 2019 August
  • 2019 September
  • 2019 October
  • 2019 November
  • 2019 December
  • 2020 January
  • 2020 February
  • 2020 March
  • 2020 April
  • 2020 May
  • 2020 June
  • 2020 July
  • 2020 August
  • 2020 September
  • 2020 October
  • 2020 November
  • 2020 December
  • 2021 January
Silicon Labs
Stay Connected With Us
Plug into the latest on Silicon Labs products, including product releases and resources, documentation updates, PCN notifications, upcoming events, and more.
  • About Us
  • Careers
  • Community
  • Contact Us
  • Corporate Responsibility
  • Privacy and Terms
  • Press Room
  • Investor Relations
  • Site Feedback
  • Cookies
Copyright © Silicon Laboratories. All rights reserved.
粤ICP备15107361号
Also of Interest:
  • Bring Your IoT Designs to Life with Smart,...
  • IoT Hero CoreTigo Drives New Wireless Standard...
  • A Guide to IoT Protocols at Works With...