Skip to the content
4 layers105 × 95 mmCarrier, the printed circuit board in 3D

A portable ADS-B / FLARM receiver

Size
105 × 95 mm
Copper layers
4
Thickness
1.59 mm
Parts
220
Nets
157
Pads
708
Tracks, vias
1,191, 234
Pours
100
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Sep 2026
Updated
31 Oct 2026

Overview

Carrier is an open-source printed circuit board by mp911de, from the mp911de/airgrep repository on GitHub. It is a 4-layer board of 105 × 95 mm with 220 parts on 157 nets, routed with 1,191 tracks and 234 vias.

It is built around the MAX-M10S-00B, BMP580 and FUSB303BTMX, with the BQ25798RQMR, CL21B106KAYQNNE and 1N4148WS among its other parts. Its parts include 69 resistors, 59 capacitors, 13 transistors, 10 diodes and 9 connectors.

Main components

12

README

README.md

airgrep

A portable ADS-B / FLARM receiver. Started as carrier board for a removable ESP32-S3 touch display and ADSBee 1090U receiver, with a soldered MAX-M10S GNSS receiver. It adds a single-cell Li-ion charger, a 5 V boost rail, a fuel gauge, a barometer and a buzzer.

PCBA Render

Current state

  • Schematic (7 sheets) and board (105 x 95 mm, 4 layers, all SMD parts on top) are implemented. The active TI PCB and schematics define the hardware; tools/check.sh reports the ERC, DRC and parity state.
  • Order status and open work are in docs/open-issues.md.

Where things are

PathContent
docs/requirements.mdWhat the device must do. Read first.
docs/checklist-draft.mdDraft hardware review checks, investigation guidance and trial evaluation
docs/specs.mdTechnical data: radio, charging, battery, power budget, runtimes and validation limits
docs/decisions.mdReasons behind the design decisions
docs/mechanical.mdBoard outline, mounting holes, module placement, battery, antennas, enclosure
docs/interfaces.mdPin maps of the modules and the carrier connectors
docs/i2c-bus-requirements.mdI2C speed, bandwidth, capacitance and pull-up limits
docs/firmware.mdWhat the display firmware must do: operating modes, charger host control, charger-mode display, sleep
docs/bom-hand-sourced.mdParts to buy and fit by hand, with order links and order status
docs/open-issues.mdOpen work only
issues/Local issue tracker, one markdown file per issue
specs/power_params.json, tools/power_budget.pyPower model inputs and the script that generates the power, runtime and charging tables in docs/specs.md
hardware/carrier-ti-charger/Active KiCad 10 project carrier.kicad_pro, BQ25798 charger. lib/ holds symbols, footprints and 3D models, carrier-schematic.pdf is the schematic print, jlcpcb/ holds the production exports.
hardware/carrier-max-charger/Frozen MAX77757 reference, no further development. Legacy tools and results remain available with --project NAME.
hardware/insulator/KiCad project of the insulator board between carrier and battery, generated by tools/make_insulator.py
hardware/sim/Verification by simulation, see hardware/sim/README.md: charge cut-off (run_thermal.py), converters and undervoltage latch (run_power.py), board heat (run_heat.py), emissions and receiver desense (run_emi.py), enclosure vents (vent_model.py). Active results use the ti suffix or heat/ti/; MAX results are historical.
mechanical/Placement drawing (placement.png, placement.svg, generator draw_placement.py) and extracted module geometry (JSON)
datasheets/Data sheets of the parts in use, see datasheets/README.md
sources/Manufacturer CAD: display KiCad project (display.zip), GNSS and gauge Eagle files, ADSBee reference image and schematic text
tools/Scripts: design check (check.sh), board queries (board.py), net-coloured copper maps (netmap.py), power budget, CPL correction for JLCPCB (fix_cpl.py), insulator generator

Tools

  • KiCad 10.0.6, including kicad-cli and its bundled Python for the scripts that use pcbnew. tools/kpy runs that Python.
  • Python 3.14; the simulation packages are listed in hardware/sim/requirements.txt
  • ngspice 47 (Homebrew) for hardware/sim/
  • python3 tools/report-holes-vias.py path/to/board.kicad_pcb reports via copper/drill sizes, minimum nominal annular rings, plated and non-plated footprint drills, slots, counts and nets in mil. Edge.Cuts cutouts are excluded.
  • python3 tools/report-traces.py path/to/board.kicad_pcb reports straight and arc track widths by layer, with counts and nets in mil. Both reports are read-only, sorted by size, and automatically use tools/kpy when needed.

Parts

