Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. ironhydroxide
    • Profile
    • Following 0
    • Followers 0
    • Topics 6
    • Posts 40
    • Best 5
    • Controversial 0
    • Groups 0

    ironhydroxide

    @ironhydroxide

    7
    Reputation
    7
    Profile views
    40
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    ironhydroxide Unfollow Follow

    Best posts made by ironhydroxide

    • RE: Linear Quadrature Encoder Calibration Error

      @btmclain I see you have standstill current at 0% (M917 X0), have you tried commenting out this line, or increasing the standstill current value?

      on my system when I add the M917 X0 I also get this clunk. Removing it and I have no clunk when tuning.

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • Having troubles with Closed Loop tuning Plugin

      some background. I recently started playing with Duet, so I could be considered complete noob (though I have plenty of 3d printer and CNC experience)

      I picked up a Duet mini5+, a 1HCL board (ver 1.0a), and a magnetic encoder (v0.3).
      Upgraded the firmwares to 3.5.1
      I've got it setup very minimally on the desk just getting used to the software/setup.

      I'm trying to follow the guide, (still can't post links) but the Plugin never allows me to select a driver. "No data available"

      I can move the motor in open and closed loop.
      and even do a manual M569.5, then open the subsequent file in the plugin.
      I just can't get the plugin to cause the recording/tuning moves.

      I thought maybe it was my version, Started with RRF Version 3.5.1 on all, Updated to 3.5.4 on Mini 5+ 1HCL and DWC. uninstalled and reinstalled the ClosedLoop plugin 3.5.1. Same situation. Can move, can record, cannot get the plugin to cause the move.

      is there something obvious i'm just missing?

      Config.g

      ; Configuration file for RepRapFirmware on Duet 3 Mini 5+ Ethernet
      ; executed by the firmware on start-up
      
      ; General
      G91 ; Relative coordinates
      M83 ; relative extruder moves
      M550 P"TestSaw" ; set hostname
      
      ; Network
      M552 P192.168.1.14 S1 ; configure Ethernet adapter
      M553 P255.255.255.0 ; set netmask
      M554 P0.0.0.0 ; set gateway
      M586 P0 S1 ; configure HTTP
      
      ; Wait a moment for the CAN expansion boards to become available
      G4 S2
      
      ; Closed Loop Drivers
      M569.1 P50.0 T3 E0.0:0.0 S200 R40 I0 D0 ; only magnetic shaft encoder
      
      M569 P50.0 S1 D4 ; driver 123.0 goes forwards (extruder 0) FEED
      
      ; Axes
      M584 E50.0 ; set axis mapping
      M350 E16 ; configure microstepping 
      M906 E800 ; set axis driver currents
      
      ; (micro)Steps/mm Calculation:
      ; E: Driver 16 microsteps
      ; E: Motor 400steps/rev (89080.1598:1) {6400}
      ; E: Belt Reduction 1/2 (0.5)(222.7003995:1) {12800}
      ; E: Harmonic Reduction 1/100 (0.01)(111.35019977:1) {12800000}
      ; E: Pinch Roller Radius 7.212148 mm (circ 45.3153) (1.1135:1) {28246.530421/mm}
      ; E: Encoder Roller Diameter 12.954 mm (circ 40.6962)(1,610.371484 ticks/mm)
      M92 E28246.530421 ; configure microsteps per mm 
      M566 E0 P1 ; set maximum instantaneous speed changes (mm/min)
      M203 E17.7 I0.1 ; set maximum speeds (mm/min)
      M201 E5462.962963 ; set accelerations (mm/s^2) 
      
      ; Kinematics
      M669 K0 ; configure Cartesian kinematics
      
      ; Spindles
      M950 R0 C"nil + io1.out" Q500 L60:10000 ; configure spindle #0 ;P"io1.out" 
      
      ; Tools
      M563 P0 S"Blade" D0 F0 R0 ; create tool #0
      
      ; Miscellaneous
      M453 ; select CNC mode
      T0 ; select first tool
      
      ; Remove Requirement for homing
      G92 E0 ;
      
      posted in Tuning and tweaking
      ironhydroxideundefined
      ironhydroxide
    • RE: Support for BISS-C Encoders on 1HCL via IC-Haus IC-MB4 Chip

      This would also help me,
      With BiSS-C I would be able to select an appropriate encoder for my desired setup (17+ bit resolution required)

      There's a post I found where someone was supposedly able to "read" a BiSS-C encoder with SPI in the "SimpleFOCproject" community forum. (can't post links yet, but search for SPI BiSS-C SimpleFoc and it'll likely come up. )

      posted in Firmware wishlist
      ironhydroxideundefined
      ironhydroxide
    • RE: Closed Loop Calibration Error

      @btmclain to do the tuning it needs to be in closed loop.

      Generally you home the axis in open loop, move it to a "safe" location (not crashing the machine), set it to closed loop, then do the calibration.

      I suggest you read the tuning documentation here

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • RE: Linear Quadrature Encoder Calibration Error

      @btmclain By "manually" i mean not in a homing macro, but by sending the gcode manually either in the DWC console or connected SBC.
      But after rereading your first post, I assume that's what you've done.

      I think your issue may lie in the initial configuration of the encoder. the C parameter should be the number of cycles from the quadrature encoder per motor revolution.
      I don't see anywhere you specify the motion relationship between motor and linear encoder, the linear encoder you specify has a 5um/pulse output, (20um/cycle)
      With your C value of 1000 that works out to a movement of 20mm/motor rotation. is that correct?

      Are you doing a small motor movement in open loop mode before attempting calibrations?

      When playing with my setup I was able to somehow get the system to move in closed loop with only a magnetic encoder calibration, then I was able to confirm the linear encoder cycles/rotation value (i had to iterate a few times as the documentation says Pulses per revolution, I believe it should say cycles/revolution instead as that is what I ended up at to get the correct movement) Once I had the C value in the ballpark I was able to get the system to calibrate the Quadrature encoder (M569.6 V1) successfully.

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide

    Latest posts made by ironhydroxide

    • RE: [3.6.0-rc.3] sticky probe with 1HCL board

      @dc42 Tested every firmware I had downloaded. Each and every one at one time stuck the probe when connected to the 1HCL board. eventlog for each is titled it's firmware name. Zip file has event logs, as well as the spreadsheets I used to evaluate the trends.

      Doing all this testing has shown me that it'd be MUCH simpler to check the machine position skew vs the encoder if the encoder ticks were available in the object model, instead of having to run an M122, and after the fact run the log through a python script, pulling out the ticks. Is this something that's fairly easily doable? or a huge change to the firmware?

      Test setup:
      1HCL running Z axis in Open Loop
      Probe on 1HCL input 1
      Probe Macro using G30 with F0.363255:0.0363255 speeds
      config.g config.g

      setZeroDepth.g set zero macro.

      findContact.g find contact macro.

      no changes in macros or cycle between firmwares.

      Results from testing:
      3.6.0-beta3: one single probe successful, subsequent probes "probe already triggered at start of probing move" Probe stuck at 1000 until main board reboot.

      3.6.0-beta4: set zero macro successful (probe at 4 points on tube, average position, set average as machine zero), 6 probes succeed, then probe stuck at 1000 till main board reboot. (total 11 probes before sticking)

      3.6.0-rc1: 2498 probes successful before probe sticking. Probe positions trended up for 120 probes before inverting and trending down for the remainder, while the encoder values trend up fairly consistently (note, encoder tick values are inverse to position, as ticks go up, z goes negative. at a rate of 0.00168mm/tick, or 594.3ticks/mm)
      rc1.jpg

      3.6.0-rc1+1: full cycle successful without sticking (5696 probes), Probe positions trended up for ~200 probes before inverting and trending down for the remainder. curiously the downwards trend is in a repeating bumpy fashion with a period of ~300-400 probes. I notice now that the previous test (3.6.0-rc1) showed the same bumpy ~300-400 period drift. Difference in start vs end in machine position -0.237mm, difference start vs end in ticks 34. Meaning that the machine position should have drifted -0.05712mm if we trust the ticks on the encoder. this is about 1/4 the drift the machine position shows.
      rc1+1FullCycle.jpg

      3.6.0-rc1+1 2: Ran the cycle again to see if it'd complete a second time. 954 probes successful before probe sticking (6650 probes total since powerup/cycle). Again noticed upwards trend till ~200 probes, then downwards at the same "bumpy" ~300-400 probe cycle until probe stick (can barely see 1.5 bumps before shutdown).
      rc1+1 2.jpg

      3.6.0-rc1+2: 225 probes before sticking. machine position trending up before probe stuck.
      rc1+2.jpg

      3.6.0-rc1+3: 1163 probes before my macro shut down the cycle due to too much variance in probe positions. Probe trend upwards till ~200, then bumpy downwards is still present.
      rc1+3.jpg

      3.6.0-rc1+3 2: 287 probes before sticking (1450 probes total since powerup/cycle). Probe trend upwards till ~150, then downwards before sticky probe.
      rc1+3 2.jpg

      3.6.0-rc2:1881 probes before sticking. Probe again trends upwards till ~200, then trends downwards on the ~300-400 probe bumpyness, though there are 2 points where the probe shifts significantly ~0.008mm between probes, when the encoder ticks differs by ~2.
      rc2.jpg

      3.6.0-rc2+1: 34 probes before sticking. Not much data to trend, but even still seem to be shifting upwards.
      rc2+1.jpg

      3.6.0-rc2+4: 403 probes before sticking. Again upwards trend till ~200, then downwards trend.
      rc2+4.jpg

      3.6.0-rc2+5: 475 probes before sticking. Upwards trend until ~160, then downwards trend leveling off ~340.
      rc2+5.jpg

      3.6.0-rc3: 1232 probes before sticking. Upwards trend till ~200, downwards bumpy trend at 300-400 cadence.
      rc3.jpg

      Here's the Zip of all the Logs and Excel files, download and change the extension to .zip instead of .txt
      3.6.0Tests.txt

      posted in Beta Firmware
      ironhydroxideundefined
      ironhydroxide
    • RE: [3.6.0-rc.3] sticky probe with 1HCL board

      @dc42 I don't think there was one, though I didn't exhaustively test.

      I think I was on 3.6.0-beta3 when I first setup the system with initial tests. It happened on that version and I went searching and found mentioned it wasn't recommended to probe from a can Board. I swapped it to the mainboard and continued my testing, upping versions as I saw them released.

      I revisited the probe on Can board when my testing showed a significant skew in where the machine thought was vs where it really should be (my post in the general discussion page) and when testing for that found that the 3.6.0-rc2+5 ran one complete cycle of my test without sticking, and the dissonance in real vs machine position was much improved. But since that Single cycle completed successfully I have not been able to manage another without sticky probe if the probe is on the 1HCL.

      I can go through the versions I have saved (beta3, beta4, rc1, rc1+1-3, rc2, rc2+1-5, rc3) and test them progressively if that would help.

      posted in Beta Firmware
      ironhydroxideundefined
      ironhydroxide
    • RE: [3.6.0-rc.3] sticky probe with 1HCL board

      Did multiple more tests, all of the combinations of:
      OpenLoop:ClosedLoop
      G30:G38.2
      MainBoard:1HCL (probe connection)

      MainBoard connected would get through my test without once sticking the probe.
      1HCL connected always stuck the probe, but at random times. The most # of probes I was able to get through before the probe stuck was 781.

      Also tried slowing down the probing speed, and playing with the pullback (M558 H###:####). none had noticeable affect in time before sticking, though it's so random it's hard to identify what makes a difference or what is just placebo.

      posted in Beta Firmware
      ironhydroxideundefined
      ironhydroxide
    • RE: [3.6.0-rc.3] sticky probe with 1HCL board
      2025-05-01 09:52:08 [debug] Stopped at height -0.110 mm
      2025-05-01 09:52:08 [info] currentZPosition:-0.109939
      2025-05-01 09:52:08 [info] tubeContactPos:-0.1104854 contactPositions:{-0.109,-0.111,-0.110,0,0,0,0,0,0,0} Success Two Point Average at 1 touches
      2025-05-01 09:52:08 [debug] Diagnostics for board 50:
      2025-05-01 09:52:08 [debug] Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-rc.3 (2025-04-29 14:20:58)
      Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
      All averaging filters OK
      2025-05-01 09:52:08 [debug] Never used RAM 51300, free system stack 170 words
      Tasks: EncCal(1,nWait 6,0.0%,469) Move(3,nWait 7,0.0%,99) CLSend(3,nWait 6,0.0%,149) TMC(4,nWait 6,71.6%,313) HEAT(2,nWait 6,0.1%,105) CanAsync(5,nWait 4,4.0%,66) CanRecv(3,nWait 1,0.0%,31) CanClock(5,nWait 1,0.0%,63) MAIN(1,running,22.8%,249) IDLE(0,ready,0.0%,29) AIN(2,nWait 2,1.4%,255), total 100.0%
      Owned mutexes:
      Last reset 00:10:01 ago, cause: software
      2025-05-01 09:52:08 [debug] Last software reset time unknown, reason: HardFault zeroDiv, available RAM 51444, slot 2
      Software reset code 0x0060 HFSR 0x40000000 CFSR 0x02000000 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20002cc0 Task TMC Freestk 366 ok
      2025-05-01 09:52:08 [debug] Stack: 00000000 20002d2f 00000000 00000000 00000000 00026359 00026368 41000000 0018a715 00024de3 20019948 20019948 00000001 00025d53 00025d3d 2001a874 001ceac9 00027c73 01601008 a0180030 08004d84 41c31e52 05c80021 3a341809 002ad181 2001a7c0 001ceac9
      2025-05-01 09:52:08 [debug] Moves scheduled 822, hiccups 0 (0.00/0.00ms), segs 3, step errors 0 (types 0x0), maxLate 0 maxPrep 236, ebfmin 0.00 max 0.00
      Phase step loop runtime (us): min=6, max=532, frequency (Hz): min=611, max=15306
      Sync err accum 63, peak jitter -2/0, peak Rx delay 175, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 3968593204 ticks, disabled
      VIN voltage: min 24.4, current 24.4, max 24.4
      V12 voltage: min 12.2, current 12.2, max 12.2
      MCU temperature: min 32.5C, current 33.4C, max 33
      2025-05-01 09:52:08 [debug] Driver 0: pos -5225, 10060.2 steps/mm, ok, SG min n/a, mspos 296, reads 42733, writes 11 timeouts 1
      2025-05-01 09:52:08 [debug] Last sensors broadcast 0x00000000 found 0 124 ticks ago, 0 ordering errs, loop time 1
      CAN messages queued 131, send timeouts 0, received 42, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0
      dup 0, oos 0/0/0/0, rxMotionDelay 701, adv 36058/37093
      2025-05-01 09:52:08 [debug] Closed loop driver 0 mode: closed loop, pre-error threshold: 7.50, error threshold: 50.00, encoder type linearComposite, position 1233
      Shaft: Encoder reverse polarity: yes, full rotations 3, last angle 11958, minCorrection=-15.4, maxCorrection=10.9, agc 15, mag 4606, no error
      Lin: Encoder reverse polarity: no, raw count 1242
      Tuning mode: 0, tuning error: 0, collecting data: no
      Accelerometer: none
      I2C bus errors 0, naks 0, contentions 0, other errors 0
      2025-05-01 09:52:09 [debug] Stopped at height -0.108 mm
      2025-05-01 09:52:09 [info] currentZPosition:-0.108149
      2025-05-01 09:52:10 [warn] Error: G30: Probe already triggered at start of probing move
      2025-05-01 09:52:10 [info] currentZPosition:-0.105664
      2025-05-01 09:52:10 [warn] Error: G30: Probe already triggered at start of probing move
      2025-05-01 09:52:10 [info] currentZPosition:-0.103080
      2025-05-01 09:52:10 [warn] Error: G30: Probe already triggered at start of probing move
      2025-05-01 09:52:10 [info] currentZPosition:-0.100495
      2025-05-01 09:52:10 [warn] Error: G30: Probe already triggered at start of probing move
      2025-05-01 09:52:10 [info] currentZPosition:-0.0979110
      2025-05-01 09:52:10 [warn] Error: G30: Probe already triggered at start of probing move
      2025-05-01 09:52:10 [info] currentZPosition:-0.0953266
      2025-05-01 09:52:11 [info] tubeContactPos:-0.1104854 contactPositions:{-0.108,-0.106,-0.103,-0.100,-0.0979,-0.0953,0,0,0,0} Failed 5 touches
      2025-05-01 09:52:11 [debug] Done printing file
      2025-05-01 09:52:11 [debug] Done printing file
      2025-05-01 09:52:11 [warn] Cancelled printing file 0:/gcodes/NV00044073A.g, print time was 0h 7m
      2025-05-01 09:52:11 [debug] Unable to get consistent touch location: {-0.108,-0.106,-0.103,-0.100,-0.0979,-0.0953,0,0,0,0} contactSpread: -0.0128 FiveContact Accept: 0.0025400
      2025-05-01 09:52:18 [warn] Ethernet running, IP address = 192.168.1.14
      2025-05-01 09:52:27 [warn] HTTP client 192.168.1.2 login succeeded (session key 2970616275)
      2025-05-01 09:53:02 [debug] Z probe 0: current reading 1000, threshold 500, trigger height 0.000, offsets X0.0 Y0.0 A0.0 B0.0
      2025-05-01 09:53:16 [debug] === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-rc.3 (2025-04-30 14:42:33) running on Duet 3 Mini5plus Ethernet (standalone mode)
      Board ID: G5729-TU8LU-F65J0-409NU-3F03Z-7U6T6
      2025-05-01 09:53:16 [debug] Used output buffers: 1 of 40 (35 max)
      2025-05-01 09:53:16 [debug] === RTOS ===
      Static ram: 94764
      Dynamic ram: 117988 of which 0 recycled
      Never used RAM 28524, free system stack 136 words
      Tasks: NETWORK(1,ready,28.8%,173) ETHERNET(5,nWait 7,0.2%,569) HEAT(3,nWait 6,0.0%,357) Move(4,nWait 6,0.0%,241) TMC(4,nWait 6,0.8%,65) CanReceiv(6,nWait 1,0.0%,766) CanSender(5,nWait 7,0.0%,325) CanClock(7,delaying,0.0%,346) MAIN(1,running,69.2%,631) IDLE(0,ready,0.2%,29) USBD(3,blocked,0.0%,147) AIN(4,delaying,0.8%,261), total 100.0%
      Owned mutexes:
      2025-05-01 09:53:16 [debug] === Platform ===
      Last reset 00:11:01 ago, cause: software
      2025-05-01 09:53:16 [debug] Last software reset at 2025-05-01 07:50, reason: User, Gcodes spinning, available RAM 28696, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      2025-05-01 09:53:16 [debug] Error status: 0x00
      2025-05-01 09:53:16 [debug] MCU temperature: min 33.0, current 38.4, max 39.1
      Supply voltage: min 23.7, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
      2025-05-01 09:53:16 [debug] Heap OK, handles allocated/used 99/37, heap memory allocated/used/recyclable 2048/1664/964, gc cycles 224
      Events: 1 queued, 1 completed
      2025-05-01 09:53:16 [debug] Date/time: 2025-05-01 09:53:16
      Slowest loop: 138.70ms; fastest: 0.16ms
      2025-05-01 09:53:16 [debug] === Storage ===
      Free file entries: 19
      SD card 0 detected, requested/actual speed: 25.0/24.0MBytes/sec
      SD card longest read time 4.6ms, write time 137.2ms, max retries 0
      2025-05-01 09:53:16 [debug] === Move ===
      Segments created 8, maxWait 153583ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 1, ebfmin 0.00, ebfmax 0.00
      Pos req/act/dcf: 0.00/0/0.00 149786.00/149786/0.00 4098.00/4097/0.41 570.00/570/0.00 477093.00/477093/0.00
      No step interrupt scheduled
      2025-05-01 09:53:16 [debug] Driver 0: standstill, SG min 2, r/w errs 0/1, ifcnt 34, reads/writes 34792/16, timeouts 0, DMA errs 0, CC errs 0
      Driver 1: standstill, SG min 6, r/w errs 0/1, ifcnt 34, reads/writes 34791/16, timeouts 0, DMA errs 0, CC errs 0
      Driver 2: standstill, SG min 0, r/w errs 0/1, ifcnt 34, reads/writes 34791/16, timeouts 0, DMA errs 0, CC errs 0
      Driver 3: standstill, SG min 0, r/w errs 0/1, ifcnt 21, reads/writes 34797/10, timeouts 0, DMA errs 0, CC errs 0
      2025-05-01 09:53:16 [debug] Driver 4: standstill, SG min 0, r/w errs 0/1, ifcnt 21, reads/writes 34798/10, timeouts 0, DMA errs 0, CC errs 0
      Driver 5: not present
      Driver 6: not present
      2025-05-01 09:53:16 [debug] === DDARing 0 ===
      Scheduled moves 1355, completed 1355, LaErrors 0, Underruns [0, 0, 0]
      Segments left 0, axes/extruders owned 0x00000007, drives owned 0x00000007
      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
      2025-05-01 09:53:16 [debug] === Heat ===
      Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      2025-05-01 09:53:16 [debug] === 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
      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
      2025-05-01 09:53:16 [debug] === CAN ===
      Messages queued 6109, received 19733, lost 0, ignored 0, errs 1, boc 0
      Longest wait 265ms for reply type 6041, peak Tx sync delay 411, free buffers 26 (min 25), ts 3136/3135/0
      Tx timeouts 0,0,0,0,0,0
      2025-05-01 09:53:16 [debug] === Network ===
      Slowest loop: 96.37ms; fastest: 0.03ms
      Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      2025-05-01 09:53:16 [debug] = Ethernet =
      Interface state: active
      Error counts: 0 0 0 0 0 0
      Socket states: 6 2 2 2 2 0 0 0 0
      2025-05-01 09:53:22 [debug] Diagnostics for board 50:
      2025-05-01 09:53:22 [debug] Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-rc.3 (2025-04-29 14:20:58)
      Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
      All averaging filters OK
      2025-05-01 09:53:22 [debug] Never used RAM 51300, free system stack 170 words
      Tasks: EncCal(1,nWait 6,0.0%,469) Move(3,nWait 7,0.0%,99) CLSend(3,nWait 6,0.0%,149) TMC(4,nWait 6,73.1%,313) HEAT(2,nWait 6,0.1%,105) CanAsync(5,nWait 4,0.1%,66) CanRecv(3,nWait 1,0.0%,31) CanClock(5,nWait 1,0.0%,63) MAIN(1,running,25.5%,249) IDLE(0,ready,0.0%,29) AIN(2,nWait 2,1.3%,255), total 100.0%
      Owned mutexes:
      Last reset 00:11:16 ago, cause: software
      2025-05-01 09:53:22 [debug] Last software reset time unknown, reason: HardFault zeroDiv, available RAM 51444, slot 2
      Software reset code 0x0060 HFSR 0x40000000 CFSR 0x02000000 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20002cc0 Task TMC Freestk 366 ok
      2025-05-01 09:53:22 [debug] Stack: 00000000 20002d2f 00000000 00000000 00000000 00026359 00026368 41000000 0018a715 00024de3 20019948 20019948 00000001 00025d53 00025d3d 2001a874 001ceac9 00027c73 01601008 a0180030 08004d84 41c31e52 05c80021 3a341809 002ad181 2001a7c0 001ceac9
      2025-05-01 09:53:22 [debug] Moves scheduled 833, hiccups 0 (0.00/0.00ms), segs 3, step errors 0 (types 0x0), maxLate 0 maxPrep 237, ebfmin 0.00 max 0.00
      Phase step loop runtime (us): min=6, max=417, frequency (Hz): min=692, max=15306
      Sync err accum 92, peak jitter -3/3, peak Rx delay 183, resyncs 0/0, next timer interrupt due in 1 ticks, enabled, next step interrupt due in 3912662750 ticks, disabled
      VIN voltage: min 24.4, current 24.4, max 24.4
      V12 voltage: min 12.2, current 12.2, max 12.2
      MCU temperature: min 32.5C, curre
      2025-05-01 09:53:22 [debug] Driver 0: pos -18, 10060.2 steps/mm, ok, SG min n/a, mspos 296, reads 18238, writes 28 timeouts 2
      2025-05-01 09:53:22 [debug] Last sensors broadcast 0x00000000 found 0 196 ticks ago, 0 ordering errs, loop time 0
      CAN messages queued 659, send timeouts 0, received 378, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0
      dup 0, oos 0/0/0/0, rxMotionDelay 390, adv 36216/37126
      2025-05-01 09:53:22 [debug] Closed loop driver 0 mode: closed loop, pre-error threshold: 7.50, error threshold: 50.00, encoder type linearComposite, position 4
      Shaft: Encoder reverse polarity: yes, full rotations 2, last angle 1648, minCorrection=-15.4, maxCorrection=10.9, agc 15, mag 4633, no error
      Lin: Encoder reverse polarity: no, raw count 4
      Tuning mode: 0, tuning error: 0, collecting data: no
      Accelerometer: none
      I2C bus errors 0, naks 0, contentions 0, other errors 0
      2025-05-01 09:53:33 [debug] Board 50 resetting
      2025-05-01 09:53:34 [warn] Error: Expansion board 50 reconnected
      2025-05-01 09:53:40 [debug] Z probe 0: current reading 1000, threshold 500, trigger height 0.000, offsets X0.0 Y0.0 A0.0 B0.0
      2025-05-01 09:53:47 [debug] === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-rc.3 (2025-04-30 14:42:33) running on Duet 3 Mini5plus Ethernet (standalone mode)
      Board ID: G5729-TU8LU-F65J0-409NU-3F03Z-7U6T6
      2025-05-01 09:53:47 [debug] Used output buffers: 1 of 40 (35 max)
      2025-05-01 09:53:47 [debug] === RTOS ===
      Static ram: 94764
      Dynamic ram: 117988 of which 0 recycled
      Never used RAM 28524, free system stack 136 words
      Tasks: NETWORK(1,ready,24.8%,173) ETHERNET(5,nWait 7,0.2%,569) HEAT(3,nWait 6,0.0%,357) Move(4,nWait 6,0.0%,241) TMC(4,nWait 6,0.8%,65) CanReceiv(6,nWait 1,0.0%,766) CanSender(5,nWait 7,0.0%,325) CanClock(7,delaying,0.0%,337) MAIN(1,running,73.4%,631) IDLE(0,ready,0.0%,29) USBD(3,blocked,0.0%,147) AIN(4,delaying,0.8%,261), total 100.0%
      Owned mutexes:
      2025-05-01 09:53:47 [debug] === Platform ===
      Last reset 00:11:32 ago, cause: software
      2025-05-01 09:53:47 [debug] Last software reset at 2025-05-01 07:50, reason: User, Gcodes spinning, available RAM 28696, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      2025-05-01 09:53:47 [debug] Error status: 0x00
      2025-05-01 09:53:47 [debug] MCU temperature: min 37.8, current 37.8, max 38.4
      Supply voltage: min 23.9, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
      2025-05-01 09:53:47 [debug] Heap OK, handles allocated/used 99/37, heap memory allocated/used/recyclable 2048/1664/964, gc cycles 224
      Events: 2 queued, 2 completed
      2025-05-01 09:53:47 [debug] Date/time: 2025-05-01 09:53:47
      Slowest loop: 84.39ms; fastest: 0.17ms
      2025-05-01 09:53:47 [debug] === Storage ===
      Free file entries: 19
      SD card 0 detected, requested/actual speed: 25.0/24.0MBytes/sec
      SD card longest read time 3.3ms, write time 4.6ms, max retries 0
      2025-05-01 09:53:47 [debug] === Move ===
      Segments created 8, maxWait 0ms, 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: 0.00/0/0.00 149786.00/149786/0.00 4098.00/4097/0.41 570.00/570/0.00 477093.00/477093/0.00
      No step interrupt scheduled
      2025-05-01 09:53:47 [debug] Driver 0: standstill, SG min 16, r/w errs 0/0, ifcnt 34, reads/writes 1625/0, timeouts 0, DMA errs 0, CC errs 0
      Driver 1: standstill, SG min 14, r/w errs 0/0, ifcnt 34, reads/writes 1626/0, timeouts 0, DMA errs 0, CC errs 0
      Driver 2: standstill, SG min 14, r/w errs 0/0, ifcnt 34, reads/writes 1625/0, timeouts 0, DMA errs 0, CC errs 0
      Driver 3: standstill, SG min 0, r/w errs 0/0, ifcnt 21, reads/writes 1625/0, timeouts 0, DMA errs 0, CC errs 0
      2025-05-01 09:53:47 [debug] Driver 4: standstill, SG min 0, r/w errs 0/0, ifcnt 21, reads/writes 1625/0, timeouts 0, DMA errs 0, CC errs 0
      Driver 5: not present
      Driver 6: not present
      2025-05-01 09:53:47 [debug] === DDARing 0 ===
      Scheduled moves 1355, completed 1355, LaErrors 0, Underruns [0, 0, 0]
      Segments left 0, axes/extruders owned 0x00000007, drives owned 0x00000007
      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
      2025-05-01 09:53:47 [debug] === Heat ===
      Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      2025-05-01 09:53:47 [debug] === 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
      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
      2025-05-01 09:53:47 [debug] === CAN ===
      Messages queued 156, received 286, lost 0, ignored 0, errs 3093, boc 0
      Longest wait 14ms for reply type 6024, peak Tx sync delay 25123, free buffers 26 (min 25), ts 146/143/0
      Tx timeouts 0,0,3,0,0,0 last cancelled message type 30 dest 127
      2025-05-01 09:53:47 [debug] === Network ===
      Slowest loop: 4.67ms; fastest: 0.04ms
      Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      2025-05-01 09:53:47 [debug] = Ethernet =
      Interface state: active
      Error counts: 0 0 0 0 0 0
      Socket states: 6 2 2 2 2 0 0 0 0
      2025-05-01 09:53:52 [debug] Diagnostics for board 50:
      2025-05-01 09:53:52 [debug] Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-rc.3 (2025-04-29 14:20:58)
      Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
      All averaging filters OK
      2025-05-01 09:53:52 [debug] Never used RAM 81348, free system stack 180 words
      Tasks: Move(3,nWait 7,0.0%,181) CLSend(3,nWait 6,0.0%,149) TMC(2,nWait 6,24.6%,349) HEAT(2,nWait 6,0.0%,130) CanAsync(5,nWait 4,0.0%,70) CanRecv(3,nWait 1,0.0%,79) CanClock(5,nWait 1,0.0%,68) MAIN(1,running,71.2%,425) IDLE(0,ready,3.4%,29) AIN(2,nWait 2,0.8%,263), total 100.0%
      Owned mutexes:
      Last reset 00:00:18 ago, cause: software
      2025-05-01 09:53:52 [debug] Last software reset time unknown, reason: HardFault zeroDiv, available RAM 51444, slot 2
      Software reset code 0x0060 HFSR 0x40000000 CFSR 0x02000000 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20002cc0 Task TMC Freestk 366 ok
      2025-05-01 09:53:52 [debug] Stack: 00000000 20002d2f 00000000 00000000 00000000 00026359 00026368 41000000 0018a715 00024de3 20019948 20019948 00000001 00025d53 00025d3d 2001a874 001ceac9 00027c73 01601008 a0180030 08004d84 41c31e52 05c80021 3a341809 002ad181 2001a7c0 001ceac9
      2025-05-01 09:53:52 [debug] Moves scheduled 0, hiccups 0 (0.00/0.00ms), segs 0, step errors 0 (types 0x0), maxLate 0 maxPrep 0, ebfmin 0.00 max 0.00
      Phase step loop runtime (us): min=0, max=97, frequency (Hz): min=0, max=37500
      Sync err accum 70, peak jitter -3/5, peak Rx delay 180, resyncs 0/0, next timer interrupt due in 6 ticks, enabled, next step interrupt due in 4281075752 ticks, disabled
      VIN voltage: min 24.4, current 24.4, max 24.4
      V12 voltage: min 12.2, current 12.2, max 12.2
      MCU temperature: min 33.4C, current 33.4
      2025-05-01 09:53:52 [debug] Driver 0: pos 0, 80.0 steps/mm, standstill, SG min n/a, mspos 296, reads 27049, writes 11 timeouts 0
      2025-05-01 09:53:52 [debug] Last sensors broadcast 0x00000000 found 0 146 ticks ago, 0 ordering errs, loop time 0
      CAN messages queued 172, send timeouts 0, received 93, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0
      dup 0, oos 0/0/0/0, rxMotionDelay 0
      2025-05-01 09:53:52 [debug] Closed loop driver 0 mode: open loop, pre-error threshold: 2.00, error threshold: 4.00, encoder type none
      Accelerometer: none
      I2C bus errors 12, naks 0, contentions 0, other errors 0
      2025-05-01 09:53:58 [info] Event logging stopped
      power up + 00:00:03 [info] Event logging started at level debug
      power up + 00:00:03 [info] Running: Duet 3 Mini5plus Ethernet: 3.6.0-rc.3 (2025-04-30 14:42:33)
      power up + 00:00:03 [debug] Done!
      power up + 00:00:03 [debug] RepRapFirmware for Duet 3 Mini 5+ is up and running.
      power up + 00:00:05 [warn] Ethernet running, IP address = 192.168.1.14
      power up + 00:00:07 [warn] HTTP client 192.168.1.2 login succeeded (session key 2691985074)
      2025-05-01 09:54:07 [warn] Date and time set at power up + 00:00:07
      2025-05-01 09:54:12 [debug] Z probe 0: current reading 0, threshold 500, trigger height 0.000, offsets X0.0 Y0.0 A0.0 B0.0
      2025-05-01 09:54:24 [warn] Ethernet running, IP address = 192.168.1.14
      2025-05-01 09:54:32 [warn] HTTP client 192.168.1.2 login succeeded (session key 2837175574)
      
      

      Too long of post, had to split

      posted in Beta Firmware
      ironhydroxideundefined
      ironhydroxide
    • [3.6.0-rc.3] sticky probe with 1HCL board

      I'm having problems with using a probe connected to a 1HCL board.

      Z axis is driven by 1HCL board, Home switch and probe on that board as well.

      seemingly random sticky probe issues, where DWC will report the probe status as 1000 with no change until I reboot the mainboard, either with power cycle, M999, or EStop.

      Was having these errors on rc2+4, but a lot more frequently. (couldn't get over 100 probes before sticking, and sometimes only a few)
      I thought rc2+5 fixed them, as it ran my macro in it's entirety once (over 5000 probes) without the probe sticking, directly after installing the update. But subsequent tries all failed before finishing, though usually much further along than I'd get with 2+4.
      Installed rc3, hoping it would act the same as when I installed the 2+5 (ie, complete at least a full run without sticking) but it has not. the probe stuck around the 180th probe.

      Currently in Closed Loop mode, tuned to my system. Though I intend to do testing with open Loop as well as G38.2 instead of G30, to see if there's differences there.

      config.g

      Breakdown of the order the following log snippet
      successful probe with position recorded,
      M122 B50.0 (macro called)
      successful probe with position recorded,
      subsequent probe due to position being out of my set range between probe instances
      Probe stuck in a triggered state, my macro then cycled out (does multiple probes and only accepts if position is within set range, if too many out of range, shutdown)
      confirmed probe was not faulty by unplugging probe from board, status stayed at 1000.
      Reconnected probe to the board.
      I then ran G31 to show probe state,
      M122 on main board
      M122 on 1HCL (address 50)
      rebooted 1HCL (M999 B50.0)
      G31,
      M122
      M122 B50.0
      M999 to reboot the main board,
      when DWC reconnected then the probe status reset to 0

      posted in Beta Firmware
      ironhydroxideundefined
      ironhydroxide
    • RE: Duet3 Mini 5+ Eth + 1HCL Drifting position during probing

      Well, Spoke too soon on the Sticky Probe issue.
      Happened again on the run after the one above,
      Though I believe the skew to be gone.

      eventlog(10).txt

      Edit: see above, I don't think the skew I'm seeing is completely gone.
      Testing again with probe on mainboard instead of 1HCL and slowed down probing speed. (can't seem to get 1HCL to complete a run without sticky probe after the very first run of rc2+5)

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • RE: Duet3 Mini 5+ Eth + 1HCL Drifting position during probing

      @dc42 My system doesn't have 50mm to move. Max Z travel I have is 3mm.

      that said, what I'm doing is essentially that.
      Probe to depth, calculate cut depth from probe point, cut, back out of cut the calculated amount plus 0.0254mm, move the tube to the next cut position, and do it all again.

      I am probing at a speed of 2.425mm/min (secondary speed 0.0363255), which on my system equates to ~1522.9 full steps/min (and 22.812 full steps/min) I would assume this is plenty slow to not overshoot by 4 full steps?

      Due to the nature of the blade being the contact, if I were to probe the same part of the tube too many times, I'd cut through it eventually.

      I saw you posted the rc2+5 to potentially fix the 1HCL probe sticking problem, I have loaded that and relocated my probe to the 1HCL, then ran the same test. Here are the results from that.
      Starting at encoder ticks of 2250 and a Z0,
      Ending with encoder ticks of 2276 and Z0.047.
      Difference of 26 ticks which calculates to 0.0437.

      rc2+5test.jpg
      eventlog.txt
      It seems the rc2+5 fixed not only the sticky probe problem, but also the skew I was seeing.

      Edit:
      After reevaluation, I realize that I am seeing a skew here. as the ticks go up, the actual travel should be in the negative Z direction.
      I'm not sure how I would be seeing an inverted skew though, interesting implications.

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • RE: Duet3 Mini 5+ Eth + 1HCL Drifting position during probing

      Also, searching around the forum, it seems like this post might be the same issue, just with a delta printer instead of a simple z axis.

      https://forum.duet3d.com/topic/36572/v2-0-consistently-increasing-probe-heights

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • RE: Duet3 Mini 5+ Eth + 1HCL Drifting position during probing

      @droftarts
      I have tuned the Closed Loop parameters, though my system has backlash that requires me to have a lower Proportional value than most say is ideal for closed loop tuning setup (belt reduction to screw movement to linear movement, inherently there will be some backlash)

      I do not reset the Z when probing, thus the s-1 on the G30, just report value.
      I do however reset the Z at the start of the run from the average of 4 points on my tube (probe, save value, spin 90, probe, save value, spin 90, probe, save value, spin 90, probe, average values, set Z 0=average of values)
      I was wondering if having the probe on the mainboard, not the 1HCL may be causing some of this, as inherently the motor controller will have to wait for the can message to stop movement, as opposed to potentially having an interrupt stopping movement immediately if it were on the 1HCL (i don't actually know how the 1HCL is coded with probing etc).
      I did try the probe on the 1HCL at a previous time, but this tended in a "sticky" probe, where the probe would lock to 1000 or 0 and not change until I rebooted the board. This was on a previous firmware (3.6.0 beta2, vs 3.6.0-rc2+4), so may have been that causing the sticky probe, IDK.

      I home in Open loop before moving to closed loop.

      Another thought I had was maybe I'm so far into the decimals here that floating point math is causing issues. as my system only has 3mm overall Z travel maybe it'd be better to configure it as mm=um to cheat that up by a few orders of magnitude.

      Config.g here.
      config(3).g

      I call this at the start of the Run to set Z 0
      setZeroDepth.g

      then this is called at each start of a cut
      findContact.g

      here's some raw logs I have parsed to get graphs from
      eventlog4-24ClosedLoop.txt eventlog4-24OpenLoop.txt

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide
    • Duet3 Mini 5+ Eth + 1HCL Drifting position during probing

      Continuing with my project to control a tubing cutter with the Duet I have come across an interesting issue.

      The issue is, over multiple probes the Z position seems to drift upwards (positive Z) in opposition to the raw encoder values in the 1HCL.

      My blade is on an electrically isolated spindle, I have a simple probe setup between the blade and the tube. (essentially a microswitch probe)
      My Z axis is run by a 1HCL board, with a quadrature encoder on the z axis, and a magnetic encoder on the motor.
      The probe is on the Mini 5+ mainboard.

      Quadrature encoder ticks per motor revolution is 189,
      1 motor revolution is 0.318 mm

      Operation is, probe to tubing, calculate depth required, feed z to depth required, then back out of the cut and feed/rotate the tubing to the next planned cut.

      for testing I have a probing macro I call before each cut.
      The script calls G30 S-1 Then calls M122 B50.0 immediately, then passes back to the previous script to calculate the cut depth.

      I have parsed the M122 results with the "Stopped at height" results from the G30 and graphed them.
      note: Quadrature encoder ticks per motor revolution is 189, 1 motor revolution is 0.318 mm
      2nd Note: Encoder ticks should trend upwards slightly, as blade wear causes more movement before tube contact
      In Closed Loop Mode
      ClosedLoop.jpg
      Note in purple the encoder ticks are very consistent only varying by ~43 individual ticks over the range, Logically the Z value should only vary by 0.072mm as opposed to it's ~0.35mm variation

      OpenLoop.jpg
      Note in red, the ticks seem more noisy, it's due to my ineptitude in excel and setting ranges on the graph. Overall min/max is only 50 ticks, meaning 0.084mm variance as opposed to the shown 0.18mm variance.

      The skew is worrying to me, but what is more concerning is the difference in closed vs open loop operation while probing.
      Why would open loop be 2x more skew to the Z value compared to closed loop?

      I'm very new to the Duet, so if anyone has any suggestions on what may be happening, or have easier ways to do the probing/evaluation than the parsing, I'm all ears.

      posted in General Discussion
      ironhydroxideundefined
      ironhydroxide