Creality CR-10/s is one of the most popular and affordable 3d printers. It has one main disadvantage though – its original Melzi control board has limited memory and onboard stepper drivers. These limitations make impossible to experiment with fancy firmware features (Marlin) or to benefit from the latest stepper driver technology.
This instructable is for upgrading the control board with a 32-bit SKR V1.3 board from BigTreeTech. I focus on the wiring, the serial link drivers control (UART) and the basic configuration of Marlin 2.0.
Why a 32bit control board?
Why not? It has great processing power, assuring smooth motion at high printing speed (if your mechanics allow it). The price is not an issue anymore – there are 32bit boards for $13 nowadays – like the SKR Mini.
For my upgrade I selected the SKR V1.3. The board sells for around $20 and comes with 100 MHz processor, possibility to connect up to 5 drivers (2 extruders), it is BLtouch ready and is supported by the new 32bit version of Marlin.
For the stepper drivers I’ll be using the TMC2208 V3 silent stepsticks, however you may look first at the all new TMC2209, which provide additional features and higher current.
Control board replacement – the wiring
Wiring the SKR V1.3 is fairly easy using the standard wires and connectors inside the CR-10 control box. I you want to have a forced ventilation for the stepper drivers (recomended), you can connect a fan on the 12 V pins – check the video. The CR10 board has one more connector for the heatbreak heatsink fan – for the SKR V1.3 use the main 12 V connector for this purpose.
Prepare your board and drivers to run in UART mode
One of the main adventages of the latest TMC 2208/2209 stepper drivers is that they support both the standard STP/DIR control and serial link (UART) control. UART has many advantages, for example the driver current can be set directly in the firmware – no need to play with the VREF potentiometer. However, both the board and the drivers have to be prepared to run in UART.
- Remove the four jumpers from below the drivers on all boards
- Put single jumper for each driver’s UART connection
- Make sure power jumper is between INT and +5V (should be default from factory). If this is not installed correctly you may have power issues with your Raspberry Pi which can cause throttling.
Connect SKR V1.3 to your PC
In order to load a firmware to the SKR V1.3 the easiest way is to conect it to your PC with the supplied USB cable.
After succesful connection the contents of the 128MB onboard SD card will show. There is only one file – FIRMWARE.CUR, a firmware file that has to be overwritten with a customized firmware for your printer.
Marlin 2.0 firmware – basic configuration
The SKR V1.3 32bit board works with the new 32bit version of Marlin 2.0 and with Smoothieware. Being happy with Marlin so far I will be sticking with it. There are different ways to configure and compile the firmware. I use Atom and platformio-IDE. Atom is advanced text editor supporting rich functionality through plugins. Platformio-ide is a plugin for Arom used to compile the firmware. All you need is to download and install Atom editor. Run it and install platformio-IDE from File > Settings > Install > Search Package (type Platformio-IDE). Atom will guide you also for the installation of additional required components (like Clang and Git).
Next step – download Marlin.
What Marlin source to start with? Although BigTreeTech (the manufacturer of SKR boards) has a repository on github with a version of Marlin 2.0, I preffer to start fresh with the newest version of Marlin 2 ( bugfix-2.0.x ). It assures to have the latest bugfixes and supported hardware.
Extract the files and add the extracted folder in Atom (File>Add Project Folder).
If you have previousely set Marlin for your printer, get your old Configuration.h and Configuration_adv.h files in order to use the specific settings for your printer like the PID values for your hotend and heated bed.
You will have to edit 3 files:
- platformio.ini – to set the platform environment (LPC1768 for the SKR V1.3);
- Configuration.h – stepper drivers type, display, specific for the printer parameters;
- Configuration_adv.h – advanced features for the drivers.
Installation of the SKR board
in the CR10 control box
As we saw already the wiring of the SKR, using the default connections in the control board is easy. Fixing the board inside isn’t, because the SKR and the stock board have different layout and holes for the fixing screws. Once again the Thingiverse community had a solution and saved me time to design my own. I printed this adapter accessory that comes with 40mm drivers cooling fan holder.
My CR10 runs silent. It was great upgrade and totally worths the $50 (board and 5 TMC 2208 drivers bought on Amazon). You can find cheaper prices on Aliexpress if you can afford the wait.
The TMC2208 silent stepsticks are great and relatively chep drivers for XYZ. On the extruder however I intend to replace the driver with the new TMC2209, because of its higher current and linear advance support (for some reason I couldn’t get it to work reliably on the TMC2208).
Although this upgrade was performed on Creality CR-10, the process is very similar for CR-10s and Ender 3 3d printers. Please note that I didn’t activate the onboard SD card, because I use Octoprint. If you need the SD card you have to either use a TF to SD card extention cable or to upgrade the display for one that has an integrated SD card reader.