ERCF V2 for Creality K1/K1Max/K1C
by Anuzzerich in Workshop > 3D Printing
1780 Views, 3 Favorites, 0 Comments
ERCF V2 for Creality K1/K1Max/K1C
***THIS IS WORK IN PROGRESS***
***STEPS MIGHT CHANGE OVER TIME OR BEING ADDED/REMOVED***
***ONLY TESTED FOR PRINTER FIRMWARE V1.3.3.29 AND HAPPY HARE V2.7***
Since there is no complete guide on the web on how to get the ERCF to work with Creality K1 series 3D printers (all the information is distributes over various websites/threads) I want to put together a - hopefully - comprehensive guide on how to get the ERCF working with your Creality K1 series printer.
I'm documenting my journey of making it work, so feel free to comment your approach to some of the steps.
Big shoutout to user k1-801 on printables, who got the ERCF v1 working on his K1Max and helped a lot with some of the installation steps :)
Since I only have the K1C, I cannot guarantee this will work the exact same way on K1/K1Max, but I would imagine, so take everything with a grain of salt if you're not on a K1C ;)
Supplies
The bare minimum to realize this project is of course:
- Creality K1 series printer
- ERCF v2 kit
For the tools and printed parts needed to assemble the ERCF, please refer to the official github.
Other (in my opinion) useful modifications/tools are:
- Riser for the lid on your printer (more clearance for the bowden tube) - just search printables or equivalent for one that you like and fits your printer. There are risers with hinges to open the lid, I don't recommned these because of the following mod.
- ERCF top mount for Creality K1 printers
- K1 series extruder filament runout sensor
- EREC to cut the filament at the encoder of the ERCF if you have K1C
- or
- Filament cutter at extruder if you have K1/K1Max
Please refer to the linked pages for the mods to see the materials needed to build each of those. If you have questions about the source for a specific thing on the BOM in germany/europe, feel free to just ask.
Without further ado, let's hop into the process!
Rooting Your Printer
Having root access to your printer is an absolute must for this project(and apart from that also recommened), since you need access to the Klipper config files.
To get root access, do as follows at your printer:
- Go to the settings part on your printer and click on root access information
- Wait for 30 seconds, confrim that you understand the risks of having root access and hit OK
- Note the root username and password shown on the screen
For the next steps you need to open the console on your computer and establish an ssh connection to your printer
ssh root@<printer_ip>
To obtain the IP adress of your printer, you can for example go into your wifi router settings and check the connected devices. At this point, it would also be a good idea, to assign a static IP to your printer. For instructions on how to do so, please refer to your router's manual.
Enter the root password and hit enter, you should be connected now.
To install moonraker, mainsail/fluidd and other things, we use the Creality helper script from Guilouz
First, clone the git repository via
git clone https://github.com/Guilouz/Creality-Helper-Script.git /usr/data/helper-script
and then run the helper script with
sh /usr/data/helper-script/helper.sh
inside the script access the [Install] menu and install
- moonraker and nginx
- fluidd or mainsail (depending on your preference)
- entware
- other things you may find useful, but are not strictly needed
!!! You must not install the "Save Z-Offset" feature. It will make HappyHare not work correctly. If you have installed it already, uninstall it via the [Uninstall] menu in the helper script !!!
This would be a good moment to check if installation has been successful. Go to your browser and enter <printer_ip>:4408 for fluidd or <printer_ip>:4409 for mainsail and see if you can connect to your printer.
If everything works as intended, exit the script.
Install the Extruder Filament Sensor
Follow the printables guide on how to install and set up the extruder filament sensor.
Assemble ERCF
Follow the instructions in the manual provided on the offficial github.
Flash MMU Board
To enable communication from your printer to the ERCF, you have to flash Klipper to the control board. In my ERCF kit, I had the Bigtreetech MMB board, so instruction will be valid only for this, but should be similar to other boards. Please refer to the documentation of your board.
You will need a Linux system, different from your printer, e.g. RaspberryPi or PC, virtual machine is also fine.
Because K1 Series ships with outdated Klipper version, you also have to flash the ERCF board with that Klipper version, otherwise the printer can't communicate with the ERCF. This is only tested for firmware version 1.3.3.29!
Install Klipper with KIAUH script,
cd ~ && git clone https://github.com/dw-0/kiauh.git
execute the script
./kiauh/kiauh.sh
and install Klipper from the Installation menu.
Enter the update menu and check the installed Klipper version, e.g. v 0.12.0-290
Exit the update menu and enter the advanced menu and from there Klipper repository rollback. You are asked how many commits you want to reverse. We need the latest v 0.11.0 Klipper so enter your current version number +1, i.e 291
You may exit the menu and confirm in the update menu, that your Klipper is now on v 0.11.0-312 and exit KIAUH. for future Klipper versions > 0.12.0 you might need to iteratively downgrade to v 0.11.0-312. For future firmware versions of your printer, that might upgrade Klipper to a newer version, go to machine tab on mainsail/fluidd and look at the version number of mcu rpi, up to the dash it should match the Klipper version in use, after that it can deviate.
Next, you have to compile the Klipper firmware for your board:
cd ~/klipper
make menuconfig
This will open a menu, where you set the correct parameters for your board. Please see the documentation for your board for the specific parameters. For BTT MMB the settings can be seen in the picture above. Press q when done with the config, confirm and enter
make
Next, make sure to set the VUSB jumper on the board, hold down the boot button and connect it to the computer.
Enter
lsusb
and note the ID of DFU device shwon in the list.
in the Klipper directory, enter
make flash FLASH_DEVICE=<device_id>
with the ID you got from lsusb. When you see file fownloaded succesfully, the flash is done correctly.
Now enter
ls /dev/serial/by-id
and note the ID of the Klipper device shown. Now you can unplug the board and continue with the next step.
Install Happy Hare
To make the ERCF communicate with your printer, a software called Happy Hare is used.
ssh to your printer, and clone the Happy Hare repo to your home directory
cd ~
git clone https://github.com/moggieuk/Happy-Hare.git
Since our K1 series printers are a little different than the raspi running as Klipper host on other printers, let's say a Voron, the install script shipped with Happy Hare doesn't work here, so we need a slightly modified version.
Go to the machine tab on your mainsail/fluidd and create a new file, called install.sh
Copy the contents of the script found here to the created file.
Make sure to replace the version number on line 10 with the current version you downloaded from github!
Save the file.
Copy the file into the Happy Hare folder
cp ../usr/data/config/install.sh Happy-Hare
and confirm that you want to overwrite the currently existing install.sh
You could also download the install script and use e.g. FileZilla to connect to your printer on port 22 and just drop it into the Happy-hare directory.
Move to Happy-Hare directory
cd Happy-Hare
add execute permission
chmod u+x install.sh
and execute the install script.
bash ./install.sh -i
where the -i flag opens the interactive installer. For my K1C the Klipper directories were non-standard, so I had to specify them with the according flags. The modified install script should account for that, but it didn't for me. So you can first try just executing the script to see if it works for you, and if not, specify the directories manually.
For me, Klipper home directory was under usr/share/klipper, to check yours, enter
sudo find -name klipper
After finding the path to the home directories for the different services, go ahead by entering
bash ./install.sh -k ../../usr/share/klipper -c ../../usr/data/printer_data/config -m ../../usr/data/moonraker/moonraker -i
Remember to check and change the directories, if you get an error related to any of the directories not found.
After that, you can follow the interactive installer as described here and you shall be greeted by the bunny at the end
(\_/)
( *,*)
(")_(") Happy Hare Ready
If you do not have your ERCF hooked up to your printer by now, you will get an error the next time Klipper starts, because it tries to access the ERCF hardware that isn't there.
To fix this, move to the machine tab in mainsail/fluidd, open your printer.cfg and comment out all the [include mmu] lines in there. ThenKlipper should work as usual.
If you want to move on and connect the ERCF to your printer, you have to replace the mmu_toolhead.py under Happy-Hare/extras with this version, otherwise Klipper will report an error on startup. To do so, I used FileZilla to connect to the printerto drop it into the Happy-Hare/extras directory.
If the ERCF board is already connected during install, Happy hare should pick up its serial ID automatically. Nevertheless, after succesful install, check under mmu/base/mmu.cfg the [mcu mmu] serial: to be set to /dev/serial/by-id/<Serial ID you noted after flash>
Install Klipper LED Effects
To control the LEDs that most likely came with your ERCF Kit, we need to install Klipper LED effects - unfortunately manual, since there is no klipper/extras directory and the install script cannot be executed as root user.
Start by cloning the github repo
cd ~
git clone https://github.com/julianschill/klipper-led_effect.git
Next we need to create the missing directory
mkdir /usr/share/klipper/extras
Stop Klipper
systemctl stop klipper
and link the file in the Klipper directory
ln -s klipper-led_effect/led_effect.py /usr/share/klipper/klippy/extras/led_effect.py
Then start klipper
systemctl start klipper
and add klipper LED effects to the update manager by pasting these lines into the moonraker.conf
[update_manager led_effect]
type: git_repo
path: ~/klipper-led_effect
origin: https://github.com/julianschill/klipper-led_effect.git
is_system_service: False
Modifications to Get ERCF Working ***Work in Progress***
From the creality K1 Klipper github download
led.py
display subdirectory
and transfer them to /usr/share/klipper/klippy/extras
Next, under mmu/base edit the mmu_macro_vars.cfg line 21 to
filename: ~/../usr/data/printer_data/config/mmu/mmu_vars.cfg
I don't know why this is set to the standard config directory initially, shouldn't happen when you manually specify a config directory...
in printer.cfg comment out
# [include mmu/optional/mmu_menu.cfg]
If your ERCF board doesn't show up on the lsusb command (for me it showed up as 'OpenMoko, Inc') check if your USB cable might be faulty. Even though the board showed up with lsusb, I couldn't execute
`ls /dev/serial/by-id/*`
as the serial directory was not existing on the printer. If in doubt about the serial ID of the ERCF board or you forgot to note it during flsah, you can also check wich 'tty*' appears in the /dev directory when plugging the board in to put as serial ID in the mmu.cfg For me this was ttyACM0 for example, so I put '/dev/ttyACM0' as serial address.
Now you should be able to follow the steps in the HappyHare wiki to check if everything is working and calibrate your ERCF.
Bonus: Klipper Screen Happy Hare Edition
If you happen to have a spare Raspberry Pi (e.g. the one you used to flash your ERCF board) you might think about setting this up as a Klipper Screen either next to your printer or somewhere remote.
To do this you basically only have to follow the instructions on the github after you set up Klipper Screen as described in the official documentation. Since the RPi is not connected to the printer, you have to specify the printer IP and moonraker port (7125) in the printer section of the config file. Additionally, you have to add the RPi IP address to the trusted clients IP section in the moonraker.conf of your printer.
I also installed Klipper, moonraker and mainsail on the Pi (you probably already have Klipper installed there from flashing the ERCF board) but that isn't strictly necessary.