Praise for the Romi; why it is a better fit for our team than many that have come before

I know I have had many posts of late related to various aspects of the Romi and implementing various features. The main reason is that this kit fits a need that we have had in our team (and I am guessing many others) since its inception. In one of those threads I was asked what made it so much better than the other kits we have tried, and could I share a bit about our experiences?

So, I thought I would post our not-so-brief history with assorted robot kits in case anyone wanted to come searching.

First a bit about me. I am a life-long tinkerer, but not an engineer: electrical or otherwise. About %80 of what I know about hardware and software, I learned from the support of the WPILib crew, robotPy crew, and CD community. I say this because any of these kits could suit your team well. But, they did not all suit us.

Our first foray into the robot-at home was the day after our first kickoff, and before I was on the team. The mentors knew that students would want to tinker at home, so some members took the rookie kit with them. By the next school day, we had a fried Rio, and a brand new Chromebook for a driverstation (the OS was replaced with Chromium).

We learned two things.

  1. We will be a better team if students can tinker with robots at home, and
  2. An element of safety and direction is necessary.

When I joined the team (the middle of that year), I learned quickly that I wanted to have something to work on at home so I did not have to stay at the school until the wee hours to learn new programming concepts (I knew HTML at that point; that was it).

We tried every kit we could, but it ended up, that most kits fell into one of two categories.

  • Kits that were really good or passable), but not easy to use to teach FRC programming.

These were kits like the beaglebone blue Edu MIP, the Vex EDR kits (we have many classroom kits that were donated to us, but until this year, few students learned how to use robotic to control them), the picar-s and, the Spheros I use in class. These kits helped me learn robotics, and sometimes teach robotics, but it is difficult for students to apply the skills they use with these kits to our FRC robot. Frequently, they use different languages, or even when they use the same language (we have been a Python team, and are exploring Java currently), the way they use the language is so removed from how it works in FRC, students are almost learning to program all over again. The exception here, is this little gem from Frenove. If I get some time, inspired by team 1076 and Kuai labs (see below), I am thinking it would be easy to turn it into an FRCdrag-and-drop programmable minibot (with no encoders grr).

  • Kits that are piecemeal and require an understanding of robotics beyond basic.

We tried many variations of this kit, with assorted microcontrollers (like esp32s, pyboards, etc), H bridges and even using some of the Vex parts (the motor controller 29, is incredibly versatile and easy to use). But many problems arise quickly with these kits. Though the voltage is low, you can still ruin something if you plug it in backward. Many of them use lipo batteries which are not the safest thing around. Also, a new pet peeve of mine is when you claim to have an encoder, but just give a wheel with slats. encoders for tt motors are apparently difficult to come by.

Last year, I found some kits that use WPILib or a clone directly.
These became my favorite by last summer. We have two VMX-Pis and one Titan motor controller/pdp. They are incredible. However, they are expensive, and there are some wiring considerations to go through if you do not use the TItan. The VMX can also double as a vision co-processor/imu during the season, so that is cool. With the VMX, you can use the kits above to various levels of success, but wiring is still potentially difficult (read dangerous). I did get a full FRC Pi-car S running with the VMX.

Many inexpensive microcontrollers have few protections on polarity, current overdraw, or voltage under/ overdraw. Some of the components also have narrow tolerance ranges.
Though it is easier now, installing the driver station and modifying the build.gradle is a barrier to entry for some.

There is also the Freenove kit that @eli3 and 1076 are doing an incredible job with. I think if we were to stick with Python, this is where we would be focussing our tine and energy. They have an excellent system, and all the Freenove hardware is of higher quality (the plastic bases of the Amazon kits break really easily). The advantage with all of these kits is that since they run actual FRC code, the skills are directly applicable to the season. However, until recently, installing the software was difficult for some of our members.

This brings us to the Romi. It is a one-click install software-wise, and after I solder any headers necessary, putting together the Romi is easy. They are compatible with most of the Vex hardware and other random non-tournament-legal pieces the team collected over the years, and, they just work. Easily. In a bit less than a month, we have as many members using Romi at home as we had other kits in the previous four years of our existence.

Anyway, I guess this is a long post that ended up being a bit more stream-of-consciousness than I intended, but the point is, I cannot thank all the people behind the Romi project enough especially those who have helped me get everything working and students programming robots at home.


@zeequeue Thank you for driving this project forward with Pololu & WPILib. We finally deployed ‘build at home’ romi kits to our students after finishing up an Innovation Challenge entry (urban district = no in person activities this year) and they’re a huge hit with our students. The accessible cost (<$150/kit including all* tools) let us just ship them to the students houses.

Feedback from day 1:

Today was really fun! …the assembly was probably the most enjoyable process of the whole session.

Felt great going through the process of doing something by hand and not sit around speaking in numbers

It was a very fun experience mostly because it was very hands on, and very informative. I was able to learn about the importance of each individual part, and I was able to build something all by myself!

Today I had so much fun!

*All tools

I etched memory cards and did all the soldering at home before shipping them out, so tools are
-Physical tools: needlenose plier, mini screwdriver, dial caliper ($20 all-metal find on Amazon - decent action for the price)
-Computer peripherals: Ethernet to USB adapter and ethernet cord ($20), 3rd party Xbox controller ($17)
-Charger for rechargeable AA batteries

The only thing we didn’t address was Windows machines for programming - fortunately many of my students do have them, and the program has a few to loan out. That’s the really big cost driver for scale deployment right now. Still waiting for a good solution to coding on a four year old school issue Chromebook.

I can clean up and post the full kit BOM if folks are curious :slight_smile:


My solution has been to teach students that the world outside of education does not run on Chromebooks… I know that’s not the solution you’re looking for, but it’s the reality.


