Project files
- .github9 files
- 3Dmodel3 files
- ai-infra21 files
- Docs10 files
- MindPaw_main37 files
- Picture22 files
- SCH&PCB2 files
- scripts1 file
- .gitignore1 KB
- CODE_OF_CONDUCT.md1 KB
- CONTENT-LICENSE.md1 KB
- CONTRIBUTING.md4 KB
- hardware-manifest.json1 KB
- LICENSE1 KB
- MAINTAINERS.md1 KB
- README.md22 KB
- RELEASE_NOTES.md6 KB
- SECURITY.md1 KB
- SUPPORT.md1 KB
README.md
Machine-translated by Robotheca from the original in Chinese (opens in a new tab). License: MIT (opens in a new tab).
๐ฏ What is this
MindPaw is a desktop quadruped robot project based on the ESP8266 microcontroller. Its features include:
- More than just a remote control car โ You can talk to it, make gestures at it, and it will respond with emotional reactions
- Real AI conversations โ Integrated with the Doubao large model for intelligent dialogue
- Truly affordable โ Total materials cost less than ยฅ50 (basic version only ยฅ35)
- Truly open source โ All code, circuit diagrams, and 3D printing files are provided
This project was built from scratch, not using any ready-made development board kits. So if you want to learn how to integrate ESP8266, servos, cameras, voice modules, and AI together, the code and documentation here should help you.
๐ฆ Where to Start
This repository is divided into two non-blocking paths:
| Path | Target Audience | Entry Point |
|---|---|---|
| MindPaw Demo | Beginners, hardware enthusiasts who want to replicate and play with the robot dog | MindPaw_main/README.md |
| MindPaw AI Infra | AI infrastructure, edge computing, and Agent researchers | ai-infra/README.md |
| ๐ฐ๏ธ MindPaw 2.0 Streaming 3D Reconstruction | Adding "seeing ahead" capabilities to the robot dog (obstacle avoidance + browser-based point cloud) | Docs/09_Streaming_Recon.md |
| SCH & PCB | Those who want to design their own boards, prototype, or troubleshoot power/wiring issues | SCH&PCB/README.md |
Beginners do not need to install Python, Docker, or AI Gateway; after completing the basic demo, they can follow their interests into the research path. Both paths share the same firmware and hardware; leaving the Gateway address blank will revert to the original direct connection mode. The 2.0 perception layer is disabled by default; enabling it requires filling in a Recon Gateway URL in aiconfig.html.
โจ Feature Overview
| Feature | Trigger | Robot Action |
|---|---|---|
| Voice Control | Say "forward", "happy", "hello" | Execute actions, switch expressions, play sound effects |
| Gesture Control | Wave/fist/point in front of the camera | Recognize gestures and execute corresponding actions |
| Web Control | Open 192.168.4.1 in a mobile browser | Complete remote control interface with touch controls |
| AI Conversation | Web chat / Say "hello" via voice | Call Doubao API, reply with actions + expressions |
| AI Infra Gateway | Optional configuration of Gateway address | AI infrastructure tutorial for researchers; beginners can skip entirely |
| ๐ฐ๏ธ Streaming 3D Reconstruction Perception Layer (v2.0) | Automatic camera streaming | Stream each frame to Edge Gateway; robot dog can sense obstacle distance and auto-avoid; browser visualizes sparse point cloud. See Docs/09_Streaming_Recon.md |
| Emotional Response | Runs continuously and changes automatically | Displays emotions like happy/bored/sad based on interaction frequency and content |
| Expression Display | OLED screen display | 7 expressions + weather + time |
| Audio Feedback | Speaker plays melodies | 10 sound effects for startup/command confirmation/emotional expression |
๐ What You Need
Bill of Materials
The following prices are based on actual listings from Taobao/Pinduoduo (July 2026). Bulk purchases may be cheaper.
๐ Option 1: Full version (โยฅ50, with camera gesture recognition)
| Module | Reference Price | Purchase Suggestion |
|---|---|---|
| ESP12F module | ยฅ5 | Buy bare module and solder it yourself; avoid NodeMCU development board (ยฅ15, 3 times more expensive) |
| SG90 servos ร4 | ยฅ12 | ยฅ12 for 4 on Pinduoduo; ยฅ3.5 each if bought separately on Taobao |
| SSD1306 OLED 128ร64 I2C | ยฅ6 | White is cheapest; blue ยฅ7, dual-color ยฅ9 |
| OV2640 camera | ยฅ15 | Buy bare board without FIFO; avoid ArduCAM Mini (ยฅ25) |
| HLK-V20 voice module | ยฅ9 | Search "SU-03T"; cheaper than "HLK-V20", same thing |
| 8ฮฉ speaker + S8050 + resistors & capacitors | ยฅ3 | A set of components; shipping often costs more than the goods; recommended to buy together with others |
| PCB prototype | ยฅ0 | JLCPCB offers 2 free coupons per month |
| 3D printing | ยฅ0 | JLCPCB new users get free coupons |
| USB power supply | ยฅ0 | Phone charger + MicroUSB cable; everyone has one |
| Total | โ ยฅ50 |
๐ฅ Option 2: Basic Version (โยฅ35)
Remove the camera, keep voice control + AI conversation + emotional interaction. Suitable for beginners before upgrading.
| Module | Price |
|---|---|
| ESP12F ยฅ5 + SG90ร4 ยฅ12 + OLED ยฅ6 + SU-03T ยฅ9 + Speaker Kit ยฅ3 | โ ยฅ35 |
๐ก Note: ยฅ35-ยฅ50 is the bare material price, excluding postage (โ ยฅ8). It is recommended to buy all components at once for the first purchase, as postage is only paid once.
Software Preparation
| Software | Purpose | Download Link |
|---|---|---|
| VSCode | Code editor | code.visualstudio.com (opens in a new tab) |
| PlatformIO extension | Compilation and flashing | Search and install in VSCode extension store |
| Python 3 | Image conversion tool | python.org (opens in a new tab) |
| JLCPCB EDA Professional Edition | View/modify PCB | pro.lceda.cn (opens in a new tab) |
| SU-03T Configuration Tool | Configure voice module | Search "SU-03T configuration tool" on Baidu |
Free Accounts to Apply For
| Service | Purpose | Application Link | Optional? |
|---|---|---|---|
| Seniverse Weather | Fetch weather information | seniverse.com (opens in a new tab) | Optional |
| Volcano Engine Ark | AI conversation (Doubao) | console.volcengine.com (opens in a new tab) | Optional |
| JLCPCB | Free PCB prototyping, 3D printing | jlc.com (opens in a new tab) | Optional |
Both APIs above are optional features. Without configuration, the robot dog's basic movement, expressions, and voice control will still work normally.
๐ How to Replicate
To build a MindPaw from scratch, follow this order.
โญ Before you start, please support this open-source project:
- Star โญ โ Click the โญ Star button in the top-right corner of the repository to bookmark this project for easy access later.
- Fork ๐ด โ Click Fork to copy the project to your own GitHub, where you can freely modify it and submit a PR.
- Download ๐ฅ โ Click the green Code button โ Download ZIP, or clone directly:
๐ธ Operation Diagram:

git clone https://github.com/ace-trump-tech/MindPaw.git
Step 1: Flashing Firmware (Get the Code Running)
Start by purchasing only the NodeMCU + USB-TTL and spend 30 minutes to verify the environment:
# 1. Install VSCode + PlatformIO extension
# 2. Clone the project and open it
git clone https://github.com/ไฝ ็็จๆทๅ/MindPaw.git
cd MindPaw/MindPaw_main
# 3. Compile
pio run
# 4. Connect NodeMCU (GPIO0 to GND โ power on)
# 5. Flash firmware
pio run -t upload
# 6. Upload web pages
pio run -t uploadfs
# 7. Disconnect GPIO0 from GND โ press RST
# 8. Connect to WiFi "MindPaw" โ open 192.168.4.1
Detailed steps โ Docs/04_Firmware_Flashing.md
Step 2: PCB Prototyping and 3D Printing (Hardware Production)
If you have a free prototyping coupon from JLCPCB, this step won't cost you anything:
| Step | Description | Reference Document |
|---|---|---|
| Export PCB Gerber Files | Open SCH&PCB/MindPaw_SCH&PCB.epro2 โ File โ Manufacture โ Gerber | 01_Hardware_Guide.md |
| Place Order for Free Prototyping | JLCPCB order assistant โ Upload Gerber โ Use coupon | 02_PCB_Fabrication.md |
| 3D Print the Enclosure | Upload 3Dmodel/*.stl โ Select PLA โ Use coupon | 02_PCB_Fabrication.md |
Step 3: Soldering and Assembly
After receiving the PCB and 3D-printed parts:
- Solder the power section first โ test 3.3V and 5V outputs for normal operation
- Solder the ESP12F core โ flash firmware and verify
- Add modules one by one โ OLED โ servo โ voice โ camera โ speaker
- Assemble the 3D-printed parts โ install servos in the chassis โ close the body โ attach the feet
Wiring diagram โ 05_Assembly_Guide.md
Step 4: Configure API (Optional)
If you want AI conversation and weather query functions:
| Service | Application Steps | Configuration Location |
|---|---|---|
| Seniverse Weather API | Register โ Create Free Version โ Copy Key | Web Console โ Settings Page |
| Volcano Engine API | Register โ Create Inference Access Point โ Copy Key | http://192.168.4.1/aiconfig.html |
Step-by-step guide โ Docs/07_API_Guide.md
Step 4 (Optional): Start the AI Infra Gateway
ai-infra is an optional independent AI infrastructure layer. It handles upstream model adaptation, authentication, timeout, and structured output validation, making it suitable for developers who wish to explore Agents, model access, and edge-device collaboration. Beginners can skip this section and use the existing ESP8266 direct connection to Doubao mode without affecting the robot dogโs basic functions or AI conversation.
cd ai-infra
cp .env.example .env
# ็ผ่พ .env๏ผ้
็ฝฎ GATEWAY_TOKENใAI_PROVIDER ๅไธๆธธ API Key
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn gateway.app:app --host 0.0.0.0 --port 8000
When no cloud Key is available, set AI_PROVIDER in .env to mock to verify the device link first. Then open http://192.168.4.1/aiconfig.html:
- API Key: Enter
GATEWAY_TOKEN - Inference Endpoint ID: Enter
mindpaw - AI Gateway Address: Enter
http://็ฝๅ ณIP:8000/v1/chat/completions
Docker users can run cd ai-infra && docker compose up --build -d. For full instructions, see ai-infra/README.md.
Two Usage Paths
| Goal | Recommended Path |
|---|---|
| First-time reproduction of the robot dog and learning ESP8266 and Arduino | Skip ai-infra and configure the Doubao API directly |
| Research AI Agent, model routing, structured output, and edge gateways | Launch ai-infra and connect devices via Gateway |
Why is it placed in the same repository?
The current benefits of maintaining a monorepo are: beginners only need to download one repository to reproduce the project, and researchers can read the firmware, protocol, and Gateway all within the same repository. Once the interfaces stabilize and the Gateway needs to serve other robots, we can then split ai-infra into a pluggable repository or Python package while retaining versioned configuration examples in this repository.
Step Five: Configuring the Voice Module
The HLK-V20 requires configuration via a computer before use:
- Download the SU-03T configuration tool
- Connect the module via USB-TTL
- Add 22 voice commands according to the table
- Burn โ Power off โ Connect to MindPaw
Detailed command table โ Docs/07_API_Guide.md#3-hlk-v20-่ฏญ้ณๆจกๅ้ ็ฝฎ
๐ Project Structure
MindPaw/
โ
โโโ 3Dmodel/ โ 3D Printed Parts (body.stl / bottom.stl / foot.stl)
โ
โโโ SCH&PCB/ โ Circuit Design Files (LCSC EDA Professional)
โ โโโ MindPaw_SCH&PCB.epro2
โ โโโ README.md โ Hardware Reproduction, Prototyping, and Troubleshooting Guide
โ
โโโ MindPaw_main/ โ Firmware Source Code (Beginner Demo Entry)
โ โโโ README.md โ Compilation, Flashing, Acceptance, and Troubleshooting
โ โโโ src/ โ C++ Source Code
โ โ โโโ main.cpp โ Main Program (Entry, Web Server, Servo Actions)
โ โ โโโ image.cpp โ Bitmap Data for OLED Display
โ โ โโโ hlkv20.* โ HLK-V20 Voice Recognition Module Driver
โ โ โโโ ov2640.* โ OV2640 Camera Driver
โ โ โโโ speaker.* โ Melody Playback for Speaker
โ โ โโโ motion_emotion.* โ Emotional Actions for the Robodog (Dancing, Nodding, etc.)
โ โ โโโ emotion_engine.* โ Emotional State Machine (PAD Model)
โ โ โโโ gesture_nn.* โ Gesture Recognition (Lightweight MLP)
โ โ โโโ multimodal_fusion.* โ Multimodal Input Fusion
โ โ โโโ doubao_agent.* โ Doubao AI API Client
โ โ โโโ doubao_config.h โ AI Prompt Words and Configuration
โ โโโ data/ โ Web Control Interface (11 HTML Files)
โ โโโ tools/ โ Python Utility Scripts
โ โ โโโ distill_gesture.py โ Gesture Model Training Script
โ โโโ platformio.ini โ Compilation Configuration File
โ โโโ PIN_WIRING.md โ Pin Wiring Diagram
โ
โโโ ai-infra/ โ Standalone AI Gateway (Optional, Researcher Tutorial)
โ โโโ gateway/app.py โ OpenAI-Compatible Entry, Authentication, and Upstream Adaptation
โ โโโ tests/ โ Gateway Contract Unit Tests
โ โโโ .env.example โ Gateway Configuration Template
โ โโโ Dockerfile โ Container Deployment
โ โโโ README.md โ Research Topics, Experimental Path, and Gateway Startup Guide
โ
โโโ Picture/ โ Image Resources
โ โโโ MindPaw_oled/ โ Expression Source Files (BMP)
โ โโโ PCtoLCD2002/ โ Image to Pixel Art Tool
โ
โโโ Docs/ โ Documentation
โ โโโ 01_Hardware_Guide.md โ Hardware Design Import Guide
โ โโโ 02_PCB_Fabrication.md โ PCB Free Prototyping Guide
โ โโโ 03_Image_Conversion.md โ OLED Expression Creation Guide
โ โโโ 04_Firmware_Flashing.md โ Firmware Flashing Guide
โ โโโ 05_Assembly_Guide.md โ Structure Assembly and Wiring Guide
โ โโโ 06_Quick_Start.md โ 5-Minute Quick Start Guide
โ โโโ 07_API_Guide.md โ API Key Acquisition Guide
โ
โโโ hardware-manifest.json โ Hardware, Firmware, and Reproduction Path Inventory
โโโ scripts/validate_project.py โ Automated Inventory and Sensitive Configuration Validation
โ
โโโ README.md โ This File
๐ Hardware Wiring Diagram
Quick Wiring Table
| ESP12F Pin | Connected To | Notes |
|---|---|---|
| GPIO0 (D3) | HLK-V20 TX | Voice module's transmit pin |
| GPIO2 (D4) | Button โ GND | Must be HIGH at startup |
| GPIO4 (D2) | OLED SDA | I2C data, requires 4.7Kฮฉ pull-up |
| GPIO5 (D1) | OLED SCL | I2C clock, requires 4.7Kฮฉ pull-up |
| GPIO14 (D5) | Servo 1 + OV2640 SCK | โ Series 1Kฮฉ, shared with servo |
| GPIO12 (D6) | Servo 3 + OV2640 MISO | โ Series 1Kฮฉ, shared with servo |
| GPIO13 (D7) | Servo 4 + OV2640 MOSI | โ Series 1Kฮฉ, shared with servo |
| GPIO15 (D8) | OV2640 CS | โ Must have 10Kฮฉ pull-down to GND |
| GPIO16 (D0) | Speaker (transistor driven) | Or connect to Servo 2 (choose one) |
| A0 | Battery voltage divider | โ |
| TX/RX | USB-TTL debug port | For flashing and serial debugging |
โ Two most important rules:
- GPIO15 must be connected to a 10Kฮฉ pull-down resistor to GND โ otherwise the ESP8266 will fail to start
- When sharing SCK/MISO/MOSI with servos, add a 1Kฮฉ series resistor โ prevents signal conflicts
Full wiring diagram โ Docs/05_Assembly_Guide.md
๐ Documentation Index
| If you want to... | See this |
|---|---|
| The robot dog has arrived, teach it how to play | User Manual (for non-technical users) |
| Get it running in 5 minutes | Quick Start Guide |
| Compile and flash the code | Firmware Flashing Guide |
| Understand/modify the PCB | Hardware Design Import Guide |
| Order free PCB prototypes | PCB Fabrication Guide |
| Assemble and wire it up | Structure Assembly and Wiring Guide |
| Change OLED expressions | Image Conversion Guide |
| Apply for an API key | API Key Acquisition Guide |
| All pin definitions | PIN_WIRING.md |
| Reproduce the firmware demo from scratch | MindPaw_main/README.md |
| Explore AI Infra and Edge-Cloud Agent | ai-infra/README.md |
| Import/modify/order PCBs | SCH&PCB/README.md |
๐ฟ Branches and Versions
The repository currently has two remote branches, each serving different roles:
| Branch | Status | Description |
|---|---|---|
main | โ Protected candidate (recommended to set rules in GitHub Settings โ Branches) | Stable release line. Currently MindPaw 2.0 (opens in a new tab). |
feature/2.0-streaming-recon | โ
Merged into main (merge commit 4900898) | Development branch for the 2.0 perception layer. Code is already in main and can be safely deleted. |
Recommended main branch protection rules
GitHub web interface will prompt "Your main branch isn't protected". It is recommended to add the following in Settings โ Branches โ Add rule:
- โ Require a pull request before merging
- โ
Require status checks to pass before merging (at least check the three jobs:
docs-and-manifest,gateway-tests, andrecon-tests) - โ Do not allow force pushes
- โ Do not allow deletions
- โ
Require linear history (optional; do not check this if you want to keep
--no-ffmerge commits)
Clean up merged feature branches
git push origin --delete feature/2.0-streaming-recon
git branch -d feature/2.0-streaming-recon # Local
Release History
| Tag | Commit | Notes |
|---|---|---|
v2.0.0 | ac65e8c | MindPaw 2.0 โ Streaming 3D reconstruction perception layer |
| (older) | โ | MindPaw 1.x โ Desktop Dog + Doubao conversation + Emotional response |
For detailed changelog, see RELEASE_NOTES.md.
โ FAQ
Can I build this if I don't know how to program?
If you have no experience with embedded development, it is recommended that you at least learn the basic usage of Arduino (e.g., lighting up an LED, serial output). Then follow the documentation step by step. If you encounter any issues, you can open an issue on GitHub.
Do I have to use JLCPCB for PCB prototyping?
No. You can also hand-solder using a perforated board (breadboard). The PCB files are just more convenient and reliable. It is recommended to use hand-soldering for the first attempt, and then order a PCB prototype once successful.
Do I have to 3D print the shell?
No. You can also use cardboard, acrylic, or building blocks to assemble a body. The 3D model is just a reference shape I designed.
Can ESP32 be used instead?
Of course, and it's recommended. ESP32 has more pins, larger memory, and Bluetooth. Migration steps:
- Change
board = nodemcu-32sinplatformio.ini - Re-adjust the pin assignments for ESP32
- Most of the code does not need to be modified
Does the voice module have to use HLK-V20?
If you already have an LD3320, you can also connect it (requires 5 SPI pins). However, the HLK-V20 only needs 1 pin and has a higher recognition rate, so it is recommended.
Why is GPIO15 pulled down to GND?
This is a hardware requirement of the ESP8266: if GPIO15 is HIGH during startup, the chip will enter test mode and fail to operate normally. A 10Kฮฉ resistor pull-down ensures it remains LOW at startup.
๐งฐ Maintenance and Contributions
MindPaw includes firmware, real hardware, 3D models, and the optional AI Gateway. To ensure contributions are reproducible, please read the following before submitting:
- Contribution Guide: Scope of changes, evidence requirements, and manual validation requirements
- Support and Troubleshooting: Issue triage by firmware, wiring, PCB, and Gateway
- Security Policy: Physical actuators, API keys, and vulnerability reporting
- Hardware Manifest: Authoritative paths for firmware, wiring, schematics, and models
Issues cannot consist solely of unverifiable AI-generated text; authors must personally reproduce the issue, provide logs or measurement results, and be able to respond to maintainer inquiries. AI can assist with retrieval, translation, and formatting, but cannot replace hardware safety reviews and experimental validation.
The repositoryโs Quality, Firmware build, and Link check workflows automatically verify the project inventory, Gateway contracts, firmware compilation, and documentation links. Any changes involving servos, power supply, pins, or motion protocols must include power-off measures and compatibility notes.
๐ License
- Software Code (
MindPaw_main/src/): MIT License - Hardware Design (
SCH&PCB/): CC BY-NC 4.0 - 3D Models (
3Dmodel/): CC BY-NC 4.0 - Documentation (
Docs/andREADME.md): CC BY 4.0
In short: Feel free to use the code, hardware and 3D models can be used and modified for personal purposes, but not for commercial use.
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.