Ender3 S1 PRO stock firmware local build and more

Author: Sanket Sonavane

Publish Date: 2023-03-10

Last Updated: 2023-03-11

This is a live article i.e. as and when new information is observed or found it will be

  1. appended with time stamps to the end
  2. corrected in place, if earlier documentation was incorrect

The Ender 3 S1 PRO is based on Marlin and its source code is available on github , note you need to change to the s1_pro branch. CrealityOfficial/Ender-3S1 at s1_pro

I decided to fork this firmware and build my own locally so that I can add fixes and feature. This also helps me understand the build process. It was my first time building any 3d printer firmware on my own.

NOTE: These source code are based on v2.0.8.24 of the stock firmware.

tools needed to build marlin locally

Marlin is the firmware which Creality used on the S1 PRO

  • Microsoft Visual Studio Code
  • PlatformIO IDE extension for VS Code

the marlin docs covers this development setup very well. Installing Marlin (PlatformIO with VSCode) | Marlin Firmware

once you have this you are all set to build marlin locally.

few things to know before you build the stock firmware

  • what's your current firmware
  • what's your controller board , mines STM32F401

these things need to be checked if set correctly or need to be tweaked in the firmware code before you flash this to your printer and risk bricking it.

fork the official github repo

Created a fork of the creality branch and add a few of my own branches for working with the firmware.

  • s1_pro
    • should there be any future changes done to official branch will pull it here.
  • s1_pro_fixes created from s1_pro
  • s1_pro_sanket created from Creality official s1_pro

my github branches

so after adding in all the fixes and committing them I am able to build stock firmware successfully.

still need to figure out

While I have so far figured out how to generate firmware for the controller board I haven't figured out how to

  • build firmware for stock touch display.
  • build firmware for alternate display should I want to swap them on my s1 pro.
    • the ender 3 s1 display which was a nice color display but not touch screen and had a knob.
    • the classic 12864 display for ender 3 with a knob.
    • bigtreetech 12864 display.
    • the different displays might unlock more features which are still not available on the touch display
  • build firmware for alternate touch probes.
  • upgrade the entire controller board if need be and build firmware for it.

these are some cool things that I need to explore for future upgrades