Cannot turn on laser without G1 and movement for location.
-
Hi, I have just rebuilt the control hardware for my MPCNC machine using a duet3 mini5+ board called the Big Dipper. Firmware is RRF 3.4.4 . I have connected a 'Laser Tree LT-40W-F23' laser module to the designated laser port which uses 'out6' as its PWM control. Everything is working fine except that I cannot find a way to turn the laser on at low power for location. The laser is normally turned on by G1 Sxx commands but only stays on while the G1 movement is in operation. Trying to turn it on with 'G1 S1' has no effect and the macro 'M950 P0 C"out6" Q500
M42 P0 S0.1' suggested elsewhere on this blog just tells me that the port is in use elsewhere. My config.g is below. Your help would be much appreciated as my sanity is at stake......; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.15 on Sat Nov 26 2022 15:03:43 GMT+0000 (Greenwich Mean Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"CNC - laser" ; set printer name
M918 P1 E4 F2000000 ; configure direct-connect display
M950 J1 C"io6.in" ; set io6.in to work with emergency stop switch
M581 P1 T0 S1 R0 ; emergency stop; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.0 S1 ; physical drive 0.0 'X1' goes forwards
M569 P0.1 S0 ; physical drive 0.1 'X2'goes backwards
M569 P0.2 S0 ; physical drive 0.2 'Y1' goes forwards
M569 P0.3 S1 ; physical drive 0.3 'Y2' goes backwards
M569 P0.4 S0 ; physical drive 0.4 'Z' goes forwards
M584 X0.0:0.1 Y0.2:0.3 Z0.4 ; set drive mapping
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X100.00 Y100.00 Z2560.00 ; set steps per mm
M566 X500.00 Y500.00 Z300.00 ; set maximum instantaneous speed changes (mm/min)
M203 X3500.00 Y3500.00 Z700.00 ; set maximum speeds (mm/min)
M201 X300.00 Y300.00 Z250.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X-650 Y-600 Z-250 S1 ; set axis minima
M208 X650 Y600 Z200 S0 ; set axis maxima; Endstops
M574 X1 S1 P"io5.in+io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin ^io0.in
M574 Y1 S1 P"io2.in+io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ^io1.in
M574 Z2 S1 P"io4.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin ^io2.in; Z-Probe
M558 P5 C"^temp0" H5 F7200 T144000 ; set Z probe type to switch and the dive height + speeds
M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
G31 P500 X0 Y0 Z0.7 ; set Z probe trigger value, offset and trigger height
;M557 X-635:215 Y-585:195 S20 ; define mesh grid; Heaters
M140 H-1 ; disable heated bed (overrides default heater mapping); Fans
;M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency
;M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off; Tools
M563 P0 S"cnc" F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
M563 P1 S"laser" D1 F0 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C; Custom settings are not defined
; Miscellaneous
T0 ; select first tool; laser
M452 C"out6" R255 F1200 ; Enable Laser mode, on out6, with max intensity being 255, and a PWM frequency of 1200 -
@Ian-0
AFAIK it's not a bug but a safety feature.
A workaround for your location macro could be to set the steps/mm to zero for XY axes and fake a move. At the end you have to reset the position with G92 X... and of course restore the real steps/mm.Try it with caution, it's untested.
-
@Ian-0 yes it's a safety feature. However, we have a feature request to allow it to be overridden for special purposes such as focussing the laser. Meanwhile, a workaround is to create a dummy axis (e.g. U) using M584. Then you can send e.g. G92 U0 G1 U100 F100 S255 to turn the laser on for one minute