220
QtyValueFootprintReferences
20100n 16VMark:C_0402_1005Metric_NoSilkC5, C12, C16, C27, C28, C29, C30, C31, C37, C38, C39, C40, C43, C44, C46, C50 +4
19100k 1%Resistor_SMD:R_0603_1608MetricR12, R13, R27, R36, R41, R48, R49, R52, R53, R54, R55, R58, R62, R64, R69, R83 +3
1122u 10V X7RCapacitor_SMD:C_0805_2012MetricC9, C10, C13, C14, C18, C19, C20, C33, C47, C51, C52
810u 25V X7RCapacitor_SMD:C_0805_2012MetricC6, C11, C24, C25, C26, C41, C42, C62
81MResistor_SMD:R_0603_1608MetricR10, R42, R44, R45, R46, R47, R67, R68
72N7002Package_TO_SOT_SMD:SOT-23Q8, Q9, Q10, Q11, Q12, Q15, Q16
51N4148WSDiode_SMD:D_SOD-323D6, D8, D9, D11, D12
51kResistor_SMD:R_0603_1608MetricR28, R29, R30, R32, R43
5AO3401APackage_TO_SOT_SMD:SOT-23Q2, Q3, Q4, Q7, Q14
410nCapacitor_SMD:C_0603_1608MetricC21, C23, C35, C59
41uCapacitor_SMD:C_0603_1608MetricC63, C64, C65, C66
4MountingHole_2.7mm_M2.5_Pad_ViaMountingHole:MountingHole_2.7mm_M2.5_Pad_ViaMH1, MH2, MH3, MH4
31.5k 1%Mark:R_0402_1005Metric_NoSilkR74, R76, R79
31.8kResistor_SMD:R_0603_1608MetricR70, R71, R72
32.2n 50VCapacitor_SMD:C_0603_1608MetricC54, C55, C56
34.7u 16V X5RCapacitor_SMD:C_0603_1608MetricC1, C15, C48
3470RResistor_SMD:R_0603_1608MetricR23, R26, R31
347n 50VCapacitor_SMD:C_0603_1608MetricC8, C17, C45
3768k 1%Mark:R_0402_1005Metric_NoSilkR60, R80, R81
3FiducialMark:Fiducial_1mm_Mask2mmFID1, FID2, FID3
3K3-1280S-F1Mark:SW-SMD_K3-1280S-F1SW1, SW2, SW3
3MountingHole_2.7mm_M2.5MountingHole:MountingHole_2.7mm_M2.5MH12, MH13, MH14
3MountingHole_6.5mm_PadMountingHole:MountingHole_6.5mm_PadMH6ANTGNSS, MH7ADS1090, MH8ADS980
3TPS259474LRPWRMark:VQFN-10_L2.0-W2.0-P0.45-HR_LM73100U11, U12, U14
21.5kResistor_SMD:R_0603_1608MetricR19, R20
2150RResistor_SMD:R_0603_1608MetricR61, R86
22.2uH FC-ALX4030D-2R2MTMark:IND-SMD_L4.2-W4.2_FC-ALX4030DL1, L2
24.7k 1%Mark:R_0402_1005Metric_NoSilkR56, R77
247k 1%Resistor_SMD:R_0603_1608MetricR33, R63
25.1kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR90, R91
25.6k 1%Resistor_SMD:R_0603_1608MetricR73, R75
2H5VLD3B ESD 5VDiode_SMD:D_SOD-323D4, D5
1+5VMark:TestPoint_Pad_D1.5mmTP7
1+VBATMark:TestPoint_Pad_D1.5mmTP1
1+VSYSMark:TestPoint_Pad_D1.5mmTP2
1+VUSBMark:TestPoint_Pad_D1.5mmTP5
11.24k 0.1%Mark:R_0402_1005Metric_NoSilkR78
110 Ω 1% 0805Mark:R_0805_2012Metric_NoSilkR82
1100pCapacitor_SMD:C_0603_1608MetricC22
110kResistor_SMD:R_0603_1608MetricR40
110kMark:R_0402_1005Metric_NoSilkR87
1120k 1%Resistor_SMD:R_0603_1608MetricR57
1160kResistor_SMD:R_0603_1608MetricR17
11n DNP snubberCapacitor_SMD:C_0603_1608MetricC36
12.2R DNP snubberResistor_SMD:R_0603_1608MetricR39
1220kResistor_SMD:R_0603_1608MetricR16
1240k 1%Resistor_SMD:R_0603_1608MetricR14
127nHInductor_SMD:L_0402_1005MetricL3
147p C0GMark:C_0402_1005Metric_NoSilkC58
1560RResistor_SMD:R_0603_1608MetricR84
15A 0466005.NRHFFuse:Fuse_1206_3216MetricF1
16.8kResistor_SMD:R_0603_1608MetricR18
175k 1%Resistor_SMD:R_0603_1608MetricR15
182k 1%Resistor_SMD:R_0603_1608MetricR59
1ACTIVE_ANTMark:SW-SMD_SHOUHAN_2.54-1P_TPGTSW5
1BATMark:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical_R10J11
1BLM31KN471SZ1LInductor_SMD:L_1206_3216MetricFB1
1BMP580Mark:LGA-10_L2.0-W2.0-P0.50-TL_BMP581U10
1BQ25798RQMRPackage_DFN_QFN:Texas_RQM0029A_VQFN-29_4x4mm_P0.4mmU4
1CHG_INT_NMark:TestPoint_Pad_D1.5mmTP8
1CR2032Mark:BAT-SMD_BS-CR2032-8BT1
1CSD17575Q3Mark:VSON-8_3.3x3.3mm_CSD17575Q3Q13
1DISPLAY_CTRLConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10
1FUSB303BTMXMark:X2QFN-12_L1.6-W1.6-P0.40-TLU15
1GNDMark:TestPoint_Pad_D1.5mmTP6
1GNSS_ANTMark:U.FL_Hirose_U.FL-R-SMT-1_VerticalJ7
1GNSS_LISTENJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP4
1JP_PWR_ADSConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP3
1JP_PWR_ESPConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1J_ADS_GNSS ADSBee J4Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ5
1J_ADS_MAIN ADSBee J5Connector_PinSocket_2.54mm:PinSocket_1x13_P2.54mm_VerticalJ6
1J_ESP_A supportConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ4
1J_ESP_B power/UARTConnector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ1
1J_ESP_C I2CConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ9
1J_ESP_D supportConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ8
1KT-0603W whiteLED_SMD:LED_0603_1608MetricD10
1L-115WEGW red/green CCLED_THT:LED_D3.0mm-3D2
1LED 3mm greenMark:LED_D3.0mmD3
1LED_ENJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP2
1MAX-M10S-00BMark:ublox_MAX-M10SU16

