Bot Libre icon Bot Libre AIML2 chatbot client for ARC connecting robots to Bot Libre cloud for customizable, private chatbots and personalities. Try it →
Asked — Edited
Controller Options for Rover Upgrade

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.

ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#9  

Yes - with those parts, I can make this much more concrete.

What your updated architecture looks like

  • ARC on PC connects to EZBv4 via Wi-Fi
  • EZBv4 stays in the project as the ARC-connected controller
  • Arduino Mega + CNC Shield v3.0 + DRV8825s handle the 4 stepper motors
  • Teensy 4.1 handles the Sharp GP2Y0A02YK0F IR sensor and the DS RDS3225 servo

That is a solid split for a rover that needs better real-time performance.


Cleaner ASCII wiring schematic

                           +----------------------+
                           |        PC / ARC      |
                           |  mission logic, UI    |
                           +----------+-----------+
                                      |
                                      | Wi-Fi
                                      |
                           +----------v-----------+
                           |        EZBv4         |
                           |  ARC-connected I/O   |
                           +----+-----------+-----+
                                |           |
                                | UART      | UART
                                |           |
                  +-------------v--+     +--v----------------+
                  |  Arduino Mega   |     |   Teensy 4.1     |
                  |  + CNC Shield V3 |     | servo + IR task  |
                  +----+--------+----+     +----+--------+----+
                       |        |               |        |
                       |        |               |        |
                 STEP/DIR/EN    |         servo PWM   IR Analog
                       |        |               |        |
         +-------------v--+  +--v-------------+ |    +--v------------------+
         | DRV8825 #1     |  | DRV8825 #2     | |    | Sharp GP2Y0A02YK0F  |
         | motor A        |  | motor B        | |    | VCC / GND / VO      |
         +------+------+---+  +---+------+----+ |    +---------------------+
                |      |           |     |      |
                |      |           |     |      |
             Stepper  Stepper    Stepper Stepper |
             motor 1   motor 2    motor 3 motor 4 |
                                                   |
                                                   v
                                           +---------------+
                                           | DS RDS3225     |
                                           | servo signal   |
                                           +---------------+

Power rails

24 V rail

Use this for:

  • DRV8825 motor power input through the CNC shield motor supply
  • stepper motor power

Do not feed 24 V directly to:

  • Teensy 4.1
  • Arduino Mega logic
  • Sharp sensor
  • servo
  • EZBv4 I/O pins

5 V rail

Use this for:

  • Arduino Mega logic power
  • DRV8825 logic side if your shield routes it that way
  • Sharp GP2Y0A02YK0F sensor power
  • servo power, since your DS RDS3225 is rated 4.8-6.8 V

A good rule here is to use a separate high-current 5-6 V regulator for the servo, not the MCU’s 5 V pin.


3.3 V rail

Use this for:

  • Teensy 4.1 logic domain where needed

The Teensy 4.1 is a 3.3 V logic board. Its pins are not 5 V tolerant in general, so this matters a lot for serial.


Logic voltage levels

Arduino Mega

  • 5 V logic
  • Safe to drive CNC shield step/dir/enable inputs
  • Good match for the DRV8825 logic pins

Teensy 4.1

  • 3.3 V logic
  • Do not feed 5 V directly into Teensy RX pins
  • If the EZBv4 or Arduino TX is 5 V, level shift it before going into Teensy RX

EZBv4

  • Treat as a 5 V-class controller for typical ARC I/O use
  • If you wire UART to other boards, verify voltage compatibility first

UART / serial wiring

You said:

  • ARC EZBv4 via Wi-Fi
  • Arduino Mega EZBv4 via UART
  • Teensy 4.1 EZBv4 via UART

That can work, but here’s the key constraint:

Any 5 V TX signal going into the Teensy 4.1 must be level shifted to 3.3 V.


Example serial wiring for Teensy-safe UART

Option A: EZBv4 TX to Teensy RX through a resistor divider

EZBv4 TX ----[ 1k ]----+-----> Teensy RX
                       |
                     [ 2k ]
                       |
                      GND

That drops a 5 V-ish signal down to around 3.3 V.

A common equivalent pair is:

  • 1 k top
  • 2 k bottom

If you want, I can also give you a more conservative divider like 10k / 20k, which is often easier on signal loading.


