Updating and Configuring Pneumatics Control Module and Power Distribution Panel
This document describes the process of updating the firmware on the Cross the Road Electronics CAN devices. The files referenced in this article are installed by the NI FRC Update Suite.
Note: Google Chrome is removing support for the Silverlight plugin. You will need to use a different browser such as Internet Explorer to access the roboRIO webdashboard.
Accessing CAN Node Settings
Open the WebDash by using a browser to navigate to the roboRIO's address (172.22.11.2 for USB, or "roboRIO-####-FRC.local where #### is your team number, with no leading zeroes, for either interface). You should see a page that looks like the image above, with the CAN devices listed out below the CAN Interface.
Note: The discovery order (e.g. "1st device found") is needed to separate devices of the same type but has no actual significance. You may see the PDP or a Jaguar or Talon SRX discovered first on your CAN network, even if the PCM is the first node in your CAN chain.
If you do not see any nodes below the CAN Interface entry try the following:
- Check the CAN cabling. If the LEDs on the PCM and PDP are red then they are not seeing CAN. Note that just because the LEDs on the devices are green does not mean the CAN cabling to the roboRIO are correct, they will turn green if the two other devices can see each other on the CAN network.
- Try refreshing the page. The device polling is done once every five seconds and the webpage itself doesn't always react to the Refresh button so if in doubt force a refresh by using the browser's refresh button or closing and re-opening the page.
- Make sure the CAN Interface is expanded. Double clicking the CAN Interface entry (or clicking the triangle to the left of the entry if present) will collapse the tree, repeating will expand it.
- Try restarting the browser. Occasionally the Silverlight plugin may crash or lock up resulting in the CAN devices silently not refreshing.
To access the Settings page of one of the CAN nodes, select the node by clicking on it's entry in the list. The settings for that node will then be displayed in the right pane.
Setting CAN IDs
Each device comes with the CAN ID set to a default value of 0. If using only a single device of that type it is recommended to leave the ID at the default value to allow for the use of default Opens/Constructors. If using multiples of a particular device type (I.E. 2 PCMs or 4 Talon SRXs) you will need to change the node ID of all but one device. To change the node ID:
- Highlight/Select the Device ID and replace it with your desired ID.
- Press "Save". The "Save button will depress and the "Refresh" button will appear.
- The PDP, PCM and Talon SRX require no additional action to save the new ID. For CAN Jaguars, a notice will appear instructing you to push the user button within 5 seconds. After doing so, click Refresh and verify that the new Device ID has been set.
The valid ID ranges for each type of device are:
- Pneumatics Control Module (PCM) ID - 0 to 62 (inclusive)
- Power Distribution Panel (PDP) ID - 0 to 62 (inclusive)
- Jaguar ID- 1 to 63 (inclusive)
- Talon SRX ID- 0 to 62 (inclusive)
Since the ID ranges for different products don’t overlap there is no issue with two or more CAN nodes of different types having the same Device ID (e.g. a PDP with ID=0, a PCM with ID=0, and a Talon SRX with ID=0 on the same bus). Using multiple devices of the same type, such as multiple PCMs or multiple Jaguars with the same node ID will result in a conflict. The web plugin supports a strategy that will allow for recovery of this condition for all devices other than Jaguars, but the devices are not properly usable from within a robot program while in this state. To recover Jaguars which have been set to the same ID you will have to remove all but one of the devices from the bus, then set the devices to non-conflicting IDs.
If you select an invalid ID you will get an immediate prompt like the one shown above.
Changing the PDP ID while using C++\Java WPILib is not recommended as there is no way to change the desired node ID in the library. PCM node IDs may be set as desired and addressed using the appropriate Open or Constructor of the Solenoid or Double Solenoid class.
Updating CAN Node Firmware
This page can also be used to update the device firmware. To load new firmware you must be logged in:
- Click "Login" at the top right of the page.
- Enter the User Name "admin"
- Leave the Password field blank.
- Click Ok.
If you would like to skip the Login step in the future you can set up Permissions to allow firmware updates:
- Click the Lock Icon in the far left pane.
- Click the Permissions tab.
- Select Firmware Update from the list.
- Click Add below the second large box.
- Select "everyone"
- Click Ok.
- Click Save.
The firmware on a CAN Node is updated from the Setting's page for that node. To update the firmware of a CAN Node, press the Update Firmware button.
Select New Firmware
CTRE Devices use a file format call CRF (Cross The Road Firmware). Using the dialog, browse to the correct location on your computer and select the new firmware file, then click Open. Firmware for CTRE devices can be found in the C:\Users\Public\Public Documents\FRC folder.
On the dialog that appears, click Begin Update.
If the update completes successfully, you should see a confirmation message near the top of the page and the Firmware Revision should update to match the new file.
Since ten seconds is plenty of time for power/CAN to be disconnected, an error code will be reported if a reflash is interrupted or fails. Additionally the Software Status will report “Bootloader” and Firmware Revision will be 255.255 (blank). If a CAN Device has no firmware, it’s bootloader will take over and blink green/yellow on the device’s corresponding LED. It will also keep it’s device ID, so the RIO can still be used to set device ID and reflash the application firmware (crf). This means you can reflash again using the same web interface (there is no need for a recovery button).
Pressing Self Test will display data captured from CAN Bus at time of press. This can include fault states, sensor inputs, output states, measured battery voltage,etc…
At the bottom of the section, the build time is displayed for checking what firmware revision is installed. The image above is an example of pressing “SelfTest” with PCM. Be sure to check if PCM is ENABLED or DISABLED. If PCM is DISABLED then either the robot is disabled or team code is talking to the wrong PCM device ID (or not talking to the PCM at all).
After enabling the robot and repressing “SelfTest” we see the PCM is enabled but an intermittent short on the compressor output reveals itself in a sticky fault.
Sticky faults persist across power cycles. They also cause orange blinks on the device LED. The PCM will orange blink to signal a sticky fault only when the robot is disabled. The PDP will orange blink anytime it sees a sticky fault (since PDPs are not output devices they don’t care if robot is enabled or not).
Clearing Sticky Faults
To clear Sticky Faults, double click Self Test in a rapid fashion. If the faults don’t clear you may need to triple click, or rapidly click until you see the "Faults cleared!" text appear.
Here’s an example for PDP. Notice here this PDP sees a temperature of 98.09C (don’t worry this board does not have the temp sensor populated). With this firmware, no temp fault is recorded because this hardware revision does not have the temp sensor populated.