2022: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 | |||||
2 | Hang | Spark Max | Neo | Brake | Winch robot up | 40A, | 13 | REV Through Bore Encoder attached directly to SPARK | |
3 | Intake | Spark Max | Neo 550 | Brake | Get ball into robot (Stage 1)
|
30A | 6 | ||
6 | Shooter/Storage | Spark Max | Neo 550 | Brake | Transition motor to go into fly wheels (Stage 2) | 20A/30A | 7 | ||
7 | Shooter | Spark Max | Neo | Brake | Left side fly wheel
|
40A | 2 | Using Integrated Encoder | |
8 | Shooter | Spark Max | Neo | Brake | Right side fly wheel | 40A | 3 | Using Integrated Encoder | |
9 | Drive | Spark Max | Neo | Coast | Front left drive motor | 40A | 0 | Using Integrated Encoder | |
10 | Drive | Spark Max | Neo | Coast | Back left drive motor | 40A | 1 | Using Integrated Encoder | |
11 | Drive | Spark Max | Neo | Coast | Back right drive motor | 40A | 14 | Using Integrated Encoder | |
12 | Drive | Spark Max | Neo | Coast | Front right drive motor | 40A | 15 | Using Integrated Encoder | |
13 | Drive | Spark Max | Neo 550 | Coast | Front left turning motor | 20A | 4 | Using Integrated Encoder | |
14 | Drive | Spark Max | Neo 550 | Coast | Back left turning motor | 20A | 5 | Using Integrated Encoder | |
15 | Drive | Spark Max | Neo 550 | Coast | Back right turning motor | 20A | 10 | Using Integrated Encoder | |
16 | Drive | Spark Max | Neo 550 | Coast | Front right turning motor | 20A | 11 | Using Integrated Encoder | |
17 | Drive | Encoder | CANCoder | N/A | Front left absolute encoder | N/A | |||
18 | Drive | Encoder | CANCoder | N/A | Back left absolute encoder | N/A | |||
19 | Drive | Encoder | CANCoder | N/A | Back right absolute encoder | N/A | |||
20 | Drive | Encoder | CANCoder | N/A | Front right absolute encoder | N/A |
Port # | Device (Subteam) | Breaker Value | Max Current |
---|---|---|---|
0 | Neo (Drive) | 40 A | 40 A |
1 | Neo (Drive) | 40 A | 40 A |
2 | Neo (Shooter) | 40 A | 40 A |
3 | Neo (Shooter) | 40A | 40A |
4 | Neo 550 (Drive) | 20A | 30A |
5 | Neo 550 (Drive) | 20A | 30A |
6 | Neo 550 (Intake) | 30A | 30A |
7 | Neo 550 (Shooter/Storage) | 20A/30A | 30A |
8 | Limelight | 20A | 30A |
9 | PCM (#2)? | 20A | 30A |
10 | Neo 550 (Drive) | 20A | 30A |
11 | Neo 550 (Drive) | 20A | 30A |
12 | 40A | ||
13 | Neo (Hang) | 40A | 40A |
14 | Neo (Drive) | 40A | 40A |
15 | Neo (Drive) | 40A | 40A |
PWM Outputs
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation
|
Brake/Coast |
Notes (8) max. 40A PDB # | |
0 | Hang | Servo | Ratchet and Pawl | |||||
1 | Shooter | Servo | hood servo | |||||
2 | Blinky Blinky | LED | Illumination | |||||
3 | ||||||||
4 | ||||||||
5 | ||||||||
6 | ||||||||
7 | ||||||||
8 | ||||||||
9 | ||||||||
10 | ||||||||
11 |
Relay Outputs
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation | Notes |
0 | ||||||
1 | ||||||
2 | ||||||
3 |
Analog IO
RoboRIO Analog Inputs
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Voltage Range |
Notes |
0 | Shooter | Potentiometer | Bourns 3-Turn | Used for hood to show where it is | Tells the angle for the hood | Need to know how many rotations??? | |
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 | Hang | Flag sensor | OPB815WZ | Tell if hang is all the way in | 0 = out, 1 = in | Power From RoboRio, Requires Pullup |
1 | IN | ||||||
2 | IN | Storage | Banner Optical | Q10RN6R/Q106E | Sees when a ball is at stage one | 1 = Ball present
0 = Ball not present |
Requires 12V and Pullup |
3 | IN | Storage | Banner Optical | Q10RN6R/Q106E | Sees when a ball is at stage two | 1 = Ball present
0 = Ball not present |
Requires 12V and Pullup |
4 | IN | Shooter | Banner Optical | Q10RN6R/Q106E | Counts balls that leave the robot | 1 = Ball present
0 = Ball not present |
Requires 12V and Pullup |
5 | |||||||
6 | |||||||
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 |
0x52 | |||||||
SPI Devices
# | Subsystem | Component Type |
Model # | Description (brief) | Operation | Notes |
0 | Drive | IMU | ADIS16470 IMU | A 3d gyro and accelerometer | Tells the rotation for swerve drive | |
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 | Hang(left arm) | Double | hold arm straight | extend piston to pivot | |||
1 | pivot arm to bar | retract to straighten | ||||||
2 | Intake | Double | Intake deployed | extend piston to deploy | ||||
3 | Intake not deployed | retract piston to disengage | ||||||
4 | Intake | Double | Intake deployed | extend piston to deploy | ||||
5 | Intake not deployed | retract piston to disengage | ||||||
6 | ||||||||
7 | ||||||||
2 | 0 | |||||||
1 | ||||||||
2 | ||||||||
3 | ||||||||
4 | ||||||||
5 |
Robot Lights Reference
TBD if lights on 2022 robot
- When Disabled:
- TBD
- When Enabled:
- TBD
Operator Controls
Disable Xbox Controller
Controller 1 - Primary Driver
Button/Axis # | Action/Button | Description | Details |
A-1 | Left Joystick Y | ||
A-1 | Left Joystick X | ||
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 | A Button | ||
B-3 | X Button | ||
B-4 | Y Button | ||
B-2 | 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 | A Button | ||
B-2 | B button | ||
B-3 | X Button | ||
B-4 | 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 |
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_wheel | number |
0 - do NOT know 1 - Red 2 - Green 3 - Blue 4 - Yellow |
The color the robot's sensor is seeing |
thunderdashboard_wheel_end | number | see thunderdashboard_wheel | The color FMS is asking for in the final stage |
thunderdashboard_shooter_speed | number | 0 - 100 | the speed the shooter is running at: 0 is min and 100 is max |
thunderdashboard_shooter_pos | number | 0 - 360 | the position of the turret, in degrees from home position: 0 is home |
thunderdashboard_shooter_hood | number | 0 - 100 | the position of the hood: 0 is down, 100 is completely up |
thunderdashboard_hang_pos | number |
0 - 100 |
the position of the arm, for hang: 0 is full retracted, 100 is full extended |
thunderdashboard_hang_lock | number |
0 - hang ratched is not locked 1 - hang ratched is locked |
indicates whether the ratchet, for hang, is engaged or not |
thunderdashboard_intake_pos | number |
0 - intake is down (deployed) 1 - intake is up (retracted) |
indicates whether the intake is up or not |
thunderdashboard_ballcount | number | -1 - do not know
0 - 5 |
Number of balls (game pieces) the robot thinks it has |
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_max | number |
0 = show normal 1 = fills screen |
whether to fill the laptop screen with the dashboard or not |
thunderdashboard_starting_count | number | 0-3 | editable, set initial count of power cells in robot before auto |
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_drivearcade | number |
0 = tank drive 1 = arcade drive |
what mode drive is using. dashboard will show 'Tank Drive' when in that mode, otherwise nothing is shown |