Page 1 of 1

How to use with PlatformIO?

Posted: Sun May 17, 2020 12:59 pm
by Kenjutsu
Good day

How do I use this bootloader with PlatformIO?

It works perfectly under Arduino without fail, so thank you so much for your hard work on this. Under macOS, I have found that only Serial upload worked perfectly each time. Now I can add the STM32 HID bootloader to this list ;)

TIA

Re: How to use with PlatformIO?

Posted: Sun May 17, 2020 1:07 pm
by stas2z
With platformio you can define your own custom uploader
https://docs.platformio.org/en/latest/p ... pload-tool

Re: How to use with PlatformIO?

Posted: Mon May 25, 2020 8:35 am
by Kenjutsu
Thank you for your reply. I started working on a custom uploader, which was able to find the PB and started uploading, but the blink program never executed and the serial port was missing after the upload. I knew it had to do with some build flags, but I had no idea which ones, so I put it on ice.

By chance, I read this post stm32 shows up on dmesg but not in arduino ide #34 which lead me to Notes on using STM32F103C8T6 Blue Pill. I watched the video How to Install the STM32 USB Bootloader - Tutorial Video. Towards the end was info on how to get the HID bootloader working in PlatformIO. I modified my platformio.ini file accordingly, but the upload failed with sh: hid-flash: command not found

A quick Google led me to [sh: hid-flash: command not found] Error when using hid upload protocol with stm32 bluepill. The fix is to copy the appropriate hid-flash program to the appropriate folder. I do not have framework-arduinoststm32-maple so I downloaded and copied hid-flash from STM32_HID_Bootloader

Now, everything works fine ;) 8-)

Re: How to use with PlatformIO?

Posted: Sun Aug 16, 2020 3:44 pm
by Riffer
Thanks for your valuable input. I experienced the same: the hid-flash tool of PlatformIO is outdated and can not cope with the 2.2.1 bootloader.

After copying the executable into the platform-IO tools directory, the upload works.

But I had to use a slightly changed environment I want to share:

Code: Select all

[env:bluepill_f103c8_128k]
platform = ststm32
board = bluepill_f103c8_128k
framework = arduino
upload_protocol = hid
upload_port = COM8
build_flags = 
    -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
    -D USBCON
    -D USB_VID=0x0483
    -D USB_MANUFACTURER="Unknown"
    -D USB_PRODUCT="\"BLUEPILL_F103C8\""
    -D HAL_PCD_MODULE_ENABLED
lib_extra_dirs = ~/Documents/Arduino/libraries
Please be aware of "USB_VID"! That key was more or less a good guess after looking into the log files.
The upload_port depended on the port Windows (in my case) set up the device as 'STM Device'.