Asked
— Edited
Controller Options For Rover Upgrade
Hi @Athena,
I'm rebuilding my rover to improve mission capability and would appreciate advice on controller hardware.
Current setup (ARC project with an EZBv4 controller):
- Four stepper motors running at 12 VDC, ~1 A each. An Arduino Mega generates the PWM for the stepper drivers and handles some wheel-rotation logic for the mecanum wheels. The Arduino is separate from the EZBv4.
- In my ARC project I have about three concurrent scripts that interact with the EZBv4. Those scripts primarily pulse a single IR distance sensor and drive a single servo. The sensor and servo are connected through the EZBv4.
- The rover requires the servo movement and IR pulsing to be as fast as possible. When I increase the update/pulse rate, I seem to be reaching the EZBv4’s limits (the EZB is currently handling the sensor/servo tasks in this architecture).
- I will be changing the rover DC bus to 24 V.
Question: Do you have any recommendations for a microcontroller or controller board that would be an improvement over the EZBv4 for this use case? I need something robust enough to handle tight loops and precise signal conditioning for high-rate servo and sensor tasks, while keeping the Arduino Mega (or a similar MCU) for motor PWM if needed.
Thanks, Jack
Related Hardware (view all EZB hardware)
Roli Rover
by EZ-Robot
Roli WiFi planetary rover kit, customizable with 13 ez-bit ports for add-ons, built to traverse varied surfaces. Sold by EZ-Robot
Wi-Fi / USB
Servos
24
Camera
Audio
UART
3
I2C
ADC
8
Digital
24
Related Robot Skills (view all robot skills)
EZB Connection
by Synthiam
Connects EZ-B I/O controllers to ARC via COM or IP (5 connections). Supports init scripts, battery monitoring, TCP/EZ-Script server and serial/I2C.
Speech Synthesis
by Synthiam
Speak user-defined text via PC audio or EZ-B v4 speaker; configurable voices, effects and speed; uses Windows TTS; programmatically callable.

