This manual describes Buildbotics Controllers with V1.0.2 software. Follow these links to access previous versions of the manual:

Two versions of the Buildbotics Controller are covered in this manual. They are:

  • the 24 - 48 Volt Buildbotics Controller and,
  • the 12 - 36 Volt Buildbotics Controller.

There are several small differences between the two versions. The best way to distinguish them is by the voltage markings next to the power connector.

The 12 - 36 Volt version is no longer manufactured, but is able to run version 1.0.2 software.

Overview

Buildbotics is committed to providing a CNC tool chain that is easy to use, affordable, and completely Open-Source. Key to this commitment is the Buildbotics CNC Controller.

The Buildbotics 4-Axis CNC Controller hardware and software are completely Open-Source. All basic features needed for machine homing and loading and executing GCode files are included.

The Buildbotics CNC Controller does not require a dedicated computer to run. It is a stand-alone device that acts as a web server. Users can configure and control it from a web browser that connects through an Ethernet port or across a WiFi connection. Alternatively, you can connect a monitor, a USB keyboard, and a USB mouse directly to the controller to run your CNC machine with no computer at all!

Another unique feature is the gamepad used for local control. Just plug it into one of the USB ports and start jogging the machine on any axis.

Plug a webcam into a USB port and the Buildbotics Controller becomes a video server. You can now keep an eye on cutting operations while you watch the game in another room.

Limit switches, Z-axis probing, PWM spindle control, RS485 spindle control, 0 - 10 Volt analog spindle control, and e-stop interfaces are all made available through a DB25 connector on the back. A DB25 breakout board provides easy access to these features.

Motor drivers for each of the four axes are built into (and powered by) the controller. This simplifies the overall design, configuration, and implementation of your CNC build.

The 24-48 Volt version of the Buildbotics CNC Controller provides the ability to bypass the internal motor drivers and exposes the control signals through a DB15 connector on the back panel. As good as the internal drivers are, some users have needs that go beyond the capabilities of the internal drivers.

Pre-made cables are provided for connecting to the motors and power supply. These cables really save time when connecting to a new machine. To make life even easier, the power connector is compatible with some standard power adapters.

Heat dissipation was carefully considered throughout the design. As a result, the controller electronics are inside a sleek enclosure with no fan. Cuttings won't get sucked into the controller even when operating right next to the CNC machine. Exposed electronics are a thing of the past.

The controller is integrated with CAMotics; a popular Open-Source CAM and CNC Simulator. CAMotics allows importing GCode, DXF, or STL files. Alternatively, CAMotics allows writing cutting programs in Javascript. After simulating, CAMotics converts the output to GCode and can connect directly to the Buildbotics Controller and provide a real-time simulation as the machine is cutting.

The combination of CAMotics and Buildbotics provides the elusive Open-Source tool chain. This tool chain works great. There’s still a lot of work to do. Please consider becoming an Open-Source contributor.

Performance is critical for CNC Controllers. The Buildbotics CNC Controller is a powerhouse working on 24 to 48 Volts DC (or 12 to 36 Volts on older units), supplying up to 6 amps on each motor, and generating over 250,000 steps per second on each axis. S-curve acceleration and deceleration eliminate machine movements caused by sudden starts and stops. These capabilities provide smooth and fast operation on nearly any machine running NEMA 17 or 23 stepper motors and many machines running NEMA 34 stepper motors. Even larger motors can be controlled using external drivers.

Controller Operation

Safety

Machine tools are inherently dangerous. Users must be trained on all hazards associated with the machine before use. Examples of hazards commonly associated with machine tools include:

  • Electrical energy
  • High noise
  • Dust (often toxic)
  • Toxic gases
  • Flying material and parts
  • Pinch points
  • Sharp edges
  • Sharp points
  • Rotating machinery
  • Rapidly moving parts
  • Fire
  • Heat

These hazards are complicated, and often exacerbated by allowing computers to control them. The Buildbotics CNC Controller is a computer that controls machine tools. Users must be on constant guard against the possibility that the controller will cause the machine to do something that is unexpected. Users are responsible for mitigating these hazards prior to use of the Buildbotics CNC Controller.

Please also read our General Disclaimer as it applies to the information contained in this manual and on our website as well as to our products.

Users that find these restrictions and limitations unacceptable should contact the Buildbotics LLC customer service department (707) 559-8539 for a refund prior to using or energizing the product.

Turning on the controller

Turn off the “Enable” switch, connect power and then turn on the “Enable” switch. After enabling the controller, the LCD screen will immediately light up, then display “Controller booting Please wait…” after about 2 seconds, and fully boot in about a minute.

LCD Display

The LCD display is located on the front panel of the Buildbotics Controller and presents status information. The LCD display will immediately illuminate after power is connected and the Enable switch is switched to “Enable”. Then, the LCD screen displays “Controller booting Please wait…” after about 2 seconds, and fully boots in about a minute. If the controller is attached to a network, it will boot more quickly. Once this display is presented, the Buildbotics Controller is ready for operation.

Ready Screen

The ‘state’ field reflects the state of the CNC controller. The possible values in the state field are:

  • READY
  • JOGGING
  • ESTOPPED
  • RUNNING
  • STOPPING
  • HOLDING

The ‘units’ field is located immediately below the ‘state’ field and indicates whether the controller is operating in Metric or Imperial units. “MM” indicates Metric and “INCH” indicates Imperial units.

The ‘T’ field indicates which tool is currently loaded. For instance, 0T means tool ‘0’ is loaded and 2T means tool ‘2’ is loaded.

The ‘F’ field indicates the current feed rate. For instance, if the controller is operating in Imperial units and the feed rate is 60 inches per minute, the “F” field will show 60F

The ‘S’ field indicates the spindle speed setting in revolutions per minute (RPM). It does not reflect the actual speed that the spindle is turning. For instance, if the spindle speed is set to 9000 RPM, the ‘S’ field will show 9000S.

The axis position fields on the right show the current position of the respective axis in millimeters or inches depending on whether the controller is operating in Metric or Imperial units.

If a gamepad is plugged in, you can scroll through two additional screens by pressing on the left or right side of the menu navigation button on the gamepad.

Status Screen

One push to the right brings up a status screen. The status screen is slightly different depending on the version of controller.

If the controller is the 12 to 36 volt version, it displays the temperature inside the enclosure (Tmp), the input voltage (In), the voltage sent to the motors (Out), the total motor current (Mot), the current used by the internal electronics (Vdd), the current sent to the Load1 (LD1) and Load2 (LD2) outputs and the status flags (Flg). The status flags are for internal use by Buildbotics.

LCD Status Display (12-36V)

If the controller is the 24 to 48 volt version, it displays the temperature inside the enclosure (Tmp), the total motor current (Mot), the power consumed in watts (Pwr), the input voltage from the power supply (In), the voltage being sent to the motor drivers (Out), the current version of the controller software (Ver) and the status flags (Flg). The status flags are for internal use by Buildbotics.

LCD Status Display (24-48V)

Network Screen

Pushing the menu navigation button again brings up the Network screen, which displays the host name of the Buildbotics Controller. If the controller is connected to a local area network, the IP address is displayed as well.

LCD Network Screen

Connections

Connections to the Buildbotics Controller are made through the back panel. The connections for the 24- 48 Volt version of the controller are slightly different from 12 - 36 Volt version.

Backpanel Connections (12-36 Volt version)

Backpanel Connections (12-36 Volt Version)

The backpanel connections of the 12-36 Volt version of the Buildbotics Controller include:

  • One Monitor port (labeled Monitor)
  • One 100 Mbps Ethernet jack (labeled ENet)
  • 4 USB ports (labeled USB)
  • 4 motor ports (labeled M0, M1, M2, and M3)
  • 2 Load ports (labeled L1 and L2)
  • A DC input power connector (labeled 12-36 VDC)
  • A 25-Pin male DB25 connector (labeled I/O)

Backpanel Connections (24-48 Volt version)

Backpanel Connections (24-48 Volt Version)

The backpanel connections of the 24-48 Volt version of the Buildbotics Controller include:

  • One Monitor port (labeled Monitor)
  • One 100 Mbps Ethernet jack (labeled ENet)
  • 4 USB ports (labeled USB)
  • 4 motor ports (labeled M0, M1, M2, and M3)
  • A DC input power connector (labeled 24-48 VDC)
  • A 25-Pin male DB25 connector (labeled I/O)
  • A 15-Pin male DB15 connector (labeled Aux I/O)

Power Supply

The 24-48 Volt version of the Buildbotics Controller runs from a single power supply with voltage between 24 and 48 Volts DC and can sink up to 15 amps of DC current.

24 to 48 VDC Connector pinout
24 to 48 VDC Connector pinout

The 12-36 Volt version of the Buildbotics Controller runs from a single power supply with voltage between 12 and 36 VDC and can sink up to 15 amps of DC current.

12 to 36 VDC Connector pinout
12 to 36 VDC Connector pinout

The power connector is 6-pin connector. Pins 1, 2, and 3 are on the top row and are connected to ground. Pins 4, 5, and 6 are on the bottom row and are connected to dc power between 24 and 48 volts for the 24-48 volt version or between 12 and 36 volts for the 12-36 volt version.

The connector has reverse polarity protection built in. However, connecting power and ground to the top row or to the bottom row simultaneously will provide a short circuit and a potentially violent failure. The Buildbotics Controller comes with a pre-made power supply cable that plugs into the “24-48 VDC” or the "12-36 VDC" connector and can be wired directly to a DC power supply.

Pre-made power supply cable

The “24-48 VDC” or the "12-36 VDC" connector mates with a Molex 39-01-2060 plug that is equipped with Molex 39-00-0038 female pins. Attaching wires to the 36-00-0038 female pins and inserting the pins into the 39-01-2060 housing requires some practice. If you choose to build your own cable, make sure that the wire and pins used are big enough to handle the current requirements for your application. A premade power cable is shipped with the Buildbotics Controller.

The following picture shows a typical power supply connected to the power supply connector using the Buildbotics supplied pre-made power cable. Notice that the three bottom pins on the power supply connector are attached to the +V terminals and the three top pins on the power supply connector are attached to -V terminals on the DC power supply.

Typical power supply connection

USB Devices

Several types of peripheral devices connect to the Buildbotics Controller through USB ports. They may include:

  • The Gamepad controller
  • USB thumb drive
  • Keyboard
  • Mouse
  • Web camera
  • USB Wifi Antenna
  • Powered USB hub

There are only four USB ports available on the back of the Buildbotics Controller. In addition, the amount of power available to the USB ports is limited. If more than four ports are required or if the Buildbotics Controller cannot power all of the USB devices it serves, a powered USB hub is recommended.

USB hub with power adapter

Monitor, Keyboard & Mouse

Use the following steps to operate the Buildbotics Controller without a computer:

  • Connect a monitor to the "Monitor" port on the back of the controller.
  • Plug a USB mouse into one of the USB ports on the back of the controller.
  • Plug a USB keyboard into another USB port on the back of the controller.
  • Attach power to the monitor and turn it on.
  • Configure the monitor input source.
  • Turn on the controller.

Alternatively, users can use a touch screen monitor to eliminate the keyboard and mouse. Buildbotics recommends the ASUS VT168H touch screen monitor.

The Buildbotics Controller is pre-configured with a software keyboard. The software keyboard appears when a text field is selected using a local monitor unless the automatic keyboard is disabled. The software keyboard can be toggled on and off using the keyboard icon at the top of the screen.

The software keyboard is not provided on networked connections. Users that want to use a software keyboard on networked connections can install one on their local computer or local browser.

The Buildbotics logo is displayed on the local monitor while the controller is booting. When the controller has completed its boot process, the “CONTROL” page is displayed.

Cut paths are not displayed on the user interface when using the local monitor.

Network

