Code Monkey home page Code Monkey logo

dwc2-for-klipper's Introduction

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

dwc2-for-klipper's People

Contributors

athemis avatar exxperto avatar moonlight63 avatar pierre-vo avatar pizzle-d avatar rafaljot avatar stephan3 avatar yxist avatar

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.