µCNC

FWIW, the MPCNC is X2Y2Z and the low rider is X2YZ2. The Rambo or the ramps boards are used to drive the 5 motors. I am not asking for support of those features, but if that’s what you’re shooting for, it is 2 dual axis. In the normal configuration, we drive both of those dual motors with serial wiring.

The GRBL32 implementation can square the two Y axis separately, I asked @buildlog about how it’s done, this is what he sent me, maybe it could be helpful. As far as XY2, that might be just fine for a laser, since I don’t have a motor driven Z in my design. Is that the main limitation of the UNO for this use? not enough I/O pins? If it’s possible to reach GRBL LPC speeds and have dual squaring Y, this could be a game changer for building lasers without requiring a long drive shaft or dual shaft motors.

Again, thank you for your work. I would be willing to fund more controllers for you to play around with if it helps.

This is a special feature of Grbl_ESP32 for gantry style machines. While it is only a 3 axis machine, you can turn off either side of the gantry to allow squaring. The switches share an I/O pin. Since Grbl knows what axis it has moved, it can safely assume which switch was triggered.

Wait, I’m rereading your reply, so does that mean we can sacrifice another function to allow cloned axis to self square? Which pins are able to be used and what function would we lose? I understand about the pins being required to be on the same port, but I’m not sure which pins can be used that meet that requirement.

In the beta.2 branch the limitation of having all pins in the same port is gone. You are free to configure the pins anywhere you like it. If you want a XY2Z machine on an Uno with minimal pin wiring differences to Grbl it can be done. I’m only mantaining the wiring scheme of Grbl to make it a matter of plug-n-play between firmwares. Otherwise I would use a complete different pin configuration. My question was which pin do you want to lose (the Cycle Start/Resume, the spindle dir, the steps enable?)

As it is now…no. µCNC checks if the wrong limit switch was triggered and sends an alarm (to prevent bad wiring).

I was actually thinking of buying myself an Arduino Due to start playing around with it too. If you or anyone is willing to contribute to that it would be awesome.

Your comment just gave me an idea for the dual drive thing that may satisfy both performance and kinematics simplification. Tell me something is more than 2 axis with dual drive a common/used approach? If not I think I will go ahead with my idea.

I can’t speak for the rest of the cnc world, but here at v1, just two dual axis are used. I have seen printers with triple Z for actual auto bed leveling. But I can’t imagine that being useful in CNC.

Ahh, so using the same pin for one z limit switch wouldn’t work? Can this be overcome with a different board with more i/o? Like the Mega or the rambo (which has a 2560, I think) Then again, the mini rambo would have an unused E axis that could run dual y axis?

1 Like

I could allow µCNC to temporarily read a switch has a different switch, but that would mean I would give up on a safety feature :grimacing:. I would rather not do that. If you are currently using all of Grbl-Uno pinout (probing, coolant etc…) I guess the only option is to use a Ramps or Rambo board. And yes in beta.2 that can be done and I may be able to provide a compiled version for you to test. You just need to provide the full specs of what you need (depending on how many axis, how many limit switches, and all the other IO-wise stuff and the target AVR board).
I’m working on the idea I had from @jeffeb3 comment so if you wait a day or two I think I’ll have something better…I hope :stuck_out_tongue_closed_eyes:

I’m not using any of the standard accessory pins except for Z probe and the spindle pin, would that be enough to add a second y axis with z limit switch? I will message you once I layout what I’m looking for. I could possibly contribute a due soon, if it would help.

but yes, if you can figure dual motor, dual axis, dual endstops, that would achieve the same goal I think.

These machines aren’t strong enough to really damage themselves. They can certainly crush an endstop switch, but if the hit their limit, they will just skip steps.

1 Like

The biggest, best, and arguably only safety feature for these machines is an attentive operator watching the entire operation, standing near a master cut-off switch and/or fire extinguisher.

1 Like

