NEJE-like Laser as CNC upgrade



  • Hi there, fellow Duet users

    As what I though to be a nice upgrade to my Duet-controlled Workbee CNC, I ordered a NEJE-like Laser from Aliexpress. The specs are as these.

    Yesterday I spent most of the afternoon trying to figure out how to generate Gcode for engraving which, since I am a macOS user, turned out to be more complicated than anticipated. Finally I found Visicut, which I will be testing (open source, cross-plattform).

    Today I'm spending the day trying to figure out how will I be connecting the Laser module to the Duet. I've read through the wiki page regarding this topic, but I still have some questions.

    • If I understand that correctly, the laser I ordered accepts 3v3 PWM signals, so I do not know if I need to prepare a breakout board as the one described there.
    • Also, to work with a Laser, the Duet has to be on "Laser Mode". Usually I have it on CNC mode (obviously). So I don't know if I will have to edit the config.g file every time I want to use the Laser. Which is no big deal at all, but still. Wouldn't it be possible to set up some initial GCode on the jobs?. I am guessing the answer is no, but... or would it be better to have two separate config.g files and switch accordingly?

    Thanks in advance!



  • Really, nobody has installed this laser?



  • If you need a breakout board or not would depend on how much current the laser pwm input needs and if it can be wired directly to a pin; or if it can work with a fan output, but a fan output might not be suited due to the inverted nature of the n-channel mosfet.

    In any case, best make sure you can add a pull down to the output to ensure the laser doesn't trigger if the output is allowed to float.

    Shouldn't be any reason you can't switch to M452 in your g-code but I'd be more concerned with switching back to M453 in the event of a aborted job or something.


  • Moderator

    @FelixH I'm not sure about the wiring, but there's two ways you can set up the switching between CNC and laser. Either use a macro that runs the relevant command (M452 for laser, M453 for CNC, also M450 reports the mode it's in) and any other settings. Or use M505 and have separate config folders for CNC and laser. You then have a very simple config.g in the sys folder that calls the config.g from the relevant folder. It means that you can be sure that if you reset, it will still be in the same mode! I'd guess there will be quite a lot of settings that will need to change between CNC and laser, eg motor speeds and accelerations.

    I use M505 to be able to switch between firmware setups when testing. The sys/config.g looks like this:

    ;M505 P"RRF2"
    M505 P"RRF3"
    ;M505 P"TEST"
    M98 P"config.g"
    

    Then I have 3 folders (RRF2, RRF3 and TEST) that each have a full set of config files. You do have to manually edit the sys/config.g file to change setup, though it's just a case of commenting/uncommenting the correct lines.

    Ian



  • if you run RRF3 i suppose you could have a switch to control the mode at boot with (something like) and possibly a trigger to trigger a warning/reboot.

    M950 J0 C"thisinputpin"
    if sensors.gpIn[0].value > 0
      M505 P"Laser"
    else
     M505 P"CNC"
    M98 P"config.g"
    


  • @droftarts said in NEJE-like Laser as CNC upgrade:

    I use M505 to be able to switch between firmware setups when testing.

    a little OT, but M997 ignores M505 or is it just me?



  • I will try something like this, yes. Thanks for your inputs. A macro is what I was thinking of. I do not run RRF3 as the folks on Ooznest have not released anything new for a long time...

    Another question laser related. On the Wiki page describes wiring the Laser to the Bed PWM output with the breakout board and so on... Where can I wire my spindle to be able to control the RPM with GCode?. In order no minimize confusion in the future, I'd prefer to use the standard Mcodes for that. I don't know if it would not be compatible with having a laser.



  • @FelixH said in NEJE-like Laser as CNC upgrade:

    I do not run RRF3 as the folks on Ooznest have not released anything new for a long time...

    come to think of it you might be able to replicate the same thing with M582 in config.g and put M505 in triggern.g



  • @bearer said in NEJE-like Laser as CNC upgrade:

    if you run RRF3 i suppose you could have a switch to control the mode at boot with (something like) and possibly a trigger to trigger a warning/reboot.

    M950 J0 C"thisinputpin"
    if sensors.gpIn[0].value  < 0
      M505 P"Laser"
    else
     M505 P"CNC"
    M98 P"config.g"
    

    Can you actually do some conditionals on GCodes?



  • @FelixH said in NEJE-like Laser as CNC upgrade:

    Can you actually do some conditionals on GCodes?

    in RRF3 that should be valid +/- a few possible spelling mistakes, yes.



  • oh... too bad. I will have to wait, because it opens up a whole new realm of possibilities



  • yes, so many g-codes and so little time... 😄


  • Moderator

    @FelixH While the WorkBee does currently use RRF2 (2.0.3 I think, though it should be okay to use 2.05.1), I don't think there's anything in RRF 3.1.1 that breaks the compatibility, other than updating fans, endstops, thermistor and heater (if used) assignments in config.g (and possibly a few other codes). I haven't tested the WorkBee DWC, but DWC 1.22.6 works for me in RRF 3.1.1 with Duet 2 WiFi, on which the WorkBee interface is based. So you could create another folder to hold a RRF 3.1.1 config, and try it out, and you can always just flash firmware back to RRF2 as needed.

    Ian



  • @FelixH said in NEJE-like Laser as CNC upgrade:

    • If I understand that correctly, the laser I ordered accepts 3v3 PWM signals, so I do not know if I need to prepare a breakout board as the one described there.

    I use my Duet2 Ethernet running Firmware Version 3 without breakout board to control same laser as you ordered. The Laser needs 12V Power supply continuously and Laser beam is controlled by PWM-signal.

    Heater 3 pin controls Spindel- and Laser Power. Heater 6 pin is output of Laser PWM signal.

    This is my code to switch to laser mode:

    ; Configuration file for Duet Ethernet (firmware version 3.1.1)
    ; executed at Startup of Laser mode
    ;
    ;
    G54                                    ; 1. Koordinatensystem anwählen
    M208 X550 Y1200 Z230 S0                ; Set axis maximum
    ;
    M453 C"nil"                            ; CNC-Modus Pin für Spindel abwählen 
    M950 P0 C"exp.heater3"                 ; M42 P0 S255 schaltet Laser Spannungsversorgung ein, M42 P0 S0 schaltet aus
    M42 P0 S0			       ; Laser Power Ausschalten	
    M452 C"exp.heater6" R500 S1 Q20000     ; laser uses heater3 pin,  PWM frequency 100Hz;
    ;
    ; Tools
    M140 H-1                        ; Heizbett aus
    M563 P0 D-1 H-1                 ; Tool0 abwählen
    M563 P1 D-1 H-1                 ; Tool1 abwählen
    
    M563 P0 S"Laser"                ; Define tool 0
    G10 P0 X-7 Y-45 Z-68.5          ; Set tool 0 axis offsets vs. Headposition  -68.5 Z-Achse Nullpunkt (Laser Fokus)
    T0
    M42 P0 S0			;Laserpower aus nach Werkzeuganwahl.
    
    

    This code switches to CNC-Mode

    ; Configuration file for Duet Ethernet (firmware version 3.1.1)
    ; executed at start-up of CNC mode
    ;
    ;
    G54    ; 1. Koordinatensystem anwählen
    M950 P0 C"nil"       ; falls Laser-Modus Aktiv war, Pin freigeben
    
    M453 C"exp.heater3" R500  ; spindle forward on heater 3 pin, R=Max Spindeldredzahl
    
    ; Tools
    ;M140  S-274               ; Heizbett aus
    M140 H-1                   ; Heizbett aus
    M563 P0 D-1 H-1           ; Tool 0 abwählen
    M563 P1 D-1 H-1           ; Tool 1 abwählen
    
    M563 P0 S"Spindel"        ; Define tool 0
    G10 P0 X0 Y0 Z0           ; Set tool 0 axis offsets vs. Headposition
    
    M208 X550 Y1200 Z230 S0   ; Set axis maxima
    
    

    Switching between modes I have to redefine Heater 3 pin.

    G-code at beginning of work file is:

    G90
    T0
    M42 P0 S255   ; switches Laser Power on
    G04 2000      ; wait until Laser power is stabilised
    M05
    G55
    
    

    trailing code is:

    M05
    G04 3000
    T-1
    M42 P0 S0
    G54
    G0 X5 Y5 Z220
    


  • @radiomodell thanks a lot for the info! I'm assuming you have these snippets set in macros, right?

    So, if I get it correctly, if you have the Bed pin to control both the spindle and the laser, it means that you have to wires coming out of each terminal, so to say?

    Another question, the snippet

    M42 P0 S255   ; switches Laser Power on
    

    What does it do exactly? Does it power the Laser's PSU via a relay? Because to enable the laser or spindle the M3 command is used with a Sxxx on the movement codes, right?

    Vielen Dank nochmals!



  • @FelixH You can use these snippets in macros with firmware version 3. And I selected different I/O pins. Heater3 pin controls one solid state relais. Spindel and laser power supply are both connected to the 230V sockets controlled by relais. Heater6 pin controls laser PWM.
    In Laser mode line 9 M950 P0 C"exp.heater3" defines heater3 pin to be controlled by M42 P0 SXXX command . 0 off, 255 on. Laser PWM is defined in line 11: M452 C"exp.heater6" R500 S1 Q20000. Just mentioned wrong comment in line 11. PWM frequency is 20KHz, not 100 Hz. Sorry for that.
    Same pin controls spindel on/off in CNC mode. Thus I have te redefine pin in CNC-mode. To CNC mode in line 6 definition is released. In line 8 spindle control is "connected" to heater3 pin. Now in CNC mode it is switched by M3 command.



  • Thanks again @radiomodell . It's a lot of info right now, I shall look at in with more detail once my laser arrives. I am still on RRF 2, so I will have to adapt. I also ordered the components to build the breakout board. Just in case...


Log in to reply