Skip to the content
PCBKitNew board
4 layers76 × 29.9 mmGnss node, the printed circuit board in 3D

Polowy węzeł pozycyjny z modułem GNSS Quectel L76-L (GPS/GLONASS/Galileo/QZSS) i czujnikiem orientacji (akcelerometr + magnetometr), komunikujący się cyfrowo przez CAN 2.0B.

Size
76 × 29.9 mm
Copper layers
4
Thickness
1.59 mm
Parts
141
Nets
92
Pads
419
Tracks, vias
768, 335
Pours
269
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
14 Aug 2026
Updated
25 Sep 2026

Overview

Gnss node is an open-source printed circuit board by bartkepl, from the bartkepl/CanGnssNode repository on GitHub, published under the MIT licence. It is a 4-layer board of 76 × 29.9 mm with 141 parts on 92 nets, routed with 768 tracks and 335 vias.

It is built around the ATA6561-GAQW-N, L76L-M33 and LT8606IDC#TRPBF, with the GAQY212GS, FXOS8700CQR1 and LSM303AGR among its other parts. Its parts include 55 capacitors, 39 resistors, 11 ICs, 8 diodes and 6 transistors. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

12

README

README.md

CanGnssNode

Odbiornik GNSS z interfejsem CAN

Polowy węzeł pozycyjny z modułem GNSS Quectel L76-L (GPS/GLONASS/Galileo/QZSS) i czujnikiem orientacji (akcelerometr + magnetometr), komunikujący się cyfrowo przez CAN 2.0B. Zaprojektowany jako element rozproszonego systemu pomiarowego: wąski cylindryczny węzeł w obudowie aluminiowej, jedno złącze M12, odporność EMC klasy przemysłowej.

status hw mcu gnss bus pcb

Status: schemat (6 arkuszy hierarchicznych) i layout PCB zakończone, pliki produkcyjne wygenerowane — przed zamówieniem prototypu. Ta sama filozofia konstrukcyjna co CanGeigerProbe (rura aluminiowa, złącze M12, zasilanie/CAN/RTC odziedziczone), sonda G-M i obwód HV zastąpione modułem GNSS i IMU. Firmware na etapie szkieletu bring-up.


Płytka

Render 3D aktualnego layoutu (KiCad 10, 4 warstwy, 76 × 29.9 mm, wycięcie pod złącze M12 na krawędzi):

Węzeł GNSS — widok pod kątem

Góra (TOP)Dół (BOTTOM)
TOPBOTTOM

Strona TOP: ochrona wejścia, zasilanie (LT8606 + MCP1700), CAN z przełączalną terminacją, MCU, RTC z ogniwem podtrzymującym. Strona BOTTOM: tor RF — moduł L76-L, złącze antenowe U.FL (J3) i sieć dopasowania — oraz IMU; ta strona trafia pod plastikowy insert z anteną (patrz Mechanika). Pola lutownicze J1 (VIN / GND / EARTH / CAN H / CAN L) służą do podłączenia złącza M12 przewodami.


Najważniejsze cechy

  • Prosty odbiornik pozycji GNSS — moduł Quectel L76-L (GPS + GLONASS + Galileo + QZSS, 33 kanały śledzenia), dane NMEA po UART, pozycja wysyłana cyklicznie na CAN.
  • Czujnik orientacji — FXOS8700CQ (6 osi: akcelerometr + magnetometr, I2C) z zasilaniem przełączanym z MCU; alternatywne pola pod LSM303AGR (domyślnie niemontowany).
  • Zasilanie o niskim poborze własnym — buck LT8606 (Iq 2.5 µA) i LDO MCP1700 (Iq 1.6 µA). Budżet mocy węzła jest jednak zdominowany przez odbiornik GNSS, który w akwizycji/śledzeniu pobiera o rzędy wielkości więcej niż reszta układu — realny pobór zależy od trybu pracy L76-L (Full On / Periodic / AlwaysLocate™ / Standby / Backup) wybranego w firmware i zostanie zmierzony przy bring-upie wbudowanym INA186.
  • CAN 2.0B (29-bit ID) z wybudzaniem na aktywność magistrali, 125 kbit/s – 1 Mbit/s.
  • Przełączalna terminacja CAN — split 2×59 Ω + 4.7 nF załączany dwoma PhotoMOS-ami z GPIO (węzeł na końcu linii vs. w środku, bez zwór).
  • Pomiar własnego poboru prądu — INA186 A4 (G=200) + shunt 0.5 Ω, rozdzielczość ~2 µA/count; diagnostyka linii i weryfikacja budżetu mocy.
  • Zegar czasu rzeczywistego z podtrzymaniem — MCP79410 + ogniwo MS621FE; kwarc 32.768 kHz służy też do kalibracji wewnętrznego MSI w STM32. Docelowo RTC dostaje korektę z czasu UTC dostarczanego przez GNSS po uzyskaniu fixa.
  • Odporność EMC — kaskadowa ochrona coarse→fine (GDT 3-elektrodowe / TVS / CMC / podwójne ferryty) na zasilaniu i CAN, testy IEC 61000-4-2/-4/-5.
  • Obudowa aluminiowa IP67, złącze M12 5-pin A-coded (standard CANopen CiA 303-1).

