Getting Started with the GeoFence

Contributors: Nick Poole
Favorited Favorite 5

Hardware Overview

Let's get familiar with the hardware on the GeoFence. We'll break it down into two categories: The connectors and the LED indicators.


picture of the geofence board with all of the connectors labeled.

Zone Status Pins

These pins each correspond to a numbered boundary in the software. The row of pins labeled SIG are the signal pins and the row beside them are ground pins. Whenever the board is outside of a defined zone, that zone's pin will remain logic LOW. As long as the board is inside of a defined zone, that zone's pin will remain logic HIGH.

Reset Button

This button is tied to the reset line on the microcontroller and will restart the board.

External Antenna Connector

The Titan X1 GPS module has a good built-in antenna but if you embed this board into an enclosure where the antenna can't pick up anymore satellites you can connect a 3V external antenna to this U.FL connector (we sell a U.FL to SMA cable if you need one). The GPS module will automatically select an external antenna if one is present.

USB Connector

The Micro-B connector is used to load zone configurations onto the board as well as to provide power for charging a connected lithium ion battery. Since the on-board ATmega328 is carrying the Arduino bootloader, you can also use this USB connector to push new firmware to the board. Select the Arduino Pro Mini with 3.3V/8MHz when loading new firmware.

Battery Connector

The GeoFence has a built-in battery charger and voltage regulator so you can easily power it on the go. Any of our single-cell lithium ion batteries will work but I personally like the 1Ah battery because it's about the same size as the board.


These are excess pins broken out from the ATmega328P that you can use if you write your own firmware. The production firmware for the GeoFence uses the A0 pin as the System Status pin which goes to logic HIGH when the system has a valid lock. This pin makes it possible for outside systems to know whether the zone status pins are showing the most up-to-date information.

Power Rail

The 3V3 and GND connections here allow the board to be powered from an outside regulated 3.3V source. Because this pin is connected directly to the 3.3V rail on the board, it will also source 3.3V whenever a battery is connected or the board is plugged into USB power.

LED Indicators

picture of the geofence board with all of the LEDs labeled.

Zone Status LEDs

These LEDs reflect the state of the zone status pins. They come in handy for testing as you can tell at a glance whether or not the board is in a particular zone boundary.

Pulse-Per-Second LED

This LED is connected to the PPS (Pulse Per Second) output of the Titan X1 GPS module. The PPS output goes logic HIGH for a short duration once per second. This timing signal is a good secondary indicator for whether your GPS module is functioning correctly.

Serial Comms LEDs

These are the same lights that you would find on most Arduino boards. They're connected to the serial communication lines between the USB-Serial bridge and the ATmega328. They're labeled with respect to the microcontroller so RX flashes when the board is receiving data and the TX light flashes when the board is sending data.

Power and Charge Status LEDs

The PWR LED will stay lit as long as the board is powered. The CHG LED represents the charging status of the lithium ion battery if one is connected. If there's no battery connected, this LED will be off. If there is a battery connected, the LED will remain on as long as it's charging. When the battery is full, the LED will turn off again indicating that charging is complete.

System Status LED

This LED will display one of three system status alerts. If the LED is blinking, then the board is running but the GPS module is waiting to get a lock. If the LED is solid then the GPS has a lock, valid data is coming in and the board is checking zones. If the status LED stays off, there are no zones programmed into the board and no zone tests will be performed.