Skip to content
← MindPaw

Project files

7 KB

Machine-translated by Robotheca from the original in Chinese (opens in a new tab). License: MIT (opens in a new tab).

05 — Structural Assembly and Wiring Guide

⭐ Before using this tutorial, please support this open-source project:

  1. Star ⭐ — Click the ⭐ Star in the top-right corner of the GitHub repository to bookmark this project for easy future access
  2. Fork 🍴 — Click Fork to copy the project to your GitHub account, allowing you to modify it freely
  3. Download 📥 — Click the green Code button → Download ZIP to download it locally and start building

📸 Operation diagram:

Star-Fork-Download

3D-printed Parts Assembly

Parts List

Printed PartQuantityDescription
body.stl1Main body
bottom.stl1Chassis
foot.stl4Foot (one per leg)

Assembly Steps

Step 1: Install the Base

  1. Place bottom.stl flat on the work surface.
  2. Install the 4 servos into the pre-cut slots on the base.
  3. Secure with screws (M2 screws recommended).

Step 2: Assemble the Body

  1. Align body.stl with the base.
  2. Fasten the two parts together from the bottom using screws.
  3. Route the wiring through the internal cavity of the body.

Step 3: Install the Feet

  1. Attach the 4 foot.stl parts to the servo arms.
  2. Adjust each foot to the initial angle (90 degrees).

Circuit Wiring Diagram

                         +5V (direct battery supply)
                          │
    ┌─────────────────────┼──────────────────────────┐
    │                     │                          │
Servo1~4 red wire → 5V    Speaker + PIN       HLK-V20
                   ┌────┤ NPN                      │
                   │ 1KΩ│ Triode                    │
GPIO16(D0) ────────┘    │ E                         │
                         │ GND                       │
ESP12F                                               │
┌────────────────────────────────────────────────────┤
│                                            GPIO0 ──┤← HLK-V20 TX
│ GPIO14 ──1KΩ── Servo1 + OV2640_SCK                │
│ GPIO12 ──1KΩ── Servo3 + OV2640_MISO               │
│ GPIO13 ──1KΩ── Servo4 + OV2640_MOSI               │
│ GPIO15 ──▶ OV2640_CS + 10KΩ↓GND (⚠ must!)         │
│ GPIO16 ──▶ Speaker (triode drive)                 │
│ GPIO0  ──▶ HLK-V20 TX (SoftwareSerial RX)         │
│ GPIO2  ──◀ Button 1 → GND (INPUT_PULLUP)          │
│ GPIO4  ──▶ OLED SDA (I2C)                         │
│ GPIO5  ──▶ OLED SCL (I2C)                         │
│ A0     ──▶ Voltage divider → Battery+             │
│ TX(GPIO1) → USB-TTL RX (debug port)               │
│ RX(GPIO3) → USB-TTL TX (debug port)               │
└────────────────────────────────────────────────────┘

Detailed Wiring of Each Module

Servos ×4

ServoESP12FServo Wires (Orange/Red/Brown)
Servo 1GPIO14 (D5) — SignalOrange ← GPIO14, Red ← 5V, Brown ← GND
Servo 2GPIO16 (D0) — SignalOrange ← GPIO16, Red ← 5V, Brown ← GND
Servo 3GPIO12 (D6) — SignalOrange ← GPIO12, Red ← 5V, Brown ← GND
Servo 4GPIO13 (D7) — SignalOrange ← GPIO13, Red ← 5V, Brown ← GND

⚠️ Connect all servo red wires to 5V battery direct supply (do not connect to ESP's 3.3V!)

OLED Display (SSD1306, I2C)

OLED PinConnect to ESP12F
GNDGND
VCC3.3V
SCL (Clock)GPIO5 (D1) — 4.7KΩ pull-up
SDA (Data)GPIO4 (D2) — 4.7KΩ pull-up

OV2640 Camera (ArduCAM Mini, SPI)

OV2640 PinConnected to ESP12F
CSGPIO15 (D8) — 10KΩ pull-down to GND
SCK→ 1KΩ → GPIO14 (D5) — shared with Servo 1
MISO→ 1KΩ → GPIO12 (D6) — shared with Servo 3
MOSI→ 1KΩ → GPIO13 (D7) — shared with Servo 4
VCC3.3V
GNDGND

HLK-V20 Voice Module (UART)

HLK-V20 PinConnect to ESP12F
TXGPIO0 (D3) — SoftwareSerial RX
RXLeave unconnected (only used during PC configuration via USB-TTL)
VCC3.3V ~ 5V
GNDGND

Speaker (Transistor Driven)

                    +5V
                     │
                    ╱
                  ╱ Speaker (8Ω/0.5W)
                  ╲
                    │
                    │  C
GPIO16 ──[1KΩ]───── B  NPN (S8050/2N2222)
                      E
                      │
                     GND

Power Supply Solutions

MindPaw supports two power supply methods:

Option A: USB Power (Recommended, ¥0)

This is the most cost-effective method, using a phone charger + MicroUSB cable:

Phone charger (5V/1A+) ── MicroUSB cable ── ESP12F development board USB port
                                    │
                                AMS1117 regulated to 3.3V
                                    │
                            ┌───────┴───────┐
                            │               │
                         Servo 5V          OLED/OV2640/HLK-V20 3.3V
RequirementDescription
ChargerPhone charger with 5V / 1A or higher (any Android charger works)
Data cableStandard MicroUSB cable (note: must be a data cable, not a pure charging cable)
Servo powerThe 5V from the development board's USB port directly powers the servos (red wire)

⚠ SG90 servo stall current ~700mA, peak current for 4 servos ~2.8A. It is recommended to use a charger with 5V/2A or higher. If the servos stall, try a charger with higher current. During normal walking, average current is ~500mA, so a standard phone charger is sufficient.

Option B: Battery Power (Optional, ¥30+)

When mobile use (without a wired connection) is required, add a 2S lithium battery:

ModulePower SupplyVoltage
ESP12FRegulated via AMS11173.3V
Servo ×4Direct from battery5V ~ 8.4V
OLED3.3V output from ESP12F3.3V
OV26403.3V output from ESP12F3.3V
HLK-V203.3V output from ESP12F3.3V~5V

Battery Voltage Divider Circuit (ADC Detection):

Battery+ (8.4V max) ── R1 (100KΩ) ──┬── A0 (ESP12F)
                                    │
                                R2 (12KΩ)
                                    │
                                   GND

💡 Money-saving tip: Use the tea-brewing base or USB power for development and debugging first. Once everything is working, decide whether to add the battery.

⚠️ Key Notes

Prerequisites for Booting

PinBoot StateIf Not Met
GPIO0Must be HIGH (or floating)Module enters download mode
GPIO15Must be pulled down to GND with 10KΩModule fails to boot
GPIO2Must be HIGH (internally pulled up)Serial port initialization exception

Debugging Tips

  1. First Power-On: Connect only the ESP12F + USB-TTL first, and confirm that the serial port outputs logs.
  2. Servo Not Moving: Check if the 5V power supply is normal and if the servo signal wires are connected correctly.
  3. OLED Not Lighting Up: Check the I2C pull-up resistors (4.7KΩ) and confirm the address is 0x3C.
  4. HLK-V20 Not Responding: Use a USB-TTL to connect to the module and confirm that the configuration has been flashed.
  5. OV2640 Not Working: Check the GPIO15 pull-down resistor and the 1KΩ resistor shared with SPI.

Files by @ace-trump-tech, at commit 21c5492, read from GitHub in your browser. Hardware license: MIT; software license: MIT. Robotheca doesn't review code: read it before running it.