Building a USB bootloader for an STM32


Kevin Cuzner writes:

As my final installment for the posts about my LED Wristwatch project I wanted to write about the self-programming bootloader I made for an STM32L052 and describe how it works. So far it has shown itself to be fairly robust and I haven’t had to get out my STLink to reprogram the watch for quite some time.
The main object of this bootloader is to facilitate reprogramming of the device without requiring a external programmer.

More details on Projects & Libraries’ homepage.

STM32F103 vs GD32F103 round 4: SPI master


Sjaak writes, “This is part 4 in the series where we compare the STM32F103 with its Chinese counterpart the GD32F103. Both are ARM Cortex M3 microcontrollers which are mostly pin, peripheral and register compatible. Now we compare the SPI master peripheral of both chips.”

More details at

Check out the video after the break. 

LoRa module in DIL form


Mare writes:

Murata produces LoRa module CMWX1ZZABZ-xxx based on SX1276 transceiver and STM32L072CZ microcontroller. The soldering of the LGA module is not very hobby-friendly. I constructed small breakout PCB for this module with additional buck/boost switcher and place for SMA connector. The transceiver features the LoRa®long-range modem, providing ultra-long-range spread spectrum communication and high interference immunity, minimizing current consumption. Since CMWX1ZZABZ-091 is an “open” module, it is possible to access all STM32L072 peripherals such as ADC, 16-bit timer, LP-UART, I2C, SPI and USB 2.0 FS (supporting BCD and LPM), which are not used internally by SX1276.

More details on Mare & Gal Electronics site. Project files are available at Github.

STM32F103 vs GD32F103 round 3: UART


Here’s the part 3 of Sjaak’s post comparing the GD32 to the STM32:

Since the GD32F103 can run as fast as 108MHz but has not a proper USB clock divider to provide a 48MHz clock for USB communication we need another way to communicate with the outside world. Since the early days of computing the easiest way to go is a asynchronous serial interface using the UART peripheral. I can try to explain how this protocol works, but here is a better write-up.

If you missed part 1 and part 2, be sure to check it out.

More info at

STM32F103 vs GD32F103 round 2: Blink a LED


A follow-up to the STM32F103 vs GD32F103 round 1- Solderability post, Sjaak writes:

The defacto ‘hello world’ for microcontrollers is blink a LED at a steady rate. This is exactly what I’m going to do today. I made a small 5×5 development board, soldered it up and started programming. In this first example we not gonna use fancy IRQs or timers to blink at a steady rate, but we insert NOPsas delay. This would give an idea of the RAW performance of the chip. The used code is simple; set up the maximum available clock available and then toggle RA0 for ever.

More details at

STM32F103 vs GD32F103 round 1: Solderability


Sjaak writes:

I locked myself into the basement with a couple of PCBs, chips and fresh flux for a couple of days. For the STM32F103 vs GD32F103 challenge I needed to have two identical boards with a different microcontroller. As far as I could judge both chips are legit and not counterfeits as we bought both chips from (different) reputable sellers. The used chips are GD32F103CBT6 and STm32F103CBT7. The STM32F103CBT7 is the industrial rated part of the STM32F103CBT6 and is identical except for the temperature range.

More details at

STM8 Microcontrollers


Here’s a three-part series of posts by Shawon Shahryiar detailing the STM8 microcontrollers:

STM8 microcontrollers are 8-bit general purpose microcontrollers from STMicroelectronics (STM). STM is famous mainly for its line of 32-bit ARM Cortex microcontrollers – the STM32s. STM8 microcontrollers are rarely discussed in that context. However, STM8 MCUs are robust and most importantly they come packed with lots of hardware features. Except for the ARM core, 32-bit architecture, performance and some minor differences, STM8s have many peripheral similarities with STM32s.

Read the full post at Embedded Lab’s blogPart 1 and Part 2 are also available.

Check out the video after the break.


STM32F103 vs GD32F103


Sjaak wrote about a Chinese ARM chip compared to a ST ARM chip:

Most of us do know the ST line of ARM chips called STM32. They come in multiple flavours and the STM32F103 is one of the most common entry level family of chips. They are called by ST as mainstream. They are a full featured 32 bit ARM Cortex M3 chip running at max. 72MHz with all the requisite peripherals like ADC, DAC, USB, CAN, I2C, I2S, SPI, SDIO, PWM, RTC, interrupts and various timers. Lets zoom into the STM32F103C8 chip (which seems the be the go-to choice of the Chinese el-cheapo development breakout boards)

See the full post at

Programming STM32F103 Blue Pill using USB bootloader and PlatformIO


Coyt Barringer wrote a post on his blog showing how he program the Blue Pill STM32F103 using USB Bootloader and PlatformIO:

This is the infamous Blue Pill board – a $2 ARM STM32F103 development board with all the capabilities of a Teensy 3.x at a fraction of the price of an Arduino. So what’s the catch?
I’ll tell you – software support.
A couple weeks ago I decided to invest some time learning this platform because I was sick of paying 20+ dollars for a Teensy. While the PJRC platforms are fantastic, they are expensive and need a proprietary boot loader in order to work. I want a small and powerful arm chip which I can integrate INTO my own PCBs and the Teensy does not easily or cheaply allow this. The Blue Pill and it’s derivatives appear to be just the thing I need!

See the full post at

Yet another ARM development tutorial


ARM development tutorial at

It has been a while since I wrote about ARM development. I recently made a Black Magic Probe (BMP) clone which acts different then the original. The BMP can source power to the target, but on my version control signal is inverted. Not a big deal, but can give unintentional results and has to be fixed. Just for my own memory I wrote down all the steps involved in setting it up and shared it in order to be useful for others.

See the full post on smdprutser blog.