Stepper Motor Driver V2

Testing the current setting functions. Unsurprisingly, that heatsink is quite important for keeping things cool.

Testing the current setting functions. Unsurprisingly, that heat sink is quite important for keeping things cool.

Summary:

I’m considering using the TMC2208 for a future motion control project, which makes this the perfect time to roll another version of my Stepper Tester board. This version uses the same joystick interface, but features a status LED, more convenient IO placement, and - of course - uses the TMC2208 instead of the DRV8825.

In practice this board has been a success as a test, but less ideal as an actual device. The TMC2208 is a bit short on current capacity for my 3D printer, and the joystick doesn’t provide as much control granularity as one might wish. The TMC2208 is also a bit tougher than the TMC5160A to control without UART. If I end up moving forward with my other project, I’ll plan on using a TMC2209. Still, it works fine at low speeds and the silence is quite nice, so I’ll keep it around in case I need to test any steppers.

Software:

This version uses the same firmware as the last version, but it adds support for a the micro-stepping mode LED, and uses a timer interrupt to generate the stepping signal.

Git Repo (tmc2208 branch): https://github.com/lellasone/stepper_tester

Fabrication:

This project was actually fabricated almost entirely by JLC using their PCB assembly service. This saved a bunch of time messing around with 0603 passives and, more importantly, let me use a compact package for the TMC2208 that I would never have been able to solder by hand. The soldering quality was unimpeachable and I plan to have boards assembled for me whenever possible. At around 30$ for two boards the price is a bit steep, but totally reasonable for the savings in time (and a lot of that was setup and shipping).

The board after assembly and before flux removal. The bridge between C2 and C7 is intentional.

The board after assembly and before flux removal. The bridge between C2 and C7 is intentional.

Recommended Improvements:

I don’t actually expect to make another one of these, but I was wrong about that last time so… (Update: Yep, definitely making another rev, it’ll use the TMC2209 though).

Fixes:

  • Debug points on the key stepper driver lines, as well as the stepper feedback lines, and the joystick lines.

  • Serial output for debug.

  • LED output on the driver fault line.

  • Larger, higher-capacity 5v regulator.

  • Move the step line to a timer 1 pwm pin.

  • Fully connect the UART interface for configuration purposes, even if it’s not used in practice. (TMC2208 default starts in a low-speed mode).

  • Convert the disable jumper to a dip switch.

  • 5v indicator led should be green.

Features:

  • User-configurable current setting (and a readout).

  • Convert the joystick to an encoder.

  • Add a servo output.

  • LED bar graphs for speed and current settings.

  • CAN controller (hey, I can dream).