Yes that would do the trick for allowing using a Uno board. The unused pin of Grbl and the coolant enable pin could be used for the second Y drive and Y limit switch. That would mean 4 axis on a Uno board. That would reduce the maximum 30Kzh step rate. But I’m already working on the workaround…stay tuned :stuck_out_tongue_winking_eye:.
Never the less I can send you a configuration with the current status of the beta.2 patch and you could give it a run (test the homing motion, g-code processing, etc…)

Yes…but that noise…TTRRRRRRRRR…:grimacing::grimacing: :rofl::rofl::rofl:

Yes an watchfull operator is one of the best preventive measures. It only as a flaw. It relies on human factor. :rofl::rofl::rofl:

If the general opinion is that it should not have this feature I can modify the firmware to do it. But in that case why the need of several limit switch pins on the controller boards. All axis limits connected in series would do the trick and a single limit switch pin would be enough (for non dual drive machines at least).

1 Like

In our case, specifically for CNC work, the endstops are used only for squaring the gantry in conjunction with dual drives. The primary reason for this is that “home” is relative to the workpiece for CNC jobs. It’s then the responsibility of the operator to ensure that the job they are running is appropriate for the stock they have in their machine.

3D printers are nice, neat consumer-level machines that are simple for any neophyte to dip their toes into and just start trying stuff with at a minimal danger/risk level. CNC is a wholly different beast. There are fast-spinning hunks of extremely sharp metal, the real risk of fire, and a machine that doesn’t know the difference between hardwood and your hand. It does, in fact, require a higher level of preparation and assumption of risk. The fact that Ryan has lowered the cost and technical barriers in no way lowers the risk factors inherent in the process. One of the wonders of his achievement is this very community that helps people over that initial period of clueless learning. What would normally be an apprenticeship in a machine shop or other manufacturing floor, the people here give timely, useful advice to help people have positive, safe, and successful experiences with their tools.

As Jeff mentioned, the machines as designed aren’t powerful enough to cause any real damage by driving past their envelope (endstops are cheap and easily replaced). The biggest danger is actually having something else go wrong and starting a fire because the collet is rubbing on the workpiece, or chips/dust aren’t clearing properly.

3 Likes

So from your stand point this additional check (the right limit is being activated) is pointless and can be removed right?
If that is the general opinion and it really is more of a limitation than a feature it is gone.

Edit: and actually that would simplify the code. The limit switch ISR could be limit blind and the code would be more clean

By “right” limit, I assume you mean the Y-max limit? Yes. In fact, once you’ve homed/squared the machine, you could ignore the endstops completely (that’s what we do in Marlin). Do you have a machine-based workspace defined in the configuration? i.e., could you do soft limits, and just prevent the gcode from driving the tool outside a predefined machine envelope?

Yes.

That feature is already present in µCNC and is configurable just like in Grbl. If a command makes a trajectory outside the specified machine dimensions (configurable) it can safely stop the machine and trigger an alarm.
µCNC configurations are very similar to Grbl with minor differences.

In the “standard” MPCNC, there are no endstops and no softstops (software stops). The double motor axis are wired in series. It is very beginner friendly. The only trick is that when you enable the steppers, they need to start squar-ish. In Ryan’s preconfigured versions of Marlin, this is the only behavior for the low rider (although some wild folks have done dual endstops on their low riders).

In the “dual endstop” version, there is an endstop for each x and y motor. They are polled (or maybe ISR, dunno) during homing (which is one axis at a time). Once the machine has homed, the endstops are ignored, and the softstops are enoabled on the X and Y. The purpose on enabling the SS is to protect the endstops. I don’t have hard numbers, but my guess is that most people do not have dual endstops, and the experts who are more likely to try uCNC, are more likely to want DE.

Marlin doesn’t support workspace coordinates by default either, so jobs on dual endstop machines are positioned in CAM. Otherwise, we just jog to the origin and send a G92 to reset zero.

I think this is exactly what K said, but I felt like it was useful to lay it out explicitly this way.

3 Likes

OK I get that. Actually µCNC can be configured to have multiple limits “software wired” in the same pin. The only thing I have to do is to remove the limit “correctness” check and it will act like like @kvcummins suggested. The thing is that it will report multiple limits but like you said. Limits should be only hit in any homing or pre-homing stage.