@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

Best posts made by Piet
-
RE: Problem when turning on printer
-
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
-
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!
-
RE: Trouble assigning filament sensor after using pin for GPIO
@dc42 Im using version 3.4.0beta3 in SBC mode
-
RE: Failed Duet3 & SBC firmware update (again)
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.
-
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=0G90 ; 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 -
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.
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:
Error: M956: Failed to start accelerometer data collection: INT1 errorI 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.
-
RE: Failed Duet3 & SBC firmware update (again)
That definitely helps! Updating to 3.4 takes around 30min I'd say
-
RE: Failed Duet3 & SBC firmware update (again)
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.
-
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. -
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. -
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.
-
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
-
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.
-
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?