Onefinity CNC Firmware 1.4.0 (5/24/24) (X-35/X-50/Pro machines w/ Buildbotics Controller) Macros & File Management (Latest Firmware)


1.4.0 Macros & File Management

Update file. Download Here: 1.4.0 Update

1.4.0 Release Notes


  • Macros in Main Ui to run with a button click(Default Macros)
  • Delete Macros, Reset Macros, Renaming Macros, Edit Macros.
  • Add Additional Macros (i.e., Default macros + Additional)
  • Create Folder and G-Codes
  • Delete Folder and G-Codes
  • Upload Folder and File
  • Folder Structure
  • New Folder, File, Download, Play, Pause, Stop Icons
  • Renamed the XY Origin and Z origin buttons on jog screen for clarity.

Bug Fixes:

  • Change the Ui Field value back to line from current time.
  • ⁠PWNCNC Issue, Change the value from 6 to 5.
  • Remote GUI is not updating properly (Update the Remote GUI upon Firmware screen updates).
  • Rename Macros to Macro.
  • Ui Glitch on Text box Resize issue.

Known Issues:

  • If you name a macro the same as a file name, when deleting the file name or macro, it will delete both.

How To Install:

  • Updating via WiFi
    If your controller is connected to your home internet, the controller will automatically find the update. At the top center of the screen the words: upgrade to 1.4.0 underlined in blue. Click that. Click update via web button and let the system do it’s thing.

  • Updating via USB
    You’ll do an update via USB using the following steps:
    After downloading, DO NOT UNZIP THE FILE!!!
    Copy the blue .bz2 file above onto a usb stick (it must be formatted as fat 32 or ntsf). Click the flyout menu (three bars on top left), general, under firmware click ‘UPLOAD’. Select the 1.3 file.
    If you are on firmware 1.0.8 or lower, it may ask for a password.
    the password to update will either be buildbotics or onefinity

Manual on how to update.

Why would you want Macros?

Macro buttons on a CNC (Computer Numerical Control) machine, such as the Onefinity CNC, can offer several advantages for users. Here are some reasons why Onefinity CNC users might want macro buttons:

  1. Workflow Efficiency: Macro buttons allow users to automate sequences of commands or repetitive tasks with a single button press. This can significantly streamline the workflow and reduce the time and effort required to perform certain operations.
  2. Customization: CNC users often have specific preferences and workflows. Macro buttons provide a way to customize the machine’s operation according to individual needs, making it easier for users to work with the machine in a way that suits their style.
  3. Complex Operations: CNC machining may involve complex operations with multiple steps. Macro buttons can be programmed to execute these sequences, simplifying the process for users and reducing the chance of errors.
  4. Repeatability: Macros ensure consistent and repeatable results. Users can save specific toolpaths, speeds, and other parameters in macros, ensuring that the same settings are applied consistently across different projects.
  5. Reduced Operator Fatigue: Automation through macro buttons can help reduce operator fatigue by automating repetitive tasks, allowing users to focus on more critical aspects of the machining process.
  6. Emergency Situations: In case of an emergency or unexpected situation, having macro buttons with predefined emergency procedures can be crucial for quickly stopping or pausing the machine, preventing potential damage.
  7. Learning Curve: For users who are new to CNC machining, macro buttons can simplify the learning curve. Instead of memorizing complex commands, users can rely on macro buttons for common tasks until they become more familiar with the machine’s operation.

How the Macros work:

Upon install you will notice 8 unassigned Macro buttons below the probe buttons and above the play/stop buttons.
You can assign any gcode you want to these buttons. It will always show a minimum of 8 buttons but up to 20 macro buttons can be created.

How to assign the Macros.

Push the 3 line button in the upper left of the main screen to access the flyout menu. The MACROS word will be near the top. Tap this access the macros setting.

Macros Configuration Page

