• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Every time I print, I need to increase baby steps

Scheduled Pinned Locked Moved Solved
Tuning and tweaking
6
44
5.3k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    TimsWorkshop @Phaedrux
    last edited by 30 Aug 2021, 10:00

    @phaedrux thanks for the response mate and looking into it.
    I've got an EZABL and I used this article to set it up and set my offset.

    It's roughly the same amount, 0.06 - 0.08, but it varies.
    I did run a G29 earlier and I've got a height map, but not sure if I'm loading it or not... I think it's in the bed.g file G29 ; probe the bed and enable compensation

    Here's the output of M122

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2.2 running on Duet WiFi 1.02 or later
    Board ID: 0JD0M-9P6B2-NJ4S8-6J1F4-3SN6S-9U4AJ
    Used output buffers: 3 of 24 (24 max)
    === RTOS ===
    Static ram: 23460
    Dynamic ram: 73460 of which 76 recycled
    Never used RAM 15084, free system stack 99 words
    Tasks: NETWORK(ready,169) HEAT(blocked,308) MAIN(running,410) IDLE(ready,20)
    Owned mutexes:
    === Platform ===
    Last reset 26:25:56 ago, cause: software
    Last software reset at 2021-08-29 17:33, reason: User, GCodes spinning, available RAM 15084, slot 0
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
    Error status: 0x08
    Aux0 errors 0,0,0
    MCU temperature: min 27.6, current 35.6, max 36.5
    Supply voltage: min 23.7, current 24.0, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: position 4530, standstill, SG min/max 0/334
    Driver 1: position 12540, ok, SG min/max 0/523
    Driver 2: position 42, standstill, SG min/max 0/543
    Driver 3: position 0, standstill, SG min/max 0/1023
    Driver 4: position 0, standstill, SG min/max not available
    Driver 5: position 0
    Driver 6: position 0
    Driver 7: position 0
    Driver 8: position 0
    Driver 9: position 0
    Driver 10: position 0
    Driver 11: position 0
    Date/time: 2021-08-30 19:59:21
    Cache data hit count 4294967295
    Slowest loop: 163.74ms; fastest: 0.12ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest read time 4.5ms, write time 49.7ms, max retries 0
    === Move ===
    DMs created 83, maxWait 23786190ms, bed compensation in use: mesh, comp offset 0.102
    === MainDDARing ===
    Scheduled moves 6086, completed moves 6066, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 26], CDDA state 3
    === AuxDDARing ===
    Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 0 is on, I-accum = 0.3
    Heater 1 is on, I-accum = 0.6
    === GCodes ===
    Segments left: 1
    Movement lock held by null
    HTTP is idle in state(s) 0
    Telnet is idle in state(s) 0
    File is doing "G0 F7500 X55.203 Y149.106" in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger is idle in state(s) 0
    Queue is idle in state(s) 0
    LCD is idle in state(s) 0
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 192.98ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 2 of 8
    - WiFi -
    Network state is active
    WiFi module is connected to access point
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.25
    WiFi MAC address e0:98:06:22:67:28
    WiFi Vcc 3.39, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 24792
    WiFi IP address 192.168.1.28
    WiFi signal strength -48dBm, mode 802.11n, reconnections 0, sleep mode modem
    Clock register 00002002
    Socket states: 4 0 0 0 0 0 0 0
    === Filament sensors ===
    Extruder 0 sensor: ok

    And here's the output of M98

    M98 P"config.g"
    HTTP is enabled on port 80
    FTP is disabled
    TELNET is disabled

    Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

    undefined 1 Reply Last reply 30 Aug 2021, 17:11 Reply Quote 0
    • undefined
      Phaedrux Moderator @TimsWorkshop
      last edited by 30 Aug 2021, 17:11

      @infidelprops said in Every time I print, I need to increase baby steps:

      I did run a G29 earlier and I've got a height map, but not sure if I'm loading it or not... I think it's in the bed.g file

      Yes, but are you ever using G32 to run bed.g? I don't see it in any of your start code.

      I would suggest that you update your firmware to 3.3 by uploading this zip file to the system tab in DWC
      https://github.com/Duet3D/RepRapFirmware/releases/download/3.3/Duet2and3Firmware-3.3.zip

      Re measure your G31 Z offset with nozzle and bed at temp.

      Test your homeall again by seeing if the nozzle just touches the bed at Z0.

      Then re-level your bed and send G29 S0 to create a fresh heightmap.

      Then add G29 S1 to your slicer start gcode after the G28

      Make sure your extruder flow rate is calibrated and then try a test print of this file to test how well the mesh is working.

      bedlevel_nozzle_0.4_200x200-0.3-0.8.stl

      Z-Bot CoreXY Build | Thingiverse Profile

      undefined 2 Replies Last reply 30 Aug 2021, 21:22 Reply Quote 1
      • undefined
        TimsWorkshop @Phaedrux
        last edited by 30 Aug 2021, 21:22

        @phaedrux

        Thanks mate, I will give this all a go now

        Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

        1 Reply Last reply Reply Quote 0
        • undefined
          TimsWorkshop @Phaedrux
          last edited by TimsWorkshop 30 Aug 2021, 23:36

          @phaedrux

          Thanks for this! I've done the upgrade and reconfig... Z-offset is set to 1.750, G31 P500 X47 Y10 Z1.750

          When I did the first print of the suggested file, I had to babystep to -0.33
          On the second print, I had to again babystep to -0.45
          IMG20210831090314.jpg
          On the third print, I had to again babystpe to -0.66
          IMG20210831092855.jpg

          On all three prints, when I am facing the printer:

          • the right side of the bed prints very low to the bed and the filament is almost squished.
          • but on the left sidem, it prints very high and the filament barely sticks.
          • In the middle, it's also still pretty lose

          This is my height map, after configuring the z-offset, after levelling and this looks pretty bad and I've had better.
          261df4d2-4862-4161-b2b2-7bc936d580ea-image.png
          It's also good to point out that I don't yet have a LCD screen, I've ordered one but it's two weeks late or lost, so I am doing everything via DWC.

          When I level the bed, I jog the hotend to where my 4 bed levelling screws are and I use a sheet of paper to get them all having the same resistence when I pull on the paper and then I check centre again.
          After I do this, I run the G29 S0.

          Also, I still don't see a mesh.g file... am I supposed to have one of these?

          Here's an updated M122

          M122
          === Diagnostics ===
          RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3 (2021-06-15 21:44:54) running on Duet WiFi 1.02 or later
          Board ID: 0JD0M-9P6B2-NJ4S8-6J1F4-3SN6S-9U4AJ
          Used output buffers: 3 of 24 (20 max)
          === RTOS ===
          Static ram: 23876
          Dynamic ram: 75320 of which 176 recycled
          Never used RAM 12188, free system stack 114 words
          Tasks: NETWORK(ready,63.2%,231) HEAT(delaying,0.1%,305) Move(notifyWait,0.4%,305) MAIN(running,36.1%,420) IDLE(ready,0.2%,29), total 100.0%
          Owned mutexes: WiFi(NETWORK)
          === Platform ===
          Last reset 01:39:37 ago, cause: software
          Last software reset at 2021-08-31 07:57, reason: User, GCodes spinning, available RAM 15044, slot 1
          Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
          Error status: 0x08
          Aux0 errors 0,0,0
          Step timer max interval 0
          MCU temperature: min 28.8, current 29.7, max 32.6
          Supply voltage: min 23.7, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
          Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/126/126, gc cycles 0
          Driver 0: position 400, standstill, SG min/max 0/337
          Driver 1: position 28320, standstill, SG min/max 25/530
          Driver 2: position 7930, standstill, SG min/max 0/540
          Driver 3: position 0, standstill, SG min/max 0/386
          Driver 4: position 0, standstill, SG min/max not available
          Driver 5: position 0
          Driver 6: position 0
          Driver 7: position 0
          Driver 8: position 0
          Driver 9: position 0
          Driver 10: position 0
          Driver 11: position 0
          Date/time: 2021-08-31 09:37:01
          Cache data hit count 4294967295
          Slowest loop: 42.45ms; fastest: 0.10ms
          I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
          === Storage ===
          Free file entries: 10
          SD card 0 detected, interface speed: 20.0MBytes/sec
          SD card longest read time 4.1ms, write time 4.6ms, max retries 0
          === Move ===
          DMs created 83, maxWait 2403120ms, bed compensation in use: mesh, comp offset 0.000
          === MainDDARing ===
          Scheduled moves 1307, completed moves 1307, hiccups 0, stepErrors 0, LaErrors 0, Underruns [1, 0, 61], CDDA state -1
          === AuxDDARing ===
          Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === Heat ===
          Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
          Heater 0 is on, I-accum = 0.3
          Heater 1 is on, I-accum = 0.4
          === GCodes ===
          Segments left: 0
          Movement lock held by null
          HTTP is idle in state(s) 0
          Telnet is idle in state(s) 0
          File is idle in state(s) 0
          USB is idle in state(s) 0
          Aux is idle in state(s) 0
          Trigger is idle in state(s) 0
          Queue is idle in state(s) 0
          LCD is idle in state(s) 0
          Daemon is idle in state(s) 0
          Autopause is idle in state(s) 0
          Code queue is empty.
          === Filament sensors ===
          Extruder 0 sensor: ok
          === Network ===
          Slowest loop: 37.91ms; fastest: 0.00ms
          Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
          HTTP sessions: 1 of 8
          - WiFi -
          Network state is active
          WiFi module is connected to access point
          Failed messages: pending 0, notready 0, noresp 0
          WiFi firmware version 1.26
          WiFi MAC address e0:98:06:22:67:28
          WiFi Vcc 3.40, reset reason Turned on by main processor
          WiFi flash size 4194304, free heap 21400
          WiFi IP address 192.168.1.28
          WiFi signal strength -47dBm, mode 802.11n, reconnections 0, sleep mode modem
          Clock register 00002002
          Socket states: 0 0 0 0 0 0 0 0

          And a M98

          M98 P"config.g"
          HTTP is enabled on port 80
          FTP is disabled
          TELNET is disabled

          Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

          undefined 2 Replies Last reply 30 Aug 2021, 23:42 Reply Quote 0
          • undefined
            fcwilt @TimsWorkshop
            last edited by 30 Aug 2021, 23:42

            @infidelprops

            Hi,

            Since you have a Z probe you can get some help adjusting those bed leveling screws.

            Manual Bed Leveling

            Basically the firmware will move to each of the 4 locations you specify and probe the bed. Then it will compute the adjustment needed for the 2nd, 3rd, and 4th leveling screws. It uses the 1st point as a reference and screw isn't adjusted.

            It works well.

            Frederick

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

            1 Reply Last reply Reply Quote 1
            • undefined
              fcwilt @TimsWorkshop
              last edited by 30 Aug 2021, 23:50

              @infidelprops

              Hi again.

              The G32 command executes the bed.g file and that file you must create and populate with the needed commands.

              The G29 command executes a mesh.g file, if it exists, and again that file you must create and populate with the needed commands.


              I put in each file all of the needed commands to insure that I can execute a G32 or G29 command and have the process complete successfully without having to be sure to do certain other commands first.

              This can lead to a bit of inefficiency as you may be doing a few of the same commands in each file. But given the time each process takes any extra time due to the duplicated commands is minimal.


              I also should mention that the DWC is already setup to invoke G32 or G29 from a pull down menu so if you stick with creating bed.g and mesh.g then you can invoke those processes from the DWC without errors.

              Frederick

              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

              undefined 1 Reply Last reply 31 Aug 2021, 05:06 Reply Quote 1
              • undefined
                TimsWorkshop @fcwilt
                last edited by TimsWorkshop 31 Aug 2021, 05:06

                @fcwilt & @Phaedrux thanks for the explanations!

                I've tried this previously, but I wasn't doing it right and I've now put them in the right file, but when select True Bed Levelling (G32) within DWC, I get the below message after it homes z, but the hotend doesn't move anywhere:

                G32
                Manual corrections required: 0.00 turn up (0.00mm) 0.00 turn down (0.00mm) 0.00 turn down (0.00mm) 0.00 turn down (0.00mm)

                This is at the very bottom of my config.g file

                ; Setup Manual Bed Levelling Assistant
                M671 X55:338:338:55 Y311:311:51:51 P0.5 ; Back-left:Back-Right:Front-Right:Front-Left

                And this is in bed.g

                ; bed.g
                ; called to perform automatic bed compensation via G32
                ;
                ; generated by RepRapFirmware Configuration Tool v3.3.0 on Sun Aug 08 2021 21:27:11 GMT+1000 (Australian Eastern Standard Time)
                M561 ; clear any bed transform
                G28 Z ; home z
                G30 P0 X55 Y311 Z-500 ; Back-Left
                G30 P1 X338 Y311 Z-500 ; Back-Right
                G30 P2 X338 Y51 Z-500 ; Front-Right
                G30 P3 X55 Y51 Z-500 S4; Front-Left
                G29 ; probe the bed and enable compensation

                I'm going to look around the forums and Google, but wanted to post this here

                Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                undefined 1 Reply Last reply 31 Aug 2021, 08:03 Reply Quote 0
                • undefined
                  fcwilt @TimsWorkshop
                  last edited by 31 Aug 2021, 08:03

                  @infidelprops

                  Hi,

                  You recall that I said I put all commands needed into each file so the will execute successfully without any other steps being taken first?

                  Now having the M671 in config.g works. But you may find you need to change those values because they are not quite right. If you put the M671 in bed.g then anytime bed.g is executed the current values in the M671 command will be used.


                  Now as to why it is not working for you. In your G30 command you are using Z-500.

                  Read this from the G30 documentation:

                  G30 with a P parameter

                  This is used for operations that are performed after the printer has been homed and that require the height error at more than one probe point to be measured. These operations are typically performed in the bed.g file. With a Z parameter of -9999 or less, the head moves to the specified XY coordinates and the dive height (set using the H parameter in the M558 command), and probes the bed.


                  Also since bed.g is intended for bed leveling (auto or manual) and mesh.g is intended for creating the height map needed for mesh bed compensation I would not include the G29 in bed.g. They do not need to be done together and if you included G29 in bed.g you cannot do them separately.

                  For example I implemented auto bed leveling on one of my printers. I level the bed when I home it. But I only create the height map manually using a DWC Macro as the height map can usually be created once and used over and over. I load the height map use G29 S1 in the code which is executed at the start of a print.


                  One thing you do need to add to your bed.g file is the code to set the Z=0 Datum using a G30 command. I always set the Z=0 Datum using the center of the bed for the XY position that you must always set before executing the G30. You use a normal G1 command but you have to compute the X and Y parameters so the probe is positioned at the center of the bed and not the nozzle. This means you have to take into account the X and Y offsets of your Z probe.


                  Frederick

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                  undefined 1 Reply Last reply 31 Aug 2021, 08:19 Reply Quote 1
                  • undefined
                    TimsWorkshop @fcwilt
                    last edited by TimsWorkshop 31 Aug 2021, 08:19

                    @fcwilt thanks for the details!

                    I've updated bed.g with the following, but not sure if I'm setting Z=0 correctly. Based on reading the documentation for G30, what I'm doing is:

                    • Move Probe to centre of bed
                    • Use G30 to probe the current location
                    • Then move and probe the screw locations and probe
                    ; bed.g
                    ; called to perform automatic bed compensation via G32
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.3.0 on Sun Aug 08 2021 21:27:11 GMT+1000 (Australian Eastern Standard Time)
                    ; Setup Manual Bed Levelling Assistant
                    M671 X55:338:338:55 Y311:311:51:51 P0.5 ; Back-left:Back-Right:Front-Right:Front-Left
                    M561 ; clear any bed transform
                    G28 Z; home
                    ; Center of the bed
                    G1 X220 Y175 F6000
                    G30 S1 Z-9999 ; Centre
                    ; 4 Screw Points
                    G30 P0 X55 Y311 Z-9999 ; Back-Left
                    G30 P1 X338 Y311 Z-9999 ; Back-Right
                    G30 P2 X338 Y51 Z-9999 ; Front-Right
                    G30 P3 X55 Y51 Z-9999 S4; Front-Left

                    Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                    undefined 1 Reply Last reply 31 Aug 2021, 08:37 Reply Quote 0
                    • undefined
                      fcwilt @TimsWorkshop
                      last edited by 31 Aug 2021, 08:37

                      @infidelprops

                      I made a mistake.

                      It's quite late here and I overlooked the fact that you are doing manual bed leveling so setting the Z=0 datum would have to be done after you completed the manual process.

                      Sorry about that.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      undefined 1 Reply Last reply 31 Aug 2021, 09:16 Reply Quote 1
                      • undefined
                        TimsWorkshop @fcwilt
                        last edited by 31 Aug 2021, 09:16

                        @fcwilt no worries mate, I appreciate you sticking with it!

                        Here's my bed.g file

                        ; bed.g
                        ; called to perform automatic bed compensation via G32
                        ;
                        ; generated by RepRapFirmware Configuration Tool v3.3.0 on Sun Aug 08 2021 21:27:11 GMT+1000 (Australian Eastern Standard Time)
                        ; Setup Manual Bed Levelling Assistant
                        M671 X69:338:69:338 Y51:51:308:308 P0.5 ; Front-Left:Front-Right:Back-Left:Back-Right
                        M561 ; clear any bed transform
                        G28 Z; home
                        ; Probe near bed screws
                        G30 P0 X127 Y58 Z-9999 ; Front-Left
                        G30 P1 X380 Y58 Z-9999 ; Front-Right
                        G30 P3 X127 Y318 Z-9999; Back-Left
                        G30 P2 X380 Y318 Z-9999 S4; Back-Right

                        And this is what is shown in the console after the 4th point is finished

                        G32
                        Manual corrections required: 0.00 turn up (0.00mm) 0.25 turn down (0.13mm) 0.14 turn up (-0.07mm) 0.27 turn down (0.14mm)

                        Now that I know how much to adjust it... what's the best way to adjust the knobs given they're a manual turn? And do I still need to run a G29 as well to get a height map or this a 1 or the other situation?

                        Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                        undefined 1 Reply Last reply 31 Aug 2021, 14:38 Reply Quote 0
                        • undefined
                          fcwilt @TimsWorkshop
                          last edited by 31 Aug 2021, 14:38

                          @infidelprops said in Every time I print, I need to increase baby steps:

                          Now that I know how much to adjust it... what's the best way to adjust the knobs given they're a manual turn? And do I still need to run a G29 as well to get a height map or this a 1 or the other situation?

                          I find it difficult to turn the adjustment screws the amounts specified - like 0.14 of a turn. After awhile you just get a feel for it but it can still take many tries. I strive for perfect but I'll settle for being off by 0.01mm.

                          Now I may just be inept but I find my printer with just 3 adjustment screws much easier to get right than the one that as 4 adjustment screws.

                          With my manual adjust beds I check them periodically with G32 to see if they have changed.

                          With my auto adjust beds I do that as part of homing Z.

                          I create the height map periodically if I think something may have changed. If you implement mesh.g you can create the height map via the DWC pull down menu, via a DWC Macro or just by executing G29.

                          I load the existing height map in my print start code.

                          the basic steps related to leveling and mesh compensation are:

                          • home the printer
                          • level the bed if auto bed leveling is implemented
                          • set the Z=0 Datum
                          • load the height map

                          Of course I do others things in my print start code like set the bed/extruder temps, wait for them to reach temp, prime the extruder, etc.

                          Frederick

                          Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                          undefined 1 Reply Last reply 31 Aug 2021, 21:01 Reply Quote 1
                          • undefined
                            TimsWorkshop @fcwilt
                            last edited by 31 Aug 2021, 21:01

                            @fcwilt thanks! I actually got some sleep last night and this morning I realised that I just need to turn the knob slightly, then re-run the test again... so the coffee did it's work this morning.

                            For the G29, I have an empty Mesh file now, and when I run G29 it does nothing... should I put the following in my mesh.g file?

                            mesh.g

                            M561 ; clear any bed transform
                            G28 Z; home
                            M557 X90:400 Y15:360 P20
                            G28 Z; home

                            Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                            undefined 1 Reply Last reply 31 Aug 2021, 21:27 Reply Quote 0
                            • undefined
                              fcwilt @TimsWorkshop
                              last edited by 31 Aug 2021, 21:27

                              @infidelprops said in Every time I print, I need to increase baby steps:

                              @fcwilt thanks! I actually got some sleep last night and this morning I realised that I just need to turn the knob slightly, then re-run the test again... so the coffee did it's work this morning.

                              For the G29, I have an empty Mesh file now, and when I run G29 it does nothing... should I put the following in my mesh.g file?

                              Below are the essential commands from my mesh.g file.

                              Now I make use of many separate files dedicated to a specific function.

                              Below you can see M98 invocations of probe_config.g and probe_set_z.g. The comments below say what they do.

                              You can of course configure the probe in config.g as many folks do and you can set the Z=0 Datum using a G1 command and a G30 command.

                              But since these two processes (configuring the probe and setting the Z=0 Datum) need to be done in several other places I create dedicated files for such processes to be invoked with M98 as needed.

                              M98 P"probe_config.g" ; configure Z probe
                              M98 P"probe_set_z.g" ; set Z=0 datum
                              M557 X-140:140 Y-125:140 P20:20 ; define 400 point mesh
                              G29 S0 ; do probing and save height map

                              If you have questions please ask.

                              Frederick

                              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                              undefined 1 Reply Last reply 31 Aug 2021, 21:46 Reply Quote 1
                              • undefined
                                TimsWorkshop @fcwilt
                                last edited by 31 Aug 2021, 21:46

                                @fcwilt Thanks man, really appreciate it!

                                I've got the manual adjustments done now and reporting back 0.00 for all but one screw, so I'm OK with that for now. I've updated mesh.g to include the below and it's creating the height map now.

                                ;mesh g - manually configured
                                M98 P"probe_config.g"
                                M561 ; clear any bed transform
                                G28 Z; home
                                M557 X90:400 Y15:360 P20 ; define probe area and points
                                G29 S0 ; probe and save height map

                                I've also setup a probe_config.g file as I do like the seperation of files, and in here I have:

                                ; probe_config.g
                                ; Z-Probe
                                M558 P5 C"!zprobe.in" H3 F650 T12000 ; setup my EZABL
                                G31 P500 X47 Y10 Z1.750 ; set Z probe trigger value, offset and trigger height

                                Can I see what you have in your probe_set_z.g file? I've seen multiple post from you around setting Z=0 Datum, and would like to see what you have in there so I can read the gcode doco and figure out what's going on. Question: Will setting this help me to stop having to re-do my babysteps every time I turn my printer back ok? (IE: When I print, as indicated above, I'm constantly updating baby steps, even for the same layer height, but when I turn off my printer and back on... my baby steps go back to 0.00 and i need to reset it as when my first print starts, it's a good .5 mm off the bed)

                                Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                                undefined undefined 2 Replies Last reply 31 Aug 2021, 21:49 Reply Quote 0
                                • undefined
                                  TimsWorkshop @TimsWorkshop
                                  last edited by TimsWorkshop 31 Aug 2021, 21:49

                                  @infidelprops Height calibration just finished and I am very pleased to say this is the best height map I've seen since I started this journey... thanks @fcwilt
                                  6de44ef8-28dc-4634-8890-8d1561aadfa3-image.png

                                  Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                                  undefined 1 Reply Last reply 31 Aug 2021, 21:59 Reply Quote 1
                                  • undefined
                                    fcwilt @TimsWorkshop
                                    last edited by 31 Aug 2021, 21:57

                                    @infidelprops said in Every time I print, I need to increase baby steps:

                                    Can I see what you have in your probe_set_z.g file?

                                    Glad to do it.

                                    If you want to see the M98 invoked files let me know.

                                    I hope you don't get confused by my approach of using many separate files.

                                    M98 P"homeALL_verify.g" ; verify printer is homed - abort if not
                                    M98 P"probe_config.g" ; configure probe
                                    M98 P"center_probe.g" ; position on XY for probing
                                    G29 S2 ; cancel mesh bed compensation
                                    M290 R0 S0 ; cancel baby stepping
                                    G1 Z{global.g_z_home} F600 ; move Z to "homed" height - insures probe is not too close to the bed - value is set into a global variable in config.g
                                    G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong - see probe_config.g
                                    G1 Z{global.g_z_home} F600 ; move Z back again to "homed" height

                                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                    undefined 1 Reply Last reply 31 Aug 2021, 22:08 Reply Quote 1
                                    • undefined
                                      fcwilt @TimsWorkshop
                                      last edited by 31 Aug 2021, 21:59

                                      @infidelprops

                                      Forgot.

                                      Once you set the Z Trigger Height correct (and it seems you have) setting baby stepping will not be needed every time you print.

                                      I still find myself tweaking the starting Z height when printing if it looks like the first layer is not quite right.

                                      Frederick

                                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                      1 Reply Last reply Reply Quote 1
                                      • undefined
                                        TimsWorkshop @fcwilt
                                        last edited by 31 Aug 2021, 22:08

                                        @fcwilt said in Every time I print, I need to increase baby steps:

                                        @infidelprops said in Every time I print, I need to increase baby steps:

                                        Can I see what you have in your probe_set_z.g file?

                                        Glad to do it.

                                        If you want to see the M98 invoked files let me know.

                                        I hope you don't get confused by my approach of using many separate files.

                                        M98 P"homeALL_verify.g" ; verify printer is homed - abort if not
                                        M98 P"probe_config.g" ; configure probe
                                        M98 P"center_probe.g" ; position on XY for probing
                                        G29 S2 ; cancel mesh bed compensation
                                        M290 R0 S0 ; cancel baby stepping
                                        G1 Z{global.g_z_home} F600 ; move Z to "homed" height - insures probe is not too close to the bed - value is set into a global variable in config.g
                                        G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong - see probe_config.g
                                        G1 Z{global.g_z_home} F600 ; move Z back again to "homed" height

                                        Thanks, making more sense and I will take you up on the offer to see the homeALL_verify.g, center_probe.g and your config.g file?

                                        And nah, I don't get confused... it makes more sense to me as a developer. (more on the JS/Node side than this/perl)

                                        Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                                        undefined 1 Reply Last reply 31 Aug 2021, 22:33 Reply Quote 0
                                        • undefined
                                          fcwilt @TimsWorkshop
                                          last edited by 31 Aug 2021, 22:33

                                          @infidelprops

                                          Here are the files. I cleaned them up a bit removing experimental stuff. I hope I didn't break anything doing that.

                                          ; homeALL_verify.g
                                          if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
                                          M291 R"Printer has not been homed" P"Cannot continue" S2 T0
                                          abort "Action aborted - printer not homed"
                                          ; center_probe.g
                                          M98 P"homeALL_verify.g"
                                          M98 P"z_position_adjust.g" ; adjust Z position as needed - insures probe is far enough away from bed to work
                                          ; move probe to center of bed
                                          G90 ; absolute moves
                                          ; this mess computes the center of the bed based on axes min/max values and probe XY offsets
                                          G1 X{((move.axis[0].max + move.axis[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axis[1].max + move.axis[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800
                                          ; z_position_adjust.g
                                          ; adjust Z if it is not in a good position for probing
                                          if {move.axes[2].machinePosition} < 5 || {move.axes[2].machinePosition} > 20
                                          G90 ; absolute moves
                                          G1 Z{global.g_z_home} F1200 ; move Z to "home" position
                                          ; ----------------------------------------------------------------------------------------------------
                                          ; start of file - printer FT5 - hardware Duet 2 WiFi/Duex 5 - firmware 3.3.0
                                          ; ----------------------------------------------------------------------------------------------------
                                          ; ****************************************************************************************************
                                          ; prologue
                                          ; ****************************************************************************************************
                                          M111 S0 ; debug off
                                          M550 P"FT5" ; machine name (can be anything you like)
                                          M555 P2 ; set output to look like Marlin
                                          M575 P0 B57600 S2 ; communication parameters for USB serial
                                          M575 P1 B115200 S1 ; communication parameters for PanelDue
                                          M552 S1 ; enable WiFi (S1)
                                          M586 S1 P1 T0 ; enable (S1) FTP (P1) Disable TLS (T0)
                                          M586 S1 P2 T0 ; enable (S1) Telnet (P2) Disable TLS (T0)
                                          G21 ; dimensions in mm
                                          G90 ; for X,Y,Z use absolute coordinate values
                                          M83 ; for E0,E1,etc use relative coordinate values
                                          ; ****************************************************************************************************
                                          ; mode control variables
                                          ; ****************************************************************************************************
                                          global g_z_home = 5 ; can be used to always move Z to known height
                                          global g_print_beg_prime = 30 ; default - set desired in filament config.g
                                          global g_print_beg_retract = 0 ; default - set desired in filament config.g
                                          global g_print_pause_retract = 0 ; default - set desired in filament config.g
                                          global g_print_end_retract = 0 ; default - set desired in filament config.g
                                          global g_print_end_mode = "HEAT OFF" ; determines if heaters are turned off when print is done
                                          global g_map_mode = "FULL" ; determines which kind of height map is created/loaded
                                          global g_probe_mode = "TWO" ; determines if z proving used consecutive or averaging
                                          global g_level_mode = "3PT" ; determines if 3 or 4 points are used for leveling
                                          global g_pa_setting = 0 ; used for pressure advance testing
                                          global g_pa_increment = 0 ; used for pressure advance testing
                                          global g_pa_layer_count = 0 ; used for pressure advance testing
                                          global g_pa_layer_counter = 0 ; used for pressure advance testing
                                          ; ****************************************************************************************************
                                          ; kinematics - K0 = Cartesian (X is -left/+right, Y is -front/+back, Z is bed -up/+down)
                                          ; ****************************************************************************************************
                                          M669 K0 ; defaults = X1:0:0 Y0:1:0 Z0:0:1
                                          ; ****************************************************************************************************
                                          ; motors
                                          ; ****************************************************************************************************
                                          ; motor direction - drive (P), direction (S1 = normal, S0 = reverse)
                                          M569 P0 S1 ; drive 0 - normal - X
                                          M569 P1 S0 ; drive 1 - reverse - YL
                                          M569 P2 S1 ; drive 2 - normal - YR
                                          M569 P3 S0 ; drive 3 - reverse - E
                                          M569 P5 S0 ; drive 5 - reverse - Z
                                          ; motor assignment
                                          M584 X0 Y1:2 Z5 E3 ; set what motors do what
                                          ; motor performance settings
                                          ; X Y Z
                                          M92 X80 Y80 Z400 ; steps per mm (Z1600 for 2mm lead - Z400 for 8mm lead - Z400 for belt drive using stepper with gearbox of 5-to-1)
                                          M203 X12000 Y12000 Z1200 ; max speed (mm/min)
                                          M566 X900 Y900 Z120 ; max instant speed change (jerk) (mm/min) (defaults 900 900 12) (120 z value from phaedrux)
                                          M201 X500 Y500 Z240 ; acceleration (mm/s^2) (defaults 500 500 20) (240 z value from phaedrux)
                                          M906 X1000 Y1000 Z1000 I30 ; motor current (mA) and idle current (30%)
                                          ; E (Zesty Nimble)
                                          M92 E2750 ; steps per mm (suggested 2750)
                                          M203 E3600 ; max speed (mm/min) (suggested 3600)
                                          M566 E40 ; max instant speed change (jerk) (mm/min) (suggested 40)
                                          M201 E120 ; acceleration (mm/s^2) (suggested 120)
                                          M906 E500 ; motor current (mA) (suggested 500)
                                          ; if M92 above is set for the default 16x microstepping then putting M350 here
                                          ; will result in the needed adjustments to the initial values set by M92
                                          M350 X16 Y16 Z16 E16 I1 ; 16x microstepping with interpolation
                                          ; ============================================================
                                          ; axis dimensions and coordinate value modes for 0,0 in center
                                          ; ============================================================
                                          M208 X-150:150 Y-150:150 Z0:350 ; set axes min/max values
                                          M579 X1.0 Y1.0 Z1.0 ; scaling (values are determined by measuring test object)
                                          M564 H1 S1 ; H1 = dont allow moving non-homed axes S1 = limit movement to axis min/max
                                          ; ****************************************************************************************************
                                          ; end stops
                                          ; -- X,Y,Z,etc = location of endstop (0 = none, 1 = low end, 2 = high end)
                                          ; -- S = type (1 = switch, 2 = probe, 3 = motor stall (one), 4 = motor stall (multiple)
                                          ; -- ! = invert ^ = enable pull-up
                                          ; ****************************************************************************************************
                                          M574 X2 S1 P"xstop" ; configure active-high endstop for max end on X
                                          M574 Y2 S1 P"ystop" ; configure active-high endstop for max end on Y
                                          M574 Z1 S1 P"zstop" ; configure active-high endstop for min end on Z
                                          ; ****************************************************************************************************
                                          ; heaters
                                          ; ****************************************************************************************************
                                          M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor
                                          M950 H0 C"bedheat" T0 Q10 ; create bed heater output on bedheat and map it to sensor 0
                                          M307 H0 B0 S1.00 A107.3 C136.0 D2.8 V12.0 ; values A, C, D, V determined by running heater tuning
                                          M140 P0 H0 ; map heated bed to heater 0
                                          M143 H0 S115 ; set temperature limit for heater 0
                                          M308 S1 P"e0temp" Y"thermistor" T500000 B4723 C1.196220e-7 ; configure sensor 1 as thermistor (SLICE)
                                          M950 H1 C"e0heat" T1 Q250 ; create nozzle heater output on e0heat and map it to sensor 1
                                          M307 H1 B0 S1.00 A362.4 C121.7 D4.4 V11.8 ; values A, C, D, V determined by running heater tuning
                                          M143 H1 S250 ; set temperature limit for heater 1
                                          ; other heater settings
                                          M570 P300 ; heater fault timeout - increase to allow extra heating time
                                          ; ****************************************************************************************************
                                          ; cooling fans
                                          ; -- P# is fan, S# is speed (0 to 255 or 0.0 to 1.0) H# means turn on fan when heater H# temp hits T#
                                          ; -- H-1 means no thermostatic control
                                          ; ****************************************************************************************************
                                          M950 F0 C"fan0" Q500 ; create fan (F), pin name (C), frequency (Q)
                                          M106 P0 C"Part" S0 H-1 ; set fan (P), name (C), speed (S), thermostatic control off (H)
                                          M950 F1 C"fan1" Q500 ; create fan (F), pin name (C), frequency (Q)
                                          M106 P1 C"Hotend" S1 H1 T45 ; set fan (P), name (C), speed (S), thermostatic control on (H & T)
                                          ; ****************************************************************************************************
                                          ; LED light strips
                                          ; -- P# is fan, S# is speed (0 to 255 or 0.0 to 1.0) H# means turn on fan when heater H# temp hits T#
                                          ; -- H-1 means no thermostatic control
                                          ; ****************************************************************************************************
                                          M950 F2 C"fan2" Q500 ; create fan 2 (F), pin name (C), frequency (Q) (lights center)
                                          M106 P2 C"Lights C" H-1 L0 ; set fan 2 (P), name (C), thermostatic control off (H)
                                          M950 F3 C"duex.fan6" Q500 ; create fan 3 (F), pin name (C), frequency (Q) (lights left)
                                          M106 P3 C"Lights L" H-1 L0 ; set fan 3 (P), name (C), thermostatic control off (H)
                                          M950 F4 C"duex.fan7" Q500 ; create fan 4 (F), pin name (C), frequency (Q) (lights right)
                                          M106 P4 C"Lights R" H-1 L0 ; set fan 4 (P), name (C), thermostatic control off (H)
                                          ; ****************************************************************************************************
                                          ; tools
                                          ; --- M563 ---
                                          ; P is tool number
                                          ; S is tool name (optional)
                                          ; D is extruder drive (0 or 1)
                                          ; H is associated heater number
                                          ; F is associated fan number
                                          ; --- G10 ---
                                          ; P is tool number
                                          ; X, Y, Z are axis offsets
                                          ; R, S are initial standby & active temperatures
                                          ; ****************************************************************************************************
                                          ; tool 0
                                          M563 P0 S"T0" D0 H1 F0 ; define tool 0 to use extruder drive 0, heater 1, fan 0
                                          G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
                                          G10 P0 R0 S0 ; set initial tool 0 active/standby temperatures
                                          ; ****************************************************************************************************
                                          ; external buttons (T trigger #, E end-stop #, C when to trigger (0 = always), S = edge (rising = 1, falling = 0)
                                          ; external buttons (P = pin #, T = trigger #, R = when to trigger (0 = always, 1 = printing), S = what edge (I->A = 1, A->I = 0, -1 = ignored)
                                          ; --- T0 does emergency stop
                                          ; --- T1 does pause (see M25)
                                          ; --- T# runs macro trigger#.g
                                          ; ****************************************************************************************************
                                          M950 J1 C"^duex.e2stop"
                                          M581 P1 T2 R0 S0 ; little button runs trigger2.g which does M999 reset
                                          M950 J2 C"^duex.e3stop"
                                          M581 P2 T0 R0 S0 ; big button does emergency stop
                                          ; ****************************************************************************************************
                                          ; filament sensor
                                          ; Pnn = sensor type
                                          ; - 0 = none
                                          ; - 1 = simple sensor (high signal when filament present)
                                          ; - 2 = simple sensor (low signal when filament present) (TriangleLabs)
                                          ; - 3 = Duet3D rotating magnet sensor
                                          ; - 4 = Duet3D rotating magnet sensor with microswitch
                                          ; - 5 = Duet3D laser sensor
                                          ; - 6 = Duet3D laser sensor with microswitch
                                          ; - 7 = pulse-generating sensor
                                          ; C"xx" = input pin name
                                          ; Dnn = extruder drive (0,1,2,...)
                                          ; Snn = enable/disable monitoring (0 = disable, 1 = enable)
                                          ; --- for types 3 to 7 ---
                                          ; Ann = when to check (0 = printing motion only, 1 = all motion)
                                          ; Enn = min extrusion to trigger check (mm, default 3)
                                          ; Lnn = movement per sensor wheel rotation (in mm, default 28.4)
                                          ; Raa:bb = extrusion error range (percent)
                                          ; ****************************************************************************************************
                                          M591 D0 P2 C"e1stop" S1 ; TriangleLabs
                                          ;M591 D0 P3 C"e1stop" S1 A0 E3.0 L25.72 R40:115 ; E3D Magnetic
                                          ; ****************************************************************************************************
                                          ; epilogue
                                          ; ****************************************************************************************************
                                          ; ----------------------------------------------------------------------------------------------------
                                          ; workplace coordinates
                                          ; Ln Mode (L1 L2 or L20 - see below)
                                          ; Pnnn tool number if L=1 or coordinate system number if L=2 or L=20
                                          ; X,Y,Z,U,V... Offsets
                                          ;
                                          ; L= 1: this sets the tool offset, as if the L parameter was not present
                                          ; L= 2: this sets the origin of the coordinate system number specified by the P parameter (1 to 9) to the specified X, Y, X... values
                                          ; L=20: this is similar to L=2 except that the origin is specified relative to the current position of the tool
                                          ; ----------------------------------------------------------------------------------------------------
                                          G10 L2 P1 X0.00 Y0.00 Z0.00
                                          G10 L2 P2 X0.00 Y0.00 Z0.00
                                          G10 L2 P3 X0.00 Y0.00 Z0.00
                                          G10 L2 P4 X0.00 Y0.00 Z0.00
                                          G10 L2 P5 X0.00 Y0.00 Z0.00
                                          G10 L2 P6 X0.00 Y0.00 Z0.00
                                          G10 L2 P7 X0.00 Y0.00 Z0.00
                                          G10 L2 P8 X0.00 Y0.00 Z0.00
                                          G10 L2 P9 X0.00 Y0.00 Z0.00
                                          ; ----------------------------------------------------------------------------------------------------
                                          ; Z probe configuration
                                          ; ----------------------------------------------------------------------------------------------------
                                          M98 P"probe_config.g"
                                          ; ----------------------------------------------------------------------------------------------------
                                          ; end of file
                                          ; ----------------------------------------------------------------------------------------------------

                                          Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                          undefined 1 Reply Last reply 31 Aug 2021, 22:48 Reply Quote 1
                                          16 out of 44
                                          • First post
                                            16/44
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA