User Tools

Site Tools


misc:hacks:gps

Adding a u-blox MAX-7 GPS module

What you need

How to get it working

These instructions are valid for Ubuntu 13.10 but similar steps should work with other distros.

  • Attach the u-blox beakout to the expansion header by connecting the following pins (breakout → Crazyflie expansion header):
    • GND → DGND (pin 17)
    • VCC → VCC (pin 15)
    • TXD → TX (pin 5)
    • RXD → RX (pin 3)
  • Since the Python bindings for Marble isn't built by default you will have to build Marble from source and enable these (instructions taken from here)
sudo apt-get install python-sip-dev python-qt4-dev kdelibs5-dev python-kde4

git clone git://anongit.kde.org/marble.git ~/marble/sources -b KDE/4.12
mkdir -p ~/marble/build
cd ~/marble/build
cmake ~/marble/sources -DCMAKE_BUILD_TYPE=Release -DEXPERIMENTAL_PYTHON_BINDINGS=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local
make
sudo make install
  • Make sure you have the correct firmware/software (the firmware is on the gps_ublox_dev branch and the client is on the gpstab branch)

Tweaking and development

There's no assisted GPS or battery backup so every time the Crazyflie is powered on the GPS module does a cold-start, which a while to get a fix. During ideal conditions it should be 42 seconds (according to datasheet) but during testing we have seen times closer to 4-6 minutes. The plan is to improve this in the future by implementing assisted GPS (downloading almanac on the PC and transferring via CRTP).

Getting a position fix will not be as easy as with your phone, so make sure to be outside (or at least stick the Crazyflie a couple of meters outside the window).

If you don't have a GPS module you can still use the DebugDriver which will send fake latitude/longitude/altitude to the UI.

misc/hacks/gps.txt · Last modified: 2015-07-15 16:31 (external edit)