Having recently acquired a new Monport k40. Aside from all the mechanical issues, I’m seeing many problems with the board:
$33 does nothing, PWM can only be set to 0 or 1, output (always 10kHz)
$1 does nothing, Step idle delay can never get motors to lock
Controller freezes randomly in the middle of a job or idle: Can only be fixed by cutting power to the board
No min power control to adjust for over-engraving corners. I was hinted in another thread this option is only available to Ruida controllers or M4 mode ??? (My controller is Grbl 1.1f, should have M4).
Noisy steppers (but this is expected)
Looking at “Create Manually” in “Devices”, I saw a familiar face Marlin, and realized I have Creality 4.2.7 board lying around. I have compiled my own versions of Marlin a few years ago before upgrade my 3D printer to a BigTreeTech board running on Klipper.
Looking at other threads, I have found others trying to do this same but looks like a some problems trying to get a high freq PWN signal.
Here are my questions:
How much better / worse is Marlin compared to GRBL for a laser? What are the concerns?
Maybe a third option which is neither GRBL or Marlin?
Or maybe get GRBL into the Creality board to fix the issues with $1 and $33 and have the added benefit of the board’s silent stepper drivers.
Should I jump into the rabbit hole of the Creality board? How viable is this? Are they better board options (with/without built in laser firmware)? I’m expecting a $25 to $90 range. I’m still interested in suggestions outside this range. I’ve seen other threads mentioning using an SKR board, but the OP didn’t follow up.
I’m interested in Ruida only because of it’s ability to adjust min power to compensate for over-engraving corners. Is there an option that doesn’t cost $400+?
Lightburn supports both, as far as I know, but the target for Lightburn is grbl. I think your other real option is a Ruida or dsp of some type… Marlin is also a grbl controller as far as I know.
My $1 is set to 255 to lock the steppers. As far as I know $33 isn’t real common although I’ve seen it on a couple of boards…
If you can write it to the board and when read back remains the same, you can change it. Some grbl firmware will not allow it to be changed or will reset it back to factory settings when it’s reset or rebooted.
The mks dlc32 is also a nice grbl board. It’s relatively low cost. I haven’t plugged mine into the co2, but it should work.
These are commercial based dsp controller… you pay for commercial equipment… that’s why they are more expensive. They also have a control panel you - giving you some kind of manual control. My co2 has a Ruida 6442g in it.
Supposedly firmware that handles M4 is supposed to do this…
I’ve heard no complaints about any Ruida, however they are pretty expensive — maybe more than your whole machine. They do work.
You’d have to investigate your particular firmware. I’ve seen a few of these implemented but can’t really adivse you about them since I haven’t really used this. I use it all the time on the Ruida for vector cuts.
If the pwm is wired to the laser enable line of the lps (H or L) - you limit for a co2 is set by the response time of the lps. Usually that specified as <=1mS, could be faster, but I have little data on how many lps will respond quicker or longer.
After looking at both of these, I pulled the trigger on the MKS DLC32 with a pair of TMC2209s. The difference in noise is night and day. The Y axis is still noisy because of the rods and chasis (same noise if moved by hand).
The monport controller failing to lock motors with $1=255 and was not able to HOME as part of the start gcode without triggering an ALARM 3. This was a dealbreak as it did not allow consistency when doing the same job multiple times (when the number of passes needed is unknown).
THe DLC32 fixed both of these.
I also change the default PWM Hz from 1k to 10k via $28 to match what was on the Monport controller. Was this a good idea?
The Monport controller locked the minimum duty cycle at 12%. Meaning 1% power in LB gets a 12% duty and converges at 100% to 100%. The DLC32 start at 1.4% duty for 1% power in LB. I thought $31 (Minimum spindle speed) can change this, but didn’t work. I’m guessing it only affects the Spindle ports on the board? Is there a way to change the minimum duty cycle to match the Monport? It’s just a pain to do the math to convert the numbers of my previous Material Tests.
I have not fired up a job and wanted to ask this:
The monport controller had PWN out connected to the IN port on the PSU. On the DLC32 I have the TTL to the IN as suggested from another thread:
The monport controller had a 4pin port connected to L,5V,G,24V. I’m not sure what the L is for. Can the DLC32 be powered with an external DC 24V adapter and skip the 4pins on the PSU all together?
As for the Wifi: I’m guessing this is not very useful and we can’t just ditch the USB cable to run jobs wirelessly.
PWM goes into the LC input of U2, a voltage level translator, it comes out 0 to 5V as LC-0. This turns Q1 on/off for the spindle or is picked up at J18 as the connector you showed.
The same signal drives both the spindle, J7 and the LED control at J18. If you notice Q1 only completes the ground to the spindle.
$31 is minimum spindle speed, if you expect your laser to be on at a minimum value no matter what you’re doing, I’d think this would be useful… However, you tube will likely have a minimum power where it will lase. That’s why this is usually set to zero.
When you feed a pwm signal into the IN terminal, it’s filtered and results in a dc control voltage… The Ruida also has an analog control signal that can be used here. Changing that input frequency (referred to as the period) has no significance as far as I can tell for any of these operation with a dc excited tube.
PWM is not frequency dependent, it’s based on a percentage of a period of time – a 1kHz frequency has a period of 1mS.
I’ve varied mine from 1kHz to 60kHz with no noticeable change in cut/engrave ability.
This doesn’t sound right, but I don’t know what they are doing. With a 16 bit resolution from the DLC32, I think it should be closer to 1%, Assume you measure these with something dependable?
I’m trying to get mine to work via telnet, but haven’t had any success yet… Also depends on what firmware you’re using.
There are a few threads around, but I can’t seem to locate one now… I think I had to switch over to FluidNC firmware…
Yes, I’ve triple checked the minimum PWM on the monport. It’s 12% duty cycle for 1% power, and 99% at 99% power. This makes sense, since these k40 machines are made to work out of the box, they tuned it (the firmware) to what they feel is right. I measured the DLC32 to be 1.4% duty at 1% power. I want to find the GRBL version used by this board and compile my own version. Is it out there?
I assume you have a way to measure this? What is it at 0% and 20%? Just curious.
I don’t think much makes sense how most of these are wired.
I’m not that familiar with these supplies, but I think the L- (-L) is the cathode return and the L is the laser enable. If you want it to lase, you need to pull L low or to ground. This enables it to lase. I think these are pretty well defined in the first link.
I didn’t sample the entire range, but it clearly shows monport starts at 0% duty at 0% LB, then jumps to 12% duty at 1% LB and goes linear to 100%. This is confirmed in very negative reviews for monport’s controller on amazon.
I’ve test the L pin to be directly connected to K+. It’s basically the same pin. I ask because some other threads have the wiring exactly the same as mine (TTL, G) to (IN, G), but they have L connected to -Spindle. I’m currently only testing the motion (motors) and have not fired the laser on this new board, until I make sense of this L pin.
One lasts question is regarding M4. Is this something you set with Start GCode like this?
My understanding is it lowers the power during deceleration. I’m assuming it’s turned on using M4 and turned off using M3, and there isn’t additional options to configure in Lightburn or any GRBL (like having min power % become available).
I’m not sure if I was using this mode with the monport board. It didn’t seem like power was lowered at slower speeds.
I have that link somewhere I think… I bookmarked it and then looked at the schematic and decided it was a dumb thing to do…
The PWM output of the dlc32 comes out at J18. There is no ground on J7 (Spindle) per se, it’s switched to ground by the pwm that comes out of J18. I don’t think you should be turning it on and off like this… Just use L for something like a door/water protection circuit. Or wire it to ground, which enables the laser.
If you look closely at the PSU, you can see an ethernet port with 2 LEDs, this port is connected to the Ammeter via an ethernet cable. I believe every pin on this ethernet port are redundant other pins.
The P+ pin is connected to a limit switch triggered by the lid/door. When closed, the Water Protection indicator is ON. The left LED on the ethernet port lights up.
The L or K+ pin was normally connected to the L pin on the monport board. This pin is normally 5V (high) when open. When closed or LOW, < 3V, the right LED on the ethernet port lights up. This also change the LaserSignal on the ammeter to be ON. During a job, you can see blinking on the LED, and Laser Signal changing between ON and OFF. Both off during travels, and on during lasing. The PWM signal going into IN only works when this is ON (low).
The Test fire button on the Ameter forces both LEDs to turn on, both indicators on the ammeter to be ON, and fires the laser disregarding Water Protection or Laser Signal (P+ and L)
Is there no elegant way to emulate this signal comping out of the Monport board on the DLC32? If I simply ground L, then the Laser Signal would ON and the right LED light up would all the time. This is not ideal. Maybe there is a spare pin somewhere on the board I can re-program to do this.
Why? Lots of LEDs are on when you run. Not to mention you can’t see it anyway unless you’re in there…?
Did you not follow my point of NOT using the L input on these boards? You’re trying to drive an analog device, as if it were digital.
Control these with both the L and IN inputs, you must have to have a controller source that outputs two control signals – the DLC32, nor any other grbl board that I know of fails to supply these. Wiring is rather limited under these circumstances.
If you want control over both of these signals, you have to get a DSP like a Ruida…
I guess it’s one good thing to say about the monport controller: it’s able to turn on/off the L pin during G1 S0/S1000 commands and drive an PWM signal at the same time.
I tried installing FluidNC and found the following in the config.yaml:
This is exactly what I was looking for to match the monport’s behavior, so I’m very happy about this. Also, it is able to actually run a job via WiFi without freezing right away, although it still suffers from pauses (I guess GRBL was not meant to be run over wifi).
Some things I’m unsure about FluidNC:
It seems have moved a lot of settings away from GRBL into stashed away in the config.yaml and webUI, for example, I can no longer use $1=255 as a macro to lock and unlock idle motors. Is there a setting to make some of these available in GRBL?
Also, even value changes made in the WebUI get reverted once the controller restarts.
Is there a way to assign a pin to M7/M8 to hook up an relay to turn on/off the AC powered air assist? I have seen threads where people are using SCL, but that’s the official DLC32 firmware. Would be nice to get this working with fluidNC. (EDIT: I was able to find this under Coolant as the “Flood-pin”)
Looking at the ESP32 pins, I looked for another pin similar to the one being used for PWM(gpio32). I found that pin to be gpio33, hooked it the L pin, and fired a test cut and it WORKED.
I am extremely happy how this turned out. MKS DLC32 with FluidNC did everything I wanted to do and more. My relays come in tomorrow and I’m sure I’ll hook up air assist to M8 without a hitch.
This one two punch got me:
Noise reduction of steppers with TMC2209s
Able to fix $1=255 not locking motors on the monport board
Able to home at the beginning of a job without ALARM:3
Able mimick how monport maps 1% Power in LB to 12% PWM duty cycle. This might seem like a weird choice by monport, but tests show it works better this way
Maintain my LCD indicators with enable_pin connected to L
More stable USB connection
Runs jobs through WiFi (but probably won’t use it, unreliable due to pauses)
Confident I will be able to hook up M8 to a relay to control air assist via GCode.
It’s working exactly like I expect. This K40 is my first laser machine, so I don’t know what the norm is. So certain things I’m trying to do might seem weird, but feedback has suggested this k40 is a weirdly wired machine.
Gpio32 is the TTL pin that produces the PWM which tells you intensity. It goes into the IN pin on the PSU, but I have to set L to active to even enable the laser. I set the config to use Gpio33 to do this.
The L pin blinks the ON indicator LCD. The laser icon only blinks when both items are ON. So what I’m doing is the expect use case of the PSU-LCD combo.
Yea PWM is ignored unless L is active. The L pin serves two purpose: 1) To gate keep the PWM signal from firing the laser, just like water protection does. 2) To light the right indicators on the LCD.
Honestly I don’t know why it’s doing gate keeping as P+ is already doing that. I could ground L and send the enable signal to the LCD by itself, but the connector is an ethernet cable, so it’s too much work. It works fine the way it is.