Skip to the content
2 layers125 × 95 mmVanchor helm, the printed circuit board in 3D

95×92 mm 2-layer board. Full H-bridge for a 12–24 V brushed trolling motor, controlled by the vanchor-helm board over one straight 8-wire cable. Two build variants share the same PCB:

Size
125 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
69
Nets
71
Pads
273
Tracks, vias
885, 104
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Jul 2026
Updated
17 Sep 2026

Overview

Vanchor helm is an open-source printed circuit board by AlexAsplund, from the AlexAsplund/vanchor-pcb repository on GitHub. It is a 2-layer board of 125 × 95 mm with 69 parts on 71 nets, routed with 885 tracks and 104 vias.

It is built around the BTN8982TA, BAT54S and BZX85C12, with the IRF9540NS and SMCJ18A among its other parts. Its parts include 25 resistors, 13 connectors, 9 capacitors, 9 diodes and 4 ICs. It belongs with the RP2040 boards of this library.

Main components

5

README

boards/thrust-driver/README.md

vanchor-thrust — trolling-motor DC driver

95×92 mm 2-layer board. Full H-bridge for a 12–24 V brushed trolling motor, controlled by the vanchor-helm board over one straight 8-wire cable. Two build variants share the same PCB:

VariantFitContinuous current
BaseU1 + U2 (2× BTN8982TA)~30 A (with cable reinforcement, see below)
High poweralso U3 + U4 + R7 + R8~50 A

Cable to the helm board

J1 mirrors helm J13 pin-for-pin — crimp a straight 8-wire cable (0.5–1 mm², keep it under ~2 m, twist RPWM/LPWM with GND spares if longer):

PinSignalDirection
1RPWMhelm → driver
2LPWMhelm → driver
3R_ENhelm → driver
4L_ENhelm → driver
5R_IS (current sense A)driver → helm
6L_IS (current sense B)driver → helm
7+5V (logic, from helm buck)helm → driver
8GND—

The LED (D1) lights when the helm's 5 V arrives — a quick cable check.

Power wiring

M5 lugs: BATT+ / BATT− on the left edge, MOT A / MOT B on the right. Use 10 mm² (8 AWG) or thicker cable for the 50 A build. Fuse the battery lead externally (ANL or MIDI, 40 A base / 60 A high power) close to the battery. There is no reverse-polarity protection — double-check polarity before connecting; reversed battery destroys the BTN8982s. D2 (SMCJ33A) clamps inductive spikes; the board is 12–24 V only.

Solder-lane reinforcement (required above ~15 A continuous)

The board is ordered in standard 1 oz copper — cheap, but the copper alone won't carry 30–50 A. Every power lane (VBAT band + spine, MOT A, MOT B on top; GND band on the bottom) has an exposed solder lane (no solder mask). Before first high-power use:

  1. Clean the lanes with IPA, apply flux.
  2. Tin each lane with a wide tip.
  3. Lay 4–10 mm² desoldered copper braid or stripped solid wire along the lane and solder it down continuously end-to-end.

With braid on all lanes the base build handles ~30 A continuous, the high-power build ~50 A. The 202 "solder mask bridge" DRC warnings are these lanes — intentional.

Firmware note (high-power variant)

Each BTN8982's IS pin sources I_load/kILIS (~8500). Both devices of a side feed the same 1 k sense resistor, so with U3/U4 fitted the sensed voltage per ampere stays the same only if the halves share evenly — in practice treat the effective kILIS as ~22700 (verify datasheet 5.4.7) with U1/U2 only and ~17000 per device (halved reading) when paralleled. Calibrate THR_IS scaling in the Pico firmware after choosing the variant.

NMEA2000 smart-node option (v1.1 provision, all DNP)

