2015:Robot IO Map
Robot I/O
CAN ID Assignments
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Notes |
0 | RESERVED | n/a |
Factory-default allows for adding CTRE devices quickly and re-assign its ID |
don't use | ||
1 | RESERVED | n/a | Factory-default allows for adding Jaguar quickly and re-assign its ID |
don't use | ||
2 | drivetrain | motor | CIM | Left Front Drive | ||
3 | drivetrain | motor | CIM | Left Rear Drive | ||
4 | drivetrain | motor | CIM | Right Front Drive | ||
5 | drivetrain | motor | CIM | Right Rear Drive | ||
6 | drivetrain | motor | CIM | Strafe | unclear on how to activate this motor | |
7 | lifter | motor | RS775 | Left lifter | ||
8 | lifter | motor | RS775 | Right lifter | ||
9 | gripper | motor | RS550 | Gripper/Motor | ||
10 | ||||||
11 | ||||||
12 | ||||||
13 | ||||||
14 | ||||||
15 | pnuematics | PCM module |
N/A |
Stabilizer, Shifter, Strafing | address spaces for Jaguars, SRXs, PCM, and PDP are all separate. We are limited to one PDP, and will need only one PCM | |
0 | power dist. | PD module |
N/A |
Power Distribution Readback | Must be 0 (WPILib has no easy way to use another ID). We'll only ever have one |
PWM Outputs
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation
|
Notes |
0 | ||||||
1 | ||||||
2 | ||||||
3 | ||||||
4 | ||||||
5 | ||||||
6 | ||||||
7 | ||||||
8 | ||||||
9 |
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 | drivetrain | gyro | ADW22307 | drivetrain gyro rot feedback |
X & Y orientation used in Autonomous. (no temp correction needed within our bounds) |
2.5 V center (σ, 0.007 V/deg/sec (0.0069 to 0.0074 within ± 1σ) | New Part Number: Datasheet |
1 | |||||||
2 | |||||||
3 |
Rev Robotics More Board Analog IO
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Voltage Range |
Notes |
AIN0 | |||||||
AIN1 | |||||||
AIN2 | |||||||
AIN3 | |||||||
AOUT0 | |||||||
AOUT1 |
Digital IO (GPIO)
RoboRio IO
ID | Direction (IN/OUT) |
Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Notes |
0 | IN | drivetrain | Encoder | 63R256 | Left Encoder, Phase A | Drivetrain rotation - calculate Position measurement | |
1 | IN |
- |
- | - | Left Encoder, Phase B |
B-channel | May not be present |
2 | IN | drivetrain | Encoder | 63R256 | Right Encoder, Phase A | Drivetrain rotation - calculate Position measurement |
|
3 | IN | - |
- | - | Right Encoder, Phase B |
B-channel |
May not be present |
4 | IN | lifter | Encoder | 63R256 | Lifter Encoder, Phase A | Lifter drive rotation - calculate Height Zeroed with Lifter Flag Sensor. Channel A | |
5 | IN |
- |
- | - | Lifter Encoder, Phase B |
B-channel |
|
6 | IN | lifter | Flag Sensor | OPB815 | Home Position At Bottom | Lower position | |
7 | IN | gripper | Encoder | 63R256 | Gripper Encoder, Phase A | Gripper drive rotation - calculate Position | |
8 | IN | - | - | - | Gripper Encoder, Phase B | B-channel | |
9 | IN | gripper | Flag Sensor | OPB815 | Home Gripper Position A | Inner position home flag (Primary) |
Rev Robotics More Board IO
ID | Direction (IN/OUT) | Subsystem | Component Type | Model # | Description (brief) | Operation |
Notes |
0 | IN |
gripper |
Banner |
Q10AN6R | Gripper Tote Detection |
Beam break sensor to check for tote presence |
sensor open collector output. pullup in roborio |
1 | IN |
lifter |
Flag |
OPB815 | Lift encoder high flag |
Lifter upper flag, for safety and to help calibration |
|
2 | IN |
gripper |
Flag Sensor |
OPB815 | Home Gripper Position B |
Inner position Backup |
|
3 | |||||||
4 | |||||||
5 | |||||||
6 | |||||||
7 | |||||||
8 | |||||||
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 |
0 | |||||||
1 | |||||||
2 | |||||||
3 | |||||||
4 | |||||||
5 | |||||||
6 |
SPI Devices
# |
Subsystem | Component Type |
Model # | Description (brief) | Operation |
Notes |
kOnBoardCS0 | drivetrain | accelerometer | ADXL345 |
accelerometer, right by the gyro |
to improve autonomous drive code |
|
USB Host Ports
Address |
Subsystem | Component Type |
Model # | Description (brief) | Operation |
Notes |
0 | Camera | Camera | HD-3000 | USB camera | Facing down from top of lifter. Helps with tote + alignment in auto, driver, maybe for semiauto | |
1 | Logging | USB Stick | ? | USB Stick to log info | record match and state information at high rate, for postmortem match analysis |
Pneumatics Control Module
ID | Subsystem | Component Type |
Model # |
Description (brief) |
Operation |
Notes | Pressure Circuit |
0 | Drivetrain | Single Solenoid | SY3140-6LZ | shifter LOW (default high) | shifts down | double action cylinder (vented no action) | A (4 total, 40-60 psi tbd) |
1 | Drivetrain |
Single Solenoid |
SY3140-6LZ |
strafing wheel DOWN (default up) |
lowers strafing wheel |
single action, spring retract cylinder (vented up) | B (3 total, 20-60 psi tbd) |
2 | Stabilizer |
Single Solenoid |
SY3140-6LZ | Stabilizer Gripper IN (default out) |
closes stabilizer |
double action cylinder (vented no action) |
A |
3 | Lifter |
Single Solenoid |
SY3140-6LZ |
Lifter brake OPEN (default locked) |
pnuematic cylinder engages bicycle brake to lock lift elevator |
double action cylinder (vented open, spring on brake) |
A |
4 | |||||||
5 | |||||||
6 | |||||||
7 |
Operator Controls
There are two drive modes:
- Porcupine
- Arcade
Joystick 1/Left
Button/Axis | Description (brief) |
Operation (Porcupine) |
Operation (Arcade) |
Notes |
Y-Axis | 6Move Forward/Backward |
Corresponds to forward motion of left side (unless #3 is pressed) |
Moves whole robot forward |
|
X-Axis | Corresponds to 1/2 of lateral robot motion |
Moves whole robot sideways (right is right) |
||
1/trigger | Shift | On button press shifts to high gear. On release, shifts to low gear. Only one trigger needs to be pressed. |
||
2 | Raise center wheel |
On state transitions from no #2 buttons pressed to one or more #2 buttons pressed, the center wheel toggles from up to down and vica versa. |
||
3 | Straight |
Drive straight forward and back with only Y axis of left joystick |
||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
10 | ||||
11 | ||||
12 | ||||
Z-axis |
Joystick 2/Right
Button/Axis | Description (brief) |
Operation (Porcupine) |
Operation (Arcade) |
Notes |
Y-axis | Move Forward/Backward |
Corresponds to forward motion of right side (unless #3 is on left Joystick is pressed) |
||
X-axis | Move Left/Right | Corresponds to 1/2 of lateral robot motion |
X axis determines rotation (around robot center, unless #4,#5 are pressed) |
|
1 | Shift | On button press shifts to high gear. On release, shifts to low gear. Only one trigger needs to be pressed. |
||
2 | Raise center wheel | On state transitions from no #2 buttons pressed to one or more #2 buttons pressed, the center wheel toggles from up to down and vica versa. |
||
3 | Signal |
When pressed, make the lights blink to signal to the human player |
||
4 | Pivot over left |
While pressed, center of rotation is halfway on left side |
||
5 | Pivot over right |
While pressed, center of rotation is halfway on right side |
||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
10 | ||||
11 | ||||
12 | ||||
Z-axis |
Joystick 3
Button/Axis | Description (brief) |
Operation |
Notes |
X-axis | |||
Y-axis | Move up/down | Raise/lower grips, if Level 3 Preset not being pressed. This controls speed of movement. |
Forward is down, back pulls up |
1/trigger | Close lower grips |
Closes the grips while this button is being pressed. Grips stop moving when this button and button #2 are both released. |
|
2 | Open lower grips | Opens the grips while this button is being pressed (and button #1 is released). Grips stop moving when this button and button #1 are both released. | |
3 | Level 3 Preset | Raise grips high enough to be above 2 totes (i.e. 2 tote stack created by human player at human player station). Grips raise and stay raised while the button is being pressed. While being pressed, the Y-axis is ignored. When button is released, Y-axis controls grip height. | |
4 | TBD - RC gripper |
||
5 | TBD - RC gripper | ||
6 | Opens Stabilizer Arms | compress pistons to open arms when pressed |
|
7 | Closes Stabilizer Arms | extend pistons to close arms when pressed | |
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
Z-axis |
Joystick 4/LaunchPad
Button/Axis |
Description (brief) |
Operation | Notes |
1 | Auto 'main' |
Active when 3-way Auto switch is 'up'. This will pick the hard coded/defined auto mode. | |
2 | Auto 'dashboard' | Active when 3-way Auto switch is 'down'. This will indicate that the auto mode selected in the Dashboard is to be used. | |
3 | Broken #1 |
Lift position sensors broken |
left-most switch on top row |
4 | Broken #2 | Gripper position sensors broken |
located to the right of Broken #1 |
5 | Broken #3 | enable arcade drive (has priority over #4) |
located to the left of Broken #4 |
6 | Broken #4 | future |
right-most switch on top row |
7 | Broken #5 | future |
left-most switch on bottom row |
8 | Broken #6 | set alternate camera |
located to the right of Broken #5 |
9 | Broken #7 | future | located to the left of Broken #8 |
10 | Broken #8 | future |
Right-most switch on bottom row |
Output Byte | Is 1 If and Only If... | Notes |
1 | Autonomous Mode is active (either disabled or running) | |
2 | TeleOperated Mode is active (either disabled or running) | |
3 | The alliance color is Red | |
4 | The drive is in pure tank/pure strafe mode | |
5 | The drive is in arcade mode | |
6 | The drive is in porcupine mode | |
7 | The FMS is attached | |
8 | The Roborio has declared brownout | |
9 | The alliance color is in an indeterminate state | |
10 | The Driver Station is Enabled (Either Auto, Tele, Test is running) | |
11 | We are in station 1 or 3 (false=station 2 or invalid) | |
12 | We are in station 2 or 3 (false=station 1 or invalid) | |
13 | ||
14 | ||
15 | ||
16 | ||
17 | ||
18 | ||
19 | ||
20 | ||
21 | ||
22 | ||
23 | ||
24 | ||
25 | ||
26 | ||
27 | ||
28 | ||
29 | ||
30 | ||
31 | ||
32 |
SmartDashboard
Screen |
Description (brief) | Operation | Notes | Variable Name | Data Type |
Main | Camera Feed | Direct feed from the camera | -- | -- | -- |
Main | Auto Choice | Will be used to control which autononomous mode is used. | The auto mode should only be able to be changed if the three way switch is in the down position. | auto_choice | double |
Main | Auto Switch Position | Will be used to determine if autononomous mode from dashboard is used. | The auto mode should only be able to be changed in the dashboard if the three way switch is in the down position. | auto_switch | double |
Main | Gripper Position | A meter used to show the position of the grippers. | Will show a percent as a label, 0% means closed and 100% means fully opened. | gripper_position |
double |
Main | Lifter Position | A meter used to show the position of the lifter. | Will show a percent as a label, 0% means home position and 100% means the lifter is at full height. |
lifter_position |
double |
Main | Auto Mode Description | Describes the currently selected auto mode. | -- | auto_description | string |