<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://stm32world.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lth</id>
	<title>Stm32World Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://stm32world.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lth"/>
	<link rel="alternate" type="text/html" href="https://stm32world.com/wiki/Special:Contributions/Lth"/>
	<updated>2026-10-22T04:42:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://stm32world.com/w/index.php?title=External_and_Timer_Interrupts&amp;diff=8718</id>
		<title>External and Timer Interrupts</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=External_and_Timer_Interrupts&amp;diff=8718"/>
		<updated>2026-10-20T06:51:15Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;{{Video |series=STM32 Remake Video |number=4 |title=External and Timer Interrupts |youtube-id=g_MSOaPuJvM |description=2026 Remake of STM32 Tutorial #6 covering STM32 Interrup...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Video&lt;br /&gt;
|series=STM32 Remake Video&lt;br /&gt;
|number=4&lt;br /&gt;
|title=External and Timer Interrupts&lt;br /&gt;
|youtube-id=g_MSOaPuJvM&lt;br /&gt;
|description=2026 Remake of STM32 Tutorial #6 covering STM32 Interrupts.  We will cover both external interrupts (EXTI) and TImer Interrupts.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Raspberry_Pi_Pico&amp;diff=8717</id>
		<title>Raspberry Pi Pico</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Raspberry_Pi_Pico&amp;diff=8717"/>
		<updated>2026-10-16T01:47:23Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Miscellaneous Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Raspberry Pi Pico]][[File:Third party RP2350 Board w. USB-C.jpg|thumb|300px|Third party RP2350 board w. USB-C]]&lt;br /&gt;
The [[Raspberry Pi Pico]] is a [[Category:Development Board|Development Board]] based upon either the [[RP2040]] or the [[RP2350]] [[MCU]].&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
We created a separate channel for [[RP2350]] related video: [https://youtube.com/@RPPicoWorld https://youtube.com/@RPPicoWorld]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|7JMziWYkwSg}}&lt;br /&gt;
&lt;br /&gt;
== MCU Variants ==&lt;br /&gt;
&lt;br /&gt;
=== RP2040 ===&lt;br /&gt;
&lt;br /&gt;
To be added&lt;br /&gt;
&lt;br /&gt;
=== RP2350 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Raspberry-Pi-RP2350-Block-Diagram.jpg|1200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:RP2350 Block Diagram.jpg|1000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
&lt;br /&gt;
The SDK is available at [https://github.com/raspberrypi/pico-sdk Github].  To use, the easiest approach is to clone this repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --recursive git@github.com:raspberrypi/pico-sdk.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Flashing ==&lt;br /&gt;
&lt;br /&gt;
The [[Raspberry Pi Pico]] is equipped with a [[Micro-USB]] connector and it can be flashed with simple drag and drop.&lt;br /&gt;
&lt;br /&gt;
== Picoprobe == &lt;br /&gt;
&lt;br /&gt;
The [[Raspberry Pi Pico]]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/STM32World/stm32fun_pico STM32World RP2350 Examples]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/RP2040 Wikipedia article on R{2040]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/RP2350 Wikipedia article on RP2350]&lt;br /&gt;
* [https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf RP2040 Datasheet]&lt;br /&gt;
* [https://stm32world.com/images/3/3c/RP-008373-DS-2-rp2350-datasheet.pdf RP2350 Datasheet]&lt;br /&gt;
* [https://stm32world.com/images/c/c2/RP-008280-DS-2-hardware-design-with-rp2350.pdf Hardware Design with RP2350]&lt;br /&gt;
* [https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf Raspberry Pi Pico Datasheet]&lt;br /&gt;
* [https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf Hardware Design with RP2040]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:RP-008280-DS-2-hardware-design-with-rp2350.pdf&amp;diff=8716</id>
		<title>File:RP-008280-DS-2-hardware-design-with-rp2350.pdf</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:RP-008280-DS-2-hardware-design-with-rp2350.pdf&amp;diff=8716"/>
		<updated>2026-10-16T01:46:23Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8715</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8715"/>
		<updated>2026-10-15T00:21:30Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP2350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
&lt;br /&gt;
The [[Streamline]] backplane pin mapping was originally build around 100-pin [[STM32]] [[MCU]]s, so fitting that to [[RP2350]] took some juggling.  See:&lt;br /&gt;
&lt;br /&gt;
* [[Streamline Header Mapping]]&lt;br /&gt;
* [[Streamline Peripheral Pin Mapping]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 3.jpg|600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=STM32World_Legacy&amp;diff=8713</id>
		<title>STM32World Legacy</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=STM32World_Legacy&amp;diff=8713"/>
		<updated>2026-10-12T13:50:16Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32World]][[Category:Work in progress]]{{metadesc|STM32World Development Boards Home}}&lt;br /&gt;
[[File:mcu board 3d.png|thumb|200px]]&lt;br /&gt;
Notice, [[STM32World]] is no longer under active development.  Check [[Streamline]] instead.&lt;br /&gt;
&lt;br /&gt;
[[STM32World]] is a series of development boards designed for rapid development and prototyping.&lt;br /&gt;
&lt;br /&gt;
The idea is to have MCU boards available with multiple MCU's (possibly including non [[ST]] ones such as the ones from [[GigaDevice]]).&lt;br /&gt;
&lt;br /&gt;
The boards will be stackable but rather than trying to cram every single imaginable peripheral device into every board, these will be deliberately kept simple.  A CAN transceiver board will include a CAN transceiver and nothing else.&lt;br /&gt;
&lt;br /&gt;
As much as possible, peripheral board will be designed in such a way that they will not conflict with each other, even though this might not be possible to achieve 100 %.&lt;br /&gt;
&lt;br /&gt;
All files for hardware and software is available at [https://github.com/STM32World STM32World Github Repository]&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
&lt;br /&gt;
There are a gazillion [[STM32]] development boards available on the market.  A very reasonable question would be: &amp;quot;Why create another one?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In general development boards fall into two different categories:&lt;br /&gt;
&lt;br /&gt;
# Simple boards such as the common [[Blue Pill]] and [[Black Pill]] boards&lt;br /&gt;
# Complex boards such as most of [[ST]]'s Nucleo and Discovery boards&lt;br /&gt;
&lt;br /&gt;
The problem with the simple boards is that you have a very limited selection of [[MCU]]s and you end up with a ratnest of jumper wires.&lt;br /&gt;
&lt;br /&gt;
The problem with the complex boards is that they are too opinionated.  I have a [[STM32F405]] based discovery board and that one includes a complex audio part, which I have never needed nor used.&lt;br /&gt;
&lt;br /&gt;
== [[STM32World Form Factor|Form Factor]] ==&lt;br /&gt;
&lt;br /&gt;
[[STM32World]] boards are meant to be stackable.&lt;br /&gt;
&lt;br /&gt;
All boards are 3&amp;quot; x 2&amp;quot;.  In many cases this is much bigger than needed but PCB's are cheap and having the boards at that size makes layout much easier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32World Board Dimensions.png|800px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of imperial size of the PCB's themselves were mainly made due to the header being 100 mil spaced pins.&lt;br /&gt;
&lt;br /&gt;
== Planned Boards ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F405 3D Top View.png|200px]]&lt;br /&gt;
| [[MCUSTM32F405]] &lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[STM32F405]] [[MCU]]&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F405 3D Top View.png|200px]]&lt;br /&gt;
| [[MCUSTM32F402]] &lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[STM32F402]] [[MCU]]&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| [[File:PRGSTL 3D Top View.png|200px]]&lt;br /&gt;
| [[PRGSTL]]&lt;br /&gt;
| Programmer&lt;br /&gt;
| Board designed like a [[ST-Link|ST-Link/V2.1]] or a [[Black Magic Probe]] device&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MEMW25Q128 3D Top View rendering.png|200px]]&lt;br /&gt;
| [[MEMW25Q128]]&lt;br /&gt;
| Storage&lt;br /&gt;
| [[W25Qxx|W25Q128]] SPI Serial Flash&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MEM24CXX Rendering Top.png|200px]]&lt;br /&gt;
| [[MEM24CXX]]&lt;br /&gt;
| Storage&lt;br /&gt;
| [[24Cxx I²C EEPROM]]&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:proto_top_rendering.png|200px]]&lt;br /&gt;
| [[PROTO]]&lt;br /&gt;
| Prototyping&lt;br /&gt;
| Prototyping board&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:CAN Rendering - top view.png|200px]]&lt;br /&gt;
| [[CANTRANS]]&lt;br /&gt;
| Tranceiver&lt;br /&gt;
| Dual CAN Transceiver&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:STWSD Top Rendering.png|200px]]&lt;br /&gt;
| [[STWSD]]&lt;br /&gt;
| SD Card&lt;br /&gt;
| SD Card breakout&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| [[File:DWS2812 Top Rendering.png|200px]]&lt;br /&gt;
| [[DWS2812]]&lt;br /&gt;
| Display&lt;br /&gt;
| [[WS2812B]] RGB LED Array&lt;br /&gt;
| Under development&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Board Ideas ==&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! Name&lt;br /&gt;
! Type&lt;br /&gt;
! Description &lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F411 3D Top View.png|200px]]&lt;br /&gt;
| [[MCUSTM32F411]] &lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[STM32F411]] [[MCU]]&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F446 3D rendering - top view.png|200px]]&lt;br /&gt;
| [[MCUSTM32F446]] &lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[STM32F446]] [[MCU]]&lt;br /&gt;
| Ready for prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F103 3D Top View.png|200px]]&lt;br /&gt;
| [[MCUSTM32F103]] &lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[STM32F103]] [[MCU]]&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MCUSTM32F405 3D Top View.png|200px]]&lt;br /&gt;
| [[MCUGD32F405]]&lt;br /&gt;
| MCU&lt;br /&gt;
| MCU Board using the [[GD32F405]] [[MCU]]&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
|[[File:IOAW9523 3D Top View rendering.png|200px]]&lt;br /&gt;
| [[IOAW9523]]&lt;br /&gt;
| I/O&lt;br /&gt;
| [[I²C]] [[AW9523B GPIO Expander|AW9523]] based GPIO Expander and LED driver&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| [[HID01]]&lt;br /&gt;
| Display/Keyboard&lt;br /&gt;
| Display and touch keyboard&lt;br /&gt;
| Under development&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| [[SEC01]]&lt;br /&gt;
| Security&lt;br /&gt;
| Security and Encryption&lt;br /&gt;
| Under development&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pin Use ==&lt;br /&gt;
&lt;br /&gt;
The [[STM32]] processors are not 100 % flexible in mapping I/O pins, so certain peripherals can only be mapped to certain pins.  Because of that, some of our board will conflict with each other.&lt;br /&gt;
&lt;br /&gt;
{{STM32World Pinout}}&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:3 STM32World Modules - backside.jpg&lt;br /&gt;
File:3 STM32World Modules stacked 2.jpg&lt;br /&gt;
File:3 STM32World Modules stacked.jpg&lt;br /&gt;
File:3 STM32World Modules with headers.jpg&lt;br /&gt;
File:3 STM32World Modules.jpg&lt;br /&gt;
File:MCUSTM32F405 and MEMW25Q128.jpg&lt;br /&gt;
File:MCUSTM32F405 angle.jpg&lt;br /&gt;
File:MCUSTM32F405 Bot.jpg&lt;br /&gt;
File:MCUSTM32F405 Top.jpg&lt;br /&gt;
File:MCUSTM32F405 with headers.jpg&lt;br /&gt;
File:MEMW25Q128 Bot.jpg&lt;br /&gt;
File:MEMW25Q128 wiith headers.jpg&lt;br /&gt;
File:MEMW25Q128 Top.jpg&lt;br /&gt;
File:PRGSTL and MCUSTM32F405.jpg&lt;br /&gt;
File:PRGSTL Bot.jpg&lt;br /&gt;
File:PRGSTL Side.jpg&lt;br /&gt;
File:PRGSTL Top.jpg&lt;br /&gt;
File:PRGSTL with headers.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=PRGSTL&amp;diff=8712</id>
		<title>PRGSTL</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=PRGSTL&amp;diff=8712"/>
		<updated>2026-10-12T13:49:00Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32World]][[Category:Work in progress]]{{metadesc|STM32World Programmer}}&lt;br /&gt;
