While the flight instruments collects live data about the world around the drone, the flight controller decides what to do with that data. It is the brains of the drone. On the Raspberry Fly the flight controller is based on a Raspberry Pi model B.
The Raspberry Pi Model B has a 700 MHz ARM (v6 architecture) and 512 MB RAM. It has no built-in storage, but uses a SD-card instead. The Raspberry Fly runs rasbian wheezy and is overclocked to 1000 MHz. Overclocking is easily done through the raspi-config utility.
Before using the flight instruments we need to actually connect them to the flight controller. A normal IMU unit (see flight instruments section for IMU info) will use the I2C bus to transmit data. The I2C was first invented by Philips in 1982 and has 7-bit adressing. It is quite simple to use since it uses only two wires for control. The SCL (clock line) and the SDA (data line). You can see a schematic of the Raspberry Pi GPIO pins here. There are usually only one master on the bus (the one that drives the SCL line) and one or more slaves. In our case the master is the Raspberry Pi flight controller and the flight instruments and PWM driver are slaves (more on the PWM driver in the motor control section). Each slave device has a predefined address which can be used for communication over the bus. In case of address conflicts some devices allow you to change the address. Look through the device datasheet for further information. A device like the IMU will usually have several addresses. One for each of the instruments it carries. For more information on using the I2C see the software section.
In general when using the Raspberry Pi GPIO pins, remember that they are NOT 5v tolerant. 5v may cause instability or damage to the Pi.
Drones are fun but can be dangerous. Use any information on these pages at your own risk