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) | ||
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) |