
Boat PCB V3 1
ka1e27/dreams
Autonomous survey catamaran: CV-based obstacle avoidance, environmental sensing, and cellular telemetry to a web dashboard.

Autonomous survey catamaran: CV-based obstacle avoidance, environmental sensing, and cellular telemetry to a web dashboard.
Boat PCB V3 is an open-source printed circuit board by ka1e27, from the ka1e27/dreams repository on GitHub. It is a 4-layer board of 122.1 × 95.5 mm with 140 parts on 169 nets, routed with 1,268 tracks and 142 vias.
It is built around the 74AHCT1G125SE, THVD2410D and BH1750FVI-TR, with the BNO085, BSS138 and B360B among its other parts. Its parts include 51 resistors, 25 capacitors, 16 connectors, 13 ICs and 12 diodes. It belongs with the RP2040 boards of this library.
Autonomous survey catamaran: CV-based obstacle avoidance, environmental sensing, and cellular telemetry to a web dashboard.
Website: https://ka1e27.github.io/dreams/ (the boat, the build log and weekly updates). Its source is in website/.
Instagram: @dreams.boat.project.
V3 is a ground-up rebuild on new hardware. The carrier PCB is designed and fully routed. None of the software has been written yet. This repo is the clean base it will be written on.
The V2 boat is archived, not deleted. The whole V2 stack is frozen at the tag
v2-final: RP2040 firmware, the Pi 5 navigation and CV code, the
dashboards, the cloud pipeline, and the V2 board with its docs.
Start with docs/v3/V3_DESIGN_BRIEF.md for the locked
decisions, the current budget, part choices with their reasons, and the layout traps the first
attempt hit.
| Board | Folder | What it is |
|---|---|---|
| V3 carrier (rev F) | Boat_PCB/Boat_PCB_V3/ | The main board: Pi 5 and two Pico 2s, running from 10S Li-ion. 122.1 × 95.5 mm, 4 layers (JLC04161H-7628, 1 oz outer / 0.5 oz inner, ENIG), 140 footprints, fully routed |
| V3.1 starter carrier (2026-10-10) | Boat_PCB/Boat_PCB_V3_1/ | An interim board to get the boat moving before the full carrier. It keeps the Pi 5 and the 5 V buck, uses one Raspberry Pi Pico 2 instead of the full board's two, and runs from one 10S Li-ion pack. CAN chain for the VESCs, RC input, GPS, an on-board SHT41, a Qwiic port for the TMP119, hull leak probes, ESC headers and the pod tether, on a 98 × 67 mm 2-layer board. See docs/v3/V3_1_STARTER_CARRIER.md |
| Pod | Boat_PCB/Pod_PCB_V3/ | A Seeed XIAO ESP32-S3 on its own board, on the winch tether |
| Shared library | Boat_PCB/lib/ | The dreams_v3 KiCad library all three boards use |
Power on the V3 carrier (rev F): two 10S 10 Ah Li-ion packs in parallel make one 10S bus.
Pack fusing is off-board. On the board, PTCs guard the pod feed (F1) and the LED and SBUS 5 V outputs (F2, F3).
Raspberry Pi 5 ─ navigation, mission logic, CV, cloud link Python (not yet written)
│ UART on the GPIO header to Pico A, plus a reset line to each Pico
├─ Pico A (Pico 2) ─ control C++ (not yet written)
│ ├─ CAN via TJA1051T/3 ─► VESC ×2 (node IDs 1, 2) for drive, on the PIO (can2040)
│ ├─ UART ─────────────► SBUS RC receiver
│ ├─ PWM ──────────────► winch ESC, behind a fail-safe-OFF high-side P-FET kill
│ ├─ STEP/DIR ─────────► A4988 radar-bar stepper
│ └─ GPIO / ADC ───────► WS2812 status LED · hull leak L/R · 10S pack divider
└─ Pico B (Pico 2) ─ sensors C++ (not yet written)
├─ I²C via TCA9548A ─► SHT45 ×2, BNO085, ADXL375, BH1750, INA228 ×2
└─ UART ─────────────► GPS (M10-25Q) · pod tether (RS-485)Boat_PCB/Boat_PCB_V3/ KiCad 10 project: schematic and layout of the V3 carrier
Boat_PCB/Pod_PCB_V3/ the pod board (XIAO ESP32-S3 on the winch tether)
Boat_PCB/Boat_PCB_V3_1/ V3.1 starter carrier: Pi 5 + one Pico 2, an interim board
Boat_PCB/lib/ the dreams_v3 KiCad library all three boards share
Boat_PCB/CLAUDE.md board baselines, layout constraints, ordering
docs/v3/ design brief, planning record, BOM, V3.1 notes
website/ the public site
CLAUDE.md working notes for Claude CodeOpen the project in KiCad 10, or check it from the command line:
kicad-cli sch erc --severity-all Boat_PCB/Boat_PCB_V3/Boat_PCB_V3.kicad_sch
kicad-cli pcb drc --severity-all --schematic-parity Boat_PCB/Boat_PCB_V3/Boat_PCB_V3.kicad_pcbEach board's current numbers, and the layout rules to keep, are in
Boat_PCB/CLAUDE.md.
V2 (v2-final) | V3 | |
|---|---|---|
| Boat MCU | RP2040 Pico, MicroPython | Two Pico 2s (RP2350), C++, a new pin map |
| Drive | Direct servo PWM to AM32/BLHeli ESCs | VESCs as CAN nodes via TJA1051 |
| Packs | Milwaukee M18 | Two 10S 10 Ah Li-ion in parallel, one bus; optional 4S backup for the 5 V side |
| Pod | RP2040 Pico | XIAO ESP32-S3 on its own board |
| Sensors | SHT41 ×2, BNO085 | SHT45 ×2, BNO085, ADXL375, BH1750, INA228 ×2, behind a mux |
V3 contradicts V2 on purpose. Don't try to reconcile the two. See
docs/v3/README.md for the full table.
PCBWay sponsors the project's circuit boards.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 19 | 4.7k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R10, R15, R16, R17, R18, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31 +3 |
| 16 | 100nF 50V X7R | dreams_v3:C_Disc_D5.0mm_W2.5mm_P5.00mm | C4, C9, C11, C12, C13, C14, C15, C16, C17, C18, C20, C21, C22, C31, C32, C34 |
| 9 | 10k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R34, R35, R38, R39, R40, R42, R43, R44, R55 |
| 6 | 1k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R46, R47, R48, R49, R50, R53 |
| 5 | 100k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R54, R56, R57, R64, R65 |
| 4 | MountingHole | dreams_v3:MountingHole_3.2mm_M3 | MH1, MH2, MH3, MH4 |
| 3 | 100uF 63V | dreams_v3:CP_Radial_D10.0mm_P5.00mm | C1, C2, C26 |
| 3 | BSS138 | dreams_v3:SOT-23 | Q2, Q3, Q4 |
| 2 | 120R 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R61, R63 |
| 2 | 1k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R66, R67 |
| 2 | 22pF 50V C0G | dreams_v3:C_Disc_D3.0mm_W1.6mm_P2.50mm | C28, C29 |
| 2 | B360B | dreams_v3:D_SMB | D12, D13 |
| 2 | B5819W | dreams_v3:D_SOD-123 | D10, D11 |
| 2 | GND | dreams_v3:TestPoint_Keystone_5000-5004_Miniature | TP1, TP2 |
| 2 | Raspberry Pi Pico 2 | dreams_v3:RaspberryPi_Pico_Socketed_THT | U1, U14 |
| 2 | SMBJ43A | dreams_v3:D_SMB | D3, D4 |
| 1 | +3V3 | dreams_v3:TestPoint_Keystone_5000-5004_Miniature | TP4 |
| 1 | +5V | dreams_v3:TestPoint_Keystone_5000-5004_Miniature | TP3 |
| 1 | 1.5k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R58 |
| 1 | 10S pack tap (JST-VH) | dreams_v3:JST_VH_B2P-VH_1x02_P3.96mm_Vertical | J11 |
| 1 | 10mR 1% | dreams_v3:R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm | R32 |
| 1 | 10uF 25V X7R | dreams_v3:C_Disc_D5.0mm_W2.5mm_P5.00mm | C24 |
| 1 | 13k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R8 |
| 1 | 1N5245B 15V | dreams_v3:D_DO-35_SOD27_P7.62mm_Horizontal | D2 |
| 1 | 1uF 50V X7R | dreams_v3:C_Disc_D5.0mm_W2.5mm_P5.00mm | C33 |
| 1 | 220k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R7 |
| 1 | 22k 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R60 |
| 1 | 2mR 1% | dreams_v3:R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm | R33 |
| 1 | 32.768kHz CL=12.5pF 50ppm | dreams_v3:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 330R 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R45 |
| 1 | 470uF 16V low-ESR 105C | dreams_v3:CP_Radial_D8.0mm_P3.50mm | C30 |
| 1 | 470uF 35V | dreams_v3:CP_Radial_D10.0mm_P5.00mm | C25 |
| 1 | 4S backup (JST-VH) | dreams_v3:JST_VH_B2P-VH_1x02_P3.96mm_Vertical | J18 |
| 1 | 680R 1% | dreams_v3:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R59 |
| 1 | 74AHCT1G125 | dreams_v3:SOT-23-5 | U12 |
| 1 | A4988 radar stepper | dreams_v3:Pololu_Breakout-16_15.2x20.3mm | A1 |
| 1 | ADXL375 | dreams_v3:LGA-14_3x5mm_P0.8mm_LayoutBorder1x6y | U5 |
| 1 | BH1750FVI-TR | dreams_v3:XDCR_BH1750FVI-TR | U7 |
| 1 | BNO085 | dreams_v3:LGA-28_5.2x3.8mm_P0.5mm | U4 |
| 1 | CAN TERM | dreams_v3:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | CAN stub to VESCs | dreams_v3:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J3 |
| 1 | GPS M10-25Q | dreams_v3:JST_XH_B6B-XH-A_1x06_P2.50mm_Vertical | J1 |
| 1 | Hull leak left | dreams_v3:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J8 |
| 1 | Hull leak right | dreams_v3:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J9 |
| 1 | INA228 electronics | dreams_v3:MSOP-10_3x3mm_P0.5mm | U10 |
| 1 | INA228 winch | dreams_v3:MSOP-10_3x3mm_P0.5mm | U11 |
| 1 | NUP2105L | dreams_v3:SOT-23 | D6 |
| 1 | PICO A RESET | dreams_v3:SW_PUSH_6mm | SW1 |
| 1 | PICO B RESET | dreams_v3:SW_PUSH_6mm | SW2 |
| 1 | PTC 0.40A hold | dreams_v3:Fuse_BelFuse_0ZRE0075FF_L11.5mm_W4.8mm | F1 |
| 1 | PTC 0.75A hold | dreams_v3:Fuse_BelFuse_0ZRE0075FF_L11.5mm_W4.8mm | F3 |
| 1 | PTC 1.25A hold | dreams_v3:Fuse_BelFuse_0ZRE0125FF_L21.2mm_W5.3mm | F2 |
| 1 | Pod tether | dreams_v3:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J2 |
| 1 | Pololu D36V50F5 5V 5.5A | dreams_v3:Pololu_D36V50F5 | A2 |
| 1 | Pololu D36V6F15 15V 600mA | dreams_v3:Pololu_D36V6F5 | U15 |
| 1 | Radar stepper motor | dreams_v3:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J5 |
| 1 | Raspberry Pi 5 GPIO | dreams_v3:RaspberryPi_5_GPIO_Socket_2x20 | J12 |
| 1 | SBUS RC receiver | dreams_v3:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J7 |
| 1 | SCL | dreams_v3:TestPoint_Keystone_5000-5004_Miniature | TP6 |
| 1 | SDA | dreams_v3:TestPoint_Keystone_5000-5004_Miniature | TP5 |
| 1 | SHT45 external | dreams_v3:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J4 |
| 1 | SHT45 internal | dreams_v3:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPad | U8 |
| 1 | SMBJ5.0A | dreams_v3:D_SMB | D5 |
| 1 | SUP90P06-09L | dreams_v3:TO-220-3_Vertical | Q1 |
| 1 | Status LED | dreams_v3:JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical | J6 |
| 1 | TCA9548A I2C mux | dreams_v3:TSSOP-24_4.4x7.8mm_P0.65mm | U2 |
| 1 | THVD2410 | dreams_v3:SOIC-8_3.9x4.9mm_P1.27mm | U13 |
| 1 | TJA1051T/3 CAN xcvr | dreams_v3:SOIC-8_3.9x4.9mm_P1.27mm | U3 |
| 1 | Winch ESC | dreams_v3:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J10 |
| 1 | XT60 10S ELECTRONICS | dreams_v3:AMASS_XT60-M_1x02_P7.20mm_Vertical | J13 |
| 1 | XT60 10S WINCH | dreams_v3:AMASS_XT60-M_1x02_P7.20mm_Vertical | J14 |
| 1 | XT60-F WINCH ESC OUT (female) | dreams_v3:AMASS_XT60-F_1x02_P7.20mm_Vertical | J16 |
| 1 | green +3V3 | dreams_v3:LED_D3.0mm | D8 |
| 1 | green +5V | dreams_v3:LED_D3.0mm | D7 |
| 1 | red WINCH ON | dreams_v3:LED_D3.0mm | D9 |

