Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. marvineer
    • Profile
    • Following 0
    • Followers 0
    • Topics 17
    • Posts 49
    • Best 8
    • Controversial 0
    • Groups 0

    marvineer

    @marvineer

    13
    Reputation
    8
    Profile views
    49
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Website marvin-manderscheid.de Location Germany Age 26

    marvineer Unfollow Follow

    Best posts made by marvineer

    • RE: PanelDue ATX power supply on off toggle?

      Hi,

      Unfortunately, this button does not currently exist.
      But: You can write a macro that you save directly in the /macros folder, e.g. ATX toggle.

      if state.status == "off" 
      	; turn on power
      	M80
      elif state.status != "processing"
      	; turn off power
      	M81
      
      

      This will then be displayed on the Control tab of your PanelDue.

      posted in PanelDue
      marvineerundefined
      marvineer
    • RE: [3.5.0 RC3] Printer is realy slow in X/Y suddenly

      @droftarts I have found the issue, I suppose this is one for SuperSlicer...

      The g-code exported from SuperSlicer 2.5.59 contains a M204 P0 T0. This was certainly not the case in the past.

      I changed the following: Printer Settings > Machine limits > How to apply limits = "Disable"
      Before this, it was set to "Use only as safeguards", but that and even "Use also for time estimate" gave an output of M204 P0 T0 ?!

      I tested it with the change and can now print like normal (even on RC3). So case closed for you guys 😄

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • Suppress undervoltage warning while using M81

      Since the pin logic of the ATX control pin can now be inverted (thanks for that, btw!) I started to implement M80/M81 to my tool changer setup with a MeanWell power supply. While this is working so far, I have a observation to share:
      Every time M81 executes I get the following warning message in DWC and PanelDue:

      Warning: 12V under-voltage event (9.4V)

      IMO this should be suppressed because this is exactly what should happen in this case. Just a small detail but it could clarify some confusion if implemented. 🙂

      posted in Firmware wishlist
      marvineerundefined
      marvineer
    • RE: Adding a Pause, continue prob

      @brian said in Adding a Pause, continue prob:

      {REPLACE "\n; layer 18, Z = " "\n; layer 18\nG1 X0 Y0\nM300\nM0 Click to continue\n; layer 18 "}

      Where is this generated, what slicer are you using?

      From what I can see the g-code produced from this containes a "M0" - that says: Stop or Unconditional stop (see docs here)
      So the printer is actually doing what you told it to 😄

      if you want to pause the print at a specific height you should use "M226" in your g-code (see here)

      posted in General Discussion
      marvineerundefined
      marvineer
    • common toolchange macros (run "tpost.g" if "tpost#.g" not found)

      Hi together,

      I am in the process of refactoring all the macro files of my E3D ToolChanger - it got quite some conditional gcode happending.

      As for tool changing, each tool has its own tpre#.g, tpost#.g and tfree#.g, despite having almost the same content. To eliminate this redundancy I created a 'global' tpre.g, tpost.g and tfree.g for all tools. Now I call each of those macros with a parameter (param.T).

      With this change I can put together a common logic for all tools and call it in each specific file via 'M98 P"tpre.g" T#'.

      Example of the 'global' tfree.g:

      ; tfree.g
      ; can be called with param.T: tool number to be freed
      
      ; abort if axes are not homed: 0:X 1:Y 2:Z 4:C
      if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[4].homed
      	M291 T5 P"Please home axes before a toolchange" R"Cannot change tool"
      	abort
      
      ; create vars
      var toolXpos = 0
      var toolYpos = 0
      ; set tool dock position (and check for valid num)
      if param.T == 0
      	set var.toolXpos = -157.7
      	set var.toolYpos = 115.5
      elif param.T == 1
      	set var.toolXpos = -67.5
      	set var.toolYpos = 115.7
      elif param.T == 2
      	set var.toolXpos = 61.3
      	set var.toolYpos = 115.3
      elif param.T == 3
      	set var.toolXpos = 170.0
      	set var.toolYpos = 115.2
      else
      	M291 "var.toolXpos or var.toolYpos was not set" R"error in tfree.g"
      	abort
      
      ; drop the bed
      G91
      G1 H4 Z5 F1200
      G90
      
      ; move to location
      G53 G1 X{var.toolXpos} Y55 F40000
      ; move in
      G53 G1 Y110 F4000
      ; move slowly to final position
      G53 G1 Y{var.toolYpos} F2500
      
       ; open coupler
      M98 P"/macros/Coupler/unlock.g"
      
      ; move out
      G53 G1 Y113 F2000					    
      G53 G1 Y110 F4000
      G53 G1 Y100 F6000
      
      

      Example of tfree1.g:

      ; tfree1.g
      ; called when tool 1 is freed
      M98 P"tfree.g" T1
      
      

      This works well so far, but I would like to get rid of the individual toolchange files.
      Therefore I would like to discuss the following ideas for calling tool change macros in RRF (changes are bold) :

      1. If another tool is already selected, run macro tfree#.g where # is the number of that tool. If tfree#.g is not found, run tfree.g (with parameter T = #) instead.

      2. If another tool is already selected, deselect it and set its heaters to their standby temperatures (as defined by the R parameter in the most recent G10/M568 command for that tool)

      3. Run macro tpre#.g where # is the number of the new tool. If tpre#.g is not found run tpre.g (with parameter T = #) instead.

      4. Set the new tool to its operating temperatures specified by the S parameter in the most recent G10/M568 command for that tool

      5. Run macro tpost#.g where # is the number of the new tool. If tpost#.g is not found run tpost.g (with parameter T = #) instead.

      6. Apply any X, Y, Z offset for the new tool specified by G10

      7. Use the new tool.


      What do you guys think? Is this a good idea or am I proposing a solution where no one has a problem?

      posted in Firmware wishlist
      marvineerundefined
      marvineer
    • RE: [3.5.0 RC3] Printer is realy slow in X/Y suddenly

      @oliof I was about to, but someone was faster (issue was from 3 weeks ago). It even seems fixed for the next release:
      https://github.com/supermerill/SuperSlicer/issues/4048

      timschneider created this issue in supermerill/SuperSlicer

      closed [BUG] M204 P0 T0 in RepRapFirmware #4048

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • RE: Plugin installation failed: package manager exited with code 67

      @chrishamm said in Plugin installation failed: package manager exited with code 67:

      PS: That's a DCS log excerpt and nothing from the root DPS service.

      Sorry, I copied the wrong output ... I have edited my post above

      posted in Plugins for DWC and DSF
      marvineerundefined
      marvineer
    • RE: common toolchange macros (run "tpost.g" if "tpost#.g" not found)

      @Exerqtor have a look at this:
      Added support for tool macro fallbacks (commit)

      It is already included in the latest version (3.5.0-beta.4).

      posted in Firmware wishlist
      marvineerundefined
      marvineer

    Latest posts made by marvineer

    • RE: BtnCmd not loading after Update from 3.6 rc2 to 3.6-rc3

      @MintyTrebor perfect, now it starts. Thanks a lot!

      posted in Plugins for DWC and DSF
      marvineerundefined
      marvineer
    • BtnCmd not loading after Update from 3.6 rc2 to 3.6-rc3

      Hi @MintyTrebor or anyone

      1a2eade1-386a-4c92-bb15-a856d117fdcb-image.png
      I get this error message after trying to start your plugin.

      I then tried upgrading it from BtnCmd 01.03.07 to BtnCmd 01.03.08 - same message althow the update process seems to have worked.

      I have cleared cache and reload from a different browser (chrome and firefox, but the error persisted)

      chrome F12 gives the folloing:

      VBtn.ts:164 TypeError: Cannot read properties of undefined (reading 'call')
          at __webpack_require__ (bootstrap:19:32)
          at ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/plugins/BtnCmd/BtnCmdChart.vue?vue&type=script&lang=ts (BtnCmd.e9538c62.js:10:51309)
          at __webpack_require__ (bootstrap:19:32)
          at ./src/plugins/BtnCmd/BtnCmdChart.vue?vue&type=script&lang=ts (BtnCmd.e9538c62.js:1:29632)
          at __webpack_require__ (bootstrap:19:32)
          at ./src/plugins/BtnCmd/BtnCmdChart.vue (BtnCmd.e9538c62.js:1:1397)
          at __webpack_require__ (bootstrap:19:32)
          at ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/plugins/BtnCmd/BtnCmdCustomPanel.vue?vue&type=script&lang=js (BtnCmd.e9538c62.js:10:70491)
          at __webpack_require__ (bootstrap:19:32)
          at ./src/plugins/BtnCmd/BtnCmdCustomPanel.vue?vue&type=script&lang=js (BtnCmd.e9538c62.js:1:32096)
      

      Any ideas on that? 🙂

      posted in Plugins for DWC and DSF
      marvineerundefined
      marvineer
    • RE: [3.6.0-rc.2] changed behaviour while homing on coreXY

      @dc42 Hi! I have increased the motor current to 40 percent during homing -> still the same
      I have reduced the speed even further but still the same.
      I do not notice the clicking sound of skipped steps either, so I still think there are no steps being sent to the right motor (looking from the front)

      I am out of ideas, but maybe you have something to try for me?

      This is the response of M122:

      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.6.0-rc.2 (2025-03-31 12:17:13) running on Duet 3 MB6HC v1.0 or earlier (SBC mode)
      Board ID: 08DJM-956L2-G43S4-6JTD4-3SS6J-TA7GH
      Used output buffers: 1 of 40 (36 max)
      === RTOS ===
      Static ram: 137420
      Dynamic ram: 101532 of which 356 recycled
      Never used RAM 104604, free system stack 142 words
      Tasks: SBC(2,nWait 7,1.9%,793) HEAT(3,nWait 6,0.0%,325) Move(4,nWait 6,0.0%,242) TMC(4,nWait 6,3.0%,343) CanReceiv(6,nWait 1,0.1%,796) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,350) MAIN(1,running,94.6%,101) IDLE(0,ready,0.4%,29) USBD(3,blocked,0.0%,149), total 100.0%
      Owned mutexes: HTTP(MAIN)
      === Platform ===
      Last reset 00:04:31 ago, cause: power up
      Last software reset at 2025-04-06 15:09, reason: User, Platform spinning, available RAM 104084, slot 2
      Software reset code 0x2000 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0043c000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
      === 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 ===
      Segments created 6, maxWait 126600ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
      Pos req/act/dcf: -31536.00/-31536/0.00 -2000.00/-2000/0.00 16000.00/16000/0.00 0.00/0/0.00 0.00/0/0.00
      Next step interrupt due in 9 ticks, disabled
      Driver 0: standstill, SG min 14, mspos 8, reads 18409, writes 26 timeouts 0
      Driver 1: standstill, SG min 40, mspos 776, reads 18403, writes 32 timeouts 0
      Driver 2: standstill, SG min 26, mspos 696, reads 18403, writes 32 timeouts 0
      Driver 3: standstill, SG min n/a, mspos 8, reads 18417, writes 18 timeouts 0
      Driver 4: standstill, SG min n/a, mspos 8, reads 18417, writes 18 timeouts 0
      Driver 5: standstill, SG min n/a, mspos 8, reads 18417, writes 18 timeouts 0
      Phase step loop runtime (us): min=0, max=38, frequency (Hz): min=1865, max=2148
      === DDARing 0 ===
      Scheduled moves 12, completed 12, LaErrors 0, Underruns [0, 0, 0]
      Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
      Code queue is empty
      === DDARing 1 ===
      Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
      Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
      Code queue is empty
      === Heat ===
      Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering errs 0
      === GCodes ===
      Movement locks held by null, 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
      File2 is idle in state(s) 0
      Queue2 is idle in state(s) 0
      === Filament sensors ===
      Driver 29: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
      === CAN ===
      Messages queued 2321, received 8507, lost 0, ignored 0, errs 0, boc 0
      Longest wait 1ms for reply type 6028, peak Tx sync delay 329, free buffers 50 (min 49), ts 1287/1286/0
      Tx timeouts 0,0,0,0,0,0
      === SBC interface ===
      Transfer state: 5, failed transfers: 0, checksum errors: 0
      RX/TX seq numbers: 41930/41930
      SPI underruns 0, overruns 0
      State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x27a7c
      Buffer RX/TX: 0/0-0, open files: 0
      === Duet Control Server ===
      Duet Control Server version 3.6.0-rc.2 (2025-03-31 10:53:52, 64-bit)
      HTTP+Executed:
      > Executing M122
      Code buffer space: 4096
      Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
      Full transfers per second: 0.31, max time between full transfers: 141.5ms, max pin wait times: 27.1ms/15.0ms
      Codes per second: 0.00
      Maximum length of RX/TX data transfers: 5013/796
      

      And this is my config.g:

      ; here we define everything connected to the main board
      
      ; General preferences
      G90                                                                  ; send absolute coordinates...
      M83                                                                  ; ...but relative extruder moves
      M550 P"MultiPrint"                                                   ; set printer name
      M669 K1                                                              ; select CoreXY mode
      M80 C"!pson"                                                         ; invert the PS_ON output for Meanwell power supply
      
      
      ; Network
      ;M552 P0.0.0.0 S1                                                    ; enable network and set IP address
      ;M553 P255.255.255.0                                                 ; set netmask
      ;M554 P192.168.1.254                                                 ; set gateway
      ;M586 P0 S1                                                          ; enable HTTP
      ;M586 P1 S0                                                          ; disable FTP
      ;M586 P2 S0                                                          ; disable Telnet
      
      
      ; PanelDue 5.0i with custom logo
      M575 P1 S1 B115200
      
      
      ; wait for expansion boards to start
      G4 S1
      
      ; lower SPI transfer max wait Time for quicker system respone (default 25 ms and 5ms if file open)
      ; ignore this if 3 or more events are in queue
      M576 S6 F3 P3
      
      
      ; Define inputs and their trigger if necessary
      M950 J5 C"^io5.in"                                                   ; input 5 - ActiveToolDetect (Tool Detect Switch)
      
      M950 J6 C"^io7.in"                                                   ; input 6 - OpenDoorDetect
      M581 P6 T2 S1 R0                                                     ; define rising edge trigger --> door opened (trigger2.g)
      M581 P6 T3 S0 R0                                                     ; define falling edge trigger --> door closed (trigger3.g)
      M582 T2                                                              ; check for trigger (necessary, we might start with door open)
      
      M950 J7 C"^io8.in"                                                   ; input 7 - E-Stop (trigger 0)
      M581 P7 T0 S1 R0                                                     ; define rising edge trigger --> emergency stop (M112) (NOT-HALT)
      
      ; check if e-stop is triggerd at startup
      if sensors.gpIn[7].value == 1
      	M291 T0 P"pull e-stop and reset machine to continue" R"e-stop is active"
      	M300
      	M582 T0
      	abort "e-stop is active - pull e-stop and reset machine to continue"
      
      ; Lights
      M950 P0 C"1.out1" Q500                                               ; main
      M950 P1 C"1.out0" Q500                                               ; head
      if sensors.gpIn[6].value == 1
      	; door is closed
      	M98 P"/macros/Lights/set.g" D"main" B0.75                           ; turn on main light
      else
      	M98 P"/macros/Lights/set.g" D"main" B0.05
      
      ; LED Strip
      M950 E0 U18 T1 C"0.led"
      
      
      ; Drives                   D3: stealthChop2            V4000: switch from stealthChop to to spreadCycle mode at 0.1 mm/sec speed (quiet at standstill) 
      M569 P0.2 S0                                                         ; physical drive 0.2 goes backwards   (X  - Axis)
      M569 P0.1 S0                                                         ; physical drive 0.1 goes backwards   (Y  - Axis)
      M569 P0.0 S1                                                         ; physical drive 0.0 goes forwards    (Z  - Axis)
      M569 P0.3 S0                                                         ; physical drive 0.3 goes backwards   (C  - COUPLER)
      M569 P1.0 S1                                                         ; physical drive 1.0 goes forwards    (B  - BRUSH)
      M569 P0.4 S1                                                         ; physical drive 0.4 goes forwards    (E0 - V6)
      M569 P0.5 S1                                                         ; physical drive 0.5 goes forwards    (E1 - Volcano)
      M569 P121.0 S0                                                       ; physical drive 121.0 goes forwards  (E2 - HighTemp Direct)
      
      M584 X0.2 Y0.1 Z0.0 C0.3 B1.0 E0.4:0.5:121.0                         ; set drive mapping
      M350 X16 Y16 Z16 B16 E16:16:16    I1                                 ; configure microstepping with interpolation
      M350 C16 I0                                                          ; configure microstepping without interpolation
      M92 X100 Y100 Z1600 C91.022 B128 E400:400:400                        ; set steps per mm
      M98 P"/macros/Speeds/set_speed.g" S"startup"                         ; set speeds, jerk and accel. for the beginning
      M566 Z20 C2 B8 E450:900:450                                          ; set maximum instantaneous speed changes (mm/min)
      M203 Z800 C8000 B1000 E4500:5500:4500                                ; set maximum speeds (mm/min)
      M201 Z400 C500 B500 E10000:23000:6000                                ; set accelerations (mm/s^2)
      M906 X1800 Y1800 Z1130 B500 I20                                      ; set motor currents (mA) and motor idle factor in per cent (X Y Z B)
      M906 C500 E1000:1000:1000 I10                                        ; set motor currents (mA) and motor idle extruder motors to 10%
      M84 S15                                                              ; Set idle timeout
      
      
      ;spindle
      M950 R0 C"^vfd" Q900 L10000                                          ; Spindle 0 uses out9/vfd as RPM pin with 200 Hz PWM freq and has a max RPM of 10000
      
      ; limits
      M98 P"/macros/Boundaries/ToolHead.g"                                 ; set dynamic axis Limits
      M208 Z0:264.6 C-45:360 B0:23                                         ; set static axis limits (min:max)
      
      
      ; Endstops
      M574 X1 S1 P"^io3.in"                                                ; configure active-high endstop for low end on X via pin ^io1.in
      M574 Y1 S1 P"^io4.in"                                                ; configure active-high endstop for low end on Y via pin ^io2.in
      M574 Z2 S1 P"^io2.in"                                                ; configure active-high endstop for high end on Z via pin ^io7.in
      M574 C0                                                              ; No C endstop
      M574 B1 S1 P"^1.io3.in"                                              ; configure active-high endstop for low end on B via pin ^io5.in
      
      ; Z-Probe
      M558 P8 C"io1.in" H2.5:0.7 F600:300 I0 A8 S0.003 T20000              ; set Z probe type to switch and the dive height + speeds
      G31 P200 X0 Y0 Z0                                                    ; set Z probe trigger value, offset and trigger height
      M557 X-140:140 Y-90:90 S20:30                                        ; Define mesh grid
      
      
      ;Stall Detection
      M915 X Y S5 F1 R1                                                    ; X and Y Axes
      
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" A"Bed" T100000 B4138                  ; configure sensor 0 as thermistor on pin temp0
      ; BED                                                                ; correction val for port "temp0": H=-19; L=0
      M950 H0 C"out0" T0 Q5                                                ; create bed heater output on out0 and map it to sensor 0 with a PWM freq of 5 Hz
      M307 H0 B0 R1.240 C413.8 D3.17 S1                                    ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                              ; map heated bed to heater 0
      M143 H0 S200                                                         ; set temperature limit for bed heater 0 to 200C
      
      M308 S1 P"temp1" Y"thermistor" A"T0" T100000 B4138                   ; configure sensor 1 as thermistor on pin temp3
      ; TOOL 0                                                             ; correction val for port "temp3": H=-7; L=13
      M950 H1 C"out1" T1                                                   ; create nozzle heater output on out3 and map it to sensor 1 
      M307 H1 R2.320 K0.406:0.085 D5.66 E1.35 S1.00 B0 V24.0               ; disable bang-bang mode for heater and set PWM limit
      M143 H1 S285                                                         ; set temperature limit for heater 1 to 285C
      
      M308 S2 P"temp2" Y"thermistor" A"T1" T100000 B4138                   ; configure sensor 2 as thermistor on pin temp3
      ; TOOL 1                                                             ; correction val for port "1.temp0": H=-6; L=3
      M950 H2 C"out2" T2                                                   ; create nozzle heater output on 1.out1 and map it to sensor 2    
      M307 H2 R2.016 K0.366:0.030 D5.70 E1.35 S1.00 B0 V24.5               ; disable bang-bang mode for heater and set PWM limit
      M143 H2 S285                                                         ; set temperature limit for heater 2 to 285C
      
      M308 S3 P"121.temp0" Y"thermistor" A"T2" T100000 B4138               ;configure sensor 3 as thermistor on pin 121.temp0
      ; TOOL 2                                                             ; correction val for port "121.temp0": H=-13; L=0
      M950 H3 C"121.out0" T3                                               ; create nozzle heater output on 121.out0 and map it to sensor 3
      M307 H3 R2.409 K0.350:0.180 D5.36 E1.35 S1.00 B0 V23.9               ; disable bang-bang mode for heater  and set PWM limit
      M143 H3 S250                                                         ; set temperature limit for heater 3 to 250C
      
      
      ; Fans
      M950 F0 C"out4" Q500                                                 ; create fan 0 on pin out9 and set its frequency
      M106 P0 S0 H-1 L0.2 C"T0"                                            ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out7" Q500                                                 ; create fan 1 on pin out8 and set its frequency
      M106 P1 S1 H1 T60                                                    ; set fan 1 value. Thermostatic control is turned on
      
      M950 F2 C"out5" Q500                                                 ; create fan 2 on pin 1.out6 and set its frequency
      M106 P2 S0 H-1 L0.2 C"T1"                                            ; set fan 2 value. Thermostatic control is turned off
      M950 F3 C"out8" Q500                                                 ; create fan 3 on pin 1.out7 and set its frequency
      M106 P3 S1 H2 T60                                                    ; set fan 3 value. Thermostatic control is turned on
      
      M950 F4 C"121.out1" Q500                                             ; create fan 4 on pin 121.out1 and set its frequency
      M106 P4 S0 H-1 L0.4 C"T2"                                            ; set fan 4 value. Thermostatic control is turned off
      M950 F5 C"121.out2" Q500                                             ; create fan 5 on pin 121.out2 and set its frequency
      M106 P5 S1 H3 T60                                                    ; set fan 5 value. Thermostatic control is turned on
      
      M950 F6 C"!out6+out6.tach" Q500                                      ; create fan 6 on pin out4, this is a PWM fan so the output needs to be inverted, and using out4.tach as a tacho input
      M106 P6 S0 H-1 C"Filterbox"                                          ; set fan 6 value. Thermostatic control is turned off
      M106 P6 S0
      
      ; Input Shaping
      ;M593 P"zvdd" F42.2						                             ; cancel ringing at 42.2Hz
                                                                           ;(https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/)
      
      ; Tools
      M563 P0 S"V6 Bowden" D0 H1 F0                                        ; define tool 0
      G10 P0 X-8.02 Y38.97 Z-4.68                                          ; set tool 0 axis offsets
      G10 P0 R0 S0                                                         ; set initial tool 0 active and standby temperatures to 0C
      M572 D0 S0.2                                                         ; pressure advance T0
      M308 S8 Y"linear-analog" P"1.io0.in" A"T0FilamentScale" B-65 C3240   ; Filament Weight Scale for tool 0
      
      M563 P1 S"Volcano Bowden" D1 H2 F2                                   ; define tool 1
      G10 P1 X-7.92 Y38.96 Z-13.2                                          ; set tool 1 axis offsets
      G10 P1 R0 S0                                                         ; set initial tool 1 active and standby temperatures to 0C
      M572 D1 S0.3                                                         ; pressure advance T1
      M308 S9 Y"linear-analog" P"1.io1.in" A"T1FilamentScale" B45 C4100    ; Filament Weight Scale for tool 1
      
      M563 P2 S"Hemera Direct" D2 H3 F4                                    ; define tool 2
      G10 P2 X21.05 Y43.75 Z-5.7                                           ; set tool 2 axis offsets
      G10 P2 R0 S0                                                         ; set initial tool 2 active and standby temperatures to 0C
      M591 D2 P3 C"121.io1.in"                                             ; Configure filament sensing for tool 2
      M572 D2 S0.05                                                        ; pressure advance T2
      M308 S10 Y"linear-analog" P"1.io2.in" A"T2FilamentScale" B-233 C8500 ; Filament Weight Scale for tool 2
      
      M563 P3 S"Spindle" R0                                                ; define tool 3
      G10 P3 X0 Y52.50 Z-78.7                                              ; set tool 3 axis offsets
      
      M563 P4 S"Pen"                                                       ; define tool 4
      G10 P4 X0 Y50.0 Z-21.0                                               ; set tool 4 axis offsets
      
      
      ; PowerFail Script (use M916 to resume the print from where it stopped)
      M911 S23.6 R23.8 P"M913 X0 Y0"                                       ; set voltage thresholds and actions to run on power loss
      
      
      ;MCU Temp Calibration
      M912 P0 S8                                                           ;room temp: 20°C (reportet MCU temp right after startup: 12°C)
      M308 S5 Y"mcu-temp" A"6HC MCU"                                       ;show MCU-temp of Mainboard (MB6HC) in DWC (Tools -> Extra) Graph
      M308 S6 Y"mcu-temp" P"1.dummy" A"3HC MCU"                            ;show MCU-temp of CAN expansion board 1 (3HC) in DWC (Tools -> Extra) Graph
      M308 S7 Y"mcu-temp" P"121.dummy" A"1LC MCU"                          ;show MCU-temp of CAN expansion board 121 (1LC) in DWC (Tools -> Extra) Graph
      
      ;DHT Sensor (temp and humidity)
      M308 S11 P"io6.out" Y"dht22" A"Chamber"                              ; define DHT22 temperature sensor
      M308 S12 P"S11.1" Y"dhthumidity" A"Rel. Humidity[%]"                 ; attach DHT22 humidity sensor to secondary output of temperature sensor
      
      

      If you or anyone suspect something inside a called macro, you can have a look at my public repo:
      https://github.com/marvineer98/MultiPrint_RRF_config/tree/backup

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • RE: [3.6.0-rc.2] changed behaviour while homing on coreXY

      @dc42 Hi!

      The following also doesnt work:

      M913 X20 Y20 		        ; drop motor currents to 20%
      M17 X Y
      G1 H2 X2 F1800           ; move in x so that the endstop is free to pass (individual motor mode)
      M17 X Y
      G1 H1 Y-282 F1800           ; move quickly to Y axis endstop and stop there (first pass)
      G0 Y2                       ; go back a few mm
      

      I changed my homing script to the following (note the Y2 in the G1 H2 command). And now the move works as intended. This also is a bit cleaner anyways:

      G91               			; relative positioning
      M400 				        ; make sure everything has stopped before we change the motor currents
      M913 X20 Y20 		        ; drop motor currents to 20%
      G1 H2 X2 Y2 F1800           ; move in x so that the endstop is free to pass (individual motor mode)
      G1 H1 Y-282 F1800           ; move quickly to Y axis endstop and stop there (first pass)
      G0 Y2                            ; go back a few mm
      G1 H1 Y-4 F300              ; move slowly to Y axis endstop once more (second pass)
      G90               			; absolute positioning
      ...
      

      I still think the behavoir in my first script is not as it should be?
      But I can live well with this simple change. Thank you very much!

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • RE: [3.6.0-rc.2] changed behaviour while homing on coreXY

      @jay_s_uk Yep, maybe I was not clear in my first post:

      The point is: line 8 behavs differently depending if line 7 is commented out or not.
      Thats where the sense stops making sense to me 🙂

      This is the difference in behaviour for me:
      8eb231de-cf0f-4594-a141-37de1e03d163-image.png

      In fact, this returns the old, intended behaviour:

      G1 H2 X2 F1800				; move x so that the endstop is free to pass
      M400
      G1 H1 Y-282 F1800			; move quickly to Y axis endstop and stop there (first pass)
      
      posted in Beta Firmware
      marvineerundefined
      marvineer
    • RE: [3.6.0-rc.2] error: Unexpected characters after expression

      oh wow, sometimes the obvious...
      Thanks!

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • [3.6.0-rc.2] error: Unexpected characters after expression

      Ones more 🙂

      I have the following 0:/macros/Lights/set.g to control two different lights at my machine:

      ; call this to set any light to a given value or call this to turn off all lights
      ; can be called with parameter D: String of the device (light) you want to control ("main", "head"), all if permitted
      ; can be called with parameter B: Power the given light is set to, 0 if permitted
      
      ; create var for power and check input for out of bound
      var power = 0
      if exists(param.B) && param.B >= 0 && param.B <= 1:
          set var.power = param.B
      
      ; set each device accordingly
      if !exists(param.D) || param.D == "main":
          M42 P0 S{var.power}
      
      if !exists(param.D) || param.D == "head":
          M42 P1 S{var.power}
      
      

      When executing thjs via M98 P"0:/macros/Lights/set.g", I get the following:
      Error: in file set.g line 8: Unexpected characters after expression

      With 3.5.4 this macro executed without any warning or error.

      Any idea on that?

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • [3.6.0-rc.2] changed behaviour while homing on coreXY

      Hi folks, today I updated to 3.6-rc2.

      Everything was working fine until I tried to home the machine.
      Then I noticed that when homing to y, the tool head moves diagonally instead of just moving to the y end stop. I had a surprised face and lets say I am grateful for the HW estop 🙂

      Its an e3d tool changer (coreXY) and I have the following file homey.g (minimal example) that worked as I intended it in 3.5.4:

      ; homey.g
      ; called to home the Y axis
      
      G91					; relative positioning
      M400					; make sure everything has stopped before we change the motor currents
      M913 X20 Y20				; drop motor currents to 20%
      G1 H2 X2 F1800				; move x so that the endstop is free to pass
      G1 H1 Y-282 F1800			; move quickly to Y axis endstop and stop there (first pass)
      G1 Y2 F1000				; go back a few mm
      G1 H1 Y-5 F300				; move slowly to Y axis endstop once more (second pass)
      
      G90               			; absolute positioning
      
      M400 						; make sure everything has stopped before we reset the motor currents
      M913 X100 Y100 				; motor currents back to 100%
      

      So, the problem I found lighs in line 7: There I want to make shure to leave room for the X endstop to pass.
      This moves the toolhead out of way enough. After that the homing sequence for y begins.

      the homing move in line 8:
      3.5.4: moves straight to the y endstop, the machine moves only in y
      3.6-rc.2: moves diagonally towards y and x endstop

      When i comment out line 7 ;G1 H2 X2 F1800 the homing sequence for y is performed now, but of course there is possibly not enough room to pass the x endstop while doing so.

      Was there a change in behaviour since 3.5.4 that didnt make it into the release notes or did I miss something? Or is this unintended behaviour?
      Thanks in advance!

      posted in Beta Firmware
      marvineerundefined
      marvineer
    • RE: Reduce motors to idle current when machine status is "Busy"?

      You could manually set the motor current for all the “unused” axes before you start the longer move with M913, and reset it to the old values (100 %) after you're done.

      Maybe having the idle current applied to each axis separately is something for the firmware wish list? That is, Y goes to idle current after n seconds if only x is moving. But that would probably change the position of the head due to less stiffness.

      posted in Duet Hardware and wiring
      marvineerundefined
      marvineer
    • RE: Illegal parameter and have no idea where to look or what to do.

      @frnknstn518 line 132 is where you should be looking. Try to comment it out like the other lines in green (put a semicolon in front) as it's not valid gcode for rrf.
      It should work nevertheless, because M109/M190 are the right commands to set temps the lines before.

      posted in Duet Web Control
      marvineerundefined
      marvineer