I started by designing a simple linear servo (lead screw design). The picture above is of my 400mg variant which has a throw of about 0.2", resolution of 0.0015", and can pull about a 25g load. The motor is a brushed 3.2mm diameter coreless design by Shicoh. The gears used are module 0.15 and can be gotten from http://www.kkpmo.com/. The threaded rod is 0000-160, which means it has 160 threads per inch (TPI). Threaded rods in this size (and 120, 90, etc TPI) can be purchased in 1ft lengths from http://www.jimorrisco.com/.
All the control software is done on a PIC microprocessor and the feedback is done magnetically with a hall effect sensor. Here is a video of my first version which is a little heavier and has a bit longer throw; 450mg and 3/8" respectively.
Naturally, once I had this servo design done and working I had to see if I could make a smaller and lighter one. After some thought I figured that if I took apart the 3.2mm motor, threw away the case, and rebuild it as a stepper motor I could cut the servo weight almost in half. I also compacted the design to further reduce the weight. Here you can see all the parts for the servo nicely arranged on a penny.
This servo functions very similarly to the large one described above. The only difference is that I wired the brushed motor as a stepper motor by soldering directly to the 5 contacts on the motor's commutator. This allowed me to get rid of the steel case and use the commutator as the main structural component (backbone) of the servo.
This servo weighs just 190mg, has a throw of 1/8", and a resolution of 0.003". It can pull with a force of about 4g. Overall length is about 3/8". Here is a video of it in action:
These two servos can run at voltages between 3-5v and are controlled with a 1-2ms pulse as is standard for all hobby r/c servos.