About the time that I realized that I couldn't quite fit all the code even on 2 ATMega 328 processors, the Arduino team released support for the ATMega128, known simply as the Arduino Mega. With 128k of program memory, and 4k of SRAM for program variables, this is easily up the the task of solar position calculations, along with the associated motor control and user interface code.
They've now gone on to the Mega256 with twice the memory. If the 128 ever fills up I'll keep that in mind.
Input/OutputAn Arduino LCD keypad shield provides a simple display device as well as buttons for input. You can find them at Robot Shop, as well as on eBay. This was a good choice for quick and dirty prototyping, but it's not much of a solution for a weather proof final application. I'll work around that by keeping it inside a clear waterproof box from Walmart meant for keeping things dry while camping (~$7, less than a Pelican box). Another nice thing about these boards is that they only use 4 output pins. With a Mega board and its extra serial I/O a serial LCD module would also work nicely and probably offer better flexibility; however, the weatherproof keypad still needs to be addressed ultimately.
Planned for future implementation: an XBee shield also provides wireless serial I/O for remote device communication.
Motor DriveThe linear actuator motors are rated for 36vdc, but will run very nicely at 24v, and not so well at 12v. 24v is well within most motor drivers so I decided to aim for something compatible. This voltage and the anticipated amperage made many of the popular low end drivers questionable, and the cost of a decent driver board was deemed beyond my budget. I eventually tried a $9 driver board I got from India. It was a dual H-bridge design with TIP-12X transistors that worked fine until I coated one side with liquid rubber and for some reason or other the transistors blew up like firecrackers from the 24v as soon as I powered it up.
I found a simple H-bridge schematic on the internet that could be easily made from discreet components, and also happened to be based on the TIP-12X transistors (the famous Bob Blick design found here. A few people suggested various more expensive options such as MOSFETs, but I decided to keep it simple with the TIPs since they seemed to work. After several blown transistors and a couple prototypes, I managed to make a board that worked, and also fit nicely inside a exterior double gang junction box.
I used a resetable fuse for the 24v supply to the motors, but found that the transistors always blew up before fuse triggered. The adjustable stop switch on the linear actuator helps avoid dealing with stall current, which hasn't proven to be a problem anyway.
PowerSmall sealed lead acid batteries are easily available, and two easily provide the necessary 24v for the actuator motors. Unfortunately though, this complicates the charging situation.
I used a LM317 adjustable regulator and set it for about 6.5v output which gets used by the Arduino board, and any other electronics that might need 5v.