
Pico 2W Wattmeter Shield
WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

HAT and LPF Designs for the WsprryPi Organization
WsprryPico Synth Shield with GPS is an open-source printed circuit board by WsprryPi, from the WsprryPi/WsprryPi-PCB-Designs repository on GitHub, published under the MIT licence. It is a 2-layer board of 53.3 × 22.9 mm with 46 parts on 62 nets, routed with 243 tracks and 103 vias.
It is built around the ATGM336H-5N31, SI5351A-B-GTR and TPS22918DBV, with the TPS7A2033PDBVR-TP, FN18X104K500PBG and RC0603FR-071KL among its other parts. Its parts include 18 capacitors, 12 resistors, 5 ICs, 2 connectors and 2 inductors. It belongs with the radio and wireless and audio and music boards of this library.
A Raspberry Pi Pico 2 W shield with an ADL5904 RF power detector, ADS1115 ADC, and TPS7A2033 analog regulator. Open Pico 2W Wattmeter Shield.kicad_pro in KiCad 10. Project libraries use ${KIPRJMOD} paths.
The design is supplied as is, without warranty, under the repository's MIT license. It is an experimental system. Production use requires an operator who understands its limitations and requirements and verifies the assembled system's suitability. See the repository notice.
The PCB is a two-layer, nominally 1.6 mm FR4 board with circuit components on F.Cu and U10's two female socket strips on B.Cu, matching the Pico shield template. It contains 37 footprints: 34 automatic SMT components, J30, U10, and one front silkscreen logo. The components, including the R63/C61 pull-up supply filter, are placed and routed.
Assembled input match, accuracy, noise rejection, mechanical fit, and the soldering process are unqualified. ERC ignores single-use global labels, four-way junctions, simulation model issues, and footprint-filter mismatches; DRC has no ignored checks.
J30 → C30–C34 → RF_DET_IN → C40–C44 → RFIN/U40 → VRMS_RAW → R50/C50 → VRMS_FILTERED/U60 AIN0
| Section | Saved design |
|---|---|
| RF input | J30; terminating low-power meter, with external attenuation for amplifier outputs |
| Coupling | Two banks of five parallel 100 nF C0G capacitors, nominally 500 nF per bank |
| Shunt load | R30–R34: five parallel 412 Ω resistors, nominally 82.4 Ω, plus the detector input branch |
| Input matching | The shunt is within 0.12% of ADI's 82.5 Ω reference; assembled input impedance is unmeasured |
| Intended frequency range | 136 kHz–450 MHz, covering 2200 m through 70 cm; assembled-board coverage is unqualified |
| Nominal detector range | −30 to +15 dBm, approximately 1 µW–31.6 mW; connector range requires calibration |
| ADC filter | R50 = 470 Ω, C50 = 22 µF X5R; nominal cutoff 15.4 Hz |
There is no onboard attenuation pad or qualified high-power overload protection. The two capacitor banks, buses, launch, and detector impedance form a frequency-dependent RF network. See input range and measurement conditions. The printed current range is calculated for a nominal 50 Ω load, rather than a direct current measurement.
The analog section requires VBUS. U20 takes VBUS from Pico pin 40 and generates ANALOG_3V3 for U40, U60, and the I²C pullups. C20 and C21 are 2.2 µF, 25 V X7R capacitors at the regulator input and output. C46/C47 decouple the detector, and C60 decouples the ADC. The Pico's 3V3 output is not connected to the analog rail.
USB normally supplies VBUS. Powering the Pico solely through VSYS leaves the analog section unpowered. An external VBUS source must respect the Pico's USB power arrangement and avoid conflicting supplies. Measurements require a valid analog rail and settled detector/filter output.
VBUS follows the lower perimeter, and the analog rail reaches the detector from below and the ADC/control branch from the right. Neither supply trace crosses the RF capacitor-bank area. R63/C61 isolate the pull-up supply branch. A common regulator and ground serve the analog and I²C loads; noise immunity to Pico activity is unmeasured.
U60 uses AIN0 as a single-ended detector-voltage input. ADDR is grounded, giving I²C address 0x48. SDA uses GP4; SCL uses GP5 through the fitted R62 0 Ω jumper. R60/R61 are 4.7 kΩ pullups supplied through R63 = 47 Ω, with C61 = 1 µF X7R providing local bypass at their common supply node. This filter is present in both schematic and PCB. U40 and U60 receive ANALOG_3V3 directly with their own decoupling. Unused ADC channels and ALERT/RDY have no-connect flags.
R63/C61 has a nominal 3.4 kHz corner and approximately 65 mV supply drop with both pull-ups low, assuming ideal low output levels. It provides local storage and supply isolation for switching currents. Its effect on the assembled noise floor is unmeasured; nominal attenuation at 50/60 Hz is negligible.
R50/C50 passes DC and attenuates changing voltage. Its ideal one-pole attenuation is about 10.6 dB at 50 Hz and 12.1 dB at 60 Hz, with a 10.34 ms time constant and about 47.6 ms settling to 1%. Capacitor tolerance, bias, temperature, detector output impedance, and ADC loading affect these figures. It is not a mains notch filter, and there is no established system-level mains-rejection specification. C49 remains a separate 10 nF capacitor directly on VRMS.
The hardware provides one measurement channel. ADC range, conversion rate, timed averaging, and calibration coefficients are application settings; this repository does not establish a verified wattmeter firmware configuration.
Factory assembly comprises 34 components on F.Cu: C20–C21, C30–C34, C40–C50, C60–C61; R30–R34, R40, R50, R60–R63; U20, U40, U60. This is 20 capacitors, 11 resistors, and three ICs. J30, two female sockets, and the Pico module are fitted by hand. U10 represents the combined 40-pad socket interface; schematic J10/J11 are pinless purchasing descriptions. The front logo and manual parts are excluded from automatic SMT assembly.
The Shield purchasing BOM preset uses LCSC Part #. All 34 schematic and PCB SMT parts have matching manufacturer, MPN, and LCSC identifiers. R30–R34 specify Viking ARG02BTC4120 / C2683017 in local 0402 footprints. R63 specifies YAGEO RC0402FR-0747RL / C137973 in 0402; C61 specifies YAGEO CC0603KRX7R8BB105 / C106858 in 0603. Factory BOM and placement exports must contain the same 34 references and correct U20/U40/U60 pin-1 orientation. The schematic contains the complete part selections. The input-range silkscreen displays J30 through a reference variable and follows reannotation.
Seven selected through vias use 0.60 mm copper / 0.25 mm drill with filling/capping enabled, F-side untented, and B-side tented: five in U40's exposed ground pad and one each centered on R40 pad 1 and C48 pad 1. The unique drill size identifies this selective process. The 17 ordinary vias comprise five 0.50/0.20 mm, ten 0.60/0.30 mm, and two 0.80/0.40 mm vias. All 24 are through vias; the custom rules disallow blind, buried, and microvias. The ordinary ground-via drills beside C45/C47 have 0.15 mm nominal clearance from the adjacent component solder-pad openings.
The required fabrication process is selective nonconductive epoxy filling, planarization, and copper capping. Its availability for this exact two-layer order is not confirmed. Four separate 0.65 × 0.65 mm F.Paste windows cover 52.16% of U40's 1.8 × 1.8 mm ground land. Supplier process acceptance, stencil thickness, and reflow conditions are assembly requirements.
The manufacturing drawings identify their source PCB by SHA-256. Socket lead fit and mating height are unspecified. The PCB stackup's copper-finish field is None, and there are no dedicated board fiducials; finish and panel tooling belong in the order specification.
U10 is locked at (146.810, 90.750) mm, −90°, B.Cu, and its Raspberry Pi Pico 2W group is locked. Its 40 pad positions match the template. The notch spans x = 164.46–173.46 mm and y = 82.86–96.86 mm, with a copper/component keepout on both layers.
In Update PCB from Schematic, leave Re-link footprints to schematic symbols based on their reference designators and Override locks unchecked. Normal symbol-ID matching preserves the interface identity and placement. KiCad's update documentation describes these options.
The two socket models belong to U10's combined footprint and use project-local paths. The reusable footprint contains the same references. The socket geometry is a generic preview, without a selected manufacturer or qualified mating stack.
Local assets are in pico-wattmeter.pretty/, pico-wattmeter.kicad_sym, pico-wattmeter.kicad_blocks/, and pico-wattmeter.3dshapes/. See footprint sources and licenses and model sources and limits.
Select View > 3D Viewer in the PCB Editor. U40 uses the local CP-16-22 STEP model. U10 uses two local socket models. J30 uses the local illustrative Adafruit 1865 SMA model, pointing outward from the left board edge. Passives, U20, and U60 use installed KiCad models. All placed model references resolve in the checked KiCad installation.
The optional, unplaced Pico SMD footprint uses ${KIPRJMOD}/pico-2w-libs/Raspberrypi pico2 W.step. That separate reference collection has pin/pad, model-alignment, and provenance limitations. It is not the placed socket interface.
fabrication-toolkit-options.json stores export preferences. KiCad sources contain the part identifiers, connectivity, layout, and assembly exclusions. Local preferences, backups, plugin state, and generated export directories are ignored by Git.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 100nF | wsprrypico-synth-shield:C_0603_1608Metric | C43, C51, C52, C62, C65, C72, C73 |
| 4 | 1kΩ | wsprrypico-synth-shield:R_0603_1608Metric | R11, R32, R71, R73 |
| 3 | 100kΩ | wsprrypico-synth-shield:R_0603_1608Metric | R31, R63, R72 |
| 3 | 4.7kΩ | wsprrypico-synth-shield:R_0603_1608Metric | R51, R52, R62 |
| 2 | 100nF | wsprrypico-synth-shield:C_1206_3216Metric | C61, C64 |
| 2 | 10μF | wsprrypico-synth-shield:C_1206_3216Metric | C31, C71 |
| 2 | 1nF | wsprrypico-synth-shield:C_0603_1608Metric | C32, C42 |
| 2 | 1μF | wsprrypico-synth-shield:C_0805_2012Metric | C33, C63 |
| 2 | 2.2μF | wsprrypico-synth-shield:C_0805_2012Metric | C21, C22 |
| 1 | + | wsprrypico-synth-shield:TestPoint_THTPad_1.0x1.0mm_Drill0.5mm | TP61 |
| 1 | - | wsprrypico-synth-shield:TestPoint_THTPad_1.0x1.0mm_Drill0.5mm | TP62 |
| 1 | 10nF | wsprrypico-synth-shield:C_0603_1608Metric | C41 |
| 1 | 22Ω | wsprrypico-synth-shield:R_0603_1608Metric | R61 |
| 1 | 25MHz TCXO | wsprrypico-synth-shield:KDS_DSB321SDN_3.2x2.5mm | Y41 |
| 1 | 330uH | wsprrypico-synth-shield:L_TDK_VLS6045EX_VLS6045AF | L61 |
| 1 | 33Ω | wsprrypico-synth-shield:R_0603_1608Metric | R53 |
| 1 | 47nH | wsprrypico-synth-shield:L_0603_1608Metric | L71 |
| 1 | 5kΩ | wsprrypico-synth-shield:Potentiometer_Bourns_TC33X_Vertical | RV61 |
| 1 | ATGM336H-5N31 | wsprrypico-synth-shield:Zhongke_ATGM336H-5N31_9.7x10.1mm_P1.1mm | U71 |
| 1 | BS170 | wsprrypico-synth-shield:TO-92_Inline | Q61 |
| 1 | Push | wsprrypico-synth-shield:SW_SPST_XUNPU_TS1088R_4x3mm | SW11 |
| 1 | Red | wsprrypico-synth-shield:LED_0603_1608Metric | D11 |
| 1 | SMA 50ohm | wsprrypico-synth-shield:SMA_Adafruit_1865_EdgeMount | J61 |
| 1 | Si5351A-B-GTR | wsprrypico-synth-shield:MSOP-10_Si5351A_3x3mm_P0.5mm | U51 |
| 1 | TPS22918 | wsprrypico-synth-shield:SOT-23-6 | U31 |
| 1 | TPS7A2033 | wsprrypico-synth-shield:SOT-23-5 | U21 |
| 1 | U.FL 50ohm | wsprrypico-synth-shield:U.FL_Hirose_U.FL-R-SMT-1_Vertical | J71 |
| 1 | ~ | wsprrypico-synth-shield:Raspberry_Pi_Pico_2W_Header | U11 |

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

WsprryPi/WsprryPi-PCB-Designs
HAT and LPF Designs for the WsprryPi Organization

ckuhtz/picise
Prototype for a time / location GNSS accessory for a Raspberry Pi 40-pin GPIO.

stellarcorp/tvsc
Core software repository for the Tennessee Valley Stellar Corporation

zgeez/Pixel-Badge
Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

SonOfCheevap/PierogiNixie-PSU
A simple 12v to 150v-250v DC-DC Power supply for use with nixie tubes.


doug-harriman/E-Display
Electronic display for calendars, weather, etc.

It measures 53.3 × 22.9 mm and has 2 copper layers, 1.6 mm thick.
46 parts, built around the ATGM336H-5N31, SI5351A-B-GTR, TPS22918DBV and TPS7A2033PDBVR-TP. 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 WsprryPi/WsprryPi-PCB-Designs repository on GitHub, at the commit this page was made from: the board is WsprryPico Synth Shield with GPS/WsprryPico Synth Shield with GPS.kicad_pcb and its schematic Pico 2W Shield Template/Pico 2W Shield Template.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).