Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
Is your feature request related to a problem? Please describe.
No
Are you looking for hardware support?
No
Describe the feature you want
Allow to restart the motherboard to the DFU mode (STM32 specific I believe). This would offer an alternative way to update the motherboard firmware which if typically done via an SD card. In DFU mode the firmware can be updated via a USB cable connected to a host system.
Benefits:
Alternative way to update the motherboard firmware
No need to access the motherboard SD card slot
No need to have an SD card available
Many motherboards rely on a bootloader to update the firmware (via SD CARD), this bootloader is not needed anymore, which allows for more flash space.
Some motherboards (MKS EBB42) use DFU FW update by default, but 2 buttons needs to be pressed to activate the DFU mode. Handling this in software would be easier.
Additional context
I played around with this a bit and came up with the code below.
It works about 50% of the time on an MKS Monster8 (STM32F407), if it doesn't work then the motherboard is just restarted and you can try again. It seems to be important that the USB connection to the host is available during the motherboard startup.
UPDATE:
The code below seems to put the MKS EBB42 (STM32G0) in DFU mode (as reported by the host system), and DFU FW update does now work. So no more need to push the tiny boot and reset buttons on the MKS EBB42.
Is your feature request related to a problem? Please describe.
No
Are you looking for hardware support?
No
Describe the feature you want
Allow to restart the motherboard to the DFU mode (STM32 specific I believe). This would offer an alternative way to update the motherboard firmware which if typically done via an SD card. In DFU mode the firmware can be updated via a USB cable connected to a host system.
Benefits:
Additional context
I played around with this a bit and came up with the code below. It works about 50% of the time on an MKS Monster8 (STM32F407), if it doesn't work then the motherboard is just restarted and you can try again. It seems to be important that the USB connection to the host is available during the motherboard startup.
UPDATE: The code below seems to put the MKS EBB42 (STM32G0) in DFU mode (as reported by the host system), and DFU FW update does now work. So no more need to push the tiny boot and reset buttons on the MKS EBB42.