Installing the STM32 USB Bootloader, Easily! [SEE DESCRIPTION]
HTML-код
- Опубликовано: 10 фев 2025
- I wasn’t able to easily find information on how to add USB bootloader support. I have compiled my findings and hopefully you will find this very useful.
PLEASE READ:
This video is now a year and a half old. I have a new version of the video here:
• How to Install the STM...
The dan drown stm32 link below that I used in the video is now old. There are multiple versions of the STM32 core now, this is the newest version, but may be incompatible with what is shown in the video. I am working on a new version of the video.
STM32 "Blue Pill" Discord, join for easy access to like-minded developers
/ discord
Add this to your Additional URLs under File/Preferences (OLD, BUT SHOULD STILL WORK):
dan.drown.org/s...
Links:
Flash Loader:
goo.gl/e1mqwt
Drivers:
goo.gl/WB1TzB
Binaries:
goo.gl/kLJT21
Serial Adapter:
Amazon:
goo.gl/H9hdFb
Ebay:
goo.gl/aNzgew
Song:
Prototyperaptor - Awe Listen to the track here:
spoti.fi/2HwfxDh
I really like the detail of the LED blinking in sync with the music at the end.. :)
You are the first person to notice! You get a cookie
Thank you for explaining it without a lot of fanfare and jumping around. There's enough to keep track of figuring this stuff out without trying to follow a scattered video too.
I knew I'd found something special at 0:22
I’m just getting started with these devices, so this info is exactly what I need to get past the initial hurdles.
After bad (native usb port) experiences with Arduino SAMD21 MINI, I have decided to switch to STM32. I have ordered a couple different model of STM32 boards from China and was searching some sources to learn how to get it working with Arduino IDE. This is the best what I found so far... Now, I beleive that I am ready to work with STM32 boards when they arrive. You saved my days... Thanks a lot.
I created a Discord for this community. Please join if you want quick and easy access to other like-minded STM32 developers.
discord.gg/wrMcmXA
Wow this video is art, so precise and perfectly explained!!
Thank you!
This video saved me!!! I tried a hundred different things but with your help I was finally able to do it!! Thank you!!!!
I made it because it took a lot of experimenting to figure out how to do it. I documented it to save people the time. Thank you for watching!
very satisfying led-music sync at the end! 🤩
and great, informative video btw, thank you!
Thank you for your clear explanation on how to do this. A real time saver!!!
No problem, I got upset at how hard it was to find this info so I made it easy for everyone else!
A little 'Windows-centric', unfortunately.
What system should I make a video for?
I use a MacBook Air Laptop or an iMac. I did not yet succeed in installing an FDTI driver on OSX ... ?
Andrew W Symons I don't know anything about Mac setup, check online for other types of drivers?
2:35 Don''t hold the board like this! You can make short circuit with metal tools!
Some other people commented about this. I just did it so my fat fingers weren't in the way. Don't short your board!
He's just making sure everything is electrostatically grounded! :) And it those huge SMCs can't take that, or are cold sodder'd (my way of saying), good to know now. :)
the board isn't even connected
@@juanmontes8905 I mean the FTDI USBUART board. You can see him connecting it to the USB when holding it with tweezers.
Yeah the other end was unconnected from the computer but I can definitely see how bad it looked. It was just for a clearer picture of the board and I don't have any plastic tweezers
Fantastic video! You're the man. So happy people are recognizing the utter awesomeness of the STM32!
Great explanation Sir, that was very helpful. You should definitely do a series about the STM32 boards and development.
Thank you very much for this great and detailed video. I am using genuine /and fake/ STM32 blue pill boards for a time now. With your help my job just got better. You saved my life dude :) Thanks again!!
No problem! There is actually a new bootloader version and I'm working on a new video so stay tuned!
Im a neophyte and had a difficult time trying to figure out what to do at the driver web pages. Figured it out and finally got it done. And it worked the first time.
Well done. This is the best and most complete explanation I've seen. I might actually dig a couple of these out of the back of a drawer and try them again.
I recently uploaded a new video about the HID bootloader for these. I would recommend that tutorial a little more. I'm not as proud of that video as I am if this one, but that bootloader works so much better when it's working right. Best of luck!
Hello, after a lot of trials and tests, I followed your video step by step and I finally managed to get the bootloader (...pc13.bin) for my "blue-pill" module working.
I'm with windows 10 and it's much more random than with W7.
Thanks for everything!
Bonjour, après beaucoup d'essais et de tests, j'ai suivi votre vidéo pas à pas et j'ai enfin réussi à mettre en fonctionnement le bootloader (...pc13.bin) pour mon module "blue-pill".
Je suis avec windows 10 et c'est bien plus aléatoire qu'avec W7.
Merci pour tout !
If you would like to try it I have a new version of the bootloader that doesn't require any weird drivers, it's a little more difficult to get it up and running but I've had a lot of success with it. ruclips.net/video/Myon8H111PQ/видео.html
If you have only 5V serial converter, you can use it also. Just do not power board from serials 5v, but power board via usb and keep GND connected. A9 and A10 pins are 5V tolerant.
Nice job Caleb...straight to the point and no bullshit.
That final send off image, I will never see emojis the same
do you know anything about unlocking the hidden 64k flash on these boards ?
I wasn't able to figure it out
Very well done, thanks. I wish it existed two months ago when I had to painfully find it by myself. But now with this video I am at last able to reproduce it 😀
Absolutely perfect tutorial, exactly what I was looking for. Thank you! Btw there is a 5V pin on the STM32 Module
Ws2812B actually, most of the IO is five volt tolerant as well. You should be fine if you leave it on 5 volts but it's just better to be safe than sorry
It is safe, the 5V pin just goes to a LDO that regulates it to 3.3V
Yes more STM32 videos. I am learning this too, from standard 8-bit Arduino. I like the uarts and hardware interrupts, for projects like closed loop motor control with encoders.
Researching this topic now!
For everybody who is missing the information: To load the compiled sketch to the STM32 you should set the program jumper to 1 like shown THEN press the reset button. You have to do this everytime you want to upload a new sketch. Once it is loaded it will imidiatly start. If you diconnect power you set the jumper back to 0 and the program starts to run.
Some Knockoffs may want to have the LED_BUILTIN renamed to PC13. However mine worked also with LED_BUILTIN and also when I mixed both pin named up and used them together 😂
Also mine worked fine when I accidently connected the VCC from the FTDI board to the 5Volt Pin of the STM32
Thanks for the video. I'm just getting started with this and after my initial research I decided to buy some stm32 boards. Never used any Arduinos, but these stm32s seemed much more capable and so cheap, I didnt see a reason to start with the actual Arduinos. Any more videos on this subject would be appreciated for us newbs. =)
The stm32 comes with a usb bootloader from the factory, what it doesnt come with as the ARDUINO bootloader. With a St-link programmer ($5.00) instead of the FTDI thingy you have debug capabilities, you can step through your code while its running live line by line so having serial (SWD) is still very useful, of course you'd have to upgrade your IDEfrom the Arduino and go for something like KEIL or SystemWorkbench or Truestudio which is for stm32 which is now also free like the rest. And once you upgrade IDE you are not stuck using just the STM32F103 you can use any stm32 chip, some have dual cores one core runing bluetooth and thus eliminate those huge bluetooth dongles etc. And if you dont like to open the datasheet and learn how to program the chip you can use STM32Cube and just call functions that do everything for you, Arduino style, you dont learn much but you get things done quickly so for hobbyists its perfect.
This is some really good information, you wouldn't ever want to help me write for a video about this would you? (Yes I know it's a lot to ask)
Truth is I've tried to experiment with stm32cube and another idea but I got stuck
i wouldnt mind , im trying to start a blog myself about programming microcontrollers and personal projects etc... school just keeps me busy though... but yeah I wouldnt mind helping out when and where I can
School keeps me busy too
Great, very nicely explained. Did anyone notice the green LED blink with the beat sound at last ?
A few did but it's always great to see the little detail noticed :)
great video! , Caleb Marting. I struggled a lot to install the USB bootloader a few months ago but I failed. I will differently try this tomorrow. Please do the mini-series on STM32. It would be a great resource for beginners. cheers !
I was about to toss my SMT32 in the trash but your amazingly useful video saved it. Thank you!
Why would you do that? Those chips are awesome.
What can i say awesome explanation this STM32F103C8T6 are next generation mcu for cheap diy projects its same price as arduino pro mini but far better
I hope the Arduino community embraces them
The only thing that I've found that is worst than Arduino (at least on my board), is the ADC converter... Even when is connected to GND it still saying that is not zero, and I was unable to measure the right voltage because there are much variance in measurements. With an arduino board I was able to do it becuase is more stable.
Also a good thing that I can do with this board is to play with clocks easily. I'm able to create a 200kHz PWM signal with a few lines, and for now I'm not able to create a PWM signal higher than 1kHz on Arduino. Is better for a proyect that I want to do of an SPS.
yeah, it works. Great job. Thanks a lot. Now I can jump over to stm32 easily
thank you very much, after watching that video I was able to run my STM board finally!!
It really works. Thank you so much for step-by-step guide for dummies :-)
some boards have the 100kohm R3 resistor that connect BOOT0 header to mcu. In my case, when BOOT0 jumper is on 1 position, the pin on mcu only pulled up to 1 volt, which had me failed to flash the firmware. you might need to replace R3 with 10k. i just replaced it with a 2.2k smd resistor i had and it worked.
Interesting, thank you for your knowledge!
This has helped! Thank you :)
@@sam25_25 you're welcome, i'm happy to hear someone to benefit from my discovery
Very informative video. I would love to see these processors used in either for Analog to Digital type of projects as well as Digital to Analog. Like the Teensy processors Paul has provided a nice web interface to build the DAC components. I was looking at using one of these processor to avoid buying DACs and ADC and Reference voltage since these should all be built into the processor.
perfectly explained ..... thanx man, ur video really helped my time
Thanks for the video. quite useful and subscribed a thumbs up
Great Video and well presented...! Quite informative & crisp..!!
This vid is really well explained and easy to follow 👍🏾
Congratulations ! Great work. It worked fine for me. Thank you !
Works like a charm.!! Thanks
I thought any stm32 should support DFU bootloader on the usb port out of the box. At least in the datasheet they didn't say anything about adding any extra bootloader in AN3156 document. Or the goal of this video is to add an Arduino bootloader on the STM32? It is confusing to me.
This is not required, and it just provides a way to upload bin files or use Arduino on the STM 32 f103 without needing an external programmer like a serial adapter or st-link. The f103 is old enough where it doesn't actually come with a dfu bootloader, and instead code can only be uploaded typically over serial or dfu. This bootloader is basically only useful for Arduino development however
Perfectly work. Thank you so much!
Suscribed! excellent description in excellent way! :)) Thanx
Detailed instructions, worked great!
MAGIC SMOKE REFILL KIT @ 1.55
Sadly, Sparkfun discontinued sales of the Magic Smoke Refill Kit
I did some research to see if I could replicate it. The crystalline structure of the silicon that makes up the chips seem to crystallize in a tetrahedron form. when the voltage gets too high, the angular lattice of the silicone vaporizes, but the structure remains partially intact.
By a rather complicated osmosis process, it might be able to be replenished. The best I could figure is that it would be a process of:
Tetra-Osmosis Tetrahedron Angular Lattice Binary Sedimentation
unfortunately, the acronym does not sound quite as scientific.
At 2:33 you tell us to take the (boot 0) jumper and place it to 1 position. But right at 3:09 both jumpers come to 0 positions. Why is it so . And according to some links online putting jumpers according to 2:33 puts the board in serial mode . I tried uploading the code , it worked , great . But the moment i try to re-upload the code the board no longer accepts the new code by overwriting the previous code just like normal arduinos do . It only accepts the new code when i press the reset button (which erases everything ) why is it so can you explain .
I moved the jumper back between takes and didn't realize. Boot 0 wipes the program memory when the board is turned on, effectively erasing a sketch. When I moved it back after uploading the blink sketch, I told it to keep that sketch in program memory on next turn on.
If you install the USB bootloader, it's effectively another sketch on top of the ones you upload, so you can upload multiple times without resetting. You needed to keep pressing the reset button to clear the program memory and put it back into serial mode. Does that make sense?
@@CalebMarting i got it thanks . I never thought you will actually reply so early . I'm quite impressed 😄😄 thumbs up for that !!! .
Thanks for this video...I got things working ;)
You're welcome, that's why I made it!
0:13 when you are very delicate handling the stm32 but in the end lose a grip and stm32 fell onto the floor lol
May have happened a few times during filming
If you plan on using the blue pill as a usb device for a project, I recommend not installing the usb bootloader because I did some usb projects with STM32CubeIDE and they take quite a lot of memory. I don't have exact numbers written down but I could use over 40% of flash and RAM just to make a mouse with a joystick. Black Pills' uCs have an inherent USB bootloader according to datasheet though.
thanks man.u made my day
Glad to hear it!
After flashing bootloader..
I am successfully able to blink led and lcd programming..
But i am unable to make call using gsm quectel m95 model.
It was working before flashing bootloader..
Can you help me please
I have no idea what would cause that. What exactly are you trying to do
I am having quectel m95 gsm module.. i am trying to make call from that module to particular number..
Code is successfully uploaded..but no response from gsm module..
The only thing I can think of is that it somehow is messing with the uart or something. Can you try the same pin/comm method with a different device?
really awesome,,, thanks a lot.
now i can enjoy programming with this board.
No problem! I'm working on more videos for this board so stay tuned!
Great information! Just a heads-up, you have to register an e-mail address to download the flasher software. If your programming computer doesn't have an e-mail client (for verification) like mine, getting the flasher software will be problematic.
www.guerrillamail.com/
Hi, I have an .ioc file, how can I transfer it to blue pill with this method (using usb to ttl)?
Thanks for your comment. Specially this comment at 5:15 which is the main cause of faillure for most of us...
No problem! Glad I could help
Why do you need this bootloader if STM32 has an internal DFU bootloader?
Some stm32s don't have a dfu bootloader, for instance the f103c8. If this were about the f4x1 you would be correct, and I have a video on those too
thank you. where can I get info about it? They don't mention it here:
www.st.com/resource/en/programming_manual/cd00283419-stm32f10xxx-flash-memory-microcontrollers-stmicroelectronics.pdf
www.st.com/resource/en/application_note/cd00264379-usb-dfu-protocol-used-in-the-stm32-bootloader-stmicroelectronics.pdf
www.google.com/url?sa=t&source=web&rct=j&url=www.st.com/resource/en/reference_manual/cd00171190-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf&ved=2ahUKEwi31qK4wYztAhVEGDQIHexmDn8QFjAAegQIJBAC&usg=AOvVaw2kF0T1D3TzsgvgnX7fvMku under the section titled "boot configuration"
This is superb, awesome and amazing.
Hey, just a quick question - can i use a rs232 to usb adapter instead of the ftdi breakout board? I can't order it now but i want to try using it
You'd have to check the data sheet, I think it only supports uart for upload, check the bootloader section in the chip sdatasheets
Hello, I am getting error unable to flash memory in (5:01) and cannot download data. Any advice? Thank you
Is it a genuine stm32 or is there a different company's name on the chip? It could be that the flash memory is locked as well but I don't know how to fix that
@@CalebMarting Thanks for quick response. I do not know much about the chip. I had to erase all first then flashing worked. Now i can't get over another issue; unknown usb device, code 43 which seems to be unsolvable so I guess am done with this.
I figured it out. So, for those who have same problem:
Bootloader generic_boot20_pc13 (26.12.2019) not works on some old boards, you can check versions by code written on head of STM32 chip or better by value of Resistor R10 which on these boards equals to 10kOhm.
1) In Demonstrator GUI, first "erase all" (first option in Demonstrator) and then you can upload bootloader with "no erase". Another way is to use STLink 2 and cubeMX programmer - you dont need switch boot jumper and its faster.
2) Find 2 years old bootloader (you can find in history on github), upload to bluepill, and voila, Windows recognizing device as "Maple DFU" in "libusb-win32" category in device manager. In COM and LPT ports you need unninstall all devices. Run arduino IDE and upload random sketch with COM port grayed out (empty), other settings just like in video. You can hear "tudy tydu" and it's done. Working for me.
The Arduino does bootloader for the first few seconds, then becomes available as a USB serial port. Does that happen here too?
"multimmiter" *shivers*
Multi-meter, voltmeter, what would you want me to call it and/or use?
P.s. I have had that multimeter since I was a small child so I use what I have.
Caleb Marting...the pronunciation, my friend. Like when someone pronounces GIF as "jiff", or SQL as "seequill"... :) love the atm vids, I subscribed! A small mixing thing, but at 2:31 you moved boot0 to 1, but showed it on 0 at 3:07... :)
Oh, I hate pronunciation. We pronounce solder as sodder (sod-er) instead of (sold-er). So bad.
Yeah I didn't take enough footage so there were issues with mixing. Thanks for the sub!
Lol yeah I reacted to that too. "Mult-immiter" instead of "Multi-Meter"
As a Brit I say "multimmiter" in a faux American accent to poke colleagues...good harmless fun - first time I actually heard someone pronounce it that way in real life
After completion of procedure,
Is there any need to change that jumpers boot point at any point in FUTURE application and different codes
The only jumper you would change is the boot one jumper. The opposite of the one that you used. When it's in the one position it forces the bootloader to be enabled, so if you having issues uploading code you can put the boot one jumper to one. Otherwise you should never need to move jumpers
@@CalebMarting
Thank you so much...
Thanks a lot Caleb. I get it!!! Now, i can program my bluepills through USB and use Serial Port Monitor. Only a question. I need to press the reset button after upload a program. Upload works fine, but before press the reset button, the COM port apears disabled. After pressing the reset button, the Serial Port Monitor and COM Port works fine. Both jumpers on 0 position.
I get the same issue, resulting in the error mentioned with the missing footage... any ideas of a workaround? seems like the usb is failing to reset the stm32 into flash mode?
Yes some STM32s can't reset themselves, meaning you need to reset it. either reset when it's attempting to program or something like that
Basically the USB can't reset it and therefore it can't find the right DFU device
@@CalebMarting Thank you. Is that the resistor hack that ive seen others doing?
It's one of the ways to perform the fix. you should test before you do that though because sometimes it's not required based on your computer or something else.you can also get around needing to do the resistor hack by resetting it as you're uploading. Did that make sense?
thankyou for making world easier place :)
Great explanation, thanks.
i did every step , redid again , restarted pc and all ... still Stm32 not recognised .
i had some resistors lying around , made series combination to reach a value of 1.5k and attached where you are showing in the video. shorted R10. NO gain .
then checked R10 value with my multimeter , it came out to be 1.3k
and checked R2 value , which was 10K.
Is R2 's value ok? and can you help me in any way?
I've been hearing that this has been failing recently. I made this video 2 years ago so it's possible something has changed in that time. I would recommend getting an ST Link V2 as it is $2-5 and it is just pretty nice
@@CalebMarting thanks for your reply. Hmm i might get one..
also if use the stmflash application to clear all the pages , will it remove the bootloader?
and i was thinking to try using usb with ubuntu and see if this problem persist . Or if you know , this will be same in ubuntu ? then i will be saved from all the headache of setting everything in ubuntu .
You can overwrite the bootloader by just uploading another program over serial (move boot 0 to 1 position, etc)
@@CalebMarting thanks
this tutorial works for the programs in the stm32cubeide?
My Port got detected but it is not detecting as mapple mini it is getting detected as generic stm321f103c series😢
Pls help 🥺
This doesn't mean that I can upload programs directly from stm32 cube ide right? I don't have a separate stlink only the one on my nucleo and I'm not detaching it
I don't believe it's possible unless you make a custom upload command which I think is technically feasible. However you won't get the benefits of debugging code and such. You might need to steal the python script or whatever it uses from the actual Arduino files. If you try my hid bootloader it comes with a flasher CLI that you could use
@@CalebMarting thank you very much for answering. Currently I'm using a USB to TTL converter to connect this custom Chinese blue pill to my PC. I want to upload a program I have compiled in cube ide. I believe I can do so using stm32 cube programmer. Now the question is do I upload the . elf file or . bin file?
Elf is used for debugging, bin is what you want to upload, although don't be afraid to experiment, you pretty much can't break it unlike a regular computer
@@CalebMarting thanks for helping me. Like and subscribed!
Rocking. Cheers
Hi Caleb,
1)This worked for me,but i wish to put back the original serial UART bootloader.Will the same procedure work ?
2) Any idea where I could download the .bin file for the originl bootloader ? I could not find it online or maybe not looking in the proper places.
3) How does the flash loader know where to place the .bin file for the bootloader or the user application in the device memory ?
TIA
Thomas
All you have to do is place the boot 0 jumper back to boot 1 and you should be able to upload via uart again I believe
It detects the chip,but gives an error after uploading.The same file works OK , if i load it with a STLINK.I think its because I have changed to a USB bootloader perhaps.So i wanted to put the original bootloader and load via UART0.
Are you moving boot zero to the 1 position and then plugging it into power?
@@CalebMarting Hi Caleb,as usual a trivial mistake from my side.I did not notice the drop down menu which chooses the memory size of the device.Selected the right one and now it works perfectly.
From what I read in the STM32duino wiki :
"The standard ('factory', 'native', 'STM') bootloader is always available -- being stored in read-only memory -- and cannot be modified or deleted. You can access it by configuring the boot pins high or low, and then powering (or resetting) the MCU."
I had assumed wrongly that the USB bootloader overwrites the UART bootloader.
Thanks for your cordial replies !!
No problem!
when i try conect with stm cube programmer said"verify the boot mode and check the serial port configuration" but i see in arduino ide port like port6 ,maybe you know whats the problem.thanks in advance.
If you're connecting with serial in STM32 cube prog, you need to have boot one in the one position, press reset, and then connect with the serial port
@@CalebMarting thanks so much ,but i try this,interesting thing that my China Blue Pill board ,green led blinking always ,i think that isnt ok !
@@CalebMarting now is ok, i changed 100k on midle pin boot0 to stm32, now is 10k, thanks.
How do you deal with fake FTDI drivers?
Shouldn't matter too much. I just installed them and then use them as I would any other adapter. I assume you're talking about the CH340
@@CalebMarting ohh I see, actually I'm not aware that I've bought a fake FTDI and it doesn't work, apparently it was bricked by the official company. Very sad as I'm very poor. Tried every instructions online nothing worked lol.
hey man tremendous video, can you make a tutorial on how to make the stm32 simulate a usb Keyboard?. can it be done with arduino programming? or do you have to use the st-link thingy?
I've gotten it to work before with just Arduino but it sort of messes with the bootloader if I remember right. I'll look into it haha
@@CalebMarting It works, but you won't like this kind of configuration during development. It's cumbersome and annoying. Maybe later as end-user update mechanism.
The boot-loader and your USB-stack will fight against each other every code-update time, worsened by the fact that such a blue pill has no proper USB re-enumeration circuitry like the maple series and most likely has the wrong pull up resistors(like you stated in your video. good job).
For USB development I use a proper programming adapter as @insanet3 asked. So you have proper debugging available and two paths: One for development and one for the USB realization of your project. Prepare to invest some time, because this can be a hard task to wrap your head around and get your USB stuff working:)
You are exactly right, I had the same experience as you
Thank you for your insightful comment!
Mmmmmmm.... Absolutely splended! I am the globaglinkgalub, the shubbleduble...
thank you, caleb, it's awesome
Nice! It worked! Thanks a lot
Wouldn't have made a video if it didn't work ;p
While I'd double check the datasheet and schematic. Most STM32 inputs that aren't in analog mode are usually 5V tolerant. (3.3V is still preferable, but it would be an odd setup to damage the MCU)
I was going to make a second video calling my first self a liar but I'll explain that later
Can we use this bootloader without using arduino ? I ask because I prefer Keil. I just want the support for the USB port in the STM32
I'm not sure, I haven't gotten it to work with mbed or anything. You could extract how the .bin file is uploaded and just use keil to run that file
i followed the same process as you and uploaded binary file and succesfully installed drivers but as soon as i plug stm32 to my pc it throws error that it does not recognise this device.
any help
It could be a faulty board but try reinstalling the drivers again
@@CalebMarting i did 4 5 times but same problem . but i am still be able to upload code using usb to serial converter.
if the links are too old files why not fix it?
Thank you so much for the video! One question, I can undo the bootloader by flashing a random program via serial I assume? Like loading the blink program via arduino serial?
Anything written over serial will overwrite the bootloader, that is correct
@@CalebMarting Thank you! I've also tried on the STM32F103RB development board. The board has PB11 connected to the led, I've tested 2-3 binaries and the generic_pc13 seems to be working!(Couldn't find PB11 binary) I've tried to learn more about this, could you explain on why specific binaries must be loaded on board which have different pins connected to the userled?
I think it's just so that the board knows which pins are mapped to what, sometimes certain boards have extra peripherals and stuff. If pc13 works then you should be set
I can flash (and verify) the bootloader fine, but when I plug the USB cable into my Win10 machine I get Code 43 device cannot start :-( I can't fix this. R3 is 1K5
Sounds like a driver issue... Hmmm, could you join the discord mentioned in the description of the video?
@@CalebMarting Its very strange - with or without the bootloader installed the USB connection direct to the board generates the code 43 error - tried 2 PCs and they are both the same. The board looks identical to yours :-(
I think that definitely sounds like a driver issue, especially if the bootloader isn't installed. But I've only see this happen once before on a different device and it would crash my computer. Do you have another board? It could also be defective or a bad USB cable maybe?
@@CalebMarting I used a different flash programmer listed against this video and it worked ruclips.net/video/Tm7IWQLrKYs/видео.html
I cant find stm32f1 in my board manager. It shows only stm32f4. What should i do?
Put the link in the desc into your additional urls
Still i cant stm32f1.
Add this to your Additional URLs under File/Preferences:
dan.drown.org/stm32duino/package_STM32duino_index.json
I always wanted to use STM32 without the need for the FTDI stuff... the video looks quite detailed, wich seems its harder than it appears... can you summarize in few steps everything that is needed? and after that? i will be able to write/rewrite just like common arduinos?
Yes, after install it should be able to be written just like a regular Arduino. In a few steps:
Download the flasher program, drivers, and correct bootloader.
Install the drivers
Run the flasher program and use the selected bootloader and ftdi when you install.
That's the basic gist, but please watch the video because there are pitfalls I can't type out on my phone that you should be aware of, really it's about 4 mins of video that matters, go to the timestamp mentioned.
If you buy a maplemini clone .its pre-burned bootloader with the legacy USB compatible .
It's also, (in my experience,) about $1-2 more expensive on average
I have one of them .Its quiet a bit better than the blue pill board.I also have the stm32f3 discovery board .Trying to install this compatible bootloader too .
Very useful! Thank you.
No problem, I have another video on the stm32 coming out within the week!
Great work. subbed and liked
Looking seriously at STM32F4 board for just over AUD$10. 168Mhz, FPU, 1MB flash, 192K + 4K SRAM, heaps of I/O on a neat board.
Currently use an Arduino Due that's great... but... but hate the default headers and well... 168Mhz and 192K is better than 84Mhz and 96K for a board that's ~60% of the price. Was looking at Teensy but not enough I/O for my project unless muck around with solder pads etc. I use Visual Micro under Visual Studio... and seems to install and compile. No point ordering a board if don't have means to compile... and as I just found out need a boot loader.
You don't need a bootloader. What I recommend is the STLink V2 for your situation. You can get one for $2
Edit:re-read the comment while I'm not half asleep, I recommend STM32 highly, it's just that the arduino support isn't quite there yet. I'm looking into alternative toolchains and stuff
STMCube IDE is also so good. Are there videos on it ?
I'm not entirely sure, I really like it but can't justify using it because I don't do things that really need it
do you have any ideas on how to get the 2 DACs working in the Arduino IDE? AnalogWrite is only able to output PWM for me, and i'd rather use the true analog outputs. thanks!
I think you might have to use hardware registers. There are plenty of tutorials for using hardware registers on the Arduino for faster writing and reading of pins. If you can find which registers correspond to the DACS, it may work. (I haven't done any research but this might be a good stepping stone) Tell me how it goes!
@2:35 I hope you didn't really have the other end of that USB cable plugged in, while the metal tweezers shorted those resistors/capacitors???? If you short out your USB cable, on recent model motherboards, the internal USB hub will just turn off, and won't come back until you remove power entirely and turn it back on. Best case, you'll have to turn off your computer and restart it to keep working. But there's always the chance of permanent damage when you use conductive tools on a powered circuit.
The other end wasn't plugged in :p i figured it was a better shot than having my fat fingers in the gap. A few other people have brought it up and I realized too late what it looked like
i encounterd problem on "FDU error", pretty sure it's because of the wrong resistor value. So, when should i change the value of the resistor? Is it after i burn the custom bootloader?
Don't change the resistor yet, burn the bootloader, and then place the other jumper to the 1 position. When you plug it in, it should be in eternal upload mode. I mentioned this at the end of the video I think.
If that still doesn't work, it's an issue with your drivers, if it does work, change the value of the resistor whenever, I don't remember what the value was but I think I said in the video
Oh, so if the issue is solved by placing the boot1 jumper into 1's position, then i don't need to change the resistor?
Correct, the resistor just makes it more convenient because it will reset the board automatically for you
Alright, cool! One last question, does the boot1 jumper just stay on 1's position forever, or do i need to turn it from 0's to 1's position each time i want to upload program?
I think it sets it to eternal upload mode, but once you upload a program it just runs the program. I think if you place the boot 1 back into the 0 position it will keep the program loaded. If you want to reupload a program you keep it on the 1 position and cycle power
Hi where can I get the FlashLoader Demonstrator for stm32 ?
Hi! You can get it from st's official site
@2:35 are you showing people how to power up the device : powering up the board holding it with conductive tweezer shorting across a bunch of resistors???
Apparently I am, I just didn't like having my fat fingers in the way
I wonder if there is a way to use a Arduino Uno as a USB to TTL converter to program the STM... Should be possible right? Afaik when you connect reset to ground you can use the rx and tx pins as serial throughput
www.stm32duino.com/viewtopic.php?t=89
I'll make a video about this!
@@CalebMarting would be awesome! Can I also just program a little blink example with this method? Just to get started?
Sure, I'll show bootloader and a sketch!
Didn't come here to delete system32, already mastered accidently deleting it!
Thanks for the help man
Very useful.. thanksss...
Does it works only on old arduino version. I tried all tutorials on you tube but no results!
I'm not sure, my guess would be drivers of the most important versus Arduino version
@@CalebMarting failed to knit device
Stm32flash 0.4
Http:// stm32flash.googlecode.com/
That's the error im getting. Do you know how to solve that?