Hey everybody. I would like to know what we can do to be able to program a robot. But to be able to start that question, we really need to know what the teams were using to develop the programs for their robots. Can you give a link or a place to start?
WPILib Installation Guide — FIRST Robotics Competition documentation
This is the place to start, comes with a packaged version of VS Code as well as a easy to use package of resources/ base projects.
WPILib comes packaged with its own version of vscode.
Team 1778 has standardized on IntelliJ IDEA and find it to be very capable out of the box. We students can get community licenses for free by signing up with our school email addresses. It supports Kotlin (well, Jetbrains, the company behind IDEA, also created Kotlin) which is the language that we use and makes it easy to inspect WPILib code.
You still need one computer with WPILib’s VSCode to create new robot projects since the WPILib extension is the only official way to do that (I wrote some code which worked for 2024 projects, and can set a custom robot package, but I wouldn’t really trust it).
Welcome to CD. WPILib VSCode is the official IDE, and it’s very easy-to-use.
Some teams use intellij because it’s “smarter”, but you need to do a little geeking to set it up.
There is an FRC plugin that has every project template WPILib has.
Yes, grabbing all the templates isn’t too hard. Just have to copy source files from the right directories (some are shared between templates, some are in configurable per-template directories), replace some strings, make gradlew executable. Similarly with the example projects.
WPILib installs a standalone project creation tool for expressly this purpose. It uses the same guts as the VSCode extension but is a standalone app.
78 is going to try Kotlin this year, so we’ll be using IntelliJ. Even last year with Java though, I only used IntelliJ for any FRC work. I can’t stand VSCode as an IntelliJ main. The different keybindings and controls were too annoying to learn, so I ditched it pretty quickly. I also think the autocomplete is better in IntelliJ.
Along with the FRC plugin providing access to the rio log, there’s nothing that VSCode has that I can’t manage in IntelliJ. Updating vendor deps can be done using the standalone tool, or just using gradle.
@Tatiman-Dev made a gradle task that will auto update vendor reps as well. Highly recommend.
Our team uses the WPILib VSCode environment and it works just fine for everything you need. beyond that, we use gitlab and git to store code and manage versions, gitlab is excellent for that if you dont already use github. the VSCode extension called git graph is also really really useful, it removes the need for new users to learn all the git commands to use it to its full extent, and also makes all the git changes and branches visual and its much easier to understand.
Our team uses Kotlin, and we’re not big on standardization, so our IDEs are a bit all over the place. The bulk of our team uses Intellij, but our other Code Captain uses Neovim and refuses to touch anything else. I use Fleet because it has good Kotlin support and feels a bit lighter than Intellij. We also have had people who use WPILib’s version of VSCode.
Our team primarily works with Python, so (as far as I know) we can’t use the WPI-specific version of VS Code. Instead, we rely on the standard VS Code with some extensions. I’d like to create a custom extension for RobotPy that includes features like deploy, simulation, etc, but I’m not sure how to get started.
We are in the same situation because we’re migrating from Java to Python and also wanted to work on some extensions like you mention. About a year ago, one of our programming students started a project like that but he has since graduated. I have almost too many programming students now and am hoping one of them will pick that up. Please let me know if you’d like to talk more about that.
As long as I’ve been with my team we have used the version of VSCode packaged with WPILIB. It comes pre-set up and doesn’t require any fiddling to get it to work, is pretty lightweight, and is officially supported. Were a Java team.
With that said, I personally use IDEA a lot because it’s what I learned to write code in and I like the look and feel of it.
At the end of the day, use whatever you want. The recommendation from WPILIB is VS code, so anything else you use you’re using at your own peril.
There is an FRC plugin for IntelliJ IDEA, that allows you (among other things) to create robot projects with the same templates as in VSCode. Both for Java and Kotlin. Works great
I would be interested. I talked to the other software member (we have 2) and he is down. So technically my entire software team is interested
My team uses Python for our robot code. Most of the programmers use VSCode and it works great mostly out of the box. Making sure you have the language extensions and git integration (if applicable) is a great step to a nice experience.
I personally use neovim for all of the software I write. It takes quite a bit more configuration and learning, but can really promote an incredible developer experience.
Our team uses Java and we use VSCode on our robotics laptop and it works great out-of-the-box. Though I do prefer IDEA with the FRC plugin and use that at home for any sort of Java programming. I would recommend IDEA since it provides a much better experience imo, but it does require slightly more setup and is a lot heavier than VSCode. Both are great though, you can’t go wrong with either.
Could you give a link to that IDEA software? I would like to know what that is.
Download IntelliJ IDEA – The Leading Java and Kotlin IDE
Please select the “community edition”.