CNC Remote control panel V4

Last Updated on November 22, 2023

CNC Remote control panel V4 for the Buildbotics / Onefinity CNC controller

This is the full assembly guide of the new V4 remote control panel for the Onefinity / Buildbotics CNC controller*. The biggest improvements compared to the first release are the pre-assembled PCB and components. For the full list of changes compared to V3 see the “What’s new” tab below.

This is a partial DIY project, please read this carefully before ordering.

*The CNC Remote control panel V4 is not compatible (or tested) with the MASSO Touch controller.
*Satoer Creations has no affiliation with the Onefinity or Buildbotics company.

Feature video

Note: This features V3 but V4 has the same features.

List of features

Enable X / Y

Activate the X , Y or both axis to control with the joystick. Very useful if you want to do a quick straight cut in the X or Y direction. Or flatten a surface by hand. The axis that are enabled light up.

Speed selection

Select one of the 4 maximum speed modes. The selected speed lights up.


Move the gantry in X, Y and Z (turning) direction with a single stick. Convenient if you want to use your other hand for other things. The stick is analog, the further you move it away the faster it goes (but not faster than the selected speed mode).

Router ON / OFF / AUTO

  • On: Router is on (if “Arm router” is enabled).
  • Off: Router is off.
  • Auto: Router start and stops automatically when CNC program is started.

Dust collector ON / OFF / AUTO

  • On: Dust collector is on.
  • Off: Dust collector is off.
  • Auto: Dust collector start and stops automatically when CNC program activates the router. In “Auto” mode the dust collector activates 1 sec behind the router. This will limit power surges.

Arm Router

This safety toggle prevents the possibility for the router to power on. It electrically disconnects the relay that powers the router. Always disarm the router if you want to change bits.

OH SHIT Emergency button

If there is trouble, hit this button. This also doubles like the main switch to power the system.

ACC 1 and ACC 2

Two extra buttons to do with whatever you want. You can change the behavior to latching (Press once: ON. Press again: OFF) or momentary (Press and hold: ON, release: OFF). See configuration paragraph below.

Probe connector

Replaces the Molex connector on the probe cable. (The Molex connector is not designed to reliably plug and unplug many times). A remote connector also releases the strain on the wire of the Onefinity controller connector.


There are 4 relays. The relays are rated for max 30A / 250V. The relay contact does contain a “snubber” circuit (to prevent sparks and electrical interference noise) but I discourage switching higher currents than 16 Amps. If you want to switch higher currents, you might want to switch a big contactor with the relay. Also, the screw terminals are rated 24A. So that will be the limiting factor.

Touch probe pocket

A neat little pocket to hold the touch probe. You can mount the magnet on the corner screw.
It its just a hole in the panel, but cnc plans to route out a pocket are included. (see links below)

USB ports

Easy access to the USB ports when using USB sticks.

Improvements and changes compared with V3:

Redesigned PCB

New layout to incorporate the upgraded 30A relays, and convenient screw terminals. (Note: Screw terminals are rated max 24A)

Fuse and Fuse Holder

Now including a fuse and inline fuse holder

Cable pass through

Now including a cable pass through

Heat shrink tubing

Kit now includes some heat shrink tubing

Black acrylic back panel

White backing panel is now replaced with black panel to reduce a bit of “light bleed” of the led lights on the front panel

Compatible Routers

The On / Off / Auto feature of the panel is compatible with the Makita RT0700C and Makita RT0701C router. Or any other router without “Anti-restart function”. You can test if your router is compatible by turning it on, pulling the plug, wait a couple of seconds and reinserting the plug. If the router turns on again, than it’s compatible. The Makita RT0702C is not directly compatible because it features an “Anti-restart function”, but with a simple hack it can be made compatible.

Spindle / VFD information

The remote panel is designed to make a “stupid” router (like the Makita) more smart. It is not specifically designed for spindles with a VFD, although it might work with spindles. It’s a tough subject because there are so many VFD’s with their own set of (programmable) options. The panel does also have two extra ACC (accessories) buttons and are free to use to control VFD options if you wish. A future firmware update (or hardware add-on) might incorporate more options for spindles, but for now it does not provide “official” support for it. If you do use it with a spindle, please share some experience with it.

Kit contents

These items are all included with the kit:

PCB Mainboard V4.0

Completely populated and soldered.

Arduino Leonardo

Preprogrammed with firmware 1.5.


With soldered connector PCB and screws.

5-Pin JST Cable

Joystick cable.

2 metal green LED buttons

Wired with connector.

4 metal blue LED buttons

Wired with connector.

4 metal white LED buttons

Wired with connector.

Safety switch

Wired with connector.

