GithubHelp home page GithubHelp logo

klipper_config's Introduction

klipper configuration

Hardware in use

  • Frame: Ender 3 Pro (v1)
    • X axis
      • transmission: belt
      • rail: linear rail
    • Y axis
      • transmission: belt
      • rail: linear rail
    • Z axis
      • transmission: dual lead screw
      • rails: triple V-Wheels on V-Slots
  • Main Board: BigTreeTech SKR v1.4 Turbo
  • Stepper drivers: BigTreeTech TMC2209
  • Display: Original Universal LCD 12864 Creality CR10
  • Bed: Creality Glass
  • Extruder:
    • Type: Direct
    • Hotend: Mellow BMG Aero Volcano
    • Gears: Mellow BMG Aero

Install Klipper

Klipper can be easely installed by using KIAUH linux app.

Install config

Using SSH

Printer configuration is located at ~/printer_data/config.

Using web interface

Printer configuration can be modified in Klipper web by accessing the menu Configuration (keyboard shortcut X).

Flash or update MCU firmware

  1. cd ~/klipper/ && make menuconfig

    • Set the following:
    Micro-controller Architecture (LPC176x (Smoothieboard))
    Processor model (lpc1769 (120 MHz))
  2. make flash

Cameras

Install

  1. install crowsnest via kiauh
    • select Y to update moonraker configuration
  2. copy crowsnest.cfg to klipper printer configuration directory
  3. add camera in fluidd settings
  4. restart klipper host

Scripts

The following gcodes are valid for OrcaSlicer, PrusaSlicer or SuperSlicer.

Start

START_PRINT FIRST_LAYER_BED_TEMP=[first_layer_bed_temperature] FIRST_LAYER_NOZZLE_TEMP=[first_layer_temperature]

End

END_PRINT

BLTouch offset

X and Y axes calibration

X and Y axes calibration can be achieved by using the CaliFlower calibrator. 1

Z axis calibration

  1. set a big z_offset value under [bltouch] section, in printer.cfg file
  2. restart the firmware
  3. make sure the nozzle is clean of plastics; also the the bed surface is flat and free of debree
  4. home the machine with G28
  5. issue a PROBE_CALIBRATE command
  6. if the nozzle does not move to a position above the automatic probe point, then issue ABORT and perform the XY probe offset calibration
  7. get the returned Z position and substract or add a distance dz by issuing TESTZ Z=-dz
  8. check with the thickness of a paper the distance between the nozzle and the bed
  9. repet substracting or adding by issuing TESTZ command until distance is met; by issuing TESTZ Z=+ will add (or substract if Z=-) half the distance last used
  10. when accuracy is met issue a ACCEPT command
  11. save the setting by issuing SAVE_CONFIG
  12. restart firmware by issuing RESTART

Test probe accuracy

  1. home the machine with G28
  2. issue a PROBE_ACCURACY command and wait for the results

Mesh

Creating a mesh

  1. make sure the the bed surface free of debree
  2. home the machine with G28
  3. issue BED_MESH_CALIBRATE and wait to finish
  4. give the profile a name BED_MESH_PROFILE SAVE=<name>
  5. save the setting by issuing SAVE_CONFIG

Save a mesh

  1. give the profile a name BED_MESH_PROFILE SAVE=<name>
  2. save the setting by issuing SAVE_CONFIG

Load a mesh

  1. get a mesh by the profile name BED_MESH_PROFILE LOAD=<name>

Delete a mesh

  1. get a mesh by the profile name BED_MESH_PROFILE REMOVE=<name>

PID

PID for Extruder

Issue a PID_CALIBRATE HEATER=extruder TARGET=200 command

PID for Bed

Issue a PID_CALIBRATE HEATER=heater_bed TARGET=60 command

Printing temperature

OrcaSlicer provides built-in calibration model 2 for temperature. See calibration menu.

Retraction settings

OrcaSlicer provides built-in calibration model 2 for retractions. See calibration menu.

Once the proper value was calculated according the described procedure in documentation, update Klipper settings and update the slicer:

  1. update the tuned parameter inside [firmware_retraction] section
  2. issue a RESTART command to restart the firmware
  3. setup slicer:
    • set 0 retraction length (PrusaSlicer/SuperSlicer: Printer Settings -> Extruder 1 -> Retraction -> Length)
    • disable wipe (PrusaSlicer/SuperSlicer: Printer Settings -> Extruder 1 -> Retraction -> Wipe while retracting)
    • enable use firmware retractions (PrusaSlicer/SuperSlicer: Printer Settings -> General -> Advanced -> Use firmware retractions)

Skew

Skew can be determined and corrected after determining the parameters for it.

A calibrator for Skew is the CaliFlower calibrator. 1

Commands to add skew data with determined values:

SET_SKEW XY=99.79,100.31,70.6
SKEW_PROFILE SAVE=CaliFlower
SAVE_CONFIG
SKEW_PROFILE LOAD=CaliFlower

Resonance compensation 3

Depenedencies

Prepare environment

  1. Install needed libs

    sudo apt update
    sudo apt install python3-numpy python3-matplotlib libatlas-base-dev libopenblas-dev
  2. Install python libs

    ~/klippy-env/bin/pip install -v numpy
    /usr/bin/python3 -m pip install pyserial --break-system-packages
  3. Enable the SPI on Raspberry PI

    sudo raspi-config

Make the RPI a secondary MCU 4

To be able to use the SPI, I2C or any other protocol from Raspberry PI, the RPI board needs to be made a secondary MCU.

Steps below describe how to make Raspberry PI a secondary MCU.

  1. Enable the klipper-mcu service

    cd ~/klipper/
    sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
    sudo systemctl enable klipper-mcu.service
  2. Change configuration to build for the Raspberry PI

    cd ~/klipper/
    sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
    sudo systemctl enable klipper-mcu.service

    Set "Microcontroller Architecture" to "Linux process," then save and exit.

  3. Build and install the firmware on the Raspberry PI

    sudo service klipper stop
    make flash
    sudo service klipper start
  4. (Optional) If issues with permission add current user pi to tty group

    sudo usermod -a -G tty pi

Test communication

In klipper console type:

ACCELEROMETER_QUERY CHIP=adxl345

Finding the frequency

  1. connect the accelerator board to the Raspberry PI 5

  2. Find resonance for axis X TEST_RESONANCES AXIS=X this will generate a .csv file in /tmp/

  3. Find resonance for axis Y TEST_RESONANCES AXIS=Y this will generate a .csv file in /tmp/

  4. Analyze .csv files for each of the axis by using the calibrate_shaper.py tool

    ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
    ~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
  5. The output of last step:

    1. the console output contains the final result with recommended shaper and the resonance frequency
    2. are two .png files which contain details about the analysis results

Slicer settings

Travel Acceleration:

  • 7000 does not skip on X but skips on Y axis

More Info

[2]: Klipper documentation overview

[3]: Build and Flash the micro controller

[4]: Pressure advance

[5]: Slicers macros

[6]: Start print macro sample

[7]: Retraction Test Object

[8]: Firmware Retraction

[10]: Resonance compensation

Footnotes

  1. [CaliFlower Calibrator] (https://vector3d.shop/products/califlower-calibration) 2

  2. OrcaSlicer calibration 2

  3. Measuring resonances

  4. RPi microcontroller as a secondary MCU

  5. ADXL345 SPI hardware connection

klipper_config's People

Contributors

bcdiaconu avatar

Forkers

stevebrk

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.