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

    [3.5.0-rc.1] Variable occasionally not found

    Scheduled Pinned Locked Moved
    Beta Firmware
    4
    14
    656
    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.
    • timschneiderundefined
      timschneider @timschneider
      last edited by

      This post is deleted!
      timschneiderundefined 1 Reply Last reply Reply Quote 0
      • timschneiderundefined
        timschneider @timschneider
        last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • timschneiderundefined
          timschneider @dc42
          last edited by

          @dc42
          ok, i had to reread your message again to understand what I should do 🙂

          new printing job with added M122 after the echo 10

          G10 P0 S180 ; sets the temperature
          M140 P0 S90 ; set bed temp
          
          M107                                        ; fan off
          M144 P0 S1                                  ; activate bed 1 heater
          T0                                          ; select tool 0
          M98 P"0:/sys/meltingplot/home_if_necessary" ; check homing
          G29 S1                                      ; load stored hight map
          
          M83 ; use relative distances for extrusion
          G90 ; use absolute coordinates
          G21 ; set units to millimeters
          
          M116                                        ; wait for all heaters
          
          G11 ; unretract
          
          G1 Z300 F3600                               ; raise z=20mm
          
          G53 G1 X50 Y50 F14400                       ; move printhead to center
          
          G92 E0                                       ; reset e-steps
          
          var testVar1 = 0
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          M122
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          set var.testVar1 = var.testVar1 + 1
          echo var.testVar1
          G4 P100
          
          
          G10                                          ; retract
          G10 P0 R0 S0                        ; disable hotend
          M140 S0 R0                          ; set bed heater to 0°
          M140 P0 S-273.1                     ; disable bed heater
          T-1                                          ; unselect tool
          

          content of 0:/sys/meltingplot/home_if_necessary

          if move.axes[0].homed == false || move.axes[1].homed == false || move.axes[2].homed == false 
            G28 ; home all axes
          

          result in next post.

          3fa7ef87-9915-4bef-9115-a0d2c59bf659-grafik.png

          timschneiderundefined 1 Reply Last reply Reply Quote 0
          • timschneiderundefined
            timschneider @timschneider
            last edited by

            @timschneider

            27.11.2023, 19:07:23 	=== Diagnostics ===
            RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.1 (2023-08-31 16:19:24) running on Duet 3 MB6HC v1.02 or later (SBC mode)
            Board ID: 08DJM-9P63L-DJ3T8-6JKD4-3SJ6K-9A77A
            Used output buffers: 1 of 40 (17 max)
            === RTOS ===
            Static ram: 154852
            Dynamic ram: 87620 of which 4216 recycled
            Never used RAM 95920, free system stack 138 words
            Tasks: SBC(2,rWait:,0.7%,406) HEAT(3,nWait,0.0%,325) Move(4,nWait,0.0%,241) CanReceiv(6,nWait,0.0%,941) CanSender(5,nWait,0.0%,335) CanClock(7,delaying,0.0%,343) TMC(4,nWait,8.6%,61) MAIN(2,running,90.2%,137) IDLE(0,ready,0.4%,30), total 100.0%
            Owned mutexes: File(MAIN)
            === Platform ===
            Last reset 00:11:35 ago, cause: power up
            Last software reset at 2023-11-27 09:02, reason: User, Gcodes spinning, available RAM 124940, slot 0
            Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
            Error status: 0x00
            MCU temperature: min 22.7, current 33.2, max 33.6
            Supply voltage: min 0.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
            12V rail voltage: min 0.1, current 12.2, max 12.9, under voltage events: 0
            Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/12, gc cycles 0
            Events: 0 queued, 0 completed
            Driver 0: standstill, SG min 0, mspos 552, reads 16149, writes 31 timeouts 0
            Driver 1: standstill, SG min 0, mspos 168, reads 16149, writes 31 timeouts 0
            Driver 2: standstill, SG min 0, mspos 456, reads 16144, writes 36 timeouts 0
            Driver 3: standstill, SG min 0, mspos 216, reads 16144, writes 36 timeouts 0
            Driver 4: standstill, SG min 0, mspos 8, reads 16144, writes 36 timeouts 0
            Driver 5: standstill, SG min 0, mspos 4, reads 16159, writes 21 timeouts 0
            Date/time: 2023-11-27 19:07:22
            Slowest loop: 489.59ms; fastest: 0.06ms
            === Storage ===
            Free file entries: 20
            SD card 0 not detected, interface speed: 37.5MBytes/sec
            SD card longest read time 0.0ms, write time 0.0ms, max retries 0
            === Move ===
            DMs created 125, segments created 22, maxWait 458419ms, bed compensation in use: mesh, height map offset 0.000, ebfmin 0.00, ebfmax 0.00
            no step interrupt scheduled
            Moves shaped first try 19, on retry 0, too short 0, wrong shape 19, maybepossible 0
            === DDARing 0 ===
            Scheduled moves 79, completed 79, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
            === DDARing 1 ===
            Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
            === Heat ===
            Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
            Heater 0 is on, I-accum = 1.0
            Heater 1 is on, I-accum = 0.2
            === GCodes ===
            Movement locks held by null, null
            HTTP* is idle in state(s) 0
            Telnet is idle in state(s) 0
            File* is doing "M122" 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
            File2* is idle in state(s) 0
            Queue2 is idle in state(s) 0
            Q0 segments left 0, axes/extruders owned 0x80000003
            Code queue 0 is empty
            Q1 segments left 0, axes/extruders owned 0x0000000
            Code queue 1 is empty
            === Filament sensors ===
            Extruder 0: pos 0.00, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
            === CAN ===
            Messages queued 6108, received 0, lost 0, boc 0
            Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 3477/0/0
            Tx timeouts 0,0,3476,0,0,2630 last cancelled message type 30 dest 127
            === SBC interface ===
            Transfer state: 5, failed transfers: 0, checksum errors: 0
            RX/TX seq numbers: 26561/26561
            SPI underruns 0, overruns 0
            State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x25a98
            Buffer RX/TX: 0/0-0, open files: 0
            === Duet Control Server ===
            Duet Control Server version 3.5.0-rc.1 (2023-09-01 07:22:07)
            File+ProcessInternally:
            > Executing set var.testVar1 = var.testVar1 + 1 (30 more codes pending)
            File /opt/dsf/sd/gcodes/variable-gcode.gcode is selected, processing
            Failed to deserialize the following properties:
            - MoveSegmentation -> Int32 from 1.0
            Code buffer space: 4096
            Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
            Full transfers per second: 4.02, max time between full transfers: 234.0ms, max pin wait times: 34.4ms/1.4ms
            Codes per second: 0.05
            Maximum length of RX/TX data transfers: 4380/916
            
            timschneiderundefined 1 Reply Last reply Reply Quote 0
            • timschneiderundefined
              timschneider @timschneider
              last edited by

              @dc42
              some more infos from system log (journalctl -xe). I'm able to reproduce the error, so the following is a log from today.

              Nov 28 09:23:54 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [info] Finished macro file 0:/sys/bed.g
              Nov 28 09:24:02 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [info] Finished macro file 0:/sys/homez.g
              Nov 28 09:24:02 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [info] Finished macro file homeall.g
              Nov 28 09:24:02 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [info] Finished macro file 0:/sys/meltingplot/home_if_necessary
              Nov 28 09:24:03 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [info] 1
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] File2: Failed to execute code set var.testVar1 = var.testVar1 + 1 on internal processing stage
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 245
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] in job file (channel File2) line 68: unknown variable 'var.testVar1'
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [warn] DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 245
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.FileExecution.Job.DoFilePrint(CodeFile file) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/FileExecution/Job.cs:line 371
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] File2: Failed to execute code set var.testVar1 = var.testVar1 + 1 on internal processing stage
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 245
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:05 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] in job file (channel File2) line 72: unknown variable 'var.testVar1'
              
              
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: Maximum length of RX/TX data transfers: 4427/916
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] File: Failed to execute code set var.testVar1 = var.testVar1 + 1 on internal processing stage
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 245
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] in job file (channel File) line 68: unknown variable 'var.testVar1'
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [warn] DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: unknown variable 'var.testVar1'
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 245
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.FileExecution.Job.DoFilePrint(CodeFile file) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/FileExecution/Job.cs:line 371
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] File: Failed to execute code echo var.testVar1 on internal processing stage
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    DuetAPI.CodeParserException: in GCode file line 66: unknown variable 'testVar1'
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Model.Expressions.EvaluateExpression(Code code, String expression, Boolean onlySbcFields, Boolean encodeResult) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Model/Expressions.cs:line 886
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Model.Expressions.Evaluate(Code code, Boolean evaluateAll) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Model/Expressions.cs:line 314
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Handlers.Keywords.Process(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Handlers/Keywords.cs:line 141
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Commands.Code.ProcessInternally() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Commands/Generic/Code.cs:line 228
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]:    at DuetControlServer.Codes.Pipelines.ProcessInternally.ProcessCodeAsync(Code code) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Codes/Pipelines/ProcessInternally.cs:line 30
              Nov 28 09:24:21 Meltingplot-MBL-480-vaswsq DuetControlServer[1828]: [error] in job file (channel File) line 69: in GCode file line 66: unknown variable 'testVar1'
              
              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @timschneider
                last edited by

                @timschneider thanks, looks like this issue may be specific to SBC mode. I'll ask @chrishamm to take a look.

                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

                timschneiderundefined 1 Reply Last reply Reply Quote 0
                • timschneiderundefined
                  timschneider @dc42
                  last edited by

                  @dc42
                  yes, i don't see this kind of error in standalone mode.

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

                    @timschneider Thanks, I've got a bug fix ready for v3.4 and v3.5. I suggest you use conditional G-code only in macro files until a new version is available.

                    Duet software engineer

                    timschneiderundefined 1 Reply Last reply Reply Quote 1
                    • timschneiderundefined
                      timschneider @chrishamm
                      last edited by timschneider

                      @chrishamm
                      Hi @chrishamm , thank you for fixing my issue lightning fast - but unfortunately the problem from @niocio01 must be something else, cause as far as I know, the daemon.g is running in the macro branch and is not related to the job processor. I thought it is related due to the message and the G4 in the daemon.g.

                      Maybe he is hitting some special value?
                      For example

                      var testVar1 = 99E9999999999999999999999
                      

                      will crash the duet RRF. Is there a value which is able to reset, unset a variable?

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

                        @timschneider thanks for pointing out the bug in RRF when you try to set a variable to that very large value. I will fix it in the 3.5 source code.

                        I suggest you use

                        var testVar1 = null
                        

                        instead.

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