JPL Open Source Rover
A build-it-yourself, six-wheeled rover scaled down from the JPL Mars rover design, made from consumer off-the-shelf parts.
- Wheeled
- Open source
- ROS
- 3D printable
Suggested by Robotheca, created by @nasa-jpl (opens in a new tab), from github.com/nasa-jpl/open-source-rover (opens in a new tab). Pinned to commit 0bea824 (opens in a new tab).
- Hardware license
- Apache-2.0 (opens in a new tab)
- Software license
- Apache-2.0 (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (6 scripts)
- electrical/pcb/control_board/documentation/utilities/export_gerbers.sh (opens in a new tab)
- electrical/pcb/control_board/documentation/utilities/export_layout.sh (opens in a new tab)
- electrical/pcb/control_board/documentation/utilities/export_schematic.sh (opens in a new tab)
- electrical/pcb/control_board/documentation/utilities/render_3d.sh (opens in a new tab)
- electrical/wiring/wireviz/generateHarness.bat (opens in a new tab)
- electrical/wiring/wireviz/generateHarness.sh (opens in a new tab)
Photo and 3D model

3D preview converted from github.com/nasa-jpl/open-source-rover at 0bea824, under Apache-2.0. View the original files from GitHub (629 KB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Driving over rough terrain with a six-wheel rocker-bogie suspension that keeps all wheels in ground contact.
- Differential pivot that shifts weight from one side of the rover to the other while climbing.
- Six-wheel Ackermann-style steering where each wheel's direction and speed are governed by the control system.
- Can be extended with sensors, cameras, a head display or a robot arm; a Raspberry Pi serves as the brain and can be reached over Bluetooth, WiFi or USB.
- Around 1.6 m/s top speed according to the spec table, subject to motor selection; about 3 hours of drive time from a 7.2Ah battery on rocky terrain.
- Powers down when battery voltage drops below roughly 13-14V.
Bill of materials
34 parts34 of 34 parts shown
| # | Component | Quantity | Est. price | Supplier |
|---|---|---|---|---|
| 1 | 1 CAP CER 10000PF 50V X7R RADIAL | 20 | $0.16≈ €0 | – |
| 2 | 2 CAP ALUM 100UF 20% 50V RADIAL | 10 | $0.25≈ €0 | – |
| 3 | 3 CAP CER 0.1UF 50V X7R RADIAL | 10 | $0.21≈ €0 | – |
| 4 | 4 CAP ALUM 10UF 20% 50V RADIAL | 10 | $0.16≈ €0 | – |
| 5 | 5 DIODE SCHOTTKY 25V 10A TO220AC | 2 | $1.93≈ €2 | – |
| 6 | 6 DIODE GEN PURP 75V 300MA DO35 | 10 | $0.11≈ €0 | – |
| 7 | 7 FUSEHOLDER BLOCKS - PCB - CLIP C | 1 | $0.68≈ €1 | – |
| 8 | 8 CONN HEADER VERT 12POS 2.54MM | 4 | $1.50≈ €1 | – |
| 9 | 9 CONN HEADER VERT 8POS 2.54MM | 4 | $0.47≈ €0 | – |
| 10 | 10 CONN HDR 20POS 0.1 TIN PCB | 1 | $1.30≈ €1 | – |
| 11 | 11 CONN HEADER VERT 40POS 2.54MM | 2 | $0.73≈ €1 | – |
| 12 | 12 CONN HEADER VERT 6POS 2MM | 2 | $0.36≈ €0 | – |
| 13 | 13 CONN HEADER VERT 20POS 2.54MM | 1 | $2.52≈ €2 | – |
| 14 | 14 CONN HDR 2POS 0.1 TIN PCB | 5 | $0.32≈ €0 | – |
| 15 | 15 TERM BLK 2P SIDE ENT 5.08MM PCB | 2 | $0.73≈ €1 | – |
| 16 | 16 CONN HEADER VERT 6POS 4.2MM | 6 | $2.27≈ €2 | – |
| 17 | 17 TRANS PNP 40V 0.2A TO92-3 | 10 | $0.29≈ €0 | – |
| 18 | 18 RES 100 OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 19 | 19 RES 10K OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 20 | 20 RES 4.7K OHM 5% 1/4W AXIAL | 25 | $0.04≈ €0 | – |
| 21 | 21 RES 0 OHM JUMPER 1/4W AXIAL | 10 | $0.08≈ €0 | – |
| 22 | 22 RES 68 OHM 5% 1/8W AXIAL | 10 | $0.05≈ €0 | – |
| 23 | 23 RES 82 OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 24 | 24 RES 1K OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 25 | 25 RES 680 OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 26 | 26 RES 220 OHM 5% 1/4W AXIAL | 10 | $0.06≈ €0 | – |
| 27 | 27 SWITCH SLIDE DIP SPDT 50MA 24V | 1 | $1.25≈ €1 | – |
| 28 | 28 LED BAR GRAPH 10SEG 570NM GRN | 2 | $3.26≈ €3 | – |
| 29 | 29 IC REG LINEAR 3.3V 750MA TO220-3 | 2 | $3.02≈ €3 | – |
| 30 | 30 FUSE GLASS 10A 125VAC 5X20MM | 2 | $1.21≈ €1 | – |
| 31 | 31 SWITCH TOGGLE ON-OFF-ON | 1 | $3.28≈ €3 | – |
| 32 | 32 TERM BLOCK HDR 24POS VERT 5MM | 1 | $3.33≈ €3 | – |
| 33 | 33 TERM BLOCK HDR 6POS VERT 3.5MM | 3 | $2.02≈ €2 | – |
| 34 | 34 TERM BLOCK PLUG 6POS STR 3.5MM | 3 | $2.59≈ €2 | – |
≈ € amounts use the ECB reference rate of 14 Oct 2026, for comparison only.
Parts total: $90.80. Read from parts_list/digikey_bom.csv at the pinned commit.
Build guide
The creator's steps, each with its instructions.
- 1Order parts
- 2Create the wiring
- 3Make the electronics
- 4Make the mechanical assemblies
- 5Set up and configure the operating system rover code
The guide appears here as you scroll.
Guide by @nasa-jpl (README.md), under Apache-2.0.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Raspberry Pi as the main computer (the rover's brain).
- Custom control PCB boards: a brain board and a motor board.
- Ten motors in total: drive motors with quadrature encoders and corner servo motors with built-in absolute encoders.
- Motor driver and power supply circuitry on the motor board, including fuses, diodes, a 3.3V linear regulator and a toggle power switch.
- LED bar graph and DIP switch on the board.
- LiPo battery (a 7.2Ah example is mentioned).
Connections
- Each cable harness connects a motor to the motor board, carrying drive motor power (M+ and M-), encoder signals (channel A, channel B, ground, +5V) and servo control signals.
- Drive motor encoder cables run from corner motors through the rocker-bogie to a 6-pin PCI-E style connector on the PCB, with front, middle and back cables marked to prevent misplacement.
- Drive motor power cables use bullet connectors on the motor side and Molex connectors on the PCB side.
- Corner servo cables carry PWM signal, positive and negative power in a fixed order matching the PCB headers.
- Wire color coding is kept consistent across all cables, e.g. red for motor positive and black for motor negative.
Cables and connectors
From the parts list.
- 21 RES 0 OHM JUMPER 1/4W AXIAL × 10
Schematics, boards and diagrams
- electrical/pcb/control_board/Brain_Board.kicad_schKiCad
- electrical/pcb/control_board/Control_Boards.kicad_pcbKiCad
- electrical/pcb/control_board/Control_Boards.kicad_schKiCad
- electrical/pcb/control_board/documentation/schematics.pdfDiagram
- electrical/pcb/control_board/gerbers/gerber_files/brain_boardGerber (PCB manufacturing)
- electrical/pcb/control_board/gerbers/gerber_files/motor_boardGerber (PCB manufacturing)
- electrical/pcb/control_board/Motor_Board.kicad_schKiCad
- electrical/wiring/images/wiring_diagram.pngDiagram
- mechanical/rocker_bogie/images/wiring_bogiejoint_done.jpgDiagram
- mechanical/rocker_bogie/images/wiring_bogiejoint.jpgDiagram
- mechanical/wheel_assembly/images/corner_wiring.jpgDiagram