Custom Machine/Firmware Help

Hey everyone, I have been working on making my own CNC laser machine and have exited the design stage and entered the build stage. Below is my design, which is very similar to many other simple laser machine designs.

The main difference is that most have a shaft rod running between Y Trucks to couple their movement together with one motor driving the Y axis. I wanted to have a motor for each side so that it can square itself before each job.

My concern comes when it is time to upload the firmware. I will be using a Ramps 1.4 which is what I use on my on my MPCNC Primo. What I would need is a version of the V1CNC_Ramps_Dual-2.1.1, right? This would allow me to use two end stops for the y axis. However, I would need to modify this firmware to only need the one X Endstop.

Would anyone be able to guide me through that process of setting up the firmware to match my circumstances? I am still in the building stage so I have some time to mess around with firmware before I actually need it.

Any help would be appreciated!

I could be wrong, but that looks an awful lot like a lowrider without a Z axis. It might be easier to tweak lowrider firmware to ignore Z than to remove an X driver from the MPCNC setup.

1 Like

Oh yeah that would work much better. Not sure why I didn’t think of that. I was trying to relate it to the Primo that I have instead of the LR for some reason. I think I will edit and flash the LR firmware and see how that works. Good idea

1 Like

Can use the primo dual end stop firmware, it is what I based my cnc off of (single X, dual Y).

Towards the end of those instructions is the tweaks you would need to make to the fw to not use 2 end stops on X.

Very nice! And if I am not using a Z axis at all should I just comment out the Z home direction? I don’t really want the firmware signaling the z motor driver port or looking for any z axis information.

Can probably just leave it alone on Z, I think Ryan has it set up in the menus to home only X&Y as a selection, been a minute since I have powered up my machine. Wont hurt anything to have nothing plugged in the z motor spot, just might have to do a reset if you hit home all since it will never hit a z end stop.

1 Like

I did a coreXY laser maxhine…
CoreXY Laser Engraver files on Printables.com

The downside here is that it’s a small size diode laser that I made it for. I think I am going to redesign for the NEJE A40640 though. Probably 10mm width belts too.

Of course that doesnt have auto-square, but once set uo, it’s been good because the coreXY system keeps it square unless Iet the frame move (and I don’t). I have provisions for end stops, but I’ve never actually installed them.

I think for yours, you could just use LR firmware and ignore the Z axis. Leave no end stops plugged in and it should home OK. Of course a smaller board, like an Uno CNC shield would be nice, since it has only the 3 drivers that you need. You could probably work up something using FluidNC on an ESP32 as well.

I would use the primo (not low rider) firmware as a starting point. The DualLR does some back flips to make the Z home up with dual Z.

Removing the dual X is pretty easy. It is in the configuration_adv.h. I can’t remember the name, but it is easy to find.

How are you going to auto square Y if your steppers are connected by a rod? I’m curious how that works.

Oh no I won’t be using a rod. Y1 and Y2 will have independent motion. I was just commenting on how mine defers from others I have seen, which only have the one motor and rod between them.

I have this board now. It seems to be a perfect board for a laser engraver.

Does anyone have experience with this board? I am afraid I won’t be able to configure it for two Y Endstops. Atleast I am not sure how to anyway.

This only has three drivers. How will you drive two Y motors independently? Will you not have a Z?

I see above, you don’t have a Z defined.

You should be able to configure fluidnc to have dual Y drivers and auto square homing.

Yeah there will be no Z axis so I am hoping to use X, Y1, and Y2 (Z)