
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:

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:
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.
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:
| Variant | Fit | Continuous current |
|---|---|---|
| Base | U1 + U2 (2× BTN8982TA) | ~30 A (with cable reinforcement, see below) |
| High power | also U3 + U4 + R7 + R8 | ~50 A |
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):
| Pin | Signal | Direction |
|---|---|---|
| 1 | RPWM | helm → driver |
| 2 | LPWM | helm → driver |
| 3 | R_EN | helm → driver |
| 4 | L_EN | helm → driver |
| 5 | R_IS (current sense A) | driver → helm |
| 6 | L_IS (current sense B) | driver → helm |
| 7 | +5V (logic, from helm buck) | helm → driver |
| 8 | GND | — |
The LED (D1) lights when the helm's 5 V arrives — a quick cable check.
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.
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:
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.
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.
The board carries unpopulated through-hole provision to become a standalone NMEA2000 node — same pattern as the helm board:
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.
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:
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]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:
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]Implementation notes (RP2350, applies to the helm Pico driving this board over J13 and to the on-board smart-node Pico alike):
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.
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).scripts/build_board.py requires
re-running freerouting and re-applying equivalent patches; treat the
checked-in board file as the source of truth.| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | MountingHole_3.2mm_M3 | MountingHole_3.2mm_M3 | H1, H2, H3, H4, H5, H6 |
| 5 | 1k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R8, R13, R15, R16, R19 |
| 5 | BAT54S | SOT-23 | D6, D8, D10, D11, D14 |
| 4 | 100n | C_Disc_D5.0mm_W2.5mm_P5.00mm | C5, C12, C21, C23 |
| 4 | 47k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R11, R39, R40 |
| 3 | 2.2k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2, R5, R6 |
| 2 | 0R DNP | R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R41, R42 |
| 2 | 100R | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R20, R21 |
| 2 | 100k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R30, R32 |
| 2 | 10k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R12, R18 |
| 2 | 4.7k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R9, R10 |
| 2 | 470u/25V | CP_Radial_D12.5mm_P5.00mm | C1, C2 |
| 2 | BTN8982TA | TO-263-7_TabPin4 | U7, U8 |
| 1 | 100n | C_0805_2012Metric | C24 |
| 1 | 100u | CP_Radial_D6.3mm_P2.50mm | C3 |
| 1 | 10A blade | Fuseholder_Blade_Mini_Keystone_3568 | F1 |
| 1 | 10k | R_0805_2012Metric | R22 |
| 1 | 1k | R_0805_2012Metric | R23 |
| 1 | 20k | R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R38 |
| 1 | 220u/25V | CP_Radial_D8.0mm_P3.50mm | C22 |
| 1 | AS5600 | JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J11 |
| 1 | AUX 5V (screen) | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J10 |
| 1 | BATT 12V | TerminalBlock_CUI_TB007-508-02_1x02_P5.08mm_Horizontal | J16 |
| 1 | BZX85C12 | D_DO-41_SOD81_P10.16mm_Horizontal | D4 |
| 1 | FAN + HALL | PinHeader_1x03_P2.54mm_Vertical | J9 |
| 1 | I2C3 spare | JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J8 |
| 1 | IRF9540N | TO-220-3_Vertical | Q1 |
| 1 | MF-R250 2.5A | MF-R250_Straight | F2 |
| 1 | NMEA2000 PWR | JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J5 |
| 1 | OPI_Z3_26PIN | PinHeader_2x13_P2.54mm_Vertical | J1 |
| 1 | PICO UTIL | PinHeader_1x08_P2.54mm_Vertical | J12 |
| 1 | Pico 2 | RaspberryPi_Pico_TH_SWD | U1 |
| 1 | SBC2_OPI_RPI26 | PinHeader_2x13_P2.54mm_Vertical | J2 |
| 1 | SERVO MOTOR | TerminalBlock_CUI_TB007-508-02_1x02_P5.08mm_Horizontal | J22 |
| 1 | SMCJ18A | D_SMC | D5 |
| 1 | THRUST DRV | PinHeader_1x08_P2.54mm_Vertical | J13 |
| 1 | UART2 ttyAS2 | JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J4 |
| 1 | UART5 ttyAS5 | JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J3 |
| 1 | XL4015 5A | XL4015_Module | U5 |
| 1 | green | LED_D5.0mm | LED1 |
| 1 | yellow | LED_D5.0mm | LED5 |

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:

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

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.




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.

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.

It measures 125 × 95 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask AlexAsplund before reusing the design.