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:‎
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:‎
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
Datasheet (STM32WB55MMG)‎
Datasheet (STM32WB55xx)
Reference Manual (STM32WB55xx)
MicroMod Documentation:‎

