Program an STM32WB55 BLE MCU via USB with the Arduino IDEDesigned by Tlera Corp in United States of America
What is it? Firefly is a small (0.7 in x 1.7 in) development board for ST's dual core STM32WB55CG BLE-enabled microcontroller. The Cortex M0+ manages the BLE stack while the Cortex M4F running at 6...Read More…
Firefly is a small (0.7 in x 1.7 in) development board for ST's dual core STM32WB55CG BLE-enabled microcontroller. The Cortex M0+ manages the BLE stack while the Cortex M4F running at 64 MHz manages the user's application program. The QFN48 STM32WB55CG has 1 MByte of program flash and 256 kB of SRAM and supports the usual serial peripherals including I2C, UART, SPI, PDM and I2S. The Firefly exposes 21 GPIOs to the user at the board edge. There is a built-in blue led and built-in battery voltage monitoring. The pcb antenna provides excellent sensitivity allowing BLE signal range up to 50 meters line of sight.
Paraphrasing from the product page: "The STM32WB55xx embeds a powerful and ultra-low-power radio compliant with the Bluetooth® Low Energy SIG specification v5.0 and with IEEE 802.15.4-2011. It contains a dedicated Arm® Cortex® -M0+ for performing all the real-time low layer operation. The device is designed to be extremely low-power and is based on the high-performance Arm® Cortex®-M4 32-bit RISC core operating at a frequency of up to 64 MHz. This core features a Floating point unit (FPU) single precision that supports all Arm®single-precision data-processing instructions and data types. It also implements a full set of DSP instructions and a memory protection unit (MPU) that enhances application security." More here.
In short, the STM32WB uses a dedicated Cortex M0+ core to manage the BLE stack and a Cortex M4F for the users' application code. The result is an ultra-low-power microcontroller system with BLE connectivity.
We made the BLE easy to use, like all Tlera Corp products. We created a power- and memory-efficient Arduino core for the Firefly which supports BLE iBeacon, Nordic UART Service, and BlueST protocols. The WB can be used in Peripheral, Central (coming soon!) or combination Peripheral + Central roles. See the link for more information about how to install and run the core.
The Firefly is intended to be programmed via USB connector using the Arduino IDE. Although traditionalists can make use of the SWD port via tag-connect and their favorite adult tool chain instead.
For several years we have been making use of ST's STM32L4 family of ultra-low-power MCUs in a variety of applications including development boards, asset trackers, and environmental monitors. Often we include a BMD-350 (nRF52) module for BLE connectivity with smart devices like Android and IOS phones, etc. With the new dual core STM32WB55 MCU, we can now make devices similar in cost, size, and functionality to those we have been but also have the added benefit of embedded BLE connectivity.
In addition to the Firefly development board, which offers easy entry into STM32WB55 applications programming, we have designed our first STM32WB55 utility board (Katydid), which adds 16 MByte QSPI flash memory for data storage, BMA400 low-power accel for wake-on-motion, a 1S LiPo battery charger, ON/OFF switch, and a connector for sensor modules such as this one. Other modules and STM32WB55 utility boards are in the works.
We built the STM32WB55 system layer and Arduino core from the ground up to be power- and memory-efficient, fill the gaps in the ST HAL, properly work around errata, avoid race conditions, and otherwise operate in a robust and reliable manner. You can still use the ST HAL-based CubeMX for application development and tag-connect or SWD port for programming, but then you will have to bridge the ST code gaps and implement the work arounds yourself. We do not recommend this.
The Firefly hardware design is open source. It provides a great starting point for developing your own custom applications. The components have been chosen to be ultra-low power and inexpensive as well as easy to assemble.
Use the Arduino core to easily develop sophisticated firmware for your application with a few lines of C++, program your device via the USB using the Arduino IDE, and get right to perfecting your application rather than spending time negotiating the pitfalls of DMA, ports, and registers, etc. The hard part is already done for you; this is the sophistication of a 32-bit MCU with single precision floating point unit and embedded BLE accessible via the simplicity of the Arduino IDE.
The STM32WB55 offers a dual core with embedded BLE (no wifi) like the ESP32 but in this case, the M0+ core manages the BLE stack and the M4F core manages the user's application. The STM32WB55 has only 1 MByte of flash memory and runs at 64 MHz maximum CPU speed; both less than the ESP32 by far. But the STM32WB55 is an ultra-low-power device with sleep current of ~4 uA and normal mode currents of a few mA depending on the BLE Tx power mode selected. So STM32WB55 end devices can last for months or years on a small LiPo battery. It is very hard to get more than a few days of use between battery charges with the ESP32.
The nRF52 is a single-core M4F MCU with embedded BLE. Despite its popularity, the nRF52 is limited in the peripherals available to the user. The single core manages the BLE stack, which has priority over device processes. One of only three available timers is dedicated to the BLE stack management. There is no hardware I2C or I2S peripheral available; these have to be managed in software. There is no embedded USB controller. There is a real time counter but no real time clock available (STM32WB55 has an RTC accurate to 1 ppm with calibration), so system time keeping must be done relatively or externally. It is not as easy to program as the STM32WB55, although there are Arduino implementations of the nRF52 SDK.
Bottom line: the STM32WB55 uses much less power than the ESP32 and has more features and is easier to use than the nRF52.
This is a small, open-source hardware implementation designed to make using and customizing the STM32WB55 easy for everyone.
It supports iBeacon, NUS, BlueST protocols as well as standard and custom BLE services and characteristics.
There are many examples of how to use the STM32WB55 including its embedded BLE, I2C, PDM, EEPROM, etc available in the Arduino IDE and further examples showing how to interface sensors and microphones to the Firefly development board reposited on Github.
Order the pcbs from OSH Park and assemble one of your own or order the fully assembled and tested Firefly development board here and see how easy building your own BLE applications can be!
No country selected, please select your country to see shipping options.
No rates are available for shipping to .
Enter your email address if you'd like to be notified when Firefly BLE Development Board can be shipped to you:
Thanks! We'll let you know when the seller adds shipping rates for your country.
|Shipping Rate||Tracked||Ships From||First Item||Additional Items|
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!