NOTICE!  The [[STM32World]] modules are no longer being developed.  Check [[Streamline]] instead, - more specifically the [[Streamline Connect]].&lt;br /&gt;
&lt;br /&gt;
[[PRGSTL]] is a programmer, that is Flashing and Debugging, for the [[STM32World]] [[:Category:STM32World MCU|MCU]] modules.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:prgstl rev a.svg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
Unfortunately [[ST]]'s [[ST-Link]] firmware is not open source, so we can not distribute the [[PRGSTL]] modules pre-programmed.  Instead, we deliver the [[PRGSTL]] module with a [[DFU]] bootloader, so that it can itself be flashed over USB.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:PRGSTL Bot.jpg&lt;br /&gt;
File:PRGSTL Side.jpg&lt;br /&gt;
File:PRGSTL Top.jpg&lt;br /&gt;
File:PRGSTL with headers.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=PRGSTL&amp;diff=8711</id>
		<title>PRGSTL</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=PRGSTL&amp;diff=8711"/>
		<updated>2026-10-12T13:47:36Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32World]][[Category:Work in progress]]{{metadesc|STM32World Programmer}}&lt;br /&gt;
NOTICE!  The [[STM32World]] modules are no longer being developed.  Check [[Streamline]] instead.&lt;br /&gt;
&lt;br /&gt;
[[PRGSTL]] is a programmer, that is Flashing and Debugging, for the [[STM32World]] [[:Category:STM32World MCU|MCU]] modules.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:prgstl rev a.svg]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
Unfortunately [[ST]]'s [[ST-Link]] firmware is not open source, so we can not distribute the [[PRGSTL]] modules pre-programmed.  Instead, we deliver the [[PRGSTL]] module with a [[DFU]] bootloader, so that it can itself be flashed over USB.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:PRGSTL Bot.jpg&lt;br /&gt;
File:PRGSTL Side.jpg&lt;br /&gt;
File:PRGSTL Top.jpg&lt;br /&gt;
File:PRGSTL with headers.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=STM32_In-circuit_Debugging&amp;diff=8710</id>
		<title>STM32 In-circuit Debugging</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=STM32_In-circuit_Debugging&amp;diff=8710"/>
		<updated>2026-10-12T11:33:08Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;{{Video |series=STM32 Remake Video |number=3 |title=STM32 In-circuit Debugging |youtube-id=S9w6YEkzf-k |description=2026 Remake of STM32 Tutorial #5 covering STM32 in-circuit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Video&lt;br /&gt;
|series=STM32 Remake Video&lt;br /&gt;
|number=3&lt;br /&gt;
|title=STM32 In-circuit Debugging&lt;br /&gt;
|youtube-id=S9w6YEkzf-k&lt;br /&gt;
|description=2026 Remake of STM32 Tutorial #5 covering STM32 in-circuit debugging.  We will cover Serial print, SWD and SWO.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8709</id>
		<title>File:Jolt Connect and Black Pill.jpg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8709"/>
		<updated>2026-10-12T01:01:09Z</updated>

		<summary type="html">&lt;p&gt;Lth: Lth uploaded a new version of File:Jolt Connect and Black Pill.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8708</id>
		<title>File:Jolt Connect and Black Pill.jpg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8708"/>
		<updated>2026-10-12T00:53:24Z</updated>

		<summary type="html">&lt;p&gt;Lth: Lth uploaded a new version of File:Jolt Connect and Black Pill.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8707</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8707"/>
		<updated>2026-10-11T23:36:04Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype.]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Contrary to the official [[ST-Link]], the pins on the [[Jolt Connect]] are clearly labelled.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Jolt Connect and Black Pill.jpg|300px|thumb|Jolt Connect and a Blackpill board.  Not wired up - yet.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8706</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8706"/>
		<updated>2026-10-11T23:35:34Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype.]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Contrary to the official [[ST-Link]], the pins on the [[Jolt Connect]] are clearly labelled.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Jolt Connect and Black Pill.jpg|300px|thumb|Jolt Connect and a Blackpill board.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8705</id>
		<title>File:Jolt Connect and Black Pill.jpg</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Jolt_Connect_and_Black_Pill.jpg&amp;diff=8705"/>
		<updated>2026-10-11T23:34:26Z</updated>

		<summary type="html">&lt;p&gt;Lth: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8704</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8704"/>
		<updated>2026-10-11T11:11:12Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Pinout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype.]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Contrary to the official [[ST-Link]], the pins on the [[Jolt Connect]] are clearly labelled.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up. The Jolt Connect has got an identical connector.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8703</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8703"/>
		<updated>2026-10-11T11:10:15Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Pinout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype.]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up. The Jolt Connect has got an identical connector.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8702</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8702"/>
		<updated>2026-10-11T10:30:20Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype.]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up. The Jolt Connect has got an identical connector.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8701</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8701"/>
		<updated>2026-10-11T02:42:13Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up. The Jolt Connect has got an identical connector.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| RST&lt;br /&gt;
| R&lt;br /&gt;
| NRST Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8700</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8700"/>
		<updated>2026-10-11T02:31:24Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up. The Jolt Connect has got an identical connector.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| NRST&lt;br /&gt;
| R&lt;br /&gt;
| Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8699</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8699"/>
		<updated>2026-10-11T02:09:42Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 4&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| NRST&lt;br /&gt;
| R&lt;br /&gt;
| Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8698</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8698"/>
		<updated>2026-10-11T02:04:37Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| GND&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 8&lt;br /&gt;
| NRST&lt;br /&gt;
| R&lt;br /&gt;
| Hardware reset target.  This connection is almost never required and can safely be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8697</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8697"/>
		<updated>2026-10-11T02:02:53Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| GND&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 7&lt;br /&gt;
| SWO&lt;br /&gt;
| PB3&lt;br /&gt;
| Optional if trace functionality is required.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 9&lt;br /&gt;
| TX&lt;br /&gt;
| PA10&lt;br /&gt;
| Serial connection FROM the [[Jolt Connect]] to the target.  If only used for printf debugging, this connection can be ignored.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 10&lt;br /&gt;
| RX&lt;br /&gt;
| PA9&lt;br /&gt;
| Serial data from the target to the Jolt Connect.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8696</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8696"/>
		<updated>2026-10-11T02:00:18Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA.  If the target is powered, for example via USB, this connection can be left out.&lt;br /&gt;
|- &lt;br /&gt;
| GND&lt;br /&gt;
| GND &lt;br /&gt;
| GND&lt;br /&gt;
| Common ground.  This is absolutely essential.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 5&lt;br /&gt;
| SWCLK&lt;br /&gt;
| PA14&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|- &lt;br /&gt;
| Pin 6&lt;br /&gt;
| SWDIO&lt;br /&gt;
| PA13&lt;br /&gt;
| On the [[Black Pill]] this pin is on the end connector.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8695</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8695"/>
		<updated>2026-10-11T01:58:03Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Connecting to target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect to Black Pill.png|400px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Jolt Connect&lt;br /&gt;
! Signal &lt;br /&gt;
! Black Pill&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Pin 2 (3.3V)&lt;br /&gt;
| 3.3V &lt;br /&gt;
| Any 3.3V &lt;br /&gt;
| The Jolt Connect can drive up to around 500 mA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8694</id>
		<title>Jolt Connect - STM32 Programmer (ST-Link/V2-1)</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Jolt_Connect_-_STM32_Programmer_(ST-Link/V2-1)&amp;diff=8694"/>
		<updated>2026-10-11T01:56:14Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Pinout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Projects]][[Category:KiCAD]][[Category:JLCPCB]][[Category:CurrentMakers]][[Category:Jolt]]{{metadesc|New and improved ST-Link/V2-1 and Black Magic Probe device}}&lt;br /&gt;
