Thank you for the grbl-LPC work @cprezzi It is running well on my smoothieboard/CoreXY 1260x650mm 60W laser.
I do have two questions:
First, is it possible to have a door/Estop “kill button” similar to this? http://smoothieware.org/killbutton currently my code continues to run when an Etsop is pressed or door is opened( I do kill my 24V input and laser PSU though). It would be nice to entire a reset state though so the code is killed.
Second my Laser power supply really wants to have a two wire control scheme, one “IN” pin for power control (PWM) and one low signal to fire the laser. I have this working successfully with the smoothie firmware using the dual pin config https://github.com/LaserWeb/deprecated-LaserWeb3/wiki/Firmware:-Smoothie-Dual-Pin-Config-(PWM-and-FIRE-pins) How would I get this functionality in grbl-LPC? a pin that is mapped to M4 somehow?
Grbl supports hardware switches for Reset, Feed Hold, Cycle Start and Safety Door, but in grbl-LPC they are not mapped to a port yet.
Which port would you like to use for that? Port 2.12, as in the smoothieware description?
Two pin configuration for Spindle/Laser is also supported by grbl but not configured in grbl-LPCs cpu-map.h.
I could prepare these configurations for you, if you like.
Thanks for getting back to me @cprezzi , I would really appreciate you preparing the configuration files. I suppose keeping the pins to what smoothie uses would be easiest for others to follow.
I believe second pin for “laser module ttl pin” is now 1.30, I linked an old config up top. Are you able to allow for this pin to be inverted if needed?
@Adam_Mitchell I realized that you use a CoreXY system. Are you able of compiling grbl-LPC yourself? If so, I could just send you the changed files.
@cprezzi I am compiling myself. Just the changed files would be great.
I was not able to test it, because I don’t own a smoothieboard.
Please report back, if it works!
If so, I will update my github repo.
As for the inversion of the laser enable. I’m not sure if that works in grbl but an easy solution would be to use one of the mosfet outputs (switched pulldown) instead of a digital pin.
I have the spindle enable working partially. I had to move the pin to Port 2 for some reason, the port 1 pins did not set as outputs… I am using P2.4.
On pause the enable pin goes low, on resume it stays low. I am not sure what command the LightBurn software is sending on resume. I am waiting to here back. So I can’t say for certain where the issue is.
The safety door is not working, in cpu_map.h it says not to use Port1 for control if other inputs (limit switches) are used on the same port. I tried to edit the cpu_map.h to move the pins to Port2 but I get a compile error.
Inversion of laser enable does not work in the config as you suspected.
I received a response about lightburn pause/resume.
“It uses M5 followed by ! to pause, then ~ to resume followed by M4 (or M3)”
@Adam_Mitchell Most hints in the files are targeted to the avr328 mcu and was not checked when ported to the LPC.
You don’t need to invert the enable signal in grbl-LPC, if you use pin 2.4, you could just use the mosfet output.
With M4 (in laser mode), grbl takes care to adjust the PWM value according to the actual speed. No movement = 0% PWM. So M5 is not needed for a pause.