Like many new forums, the excitement and

Because I want to jog the router not go back to a fixed position. Going to project home is okay as long as that’s an unmilled corner. But if I home in the center of the material I will potentially have milled away material so I can’t set Z off that position. I need to move the router to a position that still has original material height left to zero off of.

If 1F comes up with that as their fix then I can get rid of my customization. But I am now responsible for doing that. Easy enough for this example but what if I decide to change my workflow and always use the lower left for my project home and I’m not milling that corner so I can use my modification. But they change the default to go somewhere the controller determines has not yet been milled and only allows Z axis movement. Now I still want my mod because it works in my workflow. But can I keep it or is their change going to execute first and then my customization or vice versa? Or do they kill my customization altogether?

I have found that customizing core functionality of most systems to provide what should be a general use case when a reasonable workaround exists, often turns out badly and requires more customization that cascades over time making a hash out of things. Especially when the producer has acknowledged the issue and stated they’re working on a solution.

So it’s not that I fear making the change, it’s that I don’t want to dig a hole that I then need to climb out of.

1 Like

Hey Jim,

I understand, you really wait for Onefinity or Buildbotics implement that you can move around all axes with the joystick during a tool change (M6) in a running gcode program, and then you want to continue the running program at a different project’s coordinates. But this would require a gcode program that takes this into account.

But here you assume that tool length probing always has to happen on the workpiece.

It does for me. I have years of designs I’ve created using the top of the workpiece as the 0 point (which I’ve seen is more the general case than using the wasteboard as the 0). I think I’ve zeroed off the table only a couple of times in the past 7 years.

1 Like

Hey Jim,

you really wait for Onefinity or Buildbotics implement that you can move around all axes with the joystick during a tool change (M6) in a running gcode program, and then you want to continue the running program with a different project’s home. But this would require a gcode program that takes this into account. Is that realistic?

