Double checking settings before I install my Duet Wifi + Duex



  • Ohhh I see what you mean, that's my fault, that 1505 is a placeholder, that is not the number I'll be using, it's copied pasta from someone else who is using imperial screws

    Yeah I'm getting my terms confused (also doesn't help that the people I talk with uses multiple different terms incorrectly >.<) Yes I am using a T8 lead screw, single start, 2mm pitch, so a full turn is 2mm, while a whole step on the motor is 0.01mm.

    Oh and I meant holding torque, it's from this (I'm not very good at articulating myself) https://www.machinedesign.com/archive/microstepping-myths

    hence why I'm using 4x microsteps. I just changed the Z to 400 anyways since that's what it's suppose to be.

    Other than that, is everything else looking good? like my bed.g and about how to keep heater cartridge off during probing (but bed still on at 60C to 80C whatever I'm printing). Thanks!



  • @iamthebest22
    Ref holding torque. If you were using multi start screws, then the helix angle is very steep, which means that downward pressure (i.e. the weight) of the bed can make the screws rotate. However, in your case, you have single start screws with a shallow helix angle so even if you disconnect power to the motors completely, the bed won't move. So 4x micro stepping is OK but you could also use 16x with interpolation and it will run quieter. But you'll only notice that when you do a long Z move like homing after a tall print.
    Ref the bed.g - I can't help because I don't use any form of levelling or flatness compensation.
    Ref the order of things happening in the slicer. I've found that the best way is to encompass all the pre and post print commands in a macro. Then simply call the relevant macro from the slicer start and end gcodes. By not setting any temperatures in the slicer, I now have full control over what happens and in what order. Slic3R PE does things the way that are best suited to Prusa printers which isn't necessarily the best way to do things on other printers.



  • ah okay thanks Deckingman.

    Here's what I have tried with my other small HEVO to no avail in Simplify3D, keep in mind though that this small hevo that I was testing still uses an old firmware (haven't had time to update it yet), for this new build it'll be using the newest firmware available
    in the starting gcode:

    G28 ; home all axes
    M104 S0 ; set nozzle to ensure 0 temp while auto bed leveling
    G92 E0
    M104 S0 ; set nozzle AGAIN to ensure 0 temp while auto bed leveling
    M140 S[first_layer_bed_temperature] ; set bed temp
    M190 S[first_layer_bed_temperature] ; wait for bed temp
    M104 S0 ; set nozzle to ensure 0 temp while auto bed leveling
    G4 S60 ; Dwell for 60 seconds or 1 minute to ensure bed gets evenly heated
    G28
    G32 ; ABL for Duet Wifi
    G1 Z5 F300 ; lift nozzle
    M104 S[first_layer_temperature] ; set extruder temp
    M109 S[first_layer_temperature] ; wait for extruder temp
    G92 E0
    G1 F4000 X5 Y5 Z0.2 ; position for priming
    G1 F200 E4

    Again this is with S3D, but I can change to another slicer that works if necessary. Thanks!



  • 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 file

    and 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 motors

    gonna 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 file

    and the same M671 in config.g:
    M671 X-35:535:535 Y250:118:386 S0.5 ; leadscrews at middle left, front right and rear right

    STill 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=0

    would 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


  • administrators

    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 right

    You 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.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.