lupyuen.org/articles/super-blue-pill-like-stm32-blue-pill-but-better.html

647 lines
No EOL
40 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=bsmaklHF" />
<link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=qtvMKcIJ" />
<link rel="canonical" href="https://lupyuen.org/articles/super-blue-pill-like-stm32-blue-pill-but-better.html" />
<!-- End Wayback Rewrite JS Include -->
<title data-rh="true">Super Blue Pill — Like STM32 Blue Pill, But Better!</title>
<meta data-rh="true" charset="utf-8" />
<meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1" />
<meta data-rh="true" name="theme-color" content="#000000" />
<meta data-rh="true" property="og:type" content="article" />
<meta data-rh="true" property="article:published_time" content="2019-10-29T09:52:28.249Z" />
<meta data-rh="true" name="title" content="Super Blue Pill — Like STM32 Blue Pill, But Better!" />
<meta data-rh="true" property="og:title" content="Super Blue PillLike STM32 Blue Pill, But Better!" />
<meta data-rh="true" property="twitter:title" content="Super Blue PillLike STM32 Blue Pill, But Better!" />
<meta data-rh="true" name="description" content="Friendlier for newbies, supports ESP8266 WiFi and nRF24L01" />
<meta data-rh="true" property="og:description" content="Friendlier for newbies, supports ESP8266 WiFi and nRF24L01" />
<meta data-rh="true" property="twitter:description"
content="Friendlier for newbies, supports ESP8266 WiFi and nRF24L01" />
<meta data-rh="true" name="twitter:card" content="summary_large_image" />
<meta data-rh="true" name="twitter:creator" content="@MisterTechBlog" />
<meta data-rh="true" name="author" content="Lup Yuen Lee 李立源" />
<meta data-rh="true" name="robots" content="index,follow" />
<meta data-rh="true" name="referrer" content="unsafe-url" />
<meta data-rh="true" name="twitter:label1" value="Reading time" />
<meta data-rh="true" name="twitter:data1" value="6 min read" />
<meta property="og:image"
content="https://lupyuen.github.io/images/legacy2/g1.jpeg">
<!-- Begin scripts/rustdoc-header.html: Header for Custom Markdown files processed by rustdoc, like chip8.md -->
<link rel="alternate" type="application/rss+xml" title="RSS Feed for lupyuen" href="/rss.xml" />
<link rel="stylesheet" type="text/css" href="../normalize.css">
<link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle">
<link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle">
<link rel="stylesheet" type="text/css" href="../prism.css">
<script src="../storage.js"></script><noscript>
<link rel="stylesheet" href="../noscript.css"></noscript>
<link rel="shortcut icon" href="../favicon.ico">
<style type="text/css">
#crate-search {
background-image: url("../down-arrow.svg");
}
a {
color: #77d;
}
</style>
<!-- End scripts/rustdoc-header.html -->
</head>
<body>
<div id="root">
<div class="a b c">
<article class="meteredContent">
<section class="dk dl dm dn ak do bw n dp"></section><span class="r"></span>
<div>
<div class="dq u dr ds dt du"></div>
<section class="dv dw dx dy dz">
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure ek el em en eo ea ep eq paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g1.jpeg" /></p>
</div>
</div>
</div>
</div>
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<div>
<div id="2594" class="fi fj fk at fl b fm fn fo fp fq fr fs">
<h1 class="fl b fm ft fk">Super Blue Pill — Like STM32 Blue Pill, But Better!</h1>
</div>
<div class="fu">
<div class="n fv fw fx fy">
<div class="o n">
<div><a rel="noopener"
href="https://lupyuen.github.io">
<div class="et fz ga">
<div class="gb n gc o p dq gd ge gf gg gh du"></div>
</div>
</a></div>
<div class="gj ak r">
<div class="n">
<div style="flex:1"><span class="as b at au av aw r fk q">
<div class="gk n o gl"><span class="as cv gm au cd gn go gp gq gr fk"><a
class="da db bb bc bd be bf bg bh bi gs bl bm gt gu" rel="noopener"
href="https://lupyuen.github.io">Lup
Yuen Lee 李立源</a></span>
</div>
</span></div>
</div><span class="as b at au av aw r ax ay"><span class="as cv gm au cd gn go gp gq gr ax">
<div><a class="da db bb bc bd be bf bg bh bi gs bl bm gt gu" rel="noopener"
href="https://lupyuen.github.io/articles/super-blue-pill-like-stm32-blue-pill-but-better">
21 May 2019</a> <!-- -->·
<!-- -->
<!-- -->6
<!-- --> min read<span style="padding-left:4px"></span>
</div>
</span></span>
</div>
</div>
</div>
</div>
</div>
<p id="3067" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih"><em class="ii">Friendlier for
newbies, supports ESP8266 WiFi and nRF24L01</em></p>
<p id="1481" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">I ordered this <a
href="https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">STM32 Blue Pill</a>-compatible
development board from a <a
href="https://detail.tmall.com/item.htm?id=568676838958"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">China-based online shop</a>. The
board seems to be available from other sellers on AliExpress (<a
href="https://www.aliexpress.com/item/STM32F103C8T6-ARM-Mini-system-Development-Board-STM32-Development-Core-Board/32920231706.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">like this one</a>), but I cant be
sure if theirs are 100% identical to mine. Heres my review of the board I bought (I bought two of the
same board) — Im not paid to do this review…</p>
<p id="325e" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Since I couldnt find an official
name for this board, Im calling it the “<strong class="hw in">Super Blue Pill</strong>” because it
works like a Blue Pill and it comes with more features. The Chinese technical documents refer to the
board as “<strong class="hw in">启光c8</strong>” (I pronounce it “<strong class="hw in">Qi Guang
c8</strong>”). The seller on AliExpress calls it “<em class="ii">STM32F103C8T6 ARM Mini system
Development Board STM32 Development Core Board</em>”.</p>
<p id="b6f0" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">My Super Blue Pill (fully
assembled) costs $6 and there seems to be an <a
href="https://www.aliexpress.com/item/STM32F103C8T6-ARM-Minisystem-Development-Board-STM32-Development-Core-Board/32758160921.html?spm=2114.10010108.1000014.2.51ff183cjsZZjn&amp;gps-id=pcDetailBottomMoreOtherSeller&amp;scm=1007.13338.128357.000000000000000&amp;scm_id=1007.13338.128357.000000000000000&amp;scm-url=1007.13338.128357.000000000000000&amp;pvid=5367838c-b2f6-4441-9b8f-661aa609b5e7"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">unsoldered version selling at
about $3</a>. Blue Pill is cheaper, priced at $2. (Search AliExpress for <code
class="fb io ip iq ir b"><a href="https://www.aliexpress.com/wholesale?catId=0&amp;initiative_id=SB_20180924131057&amp;SearchText=stm32f103c8t6+development+board&amp;switch_new_app=y" class="da by ij ik il im" target="_blank" rel="noopener nofollow">stm32f103c8t6 development board</a></code>)
</p>
<p id="8537" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">The online seller provided these
files:</p>
<p id="2f90" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih"><strong
class="hw in">Schematics</strong>: <a href="https://drive.google.com/drive/folders/1sKjXZ-Lj4GetLCEzAHOJK6976EsqD-ZJ" class="da by ij ik il im" target="_blank" rel="noopener nofollow">https://drive.google.com/drive/folders/1sKjXZ-Lj4GetLCEzAHOJK6976EsqD-ZJ</a>
</p>
<p id="1ab6" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih"><strong class="hw in">Sample
Code</strong>: <a href="https://drive.google.com/drive/folders/1ILp-uZoT5DasWUy2G_Jp88a2F-UB3hnd" class="da by ij ik il im" target="_blank" rel="noopener nofollow">https://drive.google.com/drive/folders/1ILp-uZoT5DasWUy2G_Jp88a2F-UB3hnd</a>
</p>
<p id="da6e" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Heres my unofficial translation
of the schematics…</p>
<p id="91ca" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih"><a href="https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI&amp;authuser=0" class="da by ij ik il im" target="_blank" rel="noopener nofollow">https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI</a>
</p>
</div>
</div>
<div class="ea ak">
<div class="figure is it iu iv iw ea ak paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g2.png" /></p>
<figcaption><p><em>Translated Super Blue Pill Schematics. From <a
href="https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI&amp;authuser=0"
class="da by ij ik il im" target="_blank"
rel="noopener nofollow">https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI</a>
</em></p></figcaption>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="be37" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">Specifications</h1>
<p id="832c" class="hu hv fk at hw b hx ka hz kb ib kc id kd if ke ih">The specifications are similar to
<a href="https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">Blue Pill</a> (<a
href="https://stm32-base.org/assets/pdf/boards/original-schematic-STM32F103C8T6-Blue_Pill.pdf"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">schematic</a>), except for the
highlighted lines…</p>
<ul class="">
<li id="1f81" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih kf kg kh"><em
class="ii">MCU</em>: STM32F103C8T6 ARM Cortex M3 72 MHz</li>
<li id="c933" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em
class="ii">RAM</em>: 20 KB</li>
<li id="74cf" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em
class="ii">Internal Flash: </em>64 KB (possibly 128 KB)</li>
<li id="0b8f" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">External Flash:</em> </strong><a
href="https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">Winbond
W25X16</strong></a><strong class="hw in"> </strong>(16 Mbit, SPI interface)</li>
<li id="27b0" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">EEPROM</em>: </strong><a
href="http://ww1.microchip.com/downloads/en/devicedoc/doc0180.pdf"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">Atmel
24C04N</strong></a><strong class="hw in"> </strong>(4 kbit, I2C interface, instead of 24C02 <a
href="https://www.aliexpress.com/item/STM32F103C8T6-ARM-Mini-system-Development-Board-STM32-Development-Core-Board/32920231706.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">listed here</a>)</li>
<li id="a305" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em
class="ii">Real-Time Clock</em>: High Speed External (HSE) crystal oscillator at 8 MHz, Low Speed
External (LSE) crystal oscillator at 32.768 kHz</li>
<li id="42da" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em
class="ii">Jumpers</em>: Boot0 and Boot1</li>
<li id="9ffc" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em
class="ii">Debugger Interface</em>: ST-Link (SWD)</li>
<li id="18e3" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em class="ii">USB
Interface</em>: Micro USB connector (power and data)</li>
<li id="a482" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><em class="ii">Reset
Button</em></li>
<li id="a9f8" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">User Button</em>: PA8</strong></li>
<li id="cc13" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">LED</em>: PA1</strong></li>
<li id="3900" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">TF Card Interface</em></strong><em class="ii"> </em>(SPI)</li>
<li id="7862" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">WiFi Interface</em>: </strong><a
href="https://www.espressif.com/en/products/hardware/esp8266ex/overview"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">Espressif
ESP8266</strong></a><strong class="hw in"> </strong>(UART)</li>
<li id="62fd" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">RF Interface</em>: </strong><a
href="https://www.sparkfun.com/datasheets/Components/nRF24L01_prelim_prod_spec_1_2.pdf"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">Nordic
Semiconductor nRF24L01</strong></a><strong class="hw in"> </strong>(SPI)</li>
<li id="28b9" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">Ethernet Interface</em>: </strong><a
href="https://www.wiznet.io/product-item/w5500/"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">WizNET
W5500</strong></a></li>
<li id="5cad" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh"><strong
class="hw in"><em class="ii">Audio Interface</em>: </strong><a
href="http://www.vlsi.fi/en/products/vs1053.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow"><strong class="hw in">VLSI
Solution VS1053</strong></a></li>
</ul>
<p id="f115" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Differences from Blue Pill:</p>
<ul class="">
<li id="2097" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih kf kg kh">Blue Pill LED is
connected to PC13</li>
<li id="9d50" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh">Blue Pill has no
user-programmable buttons</li>
<li id="5e2b" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh">Blue Pill doesnt
have external flash and EEPROM</li>
<li id="0318" class="hu hv fk at hw b hx ki hz kj ib kk id kl if km ih kf kg kh">Blue Pill doesnt
have interfaces for TF Card, WiFi, RF, Ethernet and Audio</li>
</ul>
<p id="c7ae" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">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.</p>
<p id="a5d8" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">The Super Blue Pill appears to be
a new variant of Blue Pill, since it doesnt appear in <a
href="https://stm32-base.org/boards/"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">this list of STM32F103 boards</a>.
(UPDATE: This board has been recently named “<a
href="https://stm32-base.org/boards/STM32F103C8T6-Black-Board"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">Black Board</a>”)</p>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="9427" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">Form Factor</h1>
<div class="figure is it iu iv iw ea fg ko bv kp kq kr ks kt bg ku kv kw kx ky kz paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g3.png" /></p>
<figcaption><p><em>Super Blue Pill Form Factor</em></p></figcaption>
</div>
<p id="7089" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Super Blue Pill is 52 mm by 41 mm
— half the size of a credit card. Its slightly shorter than Blue Pill, and twice the width of Blue
Pill.</p>
<p id="68f6" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Super Blue Pill is smaller than
<a href="https://en.wikipedia.org/wiki/Arduino_Uno"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">Arduino Uno</a> (68 mm by 53 mm)
and most of the <a
href="https://www.st.com/en/evaluation-tools/stm32-mcu-mpu-eval-tools.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">STM32 Nucleo Boards and Discovery
Kits</a>.</p>
<p id="810c" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">The form factor looks similar to
the <a
href="https://www.emaxmodel.com/fpv-controllers/emax-skyline32-flight-controller-advanced.html#product_tabs_description_tabbed"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">controller boards for flying
drones</a>. Like the Super Blue Pill, some drones use <a
href="http://www.crazepony.com/products/mini.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">nRF24L01 for RF
communications</a>.</p>
<div class="figure is it iu iv iw ea dm dn paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g4.jpeg" /></p>
<figcaption><p><em>Super Blue Pill and Blue Pill</em></p></figcaption>
</div>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="ecbb" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">Sharing of SPI1 port</h1>
</div>
</div>
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure is it iu iv iw ea ep eq paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g5.png" /></p>
<figcaption><p><em>Port SPI1 is shared by nRF24L01, TF Card and
External Flash interfaces</em></p></figcaption>
</div>
</div>
</div>
</div>
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<p id="06e1" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">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.
</p>
<p id="2544" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Port SPI2 is not used by any
interface on the board.</p>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="a399" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">OLED and TFT Interface</h1>
</div>
</div>
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure is it iu iv iw ea ep eq paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g6.jpeg" /></p>
</div>
</div>
</div>
</div>
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<div class="figure is it iu iv iw ea fg ko bv kp kq kr ks kt bg ku lh li lj lk kz">
<p><script src="https://gist.github.com/lupyuen/c8974f95d69152d744e1040c4988a801.js"></script></p>
<figcaption><p><em>Connector for OLED and TFT displays
</em></p></figcaption>
</div>
<p id="36e0" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">There is an 8-hole connector for
OLED and TFT displays, connected to Pins PB1, 3, 5, 7, 9, 11, 3.3V, GND. However…</p>
<p id="3d57" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">1⃣ Pins PB3 and PB5 belong to
the Alternate SPI1 Port. However the Primary SPI1 Port is used by the nRF24L01 connector, so we cant
use Alternate SPI1 if the nRF24L01 connector is in use.</p>
<p id="15c4" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">2⃣ The pins dont belong to any
specific I2C port (since SCL1 and SCL2 are missing). So we cant use Blue Pills I2C API to control
the display.</p>
<p id="7967" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">3⃣ We could use <a
href="https://en.wikipedia.org/wiki/Bit_banging"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">bit-banging</a> to control the
display. Bit-banging, which requires precise timing, might be a problem if we need to support
multitasking with a real-time OS like <a
href="https://mynewt.apache.org/"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">Apache Mynewt</a>.</p>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="bc96" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">Compatibility with Blue Pill
</h1>
<p id="7514" class="hu hv fk at hw b hx ka hz kb ib kc id kd if ke ih">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), <a
href="https://www.lazada.sg/-i105322107-s106873847.html?urlFlag=true&amp;mp=1"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">ST-Link V2 compatible debugger</a>
and OpenOCD.</p>
<p id="479d" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">I tested this program that I
built for Blue Pill, based on <a
href="https://mynewt.apache.org/"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">Apache Mynewt</a> real-time OS
with preemptive multitasking…</p>
<div class="ek el em en eo lm"><a
href="https://github.com/lupyuen/stm32bluepill-mynewt-sensor?source=post_page-----6d341d9347da----------------------"
rel="noopener nofollow">
<section class="lp dm dn ak bw n ap lq lr ls lt lu lv lw lx ly lz ma mb mc md me">
<div class="mf n dp p mg mh">
<h2 class="as jo mi au fk">
<div class="cd ln go gp lo gr">lupyuen/stm32bluepill-mynewt-sensor</div>
</h2>
</div>
<div class="ml r">
<div class="mm r mn mo mp ml mq mr ms"></div>
</div>
</section>
</a></div>
<p id="70f2" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">…according to the instructions at
this article…</p>
<div class="ek el em en eo lm"><a rel="noopener"
href="https://lupyuen.github.io/articles/build-your-iot-sensor-network-stm32-blue-pill-nrf24l01-esp8266-apache-mynewt-thethings-io">
<section class="lp dm dn ak bw n ap lq lr ls lt lu lv lw lx ly lz ma mb mc md me">
<div class="mf n dp p mg mh">
<h2 class="as jo mi au fk">
<div class="cd ln go gp lo gr">Build Your IoT Sensor Network — STM32 Blue Pill + nRF24L01 +
ESP8266 + Apache Mynewt + thethings.io</div>
</h2>
</div>
<div class="ml r">
<div class="mt r mn mo mp ml mq mr ms"></div>
</div>
</section>
</a></div>
<p id="4a3a" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Heres a video of my testing done
with a Super Blue Pill with nRF24L01+ and another Super Blue Pill with nRF24L01+ and ESP-01S…</p>
</div>
</div>
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure is it iu iv iw ea">
<div class="fa r et">
<div class="ix r"><iframe
src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F9ikpdsu97KU%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D9ikpdsu97KU&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F9ikpdsu97KU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube"
allowfullscreen="" frameborder="0" height="300" width="400"
title="Mynewt Sensor Network with STM32 Blue Pill, nRF24L01, ESP8266 and thethings.io"
class="dq t u ex ak" scrolling="auto"></iframe></div>
</div>
</div>
</div>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="6c3f" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">ESP8266 and nRF24L01 Testing
</h1>
</div>
</div>
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure is it iu iv iw ea ep eq paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g7.jpeg" /></p>
<figcaption><p><em>Super Blue Pill with ESP-01S and nRF24L01+
</em></p></figcaption>
</div>
</div>
</div>
</div>
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<div class="figure is it iu iv iw ea fg ko bv kp kq kr ks kt bg ku lh li lj lk kz">
<p><script src="https://gist.github.com/lupyuen/2eff9acb902ab2e00e1097d7de2b7187.js"></script></p>
<figcaption><p><em>ESP8266 Connector</em></p></figcaption>
</div>
<p id="51d1" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">The ESP8266 and nRF24L01
connectors on Super Blue Pill were designed to fit popular models of the ESP8266 and nRF24L01 breakout
boards (I bought mine <a
href="https://www.lazada.sg/-i281003794-s442063247.html?urlFlag=true&amp;mp=1&amp;spm=spm=a2o42.order_details.item_title.1"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">here</a> and <a
href="https://www.lazada.sg/-i288146861-s465579095.html?urlFlag=true&amp;mp=1"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">here</a>).</p>
<div class="figure is it iu iv iw ea fg ko bv kp kq kr ks kt bg ku lh li lj lk kz">
<p><script src="https://gist.github.com/lupyuen/570bd8b42471c052c4a7e2059c03092f.js"></script></p>
<figcaption><p><em>nRF24L01 Connector</em></p></figcaption>
</div>
<p id="7c2b" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">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)</p>
<p id="21b2" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">nRF24L01 uses an IRQ pin to raise
an interrupt when data is received. The interrupt worked without problems on Super Blue Pill.</p>
<p id="cbdf" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">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.</p>
</div>
</div>
<div class="ea">
<div class="n p">
<div class="eb ec ed ee ef eg ag eh ah ei aj ak">
<div class="figure is it iu iv iw ea ep eq paragraph-image">
<p><img src="https://lupyuen.github.io/images/legacy2/g8.jpeg" /></p>
<figcaption><p><em>Field test for Super Blue Pill with ESP-01S
and nRF24L01+</em></p></figcaption>
</div>
</div>
</div>
</div>
</section>
<hr class="jd cv je jf jg ja jh ji jj jk jl" />
<section class="dv dw dx dy dz">
<div class="n p">
<div class="ac ae af ag ah fh aj ak">
<h1 id="4932" class="jm jn fk at as jo jp jq jr js jt ju jv jw jx jy jz">Conclusion</h1>
<p id="7f88" class="hu hv fk at hw b hx ka hz kb ib kc id kd if ke ih">I highly recommend the Super Blue
Pill if youre learning STM32 development. It may be more expensive than the older Blue Pill ($6 vs
$2), but its fully assembled with various useful connectors: ESP8266 WiFi, nRF24L01, TF Card, …</p>
<p id="eaa7" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">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.</p>
<p id="1279" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">As an IoT Trainer Im
particularly excited by Super Blue Pills 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 <a
href="https://github.com/lupyuen/stm32bluepill-mynewt-sensor"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">nRF24L01-to-ESP8266 router
software</a> shall bridge the Super Blue Pills to a cloud-based IoT Server (like <a
href="https://thethings.io/" class="da by ij ik il im"
target="_blank" rel="noopener nofollow">thethings.io</a>).</p>
<p id="50be" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Super Blue Pill may be the
breakthrough that makes STM32 embedded development accessible and affordable to makers and students
worldwide.</p>
<h1 id="73d7" class="jm jn fk at as jo jp mw jr mx jt my jv mz jx na jz">Further Reading</h1>
<p id="f782" class="hu hv fk at hw b hx ka hz kb ib kc id kd if ke ih">Heres the book that got me
started on Blue Pill programming, I highly recommend it for Blue Pill and Super Blue Pill beginners…
</p>
<div class="ek el em en eo lm"><a
href="https://www.apress.com/us/book/9781484236239?source=post_page-----6d341d9347da----------------------#otherversion=9781484236246"
rel="noopener nofollow">
<section class="lp dm dn ak bw n ap lq lr ls lt lu lv lw lx ly lz ma mb mc md me">
<div class="mf n dp p mg mh">
<h2 class="as jo mi au fk">
<div class="cd ln go gp lo gr">Beginning STM32 - Developing with FreeRTOS, libopencm3 and GCC
| Warren Gay | Apress</div>
</h2>
</div>
<div class="ml r">
<div class="nb r mn mo mp ml mq mr ms"></div>
</div>
</section>
</a></div>
<p id="7dfe" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">This book is more advanced and it
covers the entire STM32 family of microcontrollers. I use it as my STM32 reference…</p>
<div class="ek el em en eo lm"><a
href="https://leanpub.com/mastering-stm32?source=post_page-----6d341d9347da----------------------"
rel="noopener nofollow">
<section class="lp dm dn ak bw n ap lq lr ls lt lu lv lw lx ly lz ma mb mc md me">
<div class="mf n dp p mg mh">
<h2 class="as jo mi au fk">
<div class="cd ln go gp lo gr">Mastering STM32</div>
</h2>
</div>
<div class="ml r">
<div class="nc r mn mo mp ml mq mr ms"></div>
</div>
</section>
</a></div>
<p id="3926" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">The official docs on STM32F103C8
<a href="https://www.st.com/en/microcontrollers-microprocessors/stm32f103c8.html"
class="da by ij ik il im" target="_blank" rel="noopener nofollow">are here</a></p>
<p id="4bb5" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Recently I have adopted Rust as a
safer, simpler way to build embedded applications (with NB-IoT!)…</p>
<div class="ek el em en eo lm"><a rel="noopener"
href="https://lupyuen.github.io/articles/rust-rocks-nb-iot-stm32-blue-pill-with-quectel-bc95-g-on-apache-mynewt">
<section class="lp dm dn ak bw n ap lq lr ls lt lu lv lw lx ly lz ma mb mc md me">
<div class="mf n dp p mg mh">
<h2 class="as jo mi au fk">
<div class="cd ln go gp lo gr">Rust Rocks NB-IoT! STM32 Blue Pill with Quectel BC95-G on
Apache Mynewt</div>
</h2>
</div>
<div class="ml r">
<div class="nd r mn mo mp ml mq mr ms"></div>
</div>
</section>
</a></div>
</div>
</div>
</section>
</div>
</article>
</div>
</div>
<ul>
<li>
<p><a href="https://github.com/sponsors/lupyuen">Sponsor me a coffee</a></p>
</li>
<li>
<p><a href="https://lupyuen.github.io">Check out my articles</a></p>
</li>
<li>
<p><a href="https://lupyuen.github.io/rss.xml">RSS Feed</a></p>
</li>
</ul>
</body>
</html>
<!--
FILE ARCHIVED ON 19:42:15 Dec 04, 2019 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 01:29:51 Feb 23, 2021.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
-->
<!--
playback timings (ms):
exclusion.robots: 0.358
esindex: 0.016
load_resource: 102.386
captures_list: 235.087
PetaboxLoader3.resolve: 69.823
exclusion.robots.policy: 0.342
PetaboxLoader3.datanode: 105.587 (4)
RedisCDXSource: 9.953
LoadShardBlock: 192.998 (3)
CDXLines.iter: 27.877 (3)
-->