RoboMaster Embedded Control
Overview
RoboMaster is DJI's university robotics competition. It has run for over a decade and is one of the most competitive robotics contests in China. In North America it was held as RMNA until 2025, when it became the ARC Championship (ARCC). Teams build robots on microcontrollers that fire projectiles at each other's armor plates, a bit like a real-life MOBA. We compete in the 1v1 and 3v3 formats, with two driver-controlled robots and one fully autonomous robot.
When I joined, every experienced member had just graduated. Nobody was left to maintain the control code or teach new members, and the club was close to shutting down.
What I did
Rebuilding the firmware from scratch
The code I inherited was our own modification of ARUW's Taproot framework, and it was hard
to maintain. Taproot hides most of the STM32 hardware behind its own abstractions. I
wanted to understand what the microcontroller was actually doing, and in industry nobody
hands you a ready-made competition framework, so I set it aside and started over. I worked
through open-source projects and tutorials, including USTC's lecture videos, and chose
Hunan University YueLu's basic_framework as the new base.
- Wrote and brought up the C firmware for all three robots by myself.
- Built the robots and did the wiring as well.
- Got an open-source auto-aim pipeline running on our robots (see the auto-aim project).
Leading and teaching the team
I now lead the software team, split into control (3 members) and algorithm (4 members). I didn't want anyone else to go through what I did, using code without knowing what it does, so I teach the fundamentals first. I recorded a series of STM32 development lectures for new members.
Designing our own architecture
Open-source frameworks got us to competition, but they were written for another team's robots and were hard for us to extend. I am now rewriting the firmware architecture from my own understanding so it fits our robots and is easier for new members to learn.
Results
- With a team of only three people, we finished both the 1v1 and 3v3 events at ARCC 2026 (Purdue University) and reached the 1v1 playoffs (top 8).
- Took the club from no working code and no experienced members to a 7-person software team (control + algorithm).