Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. presto
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 6
    • Posts 14
    • Best 1
    • Controversial 0
    • Groups 0

    Posts made by presto

    • CNC Pendant encoder not working

      Followed the official Duet3D CNC pendant documentation to set up using Arduino Pro Micro. I have verified the communication with a Duet 3 Mini 5 by using the emergency stop button. Only the encoder is not responsive. I have make sure to connect both +5V from the 4-core cable and +5V for the encoder to the VCC terminal.

      PXL_20240116_143441616.jpg

      Is there a way to troubleshoot the issue?

      posted in CNC
      prestoundefined
      presto
    • RE: System files successfully locked

      @adhanabal Any updates on this?

      posted in Duet Web Control
      prestoundefined
      presto
    • RE: Building PanelDue Firmware with Visual Code Studio

      @mfs12 Moved relevant files to VSCode toolkit directory solved the issue.

      posted in PanelDue
      prestoundefined
      presto
    • RE: Building PanelDue Firmware with Visual Code Studio

      Using default build system

      $ cmake -B build -DDEVICE="v3-7.0" .
      $ make -C build all -j12
      
      posted in PanelDue
      prestoundefined
      presto
    • Building PanelDue Firmware with Visual Code Studio

      Is there a way to build PanelDue firmware with VS Code? So far I am unsuccessful with the below errors.

      C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/src/Library/Thumbnail.cpp: In function 'bool ThumbnailDataIsValid(ThumbnailData&)':
      C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/src/Library/Thumbnail.cpp:38:19: warning: the address of 'ThumbnailData::buffer' will never be NULL [-Waddress]
         38 |         if (!data.buffer)
            |              ~~~~~^~~~~~
      In file included from C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/src/Library/Thumbnail.cpp:1:
      C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/src/Library/Thumbnail.hpp:28:23: note: 'ThumbnailData::buffer' declared here
         28 |         unsigned char buffer[1024];
            |                       ^~~~~~
      [ 95%] Generating paneldue.bin
      process_begin: CreateProcess(NULL, arm-none-eabi-objcopy -O binary paneldue.elf paneldue.bin, ...) failed.
      make (e=2): The system cannot find the file specified.
      make[2]: *** [paneldue.bin] Error 2
      make[2]: Leaving directory `C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/build'
      make[1]: *** [CMakeFiles/bin.dir/all] Error 2
      make[1]: Leaving directory `C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/build'
      make: *** [all] Error 2
      make: Leaving directory `C:/Users/Presto/Desktop/PanelDueFirmware-3.5.0-rc6/build'
      
      posted in PanelDue
      prestoundefined
      presto
    • RE: 3.5.0 beta 4, Unable to tune heater at low PWM

      Any updates?

      posted in Beta Firmware
      prestoundefined
      presto
    • RE: 3.5.0 beta 4, Unable to tune heater at low PWM

      @dc42 Just updated to 3.5.0 beta 4. M950 Q5 works normally at heating the bed. But when M303 tuning, DWC will still go into a reconnect loop. Below is the diagnostics after reset.

      === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.5.0-beta.4 (2023-06-08 23:40:14) running on Duet 3 Mini5plus WiFi (standalone mode)
      === RTOS ===
      Static ram: 102996
      Dynamic ram: 124172 of which 0 recycled
      Never used RAM 12032, free system stack 186 words
      Tasks: NETWORK(2,nWait,19.7%,219) HEAT(3,nWait,0.0%,333) Move(4,nWait,0.0%,358) CanReceiv(6,nWait,0.1%,672) CanSender(5,nWait,0.0%,337) CanClock(7,delaying,0.0%,351) TMC(4,nWait,1.2%,116) MAIN(1,running,72.3%,704) IDLE(0,ready,5.9%,29) AIN(4,delaying,0.8%,266), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:01:05 ago, cause: software
      Last software reset at 2023-06-14 15:41, reason: User, Gcodes spinning, available RAM 11676, slot 0
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00487000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      Aux0 errors 0,0,0
      MCU revision 3, ADC conversions started 65609, completed 65607, timed out 0, errs 0
      MCU temperature: min 42.4, current 43.5, max 43.9
      Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 99/8, heap memory allocated/used/recyclable 2048/192/84, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 5932, writes 13, timeouts 0, DMA errors 0, CC errors 0
      Driver 1: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 5932, writes 13, timeouts 0, DMA errors 0, CC errors 0
      Driver 2: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 5931, writes 13, timeouts 0, DMA errors 0, CC errors 0
      Driver 3: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 5931, writes 13, timeouts 0, DMA errors 0, CC errors 0
      Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 5932, writes 13, timeouts 0, DMA errors 0, CC errors 0
      Driver 5: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 5935, writes 10, timeouts 0, DMA errors 0, CC errors 0
      Driver 6: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 5934, writes 10, timeouts 0, DMA errors 0, CC errors 0
      Date/time: 2023-06-14 15:42:13
      Cache data hit count 111873654
      Slowest loop: 11.05ms; fastest: 0.15ms
      === Storage ===
      Free file entries: 19
      SD card 0 detected, interface speed: 22.5MBytes/sec
      SD card longest read time 1.0ms, write time 0.0ms, max retries 0
      === Move ===
      DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, ebfmin 0.00, ebfmax 0.00
      no step interrupt scheduled
      === DDARing 0 ===
      Scheduled moves 0, completed 0, 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, chamber heaters -1 -1 -1 -1, ordering errs 0
      === GCodes ===
      Movement locks held by null, 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
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0 0, running macro
      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 0x0000000
      Code queue 0 is empty
      Q1 segments left 0, axes/extruders owned 0x0000000
      Code queue 1 is empty
      === CAN ===
      Messages queued 12085, received 14080, lost 0, boc 0
      Longest wait 3ms for reply type 6053, peak Tx sync delay 102, free buffers 18 (min 17), ts 329/328/0
      Tx timeouts 0,0,0,0,0,0
      === Network ===
      Slowest loop: 11.69ms; fastest: 0.00ms
      Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      = WiFi =
      Interface state: active
      Module is connected to access point 
      Failed messages: pending 0, notready 0, noresp 0
      Firmware version 2.1beta4
      MAC address bc:ff:4d:e7:aa:88
      Module reset reason: Power up, Vcc 3.35, flash size 2097152, free heap 43044
      WiFi IP address 192.168.0.155
      Signal strength -36dBm, channel 3, mode 802.11n, reconnections 0
      Clock register 00002001
      Socket states: 0 0 0 0 0 0 0 0
      

      DWC Console

      6/14/2023, 3:41:16 PM	Connection established
      6/14/2023, 3:41:16 PM	Connection interrupted, attempting to reconnect...
      6/14/2023, 3:41:08 PM	Emergency stop, attemping to reconnect...
      6/14/2023, 3:41:07 PM	Connection established
      6/14/2023, 3:41:07 PM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      6/14/2023, 3:41:04 PM	Connection established
      6/14/2023, 3:41:04 PM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      6/14/2023, 3:41:01 PM	Connection established
      6/14/2023, 3:41:01 PM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      6/14/2023, 3:40:53 PM	Connection established
      6/14/2023, 3:40:53 PM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      6/14/2023, 3:40:50 PM	Connection established
      6/14/2023, 3:40:50 PM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      6/14/2023, 3:40:46 PM	Auto tune starting phase 1, heating up
      6/14/2023, 3:40:41 PM	M303 H0 S60 Y2
      Auto tuning heater 0 using target temperature 60.0°C and PWM 0.85 - do not leave printer unattended
      
      posted in Beta Firmware
      prestoundefined
      presto
    • RE: 3.5.0 beta 4, Unable to tune heater at low PWM

      @dc42 It is an AC silicone bed heater (240V supply voltage and 50Hz) with a DC-AC SSR.

      posted in Beta Firmware
      prestoundefined
      presto
    • RE: 3.5.0 beta 4, Unable to tune heater at low PWM

      @T3P3Tony No issues on DWC or PanelDue when heating bed. Do note that the low PWM does not work, the bed does not heat up until a heater fault occur which a reset is required.

      P/S

      M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
      

      Did a few test with different PWM ie Q5, Q10, Q100 all did not work in my case, bed does not heat up, auto-tune causes DWC to go into reconnect loop. Without the Q parameter all is normal.

      posted in Beta Firmware
      prestoundefined
      presto
    • 3.5.0 beta 4, Unable to tune heater at low PWM

      This maybe related to the recent post 3.5.0 beta 3 minimum PWM frequency. Issue as stated in title. Below are the details of the hardware & logs. Bed heater is driven by SSR with 5Hz PWM frequency at max PWM of 85%.

      Hardware and firmware info

      Product	              Short Name	    Version
      Duet 3 Mini 5+	       Mini5plus	3.5.0-beta.3+
      Duet 3 Expansion       TOOL1LC	        TOOL1LC 3.5.0-beta.3+
      Duet 3 Expansion       TOOL1LC	        TOOL1LC 3.5.0-beta.3+
      Duet WiFi Server	 n/a	        2.1beta4
      Duet Web Control	 DWC	        3.5.0-beta.3
      

      Tuning parameters

      M303 H0 S60 A31 Y2
      Auto tune starting phase 1, heating up
      Auto tuning heater 0 using target temperature 60.0°C and PWM 0.85 - do not leave printer unattended
      

      Bed heater config

      ; Bed Heater
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed Heater" ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" Q5 T0 ; create bed heater output on out0 and map it to sensor 0
      M140 H0 ; map heated bed to heater 0
      M143 H0 S105 ; set temperature limit for bed heater 0 to 105C
      M307 H0 S0.85 ; set max PWM to 85%
      

      DWC Console

      5/30/2023, 10:19:18 AM	Connection interrupted, attempting to reconnect...
      5/30/2023, 10:19:09 AM	Emergency stop, attemping to reconnect...
      5/30/2023, 10:19:04 AM	Connection established
      5/30/2023, 10:19:04 AM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      5/30/2023, 10:19:02 AM	Connection established
      5/30/2023, 10:19:02 AM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      5/30/2023, 10:18:58 AM	Connection established
      5/30/2023, 10:18:58 AM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      5/30/2023, 10:18:55 AM	Connection established
      5/30/2023, 10:18:55 AM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      5/30/2023, 10:18:52 AM	Connection established
      5/30/2023, 10:18:52 AM	Connection interrupted, attempting to reconnect...
      Operation failed (Reason: Service Unavailable)
      5/30/2023, 10:18:48 AM	M303 H0 S60 A31 Y2
      Auto tune starting phase 1, heating up
      Auto tuning heater 0 using target temperature 60.0°C and PWM 0.85 - do not leave printer unattended
      

      I am unable to issue M122 command as DWC is practically unusable. Physical reset is required.

      posted in Beta Firmware
      prestoundefined
      presto
    • RE: 3.5.0 beta 3+, M98: Call Macro/Subprogram in config.g

      @jay_s_uk Thanks! A simple fix indeed.

      posted in Beta Firmware
      prestoundefined
      presto
    • 3.5.0 beta 3+, M98: Call Macro/Subprogram in config.g

      After upgrading to 3.5.0 beta 3 then to 3+, I have noticed that the M98 command in config.g can only be called once. In summary config.g will execute multiple .g files to check whether stated variables exist.

      config.g

      ; Configuration file for ToolChanger 2 Tools (firmware version 3.5.0)
      
      ; General preferences
      M575 P1 S1 B115200                                 ; enable support for PanelDue
      G90                                                ; use absolute coordinates
      M83                                                ; use relative extruder moves
      M550 P"ToolChanger"                                 ; set printer name
      M669 K1                                            ; select CoreXY mode
      
      ; Wait a moment for the CAN expansion boards to start
      G4 S2
      
      ; Unselect all Tools
      T-1 P0
      
      ; Network
      M552 S1                                            ; enable network
      M586 P0 S1                                         ; enable HTTP
      M586 P1 S0                                         ; disable FTP
      M586 P2 S0                                         ; disable Telnet
      
      ; Drives
      M569 P0.0 S0 D2										; X  		drive map 0.0 (SpreadCycle)
      M569 P0.1 S0 D2										; Y  		drive map 0.1 (SpreadCycle)
      M569 P0.2 S1 D2										; Z1 		drive map 0.2 (SpreadCycle)
      M569 P0.3 S1 D2										; Z2 		drive map 0.3 (SpreadCycle)
      M569 P0.4 S0 D2										; COUPLER 	drive map 0.4 (SpreadCycle)
      M569 P20.0 S1 D2									; TOOL 0 EXTRUDER drive map 20.0 (SpreadCycle)
      M569 P21.0 S1 D2									; TOOL 1 EXTRUDER drive map 20.0 (SpreadCycle)
      
      M584 X0.0 Y0.1 Z0.2:0.3 C0.4 E20.0:21.0							; set drive mapping
      
      M350 X16 Y16 C16 E16:16 I1 										; configure XYCE 
      M350 Z16 I1														; configure Z 
      
      M92 X80.00 Y80.00 Z1600.00 C91 E335:335							; set steps per mm
      
      M566 X800.00 Y800.00 Z30.00 C2 E3000:3000					; set maximum instantaneous speed changes (mm/min)
      M203 X30000.00 Y30000.00 Z800.00 C25000.0 E6000:6000		; set maximum speeds (mm/min)
      M201 X3000.00 Y3000.00 Z500.00 C800.00 E5000:5000			; set accelerations (mm/s^2)
      M906 X1600 Y1600 Z1200 C450 E1050:1050 I40					; set motor currents (mA) and motor idle factor in per cent
      M84 S30														; Set idle timeout
      
      ; Default Pressure Advance
      M572 D0:1 S0.024
      
      ; Axis Limits
      M208 X0 Y0 Z0 C0 S1									; set axis minima
      M208 X358 Y360 Z340 C280 S0							; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"io2.in"								; configure switch-type (e.g. microswitch) endstop for low end on X via pin io2.in
      M574 Y1 S1 P"io3.in"								; configure sensorless endstop for low end on Y
      M574 Z1 S2 											; configure Z-probe endstop for low end on Z
      M574 C1 S3
      
      ; C-Axis Sensorless Homing
      ;M915 C S50 F0 R0
      
      ; Sensors
      M308 S50 P"20.temp1" Y"thermistor" T100000 B3950 A"Tool 0 Heatsink"		; create a sensor (50) for Tool 0 heatsink temperature
      M308 S51 P"20.mcu" Y"mcu-temp" A"Tool 0 MCU"							; create a sensor (51) for Tool 0 MCU temperature
      M308 S52 P"21.temp1" Y"thermistor" T100000 B3950 A"Tool 1 Heatsink"		; create a sensor (52) for Tool 1 heatsink temperature
      M308 S53 P"21.mcu" Y"mcu-temp" A"Tool 1 MCU"							; create a sensor (53) for Tool 1 MCU temperature
      M308 S54 P"temp1" Y"thermistor" T100000 B3950 A"Chamber"				; create a sensor (55) for Chamber
      
      ; Z-Probe
      M558 P5 C"^io5.in" H1 F60 T30000							; set Z probe type to switch and the dive height + speeds
      G31 P500 X0 Y0 Z1											; set Z probe trigger value, offset and trigger height
      M557 X40:318 Y70:340 P7										; define mesh grid
      M376 H5														; set set bed compensation taper to 5mm
      
      ; Bed pivot point
      M671 X-20:378 Y200:200 S10									;
      
      ; Bed Heater
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed Heater"	; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0											; create bed heater output on out0 and map it to sensor 0
      M140 H0														; map heated bed to heater 0
      M143 H0 S105												; set temperature limit for heater 0 to 105C
      
      ; Tool Heater
      M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Tool 0"		; configure PT1000 as thermistor on pin 20.temp0
      M950 H1 C"20.out0" T1										; create nozzle heater output on 20.out0 and map it to sensor 1	
      M143 H1 S300												; set temperature limit for heater 1 to 280C
      
      M308 S2 P"21.temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Tool 1"		; configure sensor 2 as thermistor on pin 21.temp0
      M950 H2 C"21.out0" T2										; create nozzle heater output on 21.out0 and map it to sensor 2
      M143 H2 S300												; set temperature limit for heater 2 to 300C
      
      ;M308 S3 P"22.temp0" Y"thermistor" T100000 B4725 C7.06e-8	; configure sensor 3 as thermistor on pin 22.temp0
      ;M950 H3 C"22.out0" T3                             			; create nozzle heater output on 22.out0 and map it to sensor 3
      ;M307 H3 B0 S1.00                                   		; disable bang-bang mode for heater and set PWM limit
      ;M143 H3 S300                                       		; set temperature limit for heater 3 to 300C
      
      ; Chamber Heater
      ;M308 S5 P"temp1" Y"thermistor" T100000 B3950 A"Heater"		; configure sensor 1 as chamber thermistor
      ;M950 H5 C"out2" T5                           				; create chamber heater output on out4 and map it to sensor 2
      ;M141 H5                                      				; map chamber to heater 2
      ;M307 H5 B1                            						; bang-bang mode for the chamber heater
      ;M143 H5 S65                                  				; set temperature limit for heater 2 to 60C
      
      ; Accelerometers
      M955 P20.0 I10	; specify orientation of accelerometer on Toolboard 1LC with CAN address 20.0
      M955 P21.0 I10	; specify orientation of accelerometer on Toolboard 1LC with CAN address 21.0
      
      ; Input Shaping Parameters
      ;M593 P"ei3" F43 S0.05
      
      ; Dock Switches
      M950 J0 C"20.!^io3.in"			; tool 0 dock switch
      M950 J1 C"21.!^io3.in"			; tool 1 dock switch
      ;M950 J2 C"22.!^io3.in"			; tool 2 dock switch
      ;M950 J3 C"23.!^io3.in"			; tool 3 dock switch
      
      ;Chassis Fans
      M950 F2 C"out4"										; create fan 2 on pin out5 and set its frequency
      M106 P2 C"Exhaust Fan" S0 H-1						; set fan 2 value. Thermostatic control is turned off
      
      ;Tools Fans
      M950 F3 C"20.out2+out2.tach"						; tool 0 hotend fan 
      M106 P3 S255 H1 T50 								; tool 0 hotend fan set to thermostatic, turns on at 50C at full speed
      M950 F4 C"!20.out1+out1.tach"						; tool 0 part cooling fan (PWM)
      M106 P4 C"T0 Fan" S0 H-1						; tool 0 part cooling fan
      
      M950 F5 C"21.out2+out2.tach"						; tool 1 hotend fan 
      M106 P5 S255 H2 T50 								; tool 1 hotend fan set to thermostatic, turns on at 50C at full speed
      M950 F6 C"!21.out1+out1.tach"						; tool 1 part cooling fan (PWM)
      M106 P6 C"T1 Fan" S0 H-1						; tool 1 part cooling fan
      
      ;M950 F7 C"22.out2+out2.tach"						; tool 2 hotend fan 
      ;M106 P7 S255 H3 T50 								; tool 2 hotend fan set to thermostatic, turns on at 50C at full speed
      ;M950 F8 C"!22.out1+out1.tach"						; tool 2 part cooling fan (PWM)
      ;M106 P8 C"Tool 2 Fan" S0 H-1						; tool 2 part cooling fan
      
      ;LED
      M950 F20 C"out5" Q500								; LED 1
      M106 P20 L5 X60 B0 C"LED 1" S0 H-1					; set LED 1 off on startup 
      
      M950 F21 C"out6" Q500								; LED 2
      M106 P21 L5 X60 B0 C"LED 2" S0 H-1					; set LED 2 off on startup 
      
      ;Buzzer
      M950 P30 C"out3" Q500								; configure buzzer
      
      ; Tools
      M563 P0 S"HT-Tool" D0 H1 F3:4						; define tool 0
      G10 P0 X21.4 Y42.5 Z-7.83							; set tool 0 axis offsets
      G10 P0 R0 S0										; set initial tool 0 active and standby temperatures to 0C
      
      M563 P1 S"STD-Tool" D1 H2 F5:6						; define tool 1
      G10 P1 X22.8 Y42.4 Z-6.43							; set tool 1 axis offsets [more positive indicates lower nozzle]
      G10 P1 R0 S0										; set initial tool 1 active and standby temperatures to 0C
      
      ;M563 P2 S"STD-Tool" D2 H4 F7:8						; define tool 2
      ;G10 P2 X23 Y41 Z-5.8								; set tool 2 axis offsets
      ;G10 P2 R0 S0										; set initial tool 2 active and standby temperatures to 0C
      
      ; Power Panic
      M911 S20 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
      
      ; Execute Global Variables
      global alert = 0
      global warning = 0
      M98 P"dock-offsets.g"
      M98 P"tool-cal-temp.g"
      
      ; Read from config-overide.g
      M501
      
      ; System Startup Self-Check
      M98 P"startup.g"
      

      dock-offsets.g

      global dock0_X = 29.775
      global dock0_Y = 399.212
      global dock1_X = 325.200
      global dock1_Y = 398.388
      

      tool-cal-temp.g

      global tool0_cal_temp = 190
      global tool1_cal_temp = 190
      

      startup.g

      ; Startup check for 2-tool ToolChanger
      
      ; Check for dock variables
      
      if exists(global.dock0_X) = false || exists(global.dock0_Y) = false || exists(global.dock1_X) = false || exists(global.dock1_Y) = false
      	M291 P"Dock location unknown, the printer will now run Dock calibration wizard. Click OK to continue." R"Startup Self-Check" S2
      	M98 P"dock-calibration.g"
      else
      	echo "Dock variables found."
      
      ; Check for tool Z calibration
      
      if exists(global.tool0_cal_temp) = false || exists(global.tool1_cal_temp) = false
      	M291 P"Tool Z height is not calibrated, the printer will now run Tool Z Height calibration wizard. Click OK to continue." R"Startup Self-Check" S2
      else
      	echo "Tool Z height calibrated."
      	echo "System self-check complete."
      

      During fresh boot, sometimes RRF will execute dock-offsets.g then startup.g skipping tool-cal-temp.g. At other times it will just run dock-offsets.g then ignoring the rest below it. I would like to know is this a intended feature, a bug or there are better ways to do it.

      posted in Beta Firmware
      prestoundefined
      presto
    • Deamon.g execution wait time to handle event triggers

      The current wait time for RRF to execute daemon.g file is 10 seconds. I have the following code in daemon.g with the global variables declared in config.g

      ;daemon.g
      
      while {global.alert} = 1
      	M42 P30 S0.2 	; beeper on
      	G4 P100		; wait 200ms
      	M42 P30 S0.8 	; beeper on
      	G4 P100		; wait 200ms
      	M42 P30 S0 	; beeper off
      	G4 S1		; delay 1 second
      
      while {global.warning} = 1
      	M106 P9 S255	; LED 1 on
      	M106 P10 S255	; LED 2 on
      	M42 P30 S0.7 	; beeper on
      	G4 P100		; delay 100ms
      	M106 P9 S0	; LED 1 off
      	M106 P10 S0	; LED 2 off
      	M42 P30 S0 	; beeper off
      	G4 P100		; delay 100ms
      

      For example with an event, let's say a filament runout event that will send,

      set global.alert = 1
      

      It will potentially take up to 10 seconds for the command in daemon.g to execute even though it is in a while loop. Before RRF 3.3 the wait time was 1 seconds which is ideal but may potential take up precious computing resources. Is there anyway for a user to decrease the wait time? Or even better for it to be a configurable amount of time in gcode or Duet Web Control for future RRF and DWC releases.

      posted in General Discussion
      prestoundefined
      presto