[[File:JC - top left 2.jpg|300px|thumb|Jolt Connect Prototype - final device will be black]]&lt;br /&gt;
Introducing the new and improved [[STM32]] programmer &amp;amp; debugger, the [[CurrentMakers]] [[Jolt Connect]].  The goal for this was to create the perfect [[STM32]] Programming and Debugging tool.&lt;br /&gt;
&lt;br /&gt;
This is our new and greatly improved version.  The original is documented here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
BUY [[Jolt Connect]] here: [https://currentmakers.com/products/jolt/jolt_connect/ Jolt Connect on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
This first video cover the thoughts behind creating the [[Jolt Connect]] and why it was designed as it is.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8pg0efEfDvc}}&lt;br /&gt;
&lt;br /&gt;
[[JLCPCB]] kindly offered to sponsor the prototypes.  This video goes through the ordering process:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|L64cD1wQDfA}}&lt;br /&gt;
&lt;br /&gt;
The following video document the first prototype of the final device.  All checks out beautifully.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|TyyegjeK8TA}}&lt;br /&gt;
&lt;br /&gt;
Christmas present (rev B)&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
Using all the [[Jolt Connect]] features:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect Pinout.jpg|thumb|300px|Jolt Connect Pinout]]&lt;br /&gt;
&lt;br /&gt;
The pinout of the [[Jolt Connect]] IDC connector is shown on the device itself (photo to the right).&lt;br /&gt;
&lt;br /&gt;
It is organized mostly in pairs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Desc&lt;br /&gt;
!Pin&lt;br /&gt;
!Pin&lt;br /&gt;
!Desc&lt;br /&gt;
|-&lt;br /&gt;
| +5V Supply&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| +3.3V Supply&lt;br /&gt;
|-&lt;br /&gt;
| Power measure&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| Common Ground&lt;br /&gt;
|-&lt;br /&gt;
| SWD CLK&lt;br /&gt;
| 5&lt;br /&gt;
| 6&lt;br /&gt;
| SWD DIO&lt;br /&gt;
|-&lt;br /&gt;
| Trace SWO&lt;br /&gt;
| 7&lt;br /&gt;
| 8&lt;br /&gt;
| Target NRST&lt;br /&gt;
|-&lt;br /&gt;
| Serial TX&lt;br /&gt;
| 9&lt;br /&gt;
| 10&lt;br /&gt;
| Serial RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Connecting to target ==&lt;br /&gt;
[[File:Blackpill with st-link.jpg|300px|thumb|Blackpill board with [[DIY STM32 Programmer (ST-Link/V2-1)|ST-Link]] - SWD, SWO and UART hooked up.]]&lt;br /&gt;
&lt;br /&gt;
Wiring the [[Jolt Connect]] up to a target, depends largely on the target.  For a [[Black Pill]] board it will look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Jolt Connect to Black Pill.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Reasoning for new design ==&lt;br /&gt;
&lt;br /&gt;
Having used the original design for years some issues have crept up.  This section dives into those issues and suggest how they could be improved.&lt;br /&gt;
&lt;br /&gt;
=== USB-A ===&lt;br /&gt;
&lt;br /&gt;
The original device used a through-hole USB-A connector.  From a manufacturing point of view this connector was &amp;quot;troublesome&amp;quot; as it required hand soldering and quite frankly a bit outdated.  The new version should be using USB-C.&lt;br /&gt;
&lt;br /&gt;
=== Programming header ===&lt;br /&gt;
&lt;br /&gt;
The original device used a 2x5 IDC header soldered on the board &amp;quot;sideways&amp;quot;.  This again required hand soldering and it was quite tricky to solder as the board thickness does not match the spacing between the pins on the header.  The new version should use a SMD regularly mounted connector.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The original version used a 3.3V LDO rated at 100 mA.  This is more than enough, BUT it does limit the amount of power which can be supplied to target devices.  The new version should allow more power.&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
The schematics is largely identical with the [[DIY STM32 Programmer (ST-Link/V2-1)|original version]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:STM32 Programmer 2 - schematics rev b.svg|2400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main changes are the USB connector and the LDO.&lt;br /&gt;
&lt;br /&gt;
== Factory firmware ==&lt;br /&gt;
&lt;br /&gt;
The [[Jolt Connect]] have been designed to run multiple different firmwares.  Being based on the [[STM32F103]] [[MCU]] there is no built-in [[DFU]] bootloader.  We therefore deliver the device with a DFU Firmware already loaded.  This enables flashing of any firmware.&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect DFU ===&lt;br /&gt;
&lt;br /&gt;
The [[STM32F103CB]] [[MCU]] contains 128 kB of flash.  In order to be able to flash a regular bootloader in the first part of the flash memory, we locate our bootloader at the top 16 kB of flash, at address 0x801c000 to be exact.  This will enable the DFU to update any part of the flash - except the top 16 kB.&lt;br /&gt;
&lt;br /&gt;
Viewed from the webdfu the layout looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: Jolt Connect DFU&lt;br /&gt;
MFG: CurrentMakers&lt;br /&gt;
Serial: pzhYrdOufu2Eh36G&lt;br /&gt;
DFU: [0483:df11] cfg=1, intf=0, alt=0, name=&amp;quot;Jolt Connect DFU&amp;quot; serial=&amp;quot;pzhYrdOufu2Eh36G&amp;quot;&lt;br /&gt;
Selected memory region: Internal Flash (128KiB)&lt;br /&gt;
0x08000000-0x0800ffff (readable, erasable, writable)&lt;br /&gt;
0x08010000-0x0801bfff (readable, erasable, writable)&lt;br /&gt;
0x0801c000-0x0801ffff (readable)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jolt Connect Jump ===&lt;br /&gt;
&lt;br /&gt;
The jump is a separate binary located at the normal boot location at 0x8000000.  It does nothing except jump up to the DFU bootloader at 0x801c000.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the factory firmware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000 &amp;amp;&amp;amp; st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or as individual commands: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
st-flash erase&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_dfu/Debug/boot_dfu.bin 0x801c000&lt;br /&gt;
st-flash write ~/src/jolt_connect/firmware/boot_jump/Debug/boot_jump.bin 0x8000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the actual dfu bootloader is flashed at the upper part of the flash memory, while the jump is flashed at the bottom.  The jump - IF still there - will jump to the dfu bootloader.&lt;br /&gt;
&lt;br /&gt;
After flashing the device will, to the Linux kernel, look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[362290.392700] usb 3-10.5.3: new full-speed USB device number 110 using xhci_hcd&lt;br /&gt;
[362290.494580] usb 3-10.5.3: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00&lt;br /&gt;
[362290.494586] usb 3-10.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[362290.494588] usb 3-10.5.3: Product: Jolt Connect DFU&lt;br /&gt;
[362290.494589] usb 3-10.5.3: Manufacturer: CurrentMakers&lt;br /&gt;
[362290.494591] usb 3-10.5.3: SerialNumber: 6D7232965686&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Linux kernel will identify that as a [[STM32]] device in [[DFU]] mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 110: ID 0483:df11 STMicroelectronics STM Device in DFU Mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing ST-Link firmware ==&lt;br /&gt;
&lt;br /&gt;
'''Notice!''' this approach may or may not be &amp;quot;legal&amp;quot; although it does use [[ST]] provided software for the flashing.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
In order to go through these steps you will need the following:&lt;br /&gt;
&lt;br /&gt;
* A [[Jolt Connect]] with [[DFU]] firmware (previous section)&lt;br /&gt;
* A working version of Java (no idea what version but works with openjdk version &amp;quot;21.0.9-ea&amp;quot;)&lt;br /&gt;
* A copy of the ST-Link bootloader - Google for it - typically named '''Unprotected-2-1-Bootloader.bin'''&lt;br /&gt;
* A copy of [[ST]]'s STLinkUpgrade version 3.2.12 (can still be downloaded or Google)&lt;br /&gt;
&lt;br /&gt;
=== Install bootloader ===&lt;br /&gt;
&lt;br /&gt;
First step is to verify the [[Jolt Connect]] is plugged in and running.  The red/blue leds will be blinking at about 2 Hz and it should show up as a DFU device.&lt;br /&gt;
&lt;br /&gt;
Now point your browser to: [https://devanlai.github.io/webdfu/dfu-util/ https://devanlai.github.io/webdfu/dfu-util/].&lt;br /&gt;
&lt;br /&gt;
Click on the &amp;quot;Connect&amp;quot; button: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:WebDFU Connect.png|400px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select the Jolt Connect and click &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU after connect.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now click Choose file and find the bootloader.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU Choose File.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Finally click &amp;quot;Download&amp;quot;.  Flashing should take perhaps 10-15 seconds and MAY result in an error (because the device resets and is no longer in DFU mode.&lt;br /&gt;
&lt;br /&gt;
[[File:WebDFU download done.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That's it - you can now move on to the next step.&lt;br /&gt;
&lt;br /&gt;
=== Flash ST-Link firmware ===&lt;br /&gt;
&lt;br /&gt;
You can now fire up the ST-Link Update tool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lth@nb7:~/src/jolt_connect/stsw-link007$ java -jar STLinkUpgrade.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should result in the following window:&lt;br /&gt;
&lt;br /&gt;
[[File:STLink Upgrade.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Open in Update mode&amp;quot; button and select '''STM32+MSD+VCP''' followed by &amp;quot;Upgrade&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link after upgrade first.png|600px]]&lt;br /&gt;
&lt;br /&gt;
That is it - you now have a functional (but old) ST-Link.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade to latest version (optional) ===&lt;br /&gt;
&lt;br /&gt;
The device flashed in the previous section can be upgraded with the latest version of the upgrade tool, which is part of '''STM32CubeIDE'''.  Under &amp;quot;Help/ST-Link upgrade&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Final ST-Link upgrade and change type.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Notice the option of changing type which can be used to &amp;quot;disable&amp;quot; the Mass Storage device (which is not very useful).&lt;br /&gt;
&lt;br /&gt;
== Flashing Black Magic Firmware ==&lt;br /&gt;
&lt;br /&gt;
See this page for details on how to build: [[Black Magic Probe]]&lt;br /&gt;
&lt;br /&gt;
== Flashing CMSIS DAPlink ==&lt;br /&gt;
&lt;br /&gt;
See: [[CMSIS DAPlink]]&lt;br /&gt;
&lt;br /&gt;
== Gallery == &lt;br /&gt;
&amp;lt;gallery mode=slideshow&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Top rendering with cover.png&lt;br /&gt;
File:Bottom rendering.png&lt;br /&gt;
File:Jolt Connect covers.jpg&lt;br /&gt;
File:Jolt Connect top view.jpg&lt;br /&gt;
File:Jolt Connect btm view.jpg&lt;br /&gt;
File:Jolt Connect with and without cover.jpg&lt;br /&gt;
File:Jolt Connect sandwich.jpg&lt;br /&gt;
File:Jolt Connect 3 pcs assembled.jpg&lt;br /&gt;
File:Jolt Connect assembled side view.jpg&lt;br /&gt;
File:Jolt Connect assembled side view 2.jpg&lt;br /&gt;
File:JC - top assembled.jpg&lt;br /&gt;
File:JC - top front.jpg&lt;br /&gt;
File:JC - top left.jpg&lt;br /&gt;
File:JC - top left 2.jpg&lt;br /&gt;
File:JC - top right.jpg&lt;br /&gt;
File:JC - bot.jpg&lt;br /&gt;
File:JC - bot 2.jpg&lt;br /&gt;
File:JC - bot left.jpg&lt;br /&gt;
File:JC - bot left 2.jpg&lt;br /&gt;
File:Jolt Connect with jumper leads.jpg&lt;br /&gt;
File:Jolt Connect with ribbon.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/d/d6/Boot_jump.bin Boot Jump binary]&lt;br /&gt;
* [https://stm32world.com/images/8/81/Boot_dfu.bin Boot DFU binary]&lt;br /&gt;
* [https://stm32world.com/images/a/a9/Blackmagic_stlink_firmware.bin Blackmagic Probe binary]&lt;br /&gt;
* [https://github.com/currentmakers/blackmagic Github Blackmagic fork for the Jolt Connect]&lt;br /&gt;
* [http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html ST-Link firmware analysis]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:Jolt_Connect_to_Black_Pill.png&amp;diff=8693</id>
		<title>File:Jolt Connect to Black Pill.png</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:Jolt_Connect_to_Black_Pill.png&amp;diff=8693"/>
		<updated>2026-10-11T01:56:02Z</updated>

		<summary type="html">&lt;p&gt;Lth: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=RP2350_I2C_Masterclass:_1MHz_EEPROM_Guide&amp;diff=8692</id>
		<title>RP2350 I2C Masterclass: 1MHz EEPROM Guide</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=RP2350_I2C_Masterclass:_1MHz_EEPROM_Guide&amp;diff=8692"/>
		<updated>2026-10-10T03:52:51Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;{{Video |series=RP Pico Video |number=21 |title=RP2350 I2C Masterclass: 1MHz EEPROM Guide |youtube-id=kLF3Nqn2s6g |description=In this this video we will cover I2C on RP2350 u...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Video&lt;br /&gt;
|series=RP Pico Video&lt;br /&gt;
|number=21&lt;br /&gt;
|title=RP2350 I2C Masterclass: 1MHz EEPROM Guide&lt;br /&gt;
|youtube-id=kLF3Nqn2s6g&lt;br /&gt;
|description=In this this video we will cover I2C on RP2350 using a M24M01 EEPROM Streamline blade as an example.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8691</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8691"/>
		<updated>2026-10-09T07:35:36Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__ __NOTOC__ {{metadesc|STM32World Wiki Main Page - all about STM32 and Similar MCUs}}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | {{Box|title=Welcome|edit=Main Page/Welcome|height=300px}}&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Recent Changes]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[:+]][[!Main Page]][[!Main Page/Welcome]][[!~STM32 Tutorial*]][[!~STM32 Bare Metal Video*]][[!~STM32 Basics*]][[!~STM32 Short*]][[!~STM32 Rant*]][[!~STM32 Miscellaneous*]][[!~KiCAD Video*]][[!~Streamline Video*]][[!~Colibri Video*]][[!~RP Pico Video*]][[!~Electronics Video*]][[!~STM32 Remake Video*]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=49% |&lt;br /&gt;
| width=50% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=End of Year Promotion|theme=3|height=400px}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Promotion 2.jpg|620px|link=https://currentmakers.com/products/streamline/]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=Latest video|theme=10|height=400px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Tutorial Video||STM32 Bare Metal Video||STM32 Rant Video||STM32 Short Video||STM32 Basics Video||STM32 Miscellaneous Video||KiCAD Video||Streamline Video||Colibri Video||RP Pico Video||STM32 Remake Video||Electronics Video]]&lt;br /&gt;
 |?Video title&lt;br /&gt;
 |?Youtube id&lt;br /&gt;
 |format=plainlist&lt;br /&gt;
 |template=Video single front&lt;br /&gt;
 |limit=1&lt;br /&gt;
 |sort=Creation date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |searchlabel=&lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[Streamline]]|theme=11|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Streamline]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Jolt]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Jolt]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Colibri]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Colibri]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Documentation|STM32 Documentation]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Documentation]] OR [[Category:STM32 HOWTO]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Development|STM32 Development]]|theme=5|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Development]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[STM32 Tutorial Videos]]|theme=2|height=300px}}&lt;br /&gt;
