2018:Robot IO Map
Robot I/O
CAN ID Assignments
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation |
Notes (8) max. 40A PDB # | |
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 | cube intake | RS 775 | Talon SRX | left | Intake cube to hand (+) eject cube (-) | 30 A | 8 |
3 | cube intake | RS 775 | Talon SRX | right | Intake cube to hand (+) eject cube (-) | 30 A | 7 |
4 | arm | RS 775 | Talon SRX | moves arm | moves from arm front (+) to back (-) | 30 A | 9 |
5 | hand | RS 775 | Talon SRX | hold and eject the cube | rollers intake (+) eject the cube (-) | 30 A | 6 |
6 | Left Ramp, Near Jack | RS 775 | Talon SRX | Raise/Lower jack |
Raise jack (+) Vex encoder feeds direct to talon |
30 A | 13 |
7 | Left Ramp, Far Jack | RS 775 | Talon SRX | Raise/Lower jack |
Raise jack (+) Vex encoder feeds direct to talon |
40 A | 12 |
8 | Right Ramp, Near Jack | RS 775 | Talon SRX | Raise/Lower jack |
Raise jack (+) Vex encoder feeds direct to talon |
40 A | 3 |
9 | Right Ramp, Far Jack | RS 775 | Talon SRX | Raise/Lower jack |
Raise jack (+) Vex encoder feeds direct to talon |
30 A | 11 |
10 | |||||||
11 | |||||||
12 | |||||||
13 | |||||||
14 | |||||||
15 |
PWM Outputs
ID | Subsystem | Component Type |
Model # | Description (brief) |
Operation
|
Notes (8) max. 40A PDB # | |
0 | DriveBase | CIM | SPARK | Left Motor 1; +Voltage = Forwards | 40A | 0 | |
0 | DriveBase | CIM | SPARK | Left Motor 2; +Voltage = Forwards | 40A | 1 | |
1 | DriveBase | CIM | SPARK | Right Motor 1; +Voltage = Forwards | 40A | 15 | |
1 | DriveBase | CIM | SPARK | Right Motor 2; +Voltage = Forwards | 40A | 14 | |
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 | ||||||||
1 |
|
|||||||
2 | Arm | pot |
|
arm position | arm forward (+) arm back (-) | 0-4 v ? | ||
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 | Drive | encoder | 63r256 | left encoder phase A | measures distance traveled | 256 counts per rev |
1 | IN | Arm | Leaf switch | Honeywell V7-2B17D8-048 | Limit at end of travel for back of robot | Limit "switch" - digital low at limit | |
2 | IN | Drive | encoder | 63r256 | right encoder phase A | measures distance traveled | 256 counts per rev |
3 | IN | Arm | Leaf switch | Honeywell V7-2B17D8-048 | Limit at end of travel for front of robot | Limit "switch" - digital low at limit | |
4 | IN | Intake | magnetic reed switch | Intake is all the way out |
1 = Intake Up (In) 0 = Intage Down (Out) |
||
5 | IN | Arm | encoder | srx magnetic encoder | arm encoder phase A | 1024 counts per rev | |
6 | IN | Arm | encoder | srx magnetic encoder | arm encoder phase B | 1024 counts per rev | |
7 | IN | ||||||
8 | IN | ||||||
9 | IN | Hand | Allen Bradley diffuse sensor | 42EF-D1MNAK-A2 | cube present |
1 = Cube Present 0 = Cube Not Present |
needs 10+ volt via PD board #3 |
Rev Robotics More Board IO
ID | Direction (IN/OUT) | Subsystem | Component Type | Model # | Description (brief) | Operation | Notes |
0 | |||||||
1 | |||||||
2 | |||||||
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 |
USB Host Ports
Address |
Subsystem | Component Type |
Model # | Description (brief) | Operation |
Notes |
0 | ||||||
1 |
Pneumatics Control Module
# | Subsystem | Solenoid is Double or Single? |
Solenoid Model # |
Description (brief) |
Operation | Circuit Pressure | Notes |
0 | Intake | Double | SY3240-6 | Raise intake | Extends cylinder to raise intake | 60 PSI | B |
1 | Lower intake | Retracts cylinder to lower intake | A | ||||
2 | Brake (Arm) | Double | SY3240-6 | Disengage brake on arm pivot. Does not actually pass air (block output) | Extends cylinder to disengage brake | 60 PSI | B |
3 | Engage brake on arm pivot | Retracts cylinder to engage brake | A | ||||
4 | Hand (Arm) | Double | SY3240-6 |
Release hand's grip on cube Does not actually pass air (block output) |
Removes air pressure from cylinder to "relax" grip on cube | ?? PSI | B |
5 | Tighten hand grip on cube | Retracts cylinder to "close" hand | A | ||||
6 | Ramp | Double | SY3240-6 | Allows ramps to deploy to ground | Retracts cylinder to release ramps to ground | 60 PSI | B |
7 | Holds ramps in stored position | Extends cylinder to hold ramps in up position | A |
Operator Controls
Controller 1 - Primary Driver
Button/Axis # | Action/Button | Description | Details |
A-1 | Left Joystick Y | Drive Forward/Back |
Up drive the robot forward (Intake side) NOTE: will do the opposite if swap drive is toggled |
A-1 | Left Joystick X | Nothing | |
A-4 | Right Joystick Y | Nothing | |
A-4 | Right Joystick X | Turn Left/Right |
Right will turn the robot clockwise and vice NOTE: will do the opposite if swap drive is toggled |
B-5 | Left Bumper | Slow | decreases the range of power to the motors by a set amount |
B-6 | Right Bumper | Nothing | |
A-2 | Left Trigger | Turbo | Increases the range of power to the motors by a set amount. |
A-3 | Right Trigger | Swap Drive |
Switches the front and back of the robot. Press to toggle. |
Controller 2 - Aux Driver
Button/Axis # | Action/Button | Description | Details |
A-5 | Right Joystick Y | Fine Arm Control |
Up - towards front Down - towards back Only moves arm and intake, when not in moving to a preset. Moves at a slower speed than the presets. When broken switches 1 is flipped, the arm will not stop at the front of the robot automatically. The driver is responsible for stopping the arm by letting go of the joystick. When broken switches 2 is flipped, the arm will not stop at the back of the robot automatically. The driver is responsible for stopping the arm by letting go of the joystick. |
B-5 | Left Bumper | Raise Right Ramp |
Press and Hold If button is let go, then the ramp will stop in place. If broken switch 5 is flipped, the ramp will not auto-stop when at top. Driver is responsible for stopping. |
B-6 | Right Bumper | Raise Left Ramp |
Press and Hold If button is let go, then the ramp will stop in place. If broken switch 4 is flipped, the ramp will not auto-stop when at top. Driver is responsible for stopping. |
A-3 | Right Trigger | Intake |
Press and Hold Will auto-stop when cube is all the way in. If broken switch 6 is flipped, the intake will not auto-stop when cube is fully in. |
A-2 | Left Trigger | Outtake | Press and Hold |
POV-0 | Dpad Up | Moves Intake Up |
When broken switch 1 is flipped, this moves the intake up. |
POV-180 | Dpad Down | Moves Intake Down | When broken switch 1 is flipped, this moves the intake down |
B-4 | Y button | Arm to Intake Level Front (Preset position) |
Press, and release, to move arm and intake there automatically. When broken switch 1 is flipped, the presets do not work. |
B-1 | A button | Arm to Exchange Level Back (Preset position) |
Press, and release, to move arm and intake there automatically. When broken switch 1 is flipped, the presets do not work. |
B-2 | B button | Arm to Switch Back (Preset position) |
Press, and release, to move arm and intake there automatically. When broken switch 1 is flipped, the presets do not work. |
B-3 | X button | Arm to Switch Front (Preset position) |
Press, and release, to move arm and intake there automatically. When broken switch 1 is flipped, the presets do not work. |
B-7 + B-8 | Start + Select | Deploy Ramps |
Press, and release, both at same time to lower ramps. Lowers all parts of the ramp. |
Broken Switches
Switch | Description | Details |
Broken Switch1 | Arm/Intake Movement |
None of the presets work. Intake doesn't move in and out with the arm automatically |
Broken Switch2 | Arm Front Limit Switch | Arm won't auto-stop when going towards the front. |
Broken Switch3 | Arm Back Limit Switch | Arm won't auto-stop when going towards the back. |
Broken Switch4 | Ramp Left Lift | Left Ramp doesnt auto-stop when at top. |
Broken Switch5 | Ramp Right Lift | Right Ramp doesn't auto-stop when at top. |
Broken Switch6 | Cube Intake | Cube intake doesn't auto-stop when cube is fully in. |
Dashboard
Feature | Control | Key | Value |
Have Cube | The background areas of the dashboard will be green when there is a cube | thunderdashboard_green |
0 - do not have a cube 1 - have a cube |
Arm position | A horizontal meter/gauge that shows the arm's position.
An empty gauge means the arm is all the way down in the back. A full gauge means the arm is all the way down in the front . |
thunderdashboard_armpos |
number ranging from 0 to 100 0 means arm is all the way down on the back 50 means arm is point straight up 100 means arm is all the way down on the front |
Intake position | TBD | thunderdashboard_intake |
0 - intake is up/in 1 - intake is down/out |
Gyro cal |
The background areas of the dashboard will be red when the gyro is in the middle of its calibration. Helps to inform drivers to not touch the robot whil calibrating, |
thunderdashboard_gyro |
0 - not calibrating 1 - in middle of calibration |