As I mentioned in my last post, part of building Dagda required me to write a linux device driver for the Ajeco ANDI-SERVO motion control board:
After only eleven years, I finally got round to releasing the code for that driver under the MIT licence using Google Code project hosting.
How much use it would be to anyone is up for debate – the current version of the ANDI-SERVO is still in production, but differs from the model I developed on; the driver was written for Linux 2.0.35 and hasn’t been updated; and it’s pretty basic at that. Still, better out there than thrown away 🙂
The board itself is described in this datasheet; the main chip at it’s core, the actual device the driver is controlling, is described in this datasheet, this programming guide, and this user guide. Those, and the first edition of Alessandro Rubini’s excellent book Linux Device Drivers, were the main references for writing the driver.
The documentation I wrote for this was actually in LaTeX because I was still learning it at the time, but here’s the pdf it translated into. There’s only four pages, but they cover the structure and basics of the driver and the code’s simple enough to follow.
Speaking of code, it’s in a mercurial repository. You can browse it on the Google Code project webpage or clone it with hg like so:
Enjoy, and I hope someone finds it useful…