Macros Files for BB | Official Thread

This is a list of premade Macros for firmware 1.4.0 and up from Onefinity.

Since the 1.4 macro update is beta, consider these to be beta as well, as we’ve created them but haven’t tested the functionality of each one (ie: we may have made some human errors in our gcode writing :stuck_out_tongue: )

More info on the 1.4.0 firmware that introduced Macros:

How to install:

Click the macro you want to install from below. Place it on a usb stick like you would if you were going to run a file. Insert the usb drive into any port on the back of the BB controller. In the flyout menu, select MACROS. On the macro setting screen, click UPLOAD and choose the file you put on the pen drive. This will upload the code to that number macro you selected. Rename the macro in the name text box and choose a color from the color box to assign to the macro. Return to the control page and the macro should now be assigned.

Go to Home Position:

GoHomeXYZ.ngc (3 Bytes)


  • Machinist (16x16):

ParkRearRightMachinist.ngc (21 Bytes)
ParkRearCenterMachinist.ngc (21 Bytes)

  • Woodworker (32x32):

ParkRearRightWoodworker.ngc (21 Bytes)
ParkRearCenterWoodworker.ngc (21 Bytes)

  • Journeyman (48x32):

ParkRearRightJourneyman.ngc (22 Bytes)
ParkRearCenterJourneyman.ngc (21 Bytes)

  • Foreman (48x48):

ParkRearRightForeman.ngc (23 Bytes)
ParkRearCenterForeman.ngc (22 Bytes)


TurnOnSpindle.ngc (8 Bytes)
TurnOffSpindleAndLaser.ngc (2 Bytes)
SpindleWarmUp1Minute.ngc (20 Bytes)


FireLaser10Percent.ngc (7 Bytes)
TurnOffSpindleAndLaser.ngc (2 Bytes)


VacOn.ngc (2 Bytes)
TurnOffVac.ngc (2 Bytes)


Reserve #1 for Onefinity

Reserve #2 for Onefinity

Is there a way to switch between Laser and Spindle/VFD with macros? Currently I have to go to the settings and into the tools menu to swap between the two. A macro to switch between the two would be awesome.

1 Like

another future feature idea i had was inside the macro editor to be able to checkmark which tools it applies to, eg, Laser Material Test macro isn’t useful when using the Router/Spindle, and Vaccum isn’t useful for Laser, etc…

I also wonder if a default GoHomeXYZ might benefit from first raising Z during travel, then lowering upon arrival. something like G0 G90 X0 Y0 Z75; G0 G90 Z0; to avoid the inevitable classic clamp in the way bit breaking scenario :smiley:

I also wonder if there is a way to “toggle” a value in cgode, eg. turn vac off/on on alternate presses of the same macro.

Hey tmuka,

There exist two motion commands that first move to an intermediate coordinate, and only then to home or to an alternative position that you’ve set as predefined position. This is useful if you just milled inside a deep pocket, which is impossible to leave in the shortest way, in this case this command allows you to first let the router reach a higher position as intermediate position, and only then move to the final target coordinate. This command is called G28 or G30, but in order to use it, you need to have recorded the target final position before (unless you want it to be home, which is the default target). On the command line, you only give the intermediate position. If you give a Z axis value here, that can be seen as a sort of “safe height”.

Let’s assume that you have not set an alternative predefined position, in this case the default target position is the machine’s home position. This command goes this way:

G28 Z0

This will first lift Z to its topmost position which is 0 (Z goes from 0 to −133), and only then it will go to the predefined position (usually home position)

If you enter:

G91 G28 Z20

the prepended G91 (Set incremental distance mode) will make that value of the axis (here: 20) is interpreted as incremental value relative to the current position (instead of absolute machine value), so it would mean: “Lift Z by 20 mm from the current position, then go to the predefined postion (usally home position)”.

Cartesian coordinate system with right hand orientation

Schematic Representation of a CNC vertical milling center
– Source: Smid, Peter: CNC Programming Handbook , Industrial Press, South Norwalk, CT, USA, ISBN 9780831133474

See also here for CNC coordinate system and different positions for machine’s home.


@Aiph5u I’m so thankful for your wealth of knowledge, and generosity to share it! There is so much to learn, and i love learning. I’ll have to explore those commands further! Thank you.