Dylan Rudolph and I got an open source hardware grant from the good people at Wyolum. They gave us some money to develop a new open source hardware flight computer. The Ardupilot was basically the only hobbiest grade flight computer that was on the market, and they kept releasing new versions with more and more microcontrollers and a bigger code base. With things like the Kinect and more advanced sensing applications becoming available to hobbyists, we decided that rather than playing catch up by releasing new hardware every 9 months, we’d build a full embedded system running linux that wouldn’t need new hardware for a long time. We were originally going to basically make a modified version of the Beagleboard with an IMU on it, but about a month after we started the project, the Raspberry Pi came out. Rather than try to compete with it, we decided to complement it. So the peregrine board turned into a “pi plate”, or add on for the Raspberry Pi. That way we could also leverage the growing Raspberry Pi community.
The Peregrine Board has a 3 axis gyro, accelerometer, and magnetometer. It also has a barometer (with support for two, so you can calculate airspeed), support for R/C receivers, and GPS. We also added an onboard microcontroller for the Kalman filter and control loop to stabilize the vehicle. It can be pretty difficult to deal with the scheduling stuff in a linux userspace to get delays low enough to keep a vehicle stable. So instead, we handle all of that in the microcontroller. The Peregrine Board talks to the Pi over I2C. We have a Python script that handles all of the interaction between the Peregrine Board and the Pi.
Here’s the first revision:
Current software can be found on github, as well as the schematics. Please note that this is still in active development, so no promises on what will work and when.
Here’s some pictures of me and Dylan’s lab setups for this project: