What if your robot could instantly learn any word you invent — and do it offline, without Internet or cloud?
With GRC AI RoboControl, that’s exactly what happens. Just open a text file, type in your command — “GO FORWARD”, “DANCE TANGO”, or even “打开灯” (turn on the light) — upload it to the board, and your robot understands it right away.
This is true custom voice AI running on an ESP32-S3:
- Works 100% offline, no Wi-Fi or cloud required.
- Supports English and Chinese with instant language switching.
- Lets you, not the manufacturer, decide what the robot understands.
Whether you’re a student learning robotics, a teacher running classroom challenges, or a hobbyist building your own voice-controlled machine, RoboControl gives you the freedom to make robots respond to your imagination.
Before / After: Why RoboControl is Different
Use Cases
Education
RoboControl helps teachers turn robotics lessons into active, hands-on learning.
- Students can create their own command sets and link them to robot actions.
- Every new command becomes a small project, where coding meets AI in a very tangible way.
- Offline operation makes it simple and reliable to use in classrooms and workshops.
Competitions
RoboControl can power robot races, challenges, and workshops.
- Teams invent their own commands and program unique behaviors.
- This format develops creativity, engineering skills, and teamwork.
- Setup is quick: a full competition can be run within a single session.
DIY & Makers
For hobbyists and developers, RoboControl is a flexible base for voice-controlled projects.
- Extend your robots with unlimited commands.
- Integrate RoboControl into existing DIY platforms and electronics.
- Experiment with bilingual setups (English + Chinese) in one project.
Step 1. Connect the board
- For uploading commands, plug the GRC AI RoboControl into your PC with a USB-C cable (UART, CP210x bridge).
- If needed, install the Silicon Labs CP210x driver so your PC can see the UART port.
Step 2. Prepare the command files
- Open commands_en.txt or commands_cn.txt in a text editor (Notepad++, VS Code).
- Add one command per line, following the formatting rules (uppercase EN / lowercase pinyin CN).
- Save the file in UTF-8 without BOM.
Step 3. Upload the commands
- Place the text file in the same folder as update_commands.exe.
- Run update_commands.exe. The utility automatically finds the UART port and uploads your file.
- Wait for the “Upload successful” message.
- Reboot the board (if the utility didn’t do it automatically).
Note: The board only updates the commands for the currently active language.
- If the board is in English mode, only the English list (commands_en.txt) will be updated.
- If it is in Chinese mode, only the Chinese list (commands_cn.txt) will be updated.
Step 4. Flash the CrowBot firmware
- Open the CrowBot Arduino sketch from the firmware repository.
- Upload it to your CrowBot via Arduino IDE (see Additional instructions in the repo).
- In the CrowBot code, there must be a handler for each new command you add. Below we’ll show how to create one with a real example.
Step 5. Test the setup
- Speak one of your new commands.
- The board recognizes it offline and sends the text to CrowBot via UART.
- CrowBot runs the matching action.
Let’s add a new voice command to our robot: “DANCE TANGO”.
This will show the complete process: from editing the command file, to uploading, to writing the handler in CrowBot’s code.
Step 1. Add the command to the list
- Open commands_en.txt in a text editor (Notepad++, VS Code).
- Add a new line at the end:
DANCE TANGO
- Save the file as UTF-8 without BOM.
Step 2. Upload the command to RoboControl
- Place commands_en.txt next to update_commands.exe.
- Run update_commands.exe.
- Wait for “Upload successful” in the console.
- Reboot the board if it doesn’t restart automatically
Step 3. Add the handler in CrowBot code
Open the Arduino sketch for CrowBot and find the part where incoming commands are processed.
Add your new handler before the final else
. For example:
- Open the Arduino sketch for CrowBot.
- Go to the section “GRC voice command”, where you’ll see existing voice command handlers in the format:
if (value == "COMMAND") {
...
}
- Next to one of the existing commands (for example, right after "GO FORWARD"), add your new handler.
- Important: place your handler before the else block, specifically before the "VOICE CONTROL" command.
For example, the new DANCE TANGO handler can look like this:
if (value == "DANCE TANGO") {
// Step 1: move forward
Motor(160, 0, 160, 0);
delay(500);
Motor(0,0,0,0);
delay(100);
// Step 2: spin around
Motor(Speed, 0, 0, Speed);
delay(calcTurnTime(180));
Motor(0,0,0,0);
delay(100);
// Step 3: move backward
Motor(0,160,0,160);
delay(500);
Motor(0,0,0,0);
delay(100);
// Step 4: spin back
Motor(Speed, 0, 0, Speed);
delay(calcTurnTime(180));
Motor(0,0,0,0);
}
Limitations & rules for commandsWhile you have the freedom to add your own phrases, there are a few important rules to follow:
1. Reserved system commands
Some commands are built into the board and cannot be changed or deleted. They handle system functions like wake/sleep, manual/voice mode, and language switching. For example:
· ROBOT WAKE UP
/ 机器人唤醒
· ROBOT SLEEP
/ 机器人睡眠
· MANUAL CONTROL
/ 手动控制
· VOICE CONTROL
/ 语音控制
· SWITCH TO CHINESE
/ 切換到英語
These are always available in the system. You should not try to add them again in your custom files.
2. Formatting requirements
To ensure recognition works correctly, follow these rules:
English commands:
o File: commands_en.txt
o All uppercase letters, only letters and spaces.
o One command per line.
o Example:
- GO FORWARD
- TURN LEFT
- STOP
- PLAY MUSIC
Chinese commands:
o File: commands_cn.txt
o Recommended format: pinyin, all lowercase, words separated by spaces.
o Example:
- da kai sen ba
- ba xiao shi hou kai ji
- bi kai wo chui
o You can also use Chinese characters. The utility automatically converts them into pinyin.
o Encoding must be UTF-8 without BOM.
Note: Both the RoboControl firmware and the board itself support tilt-based control — you can steer the robot just by tilting the board. In this project, we focus on voice commands.
Troubleshooting (common issues & fixes)UART port not visible
- Make sure the CP210x driver is installed.
- Close other programs that may be holding the COM port.
Upload stuck on first attempt
- Unplug and reconnect the UART cable.
- Run
update_commands.exe
again. - Check the utility logs for error messages.
Chinese commands not recognized
- Make sure commands are in lowercase pinyin, words separated by spaces.
- Verify file encoding is UTF-8 without BOM.
- Check for extra or missing spaces in the file.
Mismatch between utility and firmware
- Ensure you are using the correct version of
update_commands.exe
that matches your CrowBot firmware. - Use the provided test files in the repo.
- Run unit-tests for parsing if available.
Upload failed or command missing
- Simply run
update_commands.exe
again. - In many cases, a second attempt completes successfully.
✨ Classic moves
• GO FORWARD → the robot drives forward
• TURN LEFT → turns left
• STOP → stops
🎵 Fun actions
• DANCE TANGO → dances with spins
• PLAY DRUM SOLO → LEDs flash to a drum beat
• SING A SONG → a melody plays
⚡ Sci-Fi flair
• FIRE PHASERS → LEDs “fire” like phasers
• ENGAGE HYPERDRIVE → motors accelerate to maximum
We’d love to involve the community in making RoboControl even more fun and powerful:
- Fun Challenge — Share your funniest commands!
Post in the comments the most entertaining or unusual commands you gave your robot. We’ll highlight the top three funniest entries on our project page. - Shape the future — Suggest new features!
Tell us what functions you’d like to see in RoboControl’s firmware. The most popular suggestions will be added to our roadmap — and some will make it into the next firmware release. - Show your build!
Share photos or videos of your robot reacting to custom commands. We’ll feature the most creative projects in updates and social media. - Teachers can run classroom projects and competitions.
- Students can explore coding and AI without needing cloud services.
- Makers can create robots that feel truly interactive.
👉 Get your GRC AI RoboControl board
👉 See the project repository
Related Hackster projects: AI Teacher | Gate | Wild | VoicePIN
Comments