I came across a broken pistol-style AM controller awhile ago and figured it would make a great platform for a hacked together programmable remote. This project uses simple interface connections to the Arduino that allow for the sensing of control positions, illumination of indicator LEDs, battery sensing and the display of telemetry. The ATMEGA328, which makes up the heart of the Arduino, has 6 ADC's (used for control position and battery sensing) and 12 GPIO (used for the LCD control, encoder sensing, serial communication with the XBee and indicator illumination) making it a great platform for creating a new remote.
When you get started on a project like this, the first thing you want to take into consideration is space. While the Arduino Uno form factor is great for prototyping, it is terrible for embedded applications. So, for this project I decided to use my "Breadboardable" Arduino clone since it is quite a bit smaller than the standard Arduino and happened to be sitting in the bottom of my project box. (You could certainly use something like my SMDuino or a Pro Mini). For the receiver, I opted for an Arduino Fio as it is directly compatible with XBee's 3.3V requirement and can control servo's without any level shifting. Oh and yes, those wheels are 3D printed.