We got a lot of questions about the technical benefits of the T-Bone compared to other solutions. Therefore we will start here a description going much deeper into the technical details.
I decided to start from the bottom to the top, describing the basic features of the motor control.
The drivers for X, Y, and Extruder are supporting a maximum motor current of 4A (2.6 RMS), 9…30V, and 1/256 microstep resolution. The drivers are connected with a bidirectional Serial Peripheral Interface (SPI). Therefore it’s possible to control maximum motor current, step resolutions, and other features remotely (other drivers are running with fixed values or need to be set manually).
The Z-axis of the T-Bone are in fact two axis. They can be used to drive two motors for the Z-axis simultaneously or separate for axis and an additional extruder. The maximum current is 1.5A (1.1A RMS), 1/256 microsteps, up to 24V.
X, Y, and Extruder are connected with dedicated motion controller chips. They are responsible for all real-time related activities like calculation of the motor acceleration, maximum speed, and step count to target a certain position. They can operate linear or s-shaped acceleration (what’s the difference? You know it if you ever found your coffee-to-go on your shirt after the metro fitfully started to move). S-Ramps reduce the jerk and make the movement smoother and allow for higher acceleration and thus faster movements. The Z-axis using an integrated driver/controller chips doing the same job (beside the s-shaped ramp). All controllers are using the same clock rate, given by the Arduino™. The maximum step rate (microsteps per second) depending on the clock rate and can be several MHz.
Arduino™-based Real-Time Controller
The stepper controllers are connected to an Atmel™ microcontroller, also with bidirectional SPI. Its only job is to send and receive data from the controllers and the BeagleBone™. Commands are buffered to decouple real-time operation of the T-Bone from the asynchronous UART interface to the BeagleBone™. Optionally the Atmel™ can also control the power switches for the extruder, heat bed, and fan. Also the thermistors are connected to both sides.
The Atmel is running the Arduino™ firmware. Therefore it’s easy to modify the communication protocol for improvement or special requirements.
Comparison to other solutions
Most other solutions are using stepper drivers with unidirectional step/direction interface. These are two wires controlling the step rate of the motor and the rotation direction. Microstep resolution and maximum motor current are even fixed or need to be adjusted manually. Some solutions offer the possibility to set the current by an analog input pin.
Generation the step rate, acceleration, maximum speed and positioning are usually done by the same Arduino™ which is also responsible for host communication, G-Code interpretation, and path planning. Therefore the maximum step rate and complexity of ramp generation is quite limited. Most solutions offer step rates of 10 – 20 kHz and are restricted to linear acceleration ramps.
|X, Y, Ext.||Z||All|
|Step Rate||16 MHz||16 MHz||10 – 20 kHz|
|Set Step Resolution||digital||digital||fixed|
Special features of the driver
The stepper driver chips of the T-Bone have some unique features. The most notable is the stallGuard™ function. By measuring the electronic impulses coming back from the motor, the driver can “see” the current load of the axis. If the motor is blocked by a mechanical end stop, this is recognized and can be feed backed to the control electronics. It is also possible to adjust the motor current to the load level to increase the energy efficiency.
To unable stallGuard™ the control software has to be slightly modified. The user also needs to set some additional parameters to adjust the sensing electronics to the particular characteritics of the used motor.