There are a few major blocks:
- The host microcontroller is a Texas Instruments MSP430FR2433, chosen largely on the "that's what I have" principle.
- The stepper motor driver is an Allegro A3967. I prototyped this project using Brian Schmalz's excellent EasyDriver (purchased from Sparkfun) so the choice of IC was an easy one.
- The MCU takes its input from two pushbutton switches and outputs to a Nokia 5110 LCD (also purchased from Sparkfun) as well as a pair of transistors used to switch the camera's remote trigger - the remote trigger functionality is still untested though.
- The whole thing is powered from a 9V battery which feeds directly into the A3967 and supplies an LM317 to regulate it down to 3.3V logic.
The board is a four layer stackup. Components and routing on top, 3.3V power plane, ground plane, and more routing on the bottom. The entire thing is hand-soldered, which isn't much of an accomplishment except for the 24QFN package of the MCU. Flux and drag soldering win the day!
The firmware is pretty simple. On powerup the MCU initializes the necessary peripherals and draws an opening menu to the LCD. The user can select speed (sidereal tracking or lunar tracking), timer (10 - 60 seconds on the shutter), and then start the driver. While the driver is engaged the MCU PWMs a signal to the A3967 at the rate selected by the user until the user says "Stop."
This is still a work in progress. The latest fabbed boards had a couple of traces swapped so that the MCU was PWMing the driver's DIR pin instead of STEP. Fortunately the traces were readily accessible!
The shutter control feature is also totally untested. To date I've been mostly focused (lol) on getting the basic drive mechanics going.