* [[STM32 Tutorial Videos]]&lt;br /&gt;
* [[STM32 Bare Metal Videos]]&lt;br /&gt;
* [[STM32 Basics Videos]]&lt;br /&gt;
* [[STM32 Short Videos]]&lt;br /&gt;
* [[STM32 Rant Videos]]&lt;br /&gt;
* [[STM32 Miscellaneous Videos]]&lt;br /&gt;
* [[KiCAD Videos]]&lt;br /&gt;
* [[Streamline Videos]]&lt;br /&gt;
* [[Colibri Videos]]&lt;br /&gt;
* [[RP Pico Videos]]&lt;br /&gt;
* [[Electronics Videos]]&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Hardware|STM32 Hardware]]|theme=4|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Hardware]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 HAL|STM32 HAL]]|theme=10|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 HAL]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Projects|STM32 Projects]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Projects]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:MCU|MCUs]]|theme=9|height=300px}}&lt;br /&gt;
{{#ask: [[Category:MCU]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Components and Modules|Components and Modules]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Components and Modules]] OR [[Category:Components]] OR [[Category:Modules]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Development Board|Development Boards]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Development Board]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:RISC-V|RISC-V]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:RISC-V]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Raspberry Pi Pico]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Raspberry Pi Pico]][[!Raspberry Pi Pico]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[ESP32]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:ESP32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:C|C Programming]]|theme=12|height=300px}}&lt;br /&gt;
{{#ask: [[Category:C]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Electronics|Electronics]]|theme=13|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Electronics]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:KiCAD|KiCAD]]|theme=14|height=300px}}&lt;br /&gt;
{{#ask: [[Category:KiCAD]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:CH32|CH32]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:CH32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:FPGA|FPGA]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:FPGA]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Awesome Audio Apparatus]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Awesome Audio Apparatus]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8690</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8690"/>
		<updated>2026-10-09T07:35:08Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__ __NOTOC__ {{metadesc|STM32World Wiki Main Page - all about STM32 and Similar MCUs}}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | {{Box|title=Welcome|edit=Main Page/Welcome|height=300px}}&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Recent Changes]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[:+]][[!Main Page]][[!Main Page/Welcome]][[!~STM32 Tutorial*]][[!~STM32 Bare Metal Video*]][[!~STM32 Basics*]][[!~STM32 Short*]][[!~STM32 Rant*]][[!~STM32 Miscellaneous*]][[!~KiCAD Video*]][[!~Streamline Video*]][[!~Colibri Video*]][[!~RP Pico Video*]][[!~Electronics Video*]][[!~STM32 Remake Video*]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=49% |&lt;br /&gt;
| width=50% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=End of Year Promotion|theme=3|height=400px}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Promotion 2.jpg|49%|link=https://currentmakers.com/products/streamline/]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=Latest video|theme=10|height=400px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Tutorial Video||STM32 Bare Metal Video||STM32 Rant Video||STM32 Short Video||STM32 Basics Video||STM32 Miscellaneous Video||KiCAD Video||Streamline Video||Colibri Video||RP Pico Video||STM32 Remake Video||Electronics Video]]&lt;br /&gt;
 |?Video title&lt;br /&gt;
 |?Youtube id&lt;br /&gt;
 |format=plainlist&lt;br /&gt;
 |template=Video single front&lt;br /&gt;
 |limit=1&lt;br /&gt;
 |sort=Creation date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |searchlabel=&lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[Streamline]]|theme=11|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Streamline]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Jolt]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Jolt]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Colibri]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Colibri]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Documentation|STM32 Documentation]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Documentation]] OR [[Category:STM32 HOWTO]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Development|STM32 Development]]|theme=5|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Development]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[STM32 Tutorial Videos]]|theme=2|height=300px}}&lt;br /&gt;
* [[STM32 Tutorial Videos]]&lt;br /&gt;
* [[STM32 Bare Metal Videos]]&lt;br /&gt;
* [[STM32 Basics Videos]]&lt;br /&gt;
* [[STM32 Short Videos]]&lt;br /&gt;
* [[STM32 Rant Videos]]&lt;br /&gt;
* [[STM32 Miscellaneous Videos]]&lt;br /&gt;
* [[KiCAD Videos]]&lt;br /&gt;
* [[Streamline Videos]]&lt;br /&gt;
* [[Colibri Videos]]&lt;br /&gt;
* [[RP Pico Videos]]&lt;br /&gt;
* [[Electronics Videos]]&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Hardware|STM32 Hardware]]|theme=4|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Hardware]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 HAL|STM32 HAL]]|theme=10|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 HAL]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Projects|STM32 Projects]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Projects]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:MCU|MCUs]]|theme=9|height=300px}}&lt;br /&gt;
{{#ask: [[Category:MCU]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Components and Modules|Components and Modules]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Components and Modules]] OR [[Category:Components]] OR [[Category:Modules]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Development Board|Development Boards]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Development Board]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:RISC-V|RISC-V]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:RISC-V]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Raspberry Pi Pico]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Raspberry Pi Pico]][[!Raspberry Pi Pico]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[ESP32]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:ESP32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:C|C Programming]]|theme=12|height=300px}}&lt;br /&gt;
{{#ask: [[Category:C]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Electronics|Electronics]]|theme=13|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Electronics]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:KiCAD|KiCAD]]|theme=14|height=300px}}&lt;br /&gt;
{{#ask: [[Category:KiCAD]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:CH32|CH32]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:CH32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:FPGA|FPGA]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:FPGA]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Awesome Audio Apparatus]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Awesome Audio Apparatus]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8689</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Main_Page&amp;diff=8689"/>
		<updated>2026-10-09T07:34:46Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__ __NOTOC__ {{metadesc|STM32World Wiki Main Page - all about STM32 and Similar MCUs}}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | {{Box|title=Welcome|edit=Main Page/Welcome|height=300px}}&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Recent Changes]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[:+]][[!Main Page]][[!Main Page/Welcome]][[!~STM32 Tutorial*]][[!~STM32 Bare Metal Video*]][[!~STM32 Basics*]][[!~STM32 Short*]][[!~STM32 Rant*]][[!~STM32 Miscellaneous*]][[!~KiCAD Video*]][[!~Streamline Video*]][[!~Colibri Video*]][[!~RP Pico Video*]][[!~Electronics Video*]][[!~STM32 Remake Video*]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=49% |&lt;br /&gt;
| width=50% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=End of Year Promotion|theme=3|height=400px}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:Promotion 2.jpg|100%|link=https://currentmakers.com/products/streamline/]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=Latest video|theme=10|height=400px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Tutorial Video||STM32 Bare Metal Video||STM32 Rant Video||STM32 Short Video||STM32 Basics Video||STM32 Miscellaneous Video||KiCAD Video||Streamline Video||Colibri Video||RP Pico Video||STM32 Remake Video||Electronics Video]]&lt;br /&gt;
 |?Video title&lt;br /&gt;
 |?Youtube id&lt;br /&gt;
 |format=plainlist&lt;br /&gt;
 |template=Video single front&lt;br /&gt;
 |limit=1&lt;br /&gt;
 |sort=Creation date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |searchlabel=&lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;br /&gt;
{| width=100%&lt;br /&gt;
|-&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
| width=33% |&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[Streamline]]|theme=11|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Streamline]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Jolt]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Jolt]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Colibri]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Colibri]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Documentation|STM32 Documentation]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Documentation]] OR [[Category:STM32 HOWTO]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Development|STM32 Development]]|theme=5|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Development]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[STM32 Tutorial Videos]]|theme=2|height=300px}}&lt;br /&gt;
* [[STM32 Tutorial Videos]]&lt;br /&gt;
* [[STM32 Bare Metal Videos]]&lt;br /&gt;
* [[STM32 Basics Videos]]&lt;br /&gt;
* [[STM32 Short Videos]]&lt;br /&gt;
* [[STM32 Rant Videos]]&lt;br /&gt;
* [[STM32 Miscellaneous Videos]]&lt;br /&gt;
* [[KiCAD Videos]]&lt;br /&gt;
* [[Streamline Videos]]&lt;br /&gt;
* [[Colibri Videos]]&lt;br /&gt;
* [[RP Pico Videos]]&lt;br /&gt;
* [[Electronics Videos]]&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Hardware|STM32 Hardware]]|theme=4|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Hardware]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 HAL|STM32 HAL]]|theme=10|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 HAL]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:STM32 Projects|STM32 Projects]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:STM32 Projects]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:MCU|MCUs]]|theme=9|height=300px}}&lt;br /&gt;
{{#ask: [[Category:MCU]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Components and Modules|Components and Modules]]|theme=6|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Components and Modules]] OR [[Category:Components]] OR [[Category:Modules]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Development Board|Development Boards]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Development Board]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:RISC-V|RISC-V]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:RISC-V]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Raspberry Pi Pico]]|theme=1|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Raspberry Pi Pico]][[!Raspberry Pi Pico]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[ESP32]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:ESP32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:C|C Programming]]|theme=12|height=300px}}&lt;br /&gt;
{{#ask: [[Category:C]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:Electronics|Electronics]]|theme=13|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Electronics]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:KiCAD|KiCAD]]|theme=14|height=300px}}&lt;br /&gt;
{{#ask: [[Category:KiCAD]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|-&lt;br /&gt;
| {{Box|title=[[:Category:CH32|CH32]]|theme=7|height=300px}}&lt;br /&gt;
{{#ask: [[Category:CH32]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[:Category:FPGA|FPGA]]|theme=3|height=300px}}&lt;br /&gt;
{{#ask: [[Category:FPGA]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
| {{Box|title=[[Awesome Audio Apparatus]]|theme=2|height=300px}}&lt;br /&gt;
{{#ask: [[Category:Awesome Audio Apparatus]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |limit=10&lt;br /&gt;
 |offset=0&lt;br /&gt;
 |link=all&lt;br /&gt;
 |sort=Modification date&lt;br /&gt;
 |order=desc&lt;br /&gt;
 |headers=show&lt;br /&gt;
 |searchlabel=... further results&lt;br /&gt;
 |propsep=, &lt;br /&gt;
 |valuesep=, &lt;br /&gt;
}}&lt;br /&gt;
{{Box/End}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline&amp;diff=8688</id>
		<title>Streamline</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline&amp;diff=8688"/>
		<updated>2026-10-08T22:36:08Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:Streamline]][[Category:CurrentMakers]][[Category:Work in progress]]{{metadesc|Streamline Development Boards Home}}&lt;br /&gt;
[[File:Streamline Backplane with 2 blades - top right 3.jpg|300px|thumb|Streamline Backplane with 2 blades - 1 Connect and 1 MCU]]&lt;br /&gt;
This page documents the new [[CurrentMakers]] [[Streamline]] series of [[Green]] development boards.  If you are looking for the previous series, that is document here: [[STM32World Legacy]].&lt;br /&gt;
&lt;br /&gt;
[[Streamline]] boards are available here: [https://currentmakers.com/products/streamline/ Streamline on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Rationale ==&lt;br /&gt;
[[File:3 STM32World Modules stacked.jpg|300px|thumb|The old STM32World system]]&lt;br /&gt;
A number of [[STM32World Legacy]] boards have been developed, and produced, and in general the &amp;quot;system&amp;quot; worked very well.  It did however have one fatal flaw which was the sole cause of it never being considered for more widespread production.  This flaw was the board to board connector.&lt;br /&gt;
&lt;br /&gt;
The original boards used a 2x20 standard pin header on each side giving a result of 80 pins.  In terms of connectivity this was a pretty good solution.  It did however present some issues:&lt;br /&gt;
&lt;br /&gt;
# Cost - the long pin 2x20 connectors are fairly expensive - around $0.80 each - so $1.60 per board.  This may not sound that high but when producing a lot it becomes a serious cost.&lt;br /&gt;
# Manufacturing -  the headers can not be manufactured with traditional SMD technologies but require a manual step or hand soldering.&lt;br /&gt;
# Fragile - when shipping or disconnecting boards it is hard not to bend one or more pins and once bend it becomes extremely difficult to reconnect them.&lt;br /&gt;
&lt;br /&gt;
To get around this flaw a new &amp;quot;connector&amp;quot; was considered and after a long search the best solution was the standard PCI-E X8 connector.&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|5xQqV7BhYxM}}&lt;br /&gt;
&lt;br /&gt;
Receiving the first prototypes ever:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
== Backplane ==&lt;br /&gt;
&lt;br /&gt;
The overall idea is to base [[StreamLine]] around a passive backplane.  The backplane contains a number of PCI connectors with 2 x 49 pins (98) that is simply connected in a parallel bus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Sl bp 5 top left.png|1000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In each end of the bus all the A and B signals are broken out into regular pin headers.&lt;br /&gt;
&lt;br /&gt;
=== Backplane rendering ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Backplane top render.png&lt;br /&gt;
File:Backplane front render.png&lt;br /&gt;
File:Backplane front left render.png&lt;br /&gt;
File:Sl bp 5 top.png&lt;br /&gt;
File:Sl bp 5 top left.png&lt;br /&gt;
File:Sl bp 5 top right.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== [[Backplane]]s === &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Backplane 5]]&lt;br /&gt;
| [[File:sl_bp_5_top_left.png|80px]]&lt;br /&gt;
| Basic 5 position backplane&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_backplane_5/ Available]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[Blade]]s ===&lt;br /&gt;
&lt;br /&gt;
==== STM32 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Connect]] (ST-Link firmware)&lt;br /&gt;
| [[File:Sl prog top left render.png|80px]]&lt;br /&gt;
| Streamline Programmer &amp;amp; Debugger.  This module is essentially identical to [[Jolt Connect]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_connect/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32F407]]&lt;br /&gt;
| [[File:Sl mcu stm32f407 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32F407]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32f407/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32H562]]&lt;br /&gt;
| [[File:Sl mcu stm32h562 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32H562]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32h562/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32L475]]&lt;br /&gt;
| [[File:Sl mcu stm32l475 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32L475]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32l475/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32C551]]&lt;br /&gt;
| [[File:Sl_mcu_stm32c551_top_left_render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32C551]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32c551/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32H723]]&lt;br /&gt;
| [[File:Sl_mcu_stm32h723_top_left_render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a STM32H723&lt;br /&gt;
| Prototype&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Other MCU's ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Connect]] (DAPlink FIrmware)&lt;br /&gt;
| [[File:Sl prog top left render.png|80px]]&lt;br /&gt;
| Streamline Programmer &amp;amp; Debugger.  This module is essentially identical to [[Jolt Connect]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_connect/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU RP2354]]&lt;br /&gt;
| [[File:Sl mcu rp2354 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[RP2354]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_rp2354/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU ESP32S6]]&lt;br /&gt;
| [[File:Sl mcu esp32s6 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[ESP32S6]]&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Neopixel 8x8]]&lt;br /&gt;
| [[File:Sl neopixel 8x8 top left render.png|80px]]&lt;br /&gt;
| Module with an 8x8 matrix of Neopixel WS2812 LEDs&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_neopixel_8x8/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage SD]]&lt;br /&gt;
| [[File:Sl storage sd top left render rev A.png|80px]]&lt;br /&gt;
| Module with Micro-SD slot&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_sd/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage Flash]]&lt;br /&gt;
| [[File:Sl storage flash top left render.png|80px]]&lt;br /&gt;
| Module with 16 MB Flash storage ([[W25q128]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_flash/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage EEPROM]]&lt;br /&gt;
| [[File:Sl storage eeprom top left render.png|80px]]&lt;br /&gt;
| Module with 512kB EEPROM storage ([[M24M01]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_eeprom/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline IO Audio DAC]]&lt;br /&gt;
| [[File:Sl_io_pcm5102_top_left_render.png|80px]]&lt;br /&gt;
| PCM5102 I2S Audio DAC&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_io_audio_dac/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline IO CAN]]&lt;br /&gt;
| [[File:Sl_io_can_top_left_render.png|80px]]&lt;br /&gt;
| CAN bus interface&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_io_can/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Ethernet]]&lt;br /&gt;
| [[File:Streamline_ethernet_top_left_render.png|80px]]&lt;br /&gt;
| Ethernet interface for STM32F407&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_ethernet/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline SPI-Ethernet]]&lt;br /&gt;
| [[File:Streamline_seth_top_left_render.png|80px]]&lt;br /&gt;
| Ethernet interface via the SPI bus&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline RS485]]&lt;br /&gt;
| [[File:Streamline_rs485_top_left_render.png|80px]]&lt;br /&gt;
| Non-isolated RS485 interface&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Real Time Clock&lt;br /&gt;
| &lt;br /&gt;
| Real time clock with on board coin cell battery (or supercap) backup&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline ESC&lt;br /&gt;
| &lt;br /&gt;
| Electronic speed control for BLDC motors&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline HS USB&lt;br /&gt;
| &lt;br /&gt;
| HS USB blade using [[USB3300]]&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline WiFi&lt;br /&gt;
| &lt;br /&gt;
| WiFi interface&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Temperature/Humidity&lt;br /&gt;
| &lt;br /&gt;
| Sensor of temperature and humidity&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Compass&lt;br /&gt;
| &lt;br /&gt;
| Compass&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Gyro&lt;br /&gt;
| &lt;br /&gt;
| Gyro&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Accelerometer&lt;br /&gt;
| &lt;br /&gt;
| Accelerometer&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline GPS&lt;br /&gt;
| &lt;br /&gt;
| GPS&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline FM Radio&lt;br /&gt;
| &lt;br /&gt;
| FM and DAB radio receiver&lt;br /&gt;
| Idea&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Standard Pinout ==&lt;br /&gt;
&lt;br /&gt;
The pinout table is based on a [[MCU]] board with a 100 pin STM32F407.  Boards using [[STM32]] [[MCU]]s with less pins will leave some of the pins unused.&lt;br /&gt;
&lt;br /&gt;
* [[Streamline Peripheral Pin Mapping]] - peripheral-by-peripheral pin mapping.&lt;br /&gt;
* [[Streamline Header Mapping]] - Backplane-to-GPIO and GPIO-to-Backplane mapping.&lt;br /&gt;
&lt;br /&gt;
== Prototype Photos == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 3.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 2.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top left.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - front.jpg&lt;br /&gt;
File:Streamline Multiple Blades.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - bottom view.jpg&lt;br /&gt;
File:Streamline Connect - top view.jpg&lt;br /&gt;
File:Streamline Connect - bottom view.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://currentmakers.com CurrentMakers main site]&lt;br /&gt;
* [https://github.com/currentmakers/streamline_kicad_libraries Streamline KiCAD Libraries]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline&amp;diff=8687</id>
		<title>Streamline</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline&amp;diff=8687"/>
		<updated>2026-10-08T22:35:45Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rationale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:Streamline]][[Category:CurrentMakers]][[Category:Work in progress]]{{metadesc|Streamline Development Boards Home}}&lt;br /&gt;
