Recipe for building RPi GeoCam with OSH


We required a suite of inexpensive, geospatially-aware, video cameras that could run OpenSensorHub (OSH) onboard and store and/or stream in real time, video and navigation data (i.e. location and orientation). The OSH team thus developed the GeoCam based on Raspberry Pi (RPi) using the RPi HD video camera, an Adafruit GPS, and an Adafruit orientation sensor.

GeoCam1  GeoCam2

With the tripod mounting adapter attached, one can use GoPro or Garmin VIRB accessories to use these GeoCams as “drop cams”, “sticky cams”, “body cams”, etc.

Below is the recipe for making your own OSH-enabled GeoCam. Note: because both the GPS and Orientation sensors need a serial connection and cannot share the GPIO, this is some trickery involved it attaching the GPS sensor is attaching to a USB port through a FTDI adaptor.

Have fun, let us know about your successes and challenges.



Optional Supplies

Wiring Diagram



  1. Hardware Setup – Connect Ultimate GPS Breakout to USB through LilyPad FTDI Basic Breakout

    – Solder 4 jumper wires to the 5V, GND, TXO, and RTI pins on the FT232RL Breakout Board



    – Solder the jumper wires from the FT232RL Breakout to the corresponding VIN, GND, RX, and TX pins on the Ultimate GPS Breakout


    – Cut USB 2.0 A to Mini-B cable a few inches from the Mini-B connector, remove protective sleeve and expose VCC, GND, D+, and D- wires.


    – Remove back cover from housing of USB port and solder exposed wires from Mini-B connector to corresponding USB 2.0 pins.



    – Individually cover each connection with electrical tape to avoid signal crossing and connect the FT232RL Breakout to the Raspberry Pi USB port through the Mini-B connector.


  2. Hardware Setup – Connect Adafruit BNO055 Absolute Orientation Sensor directly to Raspberry Pi GPIO pins

    – Solder jumper wires to Vin, GND, SDA, SCL, RST, and PS1 pins on the BNO055 sensor board (Note that PS1 should be connected directly to Vin).


    – Solder jumper wires from BNO055 sensor board to the corresponding UART GPIO pins on the Raspberry Pi. The RST pin may be connected to any available general GPIO pin. At this point, the GeoCam should look like this:



  3. Hardware Setup – Cover exposed wires, connect camera module, and install assembly

    – Cover any exposed wires with electrical tape to avoid signal crossing

    – Connect Raspberry Pi camera board and wifi dongle (if using Raspberry Pi 2).WiFi is standard on the Raspberry Pi 3, so no dongle needed.


    – Install entire assembly in your Raspberry Pi Enclosure (note: if you don’t care about the sleeker design that we wanted, to with a larger enclosure to make it easier and maybe make it a waterproof case)


    – Install tripod mount if desired (note: on a hot day the tripod mount did not hold fast. Will clean off old glue and try Gorilla Glue)



  4. Software Setup – Disable login shell over serial port

    • Enter Raspberry Pi configuration menu: “sudo raspi-config”
    • Advanced Options –> Serial –> Select “No” when prompted if you want a login shell over serial port
    • Select “Finish” to exit raspi-config
    • If using Raspbian Jessie, issue the following command “sudo systemctl disable serial-getty@ttyAMA0.service”
    • Reboot raspberry pi to effect changes
  5. Software Setup – Enable Raspberry Pi camera and access to camera on /dev/video0  (that’s video “zero”)

    • Enter Raspberry Pi configuration menu: “sudo raspi-config”
    • Enable Camera –> Select “Enable”
    • Reboot raspberry pi to effect changes
  6. Software Setup – Install OpenSensorHub



  1. I am attempting to learn your success. The instructions are not helping on the OSH configuration. Is there more to this and I am just missing where to keep reading?

    Thank you for your time.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: