LTE Arduino GPS Tracker and IoT Dashboard

Timothy Woo shows how to make a powerful Arduino GPS tracker that posts data to the cloud via LTE and view data graphically on IoT dashboards:

LTE Arduino GPS Tracker + IoT Dashboard

Hey guys! In this tutorial we’ll be creating a GPS tracker using the Botletics SIM7000 LTE shield and an Arduino and view the data on two free IoT dashboards. I’ll start off by explaining how to get everything set up and posting data to the cloud, then I’ll move into how to set up the IoT dashboards to view data. The two dashboards we will be looking at are and

Since this tutorial is a follow-up of my first Instructable on using the Botletics LTE/NB-IoT shield for Arduino so if you haven’t already, please read it to get a good overview of how to use the shield and what it’s all about. In this tutorial I’ll focus on IoT data logging, and specifically, GPS and temperature tracking and provide you will all the code and guidance you’ll need to hit the road and test it out! It’ll be a decently lengthy tutorial so sit tight and grab some coffee!

Although I’ll be mainly focusing on the LTE shield that I personally designed and built, everything here (including the Github Arduino library) should work on SIMCom’s 2G and 3G modules like the SIM800/808/900/5320 as well since it’s just an updated version of the Adafruit FONA library. Regardless of hardware the concept is exactly the same and you can do lots of cool stuff with this, including sensor data logging, remote weather monitoring, auto theft karma GPS tracking, etc… so read on!

LTE Arduino GPS Tracker and IoT Dashboard

Asset Tracker

Kris Winer designed this is a small 4-layer PCB for remote logging of absolute position and orientation:


Asset Tracker

STM32L433-based board with CAM M8Q concurrent GNSS, EM7180 + MPU9250 + MS5637 for absolute orientation, and an ESP8285 for wifi connectivity.

The absolute orientation engine uses the MPU9250 accel/gyro/magnetometer IMU sensor plus the MS5637 barometer as slaves to an EM7180 motion co-processor that sends quaternions and drift-stabilized altitude to the host via I2C.

PeskyProducts has shared the board on OSH Park:



Order from OSH Park

Asset Tracker

GPS Clock by Nick Sayer

Nick Sayer created this simple desk clock that gets time from GPS:


GPS Clock

GPS is best known as a ubiquitous, accurate positioning system (obvious from the name), but the way it actually works requires distributing hyper-accurate time information. This makes it possible (and, actually, pretty easy) to make a clock that you never have to set as long as it gets good GPS reception.

Yes, this is way overkill… but GPS is getting so cheap that you might as well.

The source code is available on GitHub:

images11 nsayer/GPS_clock


Nick has hacked together a tenth digit for the clock:


Here is a video of the GPS clock in slow motion:


GPS Clock by Nick Sayer

Open Source AIS Transponder

Automatic identification system (AIS) is an automatic tracking system used on ships.  Peter Antypas designed a low-power AIS transponder:

images1 Open Source AIS Transponder (Class B)

This is the first ever (that I’m aware of) attempt at creating an open source AIS transponder


On the hardware side, the design is based on two Silicon Labs 4463 transceiver ICs and an STM32F302CBT6 ARM Cortex M4 microcontroller. One of the SiLabs ICs acts as a transceiver, while the other IC works as a receiver only. In receiver mode, each IC tunes to a different channel. When a transmission is scheduled, the ICs swap channels if the transceiver is not listening on the next transmit channel. This configuration may be construed as a violation of the AIS specification, but it makes for a much simpler PCB layout and negates the need for a 3-position RF switch.


There are two programs that need to be installed on the flash. The bootloader and the main application.

petera650 has shared the boards on OSH Park:

RF side of AIS transponder


Order from OSH Park

Logic / digital side of AIS transponder


Order from OSH Park

Open Source AIS Transponder

Wi-Fi Connected IoT Thing

Charles McClelland created a Wi-Fi Connected Teensy Data Logger with GPS and Accelerometer:

Wi-Fi Connected IOT Thing

The basic idea is that this board will connect to GPS, obtain a GPS fix and report its location to Ubidots.


Ubidots can then display this information in a number of ways including showing the location and the number of times the sensor had been moved that day


The hardware design files and firmware source code are shared on GitHub:

github chipmc/Teensy-Data-Logger/


Wi-Fi Connected IoT Thing

GPS RF Front-end Board

[Written by OSH Park engineer Jenner Hanni on Wickerbox Electronics]


