stephan3 / dwc2-for-klipper-socket Goto Github PK
View Code? Open in Web Editor NEWdwc2-for-klipper using klippers unixsocket
dwc2-for-klipper using klippers unixsocket
Creating a new filament clears the contents of the config file (0:/sys/config.g)
Hi,
I just installed this with th33xitus's installer, and it looks like everything is working as intended, but when I try to upload files, I get the following errors on the bottom right:
Failed to get file list: Target drive is unmounted
Can't detect virtual sdcard
I tried with and without virtual_sd enabled.
I did get it to print once by hitting Upload & Start
, but it no longer works and I don't know what changed. I've never been able to upload files through the Jobs
tab, though.
Relevant section of my printer.cfg
:
[virtual_sdcard]
path: /home/pi/sdcard
This used to be an Octoprint install, but I gutted it. I don't think I left anything enabled that should interfere. I also went through the installation instructions after using the script and made sure everything is set up correct.
Let me know if there are any relevant logs I can include.
Thanks for all the hard work on this project!
As far as I remember, the duet had 3 calculation times. Based on the use of filament, only one of them. Are the rest unfulfilled?
Why does not it show the number of the layer that is printing?
If you manually set the fan speed, and in the slicer on the next layer a speed will be set that differs from the one set in the interface, then the fan speed will change as indicated by the slicer. For this case, the original interface of the duo provided fixing buttons that returned the speed as in the interface. This is also not the case.
And finally, RRF G32 teams and others. Is it possible to replace with clipper commands?
There is a gcode generated by PrusaSlicer. The file data is not recognized by the interface. After the start of printing, an internal server error 500 occurs and a constant reconnect. In this case, the printing is in progress. File here https://yadi.sk/d/3iChml8CLt2GOg
Hi all, I keep getting prints just stopping, this issue has arisen the last 2 days after working fine daily for months.
The print appears to be paused, if I hit resume it says "resume aborted, print not paused" the temps also turn off when the print stops.
Hi,
is it possible to implement IceSL slicer?
I have these at my custom header:
;===================
;TOTAL INFORMATION
;Printer: wscubexy-06tryska
;Slicer: IceSL version: 2.3.5
;Object height: 7.2
;Number of layers: 30
;Total filament lenght: 18399.701 mm
;Print time: 143.433 minutes
;Print dimension: X:89.498 mm Y:30.226 mm X1:242.503 mm Y1:149.774 mm Z:7.200 mm
;===================
and standard by Icesl:
` <IceSL Oct 6 2020 17:57:53>
; SET_PRESSURE_ADVANCE : 0.096
; accel : 850
; add_brim : True
; add_raft : False
; auto_spiralize : True
; bed_part_offset_x_mm : 0
; bed_part_offset_y_mm : 0
; bed_size_x_mm : 180
; bed_size_y_mm : 180
; bed_temp_degree_c : 55
; brim_distance_to_print_mm : 2
; brim_num_contours : 2
; button_cover_density_field_0 :
; button_distance_density_field_0 :
; button_optimize_z_layer_height_mm :
; button_overhangs :
; button_spiralize :
; cavity_brush : 0
; cavity_num_iterations : 5
; cavity_tearing_method : Cross
; chamber_temp_degree_c : 0
; cover_density_crust_mm_0 : 1
; cover_density_max_density_0 : 90
; cover_filter_diameter_mm_0 : 0
; cover_flow_multiplier_0 : 1
; cover_thickness_bottom_mm_0 : 1.2
; cover_thickness_mm_0 : 1.2
; cover_thickness_top_mm_0 : 1.2
; cycle_gap_mm : -1
; decel : 850
; distance_density_crust_mm_0 : 10
; distance_density_max_density_0 : 90
; enable_active_temperature_control : False
; enable_curved_covers_0 : False
; enable_different_top_bottom_covers_0 : False
; enable_fan : True
; enable_fan_first_layer : False
; enable_fit_single_path : False
; enable_fw_retract : True
; enable_ironing_0 : False
; enable_min_layer_time : False
; enable_z_lift : False
; extra_extruder_e_restart : 0
; extra_extruder_e_swap_restart : 0
; extruder_0 : 0
; extruder_count : 1
; extruder_degrees_per_sec_0 : 2
; extruder_mix_count_0 : 1
; extruder_mix_ratios_0 : (1)
; extruder_purge_volume_mm3 : 24
; extruder_swap_retract_length_mm : 6
; extruder_swap_retract_speed_mm_per_sec : 20
; extruder_swap_zlift_mm : 1
; extruder_temp_degree_c_0 : 212
; fan_speed_percent : 45
; fan_speed_percent_on_bridges : 100
; filament_diameter_mm_0 : 1.75
; filament_priming_mm_0 : 6.5
; fill_tiny_gaps_0 : True
; first_layer_print_speed_mm_per_sec : 25
; first_layer_saved : 0
; flow_dampener_e_length_mm : 3
; flow_dampener_path_length_end_mm : 1
; flow_dampener_path_length_start_mm : 1
; flow_multiplier_0 : 0.97
; force_auto_spiralize : False
; force_backtrack_0 : True
; gen_cavity : False
; gen_shield : False
; gen_supports : False
; gen_tower : False
; idle_extruder_temp_degree_c_0 : 100
; infill_angle_0 : 0
; infill_extruder_0 : 0
; infill_percentage_0 : 20
; infill_type_0 : Default
; ironing_flow_0 : 0.1
; ironing_line_spacing_mm_0 : 0.1
; ironing_nb_passes_0 : 2
; ironing_only_top_0 : True
; ironing_speed_mm_per_sec_0 : 20
; ironing_thickness_mm_0 : 0.2
; ironing_type_0 : Zigzag
; ironing_z_offset_mm_0 : 0
; kgon_min_angle_0 : 45
; kgon_norm_alpha_0 : 0.5
; kgon_x_shrink_0 : 1
; labeling_mm_per_pixels_0 : 0.01
; labeling_x_offset_mm_0 : 0
; labeling_y_offset_mm_0 : 0
; material_mixing_enable_optimizer : True
; max_backtrack_len_mm_0 : 10
; micro_mixing_field :
; min_layer_time_method : Tower
; min_layer_time_sec : 3
; mixing_ratio_min_threshold : 0.07
; mixing_shield_speed_multiplier : 1.5
; mixing_wipe_length_mm : 0
; nozzle_diameter_mm_0 : 0.35
; num_shells_0 : 2
; number_layers_saved : 0
; overhang_points :
; path_priority_bridge : 1
; path_priority_infill : 2
; path_priority_perimeter : 3
; path_priority_shell : 4
; path_priority_use_default : True
; path_width_speed_adjustment_exponent : 0
; perimeter_print_speed_mm_per_sec : 30
; pfoam_min_percentage_0 : 20
; preserve_contour_orientations : True
; priming_mm_per_sec_0 : 30
; print_perimeter_0 : True
; print_speed_microlayers_mm_per_sec : 200
; print_speed_mm_per_sec : 50
; printer : wscubexy-06tryska
; process_thin_features : True
; raft_layer_height_mm : 0.3
; raft_layers : 3
; raft_lines_spacing_mm : 1
; raft_offset_mm : 0.2
; raft_speed_multiplier : 1
; raft_top_layer_height_mm : 0.1
; raft_top_layers : 2
; raft_top_lines_spacing_mm : 0.8
; raft_xy_margin_mm : 5
; retract_after_z : 0
; retract_inwards_perimeter_end : True
; retract_perimeter_safety_distance_mm : 1.2
; save_layer_subset : False
; seam_location_field :
; shell_flow_multiplier_0 : 1
; shield_brim_num_contours : 3
; shield_distance_to_part_mm : 2
; shield_num_contours : 1
; slicing_algorithm : Auto select
; speed_multiplier_0 : 1
; support_algorithm : Wings
; support_anchor_diameter : 7.2
; support_extruder : 0
; support_flow_multiplier : 1
; support_infills : False
; support_interdiction_field :
; support_max_bridge_len_mm : 5
; support_max_connector_height : 8
; support_min_connector_height : 2
; support_overhang_overlap_fraction : 0.5
; support_pillar_cross_length : 2.5
; support_print_speed_mm_per_sec : 20
; support_spacing_min_mm : 2
; support_wing_angle : 25
; support_wing_min_width : 4
; support_wing_rib_width : 2
; thickening_ratio : 1.25
; tile_size_mm : 60
; top_frate : 25
; tower_at_location : False
; tower_brim_num_contours : 12
; tower_location_x_mm : 0
; tower_location_y_mm : 0
; tower_side_x_mm : 10
; tower_side_y_mm : 15
; travel_avoid_top_covers : False
; travel_max_length_without_retract : 20
; travel_speed_mm_per_sec : 90
; travel_straight : False
; unretract_speed : 25
; use_different_thickness_first_layer : False
; xy_max_deviation_mm : 0.005
; xy_mm_per_pixels : 0.05
; z_extra_height : 0
; z_layer_height_first_layer_mm : 0.3
; z_layer_height_mm : 0.2
; z_lift_mm : 1
; z_offset : -0.2`
Using older version of dwc2 I've had working regex but now I am not possble to make it working.
Or can you check my setup at rr.handler.py?
'IceSL':
{
'name': ';Slicer: (IceSL?) .*',
'version': '\sversion\s(.*?)\n',
'object_h' : '*\sZ\\d+.\\d*',
'first_h': '; z_layer_height_first_layer_mm\s:\s*\d+.\d+',
'layer_h': '; z_layer_height_mm\s:\s*\d+.\d+',
'duration': '\s\s\d+\.\d*\sminutes',
'filament': [ 'Total filament lenght:.*mm', 1 ]
}
I am still getting slicer not recognized.
Thank you very much
Trying to install a DWC plugin I get an error:
Failed to decompress files
Cannot read property 'find' of null
Log:
========== Started ==========
Tornado:.1845398 - ##.##.##.## - GET - /rr_connect?password=reprap&time=2021-5-17T13%3A18%3A9
Tornado:.2179363 - ##.##.##.## - GET - /rr_filelist?dir=0%3A%2Fmacros&first=0
Tornado:9.229812 - ##.##.##.## - GET - /rr_filelist?dir=0%3A%2Fsys&first=0
Tornado:.4704661 - ##.##.##.## - GET - /BtnCmd
Tornado:.4810545 - ##.##.##.## - GET - /rr_disconnect
Tornado:.5994647 - ##.##.##.## - GET - /js/app.56671d18.js
Tornado:8.921883 - ##.##.##.## - GET - /rr_connect?password=reprap&time=2021-5-17T13%3A18%3A28
Tornado:.9850492 - ##.##.##.## - GET - /rr_download?name=0%3A%2Fsys%2Fdwc-plugins.json
Tornado:.0389519 - ##.##.##.## - GET - /rr_download?name=0%3A%2Fsys%2Fdwc-settings.json
Tornado:.0448318 - ##.##.##.## - GET - /img/icons/favicon-32x32.png
Tornado:9.064854 - ##.##.##.## - GET - /css/HeightMap.389e8521.css
Tornado:.0786698 - ##.##.##.## - GET - /js/HeightMap.7361cf24.js
Tornado:.1083689 - ##.##.##.## - GET - /rr_filelist?dir=0%3A%2Fsys&first=0
I understand this may be a niche use case, and you may not wish to support it.
plugin here : https://github.com/MintyTrebor/BtnCmd/releases/download/Alpha_0.8.18/BtnCmd_DWC3.2_Alpha.0.8.18.zip
For background I am the author of the plugin, and I am in the process of building a new printer which will be using Klipper. I was excited to see I could use DWC as it meant I can continue to use my plugin once I have completed the build. The plugin does work if I install a custom build of the whole of DWC site with the plugin already embedded, so I know that the plugin will function with your solution once installed.
EDIT:
Forgot to add that I also did a test with DWC 3.3rc2, and had similar results. DWC 3.3rc2 operated normally with your socket, but the plugin installation failed (as before - a build with the plugin already included ran fine).
Just as the title says, G28 and G29 are running twice whenever I run them. This happens after a HTTP request timed out notification for both.
Using Cura 4.6.2, it appears the parse_gcode is not working 100%. The filament variable is reading in meters, but storing (or at least, the display in web interface) is in millimeters. I think multiplying by 10 in the parse code should work.
I am also having trouble with layer calculations with many of my jobs, but I can't quite put my finger on why yet. I think the estimated time is also not parsing correctly. Perhaps it will be apparent comparing the code to the actual file output below.
Here is the problem portion of code:
dwc2-for-klipper-socket/rr_handler.py
Lines 798 to 808 in ffd35c7
Here is what is in the header output in a CURA file:
;FLAVOR:Marlin
;TIME:1341
;Filament used: 0.564835m
;Layer height: 0.2
;MINX:107.7
;MINY:107.7
;MINZ:0.2
;MAXX:127.3
;MAXY:127.3
;MAXZ:20
My list of jobs, you can see the data is either not there or incorrect:
Here is a screenshot of one of my jobs that is not showing layers correctly (there are 12 layers in this one):
Also including the gcode from the screenshot above:
Clear install, all latest, raspberry 4, Octopi.
Unhandled exception during connect
Traceback (most recent call last):
File "/home/pi/klipper/klippy/klippy.py", line 146, in _connect
self._read_config()
File "/home/pi/klipper/klippy/klippy.py", line 139, in _read_config
self.load_object(config, section_config.get_name(), None)
File "/home/pi/klipper/klippy/klippy.py", line 119, in load_object
mod = importlib.import_module('extras.' + module_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/pi/klipper/klippy/extras/web_dwc2.py", line 72
async def init_(self):
If Tool fan power changes during print with gcode, I can't see update in DWC2.
Refresh page does not help.
But I still can change fan power from dwc2 ui.
There is no such problem with extrusion rate.
Hi,
When i start a new print it's impossible to do anything after:
changing temperature
pause/cancel job
the only way is to press emergency button.
is it normal ?
I use last version of Klipper (host and firmware) and dwc2 freshly install on a new raspbian lite OS?
thx
I followed the instructions on this github to try and install DWC2 for Klipper, but I can't seem to get it working. I updated the dwc2.cfg file with the IP address and a port that isn't being used for Mainsail, but when I try to connect to the printer's IP on the specified port, the page doesn't open up. Any help would be appreciated.
PS: The klipper.service file was not updated since the -a argument was already updated to point to the klipper unix socket
Klipper.Service
[Unit]
Description=Klipper 3D Printer Firmware SV1
Documentation=https://www.klipper3d.org/
After=network-online.target
Before=moonraker.service
Wants=udev.target
[Install]
Alias=klippy
WantedBy=multi-user.target
[Service]
Type=simple
User=pi
RemainAfterExit=yes
WorkingDirectory=/home/pi/klipper
EnvironmentFile=/home/pi/printer_data/systemd/klipper.env
ExecStart=/home/pi/klippy-env/bin/python $KLIPPER_ARGS
Restart=always
RestartSec=10
Klipper.env
KLIPPER_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer_data/config/printer.cfg -l /home/pi/printer_data/logs/klippy.log -I /home/pi/printer_data/comms/klippy.serial -a /home/pi/printer_data/comms/klippy.sock"
dwc2.cfg
[webserver]
listen_adress: 192.168.1.81
web_root: ~/sdcard/web
port: 82
[reply_filters]
regex:
max_accel: \d+.\d+
max_accel_to_decel: \d+.\d+
square_corner_velocity: \d+.\d+
max_velocity: \d+.\d+
I have just installed dwc2-for-klipper-socket via the KIAUH install script. When I go to the main page, it keeps refreshing showing Operation failed (Reason: 500 error). Basically 2-5 times per second.
I have also installed Mainsail, and it is functioning fine. I have also noticed that in dwc2, it does pull the device's data each time it refreshes.
I also see nothing in the Klippy.log file that indicates an error. The Klippy and dwc2 services are both running without error in systemd. I have tried restarting my printer and raspberry pi in various different orders. I have installed this from a fresh copy of raspberry pi OS lite on a pi 3b+.
I used the kiauh script. It downloads the socket version as I understand it. The reconnection error persists.
This is the error i get at the end shoud i delete and reinstall as init.d instead of system ?
Created symlink /etc/systemd/system/multi-user.target.wants/dwc.service โ /etc/systemd/system/dwc.service.
Service installed!
grep: /etc/default/klipper: No such file or directory
sed: can't read /etc/default/klipper: No such file or directory
Hi,
I am running latest version and still cannot connect to printer.
/tmp/dwc2.log still says - Cant connect to klippy with: Stream is closed
curl http://127.0.0.1:4750/rr_poll_data
{"last_path": null, "klipper_macros": []}
Can you give some advice how to solve it?
Thank you
hi,
During print , i have temperature notification and msg in console
is it possible to disabled it ?
I get the following in /tmp/dwc2.log
========== Started ========== ERROR:tornado.application:Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOMainLoop ob ject at 0x760711f0>>, <Task finished coro=<read_stream() done, defined at /home/pi/dwc2-for-klipper-socket/web_dwc2.py:174> exception=TypeError("the JSON obj ect must be str, not 'bytes'",)>) Traceback (most recent call last): File "/home/pi/dwc-env/lib/python3.5/site-packages/tornado/ioloop.py", line 743, in _run_callback ret = callback() File "/home/pi/dwc-env/lib/python3.5/site-packages/tornado/ioloop.py", line 767, in _discard_future_result future.result() File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result raise self._exception File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step result = coro.send(None) File "/home/pi/dwc2-for-klipper-socket/web_dwc2.py", line 181, in read_stream out_ = json.loads(data[:-1]) File "/usr/lib/python3.5/json/__init__.py", line 312, in loads s.__class__.__name__)) TypeError: the JSON object must be str, not 'bytes'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.