Skip to the content
2 layers125 × 72 mmGPS Tracker V1, the printed circuit board in 3D

Firmware, dashboard, and prototype PCB files for a portable RTK GNSS tracker built around a Heltec WiFi LoRa 32 V4 and a Waveshare/Quectel LG290P receiver.

Size
125 × 72 mm
Copper layers
2
Thickness
1.6 mm
Parts
48
Nets
62
Pads
164
Tracks, vias
249, 13
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
7 May 2026
Updated
7 May 2026

Overview

GPS Tracker V1 is an open-source printed circuit board by Amazon-Master, from the Amazon-Master/gps-rtk-tracker repository on GitHub, published under the MIT licence. It is a 2-layer board of 125 × 72 mm with 48 parts on 62 nets, routed with 249 tracks and 13 vias.

It is built around the MAX40200AUK, XC6220D331MR-G and BS250. Its parts include 15 resistors, 10 capacitors, 4 ICs, 4 connectors and 3 transistors. It belongs with the radio and wireless boards of this library.

Main components

3

README

README.md

GPS RTK Tracker

Firmware, dashboard, and prototype PCB files for a portable RTK GNSS tracker built around a Heltec WiFi LoRa 32 V4 and a Waveshare/Quectel LG290P receiver.

The tracker reads high-rate NMEA from the LG290P, forwards NTRIP/RTCM corrections over WiFi, shows live fix state on the OLED and RGB LED, serves a phone-friendly surveying dashboard, and can send compact low-rate location uplinks to The Things Network (TTN).

This started as an EE 2185 Circuits Design Project at the University of Vermont. The hardware and firmware are now in a working prototype state and are published under the MIT License.

Table Of Contents

Current Status

Working and field-tested:

  • GNSS UART parsing from the LG290P at 460800 baud
  • OLED display using the stable manual Heltec V4 display path
  • RGB fix-status LED
  • Battery ADC reading with board-specific calibration
  • WiFi station mode, setup/offline AP mode, and saved WiFi profiles
  • NTRIP client with live RTCM forwarding to the GNSS module
  • RTK Float in field testing with live RTCM bytes
  • ESP32-hosted dashboard with maps, precision plots, logs, survey marks, and CSV/JSON/GeoJSON/KML exports
  • TTN OTAA join and app-port-2 uplinks on US915 FSB2
  • Custom through-hole V1 PCB bring-up, charging, and power routing

Still prototype-grade:

  • RTK Fixed has not yet been made stable in controlled field testing.
  • Charger and LDO temperatures need conservative limits before enclosure use.
  • The first assembled PCB needed battery-voltage calibration and has RGB red and blue physically swapped; firmware compensates.

What It Does

The firmware has three major jobs:

  1. RTK rover operation: read live position from the LG290P, connect to an NTRIP caster over WiFi, send rover GGA to the caster, and forward binary RTCM corrections back to the receiver.
  2. Field dashboard: host a lightweight dashboard directly from the ESP32 so a phone or laptop can view position, fix quality, precision, RTK state, satellites, logs, setup, and survey marks.
  3. Low-rate radio reporting: send tiny position packets either over direct P2P LoRa or over TTN LoRaWAN. TTN is for breadcrumbs and marked points, not high-rate live tracking.

What it does not do:

  • It does not provide RTK corrections over LoRaWAN. RTK corrections still come from NTRIP over WiFi/hotspot.
  • It does not use paid map APIs. The embedded dashboard uses browser-loaded map tiles and simple outbound Google Maps links.
  • It is not yet a certified surveying instrument. Treat it as an educational and prototype field tool.

Prototype Warnings

Read this before copying the hardware design:

  • Battery/charger safety: the MCP73831 is a linear Li-Ion charger. The original 2 kOhm PROG resistor sets roughly 500 mA and can run hot in a SOT-23-5 package. Use a lower current such as 200 mA with 5 kOhm, or 100 mA with 10 kOhm, unless you have verified board and enclosure thermals.
  • Regulator heat: when the tracker is on and powered from USB, the 3.3 V LDO can become the dominant hot part. Check it with the real GNSS, WiFi, OLED, and radio load.
  • RTK Fixed depends on antenna conditions: good WiFi is not enough. You need a stable antenna, low multipath, good sky view, compatible RTCM, and enough still convergence time.
  • Open setup AP: GPS-RTK-Setup is intentionally open for easy field setup. Use it briefly and locally; do not leave it active around untrusted users.
  • Secrets: the tracked repo contains no WiFi, NTRIP, TTN, or Heltec license secrets. Keep real credentials in ignored config_private.h or in the dashboard's ESP32 Preferences storage.

