CNCJS CNC Control Software


Still rises 20mm or so to high in Z but no hits/slips. I’m going to attempt an edit based on what I’ve learned today

Thanks again!!

1 Like

This one will probe Z first, so you don’t have to mess with changing distances. You can paste the stuff in parentheses with it as a reminder)

(start with the end mill 15mm ABOVE the plate, about 15mm or less from bottom left corner.)

G21 ;make sure we’re in mm
G91 ;Incremental mode
G38.2 Z-25 F75 ;Probe Z
G10 L20 P1 Z22 ;Set Current Z as 22mm - thickness of your plateG
G0 Z3 ;lift Z 3mm
G0 X-25 ;Move left 25mm
G0 Z-10 ;Move down 10mm, should be 7mm below probe surface
G38.2 X25 F75 ;Probe X to the right 25mm
G10 L20 P1 X-10.175 ;Set current X location as negative half the bit diameter - 7mm thickness
G0 X-10 ;Move left 10mm
G0 Y-25 ;Move forward 25mm
G90 G0 X5 ;Move to X5 (absolute) - will put you 5mm to the right of left edge of stock
G91 ;incremental
G38.2 Y25 F75 ;Probe Y
G10 L20 P1 Y-10.175 ;Set current Y location as negative half the bit diameter - 7mm thickness
G0 Y-10 ;Move Y-10
G0 Z10 ;Move Z up 10mm, should be 3mm above probe plate
G0 X0Y0 ;Go to X0Y0


Thanks again Neil. This version works exactly the same as CM.

Would you mind sending me macros for rapid to front, center (for tool change) and rapid to Home? I have an XL btw.

Those two combined with the probe macro you sent should be enough to help me bootstrap my way up the macro learning curve.

1 Like

Glad it worked for you, Griff. For the Tool Change Location, I use a G28. You can just jog (X,Y, & Z) to where you want your tool change to be, send G28.1 to store that location, and then anytime you want to return there just send G28. You can do the same with G30. I use that for a “parking” position for removing/placing a workpiece.
If you’d rather not use G28 or G30 (maybe you’re using them for something else), I’d use machine coordinates to set a location. Something like:
G21 ;mm
G90 ;absolute
G53 G0 Z-5 ;raise Z to 5mm below limit switch
G53 X-415 Y-415 ;move to center of X and front of Y (XL)

I’m not near my machine, so I guessed on the “X-415 Y-415”

As far as a macro for rapid to home…do you mean actual home as in where the limit switches are?

1 Like

Hmmm, I’m going to do a bit more homework on this g-code stuff before I ask anymore questions.

It’s good to know enough to know which questions to ask before you start asking questions. Ha ha.

1 Like

I made a new post regarding the tool length offset probe.


@neilferreri, when you have a minute could you set me up with a macro for Tool Change in CNCjs?

I’ve looked at the instructions for doing this but have no confidence I’d do it correctly. Thanks.

@Griff The one I posted in the other thread worked really well for setting the tool length offset. I’ve since shortened the routine. Unfortunately, every attempt at making a video hasn’t gone well. I need more hands or a tripod and some patience. I’ll see if I can get a quick and dirty one together.
What were you hoping the macro would do?

The problem I have is I’m working from a position of complete ignorance.

I ran the macro you posted, it moves the spindle to the front, left and then, very slowly, descends and fails.

Does this help?

I can’t even figure out how to manually set z-zero!

@Griff I’ve got a video uploading to youtube with a basic demo. I’ll update with a link when it’s ready.
I don’t know why you got that probe fail, but I didn’t see the macro prompts anywhere. Did you click continue? at each program pause?

I’ll update the other thread with the most recent macro as well.

Keep up the good work! I also am in love with cncjs, just discovered it and was asking the same questions you are now. I will do my best to contribute to get this probing stuff to work.

Have you figured it out? or are you still stuck at a certain spot. I’d love to continue where you left off. I have a friend who is a retired machinist who could help. I can definitely pick his brain about this ( was going to anyway)


@Luke, i thought I’d move the discussion here so we don’t hijack the thread about the Z-axis upgrade.

Not in the GUI, but easily done with a macro.

One of the reasons I like it so much. I’ve tried all of the free senders, and the dev for cncjs (@cheton) has been constantly making improvements and taking suggestions (almost to a fault). Once it gets an auto-leveling widget, I don’t see why i’d need anything else.

Feedrate, Spindle Speed, and Rapid overrides.


@patofoto Just wanted to bump this to see if you made any progress, I’m in the same spot as/with

@rmhco and Sorry for my long absence. I have not made any headway since last post unfortunately. With the Nomad, the offset value needed after probing with the tool length probe is something that I have not figured out. I was able, thanks to @neilferreri, to determine that Carbide Motion does something internally after tool length probing that cannot be done with GCode alone and CNCjs. At least that is what I remember. @neilferreri wrote a macro that performed the probing but the values stored afterwards were wrong. This only applies to the Nomad as it has a dedicated tool length probe. If you use a touch probe instead Neil’s macro works perfectly. What I would love is to be able to run a job where the GCode asks me for a tool change and after the new tool is set, probes automatically and continues milling. This is why I still use Carbide Motion. I am aware that breaking a job into separate GCode files would be easy but once I have a job dialed in, I like the convenience of a single job file.

I can’t find the Macro for this feature you were showing on your video which I believe you said you posted on the other thread. Do you have a link to that post? Thank you very much for your code.

here is the main mans list of macros! All wonderful


I’m hoping to add some details on that github. Maybe on the Wiki. I’d like to add videos for each macro, but I’m not set up for anything quality.

1 Like

Is there like a CNCJS getting started for idiots? Because I think I need to find that video.
If only Carbide would give us a way to remove the hard limits in Motion. lol.


For the life of me I couldn’t figure out why my Z limits were not woking. Answer; because I over looked $20=1. Which I might add is also talked about in this thread. Yeah, I feel a bit of an idiot. lmao. Soft limits are now working fine.
Griff / neilferreri Does, or is the macro you guys have been workin on for the Carbide 3d probe?