You don’t need to set a jumper or press a button if things are working OK
After the compile is finished, Maple upload script gets run by the IDE which then sends a magic sequence to the USB Serial in the sketch, which causes it to JUMP to zero and exec the bootloader.
But if you have not selected the COM port (Serial USB) for the sketch code this is not possible as the upload script won’t know which port to send the magic number to
The idea with Boot1 is for non MM boards. On the MM the “Button” is connected to boot0 and boot1 is floating. Boot1 floating is a hardware error in the design and I have found it prevents the board going into its internal serial uploader which is needed if you want to reflash the bootloader on the MM
I pull boot1 low via 10k on my MMs if I want to upload via serial
The Boot1 think on the Jump link is just for non MM boards as they only have a reset button not a User Button.
On the MM it can be tricky to enter perpetual bootloader because the User button is not boot0, so if you press and hold while pressing and releasing reset, you end up in the STM32’s own internal Serial bootloader not the MM bootloader
You have to press and hold the User Button after you have released the reset button, but its a limitation of the hardware not the bootloader
Just to reiterate
DFU is only available for a few seconds after the bootloader starts (Unless you can press the button on the MM after pressing reset)
Note. In the original firmware, if you hold down the button too long it is also ignored (I didnt write the bootloader so this is by design by Leaflabs)
The newer bootloader is better, I think you can hold the button in and it stays in DFU mode.
If you don’t press the button, after a few secs there is no DFU upload data, the bootloader checks if there is a sketch in flash and if so it jumps to the sketch. If no sketch is present, I think the booloader resets and tries again
Note the old / original bootloader checks for a sketch in RAM as well as Flash, but the RAM option was removed as its virtually impossible to fit a meaningful sketch in and it also wastes 3K of the 20K RAM doing this, as the bootloader has to preserve its vars in RAM and Leaflabs allocated 3K to the bootloader for this.
On the new bootloader it free’s up all the RAM and only runs sketches from flash
NOte. The bootloader only provides DFU, not Serial
The sketch only provides Serial (not DFU)
The bootloader does not run after the code jumps to the sketch, and vice versa