Skip to the content
4 layers40 × 60 mmTMDT1UC1, the printed circuit board in 3D

Tagged ranging and coordinate position system for FRC events. Using UWB ranging with anchors and tags to provide realtime positioning of robots

Size
40 × 60 mm
Copper layers
4
Thickness
0.19 mm
Parts
35
Nets
65
Pads
199
Tracks, vias
266, 49
Pours
9
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Feb 2026
Updated
4 Mar 2026

Overview

TMDT1UC1 is an open-source printed circuit board by GrimGT, from the GrimGT/Meridian repository on GitHub. It is a 4-layer board of 40 × 60 mm with 35 parts on 65 nets, routed with 266 tracks and 49 vias.

It is built around the DWM3000, W25Q128JVSIQ and ADXL343BCC, with the CR2032-BS-6-1 among its other parts. Its parts include 17 capacitors, 6 resistors, 4 ICs, 1 connector and 1 inductor. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

4

README

README.md

ArenaTrace

UWB-based arena tracking system. Tags worn by players communicate with fixed anchors over Ultra-Wideband radio. Anchor positions are collected by a server and surfaced to a frontend.

Architecture

text
firmware/tag      — nRF52833 UWB tag (worn by players)
firmware/anchor   — nRF52833 UWB anchor (fixed positions)
server            — Native host server (collects anchor data)
common            — Shared protocol types (no_std, used by all)
xtask             — Build orchestrator (cargo xtask)

Prerequisites

Rust toolchain

Install Rust via rustup:

sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Add the embedded ARM target:

sh
rustup target add thumbv7em-none-eabihf

Flashing tools (optional, for deploying to hardware)

sh
cargo install probe-rs-tools

Building

All projects are built via cargo xtask from the workspace root. No Make, no external build tools required.

sh
# Build everything
cargo xtask build

# Build firmware only (tag + anchor)
cargo xtask build-firmware

# Build server only
cargo xtask build-server

Individual projects can also be built directly from their directories:

sh
cd firmware/tag && cargo build
cd firmware/anchor && cargo build
cd server && cargo build

Project structure

text
ArenaTrace/
├── Cargo.toml              # Workspace root — shared deps and profiles
├── .cargo/config.toml      # ARM linker flags, xtask alias
├── common/                 # Shared no_std protocol types
├── firmware/
│   ├── tag/                # Tag firmware (nRF52833)
│   │   ├── memory.x        # nRF52833 memory map
│   │   └── .cargo/         # ARM target override
│   └── anchor/             # Anchor firmware (nRF52833)
│       ├── memory.x        # nRF52833 memory map
│       └── .cargo/         # ARM target override
├── server/                 # Host server
└── xtask/                  # Build orchestrator

Versioning

Version is defined once in the workspace Cargo.toml and inherited by all crates. To update the version, change it in one place:

toml
# Cargo.toml
[workspace.package]
version = "0.2.0"

common::version() exposes it at runtime for all projects.

Parts

35
QtyValueFootprintReferences
10100nCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C8, C10, C16, C28, C29
410uCapacitor_SMD:C_0603_1608MetricC6, C7, C13, C14
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
310kResistor_SMD:R_0402_1005MetricR1, R3, R6
2100kResistor_SMD:R_0402_1005MetricR2, R4
1100uCapacitor_SMD:C_0603_1608MetricC15
110nCapacitor_SMD:C_0402_1005MetricC12
11kResistor_SMD:R_0402_1005MetricR5
147uCapacitor_SMD:C_0603_1608MetricC9
14u7Inductor_SMD:L_1210_3225MetricL1
1ADXL343Package_LGA:LGA-14_3x5mm_P0.8mm_LayoutBorder1x6yU5
1CR2032-BS-6-1meridian:BAT_CR2032-BS-6-1BT1
1DWM3000RF_Module:DWM1000DWM1
1STM32U073CBTxPackage_QFP:LQFP-48_7x7mm_P0.5mmU1
1TC2050Connector:Tag-Connect_TC2050-IDC-NL_2x05_P1.27mm_VerticalJ1
1TPS61222DCK-FIXEDPackage_TO_SOT_SMD:Texas_R-PDSO-G6U4
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU2

Similar boards

  • 2 layers50 × 56 mmOpentag, the printed circuit board in 3D

    Opentag

    open-tags/opentag

    Open-source UWB Device

    40 parts25MIT
  • 8 layers50 × 50 mmINT R1.0.1, the printed circuit board in 3D

    INT R1.0.1

    manyetox/Autonomous-Photonics-Carrier

    Source-available modular mobile carrier for autonomous photonics experiments using ESP32 control, optical flow, IMU sensing and magnetic wheel encoding.

    182 parts1
  • 4 layers71 × 64 mmUWB, the printed circuit board in 3D

    UWB

    victorstoica114/UWB_Module_ESP_IDF

    ESP-IDF 6.0.2 firmware for the custom UWB Module V1.0 Rev.B, based on an ESP32-S3-WROOM-1-N16R8. The same application image runs on every module; persistent identity and runtime configuration select the role and active…

    254 parts1
  • 4 layers45 × 49 mmSwarm drone, the printed circuit board in 3D

    Swarm drone

    aniranaway/Drone_Swarm

    A fully custom, low-level embedded hardware and firmware platform designed for autonomous multi drone swarms. The system integrates custom STM32-based flight controller PCBs, coreless DC motor drive arrays for a micro…

    108 parts
  • 4 layers70 × 70 mm449pcb v1, the printed circuit board in 3D

    449pcb v1

    asinghani/drive-by-wireless

    F22 Distributed Embedded Final Project: UWB Drive-by-Wireless

    56 parts
  • 4 layers20.3 × 49.5 mmUWB RTLS Node PCB, the printed circuit board in 3D

    UWB RTLS Node PCB

    CaramelFur/UWB-RTLS-Node-PCB

    CustomLibs has all custom libraries and 3D models used in this project. This is merged with GeneratedLibs, which contains all the libraries and 3D models from easyeda.

    2 parts
  • 4 layers36 × 65 mmUwb beacon, the printed circuit board in 3D

    Uwb beacon

    dan-stefanov/locatof-hw

    Open-source localization project based on UWB Time-of-Flight ranging

    111 partsCERN-OHL-P-2.0
  • 4 layers105.6 × 104.8 mmDrone PCB, the printed circuit board in 3D

    Drone PCB

    Eemac/droneSwarm

    Code and build log for a PCB quadcopter swarm.

    229 parts

Questions

How big is the TMDT1UC1 PCB?

It measures 40 × 60 mm and has 4 copper layers, 0.19 mm thick.

What parts does the TMDT1UC1 use?

35 parts, built around the DWM3000, W25Q128JVSIQ, ADXL343BCC and CR2032-BS-6-1. 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 TMDT1UC1 KiCad files?

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

Can I use the TMDT1UC1 design in my own project?

Its repository states no licence, so its author keeps all rights: ask GrimGT before reusing the design.