Skip to main content

Stepper Drivers

The printer uses various stepper motor drivers. This is because the ones included with the BTT Octopus board are not powerful enough to drive the NEMA 23 motors used for the X, Y, and Z axes. NOTE: Because the printer uses a Core-XY design, only two motors are used to control the X and Y axes simultaneously.

X & Y Axes

The X and Y axes motors are driven using higher-quality DM542T drivers from StepperOnline. These are capable of being run at 200 pulses/revolution, giving better response time than most stepper drivers.

Z Axis

The Z axis, which uses 4 stepper motors, could theoretically be controlled with a single driver by wiring all the steppers in parallel. However, this would not allow individual control of the steppers, which is required for convenient features like Klipper's bed tilt compensation. This feature is specifically for printers that have beds with 4 separate steppers, and allows the printer to correct for a non-flat bed by slightly adjusting the height of each corner. It's not yet known how useful this feature will be, but it could be a significant time saver when it comes to leveling such a large print surface.

Because the Z axis does not need as precise/fast motion control as the other axes, we used cheaper TB6600 stepper drivers instead.

Microstepping

The external drivers support microstepping by way of the DIP switches on the side of the modules. The lowest resolution each stepper can achieve is 200steps/rev, which is no microstepping. Currently, all axis motors are set to 1/16 microstepping (3,200steps/rev) as the BTT Octopus board only supports 1/16 while also using a stepper driver with SPI as the extruder is. This is set on both the DIP switches and in the Klipper configuration file.

image.png

Extruder

The extruder motor is small enough that the TMC2209 stepper driver included with the Octopus board is plenty powerful.

Voltage Levels

Both the DM542T and TB6600 drivers require 5 volt logic to operate. However, the Octopus board stepper outputs only use 3.3 volt logic. Because of this, logic-level converters are needed. I2C converters such as these are adequate, BUT they are a massive pain to wire for all 6 motors. It appears that the "LERDGE" brand 3D printers use a similar setup with external stepper drivers, and so come with a level shifter breakout board that fits in the standard "Pololu" footprint that the Octopus board uses. While there was no way to confirm this from the AliExpress page, they do in fact have three transistors on the bottom half of the PCB that output 5V-shifted signals for DIR+, PUL+, and EN+, with the negative sides of each connected to ground. It also breaks out the 5V rail itself.

3D printer level shifter.webp

Connection to BTT Board and Required Jumpers

By default, the BTT board is designed to use TMC stepper drivers with the "Polulu" quick-connect footprint. We only use a TMC driver board for the extruder motor, with the rest being connected to the above level shifter breakout boards. Jumper pins need to be properly configured under each of the stepper driver modules (see pages 13 and 14 of the BTT Octopus manual):

For all external stepper drivers (X, Y, Z):

image.png

For TMC drivers in UART mode (currently just the extruder):

image.png