User Manual
This is the latest implementation of GPS assisted position hold and Return to home (RTH)
functions for MultiWii. The code that you can get from the link below is based on the
MultiWii_dev_20120504 version changes after that interim release are not applied. I hope that
eventually this implementation will incorporated into the main trunk and could be part of the
2.1 release. The navigational routines are based on the works of Jason Short and the Arducopter
team.
Link : http://code.google.com/p/i2c-gps-nav/downloads/list
Implementations
At the moment, there are two ways to add a GPS to your MultiWii
1. If you have a spare serial port AND an AtMega1280 or 2560 microcontroller based FC,
you can connect your GPS to that port and enable the serial GPS code in the code (see
howto below) Due the elevated resource usage (RAM and ROM) this method is not
recommended with AtMega328 based boards
2. You can use an I2C_GPS board, which contains a secondary AtMega328 processor with a
serial GPS and runs the GPS parsing and navigational computations. This board
communicates with the FC via the I2C bus.
GPS receivers and their configuration
For a reliable PosHold and RTH you need a precise and fast GPS receiver. I regret to say, but
older SiRF III receivers with 1Hz update rate are not suitable. You need an MTK, Ublox or
SiRFIV based receiver with at least 5Hz update rate and 115200bps serial speed. The best one
has 10Hz refresh rate and a larger patch antenna. The most commonly used receiver is the
GTop PA6B module with MTK 3329 chipset . This receiver also used on the currently available
I2C nav modules. (Navigatron, RushDuino).
The GPS implementation in MultiWii (both I2c and serial) expect that your GPS receiver is
set to 10Hz (or 5Hz) update rate
communicates at 115200 baud speed
and output GGA, GSA and RMC frames
If these settings are not the default ones, you have to add commands to the initialization part of
the MultiWii and i2cgps code to change settings of your GPS receiver . Future versions of the
code may use autodetect and autoconfig for different GPS modules, but currently it’s up to you.
The best solution is to configure your GPS receiver’s default settings to match with the above
requirements.
The PA6B receivers firmware could be updated to have these default settings. See the MTK-
firmware-tools.rar in the download sections. You can follow the description in the
MediaTek_programming.pdf file, but use the MTK3329_A1.5E_20110118_10Hz_115200.bin
firmware file instead the AX1.30…. one. If you have a i2c-gps board (such as Navigatron) you
have to upload some sketch which does not use the serial port. The easiest one is the BLINK
example from the Arduino IDE, Select File->Examples->Basics->Blink. Once you uploaded the