

Mars rover V1
┌──────────────────────────┐ EN ──┤ ├── GPIO 23 GPIO 36 ──┤ ├── GPIO 22 (SCL → BMP280 + OLEDs) GPIO 39 ──┤ ├── GPIO 21 (SDA → BMP280 + OLEDs) GPIO 34 ──┤ ESP32 ├── GPIO 19 ◄── Camera Servo PWM GPIO 35 ──┤ WROOM ├── GPIO…
- Size
- 80 × 60 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 27
- Nets
- 35
- Pads
- 91
- Tracks, vias
- 176, 0
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 30 Mar 2026
- Updated
- 3 Apr 2026
Overview
Mars rover V1 is an open-source printed circuit board by Muhammad-296, from the Muhammad-296/Mars-Rover repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 60 mm with 27 parts on 35 nets, routed with 176 tracks and 0 vias.
Its parts include 18 connectors, 2 resistors, 2 diodes and 1 IC. It belongs with the robots and motor control boards of this library.
README
README.mdMARS ROVER
v5.1 Enhanced Edition
📋 Table of Contents
- 📊 Project Stats
- 🛸 Mission Overview
- ⚡ Core Features
- 🗺️ System Architecture
- 🔌 Wiring Diagram
- 🔩 Hardware Components
- 🗃️ Pin Mapping
- 📍 ESP32 Pinout Visual
- 💻 Software Stack
- 🎮 GUI Panels
- ⌨️ Keyboard Controls
- 📡 WebSocket Protocol
- 🛡️ Safety Features
- 🖥️ OLED Display Panels
- 🚀 Getting Started
- 📁 Project Structure
- 🗺️ Roadmap
- ❓ FAQ
- 🔧 Troubleshooting
- 📋 Changelog
- ⚠️ Known Limitations
- 🤝 Contributing
- 📄 License
📊 Project Stats at a Glance
| Stat | Value |
|---|---|
| 🔧 Hardware Components | 10 |
| ⚙️ DC Motors | 6 |
| 🦾 Servo Channels | 2 (Camera + Gripper) |
| 📡 WebSocket Commands | 15 |
| 🛡️ Safety Layers | 6 |
| 🖥️ OLED Panels | 2 |
| 📊 GUI Panels | 10 |
| 📈 Telemetry Streams | 4 |
| 🌐 Comm Protocol | WebSocket Port 81 |
| ⚡ Watchdog Timeout (ESP32) | 500 ms |
| ⏱️ Watchdog Timeout (GUI) | 3 s |
| 🔄 Reconnect Interval | 2 s |
🛸 Mission Overview
Mars Rover Mission Control is a full-stack robotics project combining a custom ESP32-powered 6-wheel rover chassis with a Python PyQt5 GUI for real-time telemetry, remote driving, camera panning, and gripper control — all over Wi-Fi via WebSocket.
⚡ Core Features
| Icon | Feature | Description |
|---|---|---|
| ⚙️ | 6 DC Motors | Paired as 3 channels for tank-style differential drive — direction only, no PWM needed |
| 📷 | ESP32-CAM on Servo | Live camera with 0°–180° pan control, step 10° per command via GPIO 19 |
| 🌡️ | BMP280 Sensor | Real-time temperature, pressure & altitude over I²C at 0x76 / 0x77 |
| 📡 | HC-SR04 Radar | Ultrasonic proximity with WARN @ 80 cm and CRIT @ 30 cm threshold alerts |
| 🦾 | Servo Gripper | Object manipulation via GPIO 18 — Open: 90° · Close: 10° with state confirmation |
| 🟣 | Custom PCB | ESP32 breakout with all motor, servo & sensor headers fully populated |
| 🎮 | Sci-Fi GUI | PyQt5 Mission Control with live charts, arc gauges, radar display & safety watchdog |
| 🖥️ | Dual OLED Display | 128×64 panels at 0x3C and 0x3D — drive state left, sensors & camera right |
[blocked]
🗺️ System Architecture
┌──────────────────────────────────────────┐ ┌──────────────────────────────────────────┐
│ 🖥️ MISSION CONTROL │ │ ⚡ ESP32 FIRMWARE │
│ Python PyQt5 │ │ Arduino C++ │
│ │ │ │
│ ┌────────────────────────────────────┐ │ │ ┌────────────────────────────────────┐ │
│ │ 🎮 PyQt5 GUI v5.1 │ │ │ │ 🔧 Motor Driver (L298D × 2) │ │
│ │ Boot Sequence · Key Overlay │ │ │ │ CH1: IN1(27) IN2(26) ◀ Left │ │
│ │ Startup Config · Watchdog Timer │ │ │ │ CH2: IN3(25) IN4(33) Right ▶ │ │
│ └────────────────────────────────────┘ │ │ └────────────────────────────────────┘ │
│ │ │ │
│ ┌─────────────────┐ ┌─────────────────┐ │ │ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 📊 Arc Gauges │ │ 📈 Telemetry │ │ │ │ 📷 Camera Servo │ │ 🦾 Gripper │ │
│ │ Temp · Press │ │ 4 Streams │ │ │ │ GPIO 19 │ │ GPIO 18 │ │
│ │ Alt · Dist │ │ 80-pt History │ │ │ │ 0° to 180° │ │ 10° / 90° │ │
│ └─────────────────┘ └─────────────────┘ │ │ └─────────────────┘ └─────────────────┘ │
│ │ │ │
│ ┌─────────────────┐ ┌─────────────────┐ │ │ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 🔴 Proximity │ │ 📶 Latency │ │ │ │ 🌡️ BMP280 │ │ 🖥️ Dual OLED │ │
│ │ WARN @ 80 cm │ │ Ping Graph │ │ │ │ I²C · SDA/SCL │ │ 0x3C · 0x3D │ │
│ │ CRIT @ 30 cm │ │ Auto-Reconnect │ │ │ │ 📡 HC-SR04 │ │ Left · Right │ │
│ └─────────────────┘ └─────────────────┘ │ │ │ Trig:17 Echo:16│ │ │ │
└──────────────────────────────────────────┘ │ └─────────────────┘ └─────────────────┘ │
│ └──────────────────────────────────────────┘
│ │[blocked]
🔌 Wiring Diagram
┌─────────────────────┐
│ ESP32 │
│ │
GPIO 27 ──────┤ IN1 ┌──────────┐ │
GPIO 26 ──────┤ IN2 │ L298D │───┼──── Left Motors (×3 parallel)
│ │ Driver │ │
GPIO 25 ──────┤ IN3 │ #1 │───┼──── Right Motors (×3 parallel)
GPIO 33 ──────┤ IN4 └──────────┘ │
│ │
GPIO 19 ──────┤─────── Camera Servo ─┼──── ESP32-CAM Pan (0°–180°)
GPIO 18 ──────┤─────── Gripper Servo ┼──── Gripper (10°=close / 90°=open)
│ │
GPIO 17 ──────┤ TRIG ┌────────────┐ │
GPIO 16 ──────┤ ECHO │ HC-SR04 │ │ Proximity Radar
│ └────────────┘ │
│ │
SDA ────────┤──┬── BMP280 ─────────┼──── Temp · Press · Alt
SCL ────────┤ ├── OLED 0x3C ──────┼──── Left Panel (Drive State)
│ └── OLED 0x3D ──────┼──── Right Panel (Sensors + Cam)
│ │
3.3V / GND ───────────────┼──── All peripherals
└─────────────────────┘🔩 Hardware Components
📦 Click to expand full component list
| # | Component | Qty | GPIO / Bus | Details |
|---|---|---|---|---|
| 01 | 🔵 ESP32 DevKit / WROOM | 1 | — | Wi-Fi · WebSocket server port 81 |
| 02 | 📷 ESP32-CAM | 1 | GPIO 19 | Mounted on pan servo · 0°–180° |
| 03 | ⚙️ DC Gear Motors | 6 | IN1–IN4 | Paired 3+3 wired as 2 channels |
| 04 | 🔌 L298D Motor Driver | 2 | 27 · 26 · 25 · 33 | No Enable pin · direction only |
| 05 | 🦾 Servo — Camera Pan | 1 | GPIO 19 | Range 0°–180° · Step 10° |
| 06 | 🤖 Servo — Gripper | 1 | GPIO 18 | Open: 90° · Close: 10° |
| 07 | 📡 HC-SR04 Ultrasonic | 1 | Trig 17 · Echo 16 | Proximity radar 0–500 cm |
| 08 | 🌡️ BMP280 | 1 | I²C · 0x76/0x77 | Temperature · Pressure · Altitude |
| 09 | 🖥️ SSD1306 OLED 128×64 | 2 | I²C · 0x3C · 0x3D | Left: Drive state · Right: Cam + Sensors |
| 10 | 🟣 Custom PCB | 1 | — | ESP32 breakout · all headers populated |
⚡ Motor Channel Wiring
| Channel | IN+ | IN− | Side | Motors |
|---|---|---|---|---|
| CH 1 | GPIO 27 | GPIO 26 | ◀ Left | 3 × DC motor (parallel) |
| CH 2 | GPIO 25 | GPIO 33 | Right ▶ | 3 × DC motor (parallel) |
Each channel drives 3 motors wired in parallel — all spin together as one unit. No PWM / Enable pin needed.
[blocked]
🗃️ Pin Mapping
| Function | GPIO | Type | Notes |
|---|---|---|---|
IN1 — Left Motor Forward | 27 | Digital Out | Left motor group |
IN2 — Left Motor Reverse | 26 | Digital Out | Left motor group |
IN3 — Right Motor Forward | 25 | Digital Out | Right motor group |
IN4 — Right Motor Reverse | 33 | Digital Out | Right motor group |
| Camera Servo Signal | 19 | PWM | 0°–180° · step 10° per command |
| Gripper Servo Signal | 18 | PWM | 10° = closed · 90° = open |
Ultrasonic TRIG | 17 | Digital Out | HC-SR04 trigger pulse |
Ultrasonic ECHO | 16 | Digital In | HC-SR04 echo receive |
BMP280 SDA | SDA | I²C | Shared I²C bus |
BMP280 SCL | SCL | I²C | Shared I²C bus |
OLED Left 0x3C | SDA / SCL | I²C | Drive state display |
OLED Right 0x3D | SDA / SCL | I²C | Camera gauge + sensor readout |
📍 ESP32 Pinout Visual
┌──────────────────────────┐
EN ──┤ ├── GPIO 23
GPIO 36 ──┤ ├── GPIO 22 (SCL → BMP280 + OLEDs)
GPIO 39 ──┤ ├── GPIO 21 (SDA → BMP280 + OLEDs)
GPIO 34 ──┤ ESP32 ├── GPIO 19 ◄── Camera Servo PWM
GPIO 35 ──┤ WROOM ├── GPIO 18 ◄── Gripper Servo PWM
GPIO 32 ──┤ ├── GPIO 5
GPIO 33 ──┤ ◄── IN4 Right REV ├── GPIO 17 ◄── HC-SR04 TRIG
GPIO 25 ──┤ ◄── IN3 Right FWD ├── GPIO 16 ◄── HC-SR04 ECHO
GPIO 26 ──┤ ◄── IN2 Left REV ├── GPIO 4
GPIO 27 ──┤ ◄── IN1 Left FWD ├── GPIO 2
GPIO 14 ──┤ ├── GPIO 15
GPIO 12 ──┤ ├── GND
GND ──┤ ├── VIN (5V)
└──────────────────────────┘
Legend: ◄── = used pin (blank) = available💻 Software Stack
| Layer | Technology | Details |
|---|---|---|
| 🎮 GUI | Python 3 + PyQt5 v5.1 | Sci-fi Mission Control · Boot sequence · Keyboard overlay |
| 📡 Communication | WebSocket | websocket-client ↔ WebSocketsServer (port 81) |
| ⚡ Firmware | Arduino C++ / ESP32 | Motor · Servo · Sensor · OLED control loop |
| 🌡️ Sensor Library | Adafruit BMP280 | Temperature · Pressure · Altitude |
| 🖥️ Display Library | Adafruit SSD1306 + GFX | Dual OLED animated panels |
| 🦾 Servo Library | ESP32Servo | Smooth sweep movement |
🎮 GUI Panels
🖥️ Click to expand all GUI panel details
| Panel | What It Shows | Details |
|---|---|---|
| 📊 Arc Gauges | 4 animated dials | Temperature · Pressure · Altitude · Distance |
| 📈 Telemetry Charts | Scrolling line charts | 80-point history · 4 live data streams |
| 🔴 Proximity Radar | Concentric ring display | ⚠️ WARN @ 80 cm · 🚫 CRIT @ 30 cm |
| 📶 Latency Monitor | Bar graph ping history | Color-coded green / amber / red by latency |
| 📷 Camera Panel | Servo arc gauge | A ← pan left · pan right → D |
| 🦾 Gripper Panel | Position indicator | O → Open · C → Close |
| 🤖 Rover Visualizer | State renderer | IDLE · FORWARD · BACKWARD · TURN L/R |
| 🕹️ D-Pad Widget | On-screen controller | Highlights active direction in real time |
| 📋 Mission Log | Timestamped event log | Auto-scrolling · last 50 events |
| 📡 Status Bar | Connection indicator | Signal bars · Ping ms · Clock |
✨ Special Features
| Feature | Description |
|---|---|
| 🚀 Boot Sequence | 17-stage POST initialization with progress bar |
| 🔗 Startup Config Dialog | Enter ESP32 IP at launch — no code editing needed |
| ⌨️ Keyboard Shortcut Overlay | Press ? to toggle semi-transparent full-screen help panel |
| 🛡️ Safety Watchdog | Auto-stop motors after 3 s of no key input |
| 🛑 Instant Stop | S sent on key release — bypasses all async queues |
| 🌐 Hex-Grid Background | Sci-fi background with depth-layered vignette |
[blocked]
⌨️ Keyboard Controls
| Key | Action | Category |
|---|---|---|
↑ | Drive Forward | 🚗 Movement |
↓ | Drive Backward | 🚗 Movement |
← | Turn Left | 🚗 Movement |
→ | Turn Right | 🚗 Movement |
| (release) | ⚡ Instant Stop | 🛑 Safety |
A | Camera pan Left | 📷 Camera |
D | Camera pan Right | 📷 Camera |
O | Open gripper | 🦾 Gripper |
C | Close gripper | 🦾 Gripper |
? | Toggle keyboard overlay | ℹ️ App |
ESC | Exit application | ℹ️ App |
📡 WebSocket Command Protocol
| Command | Direction | Action |
|---|---|---|
F | GUI → ESP32 | 🟢 Move Forward |
B | GUI → ESP32 | 🟡 Move Backward |
L | GUI → ESP32 | 🔵 Turn Left |
R | GUI → ESP32 | 🔵 Turn Right |
S | GUI → ESP32 | 🔴 INSTANT STOP |
A | GUI → ESP32 | 📷 Camera pan left |
D | GUI → ESP32 | 📷 Camera pan right |
O | GUI → ESP32 | 🦾 Open gripper |
C | GUI → ESP32 | 🦾 Close gripper |
SENSOR | GUI → ESP32 | 🌡️ Request sensor reading |
PING | GUI → ESP32 | 📶 Latency measurement |
t,p,alt,d | ESP32 → GUI | 📊 Sensor telemetry (CSV) |
<angle> | ESP32 → GUI | 📷 Camera position (integer) |
GRIPPER_OPEN | ESP32 → GUI | 🦾 Gripper state confirm |
GRIPPER_CLOSE | ESP32 → GUI | 🦾 Gripper state confirm |
[blocked]
🛡️ Safety Features
| Feature | Trigger | Response |
|---|---|---|
| ⚡ Instant Stop | Key released | S sent immediately · bypasses async queue |
| ⏱️ GUI Watchdog | No key input > 3 s | Auto-sends S · resets state to IDLE |
| ⏱️ ESP32 Watchdog | No command > 500 ms | Hardware-level motor cutoff |
| 🔄 Auto-Reconnect | Link dropped | GUI retries every 2 s automatically |
| ⚠️ Obstacle Warning | Distance < 80 cm | Yellow alert + log entry |
| 🚫 Obstacle Critical | Distance < 30 cm | Red alert + log entry |
[blocked]
🖥️ OLED Display Panels
| OLED | I²C Address | Displays | Animation Style |
|---|---|---|---|
| Left | 0x3C | Drive state: IDLE / FWD / REV / TURN L / TURN R | Pulse rings · motion lines · turn arcs |
| Right | 0x3D | Camera gauge + BMP280 + HC-SR04 + Gripper status | Sweeping servo arc · scan line |
Both OLEDs run a welcome animation on boot: border reveal → particle burst → countdown → GO! splash
🚀 Getting Started
1️⃣ Flash the ESP32
Install these Arduino libraries via Library Manager:
| Library | Purpose |
|---|---|
ESP32Servo | Servo motor control |
WebSockets by Markus Sattler | WebSocket server |
Adafruit BMP280 | Temperature & pressure |
Adafruit SSD1306 | OLED display driver |
Adafruit GFX Library | Graphics primitives |
Update credentials in firmware/mars_rover_esp32.ino:
// Update Wi-Fi credentials before flashing
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";Flash via Arduino IDE. The IP address appears on the left OLED after connecting to Wi-Fi.
2️⃣ Run the Python GUI
# Install Python dependencies
pip install PyQt5 websocket-client
# Launch Mission Control
python mars_rover_gui.pyEnter your rover's IP in the startup dialog:
ws://192.168.x.x:81📁 Project Structure
mars-rover/
├── 📁 firmware/
│ └── mars_rover_esp32.ino ← ESP32 Arduino firmware
├── 📁 gui/
│ └── mars_rover_gui.py ← Python PyQt5 Mission Control v5.1
├── 📁 hardware/
│ ├── pcb/ ← KiCad PCB design files
│ └── cad/ ← SolidWorks 3D model files
├── 📁 docs/
│ ├── pcb_layout.png
│ └── rover_3d.png
└── README.md[blocked]
🗺️ Roadmap
| Status | Feature | Version |
|---|---|---|
| ✅ | 6-motor differential drive | v1.0 |
| ✅ | WebSocket command protocol | v2.0 |
| ✅ | BMP280 + HC-SR04 telemetry | v3.0 |
| ✅ | Dual OLED display panels | v4.0 |
| ✅ | PyQt5 sci-fi GUI + safety watchdog | v5.0 |
| ✅ | Gripper servo + camera pan | v5.1 |
| 🔄 | Gamepad / joystick controller support | v5.2 |
| 🔄 | Live video stream in GUI | v5.2 |
| 🔄 | Autonomous obstacle avoidance mode | v6.0 |
| 🔄 | GPS telemetry integration | v6.0 |
| 🔄 | Mobile app (Flutter) | v7.0 |
| 💡 | Robotic arm (multi-joint) | Future |
| 💡 | AI object detection via camera | Future |
✅ Done · 🔄 In Progress / Planned · 💡 Ideas
❓ FAQ
Q: What Wi-Fi frequency does the ESP32 use?
The ESP32 operates on 2.4 GHz Wi-Fi only. It does not support 5 GHz networks. Make sure your router is broadcasting on 2.4 GHz and that your credentials are correctly set in the firmware.
Q: How do I find the ESP32's IP address?
After flashing and powering on, the ESP32 connects to Wi-Fi and displays its IP address on the left OLED panel. You can also check your router's device list or use a network scanner like the Fing app.
Q: Can I control the rover from outside my home network?
Not by default. The WebSocket server runs on a local IP inside your LAN. To control the rover remotely you would need to set up port forwarding on your router or use a tunneling service like ngrok.
Q: Can I add speed control (PWM) to the motors?
Yes. The current firmware uses direction-only control. To add speed control, connect the EN pins of the L298D to ESP32 PWM-capable GPIOs and use ledcWrite() in the firmware.
Q: Why does the GUI lose connection after a few minutes?
This is usually a Wi-Fi power-saving issue on the router. Increasing the PING frequency in the GUI will keep the connection alive. You can also disable client idle timeout on your router.
Q: What Python version is required?
Python 3.7 or higher is recommended. Python 3.10 / 3.11 is the most stable combination with PyQt5.
🔧 Troubleshooting
🔴 GUI cannot connect to rover
| Check | Solution |
|---|---|
| ESP32 IP address | Verify IP shown on left OLED matches what you entered in the dialog |
| Same network | Ensure PC and ESP32 are on the same 2.4 GHz Wi-Fi network |
| Port blocked | Check firewall — port 81 must be open |
| Firmware running | Re-flash if the OLED shows no IP or stays blank |
| WebSocket URL format | Must be exactly ws://192.168.x.x:81 — no trailing slash |
🔴 Motors not responding
| Check | Solution |
|---|---|
| Power supply | Motor driver needs separate 5–12V supply — not USB alone |
| GPIO wiring | Verify IN1/IN2/IN3/IN4 match GPIOs 27/26/25/33 |
| L298D power LED | Should be lit when driver is powered |
| Motor wiring | Check each motor group is correctly wired in parallel |
🔴 BMP280 not detected
| Check | Solution |
|---|---|
| I²C address | Try both 0x76 and 0x77 — depends on the SDO pin state |
| SDA / SCL wiring | Confirm correct ESP32 I²C pins are used |
| Pull-up resistors | I²C lines need 4.7kΩ pull-ups to 3.3V if not on breakout board |
🔴 OLEDs not displaying
| Check | Solution |
|---|---|
| I²C addresses | Left must be 0x3C, Right must be 0x3D |
| Shared bus | All I²C devices (BMP280 + 2× OLED) share the same SDA/SCL |
| Power | OLEDs run on 3.3V — do not connect to 5V |
🔴 Servo jitter or not moving
| Check | Solution |
|---|---|
| PWM GPIO | Camera = GPIO 19, Gripper = GPIO 18 — verify correct pins |
| Power | Servos draw peak current — use a dedicated 5V 2A supply |
| Library | Ensure ESP32Servo is installed, not the standard Servo library |
📋 Changelog
| Version | Date | Changes |
|---|---|---|
| v5.1 | 2026 | Added gripper servo · camera pan · dual OLED boot animation · auto-reconnect |
| v5.0 | 2026 | Full PyQt5 GUI rewrite · safety watchdog · proximity radar · telemetry charts |
| v4.0 | 2026 | Dual OLED display panels · drive state animations |
| v3.0 | 2026 | BMP280 sensor integration · HC-SR04 ultrasonic · telemetry streaming |
| v2.0 | 2026 | WebSocket protocol · Python GUI v1 · motor control |
| v1.0 | 2026 | Basic ESP32 motor control · serial commands |
⚠️ Known Limitations
| # | Limitation | Details |
|---|---|---|
| 1 | No speed control | Motors run at full voltage — no PWM speed adjustment in current firmware |
| 2 | 2.4 GHz Wi-Fi only | ESP32 does not support 5 GHz networks |
| 3 | Single client | WebSocket server handles one GUI client at a time |
| 4 | No video stream in GUI | ESP32-CAM stream must be viewed separately via browser |
| 5 | No encryption | WebSocket communication is unencrypted (ws://, not wss://) |
| 6 | Fixed sensor poll rate | Sensor data is polled on SENSOR command only — no push mode |
| 7 | Windows / Linux tested | GUI may need adjustments for macOS PyQt5 rendering |
🤝 Contributing
# 1. Fork the repository
# 2. Create your feature branch
git checkout -b feature/my-feature
# 3. Commit your changes
git commit -m "feat: add my feature"
# 4. Push and open a Pull Request
git push origin feature/my-featureContribution areas welcome:
- 🎮 GUI improvements and new panels
- ⚡ Firmware optimizations
- 📡 New sensor integrations
- 🌐 Mobile app development
- 📖 Documentation improvements
📄 License
This project is licensed under the MIT License — see LICENSE for details.
🚀 MARS ROVER MISSION CONTROL v5.1
ESP32 · Python · WebSocket · Real-Time Telemetry
Built for Exploration
Parts
27| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | Screw_Terminal_01x02 | TerminalBlock_RND:TerminalBlock_RND_205-00232_1x02_P5.08mm_Horizontal | J13, J14, J15, J16, J17, J18, J19, J20, J21 |
| 5 | Conn_01x04_Socket | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3, J4, J5, J7, J9 |
| 4 | MountingHole | MountingHole:MountingHole_3mm | H1, H2, H3, H4 |
| 2 | 130 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R4 |
| 2 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J11, J12 |
| 2 | LED | LED_THT:LED_D5.0mm | D1, D4 |
| 1 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J8 |
| 1 | Conn_01x03_Socket | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J6 |
| 1 | ~ | ESP32_Footprints:ESP32_30pin | U3 |
Questions
How big is the Mars rover V1 PCB?
It measures 80 × 60 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Mars rover V1 use?
27 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Mars rover V1 KiCad files?
From the Muhammad-296/Mars-Rover repository on GitHub, at the commit this page was made from: the board is Electrical/Hardware/Mars_Rover/mars_rover_V1.kicad_pcb and its schematic Electrical/Hardware/Mars_Rover/mars_rover_V1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mars rover V1 design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers47.6 × 27.3 mm

- 2 layers77.4 × 77.4 mm

CORAZON LEDS CON FADE
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
27 parts915 - 2 layers44.2 × 29.3 mm

- 2 layers40 × 40 mm

- 2 layers22 × 42 mm

Nvme bm to e
CRImier/MyKiCad
My KiCad boards. Can't be bothered uploading individually anymore, so here you go.
27 parts253GPL-3.0 - 2 layers80 × 61 mm

PicoProducer
pjgpetecodes/pico-streamdeck
This project is an OBS Controller using a Raspberry Pi Pico and CircuitPython.
27 parts230MIT - 2 layers186 × 45 mm

AddOnD
freeDSP/freeDSP-aurora
freeDSP ADAU1452 with 8 analog input, 8 analog outputs, S/P-DIF I/O, ADAT I/O, USB Audio Class2, WiFi, Bluetooth
27 parts226CC-BY-SA-4.0 - 2 layers29.6 × 40.6 mm

Dbwifi revB
ugcs/ddc
Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.
27 parts223