Portland State University’s Maseeh College of Engineering and Computer Science runs an innovation program that awards small thousand-dollar grants to students working on interesting projects. In 2011 there were a handful of GPS-related projects that needed a way to work directly with the raw I/Q data coming from the GPS satellites before any processing or correlating had been done.


Commercial off-the-shelf GPS receivers are cheap and ubiquitous but they don’t expose that data. One of my mentors, Andrew Greenberg, developed an open source GPS receiver for his Masters thesis (PDF) in 2005 and suggested I take a look at doing the same thing with current hardware. I said I would if he would help, so together we built a board, built a revision, and are in the process of figuring out what modifications will be needed for a third.

The board isn’t a full GPS receiver. Instead, it’s an “RF front end” board that has a MAX2769 Universal GPS Receiver chip to read the GPS signals and pass them out over something that looks a lot like SPI but isn’t. We chose to place an STM32F407 microcontroller running the ChibiOS embedded operating system on the board to support streaming the data out over Ethernet and USB. We exposed the raw pins over a header between the MAX2769 and STM32F407 to allow a user to skip the microcontroller entirely. We also included an SD card to log the data.

The board does not currently support a battery so it must be powered over USB or Ethernet at all times.

This project is open hardware and software licensed under the 3-clause BSD license and maintained on the Portland State Aerospace Society’s Github account. You can find the bill of materials and Eagle schematics at psas/gps-rf-board and the software as part of psas/stm32.

It’s been a big group effort in the push to get it talking; Andrew, K, Theo, and Kenny at least have helped out with software and modwire soldering, and I might have missed someone.

Board Layout Overview

The board has four layers and was ordered from OSH Park.


We can power the board from Rocketnet Ethernet (up to 20V) or over USB (about 5V) so we used an LMZ12001 switching regulator with an input voltage range from 4.5V to 20V to output 3.3V for the digital side of the board. We then used two ultra-low noise MAX8510 LDO linear regulators to provide 2.85V on separate digital and analog supply lines for the RF side of the board.


The MAX2769 is a tiny 28-pin universal GPS Receiver with a 1.4dB noise figure. The datasheet says we don’t need external SAW filters but we used them anyway. The chip has two LNA inputs and the eval kit is set up for to support both passive and active antennas. We used the MAX2769 Eval Kit as a reference but it was a particularly difficult schematic to work with.

Our board has a single antenna attachment point with a couple of optional circuits that the user chooses by where you populate capacitors and resistors. Option #1 is whether or not to have an LNA1 and its ANTBIAS-pin power circuit. Option #2 is whether to put into LNA1 or LNA2 on the chip.


We use a 100-pin ARM Cortex-M3 STM32F407 running the Portland State Aerospace Society’s version of ChibiOS to program the MAX2769 and to support USB, Ethernet, and an SD card. We also break out raw data signals at pin test points.

Ethernet requires the Portland State Aerospace Society’s Rocketnet connector for programming, data streaming, and power.

A micro-USB connector is available for programming, data streaming, and power.

The micro-SD card is available for data logging.

The serial breakout is two 1×11 0.1” headers which we also used for debug. We ran traces between the two breakouts because we were unsure about some of the pinouts from the MAX2769 and wanted to be sure we could cut traces and easily run modwire.


This is the board installed on the avionics module that carries the flight computer, sensor packages, and battery packs. The green board on top is the commercial Crescent GPS unit. The purple board down below is the JennerGPS. They’re both connected to the splitter in the middle, which runs off to the cylindrical patch antenna on the skin of the rocket.

Current Status

The v2 board was flown on the Portland State Aerospace Society’s LV2.3 airframe for Launch 11 on July 20th, 2014, in Brothers, Oregon, to an altitude of 15,000 feet. The hardware was complete but the software on the board was not entirely ready for launch and, anyway, the entire GPS system failed so no data was retrieved.

More information on the launch is available at the PSAS Launch 11 page.

Launch 12 in 2015 carried a third version of the GPS RF front-end board designed and laid out by Andrew Greenberg, and GPS packets were successfully captured.

The Github repository has all the schematics. The current version described here is v2, but the newest version is v3. PSAS welcomes collaboration, but you’ll wan to contact PSAS directly through the main GPS repository. The best way to contribute is to come to a meeting.

It was super helpful to reference Swift Navigation’s Piksi GPS Receiver which uses the MAX2769 chip with an STM32F407 and FPGA.

The first version of this board was funded by the MCECS Innovation Program.


This project was released under the BSD “3-clause” license. See here for more information.

GPS RF Front-end Board