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…
Translated Super Blue Pill Schematics. From https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI
- MCU: STM32F103C8T6 ARM Cortex M3 72 MHz
- RAM: 20 KB
- Internal Flash: 64 KB (possibly 128 KB)
- External Flash: Winbond W25X16 (16 Mbit, SPI interface)
- EEPROM: Atmel 24C04N (4 kbit, I2C interface, instead of 24C02 listed here)
- Real-Time Clock: High Speed External (HSE) crystal oscillator at 8 MHz, Low Speed External (LSE) crystal oscillator at 32.768 kHz
- 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.
Super Blue Pill Form Factor
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.
Super Blue Pill and Blue Pill
Sharing of SPI1 port
Port SPI1 is shared by nRF24L01, TF Card and External Flash interfaces
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
Connector for OLED and TFT displays
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…
…according to the instructions at this article…
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
Super Blue Pill with ESP-01S and nRF24L01+
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.
Field test for Super Blue Pill with ESP-01S and nRF24L01+
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…
This book is more advanced and it covers the entire STM32 family of microcontrollers. I use it as my STM32 reference…
The official docs on STM32F103C8 are here
Recently I have adopted Rust as a safer, simpler way to build embedded applications (with NB-IoT!)…