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.

Bit-banding explained: A key feature of ARM Cortex-M3/M4


Yahya Tawil over at Atadiat wrote in to let us know about a corner-stone feature in ARM Cortex-M3 processors called bit-banding:

Writing a portable code is one of the concerns for developers, and while dealing with bit-fields is not standard in all compilers, it is not very advisable to use.
When a feature is available in the hardware itself, you will not have any issues in porting the code from vendor to vendor while both are using the same ARM Cortex-M3 core.

ARM Cortex-M3 features a 1 MB area in SRAM memory called bit-band region. In this region each bit can be accessed individually. To access to bit-band region bits you need to do so via an aliased region, where each word in this region is an alias to one bit in the bit-band region.

More details at Atadiat homepage.

Via the contact form.

Hands-on with the PocketBeagle: a $25 Linux computer with lots of I/O pins


Ken Shirriff shares his experience with a low-cost, compact Linux computer PocketBeagle:

The PocketBeagle is a tiny but powerful inexpensive key-fob-sized open source Linux computer. It has 44 digital I/O pins, 8 analog inputs, and supports multiple serial I/O protocols, making it very useful as a controller. In addition, its processor includes two 200-MHz microcontrollers that allow you to implement low-latency, real-time functions while still having the capabilities of a Linux system This article discusses my experience trying out different features of the PocketBeagle, along with some technical details.

More details at Ken Shirriff’s blog.

SMA solar readout


Jean-Claude writes:

This is the first post of a 3-part series about reading out an SMA solar inverter over Bluetooth and displaying some readings every few seconds. Long-time readers may remember the Solar at last weblog post from several years ago and the SMA Relay, based on a JeeNode v6. The Bluetooth readout code was derived from Stuart Pittaway’s Nanode SMA PV Monitor code.
This project is for a friend who’s birthday is coming up shortly, and who has the same SMA 5000TL inverter as I do – although it can probably be used with other models.

Project info at

Using Python to store data from many BLE devices


Erich Styger has written an article describing a technique he used to collect and store data from several BLE devices with Raspberry Pi and Python scripting:

BLE (Bluetooth Low Energy) sensor devices like the Hexiwear are great, but they cannot store a large amount of data. For a research project I have to collect data from many BLE devices for later processing. What I’m using is a Python script running on the Raspberry Pi which collects the data and stores it on a file

More details at

MCUXpresso IDE tutorial series


Erich Styger has made a series of tutorial blog posts on using the new NXP MCUXpresso IDE.

Published so far are:

  • MCUXpresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers
  • MCUXpresso IDE: S-Record, Intel Hex and Binary Files
  • MCUXpresso IDE: Adding the Eclipse Marketplace Client
  • MCUXpresso IDE: Importing Kinetis Design Studio Projects
  • MCUXpresso IDE: Installing Processor Expert into Eclipse Neon
  • MCUXpresso IDE: Terminate and Disconnect a Debug Session
  • MCUXpresso IDE: Blinky the NXP LPC800-DIP Board

More details at

Modifying the Teensy 3.5 and 3.6 for ARM SWD debugging


Erich Styger @ writes:

Looking for a small, inexpensive ($25-30) ARM development board (say 120-180 MHz ARM Cortex-M4 with FPU, 512kB-1MB of FLASH and 256 KByte of RAM? Then have a look at the Teensy 3.5 and Teensy 3.6 by PJRC/Paul Stoffregen
The only problem? it is not possible to debug it :-(. At least not in the traditional sense. This article is about how to change the board to use it with any normal SWD debugging tool e.g. Eclipse and the Segger J-Link :-).

More details at MCU on Eclipse homepage.