Simplify 3D configuration



  • I have a Duet 3 with E3D Hermes extruder with a BLTouch probe in a corexy printer. Homing as well as bed leveling works. I tried a sample print in Simplify 3D. All it did was create a print file (g code) with the command to home all and nothing else. It didn't even activate the BL Touch so it kept pushing the bed against the head until I ran an emergency stop. I used the RepRap profile but there's definitely more to this. Any suggestions?



  • How are you running the gcode file?
    I produce the gcode file from simplify3D and transfer it to the SD card in the Duet using DWC and then use DWC to run the print..



  • @appjaws said in Simplify 3D configuration:

    I produce the gcode file from simplify3D and transfer it to the SD card in the Duet using DWC and then use DWC to run the print..

    Why not just CURL the file from S3D directly on to duet ?

    in s3d, scripts tab, Addition terminal commands for post processing:

    c:\path\to\your\sendtorrf3.bat "[output_filepath]" 
    

    and your sendtorrf3.bat:

    @echo off
    
    for %%a in (%1) do (
        set filepath=%%~dpa
        set filename=%%~na
        set extension=%%~xa
    )   
    set if=%filepath%%filename%%extension%
    
    c:\path\to\your\curl\installation\curl-7.50.3-win64-mingw\bin\curl.exe -G --data-urlencode "gcode=M30%%20%%22%filename%%extension%%%22" http://ender5.local.lan/rr_gcode
    c:\path\to\your\curl\installation\curl-7.50.3-win64-mingw\bin\curl.exe  --data-binary "@%if%" "http://ender5.local.lan/rr_upload?name=gcodes/%filename%%extension%"
    
    

    replace ender5.local.lan with ip of your duet, set proper paths and you are golden. The only thing that does not work here properly is when there is a space in the filename and if the filename start with number



  • @Weevil said in Simplify 3D configuration:

    I tried a sample print in Simplify 3D. All it did was create a print file (g code) with the command to home all and nothing else. It didn't even activate the BL Touch

    S3D will create the G-Code the way you tell it to. It will not automagically do anything.

    You want something like this in your startup script (advanced/scripts/starting script):

    M200 D0 ; disable volumetrics
    G28 ; home
    G29S1 ; load bed mesh
    

    if you want to run leveling, instead G28S1 you can run G31



  • @arhi I'll give it a shot.



  • @arhi What's the advantage of running directly from S3D?
    I have macros to start up, bed levelling, auto set trigger height, shut down, LED control etc.
    My print files are on my computer and SD card so I can print without needing to switch on my computer and control the printer remotely via my phone.

    This is my S3D start script
    M98 P"0:/macros/Set LED Red"
    if !move.axes[0].homed || !move.axes[1].homed
    G28
    G28 Z
    M98 P"0:/macros/Conditional/Auto_Bed_Levelling"
    M98 P"0:/macros/Auto Nozzle Cleaning"
    T0
    M98 P"0:/macros/Set LED Blue"



  • @appjaws said in Simplify 3D configuration:

    @arhi What's the advantage of running directly from S3D?

    You do not have to get the SD card out of the Duet, plug into PC, safe files, eject, get out of PC and put into duet again. For me personally that's tedious, the card is miniature, I dropped it many times, getting it out of duet is complicated as sd card port is not easily accessible. The SD card port on Duet is maybe high quality but that's mechanical device click/clacking it non stop etc etc etc.. So if I can avoid all that I surely would. Not to mention, for e.g. "today" my printers and my computers are in the same room, in 7 months that will, if all goes by plan, not be so. In that case it would be order of magnitude worse to go get card, from printer and get it back to printer.

    I have macros to start up, bed levelling, auto set trigger height, shut down, LED control etc.

    How does that link to the question, I don't get it. Or you are talking about startup script you configure in S3D for your printer?

    My print files are on my computer and SD card so I can print without needing to switch on my computer and control the printer remotely via my phone.

    You have to generate the files on your computer so it has to be on when you generate them. For that CURL script to work you have to save the gcode. So what you do is you save the gcode locally and postprocessing script uploads it to your printer, so again, you have gcode file saved locally and uploaded to your printer, you don't have to move SD card around and do anything by hand. You can turn off your computer and start / control print via phone. Everything exactly the same except you did not need to remove ths SD card twice for every code :).

    That is the benefit. The downside is that the script can't handle files that start with digit and can't handle file name that has spaces, so when you save file you should name it accordingly. It can probably be easily fixed only I don't myself put spaces into file names so I have not tried.



  • @arhi said in Simplify 3D configuration:

    You do not have to get the SD card out of the Duet, plug into PC, safe files...

    YIKES! No, don't do that. You should almost never have to touch the card in a Duet. I have about five of them that I haven't touched in literally years. Through firmware upgrades, thousands of print jobs, etc.

    Any slicer. Save the file. Open Duet Web Console (DWC) in a browser. Jobs tab. Upload the file. Print it. Rinse, repeat. A few seconds, a few clicks, no card manipulation.

    Or, automate. Several slicers have plugins to do the upload and start print step automatically. Or use the curl script, it basically does what those plugins do... and looks great! Saves a few clicks.

    But to be clear, for others reading this thread: Almost never any need to move the card around like icky old Marlin printers.



  • But I think your real question is the BLtouch. A properly configured Duet will make the BLt work with no special G-Codes from your slicer. It "just works" as various homing and probing occur.

    Please post your config.g, homez.g, and bed.g. And your deployprobe.g and retractprobe.g. All of those are in /sys (none in /macros)



  • @Danal said in Simplify 3D configuration:

    A properly configured Duet will make the BLt work with no special G-Codes from your slicer.

    well you do need "some" startup stuff... S3D won't even add homing if you don't add it to start script 😄



  • I think the issue starts with the homeall script. I am no expert on this coding stuff but it looks like there;s no command to operate the BLTouch:

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Feb 20 2020 16:55:51 GMT-0800 (Pacific Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X305 Y-305 F1800 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X305 ; home X axis
    G1 H1 Y-305 ; home Y axis
    G1 X-5 Y5 F6000 ; go back a few mm
    G1 H1 X305 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y-305 ; then move slowly to Y axis endstop
    G1 H1 Z-505 F360 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)

    ; Uncomment the following lines to lift Z after probing
    ;G91 ; relative positioning
    ;G1 Z5 F100 ; lift Z relative to current position
    ;G90 ; absolute positioning


  • Moderator

    @Weevil said in Simplify 3D configuration:

    G1 H1 Z-505 F360 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z0 ; set Z position to axis minimum (you may want to adjust this)

    You are correct. You have it setup as if you were using an endstop instead of a probe.
    You need to replace those lines with something like this:

    G90 ; absolute position
    G1 X150 Y150 ; move probe to the center of the bed
    G30 ; use the probe to find Z0
    G1 X0 Y0 Z5 ; return to parked position
    


  • @arhi I never remove the SD card, just use DWC to load files, print them and update the system firmware etc.
    That was my script for the startup is S3, you will notice that it checks if the machine has been homed, if not it carries out a home procedure..



  • G30 works MUCH better for a BLt. Here's my homez, and deploy/retract files. These "just work", including probing for 3-motor bed tramming, mesh probing, etc.

    My /sys/homez.g:

    ; Home Z Axis
    
    G90 G1 X150 Y150 F10000   ; Move to the center of the bed
    
    M558 F500                ; Set the probing speed
    G30
    M558 F50                 ; Set a slower probing speed
    G30
    

    my /sys/deployprobe.g:

    M280 P0 S10
    

    And /sys/retractprobe.g:

    M280 P0 S90
    

    /sys/bed.g

    G0     X152.5 Y50 H1 F10000
    G30 P0 X152.5 Y50 Z-99999       ; probe near back leadscrew
    
    G0     X265   Y260 H1 F10000
    G30 P1 X265   Y260 Z-99999      ; probe near front left leadscrew
    
    G0     X0     Y315 H1 F10000
    G30 P2 X0     Y315 Z-99999 S3   ; probe near front right leadscrew and calibrate 3 motors
    
    G1     X150   Y150 F10000
    
    


  • @Phaedrux I tried your suggestion. It almost works. It is assuming the endstops are on the other end of the rail and rattles off before I hit emergency stop.

    This is the code I have for homex which works:

    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X305 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 X-5 F6000 ; go back a few mm
    G1 H1 X305 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    Here's the code for homey which works:

    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y5 F6000 ; go back a few mm
    G1 H1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    And here's the working code for homez:

    G90 G1 X150 Y150 F10000 ; Move to the center of the bed
    M558 F500 ; Set the probing speed
    G30
    M558 F50 ; Set a slower probing speed
    G30

    Just to make sure here, when a send a file to print per the file created by S3D, the extruder is sent to coordinates 0,0,0 which I perceive as homeall. The homez code I have centers the head (150,150,0). Does this matter when starting a print?


  • Moderator

    @Weevil said in Simplify 3D configuration:

    The homez code I have centers the head (150,150,0). Does this matter when starting a print?

    You can add another G1 X Y move after the last G30 to move the head wherever you want to park it, as I showed in my example. Once the print starts, it will move to wherever it needs to go to print, regardless of where the print head is when it starts.

    @Weevil said in Simplify 3D configuration:

    It is assuming the endstops are on the other end of the rail and rattles off before I hit emergency stop.

    I don't understand what you mean. What did you try and what did it do?

    It may be time to post your config.g and homing files along with a description of your printer, where the endstops are, etc, and maybe even a picture.



  • @Phaedrux The head is moving to the end that does not have the end stop. Then it rattles away until I do an emergency stop. MY homex and homey codes work just fine. It's the homeall that is causing the issue.


  • Moderator

    @Phaedrux said in Simplify 3D configuration:

    It may be time to post your config.g and homing files along with a description of your printer, where the endstops are, etc, and maybe even a picture.



  • Problem solved. The whole issue was in the location of the end stops. It is now working. Thanks everyone!


Log in to reply