Acrylic front panel

Silkscreen printed.
W: 257mm / 10.12in
L:182mm / 7.17in
H:2mm / 0,08in

Acrylic back panel

With status LEDs PCB
W: 257mm / 10.12in
L:182mm / 7.17in
H:3mm / 0.12in

7-Pin JST Cable

Status LEDs cable.

4 Screws

For screwing the acrylic panel inside a cabinet.

4 plastic standoffs

For securing the main PCB inside the cabinet.

XLR male panel mount

With screws. For the probe connector replacement.

XLR female cable mount

Probe connector replacement.

Emergency button

Double make double break.

DB25 cable


USB Cable

For connecting the Arduino Leonardo to the controller.

Dual USB extension

Fuse and inline fuse holder

Heat shrink tubing

Cable pass through

Things you might need

(These items are not provided with the kit.)

  • Solder
  • Screws
  • Basic wires
  • Hot glue
  • 12V Adapter (if not using the build-in power supply inside the controller)
  • Power strip
  • Mains plugs

Tools you might need

  • Screw drivers (hex, Philips and flat)
  • Soldering iron
  • Wire stripper / cutter
  • Crimp tool
  • Drills

Assembly notes

Protect yourself from ESD. Or touch at least a ground contact for a couple of seconds before handling the components.

Connection map

Assembly instructions

Acrylic panels

Remove the protective sheet from the panels before assembling. The two panels are stacked together. No glue necessary.

WARNING: Do not tighten the corner screws too much, otherwise the acrylic might break.


Push the buttons through the holes. and secure with the nut. You don’t need the supplied rubber rings.

Button LED colorLocation
GreenEnable X
Enable Y
BlueSpeed 1
Speed 2
Speed 3
Speed 4
Dust Collector
Acc 1
Acc 2


Push the head of the stick with the rubber gaiter through the hole from the back in the orientation of this image. Use the 4 screws and the plastic ring to secure the joystick.

Connect the joystick to the main board using the 5-pin JST cable.

Status LEDs

Connect the status LEDs to the main board using the 7-pin JST cable.

Probe connector Male and Female

This is an XLR connector (It has 3 pins but only 2 are used). This is the only part that needs a little soldering because you need to replace the original wire. Cut the Molex connector with about 5CM wire. Reattach this Molex connector to a new wire, and solder that to the XLR male panel mount.

Use the supplied M3 nuts, rings and bolts to mount inside the panel.

Do not plug in a microphone or DMX peripheral.

Blue: Original probe cable. Green: New cable

Emergency switch

Press white latch to disconnect the switching mechanic. Screw on the plastic nut tightly and secure it with the two metal screws (on the nut). But before screwing in the two metal screws, make sure the text on the button is in the correct orientation.

This is a double break / double make contact. Use terminals 11/12 (red). Switch both mains power lines (live and neutral). Use this to switch a power strip to completely shutdown everything (Router and controller). See “High voltage diagram” below.

USB ports

Just connect the two USB cables to the Onefinity / Buildbotics controller. Use a drop of dish soap on the threads if the nut is too tight to screw on.

DB25 connector

This connector connects to the Onefinity / Buildbotics controller. Connect the brown wire / red connector to the “SIGNAL” screw terminal on the PCB (point 20 in the connection map). Connect the blue wire / black connector to the GND screw terminal (point 21 in the connection map) .

WARNING: Do not swap the power screw terminal (Point 18 & 19) with the DB25 screw terminals (Point 20 & 21). If you do, you will blow the optocoupler. (part U7)


Use screw terminals to switch the router, dust collector or other peripherals like lights or VFD functions with them. (VFD’s not officially supported).

Keep the high voltage wires away from the low voltage wires.

PCB mounting

You can mount the PCB to the back of the housing. Do not screw the panel tight against the wood. Use the 4 included plastic standoffs. (Screws not included)


If you don’t use the relay driven functions (Router, Dust Collector, Acc 1, Acc 2), only the USB connection to the controller is sufficient. If you do use the relay driven functions you need to add extra power to the board. There is a step-down circuit incorporated in the PCB design. You can connect 12V to 40V to the power screw terminals (point 18 and 19 in the connection map). You can route the 36V from the Onefinity / Buildbotics controller’s power supply directly into these screw terminals. It is advisable to fuse this line with an 1A fuse near the power supply (Fuse cable not supplied with the kit). If you don’t want use the build-in 36V power supply from the Onefinity / Buildbotics controller, you can use an adapter with at least 12V / 1,5A

