View on GitHub

pxt-gps-nmea

Makecode extension for GPS NMEA messages

GPS NMEA MakeCode Extension (micro:bit v2, Python-compatible)

A MakeCode / PXT extension for parsing common NMEA GPS sentences on BBC micro:bit:

Tested with MakeCode for micro:bit v2, including Python mode.

Use as Extension

This repository can be added as an extension in MakeCode.

Usage (Blocks / JavaScript)

Feed one full NMEA line (ending in \r\n) from your GPS via serial:

serial.redirect(SerialPin.P0, SerialPin.P1, BaudRate.BaudRate9600)

basic.forever(function () {
    let line = serial.readLine()
    GPS.parseSentence(line)

    if (GPS.isValid()) {
        serial.writeLine("Lat: " + GPS.latitudeDec())
        serial.writeLine("Lon: " + GPS.longitudeDec())
        serial.writeLine("Speed (kn): " + GPS.speedKn())
        serial.writeLine("Course: " + GPS.course())
        serial.writeLine("Sats: " + GPS.satellitesInView())
    }
})

Usage (Python in MakeCode)

After adding the extension, you can use the same API from Python:

serial.redirect(SerialPin.P0, SerialPin.P1, BaudRate.BAUD_RATE9600)

def loop():
    line = serial.read_line()
    GPS.parseSentence(line)
    if GPS.isValid():
        serial.write_line("Lat: " + str(GPS.latitudeDec()))
        serial.write_line("Lon: " + str(GPS.longitudeDec()))
        serial.write_line("Speed(kn): " + str(GPS.speedKn()))
        serial.write_line("Course: " + str(GPS.course()))

basic.forever(loop)

Function names and case are the same as in JavaScript.

Exported API

Metadata (used for search, rendering)