Specyfikacja

ParametrWartość
Moduł GNSSQuectel L76-L (LCC-18, 10.1×9.7×2.5 mm)
KonstelacjeGPS, GLONASS, Galileo (E1), QZSS, SBAS (WAAS/EGNOS/MSAS/GAGAN)
Dokładność pozycji< 2.5 m CEP (autonomicznie)
TTFF~5 s (warm start, EASY™)
Czułość-167 dBm (tracking) / -149 dBm (acquisition)
Wyjście danychNMEA 0183 po UART, domyślnie 9600 8N1 (opcjonalnie I2C — L76-L ma wyprowadzone I2C_SDA/SCL)
Interfejs magistraliCAN 2.0B (extended ID), 125k / 250k / 500k / 1 Mbit
Zasilanie7–32 V DC, wspólna masa (bez izolacji galwanicznej)
Ochrona EMCESD ±8 kV, Burst ±2 kV, Surge ±2 kV
ZłączeM12 5-pin A-coded (1=Vin, 2=GND, 3=CAN_H, 4=CAN_L, 5=Earth)
PCB4 warstwy, 76 × 29.9 mm, grubość 1.59 mm, montaż dwustronny (TOP: zasilanie/CAN/MCU, BOTTOM: GNSS/RF + IMU)
ObudowaAluminiowa cylindryczna, rura 32×1 mm (Ø wewn. ≈ 30 mm), z uchwytem mocującym; górna część = insert plastikowy z miejscem na antenę GNSS

Architektura

text
M12 Vin (7-32V) ─▶ Ochrona (GDT+TVS+ferryt) ─▶ shunt 0.5Ω ─▶ LT8606 buck ─▶ +5V ─┬─▶ ATA6561 (CAN)
                                                    │                              │
                                                 INA186 ─▶ ADC                     ├─▶ MCP1700 LDO ─▶ +3.3V ─┬─▶ STM32L432
                                                                                   │                          │
                                                                                   │                MCP79410 RTC + BT1
                                                                                   │                          │
                                                                                   │                          ├─▶ FXOS8700CQ IMU (I2C, zasilanie przełączane)
                                                                                   └──────────────────────────┴─▶ Quectel L76-L ─▶ U.FL ─▶ antena GNSS
                                                                                                                          │
                                                                                                    UART (NMEA) ──────────┘
                                                                                                          │
                                                                                                    STM32L432 ─▶ parsowanie ─▶ ramki CAN z pozycją

Kluczowa cecha: wspólna masa (star ground), izolacja zapewniona wyłącznie przez TVS/GDT; Earth (obudowa) oddzielona od GND sygnałowej i łączona tylko przez Y-cap 1 nF/2 kV.

Arkusze schematu

ArkuszPlikZawartość
rootgnss_node.kicad_schpołączenia hierarchiczne
PWRpwr.kicad_schbuck LT8606, LDO MCP1700, INA186, dzielnik VIN_SENSE
MCUmcu.kicad_schSTM32L432, RTC MCP79410, kwarc 32k, SWD (Tag-Connect)
GPSgps.kicad_schmoduł Quectel L76-L, złącze antenowe U.FL, sieć dopasowania, V_BCKP
IMUimu.kicad_schFXOS8700CQ (+ alternatywnie LSM303AGR, DNP), przełączane zasilanie
CAN_BUScan_bus.kicad_schATA6561, terminacja PhotoMOS
PROTECTIONprot.kicad_schochrona Vin i CAN, pola lutownicze złącza M12

Wyrenderowane PDF-y: schemat · PCB · interaktywny BOM.


Kluczowe komponenty

