• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    Tapetenhobel
    last edited by 23 Jan 2021, 22:05

    Hi,
    I replaced my Duet2 wifi with the mini and hooked it to a Raspberry Pi 4. Everything is running fine, but one of my macros fails when it's trying to read or save the heightmap.
    Errors are:

    Jan 23 15:42:33 duet3 DuetControlServer[5006]: [error] G29: Failed to load height map from file : Access to the path '/opt/dsf/sd/sys/' is denied.
    Jan 23 15:42:33 duet3 DuetControlServer[5006]: [info] 99 points probed, min error 0.004, max error 0.326, mean 0.157, deviation 0.085
    Jan 23 15:42:33 duet3 DuetControlServer[5006]: [info] Height map saved to file heightmap.csv
    Jan 23 15:42:33 duet3 DuetControlServer[5006]: [error] G29: Failed to save height map to file : Access to the path '/opt/dsf/sd/sys/' is denied.
    

    I'm using the official image, uploaded my, previously running, macros and the rest of the config, made some final touches and tried to print.
    The heightmap.csv is saved, but not with it's new name (65.0C_heightmap.csv) in sys.
    Are macros banned from reading and writing to sys?

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

    1 Reply Last reply Reply Quote 0
    • undefined
      Phaedrux Moderator
      last edited by 23 Jan 2021, 22:32

      Can you post the results of m122 please?

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • undefined
        Tapetenhobel
        last edited by 23 Jan 2021, 22:38

        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
        • undefined
          Phaedrux Moderator
          last edited by 23 Jan 2021, 22:43

          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

          undefined 1 Reply Last reply 23 Jan 2021, 22:50 Reply Quote 0
          • undefined
            Tapetenhobel @Phaedrux
            last edited by 23 Jan 2021, 22:50

            @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
            • undefined
              chrishamm administrators
              last edited by chrishamm 25 Jan 2021, 21:22

              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

              undefined 1 Reply Last reply 30 Jan 2021, 16:00 Reply Quote 0
              • undefined
                Tapetenhobel @chrishamm
                last edited by 30 Jan 2021, 16:00

                @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 30 Jan 2021, 17:18 Reply Quote 0
                • undefined
                  chrishamm administrators
                  last edited by 30 Jan 2021, 17:17

                  @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

                  undefined 1 Reply Last reply 30 Jan 2021, 18:21 Reply Quote 0
                  • Vetiundefined
                    Veti @Tapetenhobel
                    last edited by 30 Jan 2021, 17:18

                    @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
                    • undefined
                      Tapetenhobel @chrishamm
                      last edited by 30 Jan 2021, 18:21

                      @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
                      • undefined
                        Tapetenhobel
                        last edited by 30 Jan 2021, 20:27

                        @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 30 Jan 2021, 20:35

                          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
                          1 out of 12
                          • First post
                            1/12
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA