Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Questions on the romi chassis


Is there anything specific about the motor driver and power distribution board #3543 for the Romi chassis that makes it most suitable for the Romi?

I have a mega2560 that I’d like to use with the chassis and it has its own motor drive expansion board. I’m not trying to “cheat” pololu here. It would just seem to be easier for me to have a motor controller match my board rather than find a motor controller that matches the chassis.

Also, when considering a 3pi vs the romi, it seems like I’m missing out on a lot of the built-ins (sensors, led’s, power switches, lcd screen). But if I’m interested in really building my own thing and not just line following and object avoidance, I think I’m better off with the less expensive option.

Thanks for any feedback. I’m rather new to this.



The #3543 Motor Driver and Power Distribution Board for the Romi Chassis is intended to make it easy to get your robot up and running quickly. Along with a power switch and built-in motor driver, the board has a powerful switching step-down regulator that can supply 2.5A continuously at 5V or 3.3V, and makes it convenient to connect to the battery terminals. With all of the features built into the board, you essentially just need a microcontroller and any additional sensors you want.

However, the Romi chassis is intended to be a general purpose robot, and you could certainly use the chassis with your own electronics. If you want to use your own motor driver, I would recommend considering the #3541 Power Distribution Board for the Romi Chassis, which is less expensive than the #3543 board, but still offers a convenient way to connect to the battery terminals, a power button/switch, and easy access to various power busses.

By the way, when choosing your motor driver/controller, be sure to choose one that is appropriate for the motors. We generally recommend choosing a motor driver that has a continuous current rating equal to or greater than the stall current of your motors. The #3543 Motor Driver and Power Distribution Board uses two DRV8838 motor driver carriers, but if you are looking for a driver with an Arduino shield form factor, you might consider the DRV8835 Dual Motor Driver Shield for Arduino, which is rated for slightly less than the stall current of the 120:1 HP Mini Plastic Gearmotors that come with the Romi Chassis, but should be fine if you avoid stall conditions.



Great. Thank you for your reply.


A post was split to a new topic: Arduino + Raspberry Pi 4-wheeled robot


Hi –

What frequency do you recommend for PWM to drive the Romi motors? I’m using 10KHz, but the speeds as measured by the shaft encoders seem to vary a lot.

Thanks for any advice on this.


We typically use 20 kHz PWM frequencies because it is above the threshold for human hearing. What kind of variation are you seeing? Could you post a data set that shows the problem (preferably with no load on the motors)?



Thanks for your quick reply. I’ve tried 20KHz PWM frequency now and there’s still an oscillation of about 1"/sec (motor tested at two speeds – 11 in/sec and about 16 in/sec – up on blocks, so it’s unloaded except for the wheel). I intend to use these values to calibrate the PWM settings for inches/second speeds, then use PID controls to ensure the two motors run at the same speed.

The oscillation frequency appears to vary with the motor speed, so it might be something like the wheel wobbling (and might disappear when the chassis is running on the floor).

The graph showing this is pasted here. Thanks for any word on this.


Hello, jstanle1.

Can you tell us more about your system? What are you using to generate control signals and drive the motors? What are you supplying for motor power and what duty cycles did you use for your PWM signals? Additionally, can you generate more data that shows the speed of each motor with their wheels removed?

By the way, in case you were not already aware: the speeds of brushed DC motors like the ones used in the Romi can vary by as much as ±10% from unit to unit.



Jon –

Thanks for your interest in this. I’m using a Romi chassis with the Romi motor controller and power management board and the Pololu shaft encoders. I’m driving it with a custom processor board based on a PIC32MX part. At the slower speeds, the PWM duty cycles are about 10% to 20%. I’ve generally been careful to use fully-charged AA batteries through the testing, so as not to get bit by a bad result based on low power.

I have seen that variance between motors – I calibrate each motor separately and use parameters for generating the PWM duty cycles that are specific to each motor.

I’m wondering now whether a slower PWM frequency and longer duty cycles might not work better at the low speeds I’m trying to run.

It will be hard to remove the wheels, but it does make sense to try that. I have more data for different speeds, however, that can show a faster oscillation at slower speeds, so wheel wobble might not be an issue (unless it’s some resonance that gets hit at particular speeds).

I’ve attached another graph that shows worse behavior at slower speeds (where I want to operate it) – especially around 4"/sec (about 1/2 rev/sec). I’ve checked to see if the wheels are hitting something, but they are completely free to move.