shiftStepper library now on GitHub

The shiftStepper library, along with quite a bit more documentation than before, is now up on GitHub.

You can either get the code here or grab the zip here.

The documentation is in HTML format and was generated with Doxygen; I haven't gotten TeX set up properly on my main computer so there's no unified PDF document yet.

I added a number of features, but have had limited opportunity to test them, so they should be considered to be experimental. Here is the list of changes for this release:

  • Added a README
  • Fixed a bug with the shiftStepMotor device that prevented a command for a fixed number of steps from executing correctly.
  • Added shiftSix board class to support the six channel high side driver board.
  • Added shiftSwitchBlock device class, to support use of the channels of driver boards as binary switches as well as part of stepper motor drivers.
  • Added alternate direct writing board abstract base class, shiftBoardDirect. This writes specified bytes directly to the shift registers and therefore will be faster in many applications.
  • Added subclasses to shiftBoardDirect for six channel and sixteen channel boards.


shiftStepper speed boost

I just uploaded a revised version of the shiftStepper library to the Libraries directory, The changes are all speed-related -- I decreased the time required to execute shiftChain::doTick() for a single 16 channel shield with four stepper motors from 231 microseconds to 145 microseconds. In particular, I reduced the portion involved with shifting out the bits from 100 microseconds to 24 microseconds. This should keep the overhead for long chains down.

shiftStepper Arduino Library Intro & Tutorial

I've been working on an Arduino library to drive unipolar steppers with the sixteen channel high current shield. You could do that before, of course, but this will make it much easier.

The major motivation for this, other than simply making my boards more useful, is the possibility of radically cheaper RepRap electronics. One sixteen channel high current shield + one Arduino + one Proto Shield to land the end stops, the thermistor circuit, and a MOSFET to drive the heater should bring the electronics cost down from around $250 to around $100. 

Since I plan other shift register boards besides the six channel and sixteen channel high current boards in the future, this will have to expand to cover various different types of boards doing various types of things on a single daisy chain. I've been holding off on the stepper driver while I figure out how to architect that system in a reasonable way, and I think I've got a workable architecture. Here's a quick video of a sixteen channel high current shield driving four Lin Engineering NEMA 17 unipolar stepper motors.