UART direction arrows

EZBv4 TX  ----->  Arduino Mega RX
EZBv4 RX  <-----  Arduino Mega TX

EZBv4 TX  ----->  Teensy RX   [through level shift / divider]
EZBv4 RX  <-----  Teensy TX

Suggested pin map example

This is just an example layout to make the diagram concrete.

Arduino Mega + CNC Shield v3.0

The CNC shield typically uses the Mega’s step/direction pins mapped for the four axes.

Typical signal grouping:

  • X axis motor 1
  • Y axis motor 2
  • Z axis motor 3
  • A axis motor 4

The exact shield pin mapping depends on the shield version, so confirm the shield silkscreen/manual. The DRV8825s then receive:

  • STEP
  • DIR
  • ENABLE
  • GND
  • logic supply

Teensy 4.1

Suggested use:

  • one PWM pin for the servo signal
  • one analog input for the Sharp sensor output
  • UART pins for EZBv4 comms

Example:

  • Teensy TX1 / RX1 for serial
  • one PWM-capable pin for servo signal
  • one analog pin for sensor VO

Sensor wiring: Sharp GP2Y0A02YK0F

Typical connections:

Sharp GP2Y0A02YK0F
- VCC  -> 5 V
- GND  -> common ground
- VO   -> Teensy analog input

Important note

This sensor outputs an analog voltage, so it is not a UART device. It should go straight into the Teensy’s analog input, assuming you keep the output within the Teensy’s input range.

Since the sensor is powered at 5 V, check the output voltage range before connecting it directly to the Teensy analog pin. If needed, add a divider or conditioning network.


Servo wiring: DS RDS3225

For the servo:

Servo power:
- +V   -> regulated 5 to 6 V supply
- GND  -> common ground

Servo signal:
- PWM signal from Teensy

Important

Do not power that servo from the Teensy or EZBv4 logic supply unless the regulator can handle the current. A 25 kg-class servo can pull large current spikes.


Grounds that must be tied together

This is critical.

All of these should share a common ground:

  • 24 V supply negative
  • 5 V regulator ground
  • Teensy ground
  • Arduino Mega ground
  • EZBv4 ground
  • CNC shield ground
  • DRV8825 ground
  • servo ground
  • Sharp sensor ground

If you do not share ground, UART and PWM signals can behave unpredictably.


Cleaner wiring summary

24 V SUPPLY
  +24V -> DRV8825 motor power input
  GND  -> common ground bus

5 V REGULATOR
  +5V  -> Arduino Mega / Sharp sensor / servo power rail
  GND  -> common ground bus

3.3 V DOMAIN
  Teensy 4.1 logic
  GND -> common ground bus

ARC PC
  Wi-Fi -> EZBv4

EZBv4
  UART -> Arduino Mega
  UART -> Teensy 4.1 (with level shifting into Teensy RX if needed)

Arduino Mega
  CNC Shield -> DRV8825 drivers -> stepper motors

Teensy 4.1
  PWM -> servo signal
  Analog input -> Sharp VO
  UART -> EZBv4

Two practical cautions

1) servo power and noise

Put bulk capacitance near the servo supply if you can. High-torque servos can inject noise into the rail and cause resets or sensor jitter.

2) DRV8825 current setting

Make sure each DRV8825 current limit is properly adjusted for your stepper motors. That matters a lot once you move to 24 V.


ARC side note

If you want ARC to manage the communications cleanly, a custom robot skill can help you build a better interface between ARC and the Teensy/Arduino. That’s the right path if you want more than simple scripts:

https://synthiam.com/Support/Create-Robot-Skill/Overview


Final recommendation

Your current plan is workable, but I would slightly refine it like this:

  • ARC EZBv4 over Wi-Fi
  • Arduino Mega handles only the steppers
  • Teensy 4.1 handles only the servo + Sharp sensor
  • Avoid routing 5 V UART directly into Teensy RX
  • Tie all grounds together

If you want, I can make the next version into a pin-by-pin table like:

  • EZBv4 pin Arduino pin
  • EZBv4 pin Teensy pin
  • Teensy pin servo/sensor pin
  • power rail assignments

That would be the most useful next step for actual wiring.

I am a customer support AI and still learning. Please verify important answers in our support documentation. For advanced AI features, use the AI Script Agent built into ARC.