Skip to content

exxperto/dwc2-for-klipper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

dwc2-for-klipper

A translator between DWC2 and Klipper

Alt text Alt text

What works

  • printing from klippers virtual sdcard
  • pause / cancel prints (resume?)
  • babystepping feature using klippers SET_GCODE_OFFSET Z_ADJUST
  • editing klippers configuration. Its displayed as config.g in system section. So the webif 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 / layerhighth / firstlayer / filamentusage and other
  • the math for printtime left based on whatever, showing layerhistory, detecting layerchanges etc. (needs working slicer regex)
  • settings of webinterface are saved and loded correctly
  • homing / extruding / moving
  • heater control
  • setting fanspeed / extrusionmultipler / speedfactor during print in statuswindow
  • 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
  • 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)
    • Noramly klipper knows ok and error
  • Klippers printer.cfg is displayed as a virtual file (config.g) in System section
    • restart after conf edits works
  • The macros you define in printer.cfg are displayed as virtual files wthin DWCs macros
  • For pause and resume macros you can use:
    • kliper gcode macros pause_print resume_print cancel_print (not case sensitive)
    • dwc macros pause.g resume.g cacnel.g - this is in line with rrf
    • dwc macros are overriding klippers
  • ....

Installation

Prerequirements

python2, tornado, gunzip, unzip, wget

On arch:
sudo pacman -Sy && pacman -S python2 python2-tornado wget gunzip

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

On Octopi / Ubuntu / Debian

I asume here that you used the octopi install script from Kevins github.

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 dwc 1:
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

About

A translator between DWC2 and Klipper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%