Skip to the content
2 layers50 × 75 mmLocalTrack, the printed circuit board in 3D

OSHW GPS Tracker (Logger)

Size
50 × 75 mm
Copper layers
2
Thickness
0.89 mm
Parts
63
Nets
65
Pads
239
Tracks, vias
383, 61
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
26 Aug 2018
Updated
11 May 2024

Overview

LocalTrack is an open-source printed circuit board by krakrukra, from the krakrukra/LocalTrack repository on GitHub, published under the MIT licence. It is a 2-layer board of 50 × 75 mm with 63 parts on 65 nets, routed with 383 tracks and 61 vias.

It is built around the STM32F072C8T6, W25N01GVZEIG and ADXL345BCCZ, with the IP4220CZ6, MCP1700-3302E/TT and SI2302 among its other parts. Its parts include 20 resistors, 15 capacitors, 8 ICs, 6 transistors and 3 diodes. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

8

README

README.md

LocalTrack

Русская версия документации доступна здесь

This device is an open source (both firmware and board level design) GPS data logger.
You mount it with built-in magnets on some vehicle, flip the power switch and the location
data is saved into internal flash storage. After some tracks were recorded, you can
retrieve the device again and extract GPX track files via USB. You can then pass these
files into mapping/analysis software of your choice, for example viking, to get an
easy to work with representation of recorded location data.

outside
inside

This device is intended for use in applications where real-time tracking is not required,
but other advantages of network-disconnected design are desirable, such as:

  1. No need to pay your cellular service provider.

  2. Local file storage, so you don't have to trust your data to some proprietary
    manufacturer's software or depend on a particular service being provided.

  3. Logger is harder to detect; if discovered, it is hard to trace where it came from,
    as it does not have information like IMEI, IMSI, payment history, etc. linked to it.

  4. Less power consumption and longer battery life.

CHECK THE WIKI FOR HOW-TO-USE INFORMATION


hardware

Project is designed using KiCad 6.0.11
Check KiCad pcb file for PCB manufacturing info
Check KiCad sch file + BOM.txt for component info

Uses integrated full-speed (12Mbit/s) USB2.0 peripheral, with
96MiB of available on-board flash memory for data storage;
measured speeds for MSD access: read 800-850 KiB/s, write 700-750 KiB/s

Fully assembled unit has dimensions of 85x55x32mm and weight of 175 grams.
Hardware programmer device used in this project is ST-Link V2

SIM28 may come in several variants which have different USART speeds by default.
Firmare here expects 9600 baudrate version. If you have different module version
you will need to modify USART1 configuration in main.c and peripherals.c files.

Device has a 3000mAh li-po battery and can function with battery voltage above 3V.
If lower voltage is detected, device enters low battery mode and waits until
the battery is recharged. Current consumption while tracking is around 40mA;
while waiting in sleepmode (eg. due to lack of movement) it is less than 1mA.
This results in about 70 hours of active tracking before battery is depleted.
Battery can be charged via USB with up to 1A of current, so make sure to pick
capable charging adapter and USB cable. Also, keep in mind that you will need
a cable with extra long 8mm micro USB plug, instead of the usual 5.4mm plug.

firmware

Programming language used = C
Flashing software used = openocd 0.12.0
IDE used = emacs text editor + Makefile

The firmware was developed on debian 11.3 system, using gcc-arm-none-eabi
toolchain (compiler, linker, binutils) and it does use gcc specific extentions.
it was successfully compiled and tested with arm-none-eabi-gcc version 12.2.1

Depends on libgcc.a, which is included in this repository. Linker script,
startup code and openocd configuration files are included here as well.

For easy in-field updates, you can use the DFU bootloader. There is a dfu
firmware image available in /firmware/firmware_RRNNN.dfu file. The name
format is this: RR stands for board revision (13 = rev 1.3) , NNN stands
for firmware version. For example, firmware_13001.dfu means board
revision 1.3, firmware version 1

To automate firmware build process you can use make utility. If you
open terminal in /firmware/ directory, you could run these commands:

make
make upload
make dfu
make clean

"make" will compile source code and create several files, among them
is firmware.bin which contains firmware to flash. "make upload" will
flash this file via St-Link V2 programmer. Make sure to connect the
programmer to the board properly, before you plug it into PC and run the
command. "make dfu" will create a DFU firmware image from firmware.bin
which can be used later by DFU flashing software. "make clean" will
delete all the compiled or temporary files created by previous commands.

directories info

/firmware/ ------------- contains makefile, linker script, source files; this is a build directory

/firmware/cmsis/ ------- header files from CMSIS compliant STM32F0xx standard peripherals library
/firmware/stdlib/ ---------- standard statically linked libraries (libgcc.a)
/firmware/openocd/ ------- standard configuration files for openocd 0.12.0
/firmware/fatfs/ ---------- chan fatfs filesystem module + W25N01GVZEIG disk driver
/firmware/usb/ ------------ USB system and MSD class device implementation
/firmware/main/ ------- main application files, interrupt vector table, IRQ handlers and startup code
/firmware/dfuse-pack.py ------- python script to create .dfu firmware images
/firmware/linkScript.ld ------- custom linker script for the GNU linker (ld)
/firmware/Makefile ------- file used by GNU make utility for build automation
/firmware/firmware_13NNN.dfu ------ pre-compiled firmware image in DfuSe format (STM32)

/hardware/ ------------------- contains KiCad project, schematic, PCB files

