GradleRIO: Faster, Smarter, Beta

GradleRIO is a build system for FRC. It can build and deploy to the RoboRIO in C++, Java, and other languages like Kotlin. It automatically allows you to use WPI, CTRE and NavX libraries, while downloading and version managing them all for you. If you want to use a specific version, you can even override it.

You can use IDEs like Eclipse, IntelliJ IDEA, Clion and Visual Studio with GradleRIO. You can even use a text editor like Sublime, VS Code, or Notepad++ since all the building and deploying is done on the command line. You can even install the C++ toolchain from the command line.

GradleRIO also supports RIOLog, SmartDashboard, Shuffleboard (2018 beta), and the Java Installer all from the command line.

In the most recent releases, GradleRIO got a massive speed increase, remaining under 5 seconds for most projects (you can even deploy both Java and C++ in the same project). All deployed files are cached for optimum speed.

GradleRIO also got a whole lot smarter. With all the backend deploy logic being moved to EmbeddedTools, you can even deploy to coprocessors like the Raspberry Pi.

GradleRIO will also work with the 2018 beta. In 2018, the Java Installer is no longer required, as GradleRIO will automatically deploy the new Zulu JRE. WPILib’s Shuffleboard was also introduced, as a replacement for SmartDashboard. There’s still some more things to do for the 2018 full release (CTRE have restricted their library to 2018 beta participants only, and the NavX is not yet updated, hence these are not included yet. These are both restrictions placed by the vendors. CTRE libraries can still be linked manually if you have access to the beta, see the github for details)

You can access GradleRIO for 2017 here, and for the 2018 beta here.

While we won’t dive into this for another couple of weeks, my first impression is that the documentation and embedded comments are among the best I’ve seen for technical libraries. Thank you so much for your hard work on GradleRIO!

Our head programmer started playing with the new GradleRIO yesterday and was super excited about it. We had been using IntelliJ’s External Tools feature to deploy to our coprocessor before, having GradleRIO support will definitely be a lot nicer.

Thanks for the beta support, we found the beta files on the WPI maven repo but weren’t sure how to make them play nice with GradleRIO.

1 Like

Just upgraded our https://github.com/strykeforce/thirdcoast/ swerve drive build to GradleRIO 2017.10.30. Works like a champ and I think the deploy is faster too. Congrats on a great update, and many thanks for this contribution to the FRC community!

Great work!

Jaci’s projects are the reason offseason CD is worth viewing. Great work as always!

This looks fantastic! Thank you.

Awesome update, deploy is incredibly fast now!

println "NOTE: SmartDashboard is old! Use Shuffleboard instead! Run ./gradlew shuffleboard."

Nice.

Can’t wait to get started. Thanks!

Were you able to get shuffleboard running? It fails to work for me, unfortunately.
SmartDashboard on the other hand downloads and starts up.

Shuffleboard appears to be working just fine. If you’re getting an error, please post the issue on the GradleRIO repository. Shuffleboard might take a little longer to download / start up on some systems since it is quite large.

Would it be possible to support the thunder (CRIO) compile on this? even better would it be possible to support both at the same time?

The cRIO is horribly outdated, and doesn’t run an actual linux installation. Given the windriver compiler is extremely hard to obtain (let alone use), we’re not supporting it just due to how outdated the hardware is.

I understand your thinking and direction completely, but I was hoping it would be otherwise. We have several old cRIOs that we’d love to put to use for demo-mobiles and training platforms and would love to use modern development tools. I had forgotten that the cRIO ran WindRiver’s custom RTOS, VxWorks, instead of more generic Linux (like the RoboRIO)

If someone wants to extend support for it I’d be more than happy to introduce it as part of GradleRIO, but not having ready access to a lot of the development platform for the dinosaur platform (I started FRC in 2015, with the introduction of the RoboRIO), there’s not much I can do in that regard (we do have some spare cRIOs, though).

Note that the Thunder cRIO C++ Tools uses GCC, not windriver.

Any chance that gradlerio might add support for Robot Builder? We have a large group of programmers/rookies and find it useful for giving them some basic guidance in structuring their code.

Might want to reconsider that. My understanding from watching the conversation on RSN last night was that Robot Builder was still generating deprecated code. It’ll work, but throw warnings around. Time probably better spent going from example code instead.

Warnings are just that, warnings. The generated code works just fine! RobotBuilder brings plenty of benefits and the fact it generates code with a handful of deprecated warnings should not be a reason to not use it.