• Stars
    star
    160
  • Rank 234,703 (Top 5 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A translator between DWC2 and Klipper

DO NOT USE THIS ANYMORE!

This is only here for refference. please use:

Socket version


dwc2-for-klipper

A translator between DWC2 and Klipper

Alt text Alt text

What works

  • printing from Klipper's virtual sdcard
  • pause / cancel prints (resume?)
  • babystepping feature using Klipper's SET_GCODE_OFFSET Z_ADJUST
  • editing Klipper's configuration. Its displayed as config.g in system section. So the web interface restarts Klipper after saving.
  • Klipper macros are imported as virtual files and can be accesed from the dashboard
  • uploads and downloads of gcodes
  • gcode analysis using regex to determine duration / layerhight / firstlayer / filamentusage and others
  • the math for printtime left based on whatever, showing layerhistory, detecting layerchanges etc. (needs working slicer regex)
  • settings of web interface are saved and loaded correctly
  • homing / extruding / moving
  • heater control
  • setting fanspeed / extrusionmultiplier / speedfactor during print in status window
  • heightmap is working (needs manual BED_MESH_CALIBATE). It is kept only for displaying, even after BED_MESH_CLEAR
  • webcam integration works now
  • pause/resume/cancel macros are working now - see Things You Should Know below
  • plugin for Cura 4.0 does work, just enter URL; for example: http://192.168.2.188:4750/

What is not working

  • webcam integration
  • heightmap
  • printsimulation
  • actual machinespeed, only displaying the requested values
    • klipper does not have this feedback (yet)? due to its lookahead feature
    • can we calc this? movelength/junction/acceleration is there
  • cancel/pause/resume macros. I will do this soon
  • rrf/dwc cura plugin
  • ...

Things you should know

  • Klipper messages are marked as warnings (yellow).
    • Normaly Klipper knows ok and error
  • Klipper's printer.cfg is displayed as a virtual file (config.g) in system section
    • restart after configuration edits works
  • The macros you define in printer.cfg are displayed as virtual files wthin DWC's macros
  • For pause and resume macros you can use:
    • Klipper gcode macros pause_print, resume_print, cancel_print (not case sensitive)
    • DWC macros pause.g, resume.g, cancel.g - this is in line with RRF
    • DWC macros are overriding Klipper's macros
  • ...

Installation

Prerequisites

Python 2, Tornado, gunzip, unzip and wget.

On ArchLinux:

sudo pacman -Syu python2 python2-tornado wget gzip

Maybe youΒ΄ll need to change the startup system for Klipper to access ~/klipper/klippy/klippy.py.

On Debian-based systems such as Octopi or Ubuntu:

I asume here that you used the Octopi install script from Kevin's GitHub repository.

sudo apt install wget gzip tar

Then switch to your klipper user and:

sudo systemctl stop klipper
cd ~
mv klipper klipper_backup 
PYTHONDIR="${HOME}/klippy-env"
virtualenv ${PYTHONDIR}
${PYTHONDIR}/bin/pip install tornado==5.1.1

git clone https://github.com/KevinOConnor/klipper.git
git clone https://github.com/Stephan3/dwc2-for-klipper.git
ln -s ~/dwc2-for-klipper/web_dwc2.py ~/klipper/klippy/extras/web_dwc2.py

mkdir -p ~/sdcard/dwc2/web
mkdir -p ~/sdcard/sys
cd ~/sdcard/dwc2/web 
wget https://github.com/Duet3D/DuetWebControl/releases/download/3.1.1/DuetWebControl-SD.zip
unzip *.zip && for f_ in $(find . | grep '.gz');do gunzip ${f_};done
sudo systemctl start klipper

If you want backwards compatibility to DWC1:

cd ~/sdcard/dwc2/web 
wget https://github.com/chrishamm/DuetWebControl/releases/download/1.22.5/DuetWebControl-1.22.5.zip
unzip DuetWebContro*.zip
for f_ in $(find . | grep '.gz');do gunzip ${f_};done

Klipper config example:

[virtual_sdcard]
path: /home/pi/sdcard

[web_dwc2]
# optional - defaulting to Klipper
printer_name: Reiner Calmund
# optional - defaulting to 127.0.0.1
listen_adress: 0.0.0.0
# needed - use above 1024 as nonroot
listen_port: 4750
#	optional defaulting to dwc2/web. Its a folder relative to your virtual sdcard.
web_path: dwc2/web