/hardware/LocalTrack.symbols/ ---- project specific symbol library
/hardware/LocalTrack.pretty/ ----- project specific footprint library
/hardware/gerbers/ ----------- gerber+excellon fabrication output files
/hardware/BOM.txt --------- list of parts and accessories needed for DIY assembly

/mechanical/ ------------------- contains device's mechanical information

/mechanical/drawings/ ---- mechanical drawings for some of the parts
/mechanical/KH-F20.FCStd --- freecad model for the plastic enclosure

/extra/ ------------------- contains pictures, documentation, etc.

/extra/photos/ ---------------- photos of the device
/extra/wiki/ ------------------ github wiki pages

contact info

if you have a problem / question / feature request, here are your options for contacting me:
send me an email to krakrukra@tutanota.com
create a new github issue (check closed issues first)
also, you can check out my youtube channel

For extra security, you could use my PGP public key saved in /extra/pubkey.asc.

Parts

63
QtyValueFootprintReferences
9100nFCapacitor_SMD:C_0603_1608MetricC2, C5, C6, C8, C9, C12, C14, C16, C19
6100kResistor_SMD:R_0603_1608MetricR15, R16, R17, R18, R19, R20
61kResistor_SMD:R_0603_1608MetricR1, R3, R6, R10, R11, R13
510kResistor_SMD:R_0603_1608MetricR2, R4, R5, R12, R14
410uFCapacitor_SMD:C_0805_2012MetricC1, C7, C10, C11
4SI2302Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q5
333Resistor_SMD:R_0603_1608MetricR7, R8, R9
218pFCapacitor_SMD:C_0603_1608MetricC3, C4
2MCP73831T-2DCIPackage_TO_SOT_SMD:SOT-23-5U4, U5
2SI2301Package_TO_SOT_SMD:SOT-23Q4, Q6
11575R-ALocalTrack:1575R-AAE2
13000mAhConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalBT1
18MHzCrystal:Crystal_SMD_5032-2Pin_5.0x3.2mmY1
1ADXL345BCCZPackage_LGA:LGA-14_3x5mm_P0.8mm_LayoutBorder1x6yU1
1BLUELED_SMD:LED_0603_1608MetricD3
1GREENLED_SMD:LED_0603_1608MetricD1
1IP4220CZ6Package_SO:TSOP-6_1.65x3.05mm_P0.95mmU2
1KCD11-2PLocalTrack:KCD1-11SW1
1MCP1700-3302E/TTPackage_TO_SOT_SMD:SOT-23U7
1REDLED_SMD:LED_0603_1608MetricD2
1SIM28LocalTrack:SIM28U9
1ST-LINK_V2Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalCON1
1STM32F072C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU3
1USB_B_MicroLocalTrack:MicroUSB_BJ1
1W25N01GVZEIGLocalTrack:WSON-8_8x6mmU6
1test pinsLocalTrack:TestPinsTP1

The 59 most common of 63 parts.

Similar boards

  • 2 layers15 × 31 mmPocketAdmin, the printed circuit board in 3D

    PocketAdmin

    krakrukra/PocketAdmin

    oshw keystroke injection device ( badusb )

    25 parts241MIT
  • 2 layers98.5 × 59.8 mmNeuron, the printed circuit board in 3D

    Neuron

    giant-axon/lu.i-neuron-pcb

    Lu.i is an electronic neuron circuit mimicking and illustrating the basic dynamics of real, biological neurons. The printed circuit board (PCB) features a configurable, fully analog implementation of the leaky…

    90 parts73CERN-OHL-S-2.0
  • 2 layers63.2 × 23.8 mmWand, the printed circuit board in 3D

    Wand

    ayuusweetfish/Malletwand

    A pendulum as a hands-on musical interface for all · NIME 2024 Short Paper

    68 parts1CERN-OHL-S-2.0
  • 2 layers165 × 110 mmClean room, the printed circuit board in 3D

    Clean room

    trieuhuyduc/Clean_room_slave

    ESP32-based slave controller board for cleanroom equipment — RS485/Modbus, isolated I/O, 220V mains control (KiCad)

    213 parts1
  • 4 layers140 × 90 mmCore evb, the printed circuit board in 3D

    Core evb

    itead/ITEADHW_Core-EVB

    1.4

    219 parts
  • 2 layers40 × 80 mmSenseBeTx rev1, the printed circuit board in 3D

    SenseBeTx rev1

    Appiko/sense_snap_hw

    This repository contains all the KiCad based PCB design and related documentation for all the PCBs developed at Appiko.

    38 parts2
  • 2 layers37 × 106 mmBut1, the printed circuit board in 3D

    But1

    roman-khvatov/RoboWay

    Кружок робототехники RoboWay

    24 parts1MIT
  • 2 layers43 × 43 mmTurboCAN, the printed circuit board in 3D

    TurboCAN

    henrikssn/TurboCAN

    This is the official repository for the TurboCAN controller board, designed specifically for the Voron AfterBurner toolhead but can also be used on similar toolheads using NEMA17 steppers.

    88 parts82

Questions

How big is the LocalTrack PCB?

It measures 50 × 75 mm and has 2 copper layers, 0.89 mm thick.

What parts does the LocalTrack use?

63 parts, built around the STM32F072C8T6, W25N01GVZEIG, ADXL345BCCZ and IP4220CZ6. 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 LocalTrack KiCad files?

From the krakrukra/LocalTrack repository on GitHub, at the commit this page was made from: the board is hardware/LocalTrack.kicad_pcb and its schematic hardware/LocalTrack.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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