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

    G29 fails when saving on SBC

    Scheduled Pinned Locked Moved
    General Discussion
    5
    12
    606
    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.
    • Phaedruxundefined
      Phaedrux Moderator
      last edited by

      Can you post the results of m122 please?

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • Tapetenhobelundefined
        Tapetenhobel
        last edited by

        Sure:

        === Diagnostics ===
        RepRapFirmware for Duet 3 Mini 5+ version 3.2 running on Duet 3 Mini5plus WiFi (SBC mode)
        Board ID: QVSU6-Y196U-D65J0-40KML-NF03Z-7NHS0
        Used output buffers: 1 of 40 (21 max)
        === RTOS ===
        Static ram: 98732
        Dynamic ram: 96024 of which 76 recycled
        Never used RAM 50384, free system stack 124 words
        Tasks: Linux(ready,103) HEAT(blocked,316) CanReceiv(blocked,947) CanSender(blocked,358) CanClock(blocked,360) TMC(blocked,75) MAIN(running,464) IDLE(ready,20) AIN(blocked,264)
        Owned mutexes: HTTP(MAIN)
        === Platform ===
        Last reset 00:12:40 ago, cause: software
        Last software reset at 2021-01-23 16:25, reason: User, none spinning, available RAM 50176, slot 1
        Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task Linu Freestk 0 n/a
        Error status: 0x00
        Aux0 errors 0,0,0
        Aux1 errors 0,0,0
        Supply voltage: min 0.0, current 24.1, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
        Driver 0: position 17600, standstill, SG min/max 0/6, read errors 0, write errors 1, ifcnt 102, reads 43031, writes 19, timeouts 0, DMA errors 0
        Driver 1: position 0, standstill, SG min/max 0/20, read errors 0, write errors 1, ifcnt 102, reads 43031, writes 19, timeouts 0, DMA errors 0
        Driver 2: position 12262, standstill, SG min/max 0/72, read errors 0, write errors 1, ifcnt 104, reads 43028, writes 21, timeouts 0, DMA errors 0
        Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 85, reads 43034, writes 12, timeouts 3, DMA errors 0, failedOp 0x71
        Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 68, reads 43041, writes 9, timeouts 0, DMA errors 0
        Driver 5: position 0, assumed not present
        Driver 6: position 0, assumed not present
        Date/time: 2021-01-23 16:37:58
        Cache data hit count 1887771265
        Slowest loop: 178.55ms; fastest: 0.07ms
        === Storage ===
        Free file entries: 10
        SD card 0 not detected, interface speed: 0.0MBytes/sec
        SD card longest read time 0.0ms, write time 0.0ms, max retries 0
        === Move ===
        DMs created 83, maxWait 318940ms, bed compensation in use: mesh, comp offset -0.031
        === MainDDARing ===
        Scheduled moves 65, completed moves 65, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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, chamberHeaters = -1 -1
        Heater 1 is on, I-accum = 0.0
        === GCodes ===
        Segments left: 0
        Movement lock held by null
        HTTP* is doing "M122" 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
        SBC is idle in state(s) 0
        Daemon is idle in state(s) 0
        Aux2 is idle in state(s) 0
        Autopause is idle in state(s) 0
        Code queue is empty.
        === CAN ===
        Messages queued 6851, send timeouts 6848, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 16
        === SBC interface ===
        State: 4, failed transfers: 0
        Last transfer: 3ms ago
        RX/TX seq numbers: 26731/26731
        SPI underruns 0, overruns 0
        Number of disconnects: 0, IAP RAM available 0x10eec
        Buffer RX/TX: 0/0-0
        === Duet Control Server ===
        Duet Control Server v3.2.0
        Code buffer space: 4096
        Configured SPI speed: 8000000 Hz
        Full transfers per second: 35.20
        Maximum length of RX/TX data transfers: 2920/796
        

        Sapphire Pro, Mini 5+, BLTouch, PanelDue 3 5"
        Anycubic i3 Mega, SKR 1.4, Klipper

        1 Reply Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          Can you post the commands or macros you are using the create the heightmap? Does a simple g29 work to create heightmap.csv?

          Z-Bot CoreXY Build | Thingiverse Profile

          Tapetenhobelundefined 1 Reply Last reply Reply Quote 0
          • Tapetenhobelundefined
            Tapetenhobel @Phaedrux
            last edited by

            @Phaedrux said in G29 fails when saving on SBC:

            Can you post the commands or macros you are using the create the heightmap? Does a simple g29 work to create heightmap.csv?

            Yes, the heightmap.csv is saved, but not with the new name. Loading the map from Console with the full path also works OK.
            Here's the macro, I think I found it here somewhere:

            ; 0:/macros/primeline.g
            ; Home axes, wait for temps, create heightmap, and wipe a primeline
             
            ; Determine if we need to Home first or not
            if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
                G28		                                               ; Home all axes
             
            G90                                                        ; Absolute Positioning.
            G1 Z30 F1000                                               ; [BLTouch] Last chance to check nozzle cleanliness.
            
            G1 X110 Y110 F3000
               G30
               
            G29 S1 [P{"0:/sys/" ^ heat.heaters[0].active ^ "C_heightmap.csv"}] ; Load bed mesh for the slicer set bed temp.
            if result > 1                                             ; If the file doesn't exist, perform mesh and save.
               M291 P{"Creating a height map for the bed temp of " ^ heat.heaters[0].active ^ "C."} T10
               M150 R255 B255 P128 S10
               M116                                                   ; Wait for temps
               G29                                                    ; Perform mesh now.
               G29 S3 [P{"0:/sys/" ^ heat.heaters[0].active ^ "C_heightmap.csv"}] ; Save heightmap.csv based on commanded temp
             
            M400                                                       ; Finish all moves, clear the buffer.
            M83                                                        ; Extruder relative mode.
            M116                                                       ; Wait for temps
             
            ; Charge! tune
            ;M98 P/macros/Tunes/Charge!.g	
            M150 R255 B255 P128 S20
            
            G1 Z3.0 F3000                                             ; move z up little to prevent scratching of surface
            G1 X0.1 Y20 Z0.3 F5000.0                                  ; move to start-line position
             
            M117 "Printing Wipe Line"
            G1 X0.1 Y200.0 Z0.3 F1500.0 E15                           ; draw 1st line
            G1 X0.4 Y200.0 Z0.3 F5000.0                               ; move to side a little
            G1 X0.4 Y20 Z0.3 F1500.0 E30                              ; draw 2nd line
             
            G92 E0                                                    ; reset extruder
            

            Sapphire Pro, Mini 5+, BLTouch, PanelDue 3 5"
            Anycubic i3 Mega, SKR 1.4, Klipper

            1 Reply Last reply Reply Quote 0
            • chrishammundefined
              chrishamm administrators
              last edited by chrishamm

              It sounds like you upgraded from an older version but for some reason the permissions were not correctly set. Please open a terminal on your Pi or connect over SSH and run this sudo chown -R dsf.dsf /opt/dsf. Then you should be able to save the heightmap again.

              I just tried to save a custom heightmap using G29 P"foo.csv" and it worked as expected.

              Duet software engineer

              Tapetenhobelundefined 1 Reply Last reply Reply Quote 0
              • Tapetenhobelundefined
                Tapetenhobel @chrishamm
                last edited by

                @chrishamm said in G29 fails when saving on SBC:

                It sounds like you upgraded from an older version but for some reason the permissions were not correctly set. Please open a terminal on your Pi or connect over SSH and run this sudo chown -R dsf.dsf /opt/dsf. Then you should be able to save the heightmap again.

                I just tried to save a custom heightmap using G29 P"foo.csv" and it worked as expected.

                Sorry for the late reply.
                Well, that was my first ideal also, so I setup everything from scratch, same result, before I posted here 🙂
                All the files where uploaded from DWC, so I assume they have their rights set correct.
                The problem is: saving the heightmap works itself from DWC's Console, but not from the Macro above.
                I realize that the topic is misleading, but I can't change it. To sum it up:

                • Saving a heightmap with a different name (G29 P"foo.csv" from Console works fine, no issues
                • Reading and saving a heightmap from within a macro leads to [error] G29: Failed to save height map to file : Access to the path '/opt/dsf/sd/sys/' is denied.

                Sapphire Pro, Mini 5+, BLTouch, PanelDue 3 5"
                Anycubic i3 Mega, SKR 1.4, Klipper

                Vetiundefined 1 Reply Last reply Reply Quote 0
                • chrishammundefined
                  chrishamm administrators
                  last edited by

                  @Tapetenhobel The square brackets are not needed so I'd remove them. But thanks for reporting this problem, I can confirm there is at least an issue with G29 (S0) when you attempt to save to a dynamic filename. That will be fixed in the next build but your macro shouldn't be affected anyway. I just tried G29 followed by G29 S3 and it worked as expected on my setup (without square brackets).

                  Duet software engineer

                  Tapetenhobelundefined 1 Reply Last reply Reply Quote 0
                  • Vetiundefined
                    Veti @Tapetenhobel
                    last edited by

                    @Tapetenhobel said in G29 fails when saving on SBC:

                    [error] G29: Failed to save height map to file : Access to the path '/opt/dsf/sd/sys/' is denied.

                    check the linux permission and ownership of that folder and the folders leading up to it

                    1 Reply Last reply Reply Quote 0
                    • Tapetenhobelundefined
                      Tapetenhobel @chrishamm
                      last edited by

                      @chrishamm
                      OK, I will give it a try and report back. Thanks

                      Sapphire Pro, Mini 5+, BLTouch, PanelDue 3 5"
                      Anycubic i3 Mega, SKR 1.4, Klipper

                      1 Reply Last reply Reply Quote 0
                      • Tapetenhobelundefined
                        Tapetenhobel
                        last edited by

                        @chrishamm
                        OK, obviously removing the square brackets fixed it. Out of curiosity, why are the brackets a problem on SBC?

                        Sapphire Pro, Mini 5+, BLTouch, PanelDue 3 5"
                        Anycubic i3 Mega, SKR 1.4, Klipper

                        1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators
                          last edited by dc42

                          G29 S0 (or G29 without parameters) does not support a filename parameter. See https://duet3d.dozuki.com/Wiki/Gcode#Section_G29_Mesh_bed_probe. This facility was supported when G29 was first introduced into RRF, but was removed subsequently because it required additional RAM. Use G29 S0 followed by G29 S3 to probe and save the height map to a named file.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA