Double checking settings before I install my Duet Wifi + Duex
-
x4 microstepping will probably sound like a blender. Use x16 with interpolation.
-
@iamthebest22 I'm a bit confused because further up you said you were using Slic3R but the code you just posted was what you were using in S3D.
No matter.......You said that the above start code was "to no avail". What was the issue when you tried it?
-
Hi @ Phaedrux, I will
@deckingman oh sorry yeah so what I meant is this, I have another small HEVO that I was testing uses S3D , this big one that will have the Duet installed currently has an 8 bit board and uses slic3r PE.
The issue was basically, despite that code, it still turned on the heater to desired temperature before probing, instead of waiting till after probing was done to turn heater cartridge to desired temperature.
-
@iamthebest22 Yes OK.
It kind of depends of what order the slicer puts commands into the gcode file. I suspect what happens is the slicer starts off by selecting the tool and/or starts heating the hot end, then it inserts the start gcode commands. Rather than doing the start code commands first, then setting the temperatures. You should be able to tell. Try putting a comment at the beginning of your start gcode such as ";begin". Then slice an object and look at the generated gcode. I suspect you'll find something like M109 Snnn before the "begin" comment.
Which gets me back to what I said about using a macro instead of the start gcode. But when I use my macros, I still have to set the hot end and bed temperatures to zero for exactly that reason.
A possible way around it is to do similar to what I do in a macro but in your start gcode. i.e. Set the hot end and bed temperatures to zero in the slicer itself, then use your start gcode to heat the bed, do the probing, then heat the hot end. If the slicer gives you the option of using different temperatures for the first layer and subsequent layers, then all you need do is set the first layer temperature to zero. Of course this does mean that you can't use placeholders like [first_layer_temperature] and instead you'll have to use fixed values.
So your start gcode could look something like this:
M140 Snn ; start heating bed but don't wait (where nn is the bed temperature you want)
G28 ; home all
M190 Snn ; wait for bed to finish heating
G4 S60; Dwell as in your code above
G32; bed levelling
G1 Z5; lift nozzle as in your code above
G1 F4000 X5 Y5; position for priming as above
M109 Snnn; heat nozzle and wait
G1 F200 E4 prime nozzle.I notice that you had some G92 E0 commands in your start code. This is to zero the extruder when using absolute extrusion. You've set Duet to use relative extrusion (M83) in your config.g so as long as you stick with this (which I recommend) then you don't need to zero the extruder (but make sure the slicer is also set to give relative extrusion values).
Also, you used both M140 followed immediately by M190 and also M104 followed immediately by M109. You don't need do that. M104 and M140 both set the temperature but don't wait. M190 and M109 both set temperatures but also wait.
-
Ah okay I will try that as soon as I can, but another problem has popped up in the meantime:
Installed my Duet Wifi, everything works really well, the independent motor bed leveling and ABL all works after that. The problem I have now is, the independent Z leveling seems to make things worse and worse. It started out fine, but then after each one (followed by a G29 for a 6 x 6 probe) which I did for more testing, it made the right side with one leadscrew lower and lower away from the right side (which has two lead screws). When I first started, it had a small variation of front to back 0.3mm height difference, but after more G32, it got bigger and bigger and now the probe can't compensate for the difference because it's bigger than 0.5mm now, really confused what's going on @_@
EDIT: Here's a pic to show what I mean, the side where's it's much higher has the two motors, the one on the left is the one with one motor. It wasn't like this, it was almost within 0.3mm of each other before, and now like I said above to big it can't compensate.
https://www.dropbox.com/s/5bls0r2x0c3skpm/2019-03-20 20.57.30.jpg?dl=0 -
https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
Are you sure you have the motors listed in the right order?
Can you also confirm that your 0,0 origin point is at the front left of the printer? Maybe you have an axis mirrored. -
That's what I used, maybe I'm not sure since this is my first time doing this. I can confirm 0,0 is at the front left of the printer, the axis' are not mirrored.
here is my bed.g
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v2 on Fri Jan 04 2019 20:50:30 GMT-0800 (Pacific Standard Time)
M561 ; clear any bed transform
G28 ; Home all axis
G28 Z ; Home Z again for more accuracy
M401 ; deploy Z probe (omit if using bltouch)
G30 P0 X10 Y250 Z-99999 ; probe near a leadscrew
G30 P1 X495 Y382 Z-99999 ; probe near a leadscrew
G30 P2 X495 Y118 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors
M402 ; retract probe (omit if using bltouch)
G29 ; probe the bed and enable compensation and save height map to file
G29 S1 ; Load height map from fileand the M671 code in the config.g :
M584 X0 Y1 E3 Z2:5:6 ; three Z motors connected to driver outputs 2, 5 and 6
M671 X-35:535:535 Y250:118:382 S0.5 ; leadscrews at middle left, front right and rear right -
@iamthebest22 said in Double checking settings before I install my Duet Wifi + Duex:
Y250:118:382
118 and 382 look backwards compared to what you have in bed.g
G30 P1 X495 Y382 Z-99999 ; probe near a leadscrew
G30 P2 X495 Y118 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors -
Oh those have to be in the same order too o.o Oh okay here's the new one:
G30 P0 X10 Y250 Z-99999 ; probe near a leadscrew
G30 P1 X495 Y118 Z-99999 ; probe near a leadscrew
G30 P2 X495 Y382 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motorsgonna try that now and report back
-
Okay I'm at a lost, so with this new bed.g here:
M561 ; clear any bed transform
G28 ; Home all axis
G28 Z ; Home Z again for more accuracy
M401 ; deploy Z probe (omit if using bltouch)
G30 P0 X10 Y250 Z-99999 ; probe near a leadscrew
G30 P1 X495 Y118 Z-99999 ; probe near a leadscrew
G30 P2 X495 Y386 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors
M402 ; retract probe (omit if using bltouch)
G29 ; probe the bed and enable compensation and save height map to file
G29 S1 ; Load height map from fileand the same M671 in config.g:
M671 X-35:535:535 Y250:118:386 S0.5 ; leadscrews at middle left, front right and rear rightSTill the same thing:
here are the results in order (from 1st to 3rd test):
https://www.dropbox.com/s/qmsah7ugzzd3oju/2019-03-20 22.59.03.jpg?dl=0
https://www.dropbox.com/s/zkvr63qdu63wifi/2019-03-20 23.06.10.jpg?dl=0
https://www.dropbox.com/s/g4muizvuubdfsr9/2019-03-20 23.09.24.jpg?dl=0would the firmware have anything to do with it? The one I'm using is according to the general section in the webui:
Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
Firmware Electronics: Duet WiFi 1.02 or later + DueX5
Firmware Version: 2.0(RTOS) (2018-06-05b3)
WiFi Server Version: 1.21
Web Interface Version: 1.21.2-dc42 -
I'm not an expert on independent motor leveling.
You're a little out of date on the firmware but I don't think that would explain it
-
I successfully updated the firmware to 2.02 (december build) and also web server to 1.22 . Then I tried doing it again, the deterioration still happens, but at a much slower rate, took 5 tries instead of 3 AND instead of it being left side to right side, it looks like now it's front to back side before it couldn't compensate anymore and it goes slanted again. Thanks for the help though so far, but could anyone else also shed light on this? Thank you very much in advance.
Pic: (after 3 tries using the newest firmware):
https://www.dropbox.com/s/cmxlcfpjaatirtt/2019-03-21 00.27.02.jpg?dl=0 -
@iamthebest22 Can't help directly as I don't use that feature but have you read this? https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
The only other thing I can suggest is that you start a new thread specifically entitled "Problems setting up auto bed levelling" or some such. That is likely to bring it to the attention of more people who do have the experience and knowledge. Make sure you follow the usual guidelines and provide all the necessary information about your printer, it's configuration (link or list the files), firmware version, your bed.g file etc, as well as description of what you expect to happen and what is actually happening. https://forum.duet3d.com/topic/5909/guide-for-posting-requests-for-help/11
-
When you set up independent lead screw bed levelling:
- You must list the leadscrew coordinates in the M671 command in the same order as you list the Z motors in the M584 command. You have this:
M584 X0 Y1 E3 Z2:5:6 ; three Z motors connected to driver outputs 2, 5 and 6
M671 X-35:535:535 Y250:118:382 S0.5 ; leadscrews at middle left, front right and rear rightYou are telling the firmware that the motor connected to driver 2 (the Duet Z output) drives the leadscrew at X=-35 Y=250. is that correct? Similarly for the other 2 motors.
- The order of the probe points in bed.g doesn't matter.
-
@dc42 that was it, I didn't set the Z2:5:6 to the correct probe points in M671, thank you very much!
@deckingham, the good news is that slic3r PE has a setting for first layer and then other layers, so I guess I probably will have to do it like you said, turn first layer off to 0, then in the start gcode do G28 and G32 first, then set the temp to the first layer I want, and then go from there, I was just hoping to avoid that and just use the [first_layer_temperature] instead to save work xD. I will try and tinker with the code you gave me and report back what worked. Thank you very much!
-
@iamthebest22 I'm only 90% sure that slic3r PE puts the temperatures before the start gcode when it creates the gcode file - so there is 10% doubt. So I'd recommend that you do as I suggested and put some sort of comment as the first line of your start gcode, to act as a marker. Then slice an object and look at the file to see if there are any temperature related commands before that marker. That will confirm my suspicion or otherwise.
But yes, if you set the first layer temperature to zero, then the slicer will still adjust the temperature to whatever you set for subsequent layers. Thinking about it some more, you only need do that for the hot end temperature. You can leave the bed as is I'd have thought. So in the start gcode I suggested, you could maybe leave out the first M140 as long as the slicer puts either an M140 or an M190 before the start gcode.
-
Slicer will insert the temperature gcodes before the start gcode only if you don't specify your own temperature gcodes in the start gcode.
So it looks at your start code, and if you have your own M104, etc etc commands, it won't. If you have nothing, it will insert them for you before the start code using whatever was set in the filament tab. As far as I know this doesn't include the G10 Pn Sn Rn commands possible with RepRapFirmware.
https://manual.slic3r.org/expert-mode/printer-settings
The codes specified in Start G-code are inserted at the beginning of the output file, directly after the temperature control commands for extruder and bed. Note that if temperature control commands are specified (M104 and M190) then these will replace the temperature G-codes introduced by the Filament settings.
-
@phaedrux said in Double checking settings before I install my Duet Wifi + Duex:
Slicer will insert the temperature gcodes before the start gcode only if you don't specify your own temperature gcodes in the start gcode.
So it looks at your start code, and if you have your own M104, etc etc commands, it won't. If you have nothing, it will insert them for you before the start code using whatever was set in the filament tab. As far as I know this doesn't include the G10 Pn Sn Rn commands possible with RepRapFirmware.
https://manual.slic3r.org/expert-mode/printer-settings
The codes specified in Start G-code are inserted at the beginning of the output file, directly after the temperature control commands for extruder and bed. Note that if temperature control commands are specified (M104 and M190) then these will replace the temperature G-codes introduced by the Filament settings.
I didn't know that - seems that slic3r is cleverer than S3D in that respect.
So with luck, @iamthebest22 might be able to use that start code in slic3r without having to set the first layer hot end temperature to zero, as he would if he continues to use S3D.
(It doesn't work for me though as I use G10 S and R rather than M104/109 so slic3r still sets the temperature when I don't want it too).
-
@deckingman said in Double checking settings before I install my Duet Wifi + Duex:
(It doesn't work for me though as I use G10 S and R rather than M104/109 so slic3r still sets the temperature when I don't want it too).
One way around that would be to add a temp command for the bed and hotend using the M104, etc commands with a dummy temp, say maybe a preheat, or even 0. Anything just to keep it from adding it's own temp commands. Then immediately have a G10 command after that. That's what I did anyway. The place holder values [first_layer_temp] etc still work in the G10 command.
-
@phaedrux I'm happy enough with the way I have my macros set up and slicer temps all set to zero. I prefer having things configured in one place so my macros do everything and the start gcode does nothing (apart from call the relevant macro(s) depending on the printer profile I choose). That works for me but "each to their own" as the saying goes.