The Buildbotics Controller offers wired and wireless network connections. Wireless connections can be configured from the Network tab on the SETTINGS Page.

While Internet access is not required to operate the Buildbotics Controller, it is desired. Internet access provides direct access to this manual, and makes software upgrades very easy.

After the Buildbotics Controller is attached to a local area network, it can be accessed across the network by entering the hostname concatenated with .local (“hostname.local”) or the IP address of the Buildbotics Controller into the address bar on any standard browser.

The default hostname is “bbctrl”. So, new controllers can be accessed by putting “bbctrl.local” in the address bar of the browser. Some computers may not support the hostname.local address and require that the IP address be entered into the address bar.

The IP address can be acquired by scrolling to the “Network” LCD screen on the controller using the gamepad.

Enter 'hostname'.local or the IP address

Accessing the Buildbotics Controller from outside the local subnet is not supported.

Ethernet

The Buildbotics Controller connects to standard Ethernet networks via the 10/100Mbps Ethernet RJ-45 port on the back panel. To attach the Buildbotics Controller to the local network, simply plug a standard CAT 5 or CAT 6 Ethernet cable into the jack labeled “Enet” on the back of the controller and plug the other end into a network port on an Ethernet network router or switch.

Buildbotics Controller connected to Ethernet Cable

Wireless

The Buildbotics CNC Controller has a built-in wireless adapter and can be configured as a WiFi client or a WiFi access point.

As a WiFi Client, the Buildbotics Controller and other connected devices communicate through a nearby wireless router.

As a WiFi Access Point, WiFi devices connect directly to the Buildbotics Controller and can communicate outside of the Buildbotics WiFi network through an Ethernet cable to the outside world (if a connection to the outside world is provided.)

Buildbotics Controller can act as WiFi access point and provide wireless access to local devices.

Since the Wifi antenna for the Buildbotics Controller is inside the metal enclosure, the Wifi signal strength is significantly reduced. This may result in poor or no communications. To boost the signal strength, Buildbotics recommends a Wifi antenna like the one shown here.

Raspian Compatible WiFi antenna

This particular Wifi antenna is built on the RT5370 chipset and has been thoroughly tested by Buildbotics.

To install the antenna, simply plug it into an empty USB port on the Buildbotics Controller and configure the Builbotics Controller to ignore the internal Wifi antenna as described in the Network tab on the SETTINGS Page.

Gamepad

Wired USB Gamepad Button Diagram

The Buildbotics Controller comes with a wired USB gamepad controller that can be used to control movement on the X, Y, Z, and A axes and to scroll through the LCD screens on the controller. The gamepad attaches to the Buildbotics CNC Controller via any of the four USB ports on the back panel. Once attached, the gamepad can be used to move the CNC head in any direction at various speeds.

Alternatively, some users may opt to upgrade to the wireless gamepad.

Wireless USB Gamepad Button Diagram

The wireless USB gamepad comes with a wireless USB adapter. Batteries are not included. To use the wireless gamepad:

  1. Add two AA Batteries.
  2. Plug the USB Wireless Adapter into one of the USB ports on the back of the Buildbotics Controller.
  3. Turn on the Buildbotics Controller and let it boot.
  4. Switch the Off/On switch on the back of the wireless gamepad to 'On'. Two red LED's will blink on the 'Home Indicator' on the wireless gamepad. They will continue to blink for 15 to 20 seconds and then go out.
  5. Press the 'Home' button on the wireless gamepad. A single red LED lights to show that the wireless gamepad has synchronized with the wireless USB adapter.

The following table describes the actions that can be achieved using the gamepad.

Movement Buttons Comments
Simultaneous X
and Y movement
X/Y stick Causes the CNC head to move
in the direction that the
X/Y stick is moved.
X movement only X/Y stick and
Horizontal Lock
simultaneously
Restricts movement
to X-axis only
Y movement only X/Y stick and
Vertical Lock
simultaneously
Restricts movement
to Y-axis only
Simultaneous A
and Z movement
Z/A stick Causes up and down
and rotational movement.
Z movement only Z/A stick and
Vertical Lock
simultaneously
Causes up and
down movement only.
A movement only Z/A stick and
Horizontal Lock
simultaneously
Causes rotational
movement only.
Very slow speed Speed 1 Set movement speed to
1/128th of full speed.
Slow speed Speed 2 Set movement speed to
1/32nd of full speed.
Medium speed Speed 3 Set movement speed to
1/4th of full speed.
Full speed Speed 4 Set movement speed
to full speed.
Scroll to next
LCD display
Press right side
of Menu Navigation button
Moves to the next
LCD display
(Ready Display->
Network Display->
Status Display->
Ready Display)
Scroll to previous
LCD display
Press left side
of Menu Navigation button
Moves to the
previous LCD
display
(Ready Display->
Status Display->
Network Display->
Ready Display)

Other gamepads may work perfectly, work but have the buttons in different places, partially work, or not work at all.

25-pin I/O Port

The Buildbotics Controller is equipped with a male DB25 connector for access to a number of I/O ports. The DB25 I/O Port is found on the back panel of the Buildbotics Controller.

The following table describes each pin on the DB25 I/O port.

Controller
version
Pin Type Possible Values
(see note)
Default assignment
Both 1 mappable
digital output
VOL, VOH flood control
Both 2 mappable
digital output
VOL, VOH mist control
Both 3 mappable
digital input
VIL, VIH Motor 0 minimum
limit switch
Both 4 mappable
digital input
VIL, VIH Motor 0 maximum
limit switch
Both 5 mappable
digital input
VIL, VIH Motor 1 minimum
limit switch
24-48VDC 6 SPIN_0-10 0-10VDC User controlled
0 to 10 Volt
analog output
12-36VDC 6 +3.3V 3.3VDC 3.3V voltage source
7 Gnd
Both 8 mappable
digital input
VIL, VIH Motor 1 maximum
limit switch
Both 9 mappable
digital input
VIL, VIH Motor 2 minimum
limit switch
Both 10 mappable
digital input
VIL, VIH Motor 2 maximum
limit switch
Both 11 mappable
digital input
VIL, VIH Motor 3 minimum
limit switch
Both 12 mappable
digital input
VIL, VIH Motor 3 maximum
limit switch
Both 13 RS485 A Spindle control
(positive side of
RS485 differential pair)
Both 14 RS485 B Spindle control
(negative side of
RS485 differential pair)
Both 15 mappable
digital output
VOL, VOH tool enable
Both 16 mappable
digital output
VOL, VOH tool direction
Both 17 Tool PWM VOL, VOH Spindle speed control
(pulse width modulated
signal alternating
between VOL and VOH)
Both 18 mappable
analog input
0-3.3Volts
Both 19 Gnd 0V Ground
24-48VDC 20 +5V 5V 5 Volts
12-36VDC 20 +3.3V 3.3V 3.3 Volts
Both 21 mappable
digital output
VOL, VOH fault indicator
Both 22 mappable
digital input
VIL, VIH probe input
Both 23 mappable
digital input
VIL, VIH estop input
Both 24 mappable
analog input
0-3.3Volts
Both 25 Gnd 0V Ground
Both 26 Gnd 0V Ground (shield)
***Note** - The following table defines the logic values that are used.*
Controller
Version
Logic Name Minimum Maximum Definition
Both VOL 0 0.5 VDC Logic output low
24-48VDC
version
VOH 4.5VDC 5.3VDC Logic output high
12-36VDC
version
VOH 2.6VDC 3.3VDC Logic output high
Both VIL 0 0.3VDC Logic input low
24-48VDC
version
VIH 1.5 VDC Open or up
to 50VDC
Logic Input High
Up to 50 Volts can
applied with out
damaging the input
12-36VDC
version
VIH 1.5 VDC Open or
3.3V
Logic Input High

Typically, a female DB25 breakout board is used to interface with the DB25 I/O Port. The following image shows a DB25 breakout box that is used for interfacing with the Buildbotics Controller. A DB25 breakout box is supplied with the Buildbotics CNC Controller.

DB25 Breakout Box pin assignment

15-Pin Auxilliary I/O Port

The 24-48 VDC version of the Buildbotics Controller is equipped with a male DB15 Auxilliary I/O connector on the back panel.

The 15-Pin Auxilliary I/O connector provides access to the motor enable, step, and direction inputs to the motor drivers. These lines provide the ability to bypass the internal motor drivers and control external drivers.

In addition, the +5V, Gnd, and fault outputs are duplicated from the 25 Pin I/O port.

The following table describes each pin on the 15 Pin Auxialliary I/O port.
Pin Name I/O Possible values Description
1 Fault O VOL, VOH Indicates a motor fault
when high
(see note)
2 Step_X O VOL, VOH Low to high transition
for each step
(see note)
3 Step_Y O VOL, VOH Low to high transition
for each step
(see note)
4 Step_Z O VOL, VOH Low to high transition
for each step
(see note)
5 Step_A O VOL, VOH Low to high transition
for each step
(see note)
6 5V 5 Volts 5 Volt source
7 reserved reserved, do not use
8 reserved reserved, do not use
9 Motor_Enable O VOL, VOH VOH enables motor drivers
10 Dir_X O VOL, VOH VOH for forward direction
11 Dir_Y O VOL, VOH VOH for forward direction
12 Dir_Z O VOL, VOH VOH for forward direction
13 Dir_A O VOL, VOH VOH for forward direction
14 Gnd Ground
15 Gnd Ground
16 not connected not connected
***Note** - The following table defines the logic values that are used.*
Logic Name Minimum Maximum Definition
VOL 0 0.5 VDC Logic output low
VOH 4.5VDC 5.3VDC Logic output high
DB15 Breakout Box pin assignment

Motors

The Buildbotics Controller has four motor outputs, labeled M0, M1, M2, and M3. Each motor output can drive a separate axis, or two motor outputs can be assigned to the same axis. One or more motors can be connected to a single motor output. If more than one motor is connected to a single motor output, they can be wired in series or parallel.

The motor driver outputs can supply up to 6 amps peak current to each coil. Each motor has two coils. If identical motors are connected to a single motor output and they are wired in parallel, then those motors will share the current equally. The current through each motor coil is an approximated sine wave and there is a 90° phase shift between the two coil drivers on each motor output. Since the currents are out of phase, the peak total instantaneous current to a single motor output can be as high as 8.48 amps.

The total average motor current is limited to 15 amps. But, the sum of the peak motor currents can far exceed 15 amps.

Exceeding 15 amps of average current will cause the controller to shut down with a “Motor overload” fault. The average current drawn depends heavily on the load placed on the motors.

Users should refer to the data sheet for the motors being used and configure the motors for the current rating shown in the data sheet. See, the Motor tab section on the SETTINGS Page for more information on this subject.

The voltage output to each motor driver is a pulse width modulated (PWM) voltage with an amplitude equal to the input DC voltage being supplied to the Buildbotics Controller from the power supply.

The motor output connectors are shown below. All four motor output connectors are wired the same. The motor output connectors mate with Amphenol 10127716-04LF connectors equipped with Amphenol 10127718-001LF female crimp pins.

Buildbotics Controller motor output connectors

When connecting motors:

  • Connect the B+ pin (upper left) to the positive side of the B coil on the motor.
  • Connect the B- pin (lower left) to the negative side of the B coil on the motor.
  • Connect the A+ pin (lower right) to the positive side of the A coil on the motor.
  • Connect the A- pin (upper right) to the negative side of the A coil on the motor.

These connections will cause your motor shafts to turn either clockwise or counterclockwise. If the motors are turning in the wrong direction, simply reverse either the A+/A- pair or the B+/B- pair. Do not reverse both pairs.

It takes some practice to properly attach the Amphenol 10127716-04LF connectors equipped with Amphenol 10127718-001LF female crimp pins to a cable. In order to avoid this difficulty, the Buildbotics Controller includes four, 10-foot motor cables with connectors that are compatible with the motor output connectors. Buildbotics motor cables are wired as shown in the following table.

