FlySight is an audible GPS intended to give wingsuit pilots real-time feedback on statistics like glide ratio. The FlySight firmware is open-source and lives in this repository.
FlySight uses an Atmel AT90USB646 microcontroller clocked at 8 MHZ. This chip has 64 KB of flash memory, 4 KB of RAM, an onboard USB PHY, and enough I/O to connect everything else. Other components of interest include:
- the GPS module (a u-blox NEO-6Q or NEO-7N),
- a micro-SD card connected via SPI (512 MB as shipped),
- a red and a green LED,
- a lithium polymer battery and charging circuit,
- an override-able power switch (the MCU can keep itself on even as the switch turns off), and
- an audio output system driven by the MCU's PWM support.
There is a schematic if you care to see how everything is connected.
The FlySight code lives in FlySight/
.
The firmware uses LUFA as a submodule in vendor/lufa/
for USB access. It also uses FatFS as a copy in FlySight/FatFS/
for FAT16.
The microcontroller is in the Atmel AVR family. As such, building the firmware requires avr-gcc
.
On UNIXy systems, install an AVR toolchain and run make
. Some suggestions for getting a suitable toolchain:
- Ubuntu Linux:
apt-get install build-essential gcc-avr binutils-avr avr-libc
- Mac OS X: check out CrossPack, use
homebrew
to tap e.g. homebrew-avr/homebrew-embedded, or use the binaries embedded in the Arduino IDE
On Windows, the WinAVR toolchain is recommended:
- Fork the project
- Update submodules (
git submodule init
andgit submodule update
) - Create a feature branch (
git checkout -b shiny_new_feature
) - Develop
- Commit your changes (
git commit -a
, being sure to give a useful message) - Push to your branch (
git push origin shiny_new_feature
) - Create a pull request