Hardware

Known-good target:

ItemCurrent choice
ControllerHeltec WiFi LoRa 32 V4
GNSS receiverWaveshare / Quectel LG290P RTK module
Firmware frameworkArduino + Heltec ESP32 Dev-Boards
LoRaWAN regionUS915 for Vermont / TTN
Dashboard accessSame WiFi network, or setup/offline AP at 192.168.4.1
PCBCustom through-hole V1 board in hardware/GPS_Tracker_V1/

The LG290P antenna quality and placement matter a lot. For RTK Fixed testing, use a stable outdoor antenna setup with low multipath and a suitable ground plane if the antenna expects one.

Quick Start

1. Install Board Support

Use Arduino IDE or arduino-cli with the Heltec ESP32 Dev-Boards package. Select:

SettingValue
BoardWiFi LoRa 32(V4)
USB CDC On BootEnabled
Partition Scheme16M Flash (3MB APP/9.9MB FATFS)
LoRaWan RegionREGION_US915 for Vermont / TTN
LibraryHeltec ESP32 Dev-Boards

Avoid mixing old Heltec V3 helper libraries into this project.

2. Compile

Known-good CLI command:

bash
arduino-cli compile \
  --fqbn Heltec-esp32:esp32:heltec_wifi_lora_32_V4:CDCOnBoot=cdc,PartitionScheme=app3M_fat9M_16MB,LORAWAN_REGION=3 \
  --build-path /tmp/gps_rtk_tracker_build \
  .

LORAWAN_REGION=3 is important for TTN US915. If the firmware is compiled for EU868, TTN joins in Vermont will fail even when the keys are correct.

3. Add Private Credentials

For compile-time defaults, copy:

bash
cp config_private.example.h config_private.h

Then fill in WiFi and NTRIP values in config_private.h. That file is ignored by Git.

You can also leave compile-time credentials blank and configure WiFi/NTRIP/TTN from the dashboard Setup tab.

4. Flash And Open Serial

Open Serial Monitor at 115200 baud with USB CDC On Boot enabled. On startup, look for:

text
=== GPS RTK Tracker ===
[GNSS] UART1 started at 460800 bps
[WEB] Dashboard listening on port 80

When WiFi connects, Serial and the OLED show the board IP. Open:

text
http://<board-ip>/

If WiFi is missing or fails, connect to the open setup AP:

text
SSID: GPS-RTK-Setup
URL:  http://192.168.4.1/setup

Configuration

Compile-time defaults live in config.h and optional private overrides live in config_private.h.

Common compile-time values:

SettingPurpose
MOVE_THRESHOLD_MMovement before sending a P2P LoRa point
MAX_TX_INTERVAL_SForce-send interval even if stationary
LORA_TX_POWERP2P LoRa TX power
NTRIP_GGA_SEND_MSRover GGA send interval for VRS casters
VBAT_CALIBRATION_SCALEBoard-specific battery ADC correction
TTN_MARK_MIN_GAP_MSMinimum gap between manual TTN mark uplinks
TTN_BREADCRUMB_MIN_GAP_MSConservative minimum breadcrumb gap

Dashboard-saved values take priority over compile-time defaults. The Setup tab can save:

  • WiFi profiles
  • NTRIP caster, port, mountpoint, username, and password
  • Radio mode: off, P2P LoRa, or TTN LoRaWAN
  • P2P TX enable
  • TTN DevEUI, JoinEUI/AppEUI, AppKey, sub-band, and transmit options

Blank password/key fields preserve the existing saved value. Type a new secret only when you want to replace it.

Web Dashboard

The ESP32 hosts a small dependency-free dashboard using WiFiServer. It is available when the tracker is connected to normal WiFi, and a simplified offline/setup page is available from GPS-RTK-Setup.

Dashboard tabs:

TabWhat it shows
TrackCurrent position, fix, battery, map marker, route, precision rings
PrecisionStationary scatter, RMS, median radius, 95% radius, max radius
RTKNTRIP state, RTCM bytes, stream age, GGA count, fix-mode time
SurveyNamed marks, averaged points, map/table display, mark exports
SetupWiFi/NTRIP/radio/TTN configuration
DebugLogs, satellite rows, heap/status, exports, bench hardware tests

Map notes:

  • The online dashboard uses Leaflet in the phone browser.
  • Burlington/Vermont testing includes Vermont VCGI orthoimagery, plus OpenStreetMap and Esri fallbacks.
  • The ESP32 does not download map tiles. Your phone or laptop does.
  • Google Maps is used only as an outbound coordinate link, not as an embedded paid JavaScript API.

Offline/setup page notes:

  • No internet assets, no Leaflet, and no external CSS/JS.
  • Shows position, fix quality, battery, RTK status, logs, cached WiFi scan results, saved WiFi profiles, local track plot, survey marks, and sky view.
  • Manual rescan briefly drops GPS-RTK-Setup, scans in station-only mode, caches results, and restarts the AP.

NTRIP And RTK

The NTRIP client:

  1. Connects to station WiFi.
  2. Opens the caster/mountpoint TCP connection.
  3. Checks for a valid response such as ICY 200 OK.
  4. Sends rover GGA to VRS mountpoints.
  5. Forwards binary RTCM bytes to the LG290P.

Healthy RTK transport looks like:

text
[NTRIP] Caster response: ICY 200 OK
[NTRIP] Stream active - receiving RTCM
[NTRIP] First RTCM bytes received

RTK Float means the receiver is using corrections but has not resolved carrier phase ambiguities tightly enough for RTK Fixed. If RTCM bytes are increasing and the fix reaches RTK Float, WiFi/NTRIP is probably working. Persistent Float is usually an antenna, multipath, receiver configuration, or correction-message compatibility problem.

For RTK Fixed testing:

  • Keep the antenna completely still for several minutes.
  • Use open sky, away from windows, walls, vehicles, metal railings, roofs, and trees.
  • Use a ground plane when the antenna type expects one.
  • Confirm the mountpoint is intended for your region and emits compatible multi-constellation RTCM, ideally MSM messages.
  • Capture the RTK tab and Serial log if Float is stable but Fixed never appears.

TTN LoRaWAN

TTN is for low-rate location reporting when WiFi is not the main display path. It is not for centimeter-rate plotting and does not carry RTK corrections.

Recommended TTN setup:

  1. Create a TTN application.
  2. Register an end device manually with OTAA.
  3. Use frequency plan United States 902-928 MHz, FSB 2 (used by TTN).
  4. Use LoRaWAN 1.0.x settings.
  5. Generate or enter:
    • DevEUI: 16 hex characters
    • JoinEUI/AppEUI: 16 hex characters
    • AppKey: 32 hex characters
  6. In the tracker Setup tab, choose TTN LoRaWAN, enter the values, choose the US915 sub-band, save, and reboot.
  7. Watch TTN Console Live Data for join and uplink events.

Important TTN notes:

  • Serial prints the compiled LoRaWAN region and channel mask at boot. For US915 FSB2, the region should be US915 and the mask should include FF00 plus 0002 in the fifth word.
  • The Heltec LoRaWAN stack needs the board's chip-specific Heltec license. If Serial prints Please provide a correct license!, use Heltec's license lookup for the printed ESP32ChipID, send AT+CDKEY=<32 hex chars> in Serial Monitor, and reboot.
  • If bad TTN settings make the tracker hang during radio startup, hold the Heltec PRG/BOOT button while resetting. Safe mode forces radio off for that boot and starts setup/offline mode.
  • Uplinks are unconfirmed by default to avoid downlink usage.
  • TTN Sandbox fair use is small: keep payloads tiny and breadcrumb intervals in minutes, not seconds.

Manual survey marks are prioritized over breadcrumbs. If the LoRaWAN MAC is busy, a pending mark remains queued and retries instead of being silently dropped.

TTN Payload Decoder

Use this JavaScript uplink decoder in TTN for app port 2:

js
function s32(b, i) {
  var v = (b[i] << 24) | (b[i + 1] << 16) | (b[i + 2] << 8) | b[i + 3];
  return v;
}