Conductor Premade cable wire color
A+ Red
A- Black
B+ Yellow
B- White or Purple
Buildbotics pre-made motor cable

Some CNC machines use two motors to drive a single axis. If an unused motor output is available on the Buildbotics Controller, simply assign the second motor output to the same axis and connect the second axis motor to the second output.

A single output port can drive two motors with certain limitations. It is recommended that the motors be wired in parallel when driving two motors from a single motor output. The limitations are:

  • Since the two motors are wired in parallel, the current supplied by the motor output will be doubled. For instance, if each motor has a current rating of 2.8 amps, then the current on the motor output must be set to 5.6 amps. The maximum output current from a motor port on the Buldbotics Controller is 6 amps, so you cannot connect two motors that require more than 3 amps each to a single port.
  • When motors are wired in parallel on a single output port, they tend to resonate with one another. When the resonance occurs, the motors will stall. As a result, the motors must run at a speed below this resonance to avoid stalls. Unfortunately, it is not possible to predict the speed at which this resonance will occur without wiring them up and connecting them to the machine.

In many cases, the two motors will face one-another and must turn in opposite directions.

If the motors must turn in opposite directions, then one of the motors will have either the A+/A- pair reversed or the B+/B- pair reversed (but not both). The following image shows the B+/B- pair reversed on the motor on the right which causes the motors to turn in opposite directions.

Parallel motors wired to turn in opposite directions

Refer to the Motors tab on the SETTINGS Page for information on configuring motors.

Spindle

The Buildbotics Controller can control a spindle through a PWM interface, a 0 to 10 volt analog interface, or an RS485 interface.

RS-485

