As I have done many times in the past, I’ve moved onto the second revision of a project before the first one is ever finished. This time, it’s the quadcopter controller design. I upgraded to an ATXMega256A3 for it’s 32MHz clock speed, 7 USARTs, 16 ADC channels, 2 of which can be used as DACs, and a plethora of other goodies. I decided to go with an XMega because it is pretty much the next step after a plain Mega, and because of the Xmegarduino project. It is pretty much what it sounds like, a port of Arduino for the XMega series of chips.
Also, I changed my sensor selection slightly. I am now going to use the MPU-6050 from InvenSense. This awesome device packs a 3-axis accelerometer and 3-axis gyroscope on the same die, and communicates via I2C. This is great, because the XMega has two I2C ports. I know that one can very easily chain up to 128 devices onto a single bus, but having just one device makes things easier, especially because of the pull-up resistors needed. Sparkfun seems to be the only place to get this chip, and InvenSense has been known to be lax about releasing information, but I (probably) won’t need access to the much bragged-about MotionFusion capabilities.
For power, I plan on using this LiPo battery from Adafruit. I don’t know all that much about batteries, but it seems like this one would work fine. Please let me know otherwise. There is an on-board boost/buck converter for providing a nice, even 3.3 volts to power everything. I am using the TPS61200 from TI because it can accept anywhere from 0.3 to 5.5 volts input and has a maximum current output of 1.2 amps. I have the under voltage lock-out set to 3.05 volts, to prevent the LiPo from going too low.
I will admit, the controller PCB will also make a great general-purpose breakout board for the XMega, but my main goal is to build a quadcopter. Schematics and board files will be posted when they are done.