View the latest manual.

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.

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 Logitech F310 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, and e-stop interfaces are all made available through a DB25 connector on the back. A DB25 breakout board provides easy access to these pins.

Two load switches, each capable of supplying up to 10 amps are provided as well. These can be used for powering heater beds, extruders, and whatever else you can think of.

Pre-made cables are provided for connecting to the motors, power supply, and load switches. These cables really save time when connecting up 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 joining our growing list of Open-Source contributors.

Performance is critical for CNC Controllers. The Buildbotics CNC Controller is a powerhouse working on 12-36 Volts DC, 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.

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
  • 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 on this 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.

The "READY" screen is displayed after the controller has booted.

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

  • READY
  • 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 screen selector button on the gamepad.    

LCD Status Display

One push to the right brings up a status screen that 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 sent on Load 1 (Ld1), the current sent on Load 2 (Ld2), the current used by the internal electronics (Vdd), and the status flags (Flg). The status flags are for internal use by Buildbotics.

Another push to the right brings up the network screen which shows the hostname and IP address that are assigned to this controller.

LCD Network Screen

Connections

Connections to the Buildbotics Controller are made through the back panel.

Buildbotics controller back panel connections.

The connections include:

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

Power Supply

The Buildbotics Controller runs from a single power supply with voltage between 12 and 36 Volts DC.

The 12 to 36 volt power connector can accept voltages from 12 to 36 Volts DC and can sink up to 20 amps of DC current.

DC power connector pin numbering

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 12 and 36 volts.

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 “12-36VDC” connector and can be wired directly to a DC power supply.

Pre-made power supply cable

The “12-36VDC” 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. The 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.

The Buildbotics CNC controller with an LRS-350-36 power supply.
Typical power supply connection

The Power Supply connector on the back of the Buildbotics Controller is compatible with the Mean Well GST280A24-C6P 24-Volt power supply. The following picture shows a Mean Well GST280A24-C6P 24-Volt power supply connected to the Buildbotics Controller. If 24 Volts or 12 Volts with 280 watts meet the needs of your application, this is an excellent solution. The Mean Well GST280A24-C6P power supply can be purchased as an add-on option to the Buildbotics CNC Controller.

Mean Well GST280A24-C6P power supply connected to Buildbotics Controller

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.

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

The Buildbotics Controller can be operated with a touch screen monitor thereby eliminating the need for a keyboard and mouse.

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

Network

The Buildbotics Controller offers wired and wireless connections. Wireless connections can be configured from the ADMIN->Network page. (See the Configuration section of this manual.) 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 Logitech F310 gamepad.

Enter “hostname.local” (default “bbctrl.local”) or the IP address of the controller in the address bar of a standard browser to access the control screen on the Buildbotics Controller

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.

Gamepad

Buildbotics Gamepad Button Diagram

The supplied Logitech F310 gamepad 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.

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 Screen selector
Moves to the next
LCD display
(Initial Display->
Network Display->
Status Display->
Initial Display)
Scroll to previous
LCD display
Press left side
of Screen selector
Moves to the
previous LCD
display
(Initial Display->
Status Display->
Network Display->
Initial Display)

Note - There is a small switch on the back of the Logitech F310 gamepad that is labeled “X” and “D”. It must be switched to the “X” position.

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.

DB25 I/O Port

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

Pin Name I/O Possible values Description
1 Load 2 I/O VOL, VOH Logic level load switch
status/control
(see note)
2 Load 1 I/O VOL, VOH Logic level load switch
status/control
(see note)
3 Motor 0 Min I Open, VIL Minimum limit switch on
Motor 0 (see note)
4 Motor 0 Max I Open, VIL Maximum limit switch on
Motor 0 (see note)
5 Motor 1 Min I Open, VIL Minimum limit switch on
Motor 1 (see note)
6 +3.3V O V3.3 3.3 volt source, 26.1
ohms source impedance
(see note)
7 Gnd
8 Motor 1 Max I Open, VIL Maximum limit switch on
Motor 1 (see note)
9 Motor 2 Min I Open, VIL Minimum limit switch on
Motor 2 (see note)
10 Motor 2 Max I Open, VIL Maximum limit switch on
Motor 2 (see note)
11 Motor 3 Min I Open, VIL Minimum limit switch on
Motor 3 (see note)
12 Motor 3 Max I Open, VIL Maximum limit switch on
Motor 3 (see note)
13 RS485 A I/O Spindle control
(positive side of
RS485 differential pair)
14 RS485 B I/O Spindle control
(negative side of
RS485 differential pair)
15 Tool Enable O VOL, VOH Spindle enable (see note)
16 Tool Direction O VOL, VOH Spindle direction (see note)
17 Tool PWM O VOL, VOH Spindle speed control
(pulse width modulated
signal alternating between
VOL and VOH)
(see note)
18 Analog 2 TBD
19 Gnd Ground
20 +3.3V O V3.3 3.3 volt source, 26.1 ohms
source impedance
(see note)
21 Fault O VOL, VOH Fault indicator
(see note)
22 Probe I Open, VIL Tool position probe
(see note)
23 EStop I Open, VIL Emergency stop switch
(see note)
24 Analog 1 I 0-V3.3 TBD (see note)
25 Gnd Ground
Shield Gnd Ground

