Sheet 01 — Projects / Fig. 1

Teleoperation Board

A PCB that lets a Raspberry Pi drive Cornell Electric Vehicles' competition car remotely: steering, speed, and braking.

When
2026-08 — ongoing
Stack
AltiumRP2040Raspberry PiC
Tags
PCB designEmbeddedAutonomy
3D render of the teleoperation board: a green PCB with large input capacitors, screw-terminal connectors along the edges, and an RP2040 at the centre.
FIG. 1 — 2026 · Altium / RP2040 / Raspberry Pi / C

This printed circuit board (PCB) drives Cornell Electric Vehicles' normally human-operated competition car remotely in tandem with a Raspberry Pi. It was created as a test bed for Cornell Electric Vehicles' autonomy demo at Shell Eco Marathon planned for April 2027 as a first step in bringing Southwest Research Institute's European autonomous driving competition to the US.

Top-level schematic: 48 V input, sensor inputs, steer and brake stepper outputs, drivetrain outputs, UART, clutch outputs, and the Raspberry Pi 5 V output, wired to the RP2040 sheet. FULL SIZE
FIG. 1.1 — Top-level schematic

§1Power

The board is powered with a 48-60V power source or battery and powers 24V electromagnetic clutches, 12V optical RPM sensors, 5V analog steering wheel angle and hydraulic brake pressure sensors, 5V stepper motor driver controls, a 5V analog drivetrain power signal, and a 3.3V logic level for the RP2040 microcontroller. To power all of these rails, the board has two buck converters: 48/60V --> 24V, and 24V --> 5V. It then has three Low-Dropout Regulators (LDOs): one 24V --> 12V and two 5V --> 3.6V, one of which goes from the 5V rail to the 3.3V rail, and one of which goes from the microcontroller's 5V USB C flash port. Both go through Schottky diodes with 0.3V voltage drops to prevent noise from the board's 5V rail from frying my computer's USB port while flashing firmware to the board. The choice to use LDOs versus buck converters comes from the

Power schematic with four stages: 48 V to 24 V buck, 24 V to 5 V buck, 24 V to 12 V LDO, and 5 V to 3.3 V LDO through a Schottky diode. FULL SIZE
FIG. 1.2 — Power stages: 48→24 V, 24→5 V, 24→12 V, 5→3.3 V

§2Microcontroller

The team's microcontroller of choice is the RP2040, so this board follows that standard. The chip is responsible for inputting and fulfilling steering, velocity, and braking commands from a Raspberry Pi (which has a gamepad plugged into it for the initial version of this project), as well as communicating sensor readings back to the Pi for live telemetry. The commands are fulfilled with three separate PID controllers for velocity, steering, and braking. The board communicates to the Pi via USB serial, which has built-in error handling and better wire insulation than the SPI or UART options we had on hand.

RP2040 schematic with USB-C power and data, onboard LED, QSPI flash storage, a 12 MHz crystal, and a dedicated boot-select button. FULL SIZE
FIG. 1.3 — RP2040, USB-C, flash, and crystal

§3Actuators and sensing

Stepper level shifters (SN74AHCT244) and drivetrain PWM-to-analog filters with a TLV9002 op-amp. FULL SIZE
FIG. 1.4 — Stepper and drivetrain interfaces
Clutch driver: a UCC27624 gate driver switching two MOSFETs for the 24 V steer and brake clutches, each fused with a flyback diode. FULL SIZE
FIG. 1.5 — Clutch drivers
Voltage dividers scaling four RPM inputs, steering angle, and brake pressure down to microcontroller levels. FULL SIZE
FIG. 1.6 — Sensor voltage dividers

§4Layout

PCB layout view with copper pours in red and blue, connectors labelled RPM, STEER, BRAKE, BR_SENSE, and ST_SENSE. FULL SIZE
FIG. 1.7 — Board layout

§5Files