The 200 most common of 220 parts.

More from mp911de/airgrep

1
  • 4 layers105 × 95 mmCarrier, the printed circuit board in 3D

    Carrier

    mp911de/airgrep

    A portable ADS-B / FLARM receiver

    143 parts

Similar boards

  • 6 layers153.3 × 53 mmSCAN, the printed circuit board in 3D

    SCAN

    jjsprandel/SCAN_PCB

    Welcome to the SCAN repository! Below, you will find all the necessary information, from hardware design to software documentation.

    186 parts1
  • 4 layers36 × 36 mmWeek6 CH592D SHT40 Pro Verification, the printed circuit board in 3D

    Week6 CH592D SHT40 Pro Verification

    421890164au-cell/temperature-humidity-sensor-pro

    CH592D and SHT40 based low-power BLE temperature and humidity sensor PCB project

    25 parts
  • 6 layers90 × 45 mmHw tele stern, the printed circuit board in 3D

    Hw tele stern

    shorlee/TeleSTERN

    The TeleSTERN Project is an Open Source Rocketry Flight Computer based on the TeleMega by Altus Metrum.

    303 parts3GPL-3.0
  • 4 layers60 × 31 mmGarageDoor pro, the printed circuit board in 3D

    GarageDoor pro

    nikolaus018/garageDoor-pro

    ESP32-C3 + GPS board that opens the garage door when you leave and arrive: firmware, KiCad PCB and perfboard build

    46 parts1MIT
  • 4 layers76 × 54 mmPixelblaze battery backpack, the printed circuit board in 3D

    Pixelblaze battery backpack

    SK-Electronics-Consulting/electronics-widgets

    Small, Custom Tools for Electronics

    112 parts1
  • 6 layers121 × 83 mmPS2 79004 Rev 0 4, the printed circuit board in 3D

    PS2 79004 Rev 0 4

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    770 parts207MIT
  • 2 layers96 × 74.4 mmMonolith, the printed circuit board in 3D

    Monolith

    luftaquila/monolith

    DIY wireless real-time datalogging platform for Student Formula and Baja.

    138 parts45

Questions

How big is the Carrier PCB?

It measures 105 × 95 mm and has 4 copper layers, 1.59 mm thick.

What parts does the Carrier use?

220 parts, built around the MAX-M10S-00B, BMP580, FUSB303BTMX and BQ25798RQMR. 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 Carrier KiCad files?

From the mp911de/airgrep repository on GitHub, at the commit this page was made from: the board is hardware/carrier-ti-charger/carrier.kicad_pcb and its schematic hardware/carrier-max-charger/battery_control.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Carrier design in my own project?

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