BlokElementUwaga
GNSSQuectel L76-LLCC-18, UART NMEA 9600 8N1 (opcjonalnie I2C), VCC 2.8–4.3 V (typ. 3.3 V z istniejącej szyny), V_BCKP z istniejącego BT1
Antenapasywna lub aktywna GNSS 1575 MHz, złącze U.FL (J3)pasywna wystarcza przy odległości anteny od modułu < 1 m (nasz przypadek — insert w tej samej rurze); aktywna wymaga zasilania z pinu VCC_RF modułu (tor przełączany Q1). Wartości sieci dopasowania (C11/C12) dobierane przy uruchamianiu — domyślnie DNP
BuckLT8606IDC#TRPBFDFN-8, Iq 2.5 µA (zawsze Burst Mode), Vref FB 0.778 V
LDO 3.3 VMCP1700-3302E/MBSOT-89, Iq 1.6 µA
Current senseINA186A4IDCKR + 0.5 Ω40 V CM, G=200, pin EN — pomiar poboru węzła
MCUSTM32L432KCU6bxCAN, USART2 (GNSS), I2C1 (RTC + IMU), ADC
IMUFXOS8700CQR16 osi (akcelerometr + magnetometr), I2C; pola pod LSM303AGR jako alternatywa (DNP)
RTCMCP79410-I/MS + MS621FE-FL11ERTC/EEPROM I2C z podtrzymaniem, kwarc 32.768 kHz
CANATA6561-GAQW-Nzamiennik TJA1042
Terminacja CAN2× GAQY212GS + 2× 59 Ω + 4.7 nFsplit przełączalny, sterowany BSS138
Ochrona Vin3R090-5S (GDT) + SMBJ33CA + PMEG6030EP + 2× SMBJ36Akaskada coarse→fine, podwójny ferryt BLM31
Ochrona CAN3R090-5S + CDSOT23-T24CAN + ACT45B-510GDT, dedykowany TVS, CMC

Pełna lista: prod/bom/ (generowana z KiCad, nietrackowana w git) lub interaktywny BOM.


Ramki CAN — szkic protokołu v1

Firmware jest na etapie szkieletu (peryferia zainicjalizowane, brak logiki aplikacji), więc poniższy format to zamierzenie do implementacji, nie działający kod. Trzy ramki standardowe (8 B danych), wysyłane cyklicznie po uzyskaniu fixa:

RamkaZawartość (bajty)
POSITIONszerokość geogr. (int32, 1e-7°) · długość geogr. (int32, 1e-7°)
ALT_SPEEDwysokość n.p.m. (int32, mm) · prędkość (uint16, 0.01 m/s) · kurs (uint16, 0.01°)
STATUS_TIMEczas UTC (uint32, epoch) · jakość fixa (uint8) · liczba satelitów (uint8) · HDOP (uint16, 0.01)

Identyfikatory CAN, dokładna semantyka pól i częstotliwość nadawania do ustalenia razem z resztą firmware (Faza 4 poniżej).


Mechanika

Rura aluminiowa 32×1 mm (Ø wewn. ≈ 30 mm) z uchwytem mocującym, IP67 — ta sama koncepcja montażu co u poprzedniej rewizji sprzętu. Różnica: zamiast górnej części z sondą pomiarową — plastikowy insert z miejscem na antenę GNSS, bo aluminium ekranuje sygnał satelitarny i antena musi „widzieć” niebo przez materiał nieprzewodzący. PCB montowane dwustronnie — strona BOTTOM (GNSS/RF) skierowana pod insert; antena podłączana przez złącze U.FL (J3) pigtailem do anteny w insercie.


Firmware

Projekt STM32CubeIDE w firmware/CanGnssNode/ — na razie szkielet wygenerowany z CubeMX (CanGnssNode.ioc) z inicjalizacją ADC1, CAN1, I2C1 i USART2 (GNSS). Logika aplikacji (parsowanie NMEA, obsługa IMU, budowa i nadawanie ramek CAN) do napisania.


Roadmap

  • Faza 1 — wydzielenie nowego sub-projektu, dobór modułu GNSS (Quectel L76-L), dokumentacja zamierzenia
  • Faza 2 — przebudowa schematu w KiCad: nowe arkusze GPS i IMU, usunięcie arkusza HV, aktualizacja pinów MCU
  • Faza 3 — przebudowa PCB (4 warstwy, montaż dwustronny, sekcja RF), pliki produkcyjne wygenerowane
  • Faza 3b — zamówienie PCB, montaż, bring-up sprzętowy
  • Faza 4 — firmware (parser NMEA, protokół CAN z pozycją, synchronizacja RTC z czasem GNSS, tryby oszczędzania energii L76-L)
  • Faza 5 — testy terenowe (dokładność pozycji, TTFF, zasięg anteny w obudowie), testy EMC
  • Faza 6 — mechanika: rura Al 32×1 mm, plastikowy insert z anteną, testy IP67

