

System That Points At The Shark
- Size
- 121.9 × 87 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 40
- Pads
- 110
- Tracks, vias
- 155, 7
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 18 Apr 2019
- Updated
- 19 Aug 2025
Overview
St pat is an open-source printed circuit board by waterloo-rocketry, from the waterloo-rocketry/ST_PATS repository on GitHub. It is a 2-layer board of 121.9 × 87 mm with 19 parts on 40 nets, routed with 155 tracks and 7 vias.
Its parts include 5 ICs, 5 switches, 2 resistors, 2 diodes and 1 connector.
README
README.mdST PATS
Stpats is a system that tracks the location of the rocket and tells us where and which direction to go to find it.
There are two modes of operation: serial and radio. In serial mode, GPS coordinate is received from USB serial; in radio mode, GPS coordinate is received from the radio module.
Calibration
The on-board compass needs to be calibrated when a firmware is flashed or when using stpats in a new environment. The compass will not work correctly without calibration. To enter calibration mode, press the left button. The min/max value of each axis should appear on the top left of the screen. Rotate the whole device in every direction so the numbers stabilize, the press the left button again to save the calibration.
Radio Telemetry
The radio and serial mode can be toggled using the right button. At the time of writing, the live telemetry is not done yet, so I used an Arduino to send fake coordinates at 57600 baud to test serial reading and parsing. In theory, plugging in configured live telemetry breakout should just work. In reality, who knows.
Serial Telemetry
As an alternative to radio telemetry, USB serial can also be used to send GPS
coordinate to stpats. The serial mode can be switched to using the right
button. The GPS message has the format of [0-9]+.[0-9]*[NSEWM], for example:
12.34N56.78W90M means 12.34 degrees north, 56.78 degrees west, 90m high. The
altitude information is not used in the calculations so it’s optional.
aprs2stpats.py
utils/aprs2stpats.py can be used to send APRS coordinates to stpats. To use,
install aprspy and bitstring using pip, then follow the steps in
Receiving APRS Packet
to setup and run direwolf TNC as a KISS server.
usage: aprs2stpats.py [-h] [-H HOST] [-p PORT] [-c CALLSIGN] [-o OUTPUT] [--debug]
The --host and --port options specifies the KISS TNC server to connect to. By default, they are 127.0.0.1:8001, which connects to a direwolf instance running on localhost.
The --callsign option filters the message by sender’s callsign, in case there are multiple APRS beacons on the same frequency. Note the callsign includes ssid, for example, VE7OIR-1 instead of just VE7OIR. By default, it forwards all GPS messages.
The --output option specified the output. By default it is stdout. To send the output to serial, use --output \.\COM1 (Windows) or --output /dev/ttyACM0 (Linux), change COM1 or ACM0 to the actual serial port stpats is on.
The --debug options prints additional info to stderr.
Persistent Location
Press the middle button in either mode to save the current tracking location in flash so a reset doesn’t lose it. Most useful when one wants to unplug stpats from computer in serial mode, pressing the middle button before disconnecting allows one to move around without worrying losing track in case of accidental reset.
Note: similar to calibration data, flashing a firmware wipes the flash and so the saved data.
Parts
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | BTN | Button_Switch_THT:SW_PUSH_6mm | SW3, SW4, SW5 |
| 1 | 100 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R3 |
| 1 | 160 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2 |
| 1 | BATTERY | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J4 |
| 1 | BTN_RST | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | COTS_GPS_RECEIVER | st_pat:Telemetry_Breakout | U5 |
| 1 | FEATHER_M0_BASIC_PROTO | FEATHER_M0_BASIC_PROTO:FEATHER_M0_BASIC_PROTO | U2 |
| 1 | GEN_BLU | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D3 |
| 1 | GPS_Breakout_746 | st_pat:GPS_Breakout_746 | U1 |
| 1 | LIS2MDL_ADAFRUIT | st_pat:LIS3MDL_ADAFRUIT | U3 |
| 1 | LOGO | Team_Logo:Logo_SilkScreen_10mm | G*** |
| 1 | PWR_RED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D2 |
| 1 | SW_PWR | st_pat:SW_Rocker_A22K1H-EA | SW1 |
| 1 | Sharp_Display_4694 | st_pat:Sharp_Display | U4 |
The 16 most common of 19 parts.
Similar boards
- 2 layers43.9 × 27.7 mm

- 2 layers50 × 60 mm

Debate Device
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
19 parts915 - 2 layers102.9 × 96.7 mm

ISA adapter
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
19 parts805 - 2 layers60 × 39 mm

- 2 layers70.1 × 43.2 mm

Iaq device
nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality
19 parts396 - 2 layers80 × 80 mm

- 2 layers25.4 × 25.4 mm

Ina169
Ardumower/ardumower
Develop an open source robotic lawn mower (HW+SW reference platform)
19 parts282 - 2 layers58.4 × 28.6 mm

New rele
zmaker/arduino_cookbook
gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube
19 parts269
Questions
How big is the St pat PCB?
It measures 121.9 × 87 mm and has 2 copper layers, 1.6 mm thick.
What parts does the St pat use?
19 parts. 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 St pat KiCad files?
From the waterloo-rocketry/ST_PATS repository on GitHub, at the commit this page was made from: the board is schematics/st_pat.kicad_pcb and its schematic schematics/st_pat.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the St pat design in my own project?
Its repository states no licence, so its author keeps all rights: ask waterloo-rocketry before reusing the design.