function s16(b, i) {
  var v = (b[i] << 8) | b[i + 1];
  return v & 0x8000 ? v - 0x10000 : v;
}

function decodeUplink(input) {
  var b = input.bytes;
  if (b.length !== 16) {
    return { data: {}, errors: ["expected 16 byte GPS RTK payload"] };
  }
  return {
    data: {
      kind: b[0] === 2 ? "mark" : "breadcrumb",
      sequence: b[1],
      latitude: s32(b, 2) / 10000000,
      longitude: s32(b, 6) / 10000000,
      altitude_m: s16(b, 10) / 10,
      fix_type: b[12],
      battery_percent: b[13],

PCB Files

PCB files are in hardware/GPS_Tracker_V1/.

PathContents
hardware/GPS_Tracker_V1/source/KiCad project, schematic, PCB layout, BOM CSV, custom footprint
hardware/GPS_Tracker_V1/gerbers_v2/Reviewed Gerber and drill files

gerbers_v2 is the preferred fabrication set. Older working Gerbers are not included because they had earlier outline, hole, and archive-cleanliness issues.

Before ordering another board:

  1. Open the KiCad project and run DRC.
  2. Inspect gerbers_v2 in the manufacturer viewer.
  3. Confirm the three mounting holes are drilled/routed as intended.
  4. Decide whether R1 should be changed for lower charge current.
  5. Confirm the BOM matches the actual assembly method and footprints.

Power Path

The custom PCB has its own USB-C charger and 3.3 V supply path:

text
USB-C VBUS -> +5V -> MCP73831 charger -> VBAT
USB-C VBUS -> +5V -> MAX40200 ideal diode -> SYS_IN
Battery JST -> VBAT -> MAX40200 ideal diode -> SYS_IN
SYS_IN -> power switch -> SYS_SW -> XC6220 3.3 V regulator -> 3V3 rails

Practical behavior:

ConditionResult
USB-C charger plugged in, switch ONTracker runs from USB path and battery can charge
USB-C charger plugged in, switch OFFBattery can charge, tracker side should be off
Battery only, switch ONTracker runs from battery
Battery only, switch OFFTracker is off except tiny leakage paths
Laptop connected to Heltec USBPrograms/powers the Heltec side; separate from custom board USB-C charger path

The custom board does not intentionally feed its +5V net into the Heltec 5 V pin. Be careful when multiple USB cables are connected during debugging.

Pin Notes

Final firmware pin choices for the assembled PCB:

FunctionGPIO
RGB redGPIO33
RGB greenGPIO5
RGB blueGPIO2
Battery ADC senseGPIO6
Battery divider enableGPIO37
RTK status inputGPIO4
LG290P TXD3 to ESP32 RXGPIO38
ESP32 TX to LG290P RXD3GPIO39
Optional UART2 RX from LG290P TXD2GPIO43
Optional UART2 TX to LG290P RXD2GPIO44

Heltec V4 labels worth preserving:

LabelGPIO
VBAT_ReadGPIO1
ADC CtrlGPIO37
GNSS_WakeupGPIO40
GNSS_RSTGPIO42
GNSS_PPSGPIO41
GNSS_TXGPIO39
GNSS_RXGPIO38
Vext_CtrlGPIO36
onboard LEDGPIO35
OLED resetGPIO21
V_FEM_ControlGPIO7
PRG/BOOT buttonGPIO0

Low-Power Battery Divider

The intended switched divider:

text
VBAT -> P-MOS source
P-MOS drain -> 390k -> VBAT_SENSE -> 100k -> GND
VBAT_SENSE -> GPIO6
0.1 uF from VBAT_SENSE to GND

P-MOS gate -> 1M -> VBAT
P-MOS gate -> NPN collector
NPN emitter -> GND
GPIO37 -> 10k -> NPN base
NPN base -> 100k -> GND  optional pulldown

Behavior:

  • GPIO37 LOW: divider off.
  • GPIO37 HIGH: NPN pulls the P-MOS gate low, divider turns on, GPIO6 reads battery voltage.
  • Recheck VBAT_CALIBRATION_SCALE with a multimeter if the resistor values, ADC wiring, or PCB revision changes.

API And Exports

Useful dashboard endpoints:

EndpointPurpose
GET /api/statusLive GNSS, battery, WiFi, route, precision, satellite JSON
GET /api/debugHeap, route/log counts, RTK pin, NTRIP, radio summary
GET /api/logsRecent fixed-memory firmware logs
GET /api/export.csvRetained route, precision, and marks as CSV
GET /api/export.jsonRetained route, precision, and marks as JSON
GET /api/export.geojsonSaved survey marks as GeoJSON
GET /api/export.kmlSaved survey marks as KML
POST /api/clearClear route/precision history

Large responses are streamed in small batches so GNSS, NTRIP, LoRa, and tracker logic keep running between chunks.

Packet Formats

P2P LoRa Packet

The direct P2P LoRa position packet is 14 bytes:

OffsetSizeContent
0-3int32Latitude, degrees x 1e7
4-7int32Longitude, degrees x 1e7
8-9uint16Altitude in cm
10uint8Fix quality
11uint8Battery percent
12uint8Sequence counter
13uint8HDOP x 10

TTN Packet

The TTN position payload is 16 bytes on app port 2:

OffsetSizeContent
0uint8Kind: 1 breadcrumb, 2 marked point
1uint8Sequence counter
2-5int32 BELatitude, degrees x 1e7
6-9int32 BELongitude, degrees x 1e7
10-11int16 BEAltitude, meters x 10
12uint8Fix quality
13uint8Battery percent
14uint8HDOP x 10
15uint8Satellites in use

Troubleshooting

gps-rtk.local Does Not Resolve

Use the IP shown on the OLED or in Serial Monitor. Phone hotspots and some mobile browsers often do not resolve mDNS reliably.

No RTCM Bytes

If rtcm=0B stays at zero after the caster accepts the connection:

  • Confirm the caster response is ICY 200 OK or another success response.
  • Confirm the RTK tab shows rover GGA being sent.
  • Try a known nearby mountpoint.
  • Check NTRIP username/password and mountpoint spelling.
  • Confirm the phone/hotspot has real internet, not only local WiFi.

RTK Float But No RTK Fixed

If RTCM bytes are increasing and fix quality reaches RTK Float, the correction path is alive. For Fixed, improve antenna conditions and check receiver/caster compatibility. Multipath near windows, buildings, vehicles, and metal surfaces is the usual enemy.

TTN Joins But Payload Shows {}

The TTN decoder returns {} when the payload length is not the expected 16-byte app-port-2 tracker payload. Check that the uplink is on app port 2 and that you pasted the decoder from this README into the TTN payload formatter.

Second TTN Mark Does Not Appear Immediately

Manual marks are rate-limited and the LoRaWAN MAC can be busy. The firmware keeps pending marks queued and retries them, but TTN is intentionally slow. Use multi-minute breadcrumbs and avoid rapid repeated mark sends unless testing.

OLED Resets Or USB Reconnects

Do not use the standard Heltec.display path for this project. The stable Heltec V4 display path is:

  1. Start Heltec with built-in display disabled.
  2. Enable Vext.
  3. Initialize a dedicated SSD1306Wire instance.

The current display.cpp already does this.

Repository Layout

PathPurpose
gps_rtk_tracker.inoMain Arduino sketch
config.hPins, compile-time settings, non-secret defaults
config_private.example.hTemplate for ignored private credentials
gnss.*NMEA parsing, satellite state, RTCM forwarding
ntrip.*WiFi/NTRIP state machine
web_dashboard.*Embedded dashboard HTML, API, exports, setup pages
runtime_config.*ESP32 Preferences storage for WiFi/NTRIP/radio/TTN
display.*OLED display
leds.*RGB fix LED behavior
battery.*Battery ADC reading and calibration
lora_p2p.*Direct P2P LoRa mode
lora_ttn.*TTN LoRaWAN mode
radio_manager.*Runtime radio-mode ownership
tracker.*Movement-triggered transmit policy
app_log.*Fixed-memory firmware log ring
hardware/GPS_Tracker_V1/KiCad source and reviewed Gerbers
DIGIKEY_ORDER_BOM.mdPrototype Digi-Key order BOM notes

License

This project is released under the MIT License. See LICENSE.

Parts

48
QtyValueFootprintReferences
4TestPointTestPoint:TestPoint_Pad_1.5x1.5mm3.3V, 5V, GND, VBAT
3100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R12, R14
3220Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR8, R9, R10
2100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC8, C9
210µFCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC6, C7
21KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R15
21µFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC3, C4
22N3904Package_TO_SOT_THT:TO-92_InlineQ1, Q2
24.7µFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1, C2
25.1kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3
2MAX40200AUKPackage_TO_SOT_SMD:SOT-23-5_HandSolderingU2A1: MAX40200, U2B1: MAX40200
10.1µFCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC11
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR13
110µFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC5
11MResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR7
12KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
1390kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR11
1470Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6
1BS250Package_TO_SOT_THT:TO-92_InlineQ3
1Conn_01x02_PinConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2 BAT
1GPIO POWER?Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1Heltec_WiFi_LoRa_32_V4RF_Module:Heltec v4J3
1LED: YellowLED_THT:LED_D5.0mmD1
1LED_RGBKLED_THT:LED_D5.0mm-4_RGB_Staggered_PinsD2
1LOGOLOGOG***
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5_HandSolderingU1: MCP73831
1SW_SPDTButton_Switch_THT:SW_Slide-03_Wuerth-WS-SLTV_10x2.5x6.4_P2.54mmSW1
1USB_C_Receptacle_PowerOnly_6PConnector_USB:USB_C_Receptacle_GCT_USB4125-xx-x-0190_6P_TopMnt_HorizontalUSB J1
1Waveshare_LG290P_GNSSRF_Module:Waveshare_LG290P_GNSSJ4
1XC6220D331MR-GPackage_TO_SOT_SMD:SOT-23-5_HandSolderingU3: XC6220

The 45 most common of 48 parts.

Similar boards

  • 2 layersRaposfly UPS, the printed circuit board in 3D

    Raposfly UPS

    LenaicElsig/ups-RaspberryPi

    Uninterrupted power supply for Raspberry Pi

    45 parts4
  • 4 layers151.1 × 71.1 mmMakeItRain, the printed circuit board in 3D

    MakeItRain

    TJLTM/MakeItRain

    DIY ESP-32 Based sprinkler Controller

    76 parts3
  • 2 layers55 × 34 mmKnurCAN V2, the printed circuit board in 3D

    KnurCAN V2

    chrumck/KnurDash

    A racing logger for an ND2 Mazda MX-5, integrating wide ranging functionality into one unit:

    23 parts1MIT
  • 2 layers190 × 95 mmEausure measurement node, the printed circuit board in 3D

    Eausure measurement node

    adam-dev-hub/eausure-v1

    Complete IoT water quality monitoring ecosystem spanning embedded firmware, LoRa gateways, cloud APIs, mobile/web supervision, and PCB/mechanical design.

    53 parts
  • 2 layers100.4 × 100 mmECE4450 FinalProject, the printed circuit board in 3D

    ECE4450 FinalProject

    bakerbass/ece4450filter

    This project is to create a functioning circuit on a Tangible Waves form-factor module.

    64 parts
  • 2 layers109 × 64 mmHyundai Dash V1.1, the printed circuit board in 3D

    Hyundai Dash V1.1

    eymenyg/sim_dash

    Download hyundaidashv1bng .zip from the Releases page and copy it to:

    29 parts
  • 2 layers55 × 45 mmAtx psu controller, the printed circuit board in 3D

    Atx psu controller

    ffosilva/psu-controller

    Discrete ACPI-coordinated ATX power supply controller with remote ESP wake and telemetry latching

    23 partsMIT

Questions

How big is the GPS Tracker V1 PCB?

It measures 125 × 72 mm and has 2 copper layers, 1.6 mm thick.

What parts does the GPS Tracker V1 use?

48 parts, built around the MAX40200AUK, XC6220D331MR-G and BS250. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the GPS Tracker V1 KiCad files?

From the Amazon-Master/gps-rtk-tracker repository on GitHub, at the commit this page was made from: the board is hardware/GPS_Tracker_V1/source/GPS_Tracker_V1.kicad_pcb and its schematic hardware/GPS_Tracker_V1/source/GPS_Tracker_V1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the GPS Tracker V1 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).