The Buildbotics Controller provides an RS485 interface for controlling Variable Frequency Drives (VFD's) that drive spindles.

RS-485 Spindle Connection

Use the following procedure to connect a VFD to the Buildbotics Controller:

  1. Disconnect power from the VFD, the spindle, and the Buildbotics Controller.
  2. Cut a pair of wires to a length that will reach from the Buildbotics Controller to the VFD.
  3. Twist the two wires at about 1 turn per inch to reduce noise and interference.
  4. Connect the pair to the positive and negative RS485 terminals on the VFD.
  5. Connect the plus side of the RS485 pair to pin 13 on the DB25 breakout board.
  6. Connect the minus side of the RS485 pair to pin 14 on the DB25 breakout board.
  7. Connect the DB25 breakout board to the back of the Buildbotics Controller.
  8. Reconnect power.

If the connection does not come up, or if errors occur, try reversing the RS485 pair.

Refer to the Tool tab on the SETTINGS Page for instructions on how to configure the Buildbotics Controller to control the VFD. Refer to the VFD manual for instructions on how to configure the VFD.

PWM

Use the following procedure to connect to a PWM spindle controller:

  1. Disconnect power from the spindle, the spindle controller, the spindle power supply, and the Buildbotics Controller.
  2. Refer to the DB25 Connector Pin Description Table to confirm that the Buildbotics output signals are compatible with the inputs on the PWM spindle controller. If not, level shifters may be required.
  3. Connect the 'Tool Enable' pin (15) on the DB25 breakout board to the 'Enable' pin on the spindle controller.
  4. Connect the 'Tool Direction' pin (16) on the DB25 breakout board to the 'Direction' pin on the spindle controller.
  5. Connect the 'Spin PWM' pin (17) on the DB25 breakout board to the PWM terminal on the spindle controller.
  6. Connect one of the Gnd pins (7, 19, or 25) to the analog signal ground terminal on the PWM Controller
  7. Connect the spindle controller to the spindle. (Refer to the manuals for the spindle and the spindle controller.)
  8. Reconnect power.

Refer to the Tool tab on the SETTINGS Page for instructions on how to configure the Buildbotics Controller to control the PWM spindle controller.

0 to 10 Volt Analog

Use the following procedure to connect to the 0 - 10 volt analog interface on a VFD:

  1. Disconnect power from the spindle, the VFD, the VFD power supply, and the Buildbotics Controller.
  2. Refer to the DB25 Connector Pin Description Table to confirm that the Buildbotics output signals are compatible with the inputs on the VFD. If not, level shifters may be required.
  3. Connect the 'Tool Enable' pin (15) on the DB25 breakout board to the 'Enable' pin on the VFD.
  4. Connect the 'Tool Direction' pin (16) on the DB25 breakout board to the 'Direction' pin on the VFD.
  5. Connect the 'SPIN_0-10' pin (6) on the DB25 breakout board to the 0-10 Volt Analog input on the VFD.
  6. Connect one of the Gnd pins (7, 19, or 25) to the analog signal ground terminal on the VFD.
  7. Connect the VFD to the spindle. (Refer to the manuals for the spindle and the VFD.)
  8. Reconnect power.

Refer to the Tool tab on the SETTINGS Page for instructions on how to configure the Buildbotics Controller to control the Analog 0 to 10 Volt interface. Refer to the VFD manual for instructions on how to configure the VFD.

Power Budget

The power budget is limited by the Buildbotics Controller and by the capability of the external power supply. The Buildbotics Controller can draw up to 15 amps of current from the power supply. Refer to the power supply specification to determine its maximum current rating.

When choosing motors, it is important to estimate the maximum total current that will be consumed at any given time.

Estimating stepper motor current can be confusing because the specifications often provide a current rating, and it can be tempting to just add up the current rating of each motor to get the total current drawn from the motors. This approach will result in overestimating the current requirements for the following reasons:

  1. The current rating provided for stepper motors is the per-phase peak current. So, the peak current is actually specified for each phase. The current between the two phases is 90 degrees out of phase so they add and subtract throughout each cycle. The actual sum of the peak currents for a motor can be 1.41 times the per-phase current rating.
  2. The Buildbotics Controller ensures that the proper amount of current is supplied to the motor coils as needed. However, for a good portion of the time, the current is supplied from internal capacitors and from energy storage within motor coils. Therefore, the amount of time when current is being drawn from the power supply is small, resulting in lower average current.

A rule-of-thumb approach is to estimate that the actual average current drawn by a motor from the power supply will be one third of the rated motor current. For instance, if the motor current rating is 4 amps, then a reasonable estimate of current drawn from the power supply would be 4 * (⅓) = 1.3 amps, and a reasonable estimate of current for three 4 Amp motors would be 1.3 * 3 = 3.9 amps.

If the total average motor current exceeds 15 amps, the Buildbotics Controller may shutdown during operation to avoid overheating and damage to the controller. Here are a few ways to avoid these shutdowns:

  • The 24-48 VDC version of the Buildbotics Controller can operate anywhere between 24 and 48 volts DC and the 12-36 VDC version of the Buildbotics Controller can operate anywhere between 12 and 36 volts DC. Operating at higher voltages will cause less current to be drawn at a specific torque and speed. The danger here is that the higher voltage will also produce higher speeds and most people will be tempted to operate at the highest speed possible. The higher speed will result in drawing more current.
  • Many bipolar stepper motors can be wired in series or parallel. Motors wired in parallel will generally run faster but they draw more current. However, wiring these motors in series cuts the current in half.
  • Sometimes machines are built with identical motors on all axes, even though the speed and torque requirements are not the same for all axes. If this is the case, consider changing the motors on any axis that is not required to turn as fast or produce as much torque.
  • When operating your machine, simply limit the speed to a value that avoids the highest current drawn.

Web Camera

Simply plug a motion JPEG (MJPEG) compatible webcam into one of the unused USB ports on the back of the controller and the web camera display will automatically become visible on the user interface.

Web Camera

Not all web cameras will work correctly. Buildbotics has tested the one shown and offers this camera as an add-option to the Buildbotics Controller.

User Interface

The Buildbotics Controller can be accessed, configured, and controlled from a local monitor, USB mouse, and USB keyboard or across a local network from a computer or device with a standard browser. The Monitor, Keyboard, and Mouse Section and the Network Section describe how to access the Buildbotics Controller user interface.

The interface is nearly the same in both cases and is described for both configurations in this section.

Common Features and Controls

The user interface for the Buildbotics Controller consists of several pages. All of these pages have a few things in common.

Tool Tips

Many of the controls on these pages have 'tool tips' that provide hints about what the control does. Hovering over the control with your mouse causes the 'tool tip' to appear.

The user interface is presented on several pages. These pages are the:

  • CONTROL Page
  • 3D VIEW Page (1)
  • EDITOR Page
  • CAMERA Page
  • FILES Page
  • SETTINGS Page
  • DOCS Page

A dark gray 'navigation bar' is displayed on the left side of each page and provides links to each of the other pages. On small screens, this bar becomes a pull-down menu. Resizing the window to be narrow will also cause the bar to become a pull-down menu.

Note 1 - The 3D View is not presented on the local monitor.

Emergency Stop Button

A yellow and red "emergency stop" button is present in the upper right part of the screen on all pages. Clicking this button puts the controller in the 'ESTOPPED' state. When in the 'ESTOPPED' state, all motors and the spindle are disabled, all position and homing information is lost, and the yellow ring blinks between orange and yellow.

Clicking the emergency stop button while the Buildbotics Controller is in the 'ESTOPPED' state attempts to clear the "emergency stop". If the "emergency stop" clears, the outer ring changes back to solid yellow. The "emergency stop" may not clear if the hardware "emergency stop" switch or if a limit switch is active.

The National Fire Protection Agency (NFPA 79) requires that the class of emergency stop button be determined through a risk assessment. The soft "emergency stop" button on these web pages and the estop pin (pin 23 on the DB25 I/O connector) are both software controlled, and cannot be used for safety. If your risk assessment requires an emergency stop button to be installed for safety purposes or mission critical applications, then Buildbotics LLC recommends installing a “listed“ hardware Emergency Stop button in line with system power.

Software Version

The current software version is displayed just below the Buildbotics logo. A check mark is displayed next to the version number if the latest version is currently loaded. If a new version is available, a recommendation to upgrade to the latest version is displayed. The check mark and recommendation are not displayed if internet access is not available.

Automatic checking for new software versions can be disabled from the Admin tab on the SETTINGS page.

Video

If a web camera is connected, a small video window is displayed just left of the emergency stop button on all pages except the CAMERA page. If no camera is connected, "Camera Offline" is displayed in the window.

Clicking on the window navigates away from the current page and to the CAMERA Page.

Virtual Keyboard

The local monitor interface provides a virtual keyboard. This allows users to eliminate the hardware keyboard. The virtual keyboard can be toggled on and off by clicking the Virtual Monitor Keyboard button at the top of the screen.

Toggle the virtual keyboard on and off with the virtual keyboard button.

The virtual keyboard is not provided when accessing the controller from across a local area network.

By default, on the local monitor, the virtual keyboard will appear every time you select a text input field on the user interface. This behavior can be disabled on the Admin tab on the SETTINGS page.

CONTROL Page

The Control page provides real time status and feedback information about the attached machine, and allows controlling the machine through manual jogging, running GCode commands, running macros, or running GCode programs.

Control Page

The CONTROL Page consists of the Axis Table, the Macro Buttons Section, the Status Table, and the Tabbed Section.

Axis Table

The Axis table is at the top of the CONTROL page and gives the following information for each active axis:

  • Position - This is the logical position. GCode commands and programs will move relative to this position. For instance, the command “G0 X10” will cause the X axis to move to 10mm and 10mm will reflect in this field. This assumes that metric units and absolute position mode are being used. This value will also show on the LCD 'Ready' screen.
  • Absolute - This is the actual position of the machine relative to its homed value.
  • Offset - Offset is equal to Position - Absolute. This is useful when you want your program to run from some position other than home. For instance, the physical home value may be at the lowest position along an axis, but the program causes the axis to move to negative values. The offset can shift the zero position to another point along the axis.
Axis Table on Control Page

The buttons on the right side of the Axis table are used to home the axes, set the position of the axes, and zero the position of the axes.

The top 'Home' button causes all axes to initiate their homing sequences. The other 'Home' buttons initiate the homing sequence (1) for their respective axes.

The top 'Zero Axis' button sets the current position of all axes to zero. If the axis has been homed, this button sets the 'Offset' field to be equal zero minus the value in the Absolute field.

The 'Set Axis Position' buttons allow the user to set the 'Position' field to a desired value. If the axis has been 'homed', the 'Offset' field will be adjusted to equal the new value in the 'Position' field minus the value in the 'Absolute' field. If the axis has not been homed, the value in the 'Absolute' field is set to the new value in the 'Position' field and the value in the 'Offset' field is set to zero.

The 'State' fields reflect the 'Homing' state of the respective axis. Possible values and their meanings are:

  • UNHOMED - The axis has not been homed. The background color for the Axis, Position, Absolute, Offset, and State fields will be white.
  • HOMED - The axis has been homed and the program that is currently loaded (2) is able to completely run without going outside the bounds of the soft limits (3). In this case, the background color of the Axis, Position, Absolute, Offset, and State fields will be green.
  • UNDER - The axis has been homed, but the program that is currently loaded (2) cannot run successfully because it would travel below the lower soft limit (3). In this case, the background color of the Axis, Position, Absolute, Offset, and State fields will be yellow. You may be able to clear this problem by adjusting the axis offset.
  • OVER - The axis has been homed, but the program that is currently loaded (2) cannot run successfully because it would travel above the upper soft limit (3). In this case, the background color of the Axis, Position, Absolute, Offset, and State fields will be yellow. You may be able to clear this problem by adjusting the axis offset.
  • NO-FIT - The axis has been homed, but the program that is currently loaded (2) cannot run successfully because it would travel above and below the soft limits (3). In this case, the background color of the Axis, Position, Absolute, Offset, and State fields will be red. The program does not fit within the envelope of your machine as defined by the soft limits and you will not be able to run this program.


Note 1 - Homing sequences are described in the 'Homing' section of the 'Motors' Tab on the 'SETTINGS' Page.

Note 2 - A description of how programs are loaded can be found in the (Auto Tab part of the Tabbed Section).

Note 3 - A description of how soft limits are defined can be found in the 'Motors' Tab on the 'SETTINGS' Page.

Macro Buttons

The Macro Buttons section of the 'CONTROL' Page provides a button for each Macro button that has been assigned. Each button is labeled with a number that reflects the position on the list of Macro buttons and the name and color that is assigned to the button. Simply click one of these buttons to run the program that has been assigned to that button.

The last button is gray in color, has a gear icon, and is labeled 'Macros'. Clicking this button navigates to the 'Macros' tab on the 'SETTINGS' Page to view, add, or remove macro buttons.

Status Table

The status table provides real-time information about the state of the machine and programs.

The "State" field reflects the state of the CNC Controller and the current action being taken. The possible values in the state field are:

  • READY - The controller is ready to execute commands.
  • HOMING - A homing sequence is underway.(1)
  • JOGGING - The user is currently moving an axis with the gamepad or via the Jog tab on the CONTROL Page.
  • ESTOPPED - The controller is estopped. This means that the estop hardware switch has been activated, the soft estop button has been clicked, or a limit switch has activated.
  • RUNNING - A command or program is currently being executed.
  • STOPPING - The current command or program is stopping; probably because the user clicked the stop button.
  • HOLDING - The current command or program is paused; probably because the user clicked the pause button.

The 'Message' field is often blank, but may report a message to describe the machine state. More details can be found by selecting the 'Messages' Tab.

The 'Units' field specifies whether GCode commands will be interpreted in metric or imperial units. The 'Position', 'Absolute', and 'Offset' fields in the 'Axis Table' and the 'Velocity' and 'Feed' fields in the 'Status Table' are reported using the units shown in this field. This field is set to 'IMPERIAL' by executing a 'G20' command and is set to 'METRIC' by executing a 'G21' command. If neither a 'G20' nor a 'G21' command have been executed, it defaults to the value set on the General tab on the SETTINGS Page.

The 'Tool' field reflects the tool number that is current being used. This value is set as a result of executing a “T” GCode command and an "M6" GCode command.

The 'Velocity' field shows the velocity at which the machine is currently traveling. Velocity is reported in the current units for the machine. The value in this field reflects the vector sum of velocities in all directions and is constantly updating while a program is running.

The 'Feed' field reflects the feed rate in the current units for the machine. The feed rate is set by executing a G-Code 'F' Command.

The 'Speed' field reflects the rotational speed of the spindle in revolutions per minute (RPM) as set by an executing a GCode “S” command. If the spindle is capable of reporting the actual speed of the spindle back to the Buildbotics Controller, then the actual speed is also reported in the Speed field, as shown.

Speed Field in the Status Table

The 'Remaining' field shows the amount of time required for the program that is currently loaded to complete.

The 'ETA' field estimates the date and time when the program is expected to complete. This field is only displayed if a GCode program is currently running.

The 'Line' field displays the line number that is currently being processed in a GCode program.

The 'Progress' field reflects the amount of the currently loaded GCode program that has already been executed. The value is given in percent.


Note 1 - Homing sequences are described in the 'Motors' Tab on the 'SETTINGS' Page.

Tabbed Section

The tabbed section provides controls for:

Auto Tab

The Auto tab provides controls for viewing and running GCode programs.

Auto Tab selected

When the Auto tab is selected and no program is running, the 'Run' button, the 'Stop' button, the 'Open' button, the 'Edit' button, and the 'View' button are displayed.

Click the Run button to execute the currently loaded program. This changes the 'State' to 'Running', changes the 'Run' button to a 'Pause' button, and deactivates the 'Open' button.

Click the 'Pause' button to stop executing the currently loaded program. This changes the 'State' field to 'Holding' and changes the 'Pause' button to back to 'Run'. Click 'Run' again to resume execution from where it stopped.

Click 'Stop' to stop executing and exit from the program that is currently 'Running' or 'Holding'.

Click 'Open' to select and load a different program.

Click 'Edit' to navigate to the Editor Page and begin editing the currently loaded program.

Click 'View' to navigate to the 3D View Page to view the cut path simulation of the currently loaded program. The 'View' button is not available on the local monitor.

The program that is currently loaded is displayed in the scrolling window below the control buttons. This window will automatically scroll through the program as it is being processed and highlight the line that is currently being processed.

Users may notice that the actual cutting position lags the highlighted line. After a line is processed, it is put in a queue to be sent to the control hardware for execution.

MDI Tab

The Manual Data Input (MDI) tab allows the user to control the machine by manually entering GCode commands.

MDI Tab selected

The 'Play' button causes the commands that are currently in the command entry field to be executed.

The 'Stop' button causes any commands that are currently executing to stop.

The command entry field accepts GCode commands from the user. Pressing the enter key after typing commands into the command entry field causes those commands to be executed.

The scrolling window of command history displays commands that have been executed. The most recent commands are displayed at the top. Clicking a previously executed command in the scrolling window causes that command to be loaded into the command entry field.

Jog Tab

The Jog tab allows users to jog the machine on any axis.

Jog Tab selected

The controls operate differently depending on the mode of the interface. If the step mode checkbox is unchecked, then the axis starts moving when you left-click and hold on the control and stops moving when you release. If the step mode checkbox is checked, the axis will move a specified distance when the control is clicked.

When in 'step mode', the distance moved is determined by the ring that is clicked. Each ring is labeled with an integer, and that integer specifies the distance in the current units that the axis will move when clicked.

The current units are specified in the 'Units' field in the status table.

When in 'step mode', the integer values for each ring can be adjusted using the fine adjust slider. The 'fine adjust' slider can be on the left, in the middle, or on the right. The following table shows the distance ranges available when in 'step mode'.

Slider Position Inner Ring Second Ring Third Ring Outer Ring
Left .001 .01 .1 1
Middle .01 .1 1 10
Right .1 1 10 100

When not in step mode, the numbers on the controls represent the percent of the maximum speed for the axis at which the axis will move when left-clicking and holding. The maximum speed for the axis is set in the motor configuration.

Once again, the slider has three positions. The following table shows the percent of maximum speed that can be achieved by clicking the various rings with different 'fine adjust' settings.

Slider Position Inner Ring Second Ring Third Ring Outer Ring
Left .1% .25% .5% 1%
Middle 1% 2.5% 5% 10%
Right 10% 25% 50% 100%

Messages Tab

The Messages tab displays a running list of error and status messages. The most recent message is appended to the bottom of the list. These messages can assist in troubleshooting problems. The Message field gives a brief description of the issue and the Location field sometimes gives the source code file and line number where the issue was encountered.

The Repeat field reports the number of times that the issue has occurred.

Clicking the Clear button deletes the list of messages.

Messages Tab selected

I/O Pins Tab

The I/O Pins tab provides a legend for the state of the pins, the Mappable I/O Pins table, and images with pin assignments for the DB25 and DB15 breakout boxes.

I/O Pin Status and Type Legend

The Mappable I/O Pins table shows the function that is assigned to each pin on the DB25 connector. These functions are assigned on the SETTINGS Page I/O tab.

Mappable I/O Pin Assignment Table

The images for the DB25 and DB15 breakout boxes show the pin assignments for each pin position. Hovering over any screw terminal on these images causes the terminal to highlight and presents a description of the function that is currently assigned to that terminal. Terminals that are mappable are assigned on the SETTINGS Page I/O tab.

DB25 and DB15 Breakout Boxes

Power Tab

The Power tab presents the 'Power Faults Table', the 'Measurements Table', and the 'Motor Faults Table'.

Power Faults Table

The Power Faults table displays a variety of faults that may occur. These include:

  • Under voltage - If Under voltage is true, the input voltage has fallen below 22 volts DC for the 24-48 VDC version or 11 volts DC for the 12 - 36 volt version of the Buildbotics Controller. As a result, the outputs have shut down. The most likely cause is that the power supply voltage is too low.
  • Over voltage - If Over voltage is true, the input voltage has exceeded 50 volts for the 24 - 48 VDC version of the Controller or 39 volts for the 12 - 36 VDC version of the Controller and the outputs have shutdown. Likely causes are: 1. Excessive power supply input voltage. and 2. A motor stall has caused back EMF that exceeds the energy absorbing capability of the Buildbotics Controller. When this happens, the Buildbotics Controller shuts down all loads to protect motor drivers and power conditioning circuits.
  • Over current - If Over current is true, the total current has exceeded 15 amps and the outputs have shut down. The Buildbotics Controller shuts down to protect the power conditioning circuits from overheating and becoming damaged.
  • Sense error - If Sense error is true, the outputs have shut down because the initial voltage or current readings were invalid.
  • Shunt overload - If Shunt overload is true, the outputs have shut down due to excessive power being routed through the internal load dump resistor. The most likely cause is that a large motor or a motor with a large inertial load has stalled and the resulting energy that is fed back has exceeded the energy absorbing ability of the Buildbotics Controller.
  • Shunt error - This indicates that the internal overload shunt circuit failed during its power up test.
  • Load 1 shutdown - The Load 1 output on the 12 - 36 VDC version of the Controller has shut down. This field is not used on the 24 - 48 VDC version of the Controller.
  • Load 2 shutdown - The Load 2 output on the 12 - 36 VDC version of the Controller has shut down. This field is not used on the 24 - 48 VDC version of the Controller.
  • Motor under volt - If Motor under volt is true, the motor output has shut down. This is likely caused by excessive current draw by the motor outputs.
  • Motor overload - If Motor overload is true, the outputs have shut down due to excessive current being supplied to the motors. This is likely caused by the sum of all motor currents exceeding 15 amps for several seconds. The Buildbotics Controller shuts down to prevent damage to the power conditioning circuits.
  • Power shutdown - If 'Power shutdown' is true, power to the motors has been shut down.
  • Gate error - If 'Gate error' is true, the motor capacitors failed to charge correctly when the system booted. This suggests that the main FET driving the motors has failed, or there is a short in the motor driver circuitry.
Measurements Table

The Measurements table displays various values including:

  • Input Voltage - displays input voltage from the power supply
  • Motor Voltage - displays the voltage being fed to the motor drivers
  • Motor Power - shows the power being consumed by the motors in Watts.
  • Motor Crrent - displays the total current being supplied to the motor drivers
  • Load 1 - Shows the amount of current being fed to the Load 1 output on the 12 - 36 VDC version of the Controller. This is not used on the 24-48 VDC version.
  • Load 2 - Shows the amount of current being fed to the Load 2 output on the 12 - 36 VDC version of the Controller.This is not used on the 24-48 VDC version.
  • Temp - displays the temperature inside the enclosure
  • RPI temp - displays the Raspberry Pi CPU core temperature
Motor Faults Table

The Motor Faults table displays the status of each motor coil and the communications with each motor driver. A green thumbs up icon indicates that the respective coil or channel is working correctly. A red thumbs down icon indicates that the respective coil or channel has failed.

The first column indicates the motor port.

If a red thumbs down icon appears in the second column, a motor driver has overheated and shutdown.

If a red thumbs down icon appears in the third or fifth columns, overcurrent has been detected on the respective coil. This is most likely a short on the motor wiring.

If a red thumbs down icon appears in the fourth or sixth columns, a general failure has occurred on the respective coil.

If a red thumbs down icon appears in the seventh column, communications or control with the motor driver has failed.

In some cases, clicking the eraser icon in the eighth column can clear a fault. If the fault does clear, the machine will be estopped, so you will have to clear the estop to resume normal operation. If the fault does not clear, try rebooting the controller to clear the faults.

3D VIEW Page

The 3D VIEW Page is not presented on the local monitor, and is only accessible from networked connections.

The 3D VIEW Page displays tool paths for GCode programs. If the program that is displayed is currently running, then a real-time, animated representation of the tool moving along the tool paths is displayed.

3D VIEW Page

To view a specific GCode program that has already been loaded onto the Buildbotics Controller, select File->Open and then choose the desired file from the Buildbotics Controller file system.

To upload and view a file from across the local area network, select File->Open, click 'Upload', and then select the file from your local machine.

Selecting File->Edit navigates to the EDITOR PAGE and loads the program that is currently displayed for editing.

Selecting File->Run navigates to the Control Page and runs the program that is currently loaded on the 3D View.

The View menu provides to ability to toggle graphical features on and off. These features include the tool, the grid, the axis marker, the boundaries of the tool paths, and laser raster intensity.

Enabling the 'laser raster' feature varies the shading on the tool paths in proportion with the laser intensity allowing an image to appear that is similar to the laser raster image that will be imprinted on the material surface.

The Snap menu provides the ability to view the graphical review from several different perspectives.

The Help menu provides some useful tips on features of the 3D Viewer, as well as tips on using mouse controls to minipulate the image.

EDITOR Page

The EDITOR Page provides the ability to create and change GCode programs.

EDITOR Page

Standard File access capabilities are provided under the File menu.

Select File->Download to save the program in the editor to your local computer.

File->View navigates to the 3D View Page to display the tool paths for the current program.

File->Run navigates to the Control Page and executes the program in the editor.

The Edit menu provides standard editing features.

To make changes to the program, simply click at the place where you want to make the change and start typing.

CAMERA Page

The CAMERA Page presents the view of a web camera that can be plugged into the back of the Buildbotics Controller.

CAMERA Page

Clicking the small video window on any or the other pages, navigates to the CAMERA Page.

Select Settings->Show Crosshairs to toggle cross hairs on the video image.

FILES Page

The Files page provides the ability to manage files and folders on your Buuildbotics Controller.

FILES Page

Select File->Upload to upload a file from your local computer to the Buldbotics Controller.

Select File->New Folder to create a new folder in the current folder.

Selection->Edit navigates to the EDITOR Page and opens the currently selected file for editing.

Selection->View navigates to the 3D VIEW Page and simulates and displays the tool paths for the currently selected file (if possible).

Selection->Download copies the currently selected file to your local computer.

Selection->Delete deletes the currently selected file or folder.

SETTINGS Page

Administration and configuration of the Buildbotics Controller is done from the SETTINGS Page.

Within the SETTINGS Page, there are several tabs. Each tab provides a different set of configuration or administration items. The tabs are:

Important - Configuration changes do take affect until they have been saved. When an item is changed, the 'Save' button will turn green. You must click the 'Save' button and observe that it has changed back to grey. The Buildbotics Controller will not let you navigate away from the SETTINGS Page with unsaved changes.

Changes must be saved before navigating away from the SETTINGS Page

General Tab

The General Tab provides the ability to set the units for configuration, define code blocks to be executed at start, end, and during tool changes, define the path accuracy, and set the limit for acceleration around corners.

General Tab on the SETTINGS Page

The ‘units’ pull down menu allows selecting between IMPERIAL or METRIC units. All configuration pages will display in the selected units. Additionally, the Units field on the Control Page will default to the value selected when it boots. This selection can be overridden for ‘display and operation’ on the Control Page when a G20 or G21 GCode is encountered.

Insertions of sequences of ‘G’ and/or ‘M’ codes are possible at the beginning, at the end, and during tool changes. It is often helpful to add comments to the commands. Comments are enclosed in parentheses. Some commands cause program execution to pause and wait for the user to take action before resuming execution. When the characters ‘MSG,’ are entered at the beginning of the comment, the remainder of the comment is presented to the user in an “action dialog”. This helps instruct the user on what action to take before resuming execution.

G and M code commands entered in the “program-start” entry box will be inserted at the beginning of GCode programs when they are executed. By default, the following GCode commands are entered in the “program-start” entry box.

(Runs at program start)
G90 (Absolute distance mode)
G17 (Select XY plane)

Similarly, the “program-end” entry box contains commands that will be inserted at the end of GCode programs. By default, the following GCode commands are entered in the “program-end” entry box.

(Runs on M2, program end)
M2

The “tool-change” entry box contains commands that are run every time an M6 (tool change) command is encountered. By default, the “tool-change” entry box contains the following commands:

(Runs on M6, tool change)
M0 M6 (MSG, Change Tool)

These commands simply pause execution and prompt the user to change the tool. The following example provides a set of commands that can be used to change the tool and then set the height of the z-axis after the tool change. This example assumes the use of a 0.75” (19.05mm) touch plate like the one shown here.

3/4" touch plate
(Runs on M6, tool change)
M70
G21
G0Z100
M0 (MSG, Change tool and attach probe)
F100
G91
G38.2 Z-100
G92 Z19.05
G0 Z25
M0 (MSG, Remove probe)
M72

M70 tells the controller to save its current state (e.g. feed rate, distance mode, and units) so it can be recovered after the sequence is completed.

G21 tells the controller to operate in Metric units.

G0 Z100 raises the tool to 100mm so the tool can be replaced.

M0 (MSG, Change tool and attach z-probe) - The comment starts with ‘MSG,’ so the text “Change tool and attach z-probe” is presented to the user in the action dialog.

F100 says that the feed rate will be 100 mm/minute. This feed rate should be slow to prevent jamming the bit into the surface of the probe. Ideally, the search will stop at the instant that the bit touches the probe.

G91 puts the machine in "incremental distance mode" so it will probe downward by 100mm or until the probe is found in the next command.

G38.2 Z-100 tells the machine to move towards the probe and stop when the probe surface is found. If the search reaches Z = -100 without finding the probe surface, the search will stop and the probing command fails.

G92 Z19.05 sets the z axis to 19.05mm, which is the height of the probe base being used in this example.

G0 Z25 tells the machine to move up to Z = 25 so the probe can easily be removed.

M0 (MSG, Remove probe) reminds the user to remove the probe and waits for the user to click “Continue” to resume execution of the GCode program.

M72 restores the original state (e.g. feed rate, distance mode, and units) that existed at the beginning of the tool change procedure.

The 'max-deviation' entry box sets the Path Accuracy. This defines how much the Buildbotics Controller is allowed to round off corners and defines the maximum allowable deviation when interpolating arcs. Setting this number too low will cause the machine to run slowly. The default value is 0.1mm. This value can be overriden in GCode programs using the G61, G61.1, and G64 GCode commands.

The 'junction-accel' entry box sets the maximum allowable centripedal acceleration around corners. Increasing this value will allow for faster traversal of corners but may cause the planner to violate axis jerk limits and stall the motors. Use with caution.

Motors Tab

The Buildbotics Controller has four motor ports labeled M0, M1, M2, and M3 respectively. Select the individual motor port from the Motor Tab pull down menu.

Motors Tab pull-down menu on the SETTINGS Page

The Motor Configuration Tab provides all configuration items specific to the selected port.

Motors Configuration Tab on the SETTINGS Page

The MotorConfiguration Tab is subdivided into sections titled 'General', 'Power', 'Motion', 'Limits', and 'Homing'.

General

Within the 'General' section, select the axis to be assigned to the motor port from the 'axis' pull-down menu. Axis X, Y, Z, A, B, or C can be assigned to any motor port.

An axis can be assigned to more than one port. When an axis is assigned to a second port, only the 'drive-current', 'idle-current', and 'reverse' fields can be configured for that subsequent motor port. The remaining fields are inherited from the first motor port assigned to that axis.

Second motor assigned to an axis.
Power

The “Power” section configures the amount of current that will flow to the motors.

Check “enabled” to enable the axis. Only 'enabled' axes will appear in the Axis Table on the Control Page.

The drive-current entry box sets the maximum peak current in amps that is supplied to each motor coil. Users should look up this value on the motor data sheet. When connecting two motors in parallel on a single port, the maximum current should be set to double that shown in the motor data sheet. The drive current setting cannot be greater than 6 Amps.

The idle-current entry sets the peak holding current in amps that is supplied when the motor is not moving. In many cases, this can be set to zero. Some systems may require a value that is greater than zero to ensure that the motor holds its position when not moving. The maximum idle-current that can be assigned is 2 amps.

Motion

The “Motion” section sets the speed and direction of the motor.

Checking the reverse checkbox causes the axis to move in the opposite direction.

The microsteps pull-down menu sets the level of microstepping to be used for this axis. Microstepping allows smoother and more accurate motion by subdividing motor steps. For instance, setting microstepping to 32 subdivides each motor step into 32 microsteps. Selections available for microsteps per step include 1, 2, 4, 8, 16, 32, 64, 128, and 256.

Since the maximum step rate is 250,000 steps per second, the maximum velocity may be limited at the highest microstep settings. Maximum velocity will automatically adjust if the maximum step rate is exceeded. Users should verify that the maximum velocity is still correct after adjusting microstepping. If not, users should consider lowering the number of microsteps.

In most cases, setting microstepping to 32 is a good balance.

The number of microsteps per second that will be generated at the maximum velocity is displayed to the right of the microsteps pull down menu.

The maximum-velocity entry box sets the maximum speed at which the axis will move. Typically, users will want this value to be as high as possible without experiencing motor stalls.

A good practice is to experiment with your machine to determine the maximum velocity for each axis, and then set the maximum velocity to about 80% of that value for the actual use of the machine. Note, this is the speed at which rapid moves will occur on your machine. Cutting feed rates are set in GCode and will typically be less than the maximum velocity set in the maximum velocity entry box. The axis will not move at a rate greater than this value even if the feed rate set in GCode is greater than the value set here.

Often times, stepper motor data sheets provide speed versus torque curves with speed shown in revolutions per minute (RPM). The field just to the right of the max-velocity field calculates the motor RPM at maximum velocity based on the maximum velocity, the step angle, and the travel per revolution.

The max-acceleration field sets the maximum acceleration. Excessive acceleration will cause your motors to stall during acceleration or deceleration. Insufficient acceleration will increase cutting time. Experimentation will help you find the optimum value for this field. Metric units for acceleration are given in kilometers per minute2 (km/min2). Imperial units for acceleration are given in “g’s” where one g is the acceleration of gravity (32 feet per second2).

The maximum-jerk entry box sets the amount of jerk that the axis will experience when changing from one velocity to another. Jerk is the rate of change of acceleration. The Buildbotics Controller provides smooth S-curve acceleration and this value sets the rate of change of acceleration. Higher jerk values will cause acceleration to change more abruptly and potentially cause the axis to jerk at the beginning and end of acceleration periods. These jerks can cause the machine to move. The jerk entry box allows users to maximize acceleration rates while minimizing jerks. Metric units for jerk are given in kilometers per minute3 (km/min3). Imperial units for jerk are given in g’s per minute (g/min).

The step-angle entry box sets the step angle in degrees that the motor turns with each full motor step. Users should consult the motor data sheet to determine this value. Most modern stepper motors have 200 steps per revolution, or 1.8° per step. If this is the case, enter 1.8 in the step angle entry box. The field to the right shows the number of steps per revolution for the step angle given.

The travel-per-revolution entry box tells the controller how far the axis will move with each revolution of the motor. The field to the right shows how far the axis will move with each full step. This is a function of the gear ratio of the motor, the number of steps per revolution, and the pitch of the pinion belt, lead screw, or ball screw used to move the axis.

Example - An axis having a ball screw with 2.5 millimeters per turn that is driven by a 10-to-1 gear reduction would move 2.5 x .1 = 0.25 millimeters per turn.

Example - An axis that is driven by a belt and pinion system where the belt pitch is 3 millimeters per tooth and the motor pulley has 20 teeth would move 60 millimeters per revolution.

Example - An axis that uses an 8 millimeter pitch lead screw that is directly driven by the stepper motor would travel 8 millimeters for each revolution.

Limits

The “Limits” section sets soft limits for the axis.

The min-soft-limit entry box sets the minimum absolute position for the axis. If the machine is homed, movements below this position will not be allowed.

The max-soft-limit entry box sets the maximum absolute position for the axis. If the machine is homed, movements above this position will not be allowed.

Homing

The “Homing” section sets the homing procedure for the axis.

The 'homing-mode' pull-down menu sets the method used for homing the axis. The choices are:

  • manual
  • switch-min
  • switch-max
  • stall-min
  • stall-max
Manual Homing

The axis is manually homed by the user. If manual homing is selected, no other homing configuration fields are presented.

In manual homing mode, the user homes the axis by clicking the 'Home' button for that axis in the Axis table on the Control Page. The Controller responds by prompting the user to enter an 'Absolute' position and sets the Absolute and Position fields in the Axis table to the value entered by the user. The Offset in the Axis table is set to 0.

Switch-min and Switch-max Homing

Switch-min and switch-max homing rely on limit switches that are connected to inputs on the DB25 connector. These inputs must be configured on the I/O tab on the SETTINGS Page.

When homing in the 'switch-min' homing mode, the axis will travel towards its minimum position until the limit switch at the minimum position is activated. In this mode, the Position and Absolute fields in the Axis table are set to the value in the 'min-soft-limit' field and the Offset field in the Axis table is set to zero.

When homing in the 'switch-max' homing mode, the axis will travel towards its maximum position until the limit switch at the maximum position is activated. In this mode, the Position and Absolute fields in the Axis table are set to the value in the 'max-soft-limit' field and the Offset field in the Axis table is set to zero.

Additional configuration fields for switch homing

When the homing-mode is 'switch-min' or 'switch-max', the following additional configuration fields are presented:

  • search velocity
  • latch velocity
  • latch-backoff
  • zero-backoff

The following sequence describes the actions taken when homing is initiated on an axis that uses 'switch-min' or 'switch-max' homing.

  1. The axis travels toward the switch at the velocity that is set in the 'search-velocity' field.
  2. When the switch is found, the axis backs away from the switch until the switch de-activates or the distance defined in the 'latch-backoff' field is reached. If the 'latch-backoff' distance is reached before the switch de-activates, the homing sequence fails and is aborted.
  3. When the switch deactivates during the 'latch-backoff' step, the axis once again approaches the switch at the velocity specified in the 'latch-valocity' field.
  4. When the switch activates a second time, the axis backs away from the switch by the distance defined in the 'zero-backoff' field.
  5. The Position and Absolute fields in the Axis table are set to the 'soft-limit' and the Offset field is set to zero. The state of the axis is set to 'HOMED', 'OVER', 'UNDER', or 'NO-FIT' as described the Axis table section of the Control Page
Stall-min and Stall-max Homing

Stall detect homing works by detecting a motor stall when an axis runs into an end stop.

If the homing mode is set to 'stall-min', the axis will search for the minimum end stop and stall when it hits it. If the homing mode is 'stall-max' the axis will search for the maximum end stop and stall when it hits it.

Technically, motor stalls are detected when the controller senses that there is no back Electro-Motive Force (EMF) caused by the rotating motor. Put differently, the controller detects that the motor has stopped turning as it would when it runs into an end stop.

The controller can only determine that there is no back EMF being generated when no current is flowing in the motor coil. This happens once per full motor step when the motor coil current is zero amps. At this instant, the only voltage present on the motor connection is from back EMF. If there is no back EMF at that instant, then the motor must not be turning.

The zero current period only lasts for one microstep. The goal is to measure the voltage during this microstep. There is actually a settling period, so it's best to measure the voltage during the last half of that microstep.

Back EMF varies with the speed at which the motor is turning. If the motor is turning too slowly, the change in back EMF will not be distinguishable from noise.

If the motor is turning too fast, the axis may hit the end stop too hard and cause physical damage. So, there it a 'sweet spot' in the velocity.

It's best not to run the motor at full current during stall detection. That way the torque and physical stress will be reduced when the motor hits the end stop.

Additional configuration fields for stall detect homing

When the homing-mode is 'stall-min' or 'stall-max', the following additional configuration fields are displayed.

  • stall-microstep
  • search-velocity
  • stall-volts
  • stall-sample-time
  • stall-current
  • zero-backoff

It is best to use a lower value of micro-stepping for stall detection. This provides a longer window of time at which to sample the back EMF. That window of time is the time it takes for one microstep. The field to the right of the 'stall-microstep' field states how many microsteps will occur per second with the current settings. Take the inverse of this number to get the time of a single microstep. For instance, if the field to the right shows 5.3k ustep/sec, then the time for a single microstep is 1/5300 = .000189 seconds, or 189 microseconds. Try setting stall-microstep to 8.

'search-velocity' is the speed at which the which the axis will approach the end stop. If it is too slow, there won't be enough back EMF to distinguish the change from noise. If the search velocity is too fast, it can damage your machine. Start with 2 meters/minute and raise it slowly if you do not detect the stall. Note that changing the search velocity changes the actual time for a microstep.

'stall-volts' is the threshold for determining that a stall has occurred. If the back EMF voltage is above the stall volts, no stall is dectected. When the back EMF voltage drops below the value in 'stall-volts', a stall is assumed. If the axis stalls before hitting the end stop, then 'stall-volts' may be too high. If the motor hits the end stop but the stall is not detected, 'stall-volts' may be too low.

'stall-sample-time' sets the time in the microstep when the back EMF will be sampled. It is best to choose a time near the center and preferrable a little past the center of the microstep. For instance, if the length of a microstep is 189 microseconds, then 100 microseconds would be a good choice for 'stall-sample-time'.

'stall-current' sets the drive current during homing procedure. It is best to set this lower than the normal drive current. The lower current will generate less torque and result in less stress on the machine when it hits the end stop. Typically 1/4 to 1/3 of the normal drive current will be a good choice.

'zero-backoff' sets the distance to back away from the end stop after a stall has been detected. After the axis stops at the 'zero-backoff' position, the Absolute and Position fields in the Axis table will be set to the 'soft-limit' and Offset field will be set to zero. The state of the axis is set to 'HOMED', 'OVER', 'UNDER', or 'NO-FIT' as described the Axis table section of the Control Page.

If you have two motor ports assigned to a single axis, stall detect homing will be a little rough. This is because the stall will be detected on one motor before the other. The motor that has not stalled will not stop stalling until the Controller tells it to stop. The result will be that the second motor will continue stalling (and making noise) for a short period of time after the first motor stall is detected. This is normal.

Tool Tab

Select the 'Tool' tab on the SETTINGS Page to configure spindles or lasers.

Tool Tab with tool type disabled

The fields in the Tool Configuration screen differ depending on the value selected in the 'tool-type' pull-down menu.

If the Buildbotics Controller does not control a spindle, set the ‘tool-type’ pull down menu to “Disabled”. When the spindle is “Disabled”, no other fields are present.

When ‘tool-type’ is not ‘Disabled’, the tool configuration is displayed in two sections. The fields in the upper section are common to all tool types.

The tool-type pull-down menu selects the tool type. The defined tool types are:

  • Disabled - No spindle is controlled by the Buildbotics Controller
  • PWM Spindle - Uses spin enable and direction pins, and PWM or 0-10 Volt analog signals to control the spindle. (1) (4)
  • Huanyang VFD (2)
  • Custom Modbus VFD - Users specify the register settings for their particular MODBUS VFD. (2)
  • AC-Tech VFD (2)
  • Nowforever VFD (2)
  • Delta VFD015M21a (Beta) (2), (3)
  • YL600, YL620, YL620A VFD (Beta) (2), (3)
  • FR-D700 VFD (Beta) (2), (3)
  • Sunfar E300 (Beta) (2), (3)
  • OMRON MX2 (2)
  • V70 (2)
  • WJ200 (2)
  • DMM DYN4 (Beta) (2), (3)
  • Galt G200/G500 (2)
  • Teco Westinghouse E510 (2)
  • EM60 (2)
  • Fuling DZB200/300 (2)


Note 1 - Refer to the PWM Connections Section for information about connecting a PWM Spindle.


Note 2 - For all tool types except for PWM Spindle, the spindle is controlled through a VFD and connects to the RS-485/Modbus. Refer to the RS485 Connections Section for information on connecting a Modbus VFD. The Modbus commands, registers and register addresses are unique to each type of Modbus VFD.


Note 3 - VFD types that are marked (Beta) are still in development and have only been partially tested. Let us know your experiences with these interfaces.


Note 4 - Refer to the 0-10 Volt Analog Connections Section for information about connecting a 0-10 Volt analog speed controlled Spindle.

The other common fields are:

  • ‘tool-reversed’ checkbox - Checking ‘tool-reversed’ causes the spindle to turn in the opposite direction. For instance, if an M3 GCode command causes the tool to turn clockwise when ‘tool-reversed’ is not checked, then the tool would turn counter-clockwise when an M3 command is issued and ‘tool-reversed’ is checked.
  • ‘max-spin’ - tells the controller how fast the spindle turns (in RPM) when the maximum speed is specified.
  • ‘min-spin’ - tells the controller how fast the spindle turns (in RPM) when the minimum speed is specified.
PWM Spindle

The PWM Spindle uses the PWM output or the 0-10 Volt analog output and the spin enable and spin direction mappable outputs to control the spindle or laser. These outputs are all provided on the DB25 output connector on the back panel. The spin-enable and spin-direction functions must be assigned to mappable output pins on the I/O Tab on the SETTINGS Page.

The tool type must be set to PWM Spindle if spin-direction and spin-enable pins on the DB25 connector are required even if the spindle speed is not controlled.

Additional fields on Tool Tab when PWM Spindle is selected

Within the Buildbotics Controller, the 0-10 Volt analog circuitry is driven by the PWM output. The resulting output voltage on the 0-10 Volt analog output will simply be 10 Volts times the percent of time that the PWM signal is high (i.e. the duty cycle of the PWM signal if it is not inverted).

The following fields are provided when ‘PWM Spindle’ is selected in the ‘tool-type’ drop-down menu.

  • ‘pwm-inverted’ - When checked, the ‘pwm-inverted’ checkbox causes the duty cycle fields to mean the percent of time that the PWM output is at a logic low. When unchecked, it causes the duty cycle fields to mean the percent of time that the PWM output is at a logic high.
  • ‘pwm-min-duty’ - The ‘pwm-min-duty’ field specifies the percent of time that the “Tool PWM” pin on the DB25 I/O connector will be active when the spindle is turning at the rate specified in the ‘min-spin’ field. The “active” state is specified by the ‘pwm-inverted’ checkbox.
  • ‘pwm-max-duty’ - The ‘pwm-max-duty’ field specifies the percent of time that the “Tool PWM” pin on the DB25 I/O connector will be active when the spindle is turning at the rate specified in the ‘max-spin’ field. The “active” state is specified by the ‘pwm-inverted’ checkbox.
  • ‘pwm-freq’ - The ‘pwm-freq’ field specifies the rate (in Hertz) at which PWM pulses are sent out through the “Tool PWM” pin on the DB25 I/O connector.
  • 'rapid-auto-off' - Checking the 'rapid-auto-off' checkbox causes the cutting head to be turned off during rapid moves. This should only be used if the cutting head can be turned off and on instantaneously. This field is mainly used for laser cutters and engravers.
  • 'dynamic-power' - Checking 'dynamic-power' automatically lowers the cutting head power during acceleration and deceleration. Once again, this setting is mainly used for laser cutters and engravers. With this setting enabled, the intensity of the laser is reduced until the full speed is reached. This prevents having excess energy deposited during acceleration and deceleration. Otherwise, the excess energy could result in over-exposed or burned areas in laser engraved images.

Most VFD's can be controlled using the "Tool Enable", "Tool Direction", and "Spin0-10" pins on the DB25 connector. However, Buildbotics recommends using the RS485 interface for the specific VFD if it is provided.

RS-485/Modbus Spindles

This section describes the additional fields provided for RS-485/Modbus driven spindles.

Modbus Configuration Section

The 'Modbus Configuration section is presented for all RS-485/Modbus driven spindles.

Modbus configuration fields

'bus-id' establishes the communications address on the RS485 connection. Set the value in this field to match the communications address in the VFD.

'baud' should match the setting in the VFD.

'parity' should match the setting in the VFD and will usually be set to none.

Modbus Status Section

The 'Modbus Status section is presented for all RS-485/Modbus driven spindles.

Modbus status fields

The Modbus Status section displays the state of the RS-485/Modbus connection to the VFD.

The 'connection' field shows the state of the connection. The following states are possible:

  • Disconnected - The VFD is not connected to the Buildbotics Controller or the wiring is incorrect.
  • Timedout - The VFD may be connected to the Buildbotics Controller but communications has not been established. The likely cause is the bus-id, parity, or baud rate do not match or the registers are not set correctly in the VFD.
  • Ok - The communications link is working properly.

The 'status' field displays an integer that is fed back from the spindle and provides information about the current state of the VFD. Refer to the manual for the specific VFD to interpret the number that is displayed.

The 'speed' field displays the speed of the spindle in RPM.

Active Modbus Program Section

The Active Modbus Program section is presented for all VFD Driven spindle types except for Huanyang.

Modbus Program Example

The table displays the Modbus program for the current VFD. The column definitions are:

  • Index - This is essentially the line number of the program.
  • Command - This is the action that will be taken on the Modbus interface. The possible commands are described in the Edit Modbus Program Section.
  • Address - This is the address of the Modbus register in decimal numbers.
  • Value - This is the value that will be written to the Modbus register. The value is always zero for read commands.
  • Failures - This is a running count of the number of times a specific command has been attempted and failed. If the maximum mumber is reached, 'Max' will be displayed. Click 'Reset Failures' to reset the failure count to zero.

Clicking 'Customize' changes the 'tool-type' to 'Custom Modbus VFD' and presents the Edit Modbus Program Section to allow editing the existing program.

Notes Section

All VFD tool types except for AC-Tech VFD and FR-D700 (Beta) provide a notes section at the bottom of the page. The notes include a table that lists the recommended VFD register settings and a link to the respective VFD manual.

Modbus VFD Notes Section Example
Custom Modbus VFD

The Custom Modbus VFD selection from the 'tool-type' menu provides the ability to create a new and unique VFD interface. Users can select this tool-type from the menu to start from scratch. It is often better to select a VFD that is similar to the one being created. After the similar VFD is selected and "Saved", Click 'Customize' from the Active Modbus Program to navigate to the 'Custom Modbus VFD' tool type and transfer the program in the similar VFD to the new custom VFD.

The Custom Modbus VFD tool-type adds a 'Clear' button to the Active Modbus Program Section. Click this button to clear all commands from the Edit Modbus Program table.

Edit Modbus Program Section

The Custom Modbus VFD tool-type presents the Edit Modbus Program section.

Edit Modbus Section Example

The columns in the Edit Modbus Program table are:

  • Index - This is essentially the line number of the program.
  • Command - This is the action that will be taken on the Modbus interface.
  • Address - This is the address of the Modbus register in decimal numbers.
  • Value - This is the value that will be written to the Modbus register. The value field is only active for commands that write to Modbus registers.

Commands in the 'Command' column are selected from a pull-down menu. The commands and their descriptions are:

  • disabled - This command is disabled and will be ignored
  • connect-write - This command is used to connect to the VFD and prepare it for accepting other Modbus commands.
  • max-freq-read - Read the maximum frequency setting. This value is used to as a multiplier when setting or reading the actual speed.
  • max-freq-fixed - Hard code the maximum frequency of the VFD rather than reading it from the drive using 'max-freq-read'. This value is used to as a multiplier when setting or reading the actual speed.
  • freq-set - Set the frequency of the VFD. This value sets the speed of the spindle based on the maximum frequency.
  • freq-signed-set - Some VFD's use a negative frequency for reverse direction. This paramater sets the speed based on the maximum frequency and sets direction of the spindle based on the sign.
  • freq-scaled-set - Some VFD's expect a scaled number when setting the speed. freq-scaled-set provides an argument that can be used to scale the speed requested to match the requirements of the VFD. The argument is entered in the 'Value' column.
  • stop-write - Commands the VFD to stop the spindle.
  • forward-write - Commands the spindle to spin in the forward direction.
  • reverse-write - Commands the spindle to spin in the reverse direction.
  • freq-read - This command reads the current speed of the spindle.
  • freq-signed-read - This command is unique to the AC-Tech spindle and reads the current speed and direction of the spindle.
  • freq-actech-read - This command is unique to the AC-Tech spindle and reads the current speed of the spindle.
  • status-read - Read the status of the VFD. See the VFD manual to see what values might be returned. This value is displayed in the status field in the Modbus Status section.
  • disconnect-write - Disconnect from the VFD.

Some commands require multiple lines in the Edit Modbus Program table. In this case, simply place the two commands consequitively in the table with the same command name.

I/O Tab

Select the I/O tab from the Settings page to configure the I/O pins on the DB25 connector. The table in the 'Remappable Pins' section is used to configure and display the state of each I/O pin. The 'Input' section is used to mask noise and switch bounce.

Remappable Pins
Remappable I/O pin settings

The columns in the table are:

  • Pin - specifies the pin number
  • Type - specifies the pin type. The possible types are 'output', 'input', and 'analog'. (1)
  • Function - The pull-down menus provide specific functions that are available depending the pin type.
  • Mode - The pull-down menus specify the signal types that are available for the pin type.
  • State - displays the state for of the pin. The states are described in the legend on the Idicators Tab on the Control Page
Output pins

The possible functions for remappable 'output' pins are:

  • disabled - disabled pins are not used
  • output-0, output-1, output-2, output-3 - these functions are not currently used.
  • output-flood - Normally used for turning on and off flood coolant. This output is controlled with M8, M8.1, and M9 GCode commands.
  • output-mist - Normally used for turning on and off mist coolant. This output is controlled with M7, M7.1, and M9 GCode commands.
  • output-tool-enable - Normally used for turning the spindle on and off. This output is controlled by the M3 and M5 GCode commands.
  • output-tool-direction - Normally used for specifying the direction that the spindle will turn. This output is controlled the the M4 GCode command.

The possible 'Modes' for output pins are:

  • “lo-hi” means the pin switches from a logic low to a logic high to indicate that the pin has activated.
  • “hi-lo” means the pin switches from a logic high to a logic low to indicate that the pin has activated.
  • “tri-lo” means the pin switches from a high impedance state to a logic low to indicate that the pin has activated.
  • “tri-hi” means the pin switches from a high impedance state to a logic high to indicate that the pin has activated.
  • “lo-tri” means the pin switches from a logic low to a high impedance state to indicate that the pin has activated.
  • “hi-tri” means the pin switches from a logic high to a high impedance state to indicate that the pin has activated.
Input Pins

The possible functions for remappable 'input' pins are:

  • disabled - disabled pins are not used
  • input-motor-0-min - lower limit switch input for the axis that is assigned to motor port 0
  • input-motor-0-max - upper limit switch input for the axis that is assigned to motor port 0
  • input-motor-1-min - lower limit switch input for the axis that is assigned to motor port 1
  • input-motor-1-max - upper limit switch input for the axis that is assigned to motor port 1
  • input-motor-2-min - lower limit switch input for the axis that is assigned to motor port 2
  • input-motor-2-max - upper limit switch input for the axis that is assigned to motor port 2
  • input-motor-3-min - lower limit switch input for the axis that is assigned to motor port 3
  • input-motor-3-max - upper limit switch input for the axis that is assigned to motor port 3
  • input-0, input-1, input-2, input-3 - These functions are not currently used.
  • input-estop - This function is used for an estop switch. Note, this function is software controlled and should not be used for 'life safety' or 'mission critical' purposes.
  • input-probe - This function is used for a 'probe' input. It is normally used in conjunction with G38.2 through G38.5 straight probe GCode Commands.

The possible modes for the inputs are:

  • Normally Open - The input is active when pulled to ground.
  • Normally Closed - The input is active when not pulled to ground.
Analog Pins

Analog pins are not currently used.

Input

The "Input" section configures switch-debounce time and switch-lockout time. Switch debounce is the time in milliseconds before a switch state change is recognized. Switch lockout is the time in milliseconds before the state can change again after a state change has been recognized. (2).


Note 1 - Non-configurable pins are not included in the 'Remappable I/O pins table. The following pins are not shown:

  • Ground pins - pins 7, 19, 25, and the shield on the DB25 connector.
  • Power pins - pins 6 and 20 on the 12-36 VDC version of the controller and pin 20 on the 24 - 48 version of the controller.
  • Pins with dedicated functions - Pin 6 (0-10V) and pin 17 (pwm) on the 24-48 VDC version of the controller and pin 17 (pwm) on the 12-36 VDC version of the controller.
  • Pins on the DB15 connector - None of the pins on the DB15 Auxilliary I/O connector are configurable. Their specific functions are described in the 15-Pin Auxilliary I/O Connector section of this manual


Note 2 - the settings of "switch-debounce" and "switch-lockout" affect all switch inputs on the DB25 connector.

Macros Tab

The Macros Tab on the SETTINGS Page is used to assign GCode programs to macro buttons that appear in the Macros section of the Control Page.

Macros Tab on the Settings Page

To create a new macro, click the Add button, select the color of the button and give it a name. Then, click the folder icon to select a program that will be assigned to the button. Finally, click 'Save'. A new button will appear in the Macros section of the Control Page with the number, color, and name that was defined.

To remove a Macro button, click the trash icon and the click "Save".

To change the name of the button, simply type a new name in the button name field. To change the color, click on the color selector and pick a new color. To assign a different program, simply click the existing program name or the folder icon and choose a different program.

To edit the behavior of the existing program, navigate to the Files Page, select the program, and select Edit from the Selection menu.

Network Tab

The Network Tab on the SETTINGS Page sets the controller name, the remote shell username and password, and wireless network connections.

Network Tab on the Settings Page

The Hostname field displays the name of the Buildbotics Controller. The default name is “bbctrl”. This name can be used to access the Buildbotics Controller using a web browser by entering the value in the Hostname field appended with “.local” in the address bar of a web browser. The hostname can be changed by entering a new name in the Hostname field and clicking the “Set” button.

The Username field contains the name of a user that can connect to the Buildbotics Controller using a SSH connection. The default value is “bbmc”. The name can be changed if desired by entering a new username and clicking the “Set” button. SSH connections provide access to a shell on the unix operating system within the Buildbotics Controller.

The password fields allow changing the password for accessing the Buildbotics controller via a SSH connection and for upgrading the software. The default password is “buildbotics”. You can change the password by entering the current password followed by the new password twice, and then clicking the “Set” button.

Caution - Use caution when changing the password. If you forget the password, it cannot be recovered in the field.

To access the Buildbotics Controller using the default username and password, open a terminal and enter the following command:

you@host: ssh bbmc@bbctrl.local

password: buildbotics

The “Wifi Setup” section allows configuring the Buildbotics Controller to be a Wifi Client or a Wifi Access Point.

The “Mode” pull-down menu offers three options:

  • Disabled - This is the default and when selected, WiFi access is disabled.
  • Client - Allows configuring the controller to be a WiFi Client node.
  • Access Point - Allows the Buildbotics Controller to become a wireless access point and serve other wireless nodes.

Selecting Client displays the fields needed to join a local WiFi network.

WiFi setup section on the Network Tab

Check the 'Internal WiFi' checkbox to use the internal WiFi antenna. Leave the 'Internal Wifi' checkbox unchecked to use an external USB Wireless antenna.

Enter the name of your local wireless network in the Network (SSID) field and the local wireless network password in the Password field. The network name and network password can be acquired by logging into your wireless router, or by asking your network administrator.

Click “Set” to apply the changes. Clicking “OK” from the following dialog causes the controller to reboot and connect to the wireless network.

After rebooting, the controller will be on the network if the settings are right, the network is working correctly, and the signal strength is sufficient.(1) (2)


Note 1 - The Buildbotics Controller expects to use WPA, WPA2, or WPA/WPA2 security. If the network is not configured for this type of security, the Buildbotics Controller will not connect.


Note 2 - If the Buildbotics Controller fails to connect to the wireless network, the boot time will be much slower and likely take more than a minute.

Admin Tab

Select the Admin tab on the SETTINGS Page to enable or disable the virtual keyboard, backup and restore configurations, upgrade software versions, view system logs, and create bug reports.

Admin Tab on the SETTINGS Page

Virtual Keyboard

Uncheck the 'Enable automatic virtual keyboard on local screen' checkbox to prevent it from popping up each time you 'click' in a text entry field. Users with hardware keyboards are likely to uncheck this checkbox.

If the checkbox is unchecked, the virtual keyboard will still be accessible by clicking the keyboard icon at the top middle of the screen.

The virtual keyboard is only available on the local monitor. Users that need a virtual keyboard on network connections, should install a virtual keyboard on their local computer or on their web browser.

Configuration

The Configuration section allows backing up and restoring the configuration of the Buildbotics Controller. This is useful if you run your machine in multiple configurations. For instance, you may want to switch your machine configuration between a router and a laser cutter. This allows you to save a configuration for each and restore the configuration as needed.

Click “Backup” to save all configuration information to a file on your local computer.

Click “Restore” to restore a previously saved backup file.

Click “Reset” to reset the entire configuration to the factory default values.

Firmware

The Firmware section allows checking, upgrading, or uploading firmware for the Buildbotics Controller.

Click “Check” to see if a new version of firmware is available.(1) If the Buildbotics Controller is already at the latest version, a “check mark” will show in the page header.

If a firmware upgrade is available, the header on all pages will show that the new firmware is available.(1) Clicking the orange link will jump to the Admin tab on the SETTINGS Page.

If the 'Automatically check for upgrades' checkbox is checked, the Buildbotics Controller will automatically check for upgrades without clicking the 'Check' button.(1)

Click “Upgrade” to upgrade to the latest version of Buildbotics Controller firmware. (2)

Click “Upload” to upgrade the Buildbotics Controller firmware from a file on the local computer. All versions of Buildbotics Controller firmware are available here. Take caution when uploading beta release or old firmware versions, as they could cause an unrecoverable failure. It is strongly advised that you contact Buildbotics support personnel through the Buildbotics Forum before attempting to upload firmware versions other than the current release.


Note 1 - The Buildbotics Controller cannot check for upgrades if not Internet service is provided.


Note 2 - Internet access is required for Upgrades. If Internet access is not available, use Upload.

Debugging

The “Debugging” section provides the ability to view the system log and generate bug reports.

Click "View Log" to view the current log.

Click "Bug Report" to generate a report on the state of the system. You may be asked to generate a "Bug Report" by Buildbotics personnel when troubleshooting a problem. "Bug Report" creates a file that contains the system log files, the configuration of the controller, and the GCode program that is currently loaded. Simply attach the resulting file to an e-mail message to the Buildbotics support person when asked to do so.

DOCS

Select the DOCS Page to get additional information, to access a list of supported GCodes, and to review license information related the Open Source design of the Buildbotics Controller.

Help Tab

The 'Help' tab provides links to several sources of information, including our forum and this manual.

These links are only accessible if the Buildbotics Controller is attached to the internet.

GCode Tab

Select the GCode tab to access the GCode Cheat Sheet, which provides brief descriptions for all supported G and M codes. More detailed descriptions can be accessed by clicking on the commands. The detailed descriptions are actually provided through the linuxcnc.org web site, and are only accessible if internet access is available.

Check the "Show unsupported codes" checkbox near the bottom of the page to display all GCodes including those that are not supported by the Buildbotics Controller.

The "Further GCode Programming Documentation" section provides links to more information about GCode programming.

License Tab

Select the License tab for links to the Buildbotics design information, and a link to our Open Source licence.

Specifications

Enclosure Dimensions

Enclosure Dimensions

Physical and Electrical

Minimum Maximum Units
Weight1kilogram
Height71millimeters
Width at base190millimeters
Width159millimeters
Temperature032°C
Humidity090%
Input Voltage2448Volts DC
Motor Current6Amps
Step Rate250000Steps per second
Microstepping1256microsteps/step
Input current15Amps
Total output current15Amps
Motor coil resistance0.6Ohms
Motor coil inductance120mill-Henries
Rotor inertia2700gram*cm2

Troubleshooting

Here is a list of problems that could occur. If these suggestions don’t help resolve the problem contact us.

LCD screen doesn’t light up

  • Power supply not plugged in
  • Power supply not turned on
  • Power supply not properly connected to Buildbotics Controller
  • Enable switch on Buildbotics Controller not switched to “Enable” (up)
  • Buildbotics Controller may be defective.

LCD screen lights up, but doesn’t boot

  • Buildbotics Controller may be defective

Gamepad doesn’t work correctly

  • Confirm that USB Gamepad is plugged into one of the USB ports on the back of the Buildbotics Controller.
  • Try rebooting the Buildbotics Controller by switching the enable switch off and then back on (down and then up).
  • Confirm that the gamepad is compatible with the Buildbotics Controller
  • The gamepad may be defective.
  • The Buildbotics Controller may be defective.

Can’t access the controller from a web browser

  • Verify that the Buildbotics Controller is fully booted. “Ready” should display in the upper-left corner of the LCD screen.
  • Verify that the web browser is running from a computer that is attached to the same local area network as the Buildbotics Controller. Remote access across the internet is not supported.
  • Verify that the local router is turned on.
  • Verify that the computer and the Buildbotics Controller are both connected to the local area network.
  • Use the gamepad on the Buildbotics Controller to scroll to the LCD network screen and verify that the hostname and the IP address are displayed. If no IP address is displayed, the Buildbotics Controller is not communicating with the local router, check the network connections again or contact your network administrator.
  • Verify that the hostname on the controller is the same name that is being used (with the .local extension) in the address bar of the browser.
  • Try entering the IP address from the Buildbotics Controller in the address bar of the browser. There are some cases where the Buildbotics Controller can only be accessed using the IP address.
  • Try pinging the IP address. If you are able to successfully ping the Buildbotics Controller but cannot access it via a web browser, the Buildbotics Controller may be defective.

Motor doesn’t move

  • Verify that the motor cable is plugged into the proper motor port on the Buildbotics Controller.
  • Verify that the motor wires are connected to the motor.
  • Verify that the motor wiring is correct.
  • Verify that the motor is properly assigned to a motor axis.
  • Verify that the motor axis is properly configured.
  • Verify that the controller is not in “Emergency Stop”.
  • Verify that no limit switches are activated. If a limit switch is active, try disabling it.
  • Confirm that all limit switches are deactivated and try rebooting.
  • Check for faults in the Power Faults table. If faults are found, make changes as suggested in the description of the Power Faults table in the Indicators tab of the Control page.
  • Buildbotics Controller may be defective.

Motor turns in the wrong direction

Motor runs too slow or too fast

Motor stalls while running

Motors get hot

  • Verify that the drive-current is set properly in the motor configuration. (This value should be acquired from the motor datasheet.)
  • Reduce the idle-current in the motor configuration. Many machines will work fine with the idle-current set to zero.

Can’t view video

  • Verify that the web camera is plugged into one of the USB ports on the back of the Buildbotics Controller.
  • Verify that the web camera is a Motion JPEG camera and is compatible with the Buildbotics Controller. Please report your experiences web cameras on the buildbotics forum. Also, refer to https://elinux.org/RPi_USB_Webcams for information about how various web cameras work with the Raspberry PI. Since the Buildbotics Controller incorporates a Raspberry PI, the information on this site should closely reflect how the web cameras that are listed will work with the Buildbotics Controller.
  • Verify that communications via the web browser is working.
  • Try refreshing the web browser.
  • Try rebooting the Buildbotics Controller with the web camera plugged in.
  • If the video image is slow or jerky, your local computer may not be powerful enough to process and display the video stream or your network connection may be too slow to support the video stream.

RS485 spindle doesn’t work

  • Confirm that the spindle is compatible with the VFD.
  • Confirm that the make and model for the VFD matches the selection in the tool-type pull down menu in the tool configuration. (1)
  • Verify that the VFD is powered up.
  • Check the 'connection' field in the tool configuration. If the connection is "Disconnected", verify wiring between the Buildbotics Controller and the VFD is correct. If the connection is "Timedout" verify the register settings in the VFD and confirm that the 'bus-id', 'baud', and 'parity' settings match those in the VFD.
  • Try running the VFD from the MDI interface by entering M3 and a non-zero speed setting in the MDI entry field.


Note 1 - If your VFD does not match any of those found in the pull-down menu, please contact Buildbotics. Buildbotics may be able to provide a new configuration that works with your VFD.

PWM spindle doesn’t work

  • Verify that the spindle-type is set to PWM in the tool configuration.
  • Verify the wiring between spindle and PWM controller.
  • Verify that the PWM spindle controller is powered up.
  • Verify that all of the configuration items are set correctly for the PWM spindle and controller in the tool configuration.