Now if I could teach the Board of Education that, we might be in business. The students already know, that’s not the problem…


Just want to put in here that Romi is awesome. Every team in FiM was given a romi this reason from a sponsor.


I’ve never done FRC programming and am loving the Romi and the resources developed for it.

We bought more kits for our kids and will be using them for summer training!


@zeequeue Thank you for driving this project forward with Pololu & WPILib.

100 million thumbs up to this. @zeequeue and the WPILIB folks (and NE FIRST/BAE and NE FIRST sponsors) deserves all our thanks for this. Without their hard word, I don’t think we would even have any students left this year.


Are the Chromebooks locked so that you cannot install Linux over them? [Most likely if they are purchased under the Google’s Enterprise/School acct].

1 Like

@zeequeue Are there any plans to support a “DIY Romi” set up using a 32u4-based board like the Arduino Leonardo? It would be nice to be able to use FRC-legal motors and motor controllers with the additional GPIO.


laughs while looking at the IT department’s public salary info

Yeah they usually don’t pay those guys enough to keep that in check. My middle(?) school tried to do a something with a local website filter…lasted all of a week with one kid copying around the Ubuntu installation drive.

Your experience may vary, but you’d be shocked how often school IT security measures are only good enough to fool/satisfy the arbitrary decision makers.

We worked with similar things with the VMX-PI. Do not underestimate the difficulty of not having a PDP. This is especially true if using differing voltages (I do not think the Romi can handle 12 Volts).

If you do go this route, you can use a Marine PDP.

We have two VMX-PIs and one uses a Titan MC and the other one those above. Also, the Studica 12 Volt Batteries are nice.


While we are all here, anyone end up getting the FIRST Romi grant? We didn’t get it but I was wondering how many people did end up getting it.

1 Like

There was an overwhelming number of applicants versus romis to give out, unfortunately.


Appreciate the warning. I might just be cranky from the start of the work week, but this phrasing really rubs me the wrong way. Sure, ensuring that appropriate voltages are used for components is important, but it’s not so omninous or difficult as your comment might suggest.

To be clear, I’m asking about whether or not there are plans to support a more DIY approach to a cheap WPI-lib compatible robot controller, based on the work already done for the Romi. I already have an Pi 4 and Leonardo lying around and would be happy to be a guinea pig for such a project. With this set up it doesn’t matter whether or not the Romi hardware is 12V compatible because no actual Romi hardware is being used. I’m also considering just using a CTRE HERO board instead.

My intended use case is FRC-scale robots, and I’d most likely be using FRC-sized or larger lead acid batteries. The Leonardo takes 12V through the barrel jack and I’d need a cheap buck converter (or something a bit fancier like the VRM) to power the Pi. I’m personally not a huge fan of the layout of the style of fuse block linked, but there are plenty of other options around.

(Edit: added links to some other power distribution options.)

1 Like

Our team did receive the grant and the 4 Romi Kits arrived yesterday. Looking forward to getting more students involved in programming this next year. It will be so much easier to pull these out instead of the full size competition robot.


@rlance Did you receive any ship notification or did they just randomly show up?

Hello friends! Glad you’re finding the Romi useful! It’s been fun working on it as well :slight_smile:

We don’t currently have plans for a “DIY Romi” just yet (actually that’s a lie… the plans are aplenty, but free time is alas lacking). However, a recent ancestor of the Romi project was this: Pololu - A-Star 32U4 Robot Controller SV with Raspberry Pi Bridge which we used as part of a series of workshops for FRC students in the NYC area. Very similar board to the 32U4 board on the Romi, and communicates with the Pi over I2C as well. It shouldn’t be too difficult to modify the firmware (wpilib-ws-robot-romi/firmware at main · wpilibsuite/wpilib-ws-robot-romi · GitHub) to get something working (the 5 GPIO pins exposed on the Romi should also be available on the other board as well).

Exposing additional GPIO channels is a little bit more involved and requires updating the sharedmem.json map file, generating the appropriate build files for the firmware and web service and then modifying the various bits to support the additional GPIO pins. It’s been on my TODO list for a while to update the READMEs with a little more information on how to (potentially) accomplish this.

That said, at some point, I do want to add some support for the other Pololu board, just for nostalgia :stuck_out_tongue:

Do note that using the Romi software with FRC grade hardware might be a little… dodgy safety wise! The watchdogs work ok-ish for a robot that you can lift with your index finger, but most definitely are not tested on ankle-biting 100lb beasts!

On a side note, one of the upcoming new features is support for custom devices for the Romi (over I2C). One of the first devices we’re supporting is the REV color sensor (and it works with the SimDevice support that REV built into their API). So, in future, it might be easy-ish to add additional PWM/GPIO ports via I2C


I apologize. I did not mean to come off as terse (or worse, condiscending; many of you all know significantly more than me in the ways of robotics). I made a lot of mistakes in the beginning of quarantine. I did not blow too many things up (a few reversed polarity moments was the worse I got), but I just wanted to save some headaches. I was pretty deep into it one day, and almost had an esp32 bot together: then I fried a motor controller by reversing polarity. I looked at the mess of jumpers in front of me, and thought, “well no wonder.” Then I thought, “If I can’t keep this straight, how will the students?” I just wanted to save someone else that trial and error.

I would love a generic board-Romi too. We have many Vex Kits, and I would love to be able to use those batteries with some controllers.

On the minimized side of things, an FRC Zumo competition would be incredible.


We did receive notice that we received the grant and would be getting the kits soon. Then the kits just showed up without any shipping notice.


@Mr.R_2 we deployed 21 Zumos out to our students, and have been working with them for a couple weeks now. We couldn’t and wouldn’t have done it without the excellent curriculum from Littleton Robotics. We’re happy so far with our choice to go with the Zumos, and looking forward to doing more.