There is a secondary way to power the PCB board by connecting a 12V power supply directly to the Arduino. However, this is less advisable. There are linear voltage regulators on the Arduino, and these are not efficient to convert the voltages and might become really hot. If you do wish to power the PCB this way, you need to change the “USB POWER OVERRIDE” jumper (Point 23 in the connection map) in the left position. I didn’t encounter problems using the linear regulator this way during testing. But it is better to use the efficient build-in step down converter and screw the power wires directly to the screw terminals.

If the OS is complaining that the connected USB device draws to much power, you can set the “USB POWER OVERRIDE” jumper in the left position (only when external power is connected to the terminals). But during testing the current draw never exceeded 300mA. (The Raspberry Pi 3 inside the controller can deliver 1500mA total).

USB Power override

The PCB ships with the jumper in the right hand position. Which is the correct setting. It’s also fine to remove this jumper. Only change this in circumstances explained in the power paragraph above.

Accessory port

The PCB includes an accessory port for future or personal use.


GND+3.3V+5V+12VD0 RXD1 TX

Low-voltage connection diagram

High-voltage connection diagram

Please be observant when working with electronics. Especially the parts that are connected to mains voltages. Use proper isolation and insulation. Make sure there’s enough space between the relays and the buttons (if you place the PCB behind the button panel). And keep the low voltage wires away from the high voltage (mains) wires.


You can configure several settings as desired on power up. For every setting you like to adjust you need to re-power the board while holding the desired function button down.

Hold “Enable X” button for 3 secondsInvert X axis on joystick
Hold “Enable X” button for 10 secondsInvert Z axis on joystick
Hold “Enable Y” button for 3 secondsInvert Y axis on joystick
Hold “Speed 1 / 2 / 3 / 4” button for 3 secondsChange default start up speed to selected button
Hold “Router” buttonChange default start up setting to: on / off / auto *
Hold “Dust Collector” button for 3 secondsChange default start up setting to: on / off / auto
Hold “ACC1” or “ACC2” button for 3 secondsChange the behaviour from that button from latching to momentary

* WARNING: changing the default start up behaviour to “ON” for a router would be incredibly stupid and dangerous. But this option is left in if someone wishes to use this button for uses other than a router. So please don’t do this if you attach a router.


All PCB’s are tested before shipping, but if you want to test the panel before hooking it up to the Onefinity / Buildbotics controller, you can connect the Arduino USB to a Windows computer.

Open control panel, “Hardware and Printers”. Right click “Arduino Leonardo” and Game control settings (These are Dutch screenshots)

Choose “Arduino Leonardo” and then “Properties”

Note: A couple times per second you see a button light up. This is because the panel re-transmits settings.

To test the DB25 input terminals (Point 20 & 21 in the connection map), you need to set the “Router” function to auto, and power the data port with a 3V lithium coin cell battery. + on 20 and – on point 21 (GND). The LED button should light up (and the relay should “click” if 12V is connected).


The “brains” of this project is a ATmega32u4 micro-controller incorporated on a Arduino Leonardo development board. (included)

The source code is published for free. You may use it for your own project as long as it is non-commercial. Feel free to create your personal project with it. Adjust it to your own needs. Even with hardware I didn’t provide. But you may not create a commercial product with it. If you have great ideas to improve the firmware, let me know. Or code it yourself, and I might merge it. You can find the firmware on the Github repository. at a later stage I will probably sell PCB only kits for the users who want to create their own panel with their specific needs.

The supplied Arduino Leonardo comes preloaded with firmware 1.5.


Here are some plans for a cut-out to inset the panel nicely inside a cabinet. The cut-out also provides a space for the probe block. I used 18mm (approx 3/4 Inch) MDF. Use a straight or down cut bit. An up cut or compression bit probably leaves ugly borders. The inset is with 5mm (3/16 inch) probably not deep enough to use a compression bit. Do not forget to add holding tabs. Glue the probe housing block cutouts on top of each other.


You can build a small console to house the control panel.

Onefinity Settings

Use these settings:


Relay “Router” does not work
Relay “Dust collector” has a delay
None of the relays work
Signal in from DB25 connector does not work
Buttons react sluggish, slow or not at all
CNC does not react on joystick
X and Y axis on joystick are switched
Joystick X, Y or Z axis is inverted
Joystick drifts
The panel resets or does not respond anymore after activating devices connected to the relays
Relay does not disengage even if button (and LED) is switched off
Attached LED light to ACC1 or ACC2 flickers when in off position.


For hardware support post a message on the Onefinity forum in this topic, and I (or other users) will try to resolve it.
For software support (problems or suggestions), use the Issue tracker on the Github repository.


The kits costs as introductory offer €280 (ex VAT) euro or approx. $305 (ex VAT). + Shipping.

How to order

You can order over here: