Skip to content

PlatformIO Flashing

Renaud11232 edited this page Aug 15, 2022 · 7 revisions

Once everything is installed and properly configured, you should be ready to use the plugin. To do that, go on the main UI page. There should be a new tab named Marlin Flasher. The content of this tab depends on the configured platform. Using PlatformIO, this tab is split in two sections for the different steps you will have to go through in order to get your firmware flashed on your printer.

PlatformIO Project

Project Section

In this section you can upload or provide a link to a .zip file containing the source code of a PlatformIO project. This file must contain the platformio.ini file. You don't need to modify the platformio.ini file anymore as the possible environments should now be detected, and if more than one is possible you will be able to select it within the web UI.

If you changed the directory structure of Marlin or did not upload Marlin, platformio.ini still have to be properly configured as the detection will not work.

Creating a zip file

As the firmware will be compiled on the machine running OctoPrint, you need to include all of the Marlin files and directories in the .zip file. Otherwise, PlatformIO won't be able to compile properly :

ZIP contents

Don't include the .pio and/or .vscode folders in the archive. These files will cause the the zip file to be much larger & won't be used anyway.

There is no prefered way of creating the zip file. This depends on the Operating System you are using. For instance, on Windows, you could right click on the folder you want to zip. Then select Send to and Compressed folder. You can also create zip files using third party tools such as 7zip. For more precise information on your OS, a simple search can get you started.

Flash

Flash Section

This section starts the compilation and flashing process. You just need to select which PlatformIO environment you need based on your board. The proposed environments a deduced from your Configuration.h's MOTHERBOARD value. If none is available or could not be detected, the default PlatformIO environment will be used as configured in platformio.ini. If there's only one possible environment for your MOTHERBOARD, it will be automatically selected.

Depending on the power of the computer hosting OctoPrint, this may take some time.

If everything goes well you should be granted with a green message saying the flashing process ended successfully. Some board will still need a manual reset before they use the new firmware.

If for some reason the compilation or flashing had to fail, you will get a pop up showing the available errors.

Caution

Some boards need to use the mbed upload protocol, ie: BigTreeTech SKR 1.3. Which basically means your board appears as a removable drive. If this is your case make sure you've read PlatformIO Installation.

Once you have everything setup you need to eject the SD card from Marlin/OctoPrint so PlatformIO can access it.

You can do this directly in OctoPrint using the Release SD card button or on your printer screen.

Release SD Card