An STM32‑based modular multifunctional robotic platform featuring a dual‑axis stabilized gimbal, mecanum wheel omnidirectional mobility, FPV live video downlink, and a high‑performance independent suspension.
Loading README and project media…
Origin is a highly integrated, omnidirectional mobile robotics platform. Based on an STM32 main controller and a Raspberry Pi for high-level computer vision, it features a 2-DOF gimbal driven by Daran joint motors, a mecanum wheel chassis, real-time FPV video downlink, and a machine vision target recognition system. It is ideal for robotics algorithm validation, inspection/reconnaissance, and secondary development.
English | 简体中文
protocol) seamlessly interfaces with a PC-based serial tuning assistant for real-time PID monitoring and adjustment.The firmware (src/) utilizes a modular design. The main data flows are as follows:
src/Hardware/): Reads MPU6050/ICM20948 data via I2C; captures GMR encoder pulses via Timers; parses incoming RC receiver signals.src/SYSTEM/protocol): Handles data packetizing/depacketizing with the PC tuning assistant, providing real-time system state feedback.Origin is more than just software. It includes a complete, built-from-scratch mechanical structure and custom circuit boards. All hardware source files are open-sourced under the hardware/ directory.
.epro source files in this GitHub repo, detailed interactive BOMs and 1-click fabrication files are hosted on the OSHWHub platform.| Category | Component Name | Interface/Protocol | Core Function |
|---|---|---|---|
| Main MCU | STM32F407 Series | Global | Runs FreeRTOS, core task scheduler |
| Edge Compute | Raspberry Pi | UART / USB | Executes machine vision algorithms & logic |
| Chassis Motors | MG513 with GMR encoder (x4) | PWM + AB Phase | Mecanum drive and high-frequency velocity feedback |
| Mobility | Mecanum Wheels (Set of 4) | Mechanical | Omnidirectional movement (strafing, diagonal, spin) |
| Suspension | 110mm RC springs (x8) | Mechanical | Independent suspension (2 per wheel) for uneven terrain |
| Gimbal Actuators | Daran Joint Motor | CAN Bus | High-precision, zero-backlash gimbal stabilization |
| Gimbal Struct. | Jingyan 12-Ch High-Current Slip Ring | Electrical | 360° continuous rotation without power/signal loss |
| IMU / Sensing | MPU6050 | I2C | Provides chassis attitude data |
| Machine Vision | Binocular Camera Module | USB / CSI | Captures depth & frontal imagery for Raspberry Pi AI |
| Tactical Add-on | Laser Module | GPIO | Precise target indication in physical space |
| RC Receiver | ET16S / FS-i6S Receiver |
The project strictly follows a software/hardware separation principle:
Origin/
├── hardware/ # Hardware and structural design source files
│ ├── mechanical/ # SolidWorks 3D models (chassis, gimbal, slip ring, etc.)
│ └── PCB/ # Schematics and PCB layouts (main board, driver board)
├── src/ # STM32 low-level firmware (FreeRTOS based)
│ ├── CORE/ # Cortex-M4 core files
│ ├── FWLIB/ # STM32F4 Standard Peripheral Library
│ ├── FreeRTOS/ # FreeRTOS source code
│ ├── Hardware/ # Peripheral driver layer
│ │ ├── DrEmpower/ # Daran joint motor CAN drivers
│ │ ├── ICM20948/ & MPU6050/ # IMU attitude sensor drivers
│ │ ├── RC_drv/ # ET16S & FS-i6S receiver parsers
│ │ └── encoder.c, motor.c...# Encoders, motors, OLED, etc.
│ ├── SYSTEM/ # System-level services
│ │ └── protocol/ # PC serial tuning protocol parser
│ └── USER/ # Keil entry point (main.c) & IRQ handlers
├── .gitignore
├── README.md & README.zh.md
├── LICENSE # Software Open Source License (GPLv3)
└── LICENSE-HW # Hardware Open Source License (CC BY-NC-SA 4.0)
The project is divided into STM32 lower-level control and Raspberry Pi upper-level vision. Below is the guide for compiling and tuning the lower-level firmware:
keil-assistant extension).Keil.STM32F4xx_DFP pack.hardware/PCB/).SYSTEM/protocol to plot real-time PID curves—a must-have for chassis tuning).git clone [https://github.com/My-user04/Origin.git](https://github.com/My-user04/Origin.git)
src/USER/ and double-click Yuandian.uvprojx to launch Keil uVision 5.ST-Link Debugger or J-LINK).Reset and Run in the Flash Download tab.0 Error(s) in the build output.SAFETY WARNING: This project utilizes a 24V power system and high-torque joint motors. For the first power-on, you MUST elevate the chassis to suspend all mecanum wheels off the ground. Incorrect PID polarities can cause the robot to violently spin out of control (runaway) and cause injury or damage.
This project adopts a dual-track "Software/Hardware Separation" licensing model to protect hardware IP while fostering software community collaboration:
💻 Software / Firmware
The microcontroller source code under the src/ directory is licensed under the GNU General Public License v3.0. You are free to modify, use, and distribute this code, provided you strictly comply with the GPLv3 terms (including its copyleft provisions).
🧰 Hardware / 3D Models / PCB
All physical design files under the hardware/ directory (including SolidWorks models, assemblies, schematics, and PCBs) are licensed under the CC BY-NC-SA 4.0 (Attribution-NonCommercial-ShareAlike 4.0 International) license. You are free to share and adapt these designs for personal learning and DIY purposes, but they are strictly prohibited from being used for commercial profit or mass production/sale. You must give appropriate credit and distribute your contributions under the same license.
Note: Third-party open-source components included in this project (such as FreeRTOS and STM32 Standard Peripheral Libraries) remain strictly subject to the original licenses provided by their respective authors or vendors.
| Serial (SBUS/PPM) |
| Ultra-low latency manual override |
| FPV System | Camera Module + VTX | Direct Power | Immersive first-person video downlink |
| Interaction | 0.96-inch OLED Screen | I2C | Basic system state display & debugging |
| Power System | 24V Battery Pack | XT30 / Heavy wire | Powers motors, gimbal, and the entire control system |