Disappointed in Romi Arm

We recently bought a Romi FRC kit and the Arm kit. Two things have been extremely frustrating with the arm.

  1. Using the arm with WPILib seems to be completely undocumented. The Romi documentation gives PWM ranges for the servos, but WPILib doesn’t seem to have any way to configure or respect these values. I found on a CD post that I am supposed to use setAngle() with values somewhere in the range of 0-180 to control the servos. This did work, but it was a lot of trial and error before I found this post, and then to figure out good ranges for the values.
  2. I am unable to find documentation on how to power the arm servos. I’m able to power one at a time from the 32U4 control board, but even plugging in more than one browns out the controller. The Romi product page does say a voltage regulator is needed for the arm, fair enough. But the page simply points at a regulator product page and provides no help how to connect it to a Romi or the arm. Do I need to bolt additional batteries to the Romi and start soldering?

I am not a robotics or electronics expert. This is my 5th year working with FRC and I am a software developer by trade. Although the Romi is an OK learning tool, I would not recommend the arm unless there is some documentation I am not aware of or you know a lot more than I do going in.

1 Like

I’m not sure any of us own the arm! Polulu manufacturers a variety of accessories for the Romi platform!

For those who are interested in contributing documentation related to the various Romi accessories, feel free to PR them to https://github.com/wpilibsuite/frc-docs/. The docs are open source and ran by volunteers at WPILib and externally.


I now realize I missed this note on the product page:

We are working on electronics to simplify integrating this arm into your Romi robot, but we did not want that to hold up releasing the arm itself for ambitious users with the skills to assemble their own electronics for powering and controlling the arm. For now, this accessory is intended for advanced users.

So the short answer is, the arm is not designed to be powered with the 32U4 and there is currently no documented way to power it on the robot. Lesson learned.

I have made a couple contributions to frc-docs in the past, and they have come a long way the last couple years!

I do not have sphynx running so am a bit unclear as to how to update the docs.

The 5volt rail as powered by the wpil docs suggestion will brown out the robot.

If you pull from VSwitched or Batt it works well.

However, those are unregulated. So, we used a buck converter (a boost/buck would be safer, but we found that when the voltage drops below 5.5 volts, the radio disconnects so the Romi is useless anyway. The buck converter was cheaper). The servos can handle the raw voltage, but if you plug sensors into the rail, they may fry.

I can provide more details if you would like. You are venturing into a bit of uncharted territory. In order to do this, we soldered to pins to the VSwitched and ground pins.

Here are the Pololu docs for the Romi control board.

Edit#4: An alternative powering method that does not require soldering is powering the rail with an external power source. Although this would ve against the rules of the Romi challenges as they have been run thus far.

1 Like

So I’m thinking their intention is probably to use VBat with the 5V regulator. Not plug and play, but it wouldn’t be robots without soldering.


You can use the “edit on github” page in the top right and just edit using the webui. One of us is happy to fix it up to make it happy with our build system.


Thank you. I have always wondered about that. I did not want to break anything. You all do such a good job:). I will add this when I get a chance.

Yes. I think that is why they added that caveat. We used VSwitched because VBat is always on.

There is a warning in the arm documentation not to power it directly from battery voltage :slight_smile:

Please note that using all six batteries in series can result in voltages upwards of 9 V with fully-charged NiMH batteries, so you should not power your servos directly from the batteries in this configuration.

Oh. Good catch. We usually use NIMH batteries, so that is within tolerances. However, when we run the Romi Challenges, we do use alkaline. So, yes. Always using a regulator.

Also, that is the regulator we use.

We also use that regulator (actually the slightly cheaper 2.5A version) to power our accessories. We have found that the Romi browns out easily (and loses wifi connectivity) if you power accessories from the onboard 5V regulator.

We have started soldering pins onto the VSW/GND pins when we assemble the Romi so that we can easily add a regulator later. Run VSW+GND to the VIN+GND on the regulator and take the 5V VOUT to the middle rail of the I/O ports. (Remember to remove the jumper that connects the rail to the onboard supply.)

I have a few photos around here somewhere that document how we do this that I’ll post if I can find.

EDIT: (This is the danger of looking at old photos to refresh my memory.) The EN pin wants to be connected to a 5V logic level, and you can leave the PG pin disconnected.

1 Like

We have also used a similar technique to drive small motors, with the help of a 4-channel motor driver board. We run 5V from the Romi to the VCC, PWMA, PWMB, and !STBY pins, GND to GND, GPIO pins 0 - 3 into AIN1+2, BIN1+2, and VSW into VMOT. Then you can connect two DC motors to A01+A02 / B01+B02 for full bidirectional control. Or you can run as many as 4 DC motors in a single direction, or a single stepper motor.

Note that this circuit is providing (nearly) the full 9V battery voltage to the motors. You could use this in conjunction with an external regulator if your motors or accessories need to run on a lower voltage.

1 Like

One last tip for the Romi arm: you’ll want to hit it with a little bit of Locktite, or find some appropriately-sized (M3?) nylock locknuts. Its best trick is to disassemble itself.


There’s some more discussion on Romi power here, but at this point, I’d lean toward following the advice of others who have gotten things working. Perhaps when the arm is more integrated, there will be a different path, but for now, the main thing is probably just to get things working.

1 Like

For the WPILib docs, GitHub Actions are used to run the build so a local environment isn’t completely necessary. After you make a change on a branch (or in a fork) you can view the build result and even download the HTML and PDF docs. The build takes about 20-minutes.


Thanks for your help. As always, the CD community came through for me and I got the arm working!

We used an RC 5/6-volt 3-amp voltage regulator that one of our mentors had on hand.


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.