Feedhold (the definitive thread?)

Thank you Neil.

The individual housing link is dead, but the description provides enough information for a search if you use “Molex KK” in search terms. Enter preferred parameters.

1 Like

Thx, I edited the thread to add that Molex-KK info, as well as adding a third #DEFINE I had missed that is required in config.h

2 Likes

So Carbide Motion knows when “Feed Hold” has been triggered, but it doesn’t provide a “Resume” button in the GUI? Is there a workaround (maybe GUI “Pause” then “Resume”?) Isn’t the timing critical part of the “Feed Hold” reaction handled at the PCB level? If so, isn’t there value to using it if it’s triggered by a spindle alarm? What voltage level is across the pins? Are they isolated from PCB ground?

I think it doesn’t know, because on a stock machine the feedhold input is not wired, so there is no reason for it to be triggered in the workflow.

Nope, that was my first try, it does accept the Pause, but since GRBL is already in feedhold state, I guess something in the answer does not please CM, and the resume button is not enabled. Which is perfectly normal, CM was not designed (and certainly not tested) to be robust against whatever evil tricksters like myself can do in their back

Yep, in theory the wired signal provide a more direct path (input electronics => arduino chip => GRBL software managing the associated interrupt to stop everything as a priority). But to be honest, when a person in involved, the difference in latency between clicking the Pause button, the USB message being sent, and GRBL stopping, and the “hardware” path is probably insignificant. It does take USB out of the equation though. And your case of wiring the output from a VFD/spindle to automatically feedhold the machine upon an alarm would probably be the one very interesting use of using the hardware input. But people who are likely to have such a setup are also likely to use something else than CM :slight_smile:

I couldn’t say, the schematics are not public and I never reverse engineered that function. I would think they did not bother implementing an opto-isolated input, but I could be wrong.
But I guess if electrical isolation from VFD control signals is a concern, then the PWM would be the first thing to look into.

2 Likes

The GRBL controller may not notify the host on these events, it may need to be polled to determine this status, not really something you’d put in the “normal user” software either way, well, not unless your hardware team had gone and put a labelled pin header on the board, in which case you’ve got an incomplete feature implemented by the hardware team but missed by the software team…

One pin is a solid 0V and the other is sat at 5V, looks like a normal pull up resistor for a remote connection to pull to ground, doesn’t seem to be isolated, which is consistent with the whole bus of home switches etc.

Indeed, and after @quicky06 experiences I have to say I’m rather tempted to opto-isolate the PWM output before connecting it to my HY VFD. I will certainly be testing for any ground differentials before doing that.

2 Likes

In all fairness and since we’re going to the bottom of things in this thread, I think that feedhold hardware input is used (or used to be used) on Nomads to manage the door safety (the machine would park when the door is opened), which was apparently mandated by European regulatory reasons

2 Likes

I wasn’t really criticising, it’s just one of those facts of life when you have multiple teams on a product, where you have parts shared between multiple products then it becomes pretty much inevitable. A big chunk of your JIRA backlog ends up being “fix this thing the other team accidentally broke when they fixed…”.

I’ve been pretty impressed with the electronics and software engineering on the Carbide products, it’s good for a small company (and much better than most large companies, not mentioning any in particular)

4 Likes

Which of the two pins is the actual signal pin and is this pin getting tied to GND or 5V when the switch triggers? I want to be able to trigger a Feedhold from my spindle controller if it decides to stop the spindle.

Here (in the US) most probably would have said “getting to the bottom of things in this thread”, which is a good thing. Any chance for changes in CM someday to make it useful? :slightly_smiling_face:

3 Likes

Thanks ! A new idiom in the bank
Honestly I really don’t think this is anywhere on the CM development radar

2 Likes

I think this is where we admit what we’re doing is in the unsupported area and take the option to use CNCjs or one of the other open source senders that Carbide enable us to use by using an open firmware.

That’s one of the things that tipped my choice toward a Shapeoko.

3 Likes

