CAN wiring and languages


New to this and I have stats to prepare for and an Algebra quiz to write…so…I am probably asking a question that has an answer but the wall of text in search is overwhelming right now.

We have no legacy programmer or wiring student. Thus, I am learning.

Our team is using CAN wiring for its motors. (Talon with Victor slaves). In the LabView readme on CAN wiring it says:
“The NI-Embedded CAN for RIO software does not support other programming languages.”

To me, this means that my students must program in LabView’s language rather than Java (their preference) or am I misreading this? Our Head Coach is certain that many teams are using Java, but he cannot confirm that they are using Java and CAN wiring.

Any insight is helpful.

Thank you!


I know that my team (5401) is using Java and CAN wiring. I think that line means that the NI-CAN can only be used with LabView. WPI provides the CAN libraries for C++ and Java.


@dray710 thanks for writing. It is a very good question!

Tl,dr: Fear not, you can use LabVIEW, C++ and Java for your CAN controllers.

While the roboRIO does use NI-Embedded CAN, when you are in FRC you don’t need to rely on this technology to get the CAN bus up and running.

The reason teams can use both C++ and Java to control their motors, and not just LabVIEW, is due to the awesome providers (CTRE and REV) that create the required libraries for them.

Therefore, I recommend using the language your team is more comfortable with. NI, WPI and the motor distributors have made sure the infrastructure is there to be successful in any of them!


This applies to the CAN-bus solutions NI provides to the general market, and not the FRC-market which centers around the FRC approved control system.

The CAN-bus support in the roboRIO-FRC was developed by NI in collaboration with WPI and CTRE (us), in part to make the PCM/PDP/Talon-SRX successful in 2015. We’ve supported FRC C++/Java/LabVIEW every season since 2015, and have added more CAN devices.

Then you should read through our documentation. Try not to steer away from the FRC-specific documentation provided by us, NI, WPI, etc.


Thank you. I have been laboriously going through the First website. For some reason I wind up looping back to the same spots over and over. I helped with FTC this year and there were clear instructions…for some reason I am not feeling like FRC has instructions that possess the same clarity.
Until you and @oscarfonloz came along I hadn’t seen pheonix on the FRC website…


Also as an aside you are in Michigan, surrounded by teams who, while busy, would be willing to assist you to get started. Ask around find a well established team in your area and reach out. Find a local team and go visit them for an evening (I hear we are all meeting quite often this time of the year). If you cannot find someone closer, PM me, we are about an hour away and we would be happy to have you come visit (my kids learn the system better by explaining it to other people, and I have a lot of programmers to engage), but I suspect you can find quite a few willing partners closer as well.