2024:Robot IO Map
CAN ID Assignments
| ID | Subsystem | Component Type |
Model # | Brake or Coast? | Description (brief) |
Operation |
PD Board Info (8) max. 40A PDB # |
General Notes | |
| 0 | Electrical | PD Module |
Power Distribution Module feedback | monitor PD | must be CAN 0 |
| |||
| 1 | RESERVED | n/a | Factory-default allows for adding new device quickly and re-assign its ID |
don't use please |
| ||||
| 2 | Drive |
SparkMax |
Neo |
|
Front Right Drive |
|
40A |
0 |
Using Integrated Encoder |
| 3 | Drive |
SparkMax |
Neo |
|
Front Left Drive |
|
40A |
1 |
Using Integrated Encoder |
| 4 | Drive |
SparkMax |
Neo |
|
Back Right Drive |
|
40A |
2 |
Using Integrated Encoder |
| 5 | Drive |
SparkMax |
Neo |
|
Back Left Drive |
|
40A |
3 |
Using Integrated Encoder |
| 6 | Drive |
SparkMax |
Neo |
|
Front Right Rotation |
|
40A |
4 |
Using Integrated Encoder |
| 7 | Drive |
SparkMax |
Neo |
|
Front Left Rotation |
|
40A |
5 |
Using Integrated Encoder |
| 8 |
Drive |
SparkMax |
Neo |
|
Back Right Rotation |
|
40A |
6 |
Using Integrated Encoder |
|
9 |
Drive |
SparkMax |
Neo |
|
Back Left Rotation |
|
40A |
7 |
Using Integrated Encoder |
| 10 | Drive |
Encoder |
CANCoder |
|
Front Right |
|
N/A |
N/A |
Powered From Ganged 12V VRM |
| 11 | Drive |
Encoder |
CANCoder |
|
Front Left |
|
N/A |
N/A |
Powered From Ganged 12V VRM |
| 12 | Drive |
Encoder |
CANCoder |
|
Back Right |
|
N/A |
N/A |
Powered From Ganged 12V VRM |
| 13 | Drive |
Encoder |
CANCoder |
|
Back Left |
|
N/A |
N/A |
Powered From Ganged 12V VRM |
| 14 | Drive |
IMU |
Pigeon 2.0 |
|
|
|
|
|
Powered from dedicated 12V VRM |
| 15 | Game Piece |
SparkMax |
Neo 550 |
|
Intake |
Pulls in or ejects a game piece |
30A |
8 |
Diffuse retro-reflective sensor Allen Bradley 42EF-D2MPAK-F4 When sensor is tripped, this means GP has entered intake and sensor just clears when GP is position for storage or shooting Connects to roborio DIO 12V powered |
| 16 | Game Piece |
SparkMax |
Neo |
|
Shooter Left Wheels |
Runs shooter wheels |
40A |
9 |
|
| 17 | Game Piece |
SparkMax |
Neo |
|
Shooter Right Wheels |
Runs shooter wheels |
40A |
10 |
|
| 18 | Game Piece |
SparkMax |
Neo |
|
Arm |
Pivots Arm |
40A |
11 |
Using Rev through-bore encoder Used in absolute position mode to indicate arm pivot angle 5V powered Signal to roborio DIO Input lower extreme limit switch |
| 19 | Game Piece |
SparkMax |
Neo 550 |
|
Arm |
Actuates bicycle brake for arm pivot |
30A |
12 |
|
| 20 | Hang |
SparkMax |
Neo |
|
Hang Arm Right |
causes hang hook to go up or down |
40A |
13 |
|
| 21 | Hang | SparkMax | Neo | Hang Arm Left | causes hang hook to go up or down | 40A | 14 | ||
| 22 |
|
||||||||
CAN Chain Pathway
| Current Device (ID): | Next Device (ID): | Notes: |
| RIO | PDH(0) | On DB Bellypan |
| PDH(0) | Front Right Encoder (10) | On DB Bellypan |
| Front Right Encoder (10) | Front Right Drive (2) | On DB Bellypan |
| Front Right Drive (2) | Front Right Rotation (6) | On DB Bellypan |
| Front Right Rotation (6) | Hang Right (20) | On DB Bellypan |
| Hang Right (20) | Back Right Rotation (8) | On DB Bellypan |
| Back Right Rotation (8) | Back Right Drive (4) | On DB Bellypan |
| Back Right Drive (4) | Back Right Encoder (12) | On DB Bellypan |
| Back Right Encoder (12) | Worm/Brake (19) | On Worm Gearbox |
| Worm/Brake (19) | Pidgeon 2.0 (14) | On DB Bellypan |
| Pidgeon 2.0 (14) | Arm Pivot (18) | On DB Bellypan |
| Arm Pivot (18) | Front Left Encoder (11) | On DB Bellypan |
| Front Left Encoder (11) | Front Left Drive (3) | On DB Bellypan |
| Front Left Drive (3) | Front Left Rotation (7) | On DB Bellypan |
| Front Left Rotation (7) | Hang Left (21) | On DB Bellypan |
| Hang Left (21) | Back Left Rotation (9) | On DB Bellypan |
| Back Left Rotation (9) | Back Left Drive (5) | On DB Bellypan |
| Back Left Drive (5) | Back Left Encoder (13) | On DB Bellypan |
| Back Left Encoder (13) | Left Shooter (16) |
|
|
Left Shooter (16) |
Right Shooter (17) |
|
|
Right Shooter (17) |
Intake (15) |
|
|
Intake (15) |
TERMINATION: 120 ohm resistor |
|
|
|
|
|
| Port # | Device (Subteam) | Breaker Value | Max Channel Current | Note |
|---|---|---|---|---|
| 0 |
Front Right Drive (Drive) |
40A |
40A |
|
| 1 |
Front Right Rotation (Drive) |
40A |
40A |
|
| 2 |
Solenoid Relay |
20A |
40A |
|
| 3 |
|
|
40A |
|
| 4 |
Left Hang Arm |
40A |
40A |
|
| 5 |
Intake |
30A |
40A |
|
| 6 |
Right Shooter |
40A |
40A |
|
| 7 |
Left Shooter |
40A |
40A |
|
| 8 |
Front Left Drive (Drive) |
40A |
40A |
|
| 9 |
Front Left Rotation |
40A |
40A |
|
| 10 |
|
40 |
40A |
|
| 11 |
Back Left Rotation (Drive) |
40A |
40A |
|
| 12 |
Back Left Drive (Drive) |
40A |
40A |
|
| 13 |
|
|
40A |
|
| 14 |
Game Piece Arm Pivot |
40A |
40A |
|
| 15 |
Back Right Drive (Drive) |
40A |
40A |
|
| 16 |
Back Right Rotation (Drive) |
40A |
40A |
|
| 17 |
Hang Right |
40A |
40A |
|
| 18 |
Brake/Worm Gear |
30A |
40A |
|
| 19 |
|
|
40A |
|
| 20 |
RoboRIO (RCS) |
10A |
10A Fused |
|
| 21 |
VRM (RCS) |
10A |
10A Fused |
|
| 22 |
3X Allen Bradley Sensors (Ganged) |
10A |
10A Fused |
|
| 23 (Switchable) |
|
|
5A Fused |
|
| Port # | Device (Subteam) |
|---|---|
| 5V/2A |
LED |
| 5V/2A |
LED |
| 5V/500mA |
|
| 5V/500mA |
|
| 12V/2A |
Radio (RCS) |
| 12V/2A |
Do Not Use |
| 12V/500mA |
CanCoders 4x Ganged - Drive |
| 12V/500mA | Pigeon2 |
PWM Outputs
| ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation
|
Brake/Coast |
Notes (8) max. 40A PDB # | |
| 0 |
LEDs |
|
|
|
|
|
|
|
| 1 |
|
|
|
|
|
|||
| 2 |
|
|
|
|
||||
| 3 |
|
|
|
|
||||
| 4 |
|
|
|
|
|
|
|
|
| 5 |
|
|
|
|||||
| 6 |
|
|
|
|
|
|
|
|
| 7 |
|
|
|
|
|
|
| |
| 8 |
|
|
|
|
|
|
|
|
| 9 |
|
|
|
|
|
|
| |
| 10 | ||||||||
| 11 | ||||||||
Relay Outputs
| ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation | Notes |
| 0 | Hang | SPIKE relay | Actuates braking pawl against ratchet wheel.
Energizing lifts the pawl off the ratchet wheel. Integrated spring pushes pawl into ratchet wheel. |
Two solenoids controlled via one SPIKE relay (one on M+ and one on M- with common ground)
Left Solenoid is Reverse, Right is Forward. | ||
| 1 | ||||||
| 2 | ||||||
| 3 |
Analog IO
RoboRIO Analog Inputs
| ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Voltage Range |
Notes |
| 0 |
|
|
|
|
|
|
|
| 1 |
|
|
|
|
|
||
| 2 | |||||||
| 3 |
More Board Analog Inputs
| ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Voltage Range |
Notes |
| 0 | |||||||
| 1 | |||||||
| 2 | |||||||
| 3 |
Digital IO (GPIO)
RoboRio IO
| ID | Direction (IN/OUT) |
Subsystem | Component Type |
Model # | Description (brief) |
Operation | Notes |
| 0 | IN |
Game Piece - Intake |
Diffuse retro-reflective sensor |
Allen Bradley 42EF-D2MPAK-F4 |
Senses GP |
|
Wire for Dark operating Signal connects to roborio DIO12V powered Voltage divider added to cable pigtail |
| 1 | IN |
Game Piece - Arm |
Encoder |
Used in absolute position mode to indicate arm pivot angle. |
|
Wire White/Red/Black To roborio DIO | |
| 2 | IN |
Hang Brake |
Leaf Lever Limit Switch Right |
V7-2B17D8-048 |
Triggers when pawl on brake is fully lifted and clear of ratchet wheel |
|
roborio DIO |
| 3 | IN |
Hang Brake |
Leaf Lever Limit Switch Left |
V7-2B17D8-048 |
Triggers when pawl on brake is fully lifted and clear of ratchet wheel |
|
roborio DIO |
| 4 | IN |
Hang |
Diffuse retro-reflective sensor |
Allen Bradley 42EF-D2MPAK-F4 |
Detects when left hook is present (down) |
|
Wire for Dark operating Signal connects to roborio DIO12V powered Voltage divider added to cable pigtail |
| 5 |
IN |
Hang |
Diffuse retro-reflective sensor |
Allen Bradley 42EF-D2MPAK-F4 |
Detects when right hook is present (down) |
|
Wire for Dark operating Signal connects to roborio DIO12V powered Voltage divider added to cable pigtail |
| 6 |
IN |
|
|
|
|
|
|
| 7 | IN |
|
|
|
|
|
|
| 8 | IN |
|
|
|
|
|
|
| 9 | IN |
|
|
|
|
|
|
| 10 | IN |
|
|
|
|
|
Rev Robotics More Board IO
| ID | Direction (IN/OUT) | Subsystem | Component Type | Model # | Description (brief) | Operation | Notes |
| 0 | IN | ||||||
| 1 | IN | ||||||
| 2 | IN | ||||||
| 3 | IN | ||||||
| 4 | IN | ||||||
| 5 | IN | ||||||
| 6 | IN | ||||||
| 7 | IN | ||||||
| 8 | IN | ||||||
| 9 | |||||||
| 10 | |||||||
| 11 | |||||||
| 12 | |||||||
| 13 | |||||||
| 14 | |||||||
| 15 |
I2C Registers
| Address (e.g. 0100111X) |
Pin (e.g. GP0) |
Subsystem | Component Type |
Model # | Description (brief) |
Operation | Notes |
|
|
|
|
|
|
|
||
SPI Devices
| # | Subsystem | Component Type |
Model # | Description (brief) | Operation | Notes |
| 0 |
|
|
|
|
|
USB Host Ports
| Address | Subsystem | Component Type |
Model # | Description (brief) | Operation | Notes |
| 0 |
|
|
|
|
|
|
| 1 |
Pneumatics Control Modules
|
PCM ID |
# | Subsystem | Solenoid is Double or Single? |
Solenoid Model # |
Description (brief) |
Operation | Circuit Pressure | PDB # |
| 1 | 0 |
|
|
|
|
|
|
|
| 1 |
|
| ||||||
| 2 |
|
|
|
|
|
| ||
| 3 |
|
| ||||||
| 4 |
|
|
|
|
|
| ||
| 5 |
|
| ||||||
| 6 |
|
|
|
|
|
| ||
| 7 |
|
| ||||||
| 2 | 0 |
|
|
|
|
|
|
|
| 1 |
|
| ||||||
| 2 |
|
|
|
|
|
| ||
| 3 |
|
| ||||||
| 4 |
|
|
|
|
|
| ||
| 5 |
|
|
Operator Controls
Controller 1 - Primary Driver
| Button/Axis # | Action/Button | Description | Details |
| A-1 | Left Joystick Y |
|
|
| A-1 | Left Joystick X |
|
|
|
|
Left Joystick Press |
|
|
| A-4 | Right Joystick Y |
|
|
| A-4 | Right Joystick X |
|
|
| B-6 | Right Bumper |
|
|
| B-5 | Left Bumper |
|
|
| A-3 | Right Trigger |
|
|
| A-2 | Left Trigger |
|
|
| B-1 | Square / A Button |
|
|
| B-3 | Cross / X Button |
|
|
| B-4 | Triangle / Y Button |
|
|
| B-2 | Circle / B Button |
Controller 2 - Aux Driver
| Button/Axis # | Action/Button | Description | Details |
| A-0 | Left Joystick X-Axis | ||
| A-1 | Left Joystick Y-Axis |
|
|
| A-2 | Left Trigger |
|
|
| A-3 | Right Trigger |
|
|
| A-4 | Right Joystick X-Axis |
|
|
| A-5 | Right Joystick Y-Axis |
|
|
| B-1 | Square / A Button |
|
|
| B-2 | Circle / B button |
|
|
| B-3 | Cross / X Button |
|
|
| B-4 | Triangle / Y button |
|
|
| B-5 | Left bumper |
|
|
| B-6 | Right bumper |
|
|
| B-7 | Back Button |
|
|
| B-8 | Start Button |
|
|
| B-9 | Left Stick Pressed |
|
|
| B-10 | Right Stick Pressed |
|
|
| POV-0 | D-pad up |
|
|
| POV-90 | D-pad right |
|
|
| POV-180 | D-pad down |
|
|
| POV-270 | D-pad left |
|
|
Controller 3 - Switches on console
| Button/Axis # | Action/Button | Description | Details |
| B-1 |
|
|
|
| B-2 |
|
|
|
| B-3 |
|
|
|
| B-4 |
|
|
|
| B-5 |
|
|
|
| B-6 |
|
|
|
| B-7 |
|
|
|
| B-8 |
|
|
|
| B-9 |
|
|
Dashboard
| Key | Data Type | Value | Description |
| thunderdashboard_gyro | number |
0 - dashboard background not based on this 1 - dashboard background goes red |
used when: gyro is calibrating |
| thunderdashboard_yellow | number |
0 - dashboard background not based on this 1 - dashboard background goes yellow |
used when: TBD NOTE: thunderdashboard_gyro takes precedence |
| thunderdashboard_green | number |
0 - dashboard background not based on this 1 - dashboard background goes green |
used when: TBD NOTE: thunderdashboard_gyro takes precendence |
| thunderdashboard_inpitmode | number |
0 - dashboard background not based on this 1 - dashboard background is power blue |
used when: robot is operating in 'pit mode' (for safer operatin in the pits) NOTE: thunderdashboard_gyro takes precendence |
| thunderdashboard_auto_list | string | a comma seperated list | the list of auto modes (e.g. "0,1,2,3,4,5") |
| thunderdashboard_auto_# | string | any text | one for each auto mode (e.g. thunderdashboard_auto_0 ... thunderdashboard_auto_5) |
| Auto_Mode | number | a number from thunderdashboard_auto_list | the auto mode selected on the UI |
| thunderdashboard_auto_start_delay | number |
|
user selected number of seconds, 0 to 15, to delay start of auto mode |
| thunderdashboard_auto_doing_auto | boolean | true - should do autonomous
false - should not do autonomous |
Dashboard checkbox in auto selector page. When false, the robot should not do anything in autonomous |
| thunderdashboard_auto_starting_location | number | 0 - barrier side
1 - center 2 - edge side |
Dashboard selection of which community zone the robot should start in |
| thunderdashboard_auto_starting_gamepiece | number | 0 - cube
1 - cone |
Dashboard selection of which GamePiece the robot is starting with. Also determines the exact starting position of the robotin combination with the general zone as provided by 'thunderdashboard_auto_starting_location' |
| thunderdashboard_auto_starting_action | number | Depending on the starting location, this value means different things.If starting in the center,
0 - Score preloaded GamePiece and balance on Charge Station 1 - Score preloaded GamePiece, traverse Charge Station, and collect GamePiece 3 from field If starting on either side, Anything - Score preloaded GamePiece and collect field GamePiece 1 or 4 |
Dashboard selection of what action the robot should do first in autonomous |
| thunderdashboard_auto_field_gamepiece | number | 0 - cube
1 - cone |
Dashboard selection of which GamePiece to collect on the field (if the starting action puts the robot in the position to acquire a GamePiece) |
| thunderdashboard_auto_final_action | number | Depending on the starting location, this value means different things,If starting in the center,
0 - Do nothing 1 - Balance on Charge Station If starting on either side, 0 - Do nothing 1 - Score acquired field GamePiece 2 - Balance on Charge Station |
Dashboard selection of what action the robot should do at the end of Autonomous (if the starting action puts the robot in the position for a final action). |
| thunderdashboard_drive_x_pos | number |
|
Robot current X position on the field (m) |
| thunderdashboard_drive_y_pos | number |
|
Robot current Y position on the field (m) |
| thunderdashboard_drive_target_x_pos | number |
|
Robot target X position on the field (m) |
| thunderdashboard_drive_target_y_pos | number |
|
Robot target Y position on the field (m) |
| thunderdashboard_drive_x_vel | number |
|
Robot current X velocity (m/s) |
| thunderdashboard_drive_y_vel | number |
|
Robot current Y velocity (m/s) |
| thunderdashboard_drive_ang_vel | number |
|
Robot current angular velocity (rad/s) |
| thunderdashboard_drive_ang | number |
|
Robot current angle (radians) |
| thunderdashboard_drive_target_ang | number |
|
Robot target angle (radians) |
| thunderdashboard_lift_pivot_percent | number | 0 to 1 | Percent of lift pivot |
| thunderdashboard_lift_extension_percent | number | 0 to 1 | Percent of lift extension |
| thunderdashboard_lift_pivot_target_percent | number | 0 to 1, -1 if no target | Target percent of lift pivot |
| thunderdashboard_lift_extension_target_percent | number | 0 to 1, -1 if no target | Target percent of lift extension |
| thunderdashboard_grabber_position | number | 0 - open
1 - agape 2 - ajar |
State of grabber mechanism |
| thunderdashboard_gamepiece | number | -1 - no gamepiece
0 - cube 1 - cone |
Which GamePiece the robot is currently in possession of |
| thunderdashboard_match_remaining | number |
|
The time remaining in the current match period |
| thunderdashboard_airpressure_low | number |
|
Low air pressure on gauge |
| thunderdashboard_airpressure_high | number |
|
High air pressure on gauge |
| thunderdashboard_airpressure | number |
|
Current air pressure |
| thunderdashboard_airpressure_iters | number |
|
Number of ticks on air pressure gauge |
| thunderdashboard_led_mode | number | 0 - Robot State
1 - Alliance Color 2 - Custom Color 3 - Off |
The mode of the robot LEDs |
| thunderdashboard_led_custom_r | number | 0-1 | Custom LED red value |
| thunderdashboard_led_custom_g | number | 0-1 | Custom LED green value |
| thunderdashboard_led_custom_b | number | 0-1 | Custom LED blue value |
| thunderdashboard_score_grid | number | -1 - No grid aligned
0 - Left grid 1 - Center grid 2 - Right grid |
Which grid the robot is currently in front of (relative to driver, NOT field or robot) |
| thunderdashboard_score_grid_column | number | -1 - No Column selected
0 - Left column 1 - Center column 2 - Right column |
Which column of the grid the robot is trying to align to (relative to driver, NOT field or robot) |