When building an autonomous sailboat, you quickly realize that breadboards and breakout boards only get you so far. The first iteration of this project was exactly that: a tangle of modules wired together. It worked, but it was messy, fragile, and hard to debug. So the next logical step was a proper custom PCB that consolidates everything the boat needs to think, sense, and act on its own.

This writeup focuses on the electronics design, what goes on the board, why each piece is there, and the trade-offs behind the choices.

What the Board Needs to Do

The sailboat has to compute its own course, which means a microcontroller running navigation logic, a battery to keep it alive, sensors for environmental awareness, and actuators to actually steer and trim. The whole system was designed around a power budget of roughly 0.8 W average draw: tight, but achievable, and critical for true autonomy.

To survive 48 hours without sun, the energy budget works out to about 38.4 Wh. The battery pack is sized to 46.25 Wh to leave headroom and avoid deep discharge.

The PCB at a Glance

The board breaks down into four functional blocks:

  • Microcontroller
  • Power and energy electronics, charging, regulation, PowerPath
  • Sensors, GPS, IMU, wind direction
  • Actuators, rudder and sail flap drive

Everything sits on a single PCB instead of stacked breakouts, which dramatically cleans up the wiring and eliminates a whole class of "loose jumper" failures.

Big shoutout to PCBWay for sponsoring the fabrication of this board. The boards arrived clean, well finished, and on time. If you're prototyping anything that needs to survive the real world they're worth a look: pcbway.com.

Microcontroller: ESP32 WROOM 32UE N8R2

The brain is an ESP32 WROOM 32UE N8R2 module from Espressif. The "UE" variant has an external antenna connector, which is useful when the board sits inside a hull. The module integrates the SoC, flash, crystal, and RF matching, so dropping it onto a custom PCB is mostly a matter of routing power, GPIO, and the antenna.

The ESP32 was picked for three reasons:

  1. Easy to program in the Arduino environment
  2. Built in BLE, used here for telemetry and control
  3. Power draw is acceptable, about 130 mA during BLE activity, or roughly 0.4 W. That's half the total power budget, but it leaves enough margin for the rest of the system.

An earlier iteration used a Raspberry Pi, but I²C communication with the sensors turned out to be unreliable, and a full Linux stack wasn't buying anything for a boat that just needs to compute headings. The ESP32 is simpler and more deterministic for this workload.

Battery: 5 Cells in Parallel

The pack is 5× EVE ICR18650 cells (2,550 mAh, 3.7 V nominal) in parallel, a 5P configuration giving roughly 12.75 Ah at one cell voltage. Cells are spot welded with nickel strip; soldering directly to 18650s risks overheating and damaging the separator.

A parallel only pack keeps things simple: no balancing required, single voltage rail, and the boat doesn't need the higher voltages a series pack would provide.

Charging: BQ25895

Charge management is handled by the TI BQ25895, a 5 A I²C controlled single cell charger. The IC handles the standard CC/CV cycle that lithium ion cells require:

  • Constant Current phase, fixed current until the cell hits roughly 4.2 V. This gets the pack to roughly 60 to 70 percent capacity.
  • Constant Voltage phase, voltage held at 4.2 V while current tapers off, topping the cell up to full.

The BQ25895 terminates the charge when current drops below I_TERM (typically 180 mA) and re engages once the cell falls back to about 4.1 V.

Two features of this IC matter a lot for a solar powered boat:

PowerPath: the load can be powered directly from the input source while the battery is charging, with seamless handover when the input goes away. For an autonomous vehicle, this is non negotiable: the boat can't reset just because a cloud passed over.

Input Current Optimizer (ICO): not full...

Read more »