Driver for the Tessel GPS module


Driver for the gps-a2235h Tessel GPS module. The hardware documentation for this module can be found here.

If you run into any issues you can ask for support on the GPS Module Forums.

On Tessel 2, either port A or port B can be used.

On Tessel 1, the GPS module can currently only be run from Port C using software UART. Port C is the most isolated from RF noise and is best for locking onto GPS signals.


npm install gps-a2235h


This gps example logs a stream of data:
coordinates, detected satellites, timestamps, and altitude.
For best results, try it while outdoors.

var tessel = require('tessel');
var gpsLib = require('gps-a2235h');

// GPS uses software UART, which is only available on Port C on Tessel 1
// we use Port C because it is most isolated from RF noise
// Port C doesn't exist on Tessel 2 so use Port A
var portToUse = 'C';

if (!tessel.port[portToUse]) {
  portToUse = 'A';

var gps = gpsLib.use(tessel.port[portToUse]);

// Wait until the module is connected
gps.on('ready', function () {
  console.log('GPS module powered and ready. Waiting for satellites...');
  // Emit coordinates when we get a coordinate fix
  gps.on('coordinates', function (coords) {
    console.log('Lat:',, '\tLon:', coords.lon, '\tTimestamp:', coords.timestamp);

  // Emit altitude when we get an altitude fix
  gps.on('altitude', function (alt) {
    console.log('Got an altitude of', alt.alt, 'meters (timestamp: ' + alt.timestamp + ')');

  // Emitted when we have information about a fix on satellites
  gps.on('fix', function (data) {
    console.log(data.numSat, 'fixed.');

  gps.on('dropped', function(){
    // we dropped the gps signal
    console.log("gps signal dropped");

gps.on('error', function(err){
  console.log("got this error", err);


# gps.setCoordinateFormat(options, callback() ) Sets the output format for coordinates. This is only available on Tessel 2. Valid options:

 options.format: 'deg-min-sec', 'deg-dec', deg-min-dec, 'utm' INTEGER (used for UTM calculations)

# gps.powerOff( callback() )
Turns the GPS chip off.

# gps.powerOn( callback() )
Turns the GPS chip on.


# gps.on( 'altitude', callback(altitudeObj) )
Emitted when altitude data is available. Emitted in the form {altitude in meters, timestamp}.

# gps.on( 'coordinates', callback(coordinateObj) )
Emitted when coordinate data is available. Emitted in the form {latitude, longitude, timestamp}.

# gps.on( 'error', callback(err) )
Emitted upon error.

# gps.on( 'power-off', callback() )
Emitted when the module has been powered off.

# gps.on( 'power-on', callback() )
Emitted when the module has been powered on.

# gps.on( 'ready', callback() )
Emitted upon first successful communication between the Tessel and the module.


MIT or Apache 2.0, at your option