[[File:Streamline Backplane with 2 blades - top right 3.jpg|300px|thumb|Streamline Backplane with 2 blades - 1 Connect and 1 MCU]]&lt;br /&gt;
This page documents the new [[CurrentMakers]] [[Streamline]] series of [[Green]] development boards.  If you are looking for the previous series, that is document here: [[STM32World Legacy]].&lt;br /&gt;
&lt;br /&gt;
[[Streamline]] boards are available here: [https://currentmakers.com/products/streamline/ Streamline on CurrentMakers]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
== Rationale ==&lt;br /&gt;
[[File:3 STM32World Modules stacked.jpg|300px|thumb|The old STM32World system]]&lt;br /&gt;
A number of [[STM32World Legacy]] boards have been developed, and produced, and in general the &amp;quot;system&amp;quot; worked very well.  It did however have one fatal flaw which was the sole cause of it never being considered for more widespread production.  This flaw was the board to board connector.&lt;br /&gt;
&lt;br /&gt;
The original boards used a 2x20 standard pin header on each side giving a result of 80 pins.  In terms of connectivity this was a pretty good solution.  It did however present some issues:&lt;br /&gt;
&lt;br /&gt;
# Cost - the long pin 2x20 connectors are fairly expensive - around $0.80 each - so $1.60 per board.  This may not sound that high but when producing a lot it becomes a serious cost.&lt;br /&gt;
# Manufacturing -  the headers can not be manufactured with traditional SMD technologies but require a manual step or hand soldering.&lt;br /&gt;
# Fragile - when shipping or disconnecting boards it is hard not to bend one or more pins and once bend it becomes extremely difficult to reconnect them.&lt;br /&gt;
&lt;br /&gt;
To get around this flaw a new &amp;quot;connector&amp;quot; was considered and after a long search the best solution was the standard PCI-E X8 connector.&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|5xQqV7BhYxM}}&lt;br /&gt;
&lt;br /&gt;
Receiving the first prototypes ever:&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|YS1w_8ghCf4}}&lt;br /&gt;
&lt;br /&gt;
== Backplane ==&lt;br /&gt;
&lt;br /&gt;
The overall idea is to base [[StreamLine]] around a passive backplane.  The backplane contains a number of PCI connectors with 2 x 49 pins (98) that is simply connected in a parallel bus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Sl bp 5 top left.png|1000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In each end of the bus all the A and B signals are broken out into regular pin headers.&lt;br /&gt;
&lt;br /&gt;
=== Backplane rendering ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Backplane top render.png&lt;br /&gt;
File:Backplane front render.png&lt;br /&gt;
File:Backplane front left render.png&lt;br /&gt;
File:Sl bp 5 top.png&lt;br /&gt;
File:Sl bp 5 top left.png&lt;br /&gt;
File:Sl bp 5 top right.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== [[Backplane]]s === &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Backplane 5]]&lt;br /&gt;
| [[File:sl_bp_5_top_left.png|80px]]&lt;br /&gt;
| Basic 5 position backplane&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_backplane_5/ Available]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[Blade]]s ===&lt;br /&gt;
&lt;br /&gt;
==== STM32 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Connect]] (ST-Link firmware)&lt;br /&gt;
| [[File:Sl prog top left render.png|80px]]&lt;br /&gt;
| Streamline Programmer &amp;amp; Debugger.  This module is essentially identical to [[Jolt Connect]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_connect/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32F407]]&lt;br /&gt;
| [[File:Sl mcu stm32f407 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32F407]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32f407/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32H562]]&lt;br /&gt;
| [[File:Sl mcu stm32h562 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32H562]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32h562/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32L475]]&lt;br /&gt;
| [[File:Sl mcu stm32l475 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32L475]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32l475/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32C551]]&lt;br /&gt;
| [[File:Sl_mcu_stm32c551_top_left_render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[STM32C551]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_stm32c551/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU STM32H723]]&lt;br /&gt;
| [[File:Sl_mcu_stm32h723_top_left_render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a STM32H723&lt;br /&gt;
| Prototype&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Other MCU's ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Connect]] (DAPlink FIrmware)&lt;br /&gt;
| [[File:Sl prog top left render.png|80px]]&lt;br /&gt;
| Streamline Programmer &amp;amp; Debugger.  This module is essentially identical to [[Jolt Connect]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_connect/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU RP2354]]&lt;br /&gt;
| [[File:Sl mcu rp2354 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[RP2354]]&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_mcu_rp2354/ Available]&lt;br /&gt;
|- &lt;br /&gt;
| [[Streamline MCU ESP32S6]]&lt;br /&gt;
| [[File:Sl mcu esp32s6 top left render.png|80px]]&lt;br /&gt;
| Streamline MCU board including a [[ESP32S6]]&lt;br /&gt;
| Planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Neopixel 8x8]]&lt;br /&gt;
| [[File:Sl neopixel 8x8 top left render.png|80px]]&lt;br /&gt;
| Module with an 8x8 matrix of Neopixel WS2812 LEDs&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_neopixel_8x8/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage SD]]&lt;br /&gt;
| [[File:Sl storage sd top left render rev A.png|80px]]&lt;br /&gt;
| Module with Micro-SD slot&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_sd/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage Flash]]&lt;br /&gt;
| [[File:Sl storage flash top left render.png|80px]]&lt;br /&gt;
| Module with 16 MB Flash storage ([[W25q128]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_flash/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Storage EEPROM]]&lt;br /&gt;
| [[File:Sl storage eeprom top left render.png|80px]]&lt;br /&gt;
| Module with 512kB EEPROM storage ([[M24M01]])&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_eeprom/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline IO Audio DAC]]&lt;br /&gt;
| [[File:Sl_io_pcm5102_top_left_render.png|80px]]&lt;br /&gt;
| PCM5102 I2S Audio DAC&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_io_audio_dac/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline IO CAN]]&lt;br /&gt;
| [[File:Sl_io_can_top_left_render.png|80px]]&lt;br /&gt;
| CAN bus interface&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_io_can/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline Ethernet]]&lt;br /&gt;
| [[File:Streamline_ethernet_top_left_render.png|80px]]&lt;br /&gt;
| Ethernet interface for STM32F407&lt;br /&gt;
| [https://currentmakers.com/products/streamline/streamline_ethernet/ Available]&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline SPI-Ethernet]]&lt;br /&gt;
| [[File:Streamline_seth_top_left_render.png|80px]]&lt;br /&gt;
| Ethernet interface via the SPI bus&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| [[Streamline RS485]]&lt;br /&gt;
| [[File:Streamline_rs485_top_left_render.png|80px]]&lt;br /&gt;
| Non-isolated RS485 interface&lt;br /&gt;
| Prototype&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Real Time Clock&lt;br /&gt;
| &lt;br /&gt;
| Real time clock with on board coin cell battery (or supercap) backup&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline ESC&lt;br /&gt;
| &lt;br /&gt;
| Electronic speed control for BLDC motors&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline HS USB&lt;br /&gt;
| &lt;br /&gt;
| HS USB blade using [[USB3300]]&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline WiFi&lt;br /&gt;
| &lt;br /&gt;
| WiFi interface&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Temperature/Humidity&lt;br /&gt;
| &lt;br /&gt;
| Sensor of temperature and humidity&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Compass&lt;br /&gt;
| &lt;br /&gt;
| Compass&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Gyro&lt;br /&gt;
| &lt;br /&gt;
| Gyro&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline Accelerometer&lt;br /&gt;
| &lt;br /&gt;
| Accelerometer&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline GPS&lt;br /&gt;
| &lt;br /&gt;
| GPS&lt;br /&gt;
| Idea&lt;br /&gt;
|-&lt;br /&gt;
| Streamline FM Radio&lt;br /&gt;
| &lt;br /&gt;
| FM and DAB radio receiver&lt;br /&gt;
| Idea&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Standard Pinout ==&lt;br /&gt;
&lt;br /&gt;
The pinout table is based on a [[MCU]] board with a 100 pin STM32F407.  Boards using [[STM32]] [[MCU]]s with less pins will leave some of the pins unused.&lt;br /&gt;
&lt;br /&gt;
* [[Streamline Peripheral Pin Mapping]] - peripheral-by-peripheral pin mapping.&lt;br /&gt;
* [[Streamline Header Mapping]] - Backplane-to-GPIO and GPIO-to-Backplane mapping.&lt;br /&gt;
&lt;br /&gt;
== Prototype Photos == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 3.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right 2.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top right.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - top left.jpg&lt;br /&gt;
File:Streamline Backplane with 2 blades - front.jpg&lt;br /&gt;
File:Streamline Multiple Blades.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32L475 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32H562 - bottom view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - top view.jpg&lt;br /&gt;
File:Streamline MCU STM32F407 - bottom view.jpg&lt;br /&gt;
File:Streamline Connect - top view.jpg&lt;br /&gt;
File:Streamline Connect - bottom view.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://currentmakers.com CurrentMakers main site]&lt;br /&gt;
* [https://github.com/currentmakers/streamline_kicad_libraries Streamline KiCAD Libraries]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Conditional_Breakpoint_Trap&amp;diff=8686</id>
		<title>Conditional Breakpoint Trap</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Conditional_Breakpoint_Trap&amp;diff=8686"/>
		<updated>2026-10-08T02:52:09Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;{{Video |series=STM32 Short Video |number=15 |title=Conditional Breakpoint Trap |youtube-id=l2FUJsc4aGU |description=Showing how I managed to mess up conditional breakpoints a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Video&lt;br /&gt;
|series=STM32 Short Video&lt;br /&gt;
|number=15&lt;br /&gt;
|title=Conditional Breakpoint Trap&lt;br /&gt;
|youtube-id=l2FUJsc4aGU&lt;br /&gt;
|description=Showing how I managed to mess up conditional breakpoints as a big warning to others.  Also showing how the RP2350 is more resilient to my idiocy.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8681</id>
		<title>CH32V407 and CH32V467</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8681"/>
		<updated>2026-10-06T01:06:16Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Miscellaneous links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CH32]][[Category:RISC-V]][[Category:CH32V4xx]][[Category:MCU]]{{metadesc|CH32V4xx  RISC-V MCU documentation}}&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/7/75/CH32V407DS0.pdf CH32V407/CH32V467 English Datasheet]&lt;br /&gt;
* [https://stm32world.com/images/9/97/CH32V407RM.pdf CH32V407/CH32V467 English Reference Manual]&lt;br /&gt;
* [https://stm32world.com/images/0/06/QingKeV3_Processor_Manual.pdf QingKeV3 Microprocessor Manual]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:CH32V407DS0.pdf&amp;diff=8680</id>
		<title>File:CH32V407DS0.pdf</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:CH32V407DS0.pdf&amp;diff=8680"/>
		<updated>2026-10-06T01:05:42Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8679</id>
		<title>CH32V407 and CH32V467</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8679"/>
		<updated>2026-10-06T01:03:56Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Miscellaneous links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CH32]][[Category:RISC-V]][[Category:CH32V4xx]][[Category:MCU]]{{metadesc|CH32V4xx  RISC-V MCU documentation}}&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/9/97/CH32V407RM.pdf CH32V407/CH32V467 English Datasheet]&lt;br /&gt;
