Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. Piet
    • Profile
    • Following 0
    • Followers 0
    • Topics 15
    • Posts 64
    • Best 7
    • Controversial 0
    • Groups 0

    Piet

    @Piet

    9
    Reputation
    2
    Profile views
    64
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Piet Unfollow Follow

    Best posts made by Piet

    • RE: Problem when turning on printer

      @t3p3tony Excuse me, i saw a bookmark next to my message and wondered what it was and clicked it and it disappeared. I accidentally reported myself after... Woops 🙂

      posted in Using Duet Controllers
      Pietundefined
      Piet
    • RE: Mesh bed leveling without M557

      For future reference, this works.
      The probe file can be adjusted to allow for different types of probing.

      if !exists(param.X) || !exists(param.Y)														;if parameter X and Y are given
      	echo "Make sure parameter X and Y are given (C and S optional). Aborting probe move."	;notify user
      	
      G1 X{param.X} Y{param.Y} Z{sensors.probes[0].diveHeight} F6000								;move to given X and Y coordinates and predefined diveheight
      M400																						;wait for moves to finish
      
      M98 P"waitForHeaters.g" H01
      
      M568 P0 A0																					;turn the extruder heater off (interference changes sensor reading)
      
      G4 S1																						;wait 1 second
      
      M98 P"preprobe.g"																			;call macro to determine triggervalue and see if it is okay to proceed probing
      
      ;M291 R"Probing." P" " S1
      
      if global.proceedProbe = true																;if its okay to proceed probing
      	if exists(param.C)																		;if parameter C is given
      		if exists(param.S)																	;if parameter S is given
      			G30 X{param.X} Y{param.Y} P{param.C} S{param.S} Z-9999							;probe move
      		else																				;otherwise
      			G30 X{param.X} Y{param.Y} P{param.C} Z-9999										;probe move
      	elif exists(param.S)																	;if parameter S is given
      		G30 X{param.X} Y{param.Y} S{param.S} Z-9999											;probe move
      	else																					;otherwise
      		G30 X{param.X} Y{param.Y} Z-9999													;probe move
      		
      elif (global.proceedProbe = false)															;if it isnt okay to proceed probing
      	echo "Aborting probe move"																;notify user
      
      ;M292
      
      M568 P0 A1																					;set the extruder heater to standby
      
      if global.bedLeveled == 0	
      	G32
      
      M98 P"probe.g" X525 Y250
      
      echo >"heightmap.csv" "Height map file generated at", state.time
      echo >>"heightmap.csv" "xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum"
      echo >>"heightmap.csv" global.xMin,",",global.xMax,",",global.yMin,",",global.yMax, ", -1 ,",global.xSpacing,",",global.ySpacing,",",global.xNum,",",global.yNum
      var y = global.yMin
      var i = 0
      
      G90
      
      while var.i < global.yNum
      	var x = global.xMin
      	var j = 0
      	while var.j < global.xNum
      		M98 P"probe.g" X{var.x} Y{var.y} S-1
      		M400
      	
      		if var.j == 0
      			set global.meshLine = sensors.probes[0].lastStopHeight - sensors.probes[0].triggerHeight
      		else 
      			set global.meshLine = global.meshLine ^ "," ^ sensors.probes[0].lastStopHeight - sensors.probes[0].triggerHeight
      		
      		set var.x = var.x + global.xSpacing
      		set var.j = var.j + 1
      	
      	echo >>"heightmap.csv" global.meshLine
      	set var.y = var.y + global.ySpacing
      	set var.i = var.i + 1
      
      posted in Gcode meta commands
      Pietundefined
      Piet
    • RE: Using bed leveling screws with independent z motors

      @engikeneer That is my concern, i do also have independent z sensors so i know where every Z-motor is before probing. I think there is something to be said that with a good construction it is most likely redundant but the printer isn't build yet so im just speculating about the best approach to take to make sure it goes well anyways. Thanks for the feedback!

      posted in General Discussion
      Pietundefined
      Piet
    • RE: Trouble assigning filament sensor after using pin for GPIO

      @dc42 Im using version 3.4.0beta3 in SBC mode

      posted in Filament Monitor
      Pietundefined
      Piet
    • RE: Failed Duet3 & SBC firmware update (again)

      @rushmere3d

      Good to hear, I'm not sure i had the same error message coming from a clean image (Invalid protocol version 6). Read somewhere on the forum that it had to do with dissimilair versions on the pi and duet but I'm not sure.

      posted in Firmware installation
      Pietundefined
      Piet
    • RE: Using bed leveling screws with independent z motors

      @Phaedrux Thanks for the help. This thread has got me thinking and for the production run I'll most likely use a different solution (less constrained so motors can do its thing). For the prototype I will see if it is helpfull if necessary at all.

      Right now I have it working with 4 adjustment points using the following script:

      M561 ; clear any bed transform

      M98 P"homexyu.g" ; home the x, y and u axis

      T0 P0 ; select tool 0
      G1 X51.3 Y75 F5000 ; move to first probe coordinates
      G91 ; relative positioning
      G30 K0 Z-9999 ; probe bed with tool 0 and set Z=0

      G90 ; absolute positioning
      T1 P0 ; select tool 1
      G1 X51.3 Y75 Z12.5 U-7.5 F2000; ; move the bed 7.5mm, and the U axis 15mm down
      G91 ; relative positioning
      G38.2 Z-9999 P1 ; probe bed with tool 1 and stay at Z=0
      M400
      G10 L1 P1 X0 Y0 Z{-move.axes[2].machinePosition} ; set Z-offset
      M500 P10 ; save offset
      M400
      G1 Z5 ; move the bed 5mm down
      G90 ; absolute positioning
      M400
      M117 "Z offset for tool 1 is set and saved"

      T0 ; select tool 0

      G30 P0 K0 X51.3 Y75 Z-9999 ; probe above leadscrew
      G30 P1 K0 X400 Y448.7 Z-9999 ; probe above leadscrew
      G30 P2 K0 X748.7 Y75 Z-9999 S3 ; probe above leadscrew and run compensation

      posted in General Discussion
      Pietundefined
      Piet
    • RE: Tool change offset execution order

      @jay_s_uk Thank you, that was very helpful. Im assuming you meant G1 R2 Z0, that worked for me.

      posted in General Discussion
      Pietundefined
      Piet

    Latest posts made by Piet

    • Accelerometer INT1 error

      Hi All,

      I'm upgrading my printer a bit and decided to install an accelerometer, an lLIS3DSH to be exact.
      I followed the instructions in the documentation for the connections and about 50% of the time it recognises the accelerometer and other times I'll get Error in start-up file macro line 50: Accelerometer not found on specified port.

      If it gets recognised I can call it with M955 P0 and it responds with Accelerometer 0 type LIS3DH with orientation 20 samples at 1344Hz with 10-bit resolution, SPI frequency 2000000. I declared it with M955 P0 C"spi.cs2+spi.cs1"M955 P0 C"spi.cs2+spi.cs1"
      I used an old Cat5e cable of ~70cm with the following connections:

      • VCC (3.3V) - Orange
      • GND - Orange/White
      • SCK - Green
      • SDA - Green/White
      • INT1 - Brown
      • SDO - Brown/White
      • CS - Blue

      When I use the plugin and it makes the first move it will return the following error:
      c423f742-db9a-4c81-a669-a467b227d374-image.png
      Error: M956: Failed to start accelerometer data collection: INT1 error

      I checked the wiring and also used a multimeter to beep the wires.

      My diagnostics:

      RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.4 (2024-11-24 10:43:42) running on Duet WiFi 1.02 or later
      Board ID: 08DGM-956GU-DJMSN-6JKD2-3S46Q-TVQBH
      Used output buffers: 6 of 26 (14 max)
      Error in macro line 50 while starting up: Accelerometer not found on specified port
      === RTOS ===
      Static ram: 23488
      Dynamic ram: 72168 of which 32 recycled
      Never used RAM 14936, free system stack 184 words
      Tasks: NETWORK(2,nWait 6,13.9%,222) HEAT(3,nWait 5,0.0%,328) Move(4,nWait 5,0.0%,361) MAIN(1,running,85.3%,758) IDLE(0,ready,0.8%,29), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:02:01 ago, cause: power up
      Last software reset at 2025-03-22 22:10, reason: User, Gcodes spinning, available RAM 14936, slot 1
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      MCU temperature: min 24.2, current 29.7, max 30.0
      Supply voltage: min 24.1, current 24.3, max 24.6, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 99/2, heap memory allocated/used/recyclable 2048/52/0, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min n/a
      Driver 1: standstill, SG min n/a
      Driver 2: standstill, SG min n/a
      Driver 3: standstill, SG min n/a
      Driver 4: standstill, SG min n/a
      Driver 5: 
      Driver 6: 
      Driver 7: 
      Driver 8: 
      Driver 9: 
      Driver 10: 
      Driver 11: 
      Date/time: 2025-03-22 22:40:39
      Cache data hit count 4277550534
      Slowest loop: 7.27ms; fastest: 0.19ms
      I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
      === Storage ===
      Free file entries: 10
      SD card 0 detected, interface speed: 20.0MBytes/sec
      SD card longest read time 1.2ms, 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, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
      no step interrupt scheduled
      Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
      === DDARing 0 ===
      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
      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
      Daemon is idle in state(s) 0
      Autopause is idle in state(s) 0
      Q0 segments left 0
      Code queue 0 is empty
      === Filament sensors ===
      check 0 clear 493929
      Extruder 0 sensor: no data received
      === Network ===
      Slowest loop: 133.35ms; fastest: 0.00ms
      Responder states: 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, notrdy 0, noresp 0
      Firmware version 2.2.0
      MAC address 60:01:94:73:5f:25
      Module reset reason: Turned on by main processor, Vcc 3.36, flash size 4194304, free heap 34260
      WiFi IP address 192.168.178.206
      Signal strength -66dBm, channel 11, mode 802.11n, reconnections 0
      Clock register 00002002
      Socket states: 0 5 0 0 0 0 0 0
      

      Can anyone give me some pointers or tell me what I'm doing wrong? That would be greatly appreciated!
      Thanks in advance.

      Kind regards, Piet.

      posted in Duet Web Control
      Pietundefined
      Piet
    • RE: Skip desktop view in SBC mode

      @chrishamm That worked, thanks.

      posted in Duet Web Control
      Pietundefined
      Piet
    • RE: Failed Duet3 & SBC firmware update (again)

      @chrishamm

      That definitely helps! Updating to 3.4 takes around 30min I'd say 😌

      posted in Firmware installation
      Pietundefined
      Piet
    • RE: Failed Duet3 & SBC firmware update (again)

      @rushmere3d

      Good to hear, I'm not sure i had the same error message coming from a clean image (Invalid protocol version 6). Read somewhere on the forum that it had to do with dissimilair versions on the pi and duet but I'm not sure.

      posted in Firmware installation
      Pietundefined
      Piet
    • RE: Failed Duet3 & SBC firmware update (again)

      @rushmere3d I had the same thing with a fresh DuetPi installation.
      Can you check what it posts if you type sudo journalctl -u duetcontrolserver into putty.
      For me i think it had to do with dissimilair firmware versions on the RPi and duet but i'm not sure. When i updated to the newest stable release (3.4) it started working again.

      posted in Firmware installation
      Pietundefined
      Piet
    • Skip desktop view in SBC mode

      Hi all,

      I was wondering if there is a way to skip the desktop screen when starting up my printer using an RPi. Right now when it boots up it shows the desktop screen off the RPi for a couple seconds before starting DWC.

      Thanks in advance,
      Piet.

      posted in Duet Web Control
      Pietundefined
      Piet
    • Website DWC does not work

      Hi all,

      I'm running in SBC mode.

      Yesterday i accidentally deleted a directory from my SD card which made it so the UI wouldn't show on the rpi screen. I opted to go for a new install so I flashed a new image of duetpi and updated RRF to 3.4RC2.

      Now it does not show the web interface in the browser (I am using the right IP). I can connect to it using SSH and it does show the interface on the rpi screen just not in the browser. Strange thing is normally when i scan for IPs using advanced IP scanner I can see a dropdown arrow which shows the webpage however now that's not the case.

      I've uploaded the new 3.3 DWC files to the /www folder but it's still not working.

      Does anyone have any idea?

      Thanks in advance, Piet.

      posted in Duet Web Control
      Pietundefined
      Piet
    • RE: Mesh bed leveling without M557

      For future reference, this works.
      The probe file can be adjusted to allow for different types of probing.

      if !exists(param.X) || !exists(param.Y)														;if parameter X and Y are given
      	echo "Make sure parameter X and Y are given (C and S optional). Aborting probe move."	;notify user
      	
      G1 X{param.X} Y{param.Y} Z{sensors.probes[0].diveHeight} F6000								;move to given X and Y coordinates and predefined diveheight
      M400																						;wait for moves to finish
      
      M98 P"waitForHeaters.g" H01
      
      M568 P0 A0																					;turn the extruder heater off (interference changes sensor reading)
      
      G4 S1																						;wait 1 second
      
      M98 P"preprobe.g"																			;call macro to determine triggervalue and see if it is okay to proceed probing
      
      ;M291 R"Probing." P" " S1
      
      if global.proceedProbe = true																;if its okay to proceed probing
      	if exists(param.C)																		;if parameter C is given
      		if exists(param.S)																	;if parameter S is given
      			G30 X{param.X} Y{param.Y} P{param.C} S{param.S} Z-9999							;probe move
      		else																				;otherwise
      			G30 X{param.X} Y{param.Y} P{param.C} Z-9999										;probe move
      	elif exists(param.S)																	;if parameter S is given
      		G30 X{param.X} Y{param.Y} S{param.S} Z-9999											;probe move
      	else																					;otherwise
      		G30 X{param.X} Y{param.Y} Z-9999													;probe move
      		
      elif (global.proceedProbe = false)															;if it isnt okay to proceed probing
      	echo "Aborting probe move"																;notify user
      
      ;M292
      
      M568 P0 A1																					;set the extruder heater to standby
      
      if global.bedLeveled == 0	
      	G32
      
      M98 P"probe.g" X525 Y250
      
      echo >"heightmap.csv" "Height map file generated at", state.time
      echo >>"heightmap.csv" "xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum"
      echo >>"heightmap.csv" global.xMin,",",global.xMax,",",global.yMin,",",global.yMax, ", -1 ,",global.xSpacing,",",global.ySpacing,",",global.xNum,",",global.yNum
      var y = global.yMin
      var i = 0
      
      G90
      
      while var.i < global.yNum
      	var x = global.xMin
      	var j = 0
      	while var.j < global.xNum
      		M98 P"probe.g" X{var.x} Y{var.y} S-1
      		M400
      	
      		if var.j == 0
      			set global.meshLine = sensors.probes[0].lastStopHeight - sensors.probes[0].triggerHeight
      		else 
      			set global.meshLine = global.meshLine ^ "," ^ sensors.probes[0].lastStopHeight - sensors.probes[0].triggerHeight
      		
      		set var.x = var.x + global.xSpacing
      		set var.j = var.j + 1
      	
      	echo >>"heightmap.csv" global.meshLine
      	set var.y = var.y + global.ySpacing
      	set var.i = var.i + 1
      
      posted in Gcode meta commands
      Pietundefined
      Piet
    • Writing M122 to file

      Dear users,

      I'm wondering if there is a way to write the diagnostics output of the M122 command to a text file using meta Gcode.

      Thanks in advance, Piet.

      posted in Gcode meta commands
      Pietundefined
      Piet
    • RE: Mesh bed leveling without M557

      @t3p3tony Smart! I don't have a heightmap saved, do you by any chance have an example so i can see how it's formatted?

      posted in Gcode meta commands
      Pietundefined
      Piet