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

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.
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.
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: 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.
Render 3D aktualnego layoutu (KiCad 10, 4 warstwy, 76 × 29.9 mm, wycięcie pod złącze M12 na krawędzi):

| Góra (TOP) | Dół (BOTTOM) |
|---|---|
![]() | ![]() |
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.
| Parametr | Wartość |
|---|---|
| Moduł GNSS | Quectel L76-L (LCC-18, 10.1×9.7×2.5 mm) |
| Konstelacje | GPS, 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 danych | NMEA 0183 po UART, domyślnie 9600 8N1 (opcjonalnie I2C — L76-L ma wyprowadzone I2C_SDA/SCL) |
| Interfejs magistrali | CAN 2.0B (extended ID), 125k / 250k / 500k / 1 Mbit |
| Zasilanie | 7–32 V DC, wspólna masa (bez izolacji galwanicznej) |
| Ochrona EMC | ESD ±8 kV, Burst ±2 kV, Surge ±2 kV |
| Złącze | M12 5-pin A-coded (1=Vin, 2=GND, 3=CAN_H, 4=CAN_L, 5=Earth) |
| PCB | 4 warstwy, 76 × 29.9 mm, grubość 1.59 mm, montaż dwustronny (TOP: zasilanie/CAN/MCU, BOTTOM: GNSS/RF + IMU) |
| Obudowa | Aluminiowa cylindryczna, rura 32×1 mm (Ø wewn. ≈ 30 mm), z uchwytem mocującym; górna część = insert plastikowy z miejscem na antenę GNSS |
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.
| Arkusz | Plik | Zawartość |
|---|---|---|
| root | gnss_node.kicad_sch | połączenia hierarchiczne |
| PWR | pwr.kicad_sch | buck LT8606, LDO MCP1700, INA186, dzielnik VIN_SENSE |
| MCU | mcu.kicad_sch | STM32L432, RTC MCP79410, kwarc 32k, SWD (Tag-Connect) |
| GPS | gps.kicad_sch | moduł Quectel L76-L, złącze antenowe U.FL, sieć dopasowania, V_BCKP |
| IMU | imu.kicad_sch | FXOS8700CQ (+ alternatywnie LSM303AGR, DNP), przełączane zasilanie |
| CAN_BUS | can_bus.kicad_sch | ATA6561, terminacja PhotoMOS |
| PROTECTION | prot.kicad_sch | ochrona Vin i CAN, pola lutownicze złącza M12 |
Wyrenderowane PDF-y: schemat · PCB · interaktywny BOM.
| Blok | Element | Uwaga |
|---|---|---|
| GNSS | Quectel L76-L | LCC-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 |
| Antena | pasywna 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 |
| Buck | LT8606IDC#TRPBF | DFN-8, Iq 2.5 µA (zawsze Burst Mode), Vref FB 0.778 V |
| LDO 3.3 V | MCP1700-3302E/MB | SOT-89, Iq 1.6 µA |
| Current sense | INA186A4IDCKR + 0.5 Ω | 40 V CM, G=200, pin EN — pomiar poboru węzła |
| MCU | STM32L432KCU6 | bxCAN, USART2 (GNSS), I2C1 (RTC + IMU), ADC |
| IMU | FXOS8700CQR1 | 6 osi (akcelerometr + magnetometr), I2C; pola pod LSM303AGR jako alternatywa (DNP) |
| RTC | MCP79410-I/MS + MS621FE-FL11E | RTC/EEPROM I2C z podtrzymaniem, kwarc 32.768 kHz |
| CAN | ATA6561-GAQW-N | zamiennik TJA1042 |
| Terminacja CAN | 2× GAQY212GS + 2× 59 Ω + 4.7 nF | split przełączalny, sterowany BSS138 |
| Ochrona Vin | 3R090-5S (GDT) + SMBJ33CA + PMEG6030EP + 2× SMBJ36A | kaskada coarse→fine, podwójny ferryt BLM31 |
| Ochrona CAN | 3R090-5S + CDSOT23-T24CAN + ACT45B-510 | GDT, dedykowany TVS, CMC |
Pełna lista: prod/bom/ (generowana z KiCad, nietrackowana w git) lub interaktywny BOM.
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:
| Ramka | Zawartość (bajty) |
|---|---|
POSITION | szerokość geogr. (int32, 1e-7°) · długość geogr. (int32, 1e-7°) |
ALT_SPEED | wysokość n.p.m. (int32, mm) · prędkość (uint16, 0.01 m/s) · kurs (uint16, 0.01°) |
STATUS_TIME | czas 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).
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.
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.
.
├── 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).
MIT
| Qty | Value | Footprint | References |
|---|---|---|---|
| 24 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C4, C5, C24, C25, C27, C29, C30, C31, C32, C33, C35, C37, C45, C48, C49 +8 |
| 13 | 10k | Resistor_SMD:R_0603_1608Metric | R17, R18, R19, R20, R30, R33, R34, R35, R36, R37, R38, R39, R46 |
| 11 | 1u | Capacitor_SMD:C_0603_1608Metric | C3, C6, C9, C23, C26, C28, C38, C46, C50, C55, C60 |
| 6 | 100k | Resistor_SMD:R_0603_1608Metric | R24, R26, R31, R40, R41, R42 |
| 5 | 100R @ 100MHz | Inductor_SMD:L_0603_1608Metric | FB3, FB4, FB5, FB6, FB7 |
| 4 | Fiducial | Fiducial:Fiducial_0.5mm_Mask1mm | FID1, FID2, FID3, FID4 |
| 3 | 100p | Capacitor_SMD:C_0603_1608Metric | C47, C51, C53 |
| 3 | 10u | Capacitor_SMD:C_1206_3216Metric | C7, C10, C34 |
| 3 | 1M | Resistor_SMD:R_0603_1608Metric | R2, R4, R25 |
| 3 | 1k | Resistor_SMD:R_0603_1608Metric | R28, R47, R48 |
| 3 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q2, Q3, Q5 |
| 2 | 10 | Resistor_SMD:R_0603_1608Metric | R29, R32 |
| 2 | 10R Pulse-proof | Resistor_SMD:R_1206_3216Metric | R15, R16 |
| 2 | 187k | Resistor_SMD:R_0603_1608Metric | R3, R5 |
| 2 | 1n | Capacitor_SMD:C_0603_1608Metric | C36, C44 |
| 2 | 3R090-5S | SamacSys_Parts:3R090A5S | GD1, GD2 |
| 2 | 4.7p | Capacitor_SMD:C_0603_1608Metric | C40, C41 |
| 2 | 5.6k | Resistor_SMD:R_0603_1608Metric | R49, R50 |
| 2 | 59 | Resistor_SMD:R_0603_1608Metric | R21, R22 |
| 2 | 6.2p | Capacitor_SMD:C_0402_1005Metric | C42, C43 |
| 2 | BLM31PG601SN1L | Inductor_SMD:L_1206_3216Metric | FB1, FB2 |
| 2 | BSS84 | Package_TO_SOT_SMD:SOT-23 | Q1, Q6 |
| 2 | C | Capacitor_SMD:C_0402_1005Metric | C11, C12 |
| 2 | GAQY212GS | Package_SO:SOP-4_3.8x4.1mm_P2.54mm | U701, U702 |
| 2 | SMBJ36A-13-F | Diode_SMD:D_SMB | D6, D8 |
| 1 | 0R | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 10p NP0 | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 10u / 50V | Capacitor_SMD:C_1206_3216Metric | C20 |
| 1 | 18k2 | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 1n / 50V | Capacitor_SMD:C_0603_1608Metric | C21 |
| 1 | 1nF/2kV | Capacitor_SMD:C_1206_3216Metric | C22 |
| 1 | 220n | Capacitor_SMD:C_0603_1608Metric | C54 |
| 1 | 32,768kHz | Crystal:Crystal_SMD_MicroCrystal_CC7V-T1A-2Pin_3.2x1.5mm | Y1 |
| 1 | 4.7n | Capacitor_SMD:C_0603_1608Metric | C39 |
| 1 | 47nH | Inductor_SMD:L_0603_1608Metric | L2 |
| 1 | 500m | Resistor_SMD:R_0603_1608Metric | R27 |
| 1 | 560 | Resistor_SMD:R_0603_1608Metric | R23 |
| 1 | 6u8 | Inductor_SMD:L_1210_3225Metric | L1 |
| 1 | ACT45B-510-2P-TL003 | SamacSys_Parts:ACT45B1012PTL003 | FL1 |
| 1 | ATA6561-GAQW-N | SamacSys_Parts:SOIC127P600X175-8N | IC2 |
| 1 | BAT54J | Diode_SMD:D_SOD-323F | D27 |
| 1 | BAV199 | Package_TO_SOT_SMD:TSOT-23 | D10 |
| 1 | BC847 | Package_TO_SOT_SMD:SOT-23 | Q4 |
| 1 | CDSOT23-T24CAN | Package_TO_SOT_SMD:TSOT-23 | D9 |
| 1 | Conn_01x05_Socket | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J1 |
| 1 | Conn_Coaxial_Small | Connector_Coaxial:U.FL_Hirose_U.FL-R-SMT-1_Vertical | J3 |
| 1 | FXOS8700CQR1 | lib_local:IC_FXOS8700CQR1 | U5 |
| 1 | INA186A4IDCKR | lib_local:SOT65P210X110-6N | U3 |
| 1 | L76L-M33 | lib_local:XCVR_L76L-M33 | U4 |
| 1 | LSM303AGR | lib_local:PQFN50P200X200X100-12N | U6 |
| 1 | LT8606IDC#TRPBF | SamacSys_Parts:SON45P200X200X80-9N-D | IC1 |
| 1 | MCP1700x-330xxMB | Package_TO_SOT_SMD:SOT-89-3 | U2 |
| 1 | MCP79410T-I_MS | SamacSys_Parts:SOP65P490X110-8N | IC8 |
| 1 | MS621FE-FL11E | lib_local:BAT_MS621FE-FL11E | BT1 |
| 1 | PMEG6030EP | Diode_SMD:D_SOD-128 | D7 |
| 1 | PTC 100mA | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | SMBJ33CA | Diode_SMD:D_SMB | D5 |
| 1 | STM32L432KCUx | Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mm_ThermalVias | U1 |
| 1 | STN061033BL15-EA | lib_local:DFN0603 | D1 |
| 1 | TC2030 | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J2 |
It measures 76 × 29.9 mm and has 4 copper layers, 1.59 mm thick.
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.
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.
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).

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



william-richards1/Pulse
High current driver board for overdriving consumer LEDs.

oomlout/oomlout_oomp_project_bot_v_2


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

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.