The macro configuration page is how you add or remove or edit the macro functions. At the top you have the delete all button, which deletes all macros you’ve created and sets Macros back to default of 8 with nothing assigned.
The New Macros button assigns a new macros button starting with Macro 9 through 20.
Delete Selected button will delete any selected macros from 9-20. It will not delete the default 1-8 macro buttons. 8 will always be showing.

Below that is the ‘select a macros’ drop down. You will click this drop down to access the macros button you want to assign a function to.

Macros name has a default white box on the left and a text box on the right. The left box assigns the macros a color, and the text box names the macro. The text can contain up to 15 characters. Special characters (like &%^$(*(#, etc) MAY not work (as this hasn’t been tested n it’s alpha firmware state).

Below that is the Macros G-Code section.
The left has a drop down box that says Create G-Code by default. To the right is the upload button, and to the right of that is the delete button.

The drop down allows you to select any Macros you’ve written or uploaded in the past. The upload button will upload gcode (must be a file that ends in .nc). We have some premade Macros in this linked forum post.
The delete button will delete the gcode assigned to this macro.

The text box at the very bottom is where you can write custom gcode on the fly, see the gcode of any uploaded macros, or edit any macro gcode.

Finally, the save button is at the bottom and must be pushed for any changes made to occur.

Default view of the macros setting:

Parking Gcode example:

Confirmation box

What it looks like when a macro is assigned:

Where can I get premade Macros?

1 Like

Reserved #1

If you previously had any Alpha, beta 1.4 releases installed, it is recommended to reflash the OS to clear any beta code or stuck macros.

Reserved #2 for Onefinity

1 Like

I discovered that if you have a degree symbol (°) in the filename, the BB controller will not recognize the name and gives you a blank entry.

Hi @Pony , Thanks for the feedback. Do you have sample file which you can send here? So that, we will investigate from our side and update on next release. Thank you!!

Here’s a little test file that I just made up this morning to retest what I had found.
The zip file contains the original file and the 3 toolpath files (1,2,3), it also contains copies of those 3 files which I renamed out of the CAD system to remove any degree symbol as a 2nd test (4,5,6).
Upload the 6 files to the BB controller and see what you get (if you upload a file with the degree symbol first, it will act as though there is no file, yet you will see cutting time).
I get all 6 files, but only 4 filenames (the 4 that have no degree symbol), yet if you delete them 1 by 1, you’ll have 6 files to delete, but 2 will have no name, but will have a long blank name which will NOT show up until named files are deleted. Those are the 2 that have the degree symbol.

Degree name (8.5 KB)

I seem to have run into another issue. Since upgrading to v1.4, every time i set up a macro they all get deleted when the machine restarts. I can load a macro and it works great until i shut the machine down. The next time i power it up, all macros are gone. I think this is a big deal. Anyone else seeing this? @OnefinityCNC is this a known issue?

Downloaded the newest v 1.4. Love the file handling - not so fond of the macros.

Problem #1:

  1. Loaded a “cutout” path for my coasters. I’m learning to do small batches so I don’t ruin too many at a time.
  2. I rigged a jig on my spoilboard - swap in the next piece, press play.
  3. Did 3 pieces no problem. Then… weirdness. On the 4th piece the "Z decided to change. Luckily did not go into tunneling mode, but rather decided that the material floor was 5mm higher than it was. Had to re-probe the Z and all was well

Problem #2: Again, doing coasters. Got a bunch of two-coaster blanks - 6 to be precise.

  1. The first three carved out my design perfectly.
  2. #4, #5… not so good. The Box decided that "Home was +11mm on the Y, and +1mm on the X.
    Who wants to explain that one?

I’m a software programmer. I know how to remove/diagnose problems. If it’s my fault I take responsibility and boy, I make a lot of mistakes. That’s why I started doing the mass-produced jig system to decrease my bit changes. These problems… sigh… it’s like owning a small child - I have to watch the thing and physically double-check all zeros every cut.

Problem 3: Macros - but this may be my fault
Established a macro to move to a place on my board to probe Z. When I do that I lose home,

1.4 is working great for me! I don’t notice Problems 1,2, or 3 you mention @MG56 in my setup. For 3, you may want to make sure you’re saving modal states in your macro. something like…

M70	; Save modal states
g53 g90 g0 z0 ; Raise Z to maximum absolute machine coordinates
g53 g90 g0 x0 y0 z0; move to specific position for probing (modify these)
M72	; Restore modal states

While copy/pasting this macro, I noticed a tiny bug in the 1.4 macros configuration screen. If you edit an existing macro, and only use backspace, or delete, or drag and drop the contents, the save button remains disabled until you press some other keys like space or enter.

1 Like

I am pretty happy with the macro integration. Parking off the workpiece is such a nice QOL feature when doing batch work and you just want to slap another board down and jig it up.

I am noticing one odd bug. I cannot reliably reproduce it, but I have noticed when running from my PC to the 1f (to upload files) to use the touch screen on occasion my device will change from being set for a laser to back to the VFD. I had it happen three times the other day. Of course this just means it starts running the toolpath but doing nothing, so no harm done, but it is odd.

1 Like

I have a similar situation: using the new 1.4 firmware and repeated cutting of parts held in a jig. Every few cuts the Y and sometimes X are shifted by a few mm. Re-Zeroing X and Y temporarily corrects this but I needed to re-zero every 3rd piece out of 25 cuts; a bit worrying and frustrating. Haven’t touched the new macro functionality. Maybe I’m doing something wrong but this started immediately after the firmware upgrade, so the coincidence is a bit suspect.

I’m re-zeroing every cut now, whether it’s a repeat or not. I’m going to upgrade my cabling to shielded but really it’s only to eliminate that as a variable.

Glad to know I’m not crazy.

Could get another SD card and load 1.3.1 on it, pop that in and see if there are no more zeroing issues. Then we will know for sure that 1.4.0 is the problem.

I know that is a pain because I did it a couple months ago. I have not had time to use 1.4.0 much. But if I do run into zero being lost I will pop in the 1.3.1 card.


Good suggestion ChrisM. I tried reverting to v1.3.1, ran 5 cut tests, then re-loaded v1.4.0 ran 15 more cut tests but unfortunately I couldn’t replicate the Zeroing problem - using same everything: cut code, part placement, etc and no other changes.

Lack of failure can be disappointing sometimes.


Bummer, don’t you hate it when a problem goes away but you can never figure out where it came from or what fixed it. Well thanks for trying that. Maybe it will never come back. Let us know if it does though.

1 Like

Is it possible that the default jerk and acceleration settings are different and the reload maybe didn’t reset them the same?


I’m having a problem since installing 1.4.0 two days ago. I start the controller and home it as usual. I then probe XYZ and start an operation. I’ve done 6 operations on this one piece, and most often I get an error when I press “Done” on the Probe XYZ dialog.

After pressing “Ok”, I’m asked if I want to Home, and when I do I get another error:

To clear these errors I reboot, re-home and re Probe XYZ. Sometimes this works and I go about performing the next operation. However, this is beyond annoying and I just want to mill my project. The fact that it will, after several attempts to clear the error, allow me to perform my operation, tells me that the error is totally bogus.

So how do I get these errors to stop? Is there some setup I should have done after the firmware upgrade?

I’m using a PWNCNC water cooled spindle mounted on the large Z20 heavy duty 80mm spindle mount. Is it possible that a setting got over-written for one or more motors during the upgrade from 1.3 to 1.4?

The error in the top picture changes with each iteration of the error. In other words, while this error states that the problem is that Y axis is -1.692 is less that the minimum soft limit, it could says -2.01mm or -1.828 and so on. Also, let me be clear that the probe is always taken at the same location.

I have spent hours today trying to do just one cut, and I cannot now get past this problem. No amount of restarts or shutdowns and restart and homing let’s me get on with it. Actually, my whole day since early this morning until now at 3pm has been totally wasted.

Reset the configuration, then reboot.

1 Like

Thank you! I was unaware of that option.

1 Like

in future releases can we look at Macro settings and the actual code being saved in the back-up config file?