-
Notifications
You must be signed in to change notification settings - Fork 9
K1 Stock Mainboard Less Creality
I AM NOT RESPONSIBLE FOR DAMAGE TO YOUR PRINTER - INSTALLING CUSTOM FIRMWARE IS A RISK
This project (aka Simple AF) is for anyone who wants to use a Microprobe, BLTouch, 3dtouch, Crtouch, Cartographer or BTT Eddy with their K1, K1C or K1 Max and use vanilla klipper and no Creality Gcode.
If you wish to keep using the nozzle for levelling and z-offset, this is not the guide you are looking for!
If you want to use your strain guages but not prtouch, then check this out instead: https://github.com/cryoz/K1_tenso_manual/blob/main/README_ENG.md
If you wish to use the Guilouz Helper script, this guide is not the guide you are looking for! The Guilouz Helper and Creality scripts for Mainsail and Fluid are not compatible with this project.
Note: Lidar is not supported by this project, it uses proprietary code from creality.
This project supports the following probes:
- Microprobe
- BLTouch, 3dTouch, CrTouch
- Cartographer - Carto Touch and Carto Scan (old style)
- BTT Eddy
The installation script will perform the following steps:
- Disable creality services
- Install Emergency Factory Reset feature
- Install Bash
- Replace Creality cam_app and old mjpg_streamer with entware mjpg_streamer
- Install Moonraker
- Install Moonraker Timelapse - no longer enabled by default
- Install Nginx
- Install Fluidd and Fluidd Config
- Install Mainsail
- Install KAMP
- Install Vanilla Klipper
- Install Guppyscreen
- Setup bltouch/crtouch/3dtouch, Microprobe, Cartographer/Cartotouch or Btt Eddy
Support for the following additional software:
- OctoEverywhere
- OctoApp
Installing OctoEverywhere and OctoApp Companion App are not recommended, as they both use around 100MB of the 200MB total Ram on a K1, K1C or K1 Max.
Come on over to the pellcorp discord server, here is the invite https://discord.com/invite/2uGDzyJ3WX
The #simple-af-support
channel has been setup for anyone wanting support.
This guide assumes you have a K1, K1C or K1 Max and you are running stock creality firmware 1.3.3.5 or higher, or alternately you are using my prerooted firmware. Any other pre-rooted firmware is explicitly not supported and the installer.sh will validate this and refuse to proceed if you try to use it on different firmware.
WARNING: If you have used a cartographer with k1-klipper, please note that the PRINT_START
macro specified in their docs is not supported by this project. You must change your Slicer Start Print Machine G-Code (see next)
There is an assumption that you are using a slicer like OrcaSlicer and Machine G-code like:
Machine start G-code
M104 S0 ; Stops OrcaSlicer from sending temp waits separately
M140 S0
START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]
Machine end G-code
END_PRINT
The configuration assumes you are using a V2 probe with this mount https://www.printables.com/model/867527-k1-biqu-microprobe-mount-remix
If you need more help with physically mounting microprobe, you can take a look at: https://github.com/pellcorp/creality/wiki/BIQU-MicroProbe-v2#cable--connectors
IMPORTANT: Any information other than physically mounting the probe in the BIQU-MicroProbe-V2 guide should be ignored as its specific to helper script installations and is not compatible with this guide.
The configuration assumes you are using this mount: https://www.printables.com/model/666186-creality-k1-bltouch-adapter
If you need more help with physically mounting microprobe, you can take a look at: https://github.com/pellcorp/creality/wiki/K1-Bltouch#what-hardware-do-i-need
IMPORTANT: Any information other than physically mounting the probe in the K1-bltouch guide should be ignored as its specific to helper script installations and is not compatible with this guide!
IMPORTANT: The configuration file assumes a bltouch is mounted on the back of the tool head. If you have a Crtouch or are mounting your bltouch or 3dtouch using a different model, you must make additional changes to the bltouch-k1.cfg or bltouch-k1m.cfg files before trying to home your printer.
The configuration assumes you are using the D3vil Design mount, models for which can be found here: https://www.printables.com/model/684338-k1-k1max-eddy-current-mount-cartographer
Follow the Assembly Manual
If you want a cable bracket for stock then grab it from here https://www.printables.com/model/783379-zimz-clippy-cartographer-cable-holder
Alternatively you could try this: https://www.printables.com/model/893452-cartographer-cable-guide-for-k1k1-max
If you want to use cartotouch, you must have flashed your carto with the survey firmware before starting the installation!!!
You must have the 5.0.0 K1
scanner firmware:
I have put together a basic guide for this here
It is really important you flash the K1 Specific Carto Touch firmware for best experience: https://github.com/pellcorp/creality/wiki/Flashing-Carto-Firmware-on-Ubuntu#flashing-k1-carto-touch-v500-firmware
The configuration assumes you are using this mount: https://www.printables.com/model/965667-wip-k1-btt-eddy-rear-mount-v4
If you want a cable bracket for stock then grab ZIMZ excellent cable bracket from here https://www.printables.com/model/783379-zimz-clippy-cartographer-cable-holder
Alternatively you could try this: https://www.printables.com/model/893452-cartographer-cable-guide-for-k1k1-max
It is assumed that you have flashed your eddy with the firmware from https://github.com/pellcorp/klipper/blob/master/fw/K1/btteddy.uf2 before starting the installation!!!
I have put together a guide for flashing the btt eddy here
The installation can only be performed on a printer which has been rooted and ssh granted
You need root access, if you are not already root, then follow this guide https://guilouz.github.io/Creality-Helper-Script-Wiki/firmwares/install-and-update-rooted-firmware-k1/#enable-root-access
You must do a factory reset before running the installer.sh. Follow these steps to do a factory reset, which retains root access and skips the startup calibration checks:
wget --no-check-certificate https://raw.githubusercontent.com/pellcorp/creality/main/k1/services/S58factoryreset
chmod +x S58factoryreset
./S58factoryreset reset
IMPORTANT: Do not CTRL-C
or close the terminal running this command until your printer disconnects the session itself, doing so will interrupt the factory reset and leave things in a weird state.
git config --global http.sslVerify false
git clone https://github.com/pellcorp/creality.git /usr/data/pellcorp
sync
RPC Timeouts, try SSH Git Clone
mkdir -p /root/.ssh wget --no-check-certificate "https://raw.githubusercontent.com/pellcorp/creality/main/k1/ssh/git-ssh.sh" -O /root/git-ssh.sh chmod 777 /root/git-ssh.sh wget --no-check-certificate "https://raw.githubusercontent.com/pellcorp/creality/main/k1/ssh/pellcorp-identity" -O /root/.ssh/pellcorp-identity export GIT_SSH_IDENTITY=pellcorp export GIT_SSH=/root/git-ssh.sh git clone [email protected]:pellcorp/creality.git /usr/data/pellcorp cd /usr/data/pellcorp && git remote set-url origin https://github.com/pellcorp/creality.git && cd
If you have pellcorp-overrides in github but not stored locally, you need to recreate the /usr/data/pellcorp-overrides directory before running the installer.sh!
To run the script, you must specify the probe you want to use.
Probe | Installation Command |
---|---|
Microprobe | /usr/data/pellcorp/k1/installer.sh --install microprobe |
Bltouch, Crtouch, 3dtouch | /usr/data/pellcorp/k1/installer.sh --install bltouch |
Cartographer | /usr/data/pellcorp/k1/installer.sh --install cartographer |
Carto Touch | /usr/data/pellcorp/k1/installer.sh --install cartotouch |
BTT Eddy | /usr/data/pellcorp/k1/installer.sh --install btteddy |
WARNING: If you wish to upgrade from cartographer to cartotouch, you must perform a --clean-reinstall cartotouch
and redo all of your customisations, trying to perform a --install cartotouch
will do nothing good!
RPC failed; curl 18 transfer closed
You might get this error:error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Just rerun the installer.sh script (with the same probe argument), it will start from the stage that failed (most of the time this will be the Installing Klipper stage!)
You can also prefix the installer command with AF_GIT_CLONE=ssh
to force git to clone via ssh, this will take a lot longer, but it will never time out, so its good in a pinch if you are getting repeated klipper repo clone failures.
At the end of the installer process if you get this message:
MCU Firmware updates are pending you need to power cycle your printer!
It means that new MCU firmware updates need to be applied and this can only be done by power cycling the printer. After your printer is power cycled you can verify firmware was updated with the CHECK_FIRMWARE
macro from Fluidd or Mainsail, if you see this message:
Your MCU Firmware is up to date!
Your printer MCU firmware was updated successfully. If you still see the MCU Firmware updates are pending you need to power cycle your printer!
message after a power cycle, check the /tmp/mcu_update.log
, you may be asked to provide this file on Discord if you need additional assistance, sometimes an additional power cycle can solve the problem, there is a very short window of time (15 seconds) in which the MCU firmware can be updated, so there is a chance it will work after an additional power cycle.
If you are using the booty gantry and gantry mount, you will need to adjust the printer.cfg stepper configuration, and the bed mesh configuration in the cartographer-k1.cfg
or cartographer-k1m.cfg
.
The default microprobe.cfg assumes a V2 microprobe a post install change to [probe]
section of printer.cfg
will be required for a V1. Have a look at the printer.cfg after the install has finished and have a look at the commented V1 pin config.
The configuration file assumes a microprobe is mounted on the side of the tool head. You must make additional changes to the microprobe-k1.cfg or microprobe-k1m.cfg files before trying to home your printer.
For the microprobe it is extremely important to do the PROBE_CALIBRATE step to configure your z-offset, regardless of what model you have used to mount the probe!
You should use something like the Paper Test Method for this z-offset calibration.
Note: The default z-offset for Microprobe is 0, so your prints won't stick without doing this step.
Follow the Paper Test Method
Upon completion SAVE_CONFIG
For the bltouch/3dtouch/crtouch it is extremely important to do the PROBE_CALIBRATE step to configure your z-offset, regardless of what model you have used to mount the probe!
Note: The default z-offset for BLTouch, 3dTouch and CrTouch is 0, so your prints won't stick without doing this step.
Next it is highly recommended to perform axis twist compensation calibration before doing anything else, this will affect the quality of your bed mesh, so best to do it before.
- Home All (
G28
) - Run
AXIS_TWIST_COMPENSATION_CALIBRATE
The calibration wizard will prompt you to measure the probe Z offset at a few points along the bed Upon completionSAVE_CONFIG
Source: https://www.klipper3d.org/Axis_Twist_Compensation.html
Source: https://docs.cartographer3d.com/cartographer-probe/survey-touch
IMPORTANT: Please make sure that the stepper_z section has the endstop_pin
value set to probe:z_virtual_endstop
! If you have inadvertently made a change to the printer.cfg
after running the installer and somehow changed this value to something else, your probe will not trigger and your bed will experience the nozzle up close and personal, as in it will try to dig a hole into the bed.
https://docs.cartographer3d.com/cartographer-probe/survey-touch/survey-troubleshooting
Manual Cartographer Serial Device configuration
You may have to update the [scanner] section in the cartotouch.cfg with the correct cartographer serial device address. If the installer was not able to determine the correct serial device, you will see a warning in the installer in that case: `WARNING: There does not seem to be a cartographer attached - skipping auto configuration`Open the cartotouch.cfg
in fluidd or mainsail and edit it there if needed.
Find the serial device for the cartographer, from the command line:
ls /dev/serial/by-id/usb-Cartographer*
Then replace the [scanner]
line from cartotouch.cfg
:
serial:/dev/serial/by-id/XXX # change this line to have your cartographer id.
So it should then look something like:
serial: /dev/serial/by-id/usb-Cartographer_614e_160020001343303856303820-if00
Restart klipper if you had to change the serial
entry.
It is a good idea to heat the nozzle to 150c for this step first!
- Home X Y (G28 X Y)
- Heat Nozzle to 150c (
M109 S150
) so that any filament can be removed from nozzle - Make sure nozzle is centred on bed (recent changes to sensorless.cfg do this by default)
- Using Force Move, move your bed plate 2-3 mm away from the nozzle
- Run
CARTOGRAPHER_TOUCH METHOD=manual
Follow the Paper Test Method Upon completionSAVE_CONFIG
After the save config you have todo the CARTOGRAPHER_THRESHOLD_SCAN
WARNING: For this next step, it is really important to be near your printer for this step, because if there is any issue with the printer configuration or your carto probe, its possible the nozzle will dig itself into the bed, so be hovering over that e-stop button!
- Home All (
G28
) - Make sure nozzle is centred on bed (recent changes to sensorless.cfg do this by default)
- Heat Nozzle to 150c (
M109 S150
) so that any filament can be removed from nozzle - Execute
CARTOGRAPHER_THRESHOLD_SCAN MIN=400 MAX=3500 STEP=100 VERIFY_SAMPLES=50 TARGET=0.08
Upon completionSAVE_CONFIG
After the save config you have to do the touch calibration.
WARNING: For this next step, it is really important to be near your printer for this step, because if there is any issue with the printer configuration or your carto probe, its possible the nozzle will dig itself into the bed, so be hovering over that e-stop button!
- Home All (
G28
) - Heat Nozzle to 150c (
M109 S150
) so that any filament can be removed from nozzle - Execute
CARTOGRAPHER_TOUCH CALIBRATE=1
Upon completionSAVE_CONFIG
Note: For the other calibrations, you were prompted to SAVE_CONFIG, for this particular calibration for whatever reason (maybe an oversight), the SAVE_CONFIG text is not output in the console after running the step, however the Save Config and Restart button at the top of Fluidd or the equivalent in Mainsail should have become active even so.
Source: https://docs.cartographer3d.com/cartographer-probe/survey-touch
Next it is highly recommended to perform axis twist compensation calibration before doing anything else, this will affect the quality of your bed mesh, so best to do it before.
- Home All (
G28
) - Run
AXIS_TWIST_COMPENSATION_CALIBRATE
The calibration wizard will prompt you to measure the probe Z offset at a few points along the bed Upon completionSAVE_CONFIG
Source: https://www.klipper3d.org/Axis_Twist_Compensation.html
For this first print you can go and do the tuning first (PID Tuning, etc) or you can go ahead and optimise your scanner_touch_z_offset using baby stepping, as documented here: https://docs.cartographer3d.com/cartographer-probe/survey-touch#first-print
In fluidd the save button after you finish or cancel your print can be a bit hard to find, look for
IMPORTANT: Please make sure that the stepper_z section has the endstop_pin
value set to probe:z_virtual_endstop
! If you have inadvertently made a change to the printer.cfg
after running the installer and somehow changed this value to something else, your probe will not trigger and your bed will experience the nozzle up close and personal, as in it will try to dig a hole into the bed.
https://docs.cartographer3d.com/cartographer-probe/troubleshooting
Manual Cartographer Serial Device configuration
You may have to update the cartographer.cfg with the correct cartographer serial device address. If the installer was not able to determine the correct serial device, you will see a warning in the installer in that case: `WARNING: There does not seem to be a cartographer attached - skipping auto configuration`Open the cartographer.cfg
in fluidd or mainsail and edit it there if needed.
Find the serial device for the cartographer, from the command line:
ls /dev/serial/by-id/usb-Cartographer*
Then replace the line from cartographer.cfg
:
serial:/dev/serial/by-id/XXX # change this line to have your cartographer id.
So it should then look something like:
serial: /dev/serial/by-id/usb-Cartographer_614e_160020001343303856303820-if00
Restart klipper if you had to change the serial
entry.
- Move your bed plate 2-3 mm away from the nozzle
- On the homescreen of your web UIX, press the
CARTO_CALIBRATE
macro and wait for the Z offset wizard to pop up. Follow the Paper Test Method Upon completionSAVE_CONFIG
While your motors are disabled, manually move the bed away from the nozzle (at least a fist away) and type into klipper’s console: M119
.
If your Z endstop is OPEN
you are safe to continue however if it is TRIGGERED
re-do step 2 or begin troubleshooting.
- If you have verified that your Z endstop is functioning correctly, please home all. If the nozzle crashes please e-stop the printer and re-try from step 1.
Next it is highly recommended to perform axis twist compensation calibration before doing anything else, this will affect the quality of your bed mesh, so best to do it before.
- Home All (
G28
) - Run
AXIS_TWIST_COMPENSATION_CALIBRATE
The calibration wizard will prompt you to measure the probe Z offset at a few points along the bed Upon completionSAVE_CONFIG
Source: https://www.klipper3d.org/Axis_Twist_Compensation.html
- You may now run
BED_MESH_CALIBRATE
to produce your first mesh! Save this one complete, make any tramming adjustments you require to make the bed flat.
Source: https://github.com/K1-Klipper/cartographer-klipper/blob/master/README.md
-
Home XY (G28 X Y)
-
Make sure nozzle is centred on bed (recent changes to sensorless.cfg do this by default)
-
Use FORCE MOVE to move your printer so that that eddy is about 20mm above the bed
-
Run
LDC_CALIBRATE_DRIVE_CURRENT CHIP=btt_eddy
-
Use FORCE MOVE to move bed closer to nozzle, less than 2-3mm as this makes life easier when calibrating z offset
-
Run SAVE_CONFIG
-
Home X and Y (
G28 X Y
) -
Make sure nozzle is centred on bed (recent changes to sensorless.cfg do this by default)
-
Run
PROBE_EDDY_CURRENT_CALIBRATE CHIP=btt_eddy
(Triggers manual z offset calibration - paper test) Follow the Paper Test Method Upon completionSAVE_CONFIG
Source: https://ballaswag.github.io/blog/creality-k1-btt-eddy-guide/
Next it is highly recommended to perform axis twist compensation calibration before doing anything else, this will affect the quality of your bed mesh, so best to do it before.
- Home All (
G28
) - Run
AXIS_TWIST_COMPENSATION_CALIBRATE
The calibration wizard will prompt you to measure the probe Z offset at a few points along the bed Upon completionSAVE_CONFIG
Source: https://www.klipper3d.org/Axis_Twist_Compensation.html
Now you can now run your first bed mesh:
BED_MESH_CALIBRATE
Source: https://ballaswag.github.io/blog/creality-k1-btt-eddy-guide/ Source: https://github.com/bigtreetech/Eddy
You might need to adjust your reg_drive_current
, for more details:
https://github.com/bigtreetech/Eddy?tab=readme-ov-file#sometimes-i-get-error-during-homing-probe-eddy-current-sensor-error
At least PID tuning (bed and extruder) and input shaping is required for acceptable printing. If you try and print after running the installer.sh and a power cycle but before any calibration you will most likely have horrendous quality, the worst you have ever seen on the k1. After PID tuning and input shaping you should see the same kind of quality as you get with stock k1 + input shaper fix.
https://www.klipper3d.org/Config_checks.html?h=pid#calibrate-pid-settings
For example you might run these:
PID_CALIBRATE_BED BED_TEMP=65
PID_CALIBRATE_HOTEND HOTEND_TEMP=230
Note: The PID_CALIBRATE_BED
and PID_CALIBRATE_HOTEND
macros are located in the useful_macros.cfg
file and they have defaults
values for BED_TEMP and HOTEND_TEMP so you can just run them by clicking on them if you want that same temperature.
There is no default configuration for input shaping so it is essentially disabled out of the box.
You can use the SHAPER_CALIBRATE
macro to run input shaping, just be sure to SAVE CONFIG
at the end, to choose the automatically selected shaper config, be aware though that the shaper chosen might be sub-optimal due to a slight difference in vibrations between two options. So you should probably review the output and potentially choose an alternative if it gives you higher recommended max acceleration for minimal increase in vibration.
Note: The default value for pressure advance is set to: 0.04
Refer to https://github.com/SoftFever/OrcaSlicer/wiki/Calibration for more calibrations
This is an excellent resource for all things 3d print tuning: https://ellis3dp.com/Print-Tuning-Guide/
Moonraker timelapse is installed but not enabled by default. To enable it there are a few steps, you need to add the following include to printer.cfg:
[include timelapse.cfg]
And uncomment the [include timelapse.conf]
in moonraker.conf, you will need to restart moonraker and klipper after this, you can that via the fluidd or mainsail services section.
If you see these messages:
15:14:24 // Unknown command:"_SET_TIMELAPSE_SETUP"
15:14:24 // Unknown command:"HYPERLAPSE"
It means you have not as yet properly restarted moonraker and/or klipper. If in doubt just power cycle your machine.
The installer enables the KAMP LINE_PURGE and SMART_PARK macros in START_PRINT, but we use Klipper adaptive mesh, since the KAMP adaptive mesh and the klipper adaptive mesh are exactly the same feature wise, and even by the same author, this project won't offer KAMP adaptive mesh as a configuration option.
Source: https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging
WARNING: This app starts a service on the K1 which uses almost 100MB of ram out of a total of 200MB on the whole system, this will cause swap thrashing and performance issues elsewhere on the system.
You can install octoeverywhere using their installer, the basic instructions are:
git clone https://github.com/QuinnDamerell/OctoPrint-OctoEverywhere.git /usr/data/octoeverywhere
export PATH=/opt/bin:/opt/sbin:$PATH
cd /usr/data/octoeverywhere/
./install.sh
Note: It is important you include the PATH command before running the octoeverwhere installer, this is because the installer is relying on entware version of python being first in the PATH to succeed!
Source: https://blog.octoeverywhere.com/remote-access-for-the-creality-k1-and-k1-max/ (But only step 5)
Note when using the camera the CPU usage is still pretty high and you could run into Timer too close issues on the K1.
WARNING: This app starts a service on the K1 which uses almost 100MB of ram out of a total of 200MB on the whole system, this will cause swap thrashing and performance issues elsewhere on the system.
You can install OctoApp Companion Plugin using their installer, the basic instructions are:
git clone https://github.com/crysxd/OctoApp-Plugin /usr/data/octoapp
export PATH=/opt/bin:/opt/sbin:$PATH
cd /usr/data/octoapp/
./install.sh
Note: It is important you include the PATH command before running the OctoApp installer, this is because the installer is relying on entware version of python being first in the PATH to succeed!
Select option 3 for the default web interface
Note when using the camera the CPU usage is still pretty high and you could run into Timer too close issues on the K1.
The /etc/init.d/S58factoryreset has recently been updated not to delete the /etc/localtime, so you can configure it once and it should survive any number of factory resets, following the excellent guide here: https://guilouz.github.io/Creality-Helper-Script-Wiki/firmwares/change-date-and-time/
To update your installation with the latest fixes you should run:
/usr/data/pellcorp/k1/installer.sh --update-repo
/usr/data/pellcorp/k1/installer.sh --update
This backs up your customisations, updates all git repos, downloads new versions of any files and copies applies all changes to your
/usr/data/printer_data/config
directory and then reapplies your customisations over the top.
Refer to Update or Reinstall - What gets overriden
In future, it will be possible to run an update from Fluidd or Mainsail as a result of clicking the Update button in the software section, but that is not currently supported.
A reinstall is only needed if you are switching probes or one or more github repos have got into an inconsistent state.
Refer to Update or Reinstall - What gets overriden
If the worst happens and you somehow get locked out (for instance for whatever reason the dropbear ssh session does not start or wifi config gets all screwy, it is possible to trigger a emergency factory reset.
It is very easy, you just need to create a empty file called emergency_factory_reset
on a USB key and make sure the USB key is plugged in, then power cycle the printer, this will initiate a factory reset.
IMPORTANT: This factory reset method will rename the emergency_factory_reset
to emergency_factory_reset.old
to avoid a boot loop, so if you need to use this method again you will need to rename the file.
IMPORTANT: This factory reset method will not remove the special service file /etc/init.d/S58factoryreset
from the k1, so if you need it you can redo a factory reset even before reinstalling.
Note: This method does not reset wifi or root access
If you want to return to helper script, you should run a factory reset first with:
/etc/init.d/S58factoryreset reset
If you factory reset your printer after using this project, the creality stock screen will most likely show a 3002 error. This is perfectly normal, it just means that the firmware flashed to the Nozzle, Bed and MCU is too new. If you wish to return to stock and/or Guilouz helper, just physically restart the printer a second time and the error will go away. If you are going to reinstall this project, you do not need to do anything, we will be replacing the stock screen with guppyscreen soon enough.
Simple AF Beacon EXPERIMENTAL
Simple AF Bltouch, CrTouch and 3dTouch
Simple AF Klicky COMING SOON
If you are looking for a way to support the project, and its entirely optional, this is my preferred approach. I am conducting a fundraiser to purchase a K1M printer, just so I can push out fixes and new features a bit faster, but also specifically test the K1M as well as the K1.
If you can't donate via go fund me directly, I have also added a kofi account.