Pypilot Remote is a Wi-Fi remote control and display for the
pypilot open-source marine autopilot by Sean D’Epagnier.
It connects to a pypilot server in client mode and provides a clean, dedicated hardware interface to control the autopilot and display essential navigation and system information.
The project is currently housed in a Raymarine ST70 autopilot display, giving new life to legacy marine hardware. The design is intentionally adaptable so it can be reused with other discontinued or surplus commercial enclosures.
A future goal is a custom 3D-printed enclosure, which would make the project more accessible without relying on expensive legacy hardware. This will require additional work around waterproof screen mounting, buttons, and connectors.
- MCU: ESP32-S3 N16R8 with external antenna
- Display: 3.47" transflective color LCD
- Resolution: 480×320
- Model: UEED035HV-RX40-L001B (Viewe)
- Input: 9 physical pushbuttons (no touchscreen)
- Power input: 10–18 V DC
- Programming:
- USB (without opening the enclosure)
- OTA (Over-The-Air updates)
- Firmware: ESP32 (Arduino framework)
- IDE: Eclipse Sloeber
- Hardware design: KiCad v9
- License: GPL-3.0-only
- Connects to a pypilot server or creates an AP for configuration
- Autopilot Auto / Standby control
- Steering mode selection
- Course changes in Auto mode:
- −1°, −10°, +1°, +10°
- Adjustable backlight for screen and buttons
- Light and dark UI themes
- Information screens:
- Pypilot data
- Device status
- Scrollable console log
- “Return to previous heading” Auto command
- Persistent configuration stored in EEPROM
- Robust Wi-Fi and TCP reconnection handling
- Visual Wi-Fi status indicator
-
Standby
Disengages the autopilot -
Auto
Engages the autopilot and commands the current heading -
Auto (long press > 3 s)
Engages autopilot using the previous heading command
- −1 → Port 1°
- −10 → Port 10°
- +1 → Starboard 1°
- +10 → Starboard 10°
-
Mode
Cycles through available steering modes -
Backlight
Toggles backlight on/off -
Backlight (long press > 10 s)
Forces AP mode -
Info
Cycles through information screens and returns to home -
Backlight + Mode (long press > 5 s)
Restarts the Pypilot Remote
- When not on the home screen, only Auto and Standby are active
- On the console log screen:
- +1 / +10 scroll up and down
- On boot, the device attempts to connect to the configured Wi-Fi SSID
→ Wi-Fi icon flashes RED - After the configured number of retries:
- If unsuccessful → switches to AP mode (Wi-Fi icon YELLOW)
- Once Wi-Fi is connected:
- Tries to connect to the pypilot TCP server indefinitely
→ Wi-Fi icon flashes GREEN
- Tries to connect to the pypilot TCP server indefinitely
- When connected to pypilot:
- Wi-Fi icon becomes solid GREEN
- Device is fully operational
When in AP mode, access the configuration interface at:
http://192.168.4.1
- WiFi SSID – Network to connect to
- WiFi Password
- Max WiFi Retries – Attempts before falling back to AP mode
- Pypilot IP – IP address of the pypilot server
- TCP Port – Default:
23322 - UDP Port – Not used
- Brightness (Backlight Off) – 0–255
- Brightness (Backlight On) – 0–255
- Key Backlight Brightness – 0–255
- Start Theme – Theme when backlight is off
- Backlight Theme – Theme when backlight is on
- Rescan Wi-Fi – Refresh available networks
- OTA Update – Upload firmware
.binfile
The device uses 4 pins from the SeatalkNG connector:
| Color | Signal |
|---|---|
| Red | +12 V |
| Black | GND |
| Blue | D+ |
| White | D− |
- Blue and white lines are CAN-H / CAN-L
- Connecting them to the ESP32 will destroy the MCU
For USB programming or debugging:
- Splice a USB cable
- Connect D+, D−, and GND
- A serial port will appear on the host computer
You can find the assembly guide here assembly wiki
📺 Demo video:
Interface and funtionality video
This project is licensed under the
GNU General Public License v3.0 (GPL-3.0-only).
See the LICENSE file for details.
Contributions, improvements, and adaptations to other hardware platforms are welcome — as long as they respect the GPL.
Let’s keep open source alive.

