MicroMod STM32WB5MMG Hookup Guide
2023-12-05 | By SparkFun Electronics
License: See Original Project
Courtesy of SparkFun
Guide by EL DUDERINO
Introduction
The MicroMod STM32WB5MMG Processor expands on SparkFun's MicroMod ST product line with a powerful combination of computing and wireless capabilities all on one Processor. The STM32WB5MMG from STMicroelectronics™ is an ultra-low power microcontroller that combines a pair of Arm® Cortex® processors; a Cortex-M4 processor for primary computing and a Cortex-M0 to run the 2.4 GHz radio. The radio is Bluetooth® Low Energy 5.3, Zigbee® 3.0, and OpenThread certified.
SparkFun MicroMod STM32WB5MMG Processor
The STM32WB5MMG Processor boasts a host of interface and peripheral options including SPI, multiple UARTs, I2C buses, as well as I2S. This guide covers the hardware present on this MicroMod Processor, how to assemble it into a MicroMod circuit, and how to install and use the board in the Arduino IDE.
Required Materials
You'll need a Carrier Board or Main Board to plug the Processor into. Below are a few options for both types of boards:
- SparkFun MicroMod ATP Carrier Board
- SparkFun MicroMod Main Board - Double
- SparkFun MicroMod Main Board - Single
- SparkFun MicroMod Qwiic Carrier Board - Single
Note: Users who wish to take full advantage of all of the STM32WB5MMG's interfaces (I2S, QSPI, etc.) should use the ATP Carrier Board to access all the pins on this Processor though QSPI and I2S are not supported in the Arduino IDE. We recommend using the STMCube IDE to use these interfaces.
You'll also need a USB-C cable to connect the Carrier Board to your computer and if you want to add some Qwiic breakouts to your MicroMod project you'll want at least one Qwiic cable to connect it all together. Below are some options for both of those cables:
- SparkFun Qwiic Cable Kit
- Flexible Qwiic Cable - 100mm
- Reversible USB A to C Cable - 2m
- USB 3.1 Cable A to C - 3 Foot
Suggested Reading
The SparkFun MicroMod ecosystem offers a unique way to allow users to customize their project to their needs. Do you want to send your weather data via a wireless signal (e.g., Bluetooth or WiFi)? There's a MicroMod Processor Board for that. Looking to instead maximize efficiency and processing power? You guessed it, there's a MicroMod Processor Board for that. If you are not familiar with the MicroMod ecosystem, take a look here:
If you aren't familiar with the MicroMod ecosystem, we recommend reading here for an overview.
We also recommend reading through the following tutorials if you are not familiar with the concepts covered in them:
- Serial Communication: Asynchronous serial communication concepts: packets, signal levels, baud rates, UARTs and more!
- Installing Arduino IDE: A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux.
- Bluetooth Basics: An overview of the Bluetooth wireless technology.
- Getting Started with MicroMod: Dive into the world of MicroMod - a compact interface to connect a microcontroller to various peripherals via the M.2 Connector!
Hardware Overview
Let's take a closer look at the STM32WB5MMG and other hardware on this MicroMod Processor.
STM32WB5MMG Multiprotocol Wireless Module
The STM32WB5MMG module is an ultra-low power combination of two Arm-Cortex processors that provides a powerful computing platform with Bluetooth Low Energy 5.3 and 802.15.4 wireless capabilities. The module uses a Cortex-M4 CPU with FPU and ART for primary computing and a Cortex-M0 for the radio and security. For a complete overview of the module, refer to the STM32WB5MMG datasheet and application manual.
The STM32WB5MMG boasts a wide range of interface options, and this Processor routes the following interfaces to the pinout on the M.2 connector:
- 2x UART (Standard and Low Power)
- 2x I2C
- SPI
- I2S[1]
- 16-bit Advanced Four-Channel Timer
The module features multiple low-power modes including a shutdown mode that consumes only 13 nA and draws 5.2 mA during radio transmission (Tx at 0 dBm). The module uses an integrated chip antenna for the RF stack with Tx output power up to +6 dBm and Rx sensitivity of -96 dBm for BLE and -100 dBm for 802.15.4 protocols.
W25Q128JVPIM Flash IC
This Processor includes a W25Q128JVPIM 128 Mbit (16 MB) Flash IC to provide extra storage functionality. The Flash IC connects to the STM32WB5MMG's QSPI interface.
1. I2S control is not supported in the SparkFun Arduino boards package for this Processor. Users who wish to use I2S with this Processor should use ST's STM32Cube IDE.
Status LED
The lone LED on this board is tied to the module's PA2 I/O pin to act as a status LED.
MicroMod Pinout
The table below outlines the pin map of this Processor Board as well as the general MicroMod pinout and pin descriptions. Refer to this or the schematic for the complete overview of the pin map.
Board Dimensions
This Processor matches the MicroMod Processor standard sizing and measures 22mm x 22mm, with 15mm to the top notch and 12mm to the E key. For more information regarding the processor board physical standards, head on over to the Getting Started with MicroMod and Designing With MicroMod tutorials.
Hardware Assembly
If you have not already, make sure to check out the Getting Started with MicroMod: Hardware Hookup for information on properly inserting your Processor into your Carrier Board.
OCTOBER 21, 2020
Dive into the world of MicroMod - a compact interface to connect a microcontroller to various peripherals via the M.2 Connector!
Start by inserting the MicroMod STM32WB Processor into your Main or Carrier Board at roughly a 45° angle similar to the image below:
Next, secure the Processor in place using the set screw:
Connecting Everything Up
With your Processor inserted and secured it's time to connect your carrier board to your computer using the USB-C connector on the Carrier. Depending on which carrier you choose and which drivers you already have installed, you may need to install drivers.
Note: If you've never connected a CH340 device to your computer before, you may need to install drivers for the USB-to-serial converter. Check out our section on "How to Install CH340 Drivers" for help with the installation.
How to install CH340 drivers (if you need them) on Windows, Mac OS X, and Linux.
Software Setup
Note: This guide assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, we recommend reading through our tutorial on installing the Arduino IDE.
Installing Arduino Board Definitions
The STM32WB5MMG Processor is included with the STM32duino STM32 Arduino core. Installing this core requires adding a JSON file to the "Additional Boards Files" field in the Preferences menu. Open this by navigating to "File > Preferences" and then either paste the JSON link below into the field or click the button to the right of it to open a larger window like the screenshot below shows:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
With the JSON file added, open the Boards Manager, search for "STM32duino" and install the latest version. Once that finishes installing, check to make sure the MicroMod STM32WB5MMG option appears in the "Boards" menu by navigating to Tools > Board: > STM32 MCU Based Boards > SparkFun Boards>.
Note: The Arduino IDE lets users access most of the STM32WB's features but it does not support I2S or QSPI. If you're looking to take advantage of those features, we recommend using the STM32CubeIDE.
Arduino Example – Blink
Now that we have the board package installed, it's time to make sure everything was assembled properly, and we can upload code to the Processor. We'll just do a simple functionality check with the Blink example to make sure the Processor is working properly and can accept code uploads.
Example – Blink
Blink is one of the built-in examples sketches in Arduino. Open it by navigating to File > Examples > Basics > Blink. You can also copy the code below into a blank sketch if you prefer:
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Next, select your board (MicroMod STM32) and the correct Port and click the "Upload" button. After uploading finishes, the blue STAT LED on the Processor should blink on and off every second.
Resources and Going Further
That's all for this Hookup Guide. For more information about the MicroMod STM32WB5MMG Processor or the MicroMod ecosystem, take a look at the following resources:
MicroMod STM32WB5MMG Processor Documentation
- Schematic
- Eagle Files
- Board Dimensions
- Datasheet (STM32WB55MMG)
- Datasheet (STM32WB55xx)
- Reference Manual (STM32WB55xx)
- GitHub Hardware Repo
MicroMod Documentation:
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum