Personal Thoughts

This PI problem is a real head scratcher. I am a first time CNC’er. Have read way to much in the past few months for and was getting ready to push the button on the WoodWorker. I am not computer literate. Have ran cabinetware and cabinet vision but that is the extent. This seems so technical maybe I should start from scratch???

You need a certain level of computer literacy to run the program(s) to create the g-code program for the controller. That’s going to be the case for any CNC router. Coming from a point of not having had any previous CNC experience is a good thing, and that’s the case with many of the people who purchase the Onefinity. You will have no pre-existing expectations of how CNC controllers work, so it will all be new to you. The beauty of the Onefinity compared to others is that you will only need to learn the controller interface & v-carve (or similar). You will NOT need to be a mechanical wizard like you would with other machines to keep them running. Onefinity is working hard to fix any controller glitches they find, and improving the interface. You’re definitely not alone in being a first-time CNC’er.


Scottc - I don’t have mine yet (woodworker), but one of the reasons why I bought this brand of CNC is that a laptop was NOT required to run it. Yes, laptops are cheap enough, but the ability to use a USB is great for me (I can’t extend my wifi to my Tuffshed that is in my backyard. When you say your dust collection and router turn off and on with the job what do you mean? I have a Festool vac and I was planning to plug the router into it which does that, but does the controller somehow does that too? They were originally supposed to be shipping mine this weel, but it looks like they are several weeks behind now.

The DB25 port allows using controllers to manage power to external devices. I used a IoT power relay to control my router, and a current switch to control my dust collector with the router.

There is a thread elsewhere with all the necessary connections and links to the parts.

1 Like

I fully agree with the plaudits on the mechanical design of the Onefinity, but I have a different opinion of the RPI control. I’ve had mine for 2 weeks after a couple of years working with an MPCNC and a 5’X10’ Avid. This machine is a great compromise between costs and functionality of both.

Onefinity uses the RPI3, which is a very high performance 4 core processor. It is not the speed of the processor that matters in this case, but the maturity of the Buildbotics platform and this implementation. I use several RPI systems for home and business, and all of them run web servers. But none of my systems are forced to reside inside a faraday cage and expected to connect wirelessly. The simple solution to the wifi connection problem is to plug in a wifi dongle ( This is high performance and exists outside the metal cage. In saner times they can be had for under $10.

You can then use the clunky interface on the software to download gcode files, or you can do like I did and set up a Samba share so that I can directly transfer files from my PC to the controller. I’ve done this for ages with my 3D printers and CNCs. I can post instructions if anyone is interested.

That said, the Buildbotics option needs to progress some for accessibility and control. The good news is that the hardware follows the internal architecture of most 3D printers anyway, with the system uses an AVR processor for the actual gcode translation. This means that LinuxCNC or Octoprint could work on the same platform.

As for the touch screen, I’ve gotten used to controlling my other machines with my cell phone or a tablet through the web interface and this has not changed with the Onefinity.

I think it would be a serious step backwards to force the use of a general purpose computing platform like a laptop running
Windows to control this system. Shades of MACH 4 (shudder). With RPI level of compute capability there is no need to regress.

However, I’ve not yet delved into tool change flows and it would be really nice to have multiple zero sets for several smaller projects.

In the worst case, Buildbotics is open source and I may help them with development.


Oh, PLEASE do Randy! I just now revisited this on my 3D printer, but with no success. All I would like to do is transfer files to it from my primary laptop without involving Octoprint or other 3rd party apps. Not even sure it’s possible with my hardware.

I would also like to be able to transfer files to my off-line controller. I’ve used USB jump drives on this controller for 4 years, but a wifi transfer option would be nice. That’s one thing I left behind when I built my custom controller.

1 Like

Okay, this is how to set up a samba share for the Onefinity/buildbotics system. There is one oddity in using it: instead of the software looking at the current contents of the “upload” directory, it apparently looks only when it is started. This means that the controller needs to be restarted after uploading the file. This is not that bad, but is something that can probably be easily changed. I may look into doing it as part of the open source effort if it becomes too bothersome.

This assumes that you know how to ssh into the system. If not, find the IP address and use Putty to open it. username and password are “bbmc” and “onefinity” by default.

First, set up Samba (a file sharing capability between PCs and linux/unix). This is a good guide: How to Setup a Raspberry Pi Samba Server - Pi My Life Up. In step one, you do not need to do the “upgrade” step.

In step three, don’t bother creating a directory. The directory used by bbctrl (the buildbotics software) uses “/var/lib/bbctrl/upload” as the shared area already.

In step 4 and 5, this is what I put in the smb.conf file:

comment = Onefinity Share
path = /var/lib/bbctrl/upload
only guest=Yes
create mask = 0777
directory mask = 0777

In step 7, I used the username “bbmc” and the normal password “onefinity” to set up the share.

After Step 8, samba should be running and you can see the share by going to your PC and clicking on “Network”. It should show up as “Onefinity” and when you open it should have a folder called “uploads”.

Before you can upload files, you will need to set appropriate permissions on the RPI. Using the command interface do the following:

cd /var/lib/bbctrl
sudo chmod a+w upload

It may ask you for the password, which is “onefinity”.

You should now be able to store the completed gcode files in this area directly from the PC. I often just use it directly from Fusion 360 (my normal tool).

Remember that you’ll need to reboot the controller after upload (at least for now).


Does it need a restart or will it refresh on reload of the browser or clicking the folder icon and canceling?

I’ve tried refreshing the page, downloading another file (with folder icon) and deleting a single file. None of these result in the software refreshing the file list for some reason. Should not be a hard thing to fix, but I don’t think they’ve considered shared download folders before.

I’ve been considering using Samba as well - thanks for the instructions - they will save me a ton of time figuring it out on my own.

I don’t know why they would be caching the files like that - more importantly, uploading a file from the browser should refresh the entire list - that is super strange.


1 Like

Just wanted to chime in, as I feel the same os some here. The hardware actually isn’t bad, other than the enclosure design and lack of wifi. I solved this by adding an external antenna (mounted to the Pi3 board directly (not USB). But the software is old and kinda crap. I’ve reviewed the code on github, and it was fine for small hobby level stuff, but in-use, it’s slow, and unresponsive.

I’m honestly surprised OF didn’t go with something like the Acorn controller. I use this on my converted Grizzly mill, and it’s fantastic. After fighting Mach3 for years, I moved over and haven’t looked back. I’ll probably be grabbing another board and license for my OF in the future. Yes it requires a dedicated computer, but it’s controlled via Ethernet (no Parallel needed), so any modern system will run it, and it’s hardware processing so that system doesn’t even need to be powerful.

The tiny touch screen on the OF is simply unusable, at least not without a complete UI change. So much so that I simply connect from my other shop computer via the local web server and control it that way.

The potential is there, but execution is lacking compared to alternatives. The machine itself, fantastic, but Buildbotics, gets a thumbs down from me.


The Acorn is Centroid’s 4 axis controller correct? I remember coming across this when searching for digitizing probes with ready software options.

Yes it is. Been running it for a few years now; feel free to PM me if you have any questions.

My guess – complete speculation – the desire to have a controller that doesn’t need an external computer?


There are actually quite a few controllers / systems that can achieve this as well. I’m actually opting to test one ( CNC xPRO V5 / more info, along with CNCJS on the software side).
But lets not kid ourselves either - 1F DOES require an “external” computer - in the way of the Raspberry Pi (we can debate semantics all day long on whether this is “external or not” - fact of the matter, you can have any other form of tiny PC / SBC built into the same enclosure as the controller board, and it’s the same thing). I think the touch-screen tablet (interface) is really what most are considering “built-in”.

In the above case, I’ll actually try running CNCJS on a Pi as well (NodeJS). It has support for small screens/tablets as well. I’ll probably run from keyboard/mouse/monitor during testing (ease of use) - but I’ll try it on the tablet as well for those interested.

I plan on documenting this trial as well to let everyone know how it goes.

As-is a few of the benefits:

  • GRBL based (so lots of apps/code that supports it).
  • Ability to adjust Feed rate on-the-fly (Buildbotics, the way the controller processes the code, this basically will NOT be possible without some major hacks - one of my #1 reasons for dropping BB). I know for those who have proven recipes, or run production, this might not be an issue - set it and forget it - but I experiment a lot, so the ability to adjust the feed in real-time is a requirement.
  • Better maintained - the BB source doesn’t seem to be contributed to much, I know 1F is pulling their weight and making adjustments now that BB has a large audience, but with only open-source live releases (no visibility into dev/beta), nor willingness to expand this, I’d rather not rely on it.
  • TBD - Still determining whether it (or any GRBL based system) can perform a “resume from here” function.

This is all an experiment, mostly because I can. If it all fails, I’ll revert to my initial test of the Centroid Acorn controller (as I know it’s a proven solution for me).


It is great that you are doing this, @wolfkabal and even better that you are willing to share/document your experience! I am quite underwhelmed with the BB platform esp. your observations about the state of the code base. Good luck and keep us posted!

1 Like

Thanks Tim - completely agree about BB. Seems to be the major drawback of an otherwise excellent machine. Also agree the OF does have a ‘computer’ - just not separate from the CNC like most tethered solutions. Pros and cons of both.


Just thought I’d add that I’ve found out why the BB control program does not recognize new uploaded files right away. It appears that upon boot it looks at the directory and post-processes all the uploaded files (all .nc in my case) to additional control files. These can be found in /var/lib/bbctrl/plans. So, it’s not as simple as the Gcode being directly transferred to the AVR controller after all, and simply uploading the file via samba does not do the same thing as on other systems.

1 Like

I’ll definitely follow this also. I have found the 1F to be very useful and accurate but streamlining it and allowing some customization is also very important. But I’m with you on the ability to experiment. I definitely want a web based control option also since that has proven to be worth a lot in managing multiple devices centrally as well as locally. At least that’s how BB is oriented. The interface to the AVR controller in the BB system appears to be almost completely custom and likely has some performance advantages.

I know several people who are using CNCJS and love it, but I’ve not tried it.

Would a 3d printer control board like the duet wifi run this? Basically the controller just needs to convert G code into movements via the stepper motor drivers correct? The interface for set up, on the duet, is easy to use. You can make speed changes on the fly etc. You can pause for tool change and resume. I don’t have a, start from here, option though. Can set up macros for multiple starting points etc. Also has multiple extra drivers for 4th axis. Can send files directly to the board via wifi.