Struktura repozytorium

text
.
├── media/          # rendery 3D płytki
├── pcb/            # projekt KiCad 10 (schemat hierarchiczny, PCB, biblioteki lokalne, modele 3D)
├── prod/           # pliki produkcyjne: gerbery (.zip), PDF schematu i PCB, interaktywny BOM
├── sim/            # symulacje LTspice (LT8606 buck)
└── firmware/       # projekt STM32CubeIDE (STM32L432, szkielet bring-up)

Pliki produkcyjne generowane są jobsetami KiCad: gen_prod.kicad_jobset (PDF + BOM), gen_gerber.kicad_jobset (gerbery + wiertła), gen_media.kicad_jobset (rendery 3D).


Referencje

  • Quectel L76 & L76-L Hardware Design (GNSS Module Series), v3.2 — pinout, elektryka, projekt anteny
  • NMEA 0183 — format komunikatów wyjściowych GNSS
  • STM32L432: RM0394, DS11453; bxCAN: AN2606, AN5028
  • LT8606 (Analog Devices), MCP1700 / MCP79410 / ATA6561 (Microchip), INA186 (TI), FXOS8700CQ (NXP)
  • IEC 61000-4-2/-4/-5; EN 61326-1; EN 61000-6-2
  • CAN 2.0B: ISO 11898-1/-2; CANopen CiA 301, CiA 303-1; M12: IEC 61076-2-101

Licencja

MIT

Parts

141
QtyValueFootprintReferences
24100nCapacitor_SMD:C_0603_1608MetricC1, C4, C5, C24, C25, C27, C29, C30, C31, C32, C33, C35, C37, C45, C48, C49 +8
1310kResistor_SMD:R_0603_1608MetricR17, R18, R19, R20, R30, R33, R34, R35, R36, R37, R38, R39, R46
111uCapacitor_SMD:C_0603_1608MetricC3, C6, C9, C23, C26, C28, C38, C46, C50, C55, C60
6100kResistor_SMD:R_0603_1608MetricR24, R26, R31, R40, R41, R42
5100R @ 100MHzInductor_SMD:L_0603_1608MetricFB3, FB4, FB5, FB6, FB7
4FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3, FID4
3100pCapacitor_SMD:C_0603_1608MetricC47, C51, C53
310uCapacitor_SMD:C_1206_3216MetricC7, C10, C34
31MResistor_SMD:R_0603_1608MetricR2, R4, R25
31kResistor_SMD:R_0603_1608MetricR28, R47, R48
3BSS138Package_TO_SOT_SMD:SOT-23Q2, Q3, Q5
210Resistor_SMD:R_0603_1608MetricR29, R32
210R Pulse-proofResistor_SMD:R_1206_3216MetricR15, R16
2187kResistor_SMD:R_0603_1608MetricR3, R5
21nCapacitor_SMD:C_0603_1608MetricC36, C44
23R090-5SSamacSys_Parts:3R090A5SGD1, GD2
24.7pCapacitor_SMD:C_0603_1608MetricC40, C41
25.6kResistor_SMD:R_0603_1608MetricR49, R50
259Resistor_SMD:R_0603_1608MetricR21, R22
26.2pCapacitor_SMD:C_0402_1005MetricC42, C43
2BLM31PG601SN1LInductor_SMD:L_1206_3216MetricFB1, FB2
2BSS84Package_TO_SOT_SMD:SOT-23Q1, Q6
2CCapacitor_SMD:C_0402_1005MetricC11, C12
2GAQY212GSPackage_SO:SOP-4_3.8x4.1mm_P2.54mmU701, U702
2SMBJ36A-13-FDiode_SMD:D_SMBD6, D8
10RResistor_SMD:R_0402_1005MetricR6
110p NP0Capacitor_SMD:C_0603_1608MetricC2
110u / 50VCapacitor_SMD:C_1206_3216MetricC20
118k2Resistor_SMD:R_0603_1608MetricR1
11n / 50VCapacitor_SMD:C_0603_1608MetricC21
11nF/2kVCapacitor_SMD:C_1206_3216MetricC22
1220nCapacitor_SMD:C_0603_1608MetricC54
132,768kHzCrystal:Crystal_SMD_MicroCrystal_CC7V-T1A-2Pin_3.2x1.5mmY1
14.7nCapacitor_SMD:C_0603_1608MetricC39
147nHInductor_SMD:L_0603_1608MetricL2
1500mResistor_SMD:R_0603_1608MetricR27
1560Resistor_SMD:R_0603_1608MetricR23
16u8Inductor_SMD:L_1210_3225MetricL1
1ACT45B-510-2P-TL003SamacSys_Parts:ACT45B1012PTL003FL1
1ATA6561-GAQW-NSamacSys_Parts:SOIC127P600X175-8NIC2
1BAT54JDiode_SMD:D_SOD-323FD27
1BAV199Package_TO_SOT_SMD:TSOT-23D10
1BC847Package_TO_SOT_SMD:SOT-23Q4
1CDSOT23-T24CANPackage_TO_SOT_SMD:TSOT-23D9
1Conn_01x05_SocketConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ1
1Conn_Coaxial_SmallConnector_Coaxial:U.FL_Hirose_U.FL-R-SMT-1_VerticalJ3
1FXOS8700CQR1lib_local:IC_FXOS8700CQR1U5
1INA186A4IDCKRlib_local:SOT65P210X110-6NU3
1L76L-M33lib_local:XCVR_L76L-M33U4
1LSM303AGRlib_local:PQFN50P200X200X100-12NU6
1LT8606IDC#TRPBFSamacSys_Parts:SON45P200X200X80-9N-DIC1
1MCP1700x-330xxMBPackage_TO_SOT_SMD:SOT-89-3U2
1MCP79410T-I_MSSamacSys_Parts:SOP65P490X110-8NIC8
1MS621FE-FL11Elib_local:BAT_MS621FE-FL11EBT1
1PMEG6030EPDiode_SMD:D_SOD-128D7
1PTC 100mAFuse:Fuse_1206_3216MetricF1
1SMBJ33CADiode_SMD:D_SMBD5
1STM32L432KCUxPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm_ThermalViasU1
1STN061033BL15-EAlib_local:DFN0603D1
1TC2030Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ2

