Discovering duplicate CAN IDs
SD540C's must each have a unique CAN ID to properly communicate. If two or more devices on the same CAN network share an ID, they will not function properly. This blog post will help you discover which SD540C's have the same ID if you are having this problem.
First make sure your roboRIO and SD540C devices have power. Then use PuTTY to log in to your roboRIO via SSH. If you have not done this before then WPI has a detailed tutorial on the subject here.
Once you have logged in we will be using a command to blink the indicator LED on the SD540C. The motor and power LEDs are on the top, the indicator LED we are interested in is on the side next to the pinout. Enter the following command in PuTTY:
admin@roboRIO-540-FRC:~# clcp_sd540c 3 blink 5
Replace 3 with the CAN ID you wish to blink, and 5 with the number of seconds to blink for. If multiple devices share the ID 3, they will all blink. You can try different IDs to find out which devices have the same ID. If any other commands are run on a duplicate ID, you will need to powercycle the roboRIO or the entire system for them to respond again. This is why we want to make sure every device has its own ID!
Once you discover the duplicate iD, disconnect all devices from the CAN network besides on of the duplicates. For example, if you had four SD540C's on the network with IDs 3, 3, 7, and 8, disconnect all of them besides one of the 3's. Now run the following command:
admin@roboRIO-540-FRC:~# clcp_sd540c 3 id 9
This will set the SD540C with ID 3 to ID 9. Now if you reconnect power and run a scan
admin@roboRIO-540-FRC:~# clcp_sd540c scan
you should see IDs 3, 7, 8, and 9. Now you can run the blink command on each device and they should all be separate. Now you can open the mindsensors Configuration Tool and properly use the SD540C's in your robot program.