1.4.0 Alpha 1 (Macros update)

1.4.0 Alpha 2 (Macros update)


1.4.0 Macros Update

This is the first test release version of firmware 1.4.0

This is test firmware. As with all test/alpha/beta software, DO NOT INSTALL unless you like to be on the bleeding edge and can live with potential bugs.

This update includes:

  • Add the ability to have up to 20 custom Macros.

Known Issues:

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

Download here (click the blue link below to download. Do not unzip the file.):
bbctrl-1.4.0_alpha_1.tar.bz2 (2.7 MB)

How To Install:

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?


Reserved #1 for Onefinity.

As users create more macros, and they become popular and verified to work, we’ll add them to the main Macros FAQ here: Macros Files for BB | Official Thread

Reserved #2 for Onefinity

1 Like

I was on 1.3.1
Updated to 1.4.0 Alpha 1 then rebooted.
8 macro buttons have names on them already but no g-code in them - confusing to user.

Went to settings to add my own. No button to make new macros so used the first of the 8.

Changed the name of macro but it will not stick. At most it will just go blank.

Plugged in usb stick with .nc files to upload.
Upload button did not take me directly to the usb stick the first time I did it, but rather into the file system on the controller. Browsing the directories I finally found the usb stick. On the second attempt, since I was already in the usb folder, it took me straight to it.

NC code uploaded and ran fine. But the name was not on the macro button.
See 2 videos attached.

1 Like

A macro that asks for spindle on or spindle up to speed would be dead handy for those of us who have started a program forgetting to turn on the router.
I know you big boys either have spindles or relays to start the spindle/router, but many of us have scrambled to hit the router switch before the Z axis hits the wood.

1 Like

You can do this in F360 , there is a spindle pause radio button. Spindle users still need this as the vfd may have tripped.

I’ve been so used to Vcarve already adding this into the gcode I thought it was just a standard feature.

M0(MSG, Click ‘Continue’ when the spindle is up to speed)

I’m curious to see what all the things that can be done with macros are. Would it be possible to make a custom probing macro so you can probe from other places rather than bottom left?

Would it be possible to make a custom probing macro so you can probe from other places rather than bottom left?

Yes it is possible.
Here is the code that I use. Just run it like any other program.
When you get macros you will be able to run it with one of them - but you can run it now if you want.

Probing from other corners

Be aware this is only for 1/4" bits as it is written. If you want other size bits you have to change 2 lines. Be sure to keep the negative sign if it has one.
Search for these lines:
G92 X 2.253 (Set X offset. CNC Measured x + bit radius = 2.1277 + 0.125)
G92 Y -2.253 (Set Y offset. CNC Measured x + bit radius = 2.1277 + 0.125)

You can make a separate file for each size cutter and save them to different macros eventually.

If someone knows how to add a input box that would stop and ask for a bit size then do the calc. that would make it perfect.

1 Like

I have experienced a couple of issues with the current downloaded version, First issue is the grid that use to appear around the manual XYZ jog controls is now gone, next the unused Macro buttons when depressed freeze up the screen with a popup window, and finally when connected with my laptop the macro color coding button does not appear in the setup window.

Please upload videos of the issue to this thread. Include what version you were on before updating as well.

Update to my experimenting with macros:

I can make the macro names on the laptop over wifi - but only the names.
Then on the controller add the g-code and change the button colour.
If I go back to the laptop to add another macro name on the next button - it will erase the colour and g-code from all the previous buttons.

See video attached:

Try pushing refresh on the screen you are not changing them on before going back and forth.

Ok, I did what you suggest.
I added one more button name on laptop then saved it.
Then refreshed the controller.
The new button did appear on the controller.
Then looked into the controller macros and saw that all the colours and code was gone.
I refreshed the laptop. No change all are gone. BUT they all still run.
I run the first 4 macros and they all work.
I look in the controller macro definitions and see that the colour and code is gone ( or not showing up - because on the main screen the colour is still black and they do run still).
So it seems to be just what it is showing is wrong but it has saved the gcode and colour and are still using them.

Another update now that I am using the macros more:

Sometimes - maybe about 1/3 of the time - when I press a macro button that macro will not run - BUT the macro or program I ran just before it will run.
I made a video of this below.
But to let you know after this video I went and ran a program from my laptop in the usual way with the play button, then stopped it, then pressed a macro button.
The program previously loaded from the laptop started to run again from the beginning!

So you are constantly using both the screen and the laptop? To narrow this done, from now on, only use on or the other per session. Sounds like something isn’t syncing across both sessions for you.

Yes, that was a bit confusing. But it was just because I could not get the macro name to save using the controller alone. Once it can do that I won’t use the remote computer at all.

I noticed in your “naming macros on the controller” video that you put an “.001” suffix to the name and the other macros had no suffix. You may want to try “JOG BACK”. Also, the buildbotics page may have more info on this as they’ve had macros for a while. I’d try this but am not running the BB controller anymore

Hi Eric,
You are correct Eric, in the first video I added the .001 to the end of the file name.
I realized that was too much and changed to just “JOG BACK” etc. after that.

Just for the record all the file names were of the form:

001 JOG BACK.nc

with no “.” on the front.
And each file contains:


with the Y changed to X and a “-” added where needed.

Just reading about this new alpha release. Love the potential of this and have wanted this feature for a long time. I am excited avout being able to go to a location of my choice after homing (i use a fence), to switch modes from spindle to laser and back, to turn on a connected DC, etc

I have few questions about macros though, can they be used for things other than GCode? Hit a URL that could turn on a dust collector/vacuum that is controlled by a smart plug or turn the air assist pump on for the laser. To turn the lights on/off when the machine is done. To start amy air scrubber/filter, to start a timelapse camera, or other complementary automation kinds of things. I have a few things in my shop hooked up to TP-link smart plugs and it would be wonderful to be able to turn those devices on and off to get even more usage out of it.

1 Like

With the upcoming acb, yes