Questions

How big is the Gnss node PCB?

It measures 76 × 29.9 mm and has 4 copper layers, 1.59 mm thick.

What parts does the Gnss node use?

141 parts, built around the ATA6561-GAQW-N, L76L-M33, LT8606IDC#TRPBF and GAQY212GS. 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 Gnss node KiCad files?

From the bartkepl/CanGnssNode repository on GitHub, at the commit this page was made from: the board is pcb/gnss_node.kicad_pcb and its schematic pcb/can_bus.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Gnss node 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).

Similar boards

  • 4 layers86 × 29.9 mmGeiger probe, the printed circuit board in 3D

    Geiger probe

    bartkepl/CanGeigerProbe

    Polowa sonda promieniowania jonizującego z miniaturową lampą Geigera-Müllera, komunikująca się cyfrowo przez CAN 2.0B.

    116 partsMIT
  • 4 layers120 × 75 mmControlPanel, the printed circuit board in 3D

    ControlPanel

    bartkepl/ControlPanelV3S

    V3S CAN-bus control panel - KiCad hardware

    327 partsMIT
  • 4 layers29 × 31.5 mmCelsian dev pcb, the printed circuit board in 3D

    Celsian dev pcb

    malcircuit/Celsian-PCB

    PCB layout for the Celsian BLE environment sensor

    39 parts
  • 4 layers81.2 × 84.7 mmPulse board, the printed circuit board in 3D

    Pulse board

    william-richards1/Pulse

    High current driver board for overdriving consumer LEDs.

    175 partsMIT
  • 4 layers80.5 × 50 mmBwlc1a, the printed circuit board in 3D

    Bwlc1a

    teapotlaboratories/bwlc1a

    Low-power Cellular GPS Tracker

    178 parts2MIT
  • 4 layers90.4 × 25 mmTransponder-12.0.1, the printed circuit board in 3D

    Transponder-12.0.1

    rolandvs/ais_transponder

    A real, functioning low-power AIS transponder (class B)

    115 parts1GPL-3.0
  • 4 layers61.6 × 95.8 mmIn car dashboard, the printed circuit board in 3D

    In car dashboard

    andreiii04/in-car-dashboard

    Custom STM32 in-car telemetry display: G-meter, GPS speed and cabin weather on a 2.8" TFT, with each drive logged to SD.

    51 partsMIT