ka1e27/dreams
Autonomous survey catamaran: CV-based obstacle avoidance, environmental sensing, and cellular telemetry to a web dashboard.

ka1e27/dreams
Autonomous survey catamaran: CV-based obstacle avoidance, environmental sensing, and cellular telemetry to a web dashboard.

nguyencanhanh/luckfox-rv1103-drone
AI quadcopter on one RV1103 (Luckfox Pico Mini B): Linux + RISC-V MCU flight loop, SITL with 3D pilot view, KiCad flight-controller board

ruckusmattster/xtm-led-driver
A HDR LED driver with ESPHome integration focused on driving a 36V 1.4A LED


HEEV/motor-controller-2018
Sam Ellicott's and Isaac Jones's motor controller senior design project. Fall 2018-Spring 2019

K0RGI/T41-K9HZ
This is the repository for the officially released V10, V11, and V12 versions of the T41 Software Defined Transceiver hardware and kits.

csdexter/valhalla
Version-controlled material related to the Valhalla project

ayuusweetfish/Luminography
(🚧 ETA 2024.09) « Jeu de luminographie » — An electronic toy encouraging outdoor exploration

HolTyc/STM32_watch_NFC
Watch using STM32 with LED 7-segment display and RGB display
It measures 122.1 × 95.5 mm and has 4 copper layers, 1.6 mm thick.
140 parts, built around the 74AHCT1G125SE, THVD2410D, BH1750FVI-TR and BNO085. 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 ka1e27/dreams repository on GitHub, at the commit this page was made from: the board is Boat_PCB/Boat_PCB_V3/Boat_PCB_V3.kicad_pcb and its schematic Boat_PCB/Boat_PCB_V3/Boat_PCB_V3.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 ka1e27 before reusing the design.