is stm32f103 programmable via micro usb?
According to this document, the STM32F10xxx internal (ROM) bootloader only supports the USART. Therefore, unless the board arrives with an existing USB bootloader, it cannot be initially programmed via the USB port.

However, you can buy an ST-Link or an ST-Link clone to program the board (they are very cheap, as far as programmers go, even the genuine ones). ST-Link programs the board over a two-wire serial debug connection (SWDIO and SWCLK). Once you have a programmer, you can use mbed with the STM32F103 Nucleo board as your target, and then download the .bin file and flash it to the board with the ST Link command line tools.

However, once you are able to program the board, you can flash a USB bootloader and program it via USB. I have a very similar board (same chip, slightly different board), and I will try flashing a Maple(ish) bootloader and programming it via Arduino or something and report back, give me a few minutes.

Edit: partial success



I was able to flash this STM32duino bootloader using my programmer. Plugging the board in on my Mac now enumerates via USB as follows:

Maple 003@14100000  &lt;class AppleUSBDevice, id 0x1000113c5, registered, matched, active, busy 0 (163 ms), retain 14&gt;


However, while this Arduino STM32 library looks like it should work, I couldn't get it to build. There are a lot of issues with the includes and I'm not going to bother trying to fix up the paths. However, it looks like it ought to work after a bit of fiddling.



I also want to point something out. It seems like you are a beginner with respect to ARM development. Because of this, I would highly suggest buying an STM Nucleo board, getting comfortable with it, and then moving to cheaper and less-documented boards like this one. The Nucleo boards are incredibly cheap and considerably better documented than bottom of the barrel boards on eBay.