Hi guys,
My team is thinking about designing and building custom encoders that communicate over CAN, similar to cancoders. We are planning on using stm32, and integrated magnetic encoders. We have experience with microcontrollers outside FRC, so we should be able to do it. However I can’t find any resources with custom can devices, for example how to communicate with roboRIO on the lower level. Does anyone have experience with similar designs? Is such a custom device even legal? And the most important: is it a good idea?
First of all: why?
Second of all: why?
Third of all: have you seen this?
Fourth of all: Pretty sure you need to do some talking with FIRST to approve a device to be used on competition robots’ CAN buses
Fifth of all: why?
No, you don’t. To be listed as a legal motor controller, yes, but nothing in the rules limits what CAN sensors can be used.
Start here: FRC CAN Device Specifications — FIRST Robotics Competition documentation
CAN manufacturer ID 8 is reserved for team use. There is a CAN class in WPILib that can be used to interface with custom devices. Yes, it’s legal for teams to create custom CAN sensors (as long as other rules are followed, of course—the biggest one to be worried about here is the constraint that the boards used on a competition robot must be fabricated after kickoff, and any HW/SW design done prior to kickoff be publicly released).
How do vendors doing beta testing get away with that? They send out units to just a few teams so don’t really meet the vendor rules on the parts.
The game manual doesn’t apply before it (the game manual) is released. Pre season is a free for all.
It?
Then why do teams have to release CAD designs and code?
Presumably, it’s because they already meet the vendor rules (which are for the company not the part). If a specific part isn’t available to all teams but will be shortly there’s a bit of a gray area (gotten around by custom hardware after season start, most likely). If it’s the offseason when they test then nobody really cares.
Bonus points if you make your CAN sensor send packets so some legal motor controller will “follow” it! At that point, you kind of have a legal motor controller that you can run from your sensor. The key thing is that the motor controller will still disable if the robot does.