Introduction: Cellular GPS Tracker With Cloud Maps

This project shows you how to build a device that tracks GPS location, sends data via a Skywire cellular connection to the cloud, and plots the GPS coordinates on a cloud connected trail map that is accessible from any computer or smart-phone in the world.

Step 1: Collect the Hardware

This is a list of all the material used in the project:
List of material (all of which is available at
Part Number ------------- Description
NL-SW-EVDO-V ------- Skywire Cellular modem from NimbeLink
NL-SWAK --------------- Skywire Arduino kit from NimbeLink
MA301.A.AB.001 ------- Magnet Mount Cellular & GPS antenna from Taoglas
CAB.011 ----------------- Two SMA to U.FL cables from Taoglas
A000057 ----------------- Arduino Leonardo Board
102-1092-BL-00100 ---- USB A to Micro B cable

Step 2: Connect Antennas

Connect two SMA to U.FL adapter cables to connectors marked X1 and X3 on Skywire EVDO modem.

The SMA end of the cable connects to the antenna cables. One cable is marked GPS the other is GSM.
The cable marked GPS should connect to connector X3 for the GPS connection.
The cable marked GSM should connect to connector X1 for the cellular connection.

Step 3: Assemble Hardware

Plug Arduino shield into Arduino Leonardo board.
Plug Skywire EVDO modem into Arduino shield like shown on the product website.

Step 4: Create Map Account

To create the online maps, create a free Exosite Portals account.
1) Create a free "Community" portal account here:
2) As part of the account creation process, you have to validate your email address.
3) Once its activated, log in to the Exosite portals account.

Step 5: Add the Device

1) Click the "Devices" item in the menu bar on the left side of the screen.

Step 6: Device Setup - Device Type

Select "Generic Device" option.

Step 7: Device Setup - Device Setup

On this page, choose 'generic' and your desired timezone.
Leave the "Device Location" field blank.
Click continue and then Submit on the next page.

Step 8: Device List

When you get to the device list view, click on the new GPS Device.

Step 9: Device Information View

Copy the CIK value or write it down somewhere because you need that later. The CIK uniquely identifies your device from all the other devices on Exosite's server. When you report data to Exosite, you must reference the CIK value.

Then click "Add Data Source"

Step 10: Data Setup - Configuration

Enter a Data Source Name in the first field, it can be any friendly name.

For the Data Source Format field, select "string".

Leave Unit blank.

For the Alias field, enter "GPSdata" which is case sensitive.

Then press Submit. On the next screen, press QUIT, then close the Device Information window by either clicking the CLOSE button or the X in the corner of the window.

Step 11: Return to Default Dashboard

In the upper right hand corner, click on your username, and then the 'Home' link in the drop down menu.
This will return you to your default dashboard view.

Step 12: Clean Up the Default Dashboard

Remove the default 'Widgets' by clicking the 'down arrow' in each widget and selecting 'delete', then clicking 'Continue' on the following screen.

Step 13: Add Trail Map Widget


Step 14: Select Trail Map

In the first drop down menu, select "Trail Map ".
Provide a Block Title of your choice, something like "My GPS Map".
Then click "CONTINUE"

Step 15: Trail Map Configuration

Select Widget size to be 'Big 4x4' so the map will take up a large portion of the dashboard.
In the 'Choose Device' field, select "GPS Device".
In the 'Select Data Source for Trail Data" field, select "GPS Data Points".
Change the 'Map Trail History' field to how many hours of history you want to plot whenever the web page refreshes.
Then click 'SUBMIT'

Step 16: Blank Map View

You should now have a dashboard filled by a map-view that you can interact with, but there are no data points on the map yet.

Step 17: Modify Arduino Code

Download the Arduino reference code here:

Open the file with the latest Arduino IDE.

Find the line of code that says:


And modify by inserting your CIK into the example:

"X-Exosite-CIK: df49a2603a4a411d12aa42892ce8686exxxxxxxx\"

Then save the file.

Warning, the code example is not hardened, it works as-is, but this was thrown together quickly as a proof of concept. There are extra comments and some things that are not necessary, but it gets the job done. :)

Step 18: Upload Code Into Arduino

Connect USB cable to Arduino USB port and to your PC.
Use the Arduino IDE software to upload the modified sketch onto your Arduino Leonardo.

Step 19: Take Device for a Test Drive and Enjoy Your Exosite Trail Map!

Power up your device and take it for a drive.
When you stop, open your dashboard on a smart phone or computer and checkout your trail map. You should see real data points from your journey!  The image shown here is real data from my device, going to and from work and a friend's house.

When using the NL-SWAK shield, if you power the Arduino with 5V or the USB cable, it works.  For example, use a cigarette lighter to USB adapter.  The NL-SWAK cannot handle 12V directly.

If you want to power from 12V,  the NL-SWDK-EVDO-V kit can accept this directly.

This is a link to the dashboard with real data:

Arduino Contest

Participated in the
Arduino Contest