No. I want it to cache my X, Y and then allow me to jog. I reset my Z and then want to have it return to the X/Y before resuming. All within my multi-tool GCode file (not separate projects or using another project’s home). It is certainly doable because it is supported by other machine’s using hardware (e.g. Shapeoko bitsetter) or software (e.g. Shopbot.

1 Like

Hey Jim,

okay, you want that during a tool change (M6) event you can move around with the joystick, probe Z, and then resume operation of running the program with new tool length. So if I understand right, the problem is that when the Onefinity Controller receives a tool change command (M6), it is stuck at the position and does nothing (especially not raising Z in order to allow removing the bit) because by default, there is nothing inserted into the “tool change” field of General Configuration Tab except to let a message pop up:

(Runs on M6, tool change)
M0 M6 (MSG, Change Tool)

…and that in this state, it does not accept joystick commands. And that’s what you want Onefinity or Buildbotics to fix. Did I get it now?

(Note that Onefinity Controller would execute an appropriate tool change routine if there was one inserted here instead)

But to remember the original thread creator’s question, it is clear that when using an appropriate tool change routine as shown above in the “tool change” field of General Configuration Tab, which would manage tool change and Z probing, the Onefinity machine is very well able to run jobs with multiple bits in a single file. I don’t think it’s right to express it in such a way that it leads one to believe that the Onefinity CNC Controller can’t do that.

Hey Bud,

Nor do I :slight_smile:. With the restriction that you have to have Z zero at a position that you can Z-probe after tool change.

Hey Jim,

The reason why one would put zero on the workpiece top is that you don’t have to worry about your workpiece thickness then. Hobbyist machines usually don’t have probes for sensing workpiece dimensions separately, so for hobbyists, it is often advantageous to set zero at workpiece top. But as we see here, zeroing somewhere that is independent from the workpiece allows Z probing at home position (= at tool change position) and facilitates tool change within a program.

Also you mentioned that with zero at workpiece top you can’t probe Z on a position where you have already milled the material away. But imagine if you milled the top part of your workpiece away entirely and want to proceed with a finishing run? I have seen many workpieces to which that would apply. Having zero at a position that is independent from workpiece is the solution then.

1 Like

I know why. I’ve been doing this for the better part of a decade (& taught CNC operations & design for 4). My workflows don’t have me carving away the entire surface of the material or I would zero off the wasteboard. I almost always carve out of a piece with a final profile cut path - makes it easier for work holding (if the cutting action is too aggressive for tape/CA glue)

The OP wanted to know what we’d change or how we’d improve the product. The change I’d like was one that I could do on my Shopbot (and could on a Shapeoko if I had bought one of those). It’s not a deal breaker and certainly something I can work around. After all, there are lots of folks who even when they can combine all the different bits in a single file don’t. They want to be able to do the job in steps and be able to walk away after it’s finished part of the job and come back later, fire it up, re-zero everything and start with the next step without worrying about which line in the GCode they stopped at or what the position of the router was.

I don’t think it is that uncommon an ask to do what I’m suggesting which is why the less well engineered Shapeoko can do it with their bitsetter accessory and why others have asked for support for that. Do a search on “bitsetter”, “tool change” or “bit change” and you’ll see a couple of dozen topics asking for the same.

Without being able to jog at least Z (and really X & Y too), the best we can do is to have the 1F stop and allow us to replace the bit as long as the safe Z is high enough to let the bit drop out and a new one inserted. A safe Z that high will often really slow a job down. There are workarounds to the lack of jogging support on tool change, but they’re sub-optimal compared to competitors due to the trade-offs.

1 Like

Hey Jim,

I already understood what you meant and what you say about what the competitors machine’s controllers allow, it is that during the tool change pausing you can use the joystick to probe Z anywhere. As for this capability, I think of course we would wish the Onefinity machine to allow this (yet I don’t remember a post where they said that they or Buildbotics promised to set it on the todo list with a certain priority - do you?).

But the fact that Buildbotics offers a Controller and says, here in this text input field a CNC Machine Manufacturer can insert a tool change routine, a few gcodes for lifting the milling motor up and probing Z, and Onefinity simply doesn’t, I really can’t understand this. They leave the users with the milling motor stuck at a position where users have no chance to remove the milling bit and say, “so if it doesn’t raise the z high enough you cannot get your bit out”, meaning “at the moment we can’t do anything against it”, I asked myself, can they really be so unknowing? The simple example buildbotics gives and that I cited above entirely (or the one @Raziullah007 offered a little bit more below) would not leave the users stuck that way.

Fortunately users can and hopefully will put such an example into the “tool change” field themselves :slight_smile:

Good night! 2:32 am in central Europe!

I’m going to have to hunt it down. I remember seeing it. I’ve read all 20K+ posts here (I figured I wanted to see what was up and I had months to wait for my machine :slight_smile: ) so I know I’ve seen it. Now it’s a matter of digging it out. I have found a couple where people have said that 1F said that to them (in response to Support issues) but haven’t found the 1F authored post. Fortunately they’ve only posted about 750 times so I can just go brute force if my searches don’t nail it down. Probably wasting time trying to figure out what the search terms need to be vs just doing a bit of reading. :man_shrugging:

It may have to wait until this weekend though. I just got my 4ft motor cable extensions so I can finally button up my table. I mounted my controller in the drawer cabinet and need the extra cable length so I can route them through the table. Trying for no exposed wires & not having to plug them in & out every time I use it like Fisher does. Those connectors aren’t made for a lot of repeated insertion/extraction.

When my QCW comes in I’ll just take the 1F off and mount the QCW to the table and then remount, re-square the 1F and flatten the waste board. I’ve got a temporary 2x2ft MDF spoilboard down now but haven’t bothered to flatten it. We’re in the close enough territory for checking out the machine, etc.

Hey Jim,

No jogging in x, y, or z possible during tool change event (M6)

I also read nearly everything too since I joined in March '21 and with the same motivation: I wanted to get a realistic and extensive picture of the machine because I had other machines in mind to buy.

As for the posting you mean, I also think that I should have seen it, but as far as I remember, @OnefinityCNC adressed the topic only in their posting from 2021-02-23 which I already mentioned above:

You could deduce from this that they consider it as “most wanted” but it’s not explicitly written there. And it’s not posted under Feature Requests, but under Onefinity CNC MachinesHow to.

That I remember this post so well is because I found it really wrong, that they say sort of “we can’t do anything about it” and let the user stuck with a milling motor doing nothing on receiving a tool change command (M6), stuck at a position with no chance to get the bit out of the collet, instead of at least putting something like the Buildbotics’ suggestion I mentioned above into the “tool change” window.

If you believe that this issue was mentioned at other occasions and you want to hunt it down, maybe you should also look for posts from the other members of the “About” group (@OnefinityCNC, @Mark, @MindOfMcClure and of course @James). Sometimes they know things :slight_smile:.

But if you want to make it short, and if you rightly say this issue/feature is important for versatily in matters of workflows and the competitor’s cnc controllers can do it, maybe it should better be expressed explicitly as a Feature Request.

By the way, under Feature Requests, this issue/feature is mentioned: Tool change jogging plus notifcation/ETA of toolchange by @Liam_Riles, but no reply from @OnefinityCNC.

Jim’s Fisher-style Journeyman flippable table

Is the controller in a drawer or how did you solve this? A picture would be interesting.

This is rather narrow. And “tray”, you mean it’s open? Don’t you fear dust?

For being a reader that reads everything, then you overlooked this :slight_smile:

Yes that’s fine, a flippable table should be ready for use quickly, and open cables are not necessarily nice either.

Oh, someone read this :slight_smile:! Seriously, it’s clear that in fact it’s nothing new that is written there, it’s a known issue with all these connectors.


Hey Jim,

Yes, I know this thread e.g. which shows excellently what you can do if you simply make use of inserting g code into the “tool change” text area input field in the General Configuration Tab of the Onefinity Controller:

BitSetter in the future?

But do you see in the video, it probes tool length at a repeatable and workpiece-independent position. If you accept this, you can run program files with multiple tools right now with the Onefinity CNC very well today.

The Fisher style tilting table has a drawer/storage cabinet on one end. I used the top one (as did he) to place the controller, screwed into the back wall. Instead of a drawer though, I have a shelf to separate it from the drawers and a drop-down front. That way I can drop it down (it falls flat against the lower drawers - I may add arms and have it fold upward but I’ll need arms that can handle some weight as I know if there’s a flat surface I’ll use it to rest tools or something). This leaves the controller open to cooling air but safe from dust.

They’re built as drawer boxes but are on wooden sliding rails instead of drawer slides. So they’re more trays in my mind although they look like drawers. The faces are on the outside of the cabinet frame to get an extra 3/4" depth. No dust issue.

Nope. That’s the one I relied on. That’s why I went with 48 instead of 49. But down in the thread you’ll see a picture of @hamdiggity 's table. He said his is 72" wide too and there doesn’t look like room for the controller. Not sure why after building mine, but 66" is fine for anyone who is going to mount the controller underneath. It would need to be larger if an enclosure is going to be added but I’m not doing that on the flip table.

Shallow drawers may be better for this use. Deep ones collect stuff. I’ll use them for bits, wrenches, gauges, tools, etc which don’t need a ton of space. It also keeps them close - things in deep drawers tend to go into deep hibernation in my garage.

There is room under the long body of the table to put the vacuum hose & materials for in progress projects.

I’ll post pictures this weekend.


As the OP, I’m encouraged by the robust conversations w/o turning into personal attacks.

Good on you all!


Hey Jim,

you are right, hamdiggity’s table does not look like there was room for the controller. But that lets me question whether hamdiggitiy did provide the correct width. Or is it an optical illusion? If yours is 72″ too, does it make the same impression regarding tabletop size? Anyway I was sure since Onefinity in their assembly instructions put the controller on the left of the machine they implied the controller when proposing 72″ for a Journeyman table. Journeyman’s feet are about 60″ between outer corners, so with your 72″ table, you have about 6″ on every side? More 5″ and 7″ because of X stepper?

1 Like

Hey Bud,

personal attacks? Never with us. We love each other so much, look, Jim is even Out of Love :rofl:


My feeling (yes, this is a safe place where we can talk about feelings :laughing: ) is that the machine’s core competencies lie in its mechanical configuration. To me, anything controller-related is fixable (I run my own offline controller). Starting out on an X-Carve and fully rebuilding it, I didn’t waste any time ordering the Onefinity as soon as I saw it. Having a background in machining & tool design, I knew this is as good as it gets in the sub-$2k price point. The machine has not failed or disappointed me in the least. I routinely run jobs on it that require +/- .005" all-around tolerance and it is up to the task with repeatability that I can count on.


Nope. On the right side you’ve got to have clearance for the X-axis motor. So although I have 3.375" between the edge of the Y-axis foot and the table edge, I actually only have 1.25" room because of the stepper motor.

On the left side it’s a similar problem due to the wiring connectors for the X and Z motors. They’re straight connectors so I couldn’t just run the 1F up to the edge. You have to account for the wires bending gently (no sharp right angle) so the feet are 8.5" from the left side of the table, but accounting for the wires, it’s really only got 5.25" of “extra room”. With the revolving tabletop, I’ve got to make sure things clear when rotating. That’s why I’d do 66" which is just about what I’d get adding the 60.25 foot edge to foot edge + 2.125 motor stick out beyond the foot edge + 3.25 for wires. A 66" width would give it comfortable space to sit and still rotate without the danger of hitting something as it revolved around. That requires the controller to be mounted underneath or in/on the drawer cabinet and the monitor taken off when not in use or mounted on the top of the cabinet (I just spin it parallel to the cabinet end and leave everything connected when I spin the tabletop.

That’s why it’s nice to have the actual machine on hand vs the measured drawings. I have enough room on the left because I made it 72" to put the controller there but it’s not like I have an extra foot of room. Also, if you’re going to use the monitor stand that attaches to the leg, you need about 5" of additional space beyond the foot for the monitor. Unless you spin it so the connectors are on the left and then you’d need another couple of inches (7ish total) unless you got right-angle connectors for everything because the cable connectors protrude from the side of the monitor and again, you wouldn’t want to put in too much of a bend at the connector end.

Their measurements are the limits of the hardware. As they said, that doesn’t give room for the motor to “breath” or the wiring. 66" wide by 48" deep are about the minimum I’d recommend. But had I known that, my drawers would be 6" deeper :slight_smile:

My table is actually around 74" (I’ll have to measure later) but the metal cabinet that its on is 72". The CNC is centered on the table, so if you were to set the CNC on either side, there would be plenty of room for the controller. Hope that helps!

This video shows it better than the picture.