* [https://stm32world.com/images/0/06/QingKeV3_Processor_Manual.pdf QingKeV3 Microprocessor Manual]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:QingKeV3_Processor_Manual.pdf&amp;diff=8678</id>
		<title>File:QingKeV3 Processor Manual.pdf</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:QingKeV3_Processor_Manual.pdf&amp;diff=8678"/>
		<updated>2026-10-06T01:03:20Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8677</id>
		<title>CH32V407 and CH32V467</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8677"/>
		<updated>2026-10-06T00:59:24Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CH32]][[Category:RISC-V]][[Category:CH32V4xx]][[Category:MCU]]{{metadesc|CH32V4xx  RISC-V MCU documentation}}&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous links ==&lt;br /&gt;
&lt;br /&gt;
* [https://stm32world.com/images/9/97/CH32V407RM.pdf CH32V407/CH32V467 English Datasheet]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=File:CH32V407RM.pdf&amp;diff=8676</id>
		<title>File:CH32V407RM.pdf</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=File:CH32V407RM.pdf&amp;diff=8676"/>
		<updated>2026-10-06T00:58:01Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Category:CH32V4xx&amp;diff=8675</id>
		<title>Category:CH32V4xx</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Category:CH32V4xx&amp;diff=8675"/>
		<updated>2026-10-06T00:57:35Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;CH32V4xx MCUs&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CH32V4xx MCUs&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8674</id>
		<title>CH32V407 and CH32V467</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=CH32V407_and_CH32V467&amp;diff=8674"/>
		<updated>2026-10-06T00:57:10Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;Category:CH32Category:RISC-VCategory:CH32V4xxCategory:MCU{{metadesc|CH32V4xx  RISC-V MCU documentation}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CH32]][[Category:RISC-V]][[Category:CH32V4xx]][[Category:MCU]]{{metadesc|CH32V4xx  RISC-V MCU documentation}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8673</id>
		<title>ST-Link</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8673"/>
		<updated>2026-10-06T00:50:47Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Upgrade issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Hardware]][[Category:ST-Link]]{{metadesc|ST-Link STM32 Flash and Debugging tool}}&lt;br /&gt;
