Friendlier for newbies, supports ESP8266 WiFi and nRF24L01
I ordered this STM32 Blue Pill-compatible development board from a China-based online shop. The board seems to be available from other sellers on AliExpress (like this one), but I can’t be sure if theirs are 100% identical to mine. Here’s my review of the board I bought (I bought two of the same board) — I’m not paid to do this review…
Since I couldn’t find an official name for this board, I’m calling it the “Super Blue Pill” because it works like a Blue Pill and it comes with more features. The Chinese technical documents refer to the board as “启光c8” (I pronounce it “Qi Guang c8”). The seller on AliExpress calls it “STM32F103C8T6 ARM Mini system Development Board STM32 Development Core Board”.
My Super Blue Pill (fully assembled) costs $6 and there seems to be an unsoldered version selling at about $3. Blue Pill is cheaper, priced at $2. (Search AliExpress for
stm32f103c8t6 development board)
The online seller provided these files:
Here’s my unofficial translation of the schematics…
- MCU: STM32F103C8T6 ARM Cortex M3 72 MHz
- RAM: 20 KB
- Internal Flash: 64 KB (possibly 128 KB, see this article)
- External Flash: Winbond W25X16 (16 Mbit, SPI interface)
- EEPROM: Atmel 24C04N (4 kbit, I2C interface, instead of 24C02 listed here)
- Real-Time Clock: 32 kHz crystal
- Jumpers: Boot0 and Boot1
- Debugger Interface: ST-Link (SWD)
- USB Interface: Micro USB connector (power and data)
- Reset Button
- User Button: PA8
- LED: PA1
- TF Card Interface (SPI)
- WiFi Interface: Espressif ESP8266 (UART)
- RF Interface: Nordic Semiconductor nRF24L01 (SPI)
- Ethernet Interface: WizNET W5500
- Audio Interface: VLSI Solution VS1053
Differences from Blue Pill:
- Blue Pill LED is connected to PC13
- Blue Pill has no user-programmable buttons
- Blue Pill doesn’t have external flash and EEPROM
- Blue Pill doesn’t have interfaces for TF Card, WiFi, RF, Ethernet and Audio
Unlike Blue Pill, my Super Blue Pill was delivered with headers all soldered, no soldering required. The RTC Power Supply battery connector was not provided.
The Super Blue Pill appears to be a new variant of Blue Pill, since it doesn’t appear in this list of STM32F103 boards.
Super Blue Pill is 52 mm by 41 mm — half the size of a credit card. It’s slightly shorter than Blue Pill, and twice the width of Blue Pill.
Sharing of SPI1 port
The nRF24L01, TF Card and External Flash interfaces are connected to the same SPI port, SPI1. We select the interface by toggling the respective Chip Select Pins: PB2 for nRF24L01, PA4 for TF Card, PC13 for External Flash.
Port SPI2 is not used by any interface on the board.
OLED and TFT Interface
There is an 8-hole connector for OLED and TFT displays, connected to Pins PB1, 3, 5, 7, 9, 11, 3.3V, GND. However…
1️⃣ Pins PB3 and PB5 belong to the Alternate SPI1 Port. However the Primary SPI1 Port is used by the nRF24L01 connector, so we can’t use Alternate SPI1 if the nRF24L01 connector is in use.
2️⃣ The pins don’t belong to any specific I2C port (since SCL1 and SCL2 are missing). So we can’t use Blue Pill’s I2C API to control the display.
Compatibility with Blue Pill
Super Blue Pill works the same way as Blue Pill, no code changes needed (except for LED). I tested with Visual Studio Code (Windows and macOS), ST-Link V2 compatible debugger and OpenOCD.
I tested this program that I built for Blue Pill, based on Apache Mynewt real-time OS with preemptive multitasking…
Apache Mynewt Sensor Network Application for STM32 Blue Pill with ESP8266 and nRF24L01 (includes Geolocation) …
…according to the instructions at this article…
Build Your IoT Sensor Network — STM32 Blue Pill + nRF24L01 + ESP8266 + Apache Mynewt + thethings.io
Learn to build a Sensor Network that routes sensor data from the nRF24L01 local network to the ESP8266 WiFi network
Here’s a video of my testing done with a Super Blue Pill with nRF24L01+ and another Super Blue Pill with nRF24L01+ and ESP-01S…
ESP8266 and nRF24L01 Testing
Both the ESP8266 and nRF24L01 worked fine when I ran the program above to access the two modules concurrently. (The program routes messages from nRF24L01 to ESP8266)
nRF24L01 uses an IRQ pin to raise an interrupt when data is received. The interrupt worked without problems on Super Blue Pill.
In the test that I conducted outdoors in an urban area, the range of the nRF24L01+ on Super Blue Pill was at least 200 metres.
I highly recommend the Super Blue Pill if you’re learning STM32 development. It may be more expensive than the older Blue Pill ($6 vs $2), but it’s fully assembled with various useful connectors: ESP8266 WiFi, nRF24L01, TF Card, …
The GPIO pins oriented upwards allow for easy connection of sensors, transceivers and other modules via jumper cables, which is good for prototyping. With the older Blue Pill, we need a breadboard for prototyping.
As an IoT Trainer I’m particularly excited by Super Blue Pill’s support for ESP8266 WiFi and nRF24L01. Within a classroom, I could set up an nRF24L01 network of Super Blue Pills for teaching sensor device development. Another Super Blue Pill installed with my nRF24L01-to-ESP8266 router software shall bridge the Super Blue Pills to a cloud-based IoT Server (like thethings.io).
Super Blue Pill may be the breakthrough that makes STM32 embedded development accessible and affordable to makers and students worldwide.
Here’s the book that got me started on Blue Pill programming, I highly recommend it for Blue Pill and Super Blue Pill beginners…
Beginning STM32 - Developing with FreeRTOS, libopencm3 and GCC | Warren Gay | Apress
Using FreeRTOS and libopencm3 instead of the Arduino software environment, this book will help you develop…
This book is more advanced and it covers the entire STM32 family of microcontrollers. I use it as my STM32 reference…
With more than 600 microcontrollers, STM32 is probably the most complete ARM Cortex-M platform on the market. This book…
The official docs on STM32F103C8 are here
Recently I have adopted Rust as a safer, simpler way to build embedded applications (with NB-IoT!)…