<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>STM32F103 "Blue Pill" programming in Rust</title>
        <link>https://diode.zone/videos/watch/515f8edb-3766-419f-a107-a7c2902a881d</link>
        <description>In this video I explain how to run a rust program on an inexpensive ARM development board. My notes are here: https://lorem.club/~/UglyhackLabNotes/stm32f103-from-scratch-lab-notes</description>
        <lastBuildDate>Tue, 20 Oct 2026 16:40:22 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://diode.zone</generator>
        <image>
            <title>STM32F103 "Blue Pill" programming in Rust</title>
            <url>https://diode.zone/lazy-static/avatars/61b689b7-84d5-43c7-9fa8-e63a7fd1d952.png</url>
            <link>https://diode.zone/videos/watch/515f8edb-3766-419f-a107-a7c2902a881d</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://diode.zone/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://diode.zone/feeds/video-comments.xml?videoId=515f8edb-3766-419f-a107-a7c2902a881d" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - somerandom]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=824</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=824</guid>
            <pubDate>Wed, 28 Aug 2019 01:22:05 GMT</pubDate>
            <content:encoded><![CDATA[<p>FWIW the thumb thing is because ARM instructions come in two broad flavours ARM and thumb, the smaller processors (I think all the Cortex M's possibly others too) only support thumb.</p>
<p>The GPIOC/apb2 bit is because you need to hook the GPIO module inside the uC up to a clock source (the clock block is hyper flexible in those uC's you can do a lot of weird and wonderful stuff with them), IIRC you need to do that with pretty much all the peripherals you want to use but it's been a few years since I worked with Cortex Mx stuff.</p>
]]></content:encoded>
            <dc:creator>somerandom</dc:creator>
        </item>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - uglyhack]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=441</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=441</guid>
            <pubDate>Fri, 23 Aug 2019 17:38:31 GMT</pubDate>
            <content:encoded><![CDATA[<p>@swedishhat You're welcome, this video was born out of a couple of frustrating evenings trying to figure it out myself.</p>
]]></content:encoded>
            <dc:creator>uglyhack</dc:creator>
        </item>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - uglyhack]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</guid>
            <pubDate>Fri, 23 Aug 2019 17:35:58 GMT</pubDate>
            <content:encoded><![CDATA[<p>@sajattack Thanks for the comment. It's quite a flexible board, I think it's even possible to program it over UART if you want. There is also some kind of Arduino setup for it.</p>
<p>I haven't looked into it, but I know there are a couple of different boot options when you use the boot jumper on the dev board. Maybe that would help solve the issue?</p>
<p>Personally I really like to have the debugger available, and as far as I know that isn't possible over USB.</p>
]]></content:encoded>
            <dc:creator>uglyhack</dc:creator>
        </item>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - sajattack]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</guid>
            <pubDate>Sun, 18 Aug 2019 02:54:59 GMT</pubDate>
            <content:encoded><![CDATA[<p>Oh I also forgot to mention you have to offset your application 16k for the bootloader. If anyone wants more details let me know.</p>
]]></content:encoded>
            <dc:creator>sajattack</dc:creator>
        </item>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - sajattack]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=537</guid>
            <pubDate>Sun, 18 Aug 2019 02:49:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>One trick for easier flashing I found -- <a href="https://github.com/mmoskal/uf2-stm32f103" target="_blank" rel="noopener noreferrer">https://github.com/mmoskal/uf2-stm32f103</a><br />
Just upload this once with your j-link/st-link/bmp or whatever and then you can program over the built-in USB port. It's the same method adafruit uses on all their boards. You need to convert your binary. I also made a Rust tool to convert a regular binary (arm-none-eabi-objcopy -O binary) into the format this bootloader expects -- <a href="https://github.com/sajattack/uf2conv-rs" target="_blank" rel="noopener noreferrer">https://github.com/sajattack/uf2conv-rs</a> I successfully flashed some Rust with this bootloader, but it seems to only run after flashing, not on a reset. Not sure what the issue is there. Anyway, just wanted to share my experience with Rust and UF2 on these boards.</p>
]]></content:encoded>
            <dc:creator>sajattack</dc:creator>
        </item>
        <item>
            <title><![CDATA[STM32F103 "Blue Pill" programming in Rust - swedishhat]]></title>
            <link>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=441</link>
            <guid>https://diode.zone/w/b3NxyKb1TxK3KE7DDNVJcP;threadId=441</guid>
            <pubDate>Wed, 14 Aug 2019 07:54:52 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is super cool. I've been wondering how to start making that transition from C to Rust for embedded systems. Thanks for posting</p>
]]></content:encoded>
            <dc:creator>swedishhat</dc:creator>
        </item>
    </channel>
</rss>