---
layout: post
title: "Arduino boot loader on cheap Chinese BluePill clone"
date: 2019-08-11 16:59:46 +0200
comments: true
categories: 
---

Boot modes: flash/ROM (system memory)/RAM
Bootloader or not/purpose/various programming methods
  * UART
  * ST-LINK
  * DFU
Arduino boot loader: dual device issue (serial ACM vs DFU)
  * reset -> loader (3s) -> user app
  * when ACM app detects DTR toggle, reset USB bus (or reset MCU???)
    and switch back to DFU loader
  * rogerclarke
  * support recently integrated in official STM32duino
Bare boot loader: DFU only, by default one shot at reset, no support
for switching back through DTR (no ACM!)
Requires a sketch which implements the ACM dev (SerialUSB)
For some reason the distributed combined loader+sketch does not
work.
Perpetual loader mode (stay in DFU)
Once first sketch is programmed, it contains ACM support for
loading the next one... *If* the correct programming mode is
selected while building the sketch!

Alternative: HID bootloader (not thoroughly investigated)

Reliability issue (host sometimes unable to open ACM)

ST-LINK is superior (no 3s delay at boot time, reliable programming)