For this use case, I’d keep ARC on the PC for orchestration and move the tight loop work off the EZBv4 onto a microcontroller that’s better suited for deterministic timing.
Best direction
Since your rover needs:
the best upgrade is usually a microcontroller dedicated to the real-time tasks, not a second "general control PC-style" board.
Good hardware options
1. Teensy 4.1
A very strong choice for this kind of job.
Why it fits:
If you’re really trying to squeeze performance out of servo timing and sensor sampling, this is one of the best off-the-shelf options.
2. ESP32
A solid option if you want:
It can work well, but for very tight real-time behavior, I’d still lean toward Teensy over ESP32.
3. STM32-based board
Also a great fit if you’re comfortable with embedded development.
Pros:
4. Arduino Mega
You already know this one, but for your requirements it’s usually not a meaningful upgrade from an EZBv4 in terms of performance for fast control loops.
It’s fine for basic logic, but if you’re hitting timing limits now, I would not pick the Mega as the final solution for the high-rate side.
ARC-specific recommendation
If the board is going to be doing custom control and sending data to ARC, a good path is to create a custom robot skill and have the MCU communicate with ARC over serial or network.
This is the right model when the controller needs to handle:
ARC then handles:
You can build that integration using a custom skill here:
https://synthiam.com/Support/Create-Robot-Skill/Overview
And if you end up using serial/UART between ARC and the microcontroller, ARC handles that well with the built-in UART/COM functions and scripts.
My practical recommendation for your build
If I were choosing for your rover, I’d suggest:
That gives you a clean split:
About the 24 V bus
Going to 24 V for the drive bus is fine, but keep the control electronics on appropriate regulated rails:
One thing to consider
If your IR sensor is the limiting factor, the board upgrade may help, but sensor choice and sampling method matter too. Some analog IR sensors are noisy or nonlinear, and you may get better results by doing:
ARC note
Questions like this are often a good fit for the ARC AI Assistant built into ARC, since it can help rewrite scripts or sketch out the integration logic right inside the editor: https://synthiam.com/Products/AI-Assistant
A couple of questions so I can recommend more precisely:
If you want, I can also suggest a specific ARC architecture for this rover and show how to structure the MCU/ARC split.
@Athena, so help me understand what you are saying. Keep the EZBv4 as the overall controller (interfacing via Wi-Fi) with my computer running ARC. Connected to the EZBv4 on the rover is the Arduino (controlling the stepper motors) and a Teensy controlling the servo motor and the IR sensor. My EZBv4 scripts are simply to activate certain features on the Arduino and the Teensy as necessary. The Teensy handling the heavy servo/IR sensor work and leaving the EZBv4 as the overall controller, not bogged down with high CPU demands. Do I understand? Jack
Yes - that’s basically the right architecture.
What I meant
Think of it like this:
So the EZBv4 does not need to be the "brains" doing the fast control loops. Instead, ARC talks to the EZBv4 over Wi-Fi, and ARC can then command the Arduino and Teensy as needed.
Important clarification
The EZBv4 should not be doing the heavy lifting for the servo and IR sensor if the Teensy is taking over those tasks.
That means:
One key point
If the Teensy is controlling the servo and IR sensor, then those devices should be wired to the Teensy, not to the EZBv4.
The EZBv4 would then mainly be used for:
A more accurate version of your setup
Your revised stack would look like:
That is a good split if your goal is to reduce timing pressure on the EZBv4.
One caution
The only thing to verify is how you want the EZBv4 to communicate with the Arduino and Teensy:
For the cleanest design, I’d usually suggest:
But if the Teensy and Arduino are doing the real-time work, you may not even need to force the EZBv4 into the middle of everything unless you specifically want it as a bridge.
Bottom line
Yes, your understanding is close: the Teensy handles the fast servo + IR work, the Arduino handles motor control, and the EZBv4 is no longer burdened with those timing-critical jobs.
The only nuance is that the EZBv4 is not necessarily the "overall controller" in the real-time sense - ARC on the PC is. The EZBv4 is more of a connected I/O endpoint for ARC.
If you want, I can draw you a simple block diagram of the ideal wiring/communication paths for this rover.
@Athena. Thank you. I would like a simple block diagram to help me understand the wiring / comms paths for the rover. Jack
Absolutely - here’s a simple high-level block diagram for the architecture you described.
Recommended control layout
What each part does
PC running ARC
EZBv4
Arduino Mega
Teensy
Wiring concept
The important part is this:
If you want it even simpler
You can think of it as:
One design note
If the Arduino and Teensy are both on the rover, you may eventually decide to let ARC talk directly to them instead of routing everything through the EZBv4. That can simplify things if the EZBv4 is not actually needed for I/O.
But for now, your diagram is a good way to visualize the split.
Helpful ARC resources
Create a custom robot skill if you want the Teensy or Arduino to behave like a first-class ARC device:
https://synthiam.com/Support/Create-Robot-Skill/Overview
Roli Rover hardware info:
https://synthiam.com/Support/Hardware/Roli-Rover
If you want, I can also make you a more detailed wiring diagram showing:
@Athena. Please make more detailed wiring diagram showing:
Thanks. Jack
Absolutely - here’s a more detailed rover wiring / comms diagram you can use as a design guide.
Detailed block diagram
Power rails
1) 24 V bus
Use this for:
Do not connect 24 V directly to:
2) 5 V rail
Typically used for:
3) 3.3 V rail
Typically used for:
Logic voltage levels
EZBv4
Arduino Mega
Teensy
If the Arduino or EZBv4 sends a 5 V TX signal into a Teensy RX pin, you may need:
Serial / comms connections
Recommended serial paths
You have a few clean options:
Option A: ARC EZBv4 Arduino / Teensy
This keeps your current architecture closer to what you already have.
Option B: ARC EZBv4, and ARC also talks directly to Arduino/Teensy via USB serial
This can be simpler if you don’t actually need EZBv4 to bridge everything.
Option C: ARC Teensy / Arduino directly, EZBv4 removed from the loop
Suggested wiring diagram by function
Grounding rules
This is the part that causes the most issues if missed.
Tie all grounds together:
Why:
Serial signals only work reliably when both devices share a common reference voltage.
Without shared ground, you can get:
A practical wiring example
If I were wiring this rover, I’d do:
One caution about the servo
If the servo is a standard hobby servo:
A servo can create power dips when it starts moving, so it’s often good to:
Best next step
If you want, I can turn this into a cleaner ASCII wiring schematic with:
If you tell me the exact Teensy model and the stepper driver model, I can make it much more precise.
@Athena.
Here are some questions you asked previously and my answers.
Can you provide a cleaner ASCII wiring schematic with:
If you tell me the exact Teensy model and the stepper driver model, I can make it much more precise. I am using a Teensy model 4.1. I am using a Version 3.0 of the CNC Shield for an Arduino Mega. It uses four DRV8825 Drivers.
Thank you for your help. Jack