← Back to Portfolio
IoT

Custom GPS

Role Sole Engineer (Embedded Engineering)
Tools VS Code (nRF Connect SDK, Zephyr RTOS)
Disciplines
Embedded

Problem & Context

Developing a custom GPS device provided the flexibility to tailor both firmware and hardware behavior to a specific application. Custom GPS reduces our exposure to supply chain or vendor issues. A custom solution allows integration of smarter behavior that is non-existent in other similar devices.

Scope of Work

Technical Approach

Developed and built the firmware in VS Code using nRF Connect SDK with Zephyr RTOS, taking advantage of Zephyrs devicetree for UART, GPIO and USB configuration.

Employed a J-Link EDU Mini for flashing and debugging on the nRF52840.

Configured UART drivers to communicate between the MCU, BG96, and logic-level converter.

Implemented communication protocol based on echo and command/response transactions, with adjustable NMEA-interval parsing for GNSS updates.

Integrated USB CDC as a virtual COM port to allow real-time control and diagnostics via terminal commands

Designed modular firmware organization for maintainability.

📐

Technical diagram or schematic would be displayed here

Results

📊

Project results visualization

The board successfully acquired GNSS fixes through the BG96 module and transmitted position data over cellular networks, validating the end-to-end functionality.

The device can be configured through serial interface via USB CDC (GPS intervals, network mode, APN, server).

Fully modular firmware structure.

GPS serial logs

Source Code Snippet