OpenSTEM XRP Firmware & Possibility of porting to other boards

Hello all,

Although the beta release of the new XRP robot is extremely exciting, I am confused about where the WPILib simulation firmware for the XRP is being developed. From my understanding, there is already MicroPython and Blockly support with the repositories at https://github.com/Open-STEM. Of course, it may be that the WPILib-compatible firmware is not ready for the public yet.

The idea I have in mind is to try to port the WPILib-compatible firmware to other mini robotics platforms, like the Pololu Sumobot 32u4. Personally, I think that I could connect a RP 2040 to it, in shield form, in order to control it wirelessly. The intent is to save resources - in the case of my team, we have plenty of existing Arduino robots for Outreach purposes, and spending $60 each on >1 robots is not wise.

Hopefully, the firmware will have a soon-enough release, and the community can start to tinker!

1 Like

Hi!

The WPILib compatible firmware is still under development and not quite ready for full public consumption just yet. We currently have 2 repos where development is being done. This one (GitHub - bb-frc-workshops/xrp-wpilib) is where the final firmware should live. However, we’re working through a few networking issues in some lower level libraries, so we have a stripped down version (GitHub - bb-frc-workshops/xrp-wpilib-lite) that we’re using for debugging purposes.

Note: These currently need to be used with a bleeding edge development build of WPILib that has WebSocket message filtering implemented. GitHub - bb-frc-workshops/xrp-demo-bot has an example robot project and build.gradle file that supports this.

3 Likes

This is really cool! Love to see continued development on making small WPILib-compatible robot platforms available.

From the little I’ve seen of this, it looks like this would be an easy port onto the Pololu 3pi+2040.

1 Like

Alas I don’t think the 3pi+ has WiFi onboard, which is needed to have it work with wpilib. Otherwise yeah, that would be a pretty nice platform

Awesome!
I thought I was alone in using the 3PI - our team has lots of experience with Sumobots but this looks like a great idea (we have many 32u4 3PI robots as well).

Further elaborating a bit on the shield idea:
The idea of a “shield” is that it could conveniently add XRP capability without having to worry a lot about the underlying platform/hardware (a common concern in this thread). An RP 2040 shield would just communicate with the underlying micro and send it requests via modified XRP firmware.

Shields can be fabbed cheaper than the XRP itself (~10 USD for 2040 + ~<5 for PCB).
Disclaimer: I have not tried this just yet (too busy with the off-season + upcoming 2024 FRC Competition).

There are several challenges to this (non-exhaustive list):

  • Some boards (like 32u4-based 3PI) would need level shifting between 5.0 V and 3.3 V, including I2C communication
  • The various form factors of bots (3PI, etc.) and pinouts prevent us from creating a one-size-fits-all hat
  • Potential pin conflicts with the 3PI when using serial busses (unlikely but possible)
  • Potential of saturating serial communications on shared busses like I2C (likely) due to movement and data requests (encoders)

This will be fun (when I’ll have the time)!