&lt;br /&gt;
There's a number of different ways to flash [[STM32]] devices.  One of these is to use [[ST]]'s own [[ST-Link]] devices using the [[Serial Wire Debug]] (aka [[SWD]]) protocol.&lt;br /&gt;
&lt;br /&gt;
[[File:STLink.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
There are multiple benefits of using one of these [[ST-Link]] devices rather than a plain serial dongle:&lt;br /&gt;
&lt;br /&gt;
# The device need not be restarted in flash mode ([[Boot0]])&lt;br /&gt;
# Programs can be debugged on the device&lt;br /&gt;
&lt;br /&gt;
The official [[ST-Link]] as seen above are relatively cheap (&amp;lt; $20) and there are Chinese copies available (haven't tried those).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are also running on a [[DIY ST-Link V2.1]] device.&lt;br /&gt;
&lt;br /&gt;
== Video == &lt;br /&gt;
&lt;br /&gt;
We created a detailed video on the topic of using [[ST-Link]].&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jHo_IpqRlRE}}&lt;br /&gt;
&lt;br /&gt;
A later video dig into all the features, SWD, SWO and UART.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2 == &lt;br /&gt;
[[File:ST-Link V2 Photo.png|thumb|300px|Original ST-Link/V2]]&lt;br /&gt;
While there must have been a V1 at some point, the ST-Link/V2 displayed in the photo to the left was for years the one to use.  The original can still be purchased from places like Mouser, but there are also plenty of exact Chinese clones around (exact as in they look exactly the same).&lt;br /&gt;
&lt;br /&gt;
These ST-Link devices are enclosed in a quite large white plastic casing but for some truly bizarre reason, [[ST]] could not be arsed to put a legend on the device, so one either have to have a very good memory or Google the pin out constantly.&lt;br /&gt;
&lt;br /&gt;
Another very common clone are these:&lt;br /&gt;
&lt;br /&gt;
[[File:Chinese ST-Link Clone.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link Bunch.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
They are Chinese knock offs but they run the official [[ST-Link]] firmware and contrary to the official one they actually have the pin out legend printed on the box.  Generally these devices work just fine but with certain limitations.&lt;br /&gt;
&lt;br /&gt;
The V2 devices does not have any UART/Serial functionality.  The original does have SWO (Serial Wire Output) which can be used to print debug information.  The small Chinese knock-offs ''can'' be modified to include a SWO pin (see link [[#More Reading|here]]).&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2-1 (Nucleo) ==&lt;br /&gt;
[[File:St-Link Nucleo.png|thumb|400px]]&lt;br /&gt;
For beginners, the Nucleo boards are absolutely brilliant.  First of all, being official [[ST]] boards they obviously include an original [[STM32]] [[MCU]], but they do in fact include '''two''' [[MCU]]s and the second one acts like a ST-Link/V2-1 device.  Contrary to the [[#ST-Link/V2|ST-Link/V2]], this one does include a SWO pin AND a USB/UART interface.&lt;br /&gt;
&lt;br /&gt;
ST-Link/V2-1 devices does not exist as a stand-alone product, but they can be broken off the Nucleo and used as a stand-alone device.  The complete schematics is available in the manual of the Nucleo boards, so it is in fact possible to use this to build your own.  An example of that is shown here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
[[File:STM32 Programmer fully assembled - 5pcs.jpg|600px|Home made ST-Link/V2-1 devices]]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3MINIE ==&lt;br /&gt;
[[File:ST-Link V3MINIE Photo.png|thumb|300px]]&lt;br /&gt;
To be added &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3SET ==&lt;br /&gt;
[[File:ST-Link V3SET.png|thumb|300px]]&lt;br /&gt;
To be added&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Analysis == &lt;br /&gt;
&lt;br /&gt;
[[ST]] does not make schematics or source code available for the official ST-Link devices, which is a pity (and a somewhat odd business decision).  However, they '''do''' publish a partial schematics since a built-in ST-Link device is included in all their development boards, a partial schematics is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ST-Link V2.1 Original Schematics.png|1800px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the schematics we can see that the ST-Link device is build around a STM32F103CBT6 which is the 128 kB Flash version.&lt;br /&gt;
&lt;br /&gt;
PC13 and PC14 (and possibly PC15 in the future) appears to be working as a means for the firmware to identify the &amp;quot;version&amp;quot; of the hardware.  On above schematics, PC13 is pulled low with a resistor while PC14 (and PC15) are left floating.&lt;br /&gt;
&lt;br /&gt;
A voltage divider splitting +3.3 V in half is connected to PA0 and labelled AIN_1.  The ST-Link devices are capable of measuring the target processor supply voltage and this is probably a workaround of the development boards (which know their supply voltage already).&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;output&amp;quot; pins of the ST-Link V2 are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Label&lt;br /&gt;
! Remarks&lt;br /&gt;
|- &lt;br /&gt;
| PA0&lt;br /&gt;
| AIN_1&lt;br /&gt;
| Probably meant as an analog input, measuring the supply voltage on the target device.  On the development boards, the supply voltage is well known, so this pin is connected to a voltage divider splitting the supply voltage in half (1.65V or thereabouts).&lt;br /&gt;
|-&lt;br /&gt;
| PA5&lt;br /&gt;
| T_JTCK&lt;br /&gt;
| Target Clock&lt;br /&gt;
|-&lt;br /&gt;
| PA6&lt;br /&gt;
| T_JTDO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA7&lt;br /&gt;
| T_JTDI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PA10&lt;br /&gt;
| T_SWO&lt;br /&gt;
| Target trace debugging.  This pin is unconnected on the Chinese clone ST-Links, which is annoying.&lt;br /&gt;
|- &lt;br /&gt;
| PA12&lt;br /&gt;
| T_SWDIO_IN&lt;br /&gt;
| On development boards connected via a 100 Ohm resistor to PA14&lt;br /&gt;
|- &lt;br /&gt;
| PA13&lt;br /&gt;
| T_JTCK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA14&lt;br /&gt;
| T_JTMS&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| PB0&lt;br /&gt;
| T_NRST&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PB1&lt;br /&gt;
| T_JRST&lt;br /&gt;
| Labelled but not connected to anything&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Upgrade issues ==&lt;br /&gt;
[[File:ST-Link Bunch.jpg|thumb|200px]]&lt;br /&gt;
The little colorful Chinese clones (shown on the right) have been reported to sometimes fail firmware upgrade.  This is partly to be expected as they are '''not''' using real [[STM32]] [[MCU]]s.  We bought a pile of these at some point and none of those ever failed though.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== More Reading ==&lt;br /&gt;
&lt;br /&gt;
Github user lujji have done a number of interesting writeups on ST-Link devices, reverse engineering the ST-Link firmware and adding trace (SWO) support to the cheap Chinese ST-Link devices.&lt;br /&gt;
&lt;br /&gt;
* [https://lujji.github.io/blog/stlink-clone-trace/ Adding Trace support to ST-Link clones]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware Reverse-engineering ST-Link firmware part 1]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware-part2 Reverse-engineering ST-Link firmware part 2]&lt;br /&gt;
* [https://stm32world.com/images/5/55/St-link-slsh-v2.pdf ST-Link/V2 Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/2/27/Stlink-v3minie.pdf ST-Link/V3MINIE Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/1/1c/Stlink-v3set.pdf ST-Link/V3SET Product Sheet]&lt;br /&gt;
* [[DIY STM32 Programmer (ST-Link/V2-1)]]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8672</id>
		<title>ST-Link</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8672"/>
		<updated>2026-10-06T00:50:13Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Upgrade issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Hardware]][[Category:ST-Link]]{{metadesc|ST-Link STM32 Flash and Debugging tool}}&lt;br /&gt;
&lt;br /&gt;
There's a number of different ways to flash [[STM32]] devices.  One of these is to use [[ST]]'s own [[ST-Link]] devices using the [[Serial Wire Debug]] (aka [[SWD]]) protocol.&lt;br /&gt;
&lt;br /&gt;
[[File:STLink.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
There are multiple benefits of using one of these [[ST-Link]] devices rather than a plain serial dongle:&lt;br /&gt;
&lt;br /&gt;
# The device need not be restarted in flash mode ([[Boot0]])&lt;br /&gt;
# Programs can be debugged on the device&lt;br /&gt;
&lt;br /&gt;
The official [[ST-Link]] as seen above are relatively cheap (&amp;lt; $20) and there are Chinese copies available (haven't tried those).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are also running on a [[DIY ST-Link V2.1]] device.&lt;br /&gt;
&lt;br /&gt;
== Video == &lt;br /&gt;
&lt;br /&gt;
We created a detailed video on the topic of using [[ST-Link]].&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jHo_IpqRlRE}}&lt;br /&gt;
&lt;br /&gt;
A later video dig into all the features, SWD, SWO and UART.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2 == &lt;br /&gt;
[[File:ST-Link V2 Photo.png|thumb|300px|Original ST-Link/V2]]&lt;br /&gt;
While there must have been a V1 at some point, the ST-Link/V2 displayed in the photo to the left was for years the one to use.  The original can still be purchased from places like Mouser, but there are also plenty of exact Chinese clones around (exact as in they look exactly the same).&lt;br /&gt;
&lt;br /&gt;
These ST-Link devices are enclosed in a quite large white plastic casing but for some truly bizarre reason, [[ST]] could not be arsed to put a legend on the device, so one either have to have a very good memory or Google the pin out constantly.&lt;br /&gt;
&lt;br /&gt;
Another very common clone are these:&lt;br /&gt;
&lt;br /&gt;
[[File:Chinese ST-Link Clone.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link Bunch.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
They are Chinese knock offs but they run the official [[ST-Link]] firmware and contrary to the official one they actually have the pin out legend printed on the box.  Generally these devices work just fine but with certain limitations.&lt;br /&gt;
&lt;br /&gt;
The V2 devices does not have any UART/Serial functionality.  The original does have SWO (Serial Wire Output) which can be used to print debug information.  The small Chinese knock-offs ''can'' be modified to include a SWO pin (see link [[#More Reading|here]]).&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2-1 (Nucleo) ==&lt;br /&gt;
[[File:St-Link Nucleo.png|thumb|400px]]&lt;br /&gt;
For beginners, the Nucleo boards are absolutely brilliant.  First of all, being official [[ST]] boards they obviously include an original [[STM32]] [[MCU]], but they do in fact include '''two''' [[MCU]]s and the second one acts like a ST-Link/V2-1 device.  Contrary to the [[#ST-Link/V2|ST-Link/V2]], this one does include a SWO pin AND a USB/UART interface.&lt;br /&gt;
&lt;br /&gt;
ST-Link/V2-1 devices does not exist as a stand-alone product, but they can be broken off the Nucleo and used as a stand-alone device.  The complete schematics is available in the manual of the Nucleo boards, so it is in fact possible to use this to build your own.  An example of that is shown here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
[[File:STM32 Programmer fully assembled - 5pcs.jpg|600px|Home made ST-Link/V2-1 devices]]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3MINIE ==&lt;br /&gt;
[[File:ST-Link V3MINIE Photo.png|thumb|300px]]&lt;br /&gt;
To be added &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3SET ==&lt;br /&gt;
[[File:ST-Link V3SET.png|thumb|300px]]&lt;br /&gt;
To be added&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Analysis == &lt;br /&gt;
&lt;br /&gt;
[[ST]] does not make schematics or source code available for the official ST-Link devices, which is a pity (and a somewhat odd business decision).  However, they '''do''' publish a partial schematics since a built-in ST-Link device is included in all their development boards, a partial schematics is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ST-Link V2.1 Original Schematics.png|1800px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the schematics we can see that the ST-Link device is build around a STM32F103CBT6 which is the 128 kB Flash version.&lt;br /&gt;
&lt;br /&gt;
PC13 and PC14 (and possibly PC15 in the future) appears to be working as a means for the firmware to identify the &amp;quot;version&amp;quot; of the hardware.  On above schematics, PC13 is pulled low with a resistor while PC14 (and PC15) are left floating.&lt;br /&gt;
&lt;br /&gt;
A voltage divider splitting +3.3 V in half is connected to PA0 and labelled AIN_1.  The ST-Link devices are capable of measuring the target processor supply voltage and this is probably a workaround of the development boards (which know their supply voltage already).&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;output&amp;quot; pins of the ST-Link V2 are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Label&lt;br /&gt;
! Remarks&lt;br /&gt;
|- &lt;br /&gt;
| PA0&lt;br /&gt;
| AIN_1&lt;br /&gt;
| Probably meant as an analog input, measuring the supply voltage on the target device.  On the development boards, the supply voltage is well known, so this pin is connected to a voltage divider splitting the supply voltage in half (1.65V or thereabouts).&lt;br /&gt;
|-&lt;br /&gt;
| PA5&lt;br /&gt;
| T_JTCK&lt;br /&gt;
| Target Clock&lt;br /&gt;
|-&lt;br /&gt;
| PA6&lt;br /&gt;
| T_JTDO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA7&lt;br /&gt;
| T_JTDI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PA10&lt;br /&gt;
| T_SWO&lt;br /&gt;
| Target trace debugging.  This pin is unconnected on the Chinese clone ST-Links, which is annoying.&lt;br /&gt;
|- &lt;br /&gt;
| PA12&lt;br /&gt;
| T_SWDIO_IN&lt;br /&gt;
| On development boards connected via a 100 Ohm resistor to PA14&lt;br /&gt;
|- &lt;br /&gt;
| PA13&lt;br /&gt;
| T_JTCK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA14&lt;br /&gt;
| T_JTMS&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| PB0&lt;br /&gt;
| T_NRST&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PB1&lt;br /&gt;
| T_JRST&lt;br /&gt;
| Labelled but not connected to anything&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Upgrade issues ==&lt;br /&gt;
[[File:ST-Link Bunch.jpg|thumb|200px]]&lt;br /&gt;
The little colorful Chinese clones have been reported to sometimes fail firmware upgrade.  This is partly to be expected as they are '''not''' using real [[STM32]] [[MCU]]s.  We bought a pile of these at some point and none of those ever failed though.&lt;br /&gt;
&lt;br /&gt;
== More Reading ==&lt;br /&gt;
&lt;br /&gt;
Github user lujji have done a number of interesting writeups on ST-Link devices, reverse engineering the ST-Link firmware and adding trace (SWO) support to the cheap Chinese ST-Link devices.&lt;br /&gt;
&lt;br /&gt;
* [https://lujji.github.io/blog/stlink-clone-trace/ Adding Trace support to ST-Link clones]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware Reverse-engineering ST-Link firmware part 1]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware-part2 Reverse-engineering ST-Link firmware part 2]&lt;br /&gt;
* [https://stm32world.com/images/5/55/St-link-slsh-v2.pdf ST-Link/V2 Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/2/27/Stlink-v3minie.pdf ST-Link/V3MINIE Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/1/1c/Stlink-v3set.pdf ST-Link/V3SET Product Sheet]&lt;br /&gt;
* [[DIY STM32 Programmer (ST-Link/V2-1)]]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8671</id>
		<title>ST-Link</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=ST-Link&amp;diff=8671"/>
		<updated>2026-10-06T00:45:58Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Upgrade issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:STM32]][[Category:STM32 Hardware]][[Category:ST-Link]]{{metadesc|ST-Link STM32 Flash and Debugging tool}}&lt;br /&gt;
&lt;br /&gt;
There's a number of different ways to flash [[STM32]] devices.  One of these is to use [[ST]]'s own [[ST-Link]] devices using the [[Serial Wire Debug]] (aka [[SWD]]) protocol.&lt;br /&gt;
&lt;br /&gt;
[[File:STLink.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
There are multiple benefits of using one of these [[ST-Link]] devices rather than a plain serial dongle:&lt;br /&gt;
&lt;br /&gt;
# The device need not be restarted in flash mode ([[Boot0]])&lt;br /&gt;
# Programs can be debugged on the device&lt;br /&gt;
&lt;br /&gt;
The official [[ST-Link]] as seen above are relatively cheap (&amp;lt; $20) and there are Chinese copies available (haven't tried those).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are also running on a [[DIY ST-Link V2.1]] device.&lt;br /&gt;
&lt;br /&gt;
== Video == &lt;br /&gt;
&lt;br /&gt;
We created a detailed video on the topic of using [[ST-Link]].&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|jHo_IpqRlRE}}&lt;br /&gt;
&lt;br /&gt;
A later video dig into all the features, SWD, SWO and UART.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|VMHezAb0Ut0}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2 == &lt;br /&gt;
[[File:ST-Link V2 Photo.png|thumb|300px|Original ST-Link/V2]]&lt;br /&gt;
While there must have been a V1 at some point, the ST-Link/V2 displayed in the photo to the left was for years the one to use.  The original can still be purchased from places like Mouser, but there are also plenty of exact Chinese clones around (exact as in they look exactly the same).&lt;br /&gt;
&lt;br /&gt;
These ST-Link devices are enclosed in a quite large white plastic casing but for some truly bizarre reason, [[ST]] could not be arsed to put a legend on the device, so one either have to have a very good memory or Google the pin out constantly.&lt;br /&gt;
&lt;br /&gt;
Another very common clone are these:&lt;br /&gt;
&lt;br /&gt;
[[File:Chinese ST-Link Clone.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ST-Link Bunch.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
They are Chinese knock offs but they run the official [[ST-Link]] firmware and contrary to the official one they actually have the pin out legend printed on the box.  Generally these devices work just fine but with certain limitations.&lt;br /&gt;
&lt;br /&gt;
The V2 devices does not have any UART/Serial functionality.  The original does have SWO (Serial Wire Output) which can be used to print debug information.  The small Chinese knock-offs ''can'' be modified to include a SWO pin (see link [[#More Reading|here]]).&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V2-1 (Nucleo) ==&lt;br /&gt;
[[File:St-Link Nucleo.png|thumb|400px]]&lt;br /&gt;
For beginners, the Nucleo boards are absolutely brilliant.  First of all, being official [[ST]] boards they obviously include an original [[STM32]] [[MCU]], but they do in fact include '''two''' [[MCU]]s and the second one acts like a ST-Link/V2-1 device.  Contrary to the [[#ST-Link/V2|ST-Link/V2]], this one does include a SWO pin AND a USB/UART interface.&lt;br /&gt;
&lt;br /&gt;
ST-Link/V2-1 devices does not exist as a stand-alone product, but they can be broken off the Nucleo and used as a stand-alone device.  The complete schematics is available in the manual of the Nucleo boards, so it is in fact possible to use this to build your own.  An example of that is shown here: [[DIY STM32 Programmer (ST-Link/V2-1)]].&lt;br /&gt;
&lt;br /&gt;
[[File:STM32 Programmer fully assembled - 5pcs.jpg|600px|Home made ST-Link/V2-1 devices]]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3MINIE ==&lt;br /&gt;
[[File:ST-Link V3MINIE Photo.png|thumb|300px]]&lt;br /&gt;
To be added &lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== ST-Link/V3SET ==&lt;br /&gt;
[[File:ST-Link V3SET.png|thumb|300px]]&lt;br /&gt;
To be added&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Analysis == &lt;br /&gt;
&lt;br /&gt;
[[ST]] does not make schematics or source code available for the official ST-Link devices, which is a pity (and a somewhat odd business decision).  However, they '''do''' publish a partial schematics since a built-in ST-Link device is included in all their development boards, a partial schematics is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:ST-Link V2.1 Original Schematics.png|1800px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the schematics we can see that the ST-Link device is build around a STM32F103CBT6 which is the 128 kB Flash version.&lt;br /&gt;
&lt;br /&gt;
PC13 and PC14 (and possibly PC15 in the future) appears to be working as a means for the firmware to identify the &amp;quot;version&amp;quot; of the hardware.  On above schematics, PC13 is pulled low with a resistor while PC14 (and PC15) are left floating.&lt;br /&gt;
&lt;br /&gt;
A voltage divider splitting +3.3 V in half is connected to PA0 and labelled AIN_1.  The ST-Link devices are capable of measuring the target processor supply voltage and this is probably a workaround of the development boards (which know their supply voltage already).&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;output&amp;quot; pins of the ST-Link V2 are as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Label&lt;br /&gt;
! Remarks&lt;br /&gt;
|- &lt;br /&gt;
| PA0&lt;br /&gt;
| AIN_1&lt;br /&gt;
| Probably meant as an analog input, measuring the supply voltage on the target device.  On the development boards, the supply voltage is well known, so this pin is connected to a voltage divider splitting the supply voltage in half (1.65V or thereabouts).&lt;br /&gt;
|-&lt;br /&gt;
| PA5&lt;br /&gt;
| T_JTCK&lt;br /&gt;
| Target Clock&lt;br /&gt;
|-&lt;br /&gt;
| PA6&lt;br /&gt;
| T_JTDO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA7&lt;br /&gt;
| T_JTDI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PA10&lt;br /&gt;
| T_SWO&lt;br /&gt;
| Target trace debugging.  This pin is unconnected on the Chinese clone ST-Links, which is annoying.&lt;br /&gt;
|- &lt;br /&gt;
| PA12&lt;br /&gt;
| T_SWDIO_IN&lt;br /&gt;
| On development boards connected via a 100 Ohm resistor to PA14&lt;br /&gt;
|- &lt;br /&gt;
| PA13&lt;br /&gt;
| T_JTCK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PA14&lt;br /&gt;
| T_JTMS&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| PB0&lt;br /&gt;
| T_NRST&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PB1&lt;br /&gt;
| T_JRST&lt;br /&gt;
| Labelled but not connected to anything&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Upgrade issues ==&lt;br /&gt;
&lt;br /&gt;
The little colorful Chinese clones have been reported to sometimes fail firmware upgrade.  This is partly to be expected as they are '''not''' using real [[STM32]] [[MCU]]s.  We bought a pile of these at some point and none of those ever failed though.&lt;br /&gt;
&lt;br /&gt;
== More Reading ==&lt;br /&gt;
&lt;br /&gt;
Github user lujji have done a number of interesting writeups on ST-Link devices, reverse engineering the ST-Link firmware and adding trace (SWO) support to the cheap Chinese ST-Link devices.&lt;br /&gt;
&lt;br /&gt;
* [https://lujji.github.io/blog/stlink-clone-trace/ Adding Trace support to ST-Link clones]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware Reverse-engineering ST-Link firmware part 1]&lt;br /&gt;
* [https://lujji.github.io/blog/reverse-engineering-stlink-firmware-part2 Reverse-engineering ST-Link firmware part 2]&lt;br /&gt;
* [https://stm32world.com/images/5/55/St-link-slsh-v2.pdf ST-Link/V2 Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/2/27/Stlink-v3minie.pdf ST-Link/V3MINIE Product Sheet]&lt;br /&gt;
* [https://stm32world.com/images/1/1c/Stlink-v3set.pdf ST-Link/V3SET Product Sheet]&lt;br /&gt;
* [[DIY STM32 Programmer (ST-Link/V2-1)]]&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=STM32CubeMX_from_one_MCU_to_another&amp;diff=8670</id>
		<title>STM32CubeMX from one MCU to another</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=STM32CubeMX_from_one_MCU_to_another&amp;diff=8670"/>
		<updated>2026-10-05T05:11:20Z</updated>

		<summary type="html">&lt;p&gt;Lth: Created page with &amp;quot;{{Video |series=STM32 Tutorial Video |number=104 |title=STM32CubeMX from one MCU to another |youtube-id=oBbHGRgLxGM |description=In this video we will demonstrate how you can...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Video&lt;br /&gt;
|series=STM32 Tutorial Video&lt;br /&gt;
|number=104&lt;br /&gt;
|title=STM32CubeMX from one MCU to another&lt;br /&gt;
|youtube-id=oBbHGRgLxGM&lt;br /&gt;
|description=In this video we will demonstrate how you can move a STM32CubeMX project from one MCU model to another.  Spoiler: it is not simple and easy!!!  We will port a project from a STM32F407VE to a STM32H723VE.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8669</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8669"/>
		<updated>2026-10-05T03:49:15Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP2350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 3.jpg|600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8668</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8668"/>
		<updated>2026-10-05T03:47:48Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rev. D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP21350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 3.jpg|600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8667</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8667"/>
		<updated>2026-10-05T03:46:00Z</updated>

		<summary type="html">&lt;p&gt;Lth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP21350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 4.jpg|600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8666</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8666"/>
		<updated>2026-10-05T03:45:06Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rev. D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP21350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;resimg&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 4.jpg|width=600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8665</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8665"/>
		<updated>2026-10-05T03:44:40Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rev. D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP21350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Rev D Fix 4.jpg|width=600px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
	<entry>
		<id>https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8664</id>
		<title>Streamline MCU RP2354</title>
		<link rel="alternate" type="text/html" href="https://stm32world.com/w/index.php?title=Streamline_MCU_RP2354&amp;diff=8664"/>
		<updated>2026-10-05T03:43:18Z</updated>

		<summary type="html">&lt;p&gt;Lth: /* Rev. D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RP21350]][[Category:Streamline]][[Category:Streamline Blade]]{{metadesc|RP2354 Streamline MCU board documentation}}&lt;br /&gt;
[[File:Streamline RP2350 setup - top left.jpg|350px|thumb|Streamline backplane with Connect and MCU RP2354]]&lt;br /&gt;
The [[Streamline MCU RP2354]] is a basic [[Streamline]] [[RP2354]] [[MCU]] board build around a [[RP2354]].&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Videos == &lt;br /&gt;
&lt;br /&gt;
In order not to &amp;quot;pollute&amp;quot; the STM32World channel, we made another channel for RP2350 stuff.  You can access this channel here: [https://www.youtube.com/@RPPicoWorld/videos https://www.youtube.com/@RPPicoWorld].&lt;br /&gt;
&lt;br /&gt;
One of the first videos using the [[Streamline MCU RP2354]]: &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|z-0-4W92aTU}}&lt;br /&gt;
&lt;br /&gt;
== Schematics ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;res-img&amp;quot;&amp;gt;&lt;br /&gt;
[[File:sl_mcu_rp2354.svg|2000px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The [[Streamline MCU RP2354]] has gone through a number of revisions.  The current version is rev. D.&lt;br /&gt;
&lt;br /&gt;
=== Rev. D ===&lt;br /&gt;
&lt;br /&gt;
One mistake was made with the onboard LED.  It is connected to the PC13 pin on the header but it is '''not''' connected to the MCU.  This is easily fixed with a jumper on the header - like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rev D Fix 1.jpg&lt;br /&gt;
File:Rev D Fix 2.jpg&lt;br /&gt;
File:Rev D Fix 3.jpg&lt;br /&gt;
File:Rev D Fix 4.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:sl_mcu_rp2354_top_right_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_render.png&lt;br /&gt;
File:sl_mcu_rp2354_top_left_render.png&lt;br /&gt;
File:sl_mcu_rp2354_bot_render.png&lt;br /&gt;
File:Streamline RP2350 setup - top left.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right.jpg&lt;br /&gt;
File:Streamline RP2350 setup - top right 2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lth</name></author>
	</entry>
</feed>