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

Pololu Forum

FIRST Romi w/32U4 and powering GPIO

Does anyone have tips or tricks for powering the GPIO pins on this device.
It looks like I need to disconnect the GPIO board from the plastic chassis to solder on a pin to power those ports. There is a jumper here but it’s not connected to anything. (We want to use them to run 3 servos and a distance sensor)

I’m new to this. What is the best practice here?


Are you using the #4022 Romi Robot Kit for FIRST? If so, there are male header pins pre-installed in the expansion area on the front-left side of the robot, so you most likely do not need to remove the control board from the chassis.

You can reference the “Expansion areas” and “Pin assignments” sections of the Romi 32U4 user’s guide for more information about those pins. There is also some information in the “Adding electronics” section of the Romi 32U4 Control Board user’s guide, which is especially helpful if you want to disable or disconnect some features to free up more I/O pins.

If you have not seen it yet, I also recommend reading the “Controlling a servo” section. In short, the Arduino Servo library uses Timer 1, which conflicts with our Romi32U4Motors library. The information in that section shows how you can fix this conflict by modifying the Servo library to use Timer 3 instead.

Additionally, you will need to consider how you are going to power your servos and sensor. The “Optional power buses” indicated in the “Expansion areas” section of the guide are not connected to anything by default, so you could use the jumper to connect the 5V pin to that bus, which can then be used to distribute the power to your servos and sensor. However, depending on the current demands of those devices, the onboard 5V regulator might not be appropriate for powering them. For reference, the onboard regulator can handle around 2A of current, and we typically recommend budgeting around 1A per standard size servo. If you need more power, you might consider using an external step-down regulator to power that bus.

Also, please note that if you connect the robot to USB without powering it on first, the 5V output in that expansion area will be connected to the USB power, and the USB power is not appropriate for higher power devices like servos. So if you do use that, you should power on the robot before connecting it to USB.


Hi Brandon, thanks for the info here. This is in fact a 4022 kit.

I saw the male pin headers (see photo) I was referring to the 5V jumper where there wasn’t a pin at all.

The goal here is to use the first robotics libraries on this device in conjunction with the 3550 arm, to give our kids a low cost robot to learn java programming on while in the FIRST robotics off season. I started with the WPLib documentation and that’s when I noticed the jumper and made the post.

What you are saying about power makes sense, as this arm ships with 3 servos. So I’ll look into powering them via a step down regulator. In which case I won’t need to solder a pin onto the board at all. I should be able to hook up another battery via a regulator and connect the grounds. (right?)

I think I have some of these somewhere around the house.

I now see that you guys actually recommended a regulator on the page. We ordered one of these

1 Like

If you are using the robot arm, that D24V22F6 is our recommendation. You can power it from the batteries on the Romi by connecting the VIN pin to one of the Romi 32U4 Control Board’s VSW pin, as well as connecting a common ground, like you mentioned. Then you can connect the output of the regulator (VOUT) to the optional power bus so you can distribute it to the servos. You do not need to use the PG or EN pins, so those can be left disconnected.

Alternatively, if you want to use a separate battery pack to power the servos, you can just connect the positive side to the optional power bus and the ground to one of the board’s grounds.