
Features
- 6-wheel drive platform with 4 steerable wheels
- 4-axis foldable robotic arm with gripper
- Tiltable and rotary head, with space for a development board and a camera
- Environmental sensors to measure temperature, humidity, pressure and altitude
- Custom remote control module with touchscreen, with a UI where status values are displayed and different operation modes can be selected
- Battery sensors for the rover and the custom remote control
- 4 main operation modes: conventional driving control, 360º turn control, robotic arm control, head control
- Web dashboard that displays status values and a video feed. This web dashboard is hosted in the rover
Project modules
The OpenRover's components are organized, both at a hardware and software level, in different modules:
- Central rover module: It has an Arduino Mega development board that is inside the main body of the rover and that manages all moving elements (e.g., motors, servomotors) as well as the rover's sensors and sending/receiving the radio signal
- Remote control and touchscreen module: It has an ESP32S3 development board that is responsible for the touchscreen, and an Arduino Nano that is responsible for reading the RC channel values, sending/receiving the radio signal and measuring battery levels
- Camera and webserver module: It has a RaspberryPi Zero 2W development board that is inside the head of the rover. This board connects to a camera, generates a WiFi network and hosts a web dashboard

Tech stack
Programming languages and frameworks

Other technologies
To program Arduino and ESP32 microcontrollers, the PlatformIO IDE with the Arduino Framework was used. To create the embedded UI design of the touchscreen, the SquareLine Studio platform and LVGL library were used.
GitHub repository
This is the original GitHub repository of the OpenRover project:
https://github.com/pol-valero/openrover-robotic-platform
The GitHub repository can be used to complement this project guide, since it contains designs, schematics, documentation and the most up-to-date source code.
Disclaimers
The rover's 3D design was originally made by a mechatronics engineer called Dejan, who owns an educational YouTube channel and website called "HowToMechatronics". This design was adapted and improved.
Link to the original project used for the rover's 3D design
The robotic arm's 3D design was extracted from a GitHub project made by Jakob Krantz, who also created a Mars rover replica. This design was adapted and improved.
Link to the original project used for the robotic arm's 3D design
All the OpenRover hardware and software was created from scratch, following a different approach from the one the creators of the original 3D designs followed.
Demos

See some demos of the rover, custom remote control and monitoring web dashboard here: https://github.com/pol-valero/openrover-robotic-platform/tree/main?tab=readme-ov-file#demos
Components

A list with some mechanical components needed for the rover can be found in the website of the original project used for the rover's 3D design. The rest of the mechanical and hardware components will be detailed in the next Components section.
The hardware and mechanical components were purchased on Aliexpress, but most of them are also available on Amazon.
Pol Valero