On the US version Nomad during cutting, activating the feedhold once will stop and retract, activate again and the “Start” button is enabled. If you keep it on until the retract move is done then release, the “Start” button is enabled for resume.

If the Shapeoko isn’t setup like this could it be as simple as a rewrite of CM?

Ide imagine a door switch for Shapeoko peeps would be appreciated. And with all the bitrunners out there it could be pretty useful.

6 Likes

Absolutely.

WHERE did you learn that ? I had no idea, I just tested on my Shapeoko and it does do that, which makes CM compatible with the physical FH button!

+1

4 Likes

I just walked into the garage and plugged an old limit switch into my Nomad board and ran an air cut program to test.

If the Shapeoko is already compatible then that’s great news!

3 Likes

I’ll edit the first post accordingly, this is so cool. I use a momentary switch, so it never crossed my mind to keep it held. And then I re-read your sentence and tested that triggering FH a second time…indeed re-enables the Start button…which allows one to resume.

3 Likes

And I’ll add that I started this thread thinking, this physical feedhold switch thing is mostly useful for CNCjs/UGS users, and won’t work nicely with CM, and now the conclusion is quite different: CM brings the added value of managing feedhold and resume with the same button, while with CNCjs or UGS one needs to either type “~” in the console (easy but not super convenient) or modify the GRBL code to use another input to resume (not always possible/easy)

This should have been obvious to me from the start, since the Nomad has (had?) that safety door thing.

3 Likes

I have wired the feedhold and a resume. It functions well while running a program, I need to tested it more to know if/how it will behave interrupting CM routines (probing, move to the predefined locations) although not the intended use case.
Great news on the second press or hold down of the feed hold button, the option of being able to resume from the PC is a nice bonus. I went right to the shop and verified both of these features work great.
Adding the feedhold could not be easier, polarity does not matter unless you also use the gnd terminal for the resume button. The resume does require soldering a wire to the A2 pin on the ATmega. I bought an IOTrelay just before the Bitrunner was announced and have it plugged into my vacuum’s tool port. The standby current draw of the relay does not turn on the vac so it cycles normally with the router. With the Bitsetter and automated spindle control (on/off) multi tool jobs are a breeze. I use the router’s power switch to ensure safety during bit changes, and could not be happier with the work-flow.
I would like if CM had hotkeys for Pause, Resume, and Stop so they could be easily mapped to a StreamDeck I use for jogging controls.
Below is a quick sketch of the control wiring NVR, E-stops, Vacuum, and IOTrelay. The NVR is one I had on hand it works but I’m not crazy about a 120VAC E-Stop circuit.

5 Likes

Julien, thanks for starting this thread. Yesterday I got inspired (by crashing my Z axis) to build up a hold button for my machine and it works great. Just an NO momentary switch in a 3d printed enclosure. It’s a bit of an annoyance that CNCJS can’t restart without issuing the “~” command, but honestly I use the console so much now that I’m running it, it’s not all that much of an inconvenience. Definitely worth it to have a quick “oh shit” button when something doesn’t look right vs trying to rely on the unreliable CNCJS web interface.

2 Likes

Yeah, I was hoping to add a custom “Resume” button in the “Axes” widget to automate sending the “~”, unfortunately the Axes widget is disabled/greyed-out after Feedhold, so that won’t work. I agree, the console is right there in the interface so just typing one character is not that big a deal, especially when Feedhold is not supposed to be a frequent thing anyway.

2 Likes

@Kai If you have the newer boards with the A3 pin “easily” available, you could alter the grbl source to use it as a resume switch. I don’t have that board, so I don’t know if there’s an rc filter on that pin (default is used as an output to trigger coolant). I’d recommend adding a filter if you use it.
That said, as @Julien mentioned, this is for those who feel comfortable going away from stock and potentially jacking things up.
I hope the next c3d board iteration has all pins broken out (and user replaceable drivers).

By the way, I completely forgot due to my hardware “solution”, but CNCjs DOES have a built-in cycle start button.
image

2 Likes