Controller/Software Question

Hey Brad @Dainbramage1, hey Doug @martindg, hey all,

Buildbotics is not based on LinuxCNC, as Buildbotics is the own work of its creator, but its g-code syntax is patterned after the LinuxCNC g-code syntax. The Buildbotics Controller is a new CNC Controller written from scratch and not based on LinuxCNC code. It would be rather correct to say, the Buildbotics Controller is based on the knowledge that its authoracquired when he was writing the Camotics 3D Simulation Software (Ref.: History of the Buildbotics Controller).

The Onefinity Controller is a software and a hardware fork of the Buildbotics Controller (bbctrl-firmware, bbctrl-pcbonefinity-firmware, onefinity-pcb)

The buildbotics-based Onefinity Controller works as you can see in the circuit diagram here. On the software side, the user interface is a web interface that runs in a chromium browser on top of a Raspberry Pi OS or on any web browser on a computer you connect remotely via Ethernet or Wifi. The CNC commands input by the user are sent from the Raspberry Pi 3B to the AVR mainboard through a synchronous serial communications interface that the buildbotics author implemented as a bbserial.ko kernel module through the Raspi GPIO pins now called SERIAL_TX, SERIAL_RX and SERIAL_CTS. On the AVR mainboard, the AVR microcontroller controls the four Texas Instruments DRV8711 stepper drivers over the

  • step{X,Y,Z,A},
  • dir{X,Y,Z,A},
  • motor enable, and
  • motor fault inputs.

On the original Buildbotics controller, which evolved a bit further ([1], [2]), these control ports are accessible from the outside over a a 15-pin Auxiliary motor control port. This allows you to drive any external stepper driver, including closed-loop drivers. Unfortunately on the Onefinity hardware fork, you don’t have this 15-pin auxiliary port.

The internal DRV8711’s run the stepper motors over MOSFETS.

2 Likes