Note - The following table defines the logic values that are used.

Logic Name Minimum Maximum Definition
VOL 0 0.76 VDC Logic output low
VOH 2.6VDC 3.3VDC Logic output high
VIL 0 0.6VDC Logic input low
VIH 2 VDC 3.3VDC Login input high
V3.3 3.3VDC Voltage found on V3.3
Output when unloaded

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 I/O Breakout Box
DB25 I/O Breakout Box

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 multiple 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 10 amps. But, the sum of the peak motor currents can far exceed 10 amps.

Exceeding 10 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 configuration section of this manual 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- Purple
Buildbotics pre-made motor cable

Some CNC machines have two motors driven from 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.

Alternatively, a single output port can drive two motors by wiring the motors in parallel. 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

Spindle

The Buildbotics Controller can control a spindle through a PWM interface. Additionally, it can control several different types Variable Frequency Drives (VFD's) through an RS485 interface, which in turn controls the spindle. In most cases, the spindles require their own power source while the Buildbotics Controller only provides the control signals for starting, stopping, and adjusting and monitoring the speed of the spindle.

RS485

The Buildbotics Controller provides an RS485 interface for driving 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 controller, the spindle, and the Buildbotics Controller
  2. Connect the plus side of the RS485 pair to pin 13 on the DB25 breakout board
  3. Connect the minus side of the RS485 pair to pin 14 on the DB25 breakout board
  4. Shielded twisted pair cable is recommended for the connection from the Buildbotics Controller. If you use shielded twisted pair cable, connect the shield to ground on the VFD and to a GND pin on the 25-pin breakout board.
  5. Connect the DB25 breakout board to the back of the Controller
  6. Reconnect power.

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. Connect Tool Enable pin (15) on the DB25 breakout board to the Enable terminal on the spindle controller.
  3. Connect the Tool Direction pin (16) on the DB25 breakout board to the Direction terminal on the spindle controller.
  4. Connect the Spin PWM pin (17) on the DB25 breakout board to the PWM terminal on the spindle controller.
  5. Connect one of the Gnd pins (7, 19, or 25) on the DB25 breakout board to the Ground terminal on the spindle controller.
  6. Connect the spindle controller to its power supply. (Refer to the manual for the spindle controller and the spindle power supply.)
  7. Connect the spindle controller to the spindle. (Refer to the manuals for the spindle and the spindle controller.)
  8. Connect the DB25 breakout board to the DB25 I/O Port on the Buildbotics Controller.
  9. Connect power to the Buildbotics Controller and the spindle power supply.

Load Connectors

The Buildbotics CNC Controller is able to power miscellaneous DC loads through the L1 and L2 connectors. L1 and L2 are Amphenol Minitek 10127720-06LF connectors and mate with Amphenol 10127716 6-position connectors equipped with 10127718-001LF crimp pins.

The top three pins on L1 and L2 are connected to ground. The bottom three pins of L1 supply a voltage equal to the controller input voltage, as do the bottom three pins of L2. Note, the voltages on L1 and L2 are supplied independently.

Each of L1 and L2 are capable of supplying up to 10 amps. However the total power budget for the Buildbotics Controller is 20 amps, so L1 and L2 cannot both supply 10 amps at the same time.

It takes some practice to properly attach the Amphenol 101277120-06F connectors equipped with Amphenol 10127718-001LF female crimp pins to a cable. In order to avoid this difficulty, the Buildbotics Controller includes two load cable stubs that plug directly into the L1 and L2 outputs. The wiring from the load cable stubs are red and black. The red wires supply the plus voltage and the black wires supply ground.

Load Cable stub

Power Budget

The total power supply current is limited to 20 amps. Within this 20 amp budget, up to 10 amps can be supplied to the stepper motors, up to 10 amps can be supplied to Load 1, and up to 10 amps can be supplied to Load 2.

When choosing motors and loads, 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 they specify 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.
  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 will be one third of the rated motor current. For instance, if the motor current rating is 4 amps, then a reasonable estimate of motor current would be 4 * (⅓) = 1.3 amps.

If the total average motor current exceeds 10 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 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.

The total current supplied to all motors and loads cannot exceed 20 amps. The total current is also limited by the current rating of the power supply which is likely to be less than 20 amps. Be cognizant of the total current budget of the Buildbotics Controller, the current rating of the input power supply, and the voltage and power requirements of the loads and stepper motors when deciding whether to drive a load from a Load port on the Buildbotics Controller.

Power Budget Example

Example - A Buildbotics Controller is powered by a Mean Well GST280A24-C6P power supply, which can supply 280 watts (11.7 Amps) at 24 Volts DC. The heater bed shown is being driven from L1 and consumes 180 watts, or 7.5 Amps. Therefore, 4.2 amps is available for driving the three motors. These particular motors are rated at 1.8 amps peak in each coil. Assuming that each motor will have an average current draw of one-third of the rated peak current, then the total average current drawn from the motors will be 3 * 1.8 * (⅓) = 2.1 amps.  7.5 + 2.1 = 9.6 amps which is within the operating limit of the power supply and none of the current limits for the Buildbotics Controller, the load ports, or the motors is exceeded.

Web Camera

Simply plug a webcam into one of the unused USB ports on the back of the controller. Then, turn on the Buildbotics Controller and the web camera display will automatically become visible on the user interface.

Logitech C270 Webcam

Buildbotics has tested the Logitech C270 webcam and shown that it works well when plugged directly into one of the USB ports. Other webcams may require connecting through a powered USB hub to work correctly. Others may not work at all.

The Buildbotics Controller incorporates a Raspberry PI Model 3 computer internally. Webcams shown to be compatible with the Raspberry PI should work well with the Buildbotics controller. Go to this web site for a list webcams that have been tested with Raspberry PI’s.

Software 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 computer or device with a standard browser. The interface is nearly the same in both cases and is described for both configurations in this section.

Accessing the Software Interface

From the Local Network

The Buildbotics Controller can be accessed from any computer on the same local subnet that is running a standard web browser. Simply open a web browser and enter “http://hostname.local” in the address bar where hostname is the name of the Buildbotics Controller. The default name is “bbctrl”, so you can access a new Buildbotics Controller by entering “http://bbctrl.local” in the browser address bar.  

Enter 'hostname'.local or the IP address in the address bar

Some computers will not recognize "http://hostname.local". Alternatively, enter the IP address for the Buildbotics Controller into the address bar of the browser. The IP address can be acquired by scrolling to the network screen on the LCD display using the gamepad.

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

The "Control" page is presented when the connection is made.

Buildbotics Controller Control Page

From the Local Interface

To use the local interface, you must first plug the monitor into the back of the Buildbotics Controller, turn the monitor on, and then boot the controller. A splash of the Buildbotics logo will be presented while the controller is booting. The "Control" page will be presented when the system has fully booted.

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.

A dark gray bar is displayed on the left side of each page. 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. This bar (or menu) provides links to the other pages.

The "Save" button sits at the top of the dark gray bar (or pull-down menu). The "Save" button is gray until a configuration change is made. Once a configuration change is made, the "Save" button turns green. If the "Save" button is green, the configuration changes are not saved (and do not take affect) until the green "Save" button is clicked.

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 disables all motors and the spindle, and causes all position and homing information to be lost. The yellow ring turns orange when the "emergency stop" is clicked. Clicking the orange "emergency stop" attempts to clear the "emergency stop". If the "emergency stop" clears, the outer ring changes back to yellow. The "emergency stop" may not clear if the hardware "emergency stop" switch or if a limit switch is active.

Note that 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

Just below the Buildbotics logo, the current software version is displayed. 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.

Video

Just to the left of the "emergency stop" button, a small window is displayed. This window will display one of the following things:

  • "Camera Offline" - "Camera Offline" is displayed if no camera is connected to the Buildbotics Controller.
  • "Camera In Use" - "Camera In Use" is displayed if another device is currently displaying the video stream. Only one device can view the video stream at a time. Refresh your browser to steal the video stream from the other device.
  • The video stream from the camera that is plugged into the Buildbotics Controller

Left click the camera window to make the window larger. Right click on the camera window to display cross-hairs. The cross-hairs can be handy for video alignment of the spindle or laser head.

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, or through GCode programs.

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 10.000mm will reflect in this field. This assumes that metric units and absolute position mode are being used.
  • Absolute - This is the actual position of the machine relative to its homed value. This value will also show on the Buildbotics controller LCD screen.
  • 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.

Three action buttons are provided for each axis in the right column of the axis table. These buttons behave differently depending the value assigned to “homing-mode” in the Motor Configuration. The possible homing modes are “manual”, “switch-min”, and “switch-max”.

Two buttons, located above the axis action buttons allow setting the offset or homing all active axes with a single click.

In the “manual” homing mode, clicking “Home axis” (rightmost button) prompts the user to set the absolute position. The Absolute value will be set to the value entered by the user. The Position value will be set to the Absolute value plus the Offset value. The background color for the table row for the axis turns green to indicate that the axis has been homed.

In the “manual” homing mode, clicking “Set axis offset” (center button) sets the Offset value to the reciprocal of the current Absolute value and sets the Position value to 0.000.

In the  “manual” homing mode, clicking “Set axis position” (leftmost button) prompts the user for a value and the position is set to that value. The offset value is updated to reflect the difference between the absolute and position values.

In the “switch-min” homing mode, clicking “Home axis” (rightmost button) causes the following procedure to be executed:

  1. The axis moves toward the minimum limit switch at the velocity specified in the “search-velocity” field until the minimum limit switch is activated.
  2. The axis backs away from the minimum switch until the “latch-backoff” distance is reached, deactivating the minimum switch.
  3. The axis moves toward the minimum switch at the "latch-velocity" until the switch is activated.
  4. The axis backs away from the minimum switch by the “zero-backoff” distance.
  5. The "Absolute” value is set to the value in the “min-soft-limit” field.
  6. The “Position” value is set to the “Absolute” value plus the “Offset” value.
  7. The background color for the table row for the axis turns green to indicate that the axis has been homed.

Note - this assumes that the minimum switch is configured and working correctly.

In the “switch-min” homing mode, clicking “Set axis offset” (center button) sets the Offset value to the reciprocal of the current Absolute value and sets the Position value to 0.000.

In the “switch-min” homing mode, clicking “Set axis position” (leftmost button) prompts the user for a value and the position is set to that value. The offset value is updated to reflect the difference between the absolute and position values.

In the “switch-max” homing mode, clicking “Home axis” (rightmost button) causes the following procedure to be executed:

  1. The axis moves toward the maximum limit switch at the velocity specified in the “search-velocity” field until the maximum limit switch is activated.
  2. The axis backs away from the maximum switch until the “latch-backoff” distance is reached, deactivating the maximum switch.
  3. The axis moves toward the maximum switch at the "latch-velocity" until the switch is activated.
  4. The axis backs away from the maximum switch by the “zero-backoff” distance.
  5. The “Absolute” value is set to the value in the “max-soft-limit” field.
  6. The “Position” value is set to the “Absolute” value plus the “Offset” value.
  7. The background color for the table row for the axis turns green to indicate that the axis has been homed.

Note - this assumes that the maximum switch is configured and working correctly.

In the “switch-max” homing mode, clicking “Set axis offset” (center button) sets the Offset value to the reciprocal of the current Absolute value and sets the Position value to 0.000.

In the “switch-max” homing mode, clicking “Set axis position” (leftmost button) prompts the user for a value and the position is set to that value. The offset value is updated to reflect the difference between the absolute and position values.

The "State" column displays the current homing state. Possible values are:

  • 'UNHOMED' - the axis is not homed. The background color of the axis row is white.
  • 'HOMED'- The axis is homed. The background color of the axis row is green.
  • 'OVER' - The axis is homed, but the GCode program that is currently loaded would cause the machine to travel above the maximum soft limit for this axis. The background color for the axis row is yellow.
  • 'UNDER' - The axis is homed, but the GCode program that is currently loaded would cause the machine to travel below the minimum soft limit for this axis. The background color for the axis row is yellow.

Status Tables

Status fields are provided near the center of the Control page. These tables provide real-time information about the state of the machine and programs.

The "State" field reflects the state of the CNC controller. The value in this field is the same as the status displayed in the upper left corner of the LCD screen on the Buildbotics controller. The possible values in the state field are:

  • READY - The controller is ready to execute commands.
  • 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 in lower part of the Control page.

The Units field specifies whether GCode commands will be interpreted in metric or imperial units. The position, absolute, and offset fields in the status table present distance values in the selected units.

The Tool field reflects that 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.

This Velocity field reflects the actual velocity of the machine head relative to the workpiece.

The Feed field reflects the feed rate in millimeters per minute as set by an executing program or a GCode “F” command.

The Speed field reflects the rotational speed of the spindle as set by an executing a GCode  “S” command.

The Loads field reflects the state of the load switch outputs. The states can be either 'On' or 'Off'. If a load switch is on the background color for that switch will turn green.

The Remaining field displays the time remaining to complete execution of the GCode program that is currently loaded.

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 executed 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.

Auto Tab

The Auto tab allows loading, executing, deleting, and inspecting GCode programs. The GCode program that is loaded into the scrolling GCode program window will be executed when the “Play” button is clicked.

The Upload Program button opens a file selector dialog that allows the user to select GCode programs on the local computer and upload them to the Buildbotics controller. Once uploaded, the GCode program is displayed in the scrolling GCode program window and added to the drop down list of previously loaded files.

Clicking the Trash button deletes the file that is currently loaded into the scrolling GCode program window. The user is given the option to delete all previously loaded programs.

The drop down list of previously loaded files allows the user to load GCode programs that were previously stored in the Buildbotics Controller. Once loaded into the program window, these programs can be executed by clicking the Play button.

Click the Play button to execute the currently loaded GCode program. When executing a GCode program, the Play button turns into a Pause button. Click the Pause button to pause a program. Once paused, the Play/Pause button becomes a Play button. Clicking the Play button while paused, causes the program to resume from the place where it was paused.

The stop button stops execution of a GCode program. The stop button takes affect when a GCode program is playing or paused.

The cut path display window shows the cut paths, the tool position, the bound box, and the origin for the currently loaded GCode program.

The cut path display expander button toggles the size of the cut path display window.

The tool display button toggles the presence of the tool image in the cut path display window.

The bound box display button toggles the presence of the bound box image in the cut path display window.

The origin display button toggles the presence of the origin axes image in the cut path display window.

The view perspective buttons allow the user to select between a 3D image, the front view, and the top view of the cut paths in the cut path display window.

The laser display button causes the shade of the cut path displays to vary with the laser intensity. Enabling the laser display provides a better view of laser engraved paths.

Note, the cut path display and the associated buttons (expand, tool view, bound box view, origin view, laser display, and perspective) are not presented on the local monitor interface. The cut path display is only provided through hardwired or WiFi networked interfaces.

GCode instructions scroll through the scrolling GCode program window as the program is executed.

MDI Tab

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

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 the X, Y, or Z axes.

Click and hold in a quadrant to cause the machine to jog in the direction labeled for that quadrant. Each ring is labeled with the percent of the rapid movement at which the machine will move. For instance, if the max velocity for the X axis it set to 3 meters per minute in the motor configuration page, and the second to inner ring is set to 15%, then the X axis will move at .15 x 3 = .45 meters per minute while pressing and holding the mouse in the second to inner ring in the +X quadrant.

The "Fine adjust" slider allows the user to adjust the jog speed settings in the rings. With the slider in the maximum position, the outer ring will allow jogging at 100% of the maximum velocity for the selected axis. With the slider in the minimum position, the inner ring will allow jogging at 0.1% of the maximum velocity for the selected axis.

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.

Indicators Tab

The indicators tab provides status information about the machine including output states, power fault conditions, input and output voltage, motor and load currents, temperature, and RS485 spindle status (if equipped).

The Legend describes the meaning of the images found next to input and output pins in the Inputs table, the Outputs table, the motor configuration pages, and the I/O configuration page.

The Inputs table shows the state of all eight limit switch inputs, the E-Stop input, and the Probe input.

The Outputs table shows the state of the  “tool-enable”, “tool-direction”, “fault”, “load-1”, and “load-2” pins on the DB25 I/O connector. The Tool PWM field is not currently implemented.

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 11 volts DC and the motor and load outputs have shut down. The most likely cause is that the power supply voltage is below 12 volts.
  • Over voltage - If Over voltage is true, the input voltage has exceeded 39 volts and the motor and load outputs have shutdown. Likely causes are: 1. The power supply input voltage exceeds 36 Volts. 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 20 amps and the motor and load 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 motor and load outputs have shut down because the initial voltage or current readings were invalid.
  • Shunt overload - If Shunt overload is true, the motor and load 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.
  • Motor overload - If Motor overload is true, the motor and load 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 10 amps for several seconds. The Buildbotics Controller shuts down to prevent damage to the power conditioning circuits.
  • Load 1 shutdown - If Load 1 shutdown is true, the Load 1 output has shut down. This is likely caused by the L1 output current exceeding 10 amps for several seconds. The Buildbotics Controller shuts the L1 output down to prevent damage to the power conditioning circuits.
  • Load 2 shutdown - If Load 2 shutdown is true, the L2 output has shut down. This is likely caused by the L2 output current exceeding 10 amps for several seconds. The Buildbotics Controller shuts the L2 output down to prevent damage to the power conditioning circuits.
  • 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.

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.

The Measurements table displays various values including:

  • Input - displays input voltage from the power supply
  • Output - displays the voltage being fed to the motor drivers
  • Motor - displays the total current being supplied to the motor drivers
  • Load 1 - displays the current being supplied to the Load 1 output
  • Load 2 - displays the current being supplied to the Load 2 output
  • Temp - displays the temperature inside the enclosure
  • RPI temp - displays the Raspberry Pi CPU core temperature

The Low-side, Analog 1, and Analog 2 fields in the Measurements table are not yet implemented.

The Modbus VFD table reports connection status, speed, frequency, and current as reported by the VFD via the RS485 communications port on the DB25 I/O connector. These fields are only meaningful if a VFD is connected and properly reporting the respective values.

Images that show the pin out of two popular DB25 breakout boards are provided at the bottom of the Indicators tab. These images are often useful when troubleshooting wiring issues.

SETTINGS Page

Click “Settings” in the left pane to define default units and define special GCode clips in the controller.

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 Buildbotics Controller will default to the value selected when it boots. This selection can be overridden for ‘display and operation’ when a G20 or G21 GCode is encountered or by changing the ‘Units’ pull-down menu on the Control page.

The SETTINGS page also allows inserting sequences of ‘G’ and/or ‘M’ codes in GCode programs. Insertions 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 M6 (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 M6 (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 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.

MOTOR Pages

The Buildbotics Controller has four motor driver ports, labeled M0, M1, M2, and M3. They correspond to Motor 0, 1, 2, and 3 respectively. Click the motor driver port listed in the left hand pane to access the configuration screen for that port.

After clicking a motor link as shown, the motor driver configuration screen will open. The screenshot shown below is for configuring motor driver 0. All four motor configuration screens are the same. The units shown in the screenshot below are all Metric because the “units” pull down menu on the “Settings” page was set to “Metric”.

Motor Configuration Page

Axis X, Y, Z, A, B, or C can be selected from the “axis” pull down menu.

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

Check “enabled” to enable the axis.

The drive-current entry box allows setting 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 should not be greater than 6 Amps.

The Idle-current entry allows specifying 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.

The “Motion” section allows configuring 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 allows specifying 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 allows setting 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 allows setting 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 allows specifying 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.

The  “Limits” section allows configuring hard and soft limits for the axis being configured.

The min-soft-limit entry box sets the minimum absolute position for the axis. Movements below this position will not be allowed.

The max-soft-limit entry box sets the maximum absolute position for the axis. Movements above this position will not be allowed.

The min-switch pull-down menu determines the type of physical limit switch that is used for signaling that the axis has reached its minimum position. The choices are:

  • disabled - no limit switch is being used
  • normally-open - The switch closes when the minimum position is reached.
  • normally-closed - The switch opens when the minimum position is reached.

The max-switch pull-down menu determines the type of physical limit switch that is used for signaling that the axis has reached its maximum position. The choices are:

  • disabled - no limit switch is being used
  • normally-open - The switch closes when the maximum position is reached.
  • normally-closed - The switch opens when the maximum position is reached.

The fields to the right of the min-switch and max-switch pull down menus specify the pin number on the DB25 connector and the real-time state of the respective switch input pin. A legend for the real-time state is provided in the "Indicators" tab on the "Control" page.

The  “Homing” section allows configuring the homing procedure for the axis.

The homing-mode sets the method used for homing the axis. The choices are:

  • manual - the axis is manually homed by the user. If manual homing is selected, the search-velocity, latch-velocity, latch-backoff, and zero-backoff fields are not used.
  • switch-min - The axis will travel towards its minimum position until the limit switch at the minimum position is activated. This option requires that a switch is installed at the minimum position and configured in the min-switch field for the axis. In this mode, the position will be automatically set to the value in “min-soft-limit” after homing.
  • switch-max - The axis will travel towards its maximum position until the limit switch at the maximum position is activated. This option requires that a switch is installed at the maximum position and configured in the max-switch field for the axis. In this mode, the position will be automatically set to the value in “max-soft-limit” after homing.

The homing protocol is as follows:

  1. The axis travels toward the limit switch at the “search-velocity”. The “search-velocity” should be slow enough to allow the axis stop within the travel distance of the limit switch lever or plunger.
  2. When the switch activates, the axis stops and backs away by the value in “latch-backoff”. The limit switch deactivates as the axis travels away from the switch.
  3. The axis travels back to the limit switch at the “latch-velocity”. For maximum homing accuracy, the “latch-velocity” should be significantly slower than the “search-velocity”.
  4. When the switch activates, the axis stops and backs away by the value given in “zero-backoff”.

The purpose of approaching the limit switch slowly on the second try is to improve repeatability in the homing position.

TOOL Page

Click the “TOOL” link in the left hand pane to access the Tool Configuration page.

Click "Tool" to configure the spindle

The fields in the Tool Configuration screen differ depending on the value selected in the “spindle-type” pull-down menu.

If the Buildbotics Controller does not control a spindle, set the ‘spindle-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 - The spindle is controlled by the pwm, spin-enable, and spin-dir pins on the DB25 I/O connector.
  • Huanyang VFD - The spindle is controlled through a VFD, which connects to the RS485 interface (pins 13 and 14 on the DB25 I/O connector) . The protocol is set for Huanyang VFD’s.
  • Custom Modbus VFD - The spindle is controlled through the RS485 interface (pins 13 and 14 on the DB25 I/O connector) using the Modbus protocol. Users specify the register settings for their particular Modbus VFD.
  • AC-Tech VFD - The spindle is controlled through a VFD and connects to the RS485 interface (pins 13 and 14 on the DB25 I/O connector). This setting uses the Modbus protocol and provides operating commands that are specific to AC-Tech VFD’s
  • Nowforever VFD - The spindle is controlled through a VFD and connects to the RS485 interface (pins 13 and 14 on the DB25 I/O connector). This setting uses the Modbus protocol and provides operating commands that are specific to the Nowforever VFD.
  • Delta VFD015M21a - This Modbus interface is still in development.
  • YL600 VFD - This Modbus interface is still in development.
  • FR-D700 VFD - This Modbus interface is still in development.

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.
  • ‘tool-enable-mode’ - This field specifies the behavior of the “Tool Enable” pin on the DB25 I/O connector when the tool is turned on; for instance, when an M3 or M4 GCode command is issued.
  • ‘tool-direction-mode’ - field specifies the behavior of the “Tool Direction” pin on the DB25 I/O connector when the tool is turned on; for instance, when an M4 GCode command is issued.

The following table describes the possible settings for 'tool-enable-mode' and 'tool-direction-mode'.

Setting Meaning
Disabled Pin not used
lo-hi Changes from logic low to logic hi to enable the pin
hi-lo Changes from logic hi to logic low to enable the pin
tri-lo Changes from logic open to logic low to enable the pin
tri-hi Changes from logic open to logic high to enable the pin
lo-tri Changes from logic low to logic open to enable the pin
hi-tri Changes from logic hi to logic open to enable the pin

The fields to the right of the tool-enable-mode and tool-direction-mode pull down menus specify the pin number on the DB25 connector and the real-time state of the respective pin. A legend for the real-time state is provided in the "Indicators" tab on the "Control" page.

Select “PWM Spindle” if the Buildbotics Controller relies on the “Tool Enable” and/or the “Tool Direction” pins on the DB25 I/O port for control even if the speed is not controlled with the PWM output.

Configuration screen for a PWM spindle

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.

Checking the 'rapid-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.

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 burnt areas in laser engraved images.

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

This picture shows the Tool Configuration screen when Huanyang VFD is selected for the “tool-type”.

Huanyang VFD Configuration

While the Huanyang spindles support tool enable, spin reversed, and tool direction connections in the same way as the PWM spindles described above, Buildbotics recommends using the RS485 connections on the DB25 I/O connector for controlling Huanyang spindles.

With RS485 control, uncheck “tool-reversed” and disable “tool-enable-mode” and “tool-direction-mode”

The 'status' 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.
  • Timed out - 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.

“Bus-id” establishes the communications address on the RS485 connection. Set the value in this field to match the communications address in the Huanyang VFD.

'baud' should match the setting in the Huanyang VFD.

'parity' should be set to none.

The table provides recommended register values for the Huanyang VFD.

This picture shows the Tool Configuration screen when Custom Modbus VFD is selected for the “tool-type”.

Custom Modbus Configuration

The 'status' 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.
  • Timed out - 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.

“Bus-id” establishes the communications address on the RS485 connection. Set the value in this field to match the communications address in the Custom Modbus VFD.

'baud' should match the setting in the Custom Modbus VFD.

'parity' should be set to none

The "Active Modbus Program" table shows the current register settings for the Custom Modbus VFD. The name of the command is given in the Command column. The register address and value are given in their respective columns and the Failures column shows how many times this command has been attempted and failed.

Users should consult the manual for the specific VFD to determine the correct commands. New commands are added to the "Edit Modbus Program" table just below.

Hint - If your VFD is similar to one of the existing defined VFD's, you may find it helpful to select the similar VFD in the tool-type menu and click "Save" for that VFD. This will pre-load the "Active Modbus Program" and the "Edit Modbus Program" tables. Then, click the "Customize" button from the similar configuration. This will automatically take you to the "Custom VFD Configuration" with all the values for the similar VFD preset in the Active Modbus Program and the Edit Modbus Program tables preset to the similar VFD. From there, you can modify the register settings and values in the "Edit Modbus Program" table to match the needs of your specific VFD.

This picture shows the Tool Configuration screen when AC-Tech VFD is selected for the “tool-type”.

The 'status' 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.
  • Timed out - 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.

“Bus-id” establishes the communications address on the RS485 connection. Set the value in this field to match the communications address in the AC-Tech VFD.

'baud' should match the setting in the AC-Tech VFD.

'parity' should be set to none

The "Active Modbus Program" table shows the current register settings for the AC-Tech VFD. The name of the command is given in the Command column. The register address and value are given in their respective columns and the Failures column shows how many times this command has been attempted and failed.

This picture shows the Tool Configuration screen when Nowforever VFD is selected for the “tool-type”.

The 'status' 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.
  • Timed out - 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.

“Bus-id” establishes the communications address on the RS485 connection. Set the value in this field to match the communications address in the Nowforever VFD.

'baud' should match the setting in the Nowforever VFD.

'parity' should be set to none

The "Active Modbus Program" table shows the current register settings for the Nowforever VFD. The name of the command is given in the Command column. The register address and value are given in their respective columns and the Failures column shows how many times this command has been attempted and failed.

The table in the Notes section provides recommended register values for the Nowforever VFD.

Delta VFD015M21A (Beta), YL900 VFD (Beta), and FR-D700 (Beta) VFD tool types have configuration settings similar to those described above, but have not been fully developed. Users that have these types of VFD's are encouraged to test these configurations as a starting point, and if needed, try "Customizing" them as described in the Custom Modbus VFD section described above.

I/O Page

Click the I/O link in the left hand pane to access the I/O Configuration page.

The "Switches" section configures the estop and probe inputs on the DB25 connector. Possible values for these inputs are:

  • Disabled - The input is ignored.
  • Normally Open - The input is active when pulled to ground.
  • Normally Closed - The input is active when not pulled to ground.

The fields to the right of the estop and probe pull-down menus show the respective pin numbers on the DB25 connector and the real-time state of the input pin. A legend for these inputs is provided in the "Indicators" tab on the "Control" page.

The "Switches" section also 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.

Note - the settings of "switch-debounce" and "switch-lockout" affect all switch inputs on the DB25 connector including the limit switch inputs that are configured on the "Motor Configuration" pages.

The  "Outputs" section configures the "load-1", "load-2", and "fault" outputs on the DB25 connector.

The possible values in the "load-1", "load-2", and "fault" pull-down menus are:

  • “disabled” means the pin output is not used.
  • “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.

“load-1” and “load-2” pull-down menus are associated with the L1 and L2 outputs on the back panel of the Buildbotics controller. The L1 and L2 outputs can be software controlled through GCode commands. "load-1" becomes active when an M7 GCode command is executed, and becomes inactive when a M9 GCode command is executed. "load-2" becomes active when an M8 GCode command is executed, and becomes inactive when a M9 GCode command is executed.

Alternatively, the "load-1" and "load-2" pins can be inputs and control the Load 1 and Load 2 outputs. To do this, set the input to "disabled". Apply 3.3Volts to the pin to turn the load output on and Ground to the pin to turn the load output off.

The state and pin numbers on the DB25 connector for "load-1", "load-2", and "fault" are displayed to the right of the respective fields. A legend for the states is provided in the "Indicators" tab on the "Control" page.

ADMIN Page

General Page

Click ADMIN->General for non-network related administrative functions.

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. If the Buildbotics Controller is already at the latest version, a “check mark” will show in the header as shown here.

If a firmware upgrade is available, the header on all pages will show that the new firmware is available. Clicking the orange link will jump to the ADMIN->General page.

Click “Upgrade” to upgrade to the latest version of Buildbotics Controller firmware. The following dialog is presented.

Enter the Buildbotics Controller password and click Upgrade. The default password is “buildbotics”, but it can be changed on the ADMIN-Network page.

After clicking “Upgrade”, the new firmware will be loaded into the Buildbotics Controller and the controller will automatically reboot.

Click the “Upload” button to load a different version of Buildbotics Controller firmware from a file on the local computer. All versions of Buildbotics Controller firmware are available here. Take caution when uploading old firmware versions, as they may not be compatible with the latest hardware and could cause an unrecoverable failure. It is strongly advised that you contact Buildbotics support personnel through the Buildbotics Forum before attempting to upload an old firmware version.

Checking the “Automatically check for upgrades” checkbox causes the controller to automatically check for new firmware when the Buildbotics Controller is booted, and report the result in the header for all pages as described for the “Check” button.

The Configuration section allows backing up and restoring the configuration of the Buildbotics Controller. This is useful if you need to temporarily change configuration information. For instance, it is not uncommon to temporarily change the “soft limits” on the Z-axis to match the way a GCode program was set up.

Click “Backup” to save all configuration information to a file on your local computer. A dialog like this is presented.

Buildbotics save configuration JSON

A file name is suggested that includes the date. Depending on your browser configuration, you may be able to rename the file and save it in any folder you like.

Clicking “Restore” allows restoring a previously saved backup file.

Clicking “Reset” allows resetting the entire configuration to the factory default values.

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.

Network Page

The ADMIN->Network page allows changing the controller name, changing the remote shell username and password, and setting up wireless network connections.

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. The SSH connection provides 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.

To access to 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” changes the page to look like this:

Buildbotics WiFi setup

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.

Buildbotics configure Wifi and reboot

Note, even if the wireless connection fails, the wired connection will work if you reconnect it.

Selecting  “Access Point” changes the page to this:

11 wifi channels are available. Select one of them from the pull-down menu. Enter a name for the new wireless network and make up a password. Clicking “Set” presents the following dialog:

Click OK to apply the changes and reboot the controller. After the controller reboots, wireless devices can be rehomed with the new network name and password.

If the controller is acting as an access point and has a hard-wired Ethernet cable, any wireless nodes connected through the new network will also have access to the hardwired network, including the internet if it is available.

CHEAT SHEET Page

Click  “CHEAT SHEET” in the left pane to access descriptions of all G and M codes. You can find this same information on the CAMotics GCode page.

A brief description is provided 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.

HELP Page

Clicking “HELP” in the left pane opens a page that provides a link to this manual, a link to the Buildbotics forum, and links to some great Open Source CAD and CAM programs. We encourage you to check them out.

Specifications

Enclosure Dimensions

Buildbotics Enclosure Dimensions

Physical and Electrical

Minimum Maximum Units
Weight 1 Kilogram
Height 71 millimeters
Width at base 190 millimeters
Width 159 millimeters
Temperature 0 32 °C
Humidity 0 90 %
Input Voltage 12 36 Volts DC
Motor Current 6 Amps (peak) per motor coil.
Step rate 250000 Steps per second
Microstepping 1 128 microsteps/step
Input Current 20 Amps
Load 1 Current 10 Amps
Load 2 Current 10 Amps
Total output current 20 Amps
Motor coil resistance 0.6 Ohm
Motor coil inductance 1 20 milli-Henries (mH)
Motor Inertia 2700 gram*cm 2

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)
  • Hardware E-Stop may be activated.
  • 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 a Logitech F310 Controller.
  • Confirm that the switch on the back of the Logitech F310 Controller is switched to the “X” position.
  • 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 first 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 third LCD 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

  • Change the state of the “reverse” checkbox in the Motor Configuration Control screen.
  • Reverse the wiring on one of the motor coils (not both)

Motor runs too slow or too fast

  • Verify that the max-velocity is set correctly in the Motor Configuration Control Screen
  • Verify that the step-angle and travel-per-rev fields are set correctly for your motor in the Motor Configuration Control Screen

Motor stalls while running

  • Confirm that the axis is not binding
  • Reduce the max-velocity in the Motor Configuration Control Screen.
  • Confirm that the drive-current is set properly for the motor.
  • Confirm that the wiring is correct for the motor.
  • Try reducing the max-jerk and max-acceleration settings in the Motor Configuration Control Screen.

Motors get hot

  • Verify that the drive-current is set properly for the motor in the Motor Configuration Control Screen. (This value should be acquired from the motor datasheet.)
  • Reduce the idle-current in the Motor Configuration Control Screen. 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. The Logitech C615 and C270 web cameras are the only ones that have been tested by Buildbotics. Others may work. Please report your experiences with other web cameras on the forum at forum.buildbotics.com. 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. The camera view can only be displayed on one screen at a time. Refreshing the web page will steal the camera image from any other browser that may be displaying the camera view.
  • 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 on the Tool Configuration page.
  • Check the status field on the Tool Configuration page. If status is "Disconnected", verify wiring between the Buildbotics Controller and the VFD is correct. If status says "Timed Out" 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 - 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 Spindle Configuration page.
  • Verify the wiring between spindle and PWM controller.
  • Verify that all of the configuration items are set correctly for the PWM spindle and controller in the Tool Configuration page.