The board carries unpopulated through-hole provision to become a standalone NMEA2000 node — same pattern as the helm board:

  • U5 Pico 2 (GP12-15 wired in parallel with J1's RPWM/LPWM/R_EN/L_EN, GP26/27 read the IS sense via R12/R13 1k series, GP18/19 run CAN via can2040 — identical GPIO map to the helm Pico, so the thrust firmware ports directly).
  • U6 SIP-3 5V regulator: R-78E5.0-0.5 for 12V boats; fit the wide-input R-78HE5.0-0.5 on 24V boats (the plain R-78E tops out at 28V in, too close to a charging 24V bank).
  • J6 4-pin CAN header: 3V3 / GND / TX / RX to a Waveshare SN65HVD230 transceiver module; CAN_H/L go to the module's screw terminal.
  • J7 XH-3 lands the N2K drop cable's V+ / GND / SHIELD. R10 (0R DNP) optionally feeds the backbone from VBAT (fuse the drop cable); R11 (0R DNP) bonds shield to GND at this node only if nowhere else does.

Dumb mode (default): populate nothing, drive via the J1 cable as before. Smart mode: fit U5 + U6 + R12 + R13 + transceiver, leave J1 unconnected (both would drive the same nets), and implement a command watchdog in the node firmware (hard-stop to neutral if the command PGN stream halts >300-500 ms). ADC note: in normal operation the IS voltage across the 1k loads stays under ~2.2V at 50A (kILIS 22.7k), but in FAULT the IS pin sources mA-class current and the node's only protection is the R12/R13 series resistance - fit them as 10k (not 1k) when populating the node, or add BAT54S clamps to 3V3 like the helm board has.

PWM frequency (firmware guidance)

The BTN8982TA allows up to 25 kHz, but this board fits 51 k slew-rate resistors (low-EMI edges, ~1.5 us each), so switching loss — not the chip rating — sets the practical limit. Loss per edge scales with both current and frequency; conduction loss at 30 A is only ~6 W, so high-kHz PWM at high current quickly dominates the thermal budget:

mermaid
xychart-beta
    title "Switching loss vs PWM frequency (13V, 51k SR edges ~3us total)"
    x-axis "PWM frequency (kHz)" [2, 4, 8, 12, 16, 20, 25]
    y-axis "watts" 0 --> 16
    line "at 30 A" [1.2, 2.3, 4.7, 7.0, 9.4, 11.7, 14.6]
    line "at 10 A" [0.4, 0.8, 1.6, 2.3, 3.1, 3.9, 4.9]

static SVG

Recommended scheme: current-adaptive PWM. Run high frequency where it is silent and cheap (low current), ramp down as current rises so the bridge stays efficient exactly when the prop is loud enough to mask the hum:

mermaid
xychart-beta
    title "Recommended PWM vs motor current"
    x-axis "motor current (A)" [0, 5, 10, 15, 20, 25, 30, 40, 50]
    y-axis "PWM frequency (kHz)" 0 --> 18
    line [16, 16, 12, 8, 6, 5, 4, 3, 2]

static SVG

Implementation notes (RP2350, applies to the helm Pico driving this board over J13 and to the on-board smart-node Pico alike):

  • Switch on measured current (IS), not throttle — switching loss scales with amps. Use ~2 A hysteresis, or blend continuously per the curve above (nicer: the whine fades instead of stepping).
  • Glitch-free frequency changes: change the PWM slice's wrap (TOP) value and rescale the compare level by the same ratio in the same update; both latch at the wrap boundary, so duty is preserved and the motor never feels a step.
  • Resolution is never the constraint: 150 MHz / 16 kHz is still >13 bits of duty resolution.
  • IS sampling: if sampling mid-on-time, recompute the sample point when the wrap changes — or use the RC-averaged reading scaled by duty (frequency-agnostic; the helm's 20k + 100n chain does this).
  • If the bridge runs warm at partial throttle, lower the 16 kHz band's ceiling (~10 A -> ~6 A) before touching hardware. If you truly need 15-25 kHz at full current, swap R3/R4 (R7/R8) from 51 k to ~5.1 k — ~10x less switching loss, more EMI ringing; they are through-hole for exactly this experiment.

Assembly order

  1. SMD: BTN8982s (U1/U2, plus U3/U4 for high power), D2.
  2. Resistors: R1–R6, R9 (+ R7/R8 with U3/U4), diode D1.
  3. C3/C4 ceramics, C5 film, then C1/C2 electrolytics (mind polarity).
  4. Lugs J2–J5, header J1.
  5. Solder-lane braid (see above), then bolt to a heatsink/baseplate through the two M3 holes with a thermal pad under the BTN tabs for >20 A use.

Ordering

Same fab spec as the helm board: 2 layers, 1.6 mm FR-4, 1 oz copper, HASL, 5/5 mil, 0.3 mm min drill, tented vias. Upload fab/vanchor-thrust-gerbers.zip. ~$10-15 for 5 pcs at PCBWay/JLC.

Design notes / DRC deviations

  • solder_mask_bridge warnings (~200): intentional exposed solder lanes.
  • pth/npth_inside_courtyard, courtyards_overlap: warnings only, from the lug/cap density; verified manually.
  • solder_mask_bridge is set to ignore in the project (the exposed solder lanes intentionally span nets' mask apertures).
  • The routed .kicad_pcb includes hand-placed link tracks and via-hops for the DNP-pair nets (RPWM/LPWM/R_EN/L_EN/R_IS/L_IS between U1/U2 and U3/U4) — regenerating the board from scripts/build_board.py requires re-running freerouting and re-applying equivalent patches; treat the checked-in board file as the source of truth.

Parts

69
QtyValueFootprintReferences
6MountingHole_3.2mm_M3MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6
51kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR8, R13, R15, R16, R19
5BAT54SSOT-23D6, D8, D10, D11, D14
4100nC_Disc_D5.0mm_W2.5mm_P5.00mmC5, C12, C21, C23
447kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R11, R39, R40
32.2kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R5, R6
20R DNPR_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR41, R42
2100RR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR20, R21
2100kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR30, R32
210kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR12, R18
24.7kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9, R10
2470u/25VCP_Radial_D12.5mm_P5.00mmC1, C2
2BTN8982TATO-263-7_TabPin4U7, U8
1100nC_0805_2012MetricC24
1100uCP_Radial_D6.3mm_P2.50mmC3
110A bladeFuseholder_Blade_Mini_Keystone_3568F1
110kR_0805_2012MetricR22
11kR_0805_2012MetricR23
120kR_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR38
1220u/25VCP_Radial_D8.0mm_P3.50mmC22
1AS5600JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ11
1AUX 5V (screen)JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ10
1BATT 12VTerminalBlock_CUI_TB007-508-02_1x02_P5.08mm_HorizontalJ16
1BZX85C12D_DO-41_SOD81_P10.16mm_HorizontalD4
1FAN + HALLPinHeader_1x03_P2.54mm_VerticalJ9
1I2C3 spareJST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ8
1IRF9540NTO-220-3_VerticalQ1
1MF-R250 2.5AMF-R250_StraightF2
1NMEA2000 PWRJST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ5
1OPI_Z3_26PINPinHeader_2x13_P2.54mm_VerticalJ1
1PICO UTILPinHeader_1x08_P2.54mm_VerticalJ12
1Pico 2RaspberryPi_Pico_TH_SWDU1
1SBC2_OPI_RPI26PinHeader_2x13_P2.54mm_VerticalJ2
1SERVO MOTORTerminalBlock_CUI_TB007-508-02_1x02_P5.08mm_HorizontalJ22
1SMCJ18AD_SMCD5
1THRUST DRVPinHeader_1x08_P2.54mm_VerticalJ13
1UART2 ttyAS2JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ4
1UART5 ttyAS5JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ3
1XL4015 5AXL4015_ModuleU5
1greenLED_D5.0mmLED1
1yellowLED_D5.0mmLED5

More from AlexAsplund/vanchor-pcb

1
  • 2 layers95 × 92 mmVanchor thrust, the printed circuit board in 3D

    Vanchor thrust

    AlexAsplund/vanchor-pcb

    95×92 mm 2-layer board. Full H-bridge for a 12–24 V brushed trolling motor, controlled by the vanchor-helm board over one straight 8-wire cable. Two build variants share the same PCB:

    37 parts

Similar boards

  • 4 layers114.3 × 134.5 mmExoskeleton, the printed circuit board in 3D

    Exoskeleton

    Bihyungbetter/exoskeleton

    Exoskeleton is a powered lower-limb exoskeleton with six actuated joints — hip flexion, hip abduction, and knee flexion per leg.

    60 parts
  • 2 layers120 × 90 mmCapacitorDischarger, the printed circuit board in 3D

    CapacitorDischarger

    CatalinSerafimescu/CapacitorDischarger

    A professional, handheld capacitor discharger designed for safely discharging high-voltage capacitors in hobby electronics restoration — tube amplifiers, vintage radios, CRT televisions, and consumer power supplies.

    43 parts
  • 2 layers92 × 51 mmError amp board, the printed circuit board in 3D

    Error amp board

    hevanaa/Oltronix_D400

    Oltronix D400-007D power supply error amplifier PCB

    27 parts
  • 2 layers88 × 46 mmPsg14a power, the printed circuit board in 3D

    Psg14a power

    mykhayloscherbak/psg14aemu

    Starter-alternater panel emulator for GTD350

    53 parts
  • 2 layers105.7 × 56 mmX399 REF, the printed circuit board in 3D

    X399 REF

    victorman222/LM399

    LM399/ADR1399 reference

    88 parts2
  • 4 layers150 × 100 mmCm4-robo controller, the printed circuit board in 3D

    Cm4-robo controller

    jrseti/roboclaw-cm4-dc-dish-controller

    Satellite dish controller using a ROBOCLAW-2X15A-OEM controlled by a Raspberry Pi CM4 module. Powered by DC battery.

    292 partsMIT
  • 4 layers33 × 96 mmFan Controller, the printed circuit board in 3D

    Fan Controller

    radovanobal/dog-fan-controller

    A PWM controller for two Noctua NF-A14 PWM fans, using an ESP32-C3 SuperMini and an external SHT4x temperature and humidity sensor.

    53 partsCERN-OHL-P-2.0
  • 4 layers84 × 84 mmPWM amp, the printed circuit board in 3D

    PWM amp

    YingK8/FlyingRobotsLinLiweiLab

    53 parts

Questions

How big is the Vanchor helm PCB?

It measures 125 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Vanchor helm use?

69 parts, built around the BTN8982TA, BAT54S, BZX85C12 and IRF9540NS. 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 Vanchor helm KiCad files?

From the AlexAsplund/vanchor-pcb repository on GitHub, at the commit this page was made from: the board is boards/helm/vanchor-helm.kicad_pcb and its schematic boards/helm/carrier.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Vanchor helm design in my own project?

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