Cacheberry Pi is a geocaching assistant built upon the Raspberry Pi platform.
It's intended to be a permanent fixture in the car and alert you of nearby caches (when stopped) or along your route (when driving). The intent is not to replace your handheld GPSr but to complement it.
See an overview Video on YouTube or view the project homepage.
The information that follows is for the Cacheberry Pi as built by Steve Whitcher. The hardware in this version is somewhat different from the original, including a serial connected GPS and a different i2c backpack on the LCD. The code has also been modified to localize the time, speed, and distances displayed on the LCD.
- Smart Search: depending on speed and direction of travel
- Ability to maintain a database of 20k+ geocaches
- Easy syncing of cache lists with GSAK via thumb drive
- Automatic tracklog recording and syncing with thumb drive
- Easy customization of settings in the 'cacheberrypi.cfg' file.
- RaspberryPi B
- Arduino IIC / I2C Serial 2.6" LCD 1602 Module Display
- Adafruit Ultimate GPS breakout - Likely almost any other NMEA GPS will suffice
- 4GB AmazonBasics Class 10 SD Card
- 12V USB Charger + MicroUSB cable
- Python 2.7
- GPsd - Available through APT
- PySpatialite - Available through APT
- [LCDProc] (http://www.lcdproc.org/) - Available through APT (required custom display driver)
- [RPi.GPIO] (http://pypi.python.org/pypi/RPi.GPIO)
- [AutoFS] (http://www.autofs.org/) - Available through APT
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install autofs lcdproc python-pyspatialite sqlite3 gpsd vim-nox gpsd-clients screen python-dev i2c-tools python-smbus git
###Install RPi.GPIO and LCDProc python libraries###
$ cd /usr/src
$ sudo wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.4.1a.tar.gz#md5=9acdb66290350aaa74b99de859ded153
$ sudo tar -xvf RPi.GPIO-0.4.1a.tar.gz
$ cd RPi.GPIO-0.4.1a/
$ sudo python setup.py install
$ cd /usr/src
$ sudo wget http://pypi.python.org/packages/source/l/lcdproc/lcdproc-0.03.tar.gz#md5=177328fd30c973151b5e75f9c1b992c7
$ sudo tar -xzf lcdproc-0.03.tar.gz
$ cd lcdproc-0.03/
$ sudo python setup.py install
###Clone the CacheberryPi repository to your "pi" user's home folder###
$ cd ~
$ git clone https://github.com/Aurock/Cacheberry-Pi.git
###Install the ifup script so we can see network configuration on the LCD###
$ cd ~/Cacheberry-Pi/util
$ sudo cp ifup-lcdproc /etc/network/if-up.d
$ sudo chmod 755 /etc/network/if-up.d/ifup-lcdproc
###Install lcdproc configuration files and LCD driver###
$ cd ~/Cacheberry-Pi/misc
$ sudo cp LCDd.conf /etc
$ sudo cp hd44780-i2c/hd44780.so /usr/lib/lcdproc/
###Setup udev to make GPS devices world write/readable###
$ cd ~/Cacheberry-Pi/misc
$ sudo cp 70-persistent-net.rules /etc/udev/rules.d/
###Edit 2 files to enable i2c###
*In /etc/modprobe.d/raspi-blacklist.conf Add a # before the line "blacklist i2c-bcm2708". *Add the following 2 lines in /etc/modules
i2c-dev
i2c-bcm2708
###Run the gpsd reconfiguration wizard###
$ sudo dpkg-reconfigure
Accept the default choices in the wizard except for the 'device the GPS receiver is connected to.' Change that setting to "/dev/ttyAMA0"
###Set CacheberryPi to run on startup### Edit /etc/rc.local to add the following before "exit 0"
nohup /home/pi/Cacheberry-Pi/start &
###Configure autofs for update functionality###
$ cd ~/Cacheberry-Pi/misc
$ cp auto.removable /etc
$ cp auto.master /etc
###Change host name### Edit /etc/hosts and /etc/hostname, replacing "raspberrypi" with "cacheberrypi".
Using the program "Geocaching Swiss Army Knife" (GSAK for short), export the geocache data to a file in Microsoft Streets & Trips format. Save the file on a usb drive, as "\cacheberrypi\nav.csv". Insert the flash drive into the usb port on the Cacheberry Pi, and watch the LCD as the cache data is transferred from the USB drive.
When exporting the data from GSAK, the cache description, waypoint name, and URL link format can be modified. Customize the data exported in these fields using GSAK's "Special Tags".
When the Cacheberry Pi has found a nearby cache, the left side of the LCD will show the "cache description" on the top line, and the "URL Link" on the bottom. I recommend setting the fields as follows when exporting from GSAK:
* Waypoint Name = "%code"
* URL Link = "%Caches_FavPoints (%Dif/%Ter)"
* Cache Description Format = "%Name by %By"
Note: While the Cache description and URL Link can be set he Waypoint Name field MUST be %code.