precisionpiezo adaptaion
-
I am trying to include bed mapping in my 3d printer run by a duet 2 wifi and always relied on a dialtest indicator. The printer is own make, a bit over engineered with reciprocating ball screws. I must admit that firmware stuff is not my forte but I managed.
I went for a precisionpiezo disk and manufactured a holder with spring loading and a stylus. The probe is plug in and removable from the printer head and fits with locating dowels so that I can remove the probe. The idea is that I do not calibrate the printer every time since everything is reasonable precise.
(1) My printer references against a Z precision switch mounted on top.
(2) The probe stylus is longer than the nozzle.
(3) I put the probing sequence in a macro.The idea is when I wish to calibrate the bed, I plug in and mount the device, run the macro to do the mapping and take everything off.
The fact that I have the stylus of the probe lower than the nozzle will not work. Is there a workaround? My other option is to modify the probe to be the same height of the nozzle.
I Have also come across some documents which say i have to run M30 to calibrate Z zero as well since I do not home via the probe.
Can someone guide me as i am a bit lost.
many thanks. -
I'm not entirely clear on what you're asking for.
Can you break it down a little more what your goal is, what hardware you're trying to use, what firmware version you are using, and maybe your config.g and homing files as they are now as a start?
Have you seen this? https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing
-
Thanks for your assistance
my config sys is below and below it is the Macro I created for bed levelling
I need to do bed mapping and use that mapping to calibrate the bed. I have designed a probe with a precisionpiezo which I managed to run.
The probe fits upon the printer head and locates with dowels for repeatability. The idea is to probe when required and not need to probe every time.
my probe is some 15 mm below the nozzle. I am probing a small area to test.
I am stuck.
I tried to run G30 standalone after referencing the machine.
M561 cancel bed mesh settings
G0 X173 Y184 F2000 Positioning
G0 Z25
G30what happens is that the probe does not touch automatically but the panle would ask me to lower the probe to touch. The Z automatic touchup is not functioning, though at some point I ran it.
I also cannot find anything where the G30 height is stored.
the idea is to then to remove the probe altogether and then touch the nozzle and find the difference between the nozzle and the probe and modify the G30 Value....; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"MENDELEVIUM 3D HULK TWIN TOOLS" ; set printer name ; NETWORK SETTINGS M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; NOTE DRIVES S0 FORWARD S1 REVERSE ;DRIVES ORIENTATION M569 P0 S1 ; X physical drive 0 goes backwards M569 P1 S1 ; Y physical drive 1 goes forwards M569 P2 S1 ; Z physical drive 2 goes backwards M569 P3 S0 ; E0 physical drive 3 goes backwards M569 P4 S1 ; E1 physical drive 4 goes backwards M584 X0 Y1 Z2 E3:4 ; set drive ;MAPPINGS M350 X16 Y16 Z16 E16:16 I1 ; configure ;MICROSTEPPING WITH INTERPOLATION SETTINGS M92 X160 Y160 Z400.00 E297.80:297.80 ; set steps per mm ;SETTING OF INSTANTANEOUS MAXIMUM SPEED CHANGES IN MM/MIN M566 X1000.00 Y1000.00 Z100.00 E750.00:750.00 ;MAXIMUM SPEEDS IN MM/MIN M203 X4000.00 Y4000.00 Z2000.00 E2400.00:2400.00 ;SET ACCELERATION IN MM/SEC SQUARED M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ;MOTORS MAXIMUM CURRENT ; NOTE 60 mm steppeprs max current 2.1A ; NOTE Board max current 2.4A M906 X2100 Y2100 Z2100 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per cent ;SET IDLE TMEOUT M84 S30 ;AXIS LIMITS OF MINIMUM TRAVEL M208 X0 Y0 Z0 S1 ;AXIS LIMITS OF MAXIMUM TRAVEL M208 X345 Y301 Z259.1 S0 ; ENDSTOPS M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop ; Z-PROBING M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed ;DEFINITION OF MESH GRID M557 X15:215 Y15:195 S20 ;CONFIGURATION OF THERMISTORS ;HEATBED M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp ;HOTENDS 0-e0 M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp ;Hotend 1-e1 M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp ;MAPPING OF HEATER OUT PUT TO SPECIFIC SENSORS ;HEATBED M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 ;MACHINE HEATERS M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2 ;AUTOTUNED M307 ;HEATBED M307 H0 R1.058 C224.9 D2.17 S1.0 V24.3 ; autotuned value ;HOTEND 0 M307 H1 R2.407 C189.6:163.8 D4.90 S1.00 V24.3 ; autotuned value ;Changelogs of Extruder 0 autotuned values ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;HOTEND 1 M307 H2 R2.562 C179.0:165.4 D3.60 S1.00 V24.3 ; autotuned value ;MAXIMUM HEATER TEMPERATURES ;S VALUE IS MAX PERMITTED TEMPERATURE ;HEATER 0-BED M143 H0 S110 ; set temperature limit for heater 0 to 120C ;HOTEND 0 M143 H1 S310 ;HOTEND 1 M143 H2 S310 HEATBED MAPPING M140 H0 ; map heated bed to heater 0 ; FANS TO COOL PART ON NOZZLE 1 & NOZZLE 2 M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ;WATER COOLER M950 F2 C"fan2" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P2 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ; Tools as per forum instruction M563 P0 S"EXTRUDER 0" D0 H1 F0 ;TOOL 0 USES DRIVE 0 AND HEATER 1 G10 P0 S0 R0 X-16.5 Y0 ; set tool 0 axis offsets M563 P1 S"EXTRUDER 1" D1 H2 F1 ; define tool 1 G10 P1 S0 R0 X16.5 Y0 ; set tool 1 axis offsets ; MISCELLANEOUS M575 P1 S1 B57600 ; enable support for PanelDue M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ; Custom settings are not defined
The bed probing macro...
; BED MAPPING MACRO ; CREATED BY TONIO 14NOV 2022 ; REFERENCE OF ALL AXIS G91 ;realtive mode G1 Z275 F1000 H1 ; move Z rapidly / 300mm up/ until Homing is triggerd G90 ;absolute mode G1 Z256 F10 ; retract z 3mm slowly G91 ;realtive mode G1 Z5 F0.1 H1 ; rehome at slow speed G90 ; return to asoute mode G1 Z261 ; back off G91 ;realtive mode G1 Y400 F1000 H1 ; move Y rapidly / 300mm up/ until Homing is triggerd G90 ; return to absolute mode G1 Y299 F100 ; retract Y 3mm slowly G91 ;realtive mode G1 Y10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 Y300 ; back off reference at absolute G91;realtive mode G1 X500 F1000 H1 ; move X rapidly / 300mm up/ until Homing is triggerd G90; return to absolute mode G1 X344 F100 ; retract X 3mm slowly G91 ;realtive mode G1 X10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 X344; back off reference at absolute ; CANCEL EXISTING MAPPING FILES M561 ; DEFINE MAP SPACING M557 X0:65 Y0:65 S20 ;PROBE TYPE SPECIFICATION M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezo ; DEFINITION OF PROBE POSITION RELATIVE TO NOZZLE G31 X32 Y-35 Z12 P600 ; RUN THE ACTUAL BED MESH OPERATION G29 S0
-
@mendelevium you have this M558 command in config.g:
; Z-PROBING
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speedIf this definition is in effect when you run G29 or G30 then it will use probe type "no probe" which is why it askes you to step the nozzle down until it touches the bed.
In the bed probing macro file you use this command before the G29 command:
@mendelevium said in precisionpiezo adaptaion:
;PROBE TYPE SPECIFICATION
M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezoSo it will run mesh probing using the piezo. If you subsequently run G30 it will also use the piezo, because you have not used M558 again to set the type back to "no probe".
Does that help?
-
@dc42
Many thanks for this will try it out and possibly move forward...
Thanks again. -
I was very busy and could not try before.
I do not know if I am doing this correctly.
If I do the the bad mapping, the G30 S-1 will command the Z probe to probe the height,
If I switch on the printer and command the G30 S-1, the probe will not move and will bring -
Error: Z probe already triggered at start of probing move.
I have made some modifications to my config. sys to enable bed mapping.
I have a macro for bed mapping
I have a macro for probe zeroing.I am copying them here for you to see.
Config Sys ; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; PRESSURE ADVANCE ;M572 D0:1 S1.50:1.50 ;Changelog ;Tested from 0.5 to 2.0 and found 1.5 better ;placed pressure advance command in simplify 3d start script ; GENERAL PREFERENCES G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"MENDELEVIUM 3D HULK TWIN TOOLS" ; set printer name ; NETWORK SETTINGS M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; NOTE DRIVES S0 FORWARD S1 REVERSE ;DRIVES ORIENTATION M569 P0 S1 ; X physical drive 0 goes backwards M569 P1 S1 ; Y physical drive 1 goes forwards M569 P2 S1 ; Z physical drive 2 goes backwards M569 P3 S0 ; E0 physical drive 3 goes backwards M569 P4 S1 ; E1 physical drive 4 goes backwards M584 X0 Y1 Z2 E3:4 ; set drive ;MAPPINGS ;M350 X16 Y16 Z16 E16:16 I1 ; configure ;MICROSTEPPING WITH INTERPOLATION SETTINGS M92 X160 Y160 Z400.00 E297.80:297.80 ; set steps per mm ;SETTING OF INSTANTANEOUS MAXIMUM SPEED CHANGES IN MM/MIN M566 X1000.00 Y1000.00 Z100.00 E750.00:750.00 ;MAXIMUM SPEEDS IN MM/MIN M203 X4000.00 Y4000.00 Z2000.00 E2400.00:2400.00 ;SET ACCELERATION IN MM/SEC SQUARED M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ;MOTORS MAXIMUM CURRENT M906 X2100 Y2100 Z2100 E1200:1200 I30 ;SET IDLE TMEOUT M84 S30 ;AXIS LIMITS OF MINIMUM TRAVEL M208 X0 Y0 Z0 S1 ;AXIS LIMITS OF MAXIMUM TRAVEL ;Z height determined by changing the z factor ;Reducing Z value lifts head UP M208 X345 Y301 Z259.1 S0 ; ENDSTOPS M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop ; Z-PROBING ;M558 P0 H5 F120 T6000 ; Removed 12/12/22 disable Z probe but set dive height, probe speed and travel speed M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezo inserted 12/12/22 ;DEFINITION OF MESH GRID ;M557 X15:215 Y15:195 S20 ;CONFIGURATION OF THERMISTORS ;HEATBED M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp ;HOTENDS 0-e0 M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp ;Hotend 1-e1 M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp ;MAPPING OF HEATER OUT PUT TO SPECIFIC SENSORS ;HEATBED M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 ;MACHINE HEATERS M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2 ;HOTEND 0 M307 H1 R2.407 C189.6:163.8 D4.90 S1.00 V24.3 ; autotuned value ;Changelogs of Extruder 0 autotuned values ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;HOTEND 1 M307 H2 R2.562 C179.0:165.4 D3.60 S1.00 V24.3 ; autotuned value ;Changelogs of Extruder 1 autotuned values ;M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limi ;MAXIMUM HEATER TEMPERATURES ;S VALUE IS MAX PERMITTED TEMPERATURE ;HEATER 0-BED M143 H0 S110 ; set temperature limit for heater 0 to 120C ;HOTEND 0 M143 H1 S310 ;Changelog ;was 250 ;HOTEND 1 M143 H2 S310 ;Changelog ;was 250 HEATBED MAPPING M140 H0 ; map heated bed to heater 0 ; FANS TO COOL PART ON NOZZLE 1 & NOZZLE 2 M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ;WATER COOLER M950 F2 C"fan2" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P2 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ; Tools as per forum instruction M563 P0 S"EXTRUDER 0" D0 H1 F0 ;TOOL 0 USES DRIVE 0 AND HEATER 1 G10 P0 S0 R0 X-16.5 Y0 ; set tool 0 axis offsets M563 P1 S"EXTRUDER 1" D1 H2 F1 ; define tool 1 G10 P1 S0 R0 X16.5 Y0 ; set tool 1 axis offsets ; FILAMENT MONITOR LASER WITH MICROSWITCH ; R Values may need setup according to different filaments ;TEMPORARY DEACTIVATED FILAMENT MONOTOR ;M591 D0 P6 C"e0stop" R1:600 E30 S1 ;M591 D1 P6 C"e1stop" R1:600 E30 S1 ; MISCELLANEOUS M575 P1 S1 B57600 ; enable support for PanelDue M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss BED MAPPING MACRO G91 ;realtive mode G1 Z275 F1000 H1 ; move Z rapidly / 300mm up/ until Homing is triggerd G90 ;absolute mode G1 Z256 F10 ; retract z 3mm slowly G91 ;realtive mode G1 Z5 F0.1 H1 ; rehome at slow speed G90 ; return to asoute mode G1 Z261 ; back off G91 ;realtive mode G1 Y400 F1000 H1 ; move Y rapidly / 300mm up/ until Homing is triggerd G90 ; return to absolute mode G1 Y299 F100 ; retract Y 3mm slowly G91 ;realtive mode G1 Y10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 Y300 ; back off reference at absolute G91;realtive mode G1 X500 F1000 H1 ; move X rapidly / 300mm up/ until Homing is triggerd G90; return to absolute mode G1 X344 F100 ; retract X 3mm slowly G91 ;realtive mode G1 X10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 X344; back off reference at absolute ;POSITIONING & ESTABLISHING Z DATUM G0 X50 Y50 Z50 F3000 G0 Z25 ;G30 ; STEP 2 CANCEL EXISTING MAPPING FILES M561 ; STEP 3 DEFINE MAP SPACING M557 X16.5:250 Y0:250 S20 ;STEP 4 PROBE SPECS M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezo ; STEP 5 DEFINITION OF PROBE POSITION RELATIVE TO NOZZLE G31 X16.5 Y-35 Z12 P600 ; STEP 6 RUN THE ACTUAL BED MESH OPEATION G29 S0 ZEROING NOZZLE MACRO ; STEP 1 G91 ;realtive mode G1 Z275 F1000 H1 ; move Z rapidly / 300mm up/ until Homing is triggerd G90 ;absolute mode G1 Z256 F10 ; retract z 3mm slowly G91 ;realtive mode G1 Z5 F0.1 H1 ; rehome at slow speed G90 ; return to asoute mode G1 Z261 ; back off G91 ;realtive mode G1 Y400 F1000 H1 ; move Y rapidly / 300mm up/ until Homing is triggerd G90 ; return to absolute mode G1 Y299 F100 ; retract Y 3mm slowly G91 ;realtive mode G1 Y10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 Y300 ; back off reference at absolute G91;realtive mode G1 X500 F1000 H1 ; move X rapidly / 300mm up/ until Homing is triggerd G90; return to absolute mode G1 X344 F100 ; retract X 3mm slowly G91 ;realtive mode G1 X10 F25 H1 ; rehome at slow speed G90 ; return to absolute mode G1 X344; back off reference at absolute ; STEP 2 CANCEL EXISTING MAPPING FILES M561 ;PROBE TYPE SPECIFICATION M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezo ; STEP 3 POSITION IN CENTER G0 X173 Y184 F1000 ; STEP 4 POSITION IN Z ABOVE BED G0 Z40 F1000 ;STEP 5 PERFORM TOUCH & ZERO G31 S-1
-
@Phaedrux
I have no G31 on my Config.sys file....
Can you have a look at my reply to dc42 at the bottom of the post.I still has not grasped the procedure.
Correct me if I am wrong-
The probe zeroing must be done before the bed mapping?The notes mention that there is a config-override.g and I have no file named as such.
Basically, I do not wish my machine to do bed leveling every time it starts.
So my idea is to have a macro for doing automatic probe zeroing and another macro for doing the bed mapping.
The correction between the nozzle height and the probe height needs to be put manually in the G31 in the config.sys (which I do not have)
I appreciate if you can guide me accordingly.
Thanks in advance, -
@mendelevium said in precisionpiezo adaptaion:
M558 P1 I0 C"zprobe.in" H5 R0.2 F1000 X0 Y0 Z100 ; piezo
I0
is not used in RRF3. If you need to invert the probe signal, use a!
before the pin name, like this `C"!zprobe.in"That may be the source of your probe already triggered message.
I don't understand what you're trying to do with the Z probe zeroing macro. With the steps you're using the G30 S-1 will give you the height you started it from, which is probably why you have a G31 Z of 12mm, which is obviously wrong.
I think you should follow these steps instead.
https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing#calibrate-the-z-probe-trigger-height