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 author → acquired 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-pcb → onefinity-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.