Only if the issue is USB related which I don’t suspect at this point.
Is this the version of the shield you actually have? So looks like was designed for much older GRBL versions. Have you tested PWM voltage from the Z-limit pins that you’re wired to? From the mental gymnastics I’m doing I think this should work but confirm three things:
Z+ maps to D11 on the Arduino
You’re getting proper PWM at Z+
Does laser intensity change when you increase/decrease power level?
It’s possible the issue is here as well. If you have a spare then try swapping out.
Right now I suspect something with the Shield and/or firmware options.
Can you run this command in Console and return output?
This is not what I expected. Didn’t you indicate you were using 1.1h?
One thing that’s not entirely clear to me is if your shield is compatible with anything newer than GRBL 0.8. There was a pin reassignment in GRBL I think around 0.8 to handle variable spindle. I had assumed the shield was a passive passthrough for those pins but it’s possible there are other components in play on the shield I’m not aware of.
You could try GRBL 0.8 with variable spindle disabled but that’s unfamiliar territory for me.
Earlier in the thread I was running 1.1h but that was flashed using lasergrbl. That left me with the door safety pin enabled in the firmware. So, i grabbed what I thought was the right FW and commented out the door sensor before uploading. Ended up being wrong. I finally found a post that specified the one I am running now.
The picture I uploaded shows the board. The only components you dont see is the Capacitors under the motor controllers. I certainly dont mind getting a different shield. Ill get a new arduino uno while Im at it. I know you don’t like making recommendations for specific boards/manufacturers but would you mind letting know anything I should watch out for when purchasing a shield? I’m fine with a reference post or article you might recommend.
If you’re buying new hardware the only thing I’d suggest is considering a 32-bit solution. Either an integrated solution or one that still uses a single board microcontroller.
I’d suggest a search on this forum as there are many such discussions and results.
In the wiring diagram, the endstops and PWM signal appear as single conductors. Are they wired that way or do they have a two-conductor cable to the signal + common header pins?
Does the version of GRBL you flashed have the Z axis disabled?
If the Z axis is enabled (which is a compile-time option), then GRBL will home the Z axis first and, without anything moving, will eventually fail.
That’s a serious problem: the machine has large open loops acting as EMI antennas directing the induced voltage directly into the microcontroller’s guts.
You want paired wires from the switch terminals directly to the header pins, ideally inside a shield connected to the microcontroller common terminal, to minimize the wire loop area exposed to EMI.
Because the switch wiring does not make electrical contact with anything else, there is no extraneous current flow along or inside the shield and it should not be connected outside the microcontroller to the single-point ground for the other wiring.
The PWM signal should be treated the same way: paired wires direct from the microcontroller pins.
I’d quit chasing hardware, I think it’s a firmware issue(s). The hardware looks connected properly and he can vary the pwm, so it’s working as designed.
The firmware seems to be having some kind of fault that isn’t being reported…
Maybe @berainlb may interpret this differently, but I think it’s failing during the streaming. When I get the [MSG:‘$H’|‘$X’ to unlock] I think the machine had a firmware issue, lost it’s position etc… you shouldn’t need to home or unlock it if the software didn’t fault. It also did not reset…
@berainlb can we look at the command queue in the Arduino to see what the last instructions it had in it’s queue?
I’ve been told that emi/rfi issues dominate for my whole life, but my personal experience is that it’s not as much of an issue as it’s touted. Of the hundreds of machines I’ve fixed, only two turned out to be external issues related to interference. Most of the Chinese boards (I know, the Arduino is Italian) have good protection in the input department… It also occurs at the same place, not like like you’d expect from emi/rfi interference…
With a new diy build and controller, 99% of these issues are configuration…
@berainlb I salute the suggestion you go to a 32 bit board, a bit more expensive (I paid $30 for my MKS DCS32 controller) but much more state of the art…
As far as I know many of the changes to grbl has to be made in the header file and recompiled, @gboyce are you doing this…
The MSG is a non-issue It’s more just informative. What’s likely happening in this case is that the board is resetting after “Starting stream” and the next line is just a welcome message after reconnect.
I don’t think the core issue here is firmware although the firmware may not be optimized. Note that OP was initially using firmware from LaserGRBL which is known good.
The machine isn’t locked in this condition and it’s not a forced choice. This is often just part of the welcome message.
This is correct. However, LaserGRBL comes with a facility to install firmware on Arduinos and comes with 3 pre-compiled GRBL firmware images. It’s a very reliable method and source for Arduino friendly GRBL firmware.
Wow! Thanks for all the feed back folks. I have been a bit distracted today. Im sorry but what i said earlier about the number of wired on the endstop was wrong. It is two wires. I should know… i rebuilt the cables… The laser pwm is a single wire but the positive and negative wired go to direct from the power supply which is common ground. Then there is a ground to the laser case.
I just ordered an MKS DLC32 controller. I am also going to replace the rest of the wires with high quality shielded cable. (Motors, and laser).
I am very open to any specific suggestions for the MKS DLC32 as well as any other more generic suggestions.
Thank you to everyone helping me resolve this and understand best practices. I have NEVER posted in a forum before with such positive and constructive feed back!!
Alright folks. Case closed.
I replaced the controller with an MKS DLC32. I also replaced all the wiring with high quality double shielded USB cable and grounded one end of the shield. I ran a ground wire to each seperate part of the framing and to the laser. Heres my test.