This is a big one and should give a lot more functionality but I'm changing a lot at once so there's a lot of scope for things to go wrong.
Background
The reason that this upgrade is being made are many so here's another bullet point list!
- Thermal Runaway Protection and EEProm
- This is something that doesn't come enabled by default and similarly there's no eeprom to save settings to but these can easily be turned on by updating the firmware on the printer to the latest version of marlin.
- Printing Noise Reduction
- A common and cheap upgrade for the Ender 5 is to purchase tl-smoothers to help smooth the signal going from the stepper motor drivers on the board to the stepper motors themselves. This has the effect of greatly reducing the noise that the stepper motors generate but isn't the only way to fix this and feels a bit hacky to me. The better way to do this would be upgrading the stepper motor drivers themselves and whilst this isn't possible on the stock board a replacement could change that.
- Octoprint Communication and Firmware Updates
- Out of the box the board on the Ender 5 does not have a bootloader which means that updating the firmware isn't possible unless you burn one using an arduino (YouTube Tutorial) and whilst this is pretty straight forward an updated board can come with a bootloader already installed.
- Automated Bed Levelling
- Whilst I've not had too many issues with the bed level so far on the Ender 5 (touch wood) the one sided support design of the print bed worries me a touch and automated bed levelling was a game changer for the Anet A6, the chart data that could then be generated using octoprint plugins was another benefit that I really appreciated. Installing the bl-touch sensor requires updating the firmware so this feels like another argument for upgrading the board early.
- Main Board Size
- When installing the bl-touch onto the Anet A6 to enable the automated bed levelling settings the board memory bloated quickly and I was forced to compromise by disabling other features. Increasing the available memory will mean that these compromises are no longer an issue with more space to store functionality.
- Improved Menu Interface
- This is a minor tweak given how much automation will be achievable from octoprint but upgrading the board will allow for a touchscreen to be added which will improve the menu navigation rather than having to rely on the stock rotating selection wheel.
Components
As you've probably gathered, addressing the above issues will take a few bits of hardware
MKS Gen-L V1.0 Integrated Mainboard MKS Gen L Amazon Link
and these Stepper motor drivers:
TMC 2208: Amazon Link
Process
So, where to begin? depending on whether you're
- Condition your stepper motor drivers if needs be and connect them to the board
- If necessary invert the communication pins on your drivers
- Correctly set the jumpers for your drivers and the mode that you want to use them in.
- Create any cabling required for uart mode.
- Connect the bl-touch to the board so that it can be tested along with everything else
- Connect the screen so that we can see the status of the device.
- Screen diagram:
- Connect a power supply to the board.
- Configure a version of Marlin to upload to the board.
- include settings for:
- Touchscreen
- BL-Touch
- include settings for:
- Flash the new Marlin firmware to the board
- Connect via usb and use arduino
- Set the v-ref for the stepper motor drivers
some resources I'm planning on using are:
https://www.reddit.com/r/ender3/comments/akl6ch/mks_gen_l_stepper_driver_setup/
https://www.robotrebels.org/index.php?topic=769.0
https://reprap.org/wiki/MKS_GEN#with_TMC2208