Zigduino bootloader, firmware, and production plans

I just sent the latest zigduino revision out for fabrication. This is the final production prototype; the panel also included a test jig and a couple of interesting development boards. The changes to this revision are mostly cosmetic cleanup and additional test points. There are two significant functional changes for this revision.

First, I added an SPI header parallel to the matching pins on the digital header. A solder jumper on the back of the board allows digital pin 11 allows it to be either a PWM pin or the MOSI pin, for full shield compatibility.

Second, I added RF TX and RX LEDs near the ISP header. These are independent pins (23 and 24), and can be used as indicator lights for other purposes if they are not needed for the particular radio application.

I've also opened a GitHub repository for the ported bootloader and Arduino core. The bootloader works, but I haven't fully tested it yet. The core libraries work well enough for hardware test, but have likewise not been fully wrung out. This package includes board definition files for Atmel's IEEE 802.15.4 MAC library. Additionally, you may wish to check out Atmel's 6LoWPAN (IPv6 under 802.15.4) and BitCloud (ZigBee Pro) libraries as well. 

I'm looking forward to getting the boards out early next year. Watch this space for more updates.

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, shiftStepper-0.01a-2010Dec01.zip. 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.