2022:Robot IO Map: Difference between revisions

From 1511Wookiee
Jump to navigationJump to search
(Created page with " = Archives = *2020:Controls *2019:Controls *2018:Controls *2017:Controls *2016:Controls *2015:Electrical_Controls_Subteam *2014:Electrical_Co...")
 
No edit summary
Line 1: Line 1:


<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
= Robot I/O =
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
== CAN ID Assignments ==


= Archives =
{| border="1" cellpadding="2" cellspacing="1" style="width: 855px"
*[[2020:Controls]]  
|-
*[[2019:Controls]]  
| style="text-align: center" | '''ID'''
*[[2018:Controls]]  
| style="text-align: center" | '''Subsystem'''
*[[2017:Controls]]  
| <p style="text-align: center">'''Component'''</p> <p style="text-align: center">'''Type'''</p>
*[[2016:Controls]]  
| style="text-align: center; width: 112px" | '''Model #'''
*[[2015:Electrical_Controls_Subteam]]  
| style="width: 70px; text-align: center" | '''Brake or Coast?'''
*[[2014:Electrical_Controls_Subteam]]  
| style="width: 110px; text-align: center" | '''Description'''<br/> (brief)
*[[2013:Electrical_Controls_Subteam]]  
| style="width: 224px; text-align: center" | '''Operation'''
*[[2012:Electrical_Controls]]  
| colspan="2" rowspan="1" style="width: 175px; text-align: center" |
*[[2011:Electrical_Controls]]  
'''Notes'''
*[[2010:Electrical_Controls]]  
 
*[[2009:Electrical_Controls]]
'''(8) max. 40A &nbsp; &nbsp; &nbsp; &nbsp; PDB #'''
 
|-
| style="text-align: center" | 0
| style="text-align: center" | Electrica'''l'''
| <p style="text-align: center">PD Module</p>
| style="text-align: center; width: 112px" | &nbsp;
| style="width: 70px; text-align: center" | &nbsp;
| style="width: 110px; text-align: center" | Power Distribution Module feedback
| style="width: 224px; text-align: center" | monitor PD
| style="width: 115px" | <p style="text-align: center">must be CAN 0</p>
| style="width: 55px" | &nbsp;
|-
| style="text-align: center" | 1
| style="text-align: center" | '''RESERVED'''
| style="text-align: center" | n/a
| style="text-align: center; width: 112px" | &nbsp;
| style="width: 70px; text-align: center" | &nbsp;
| style="width: 110px; text-align: center" | Factory-default<br/> allows for adding new device quickly and re-assign its ID
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" | don't use
| style="width: 55px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 2
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 3
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 4
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" |
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 5
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 6
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 7
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" |
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" | 2
|-
| style="text-align: center" | 8
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" |
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 9
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" |
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 10
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| style="text-align: center" | 11
| style="text-align: center" |
| style="text-align: center" |
| style="text-align: center; width: 112px" |
| style="width: 70px; text-align: center" |
| style="width: 110px; text-align: center" |
| style="width: 224px; text-align: center" |
| style="width: 115px; text-align: center" |
| style="width: 55px; text-align: center" |
|-
| 12
| style="text-align: center" | &nbsp;
| style="text-align: center" | &nbsp;
| style="text-align: center; width: 112px" | &nbsp;
| style="width: 70px; text-align: center" | &nbsp;
| style="width: 110px; text-align: center" | &nbsp;
| style="width: 224px; text-align: center" | &nbsp;
| style="width: 115px; text-align: center" | &nbsp;
| style="width: 55px; text-align: center" | &nbsp;
|-
| 13
| style="text-align: center" | &nbsp;
| style="text-align: center" | &nbsp;
| style="width: 112px" | &nbsp;
| style="width: 70px; text-align: center" | &nbsp;
| style="width: 110px; text-align: center" | &nbsp;
| style="width: 224px" | &nbsp;
| style="width: 115px; text-align: center" | &nbsp;
| style="width: 55px; text-align: center" | &nbsp;
|-
| 14
| &nbsp;
| style="text-align: center" | &nbsp;
| style="width: 112px" | &nbsp;
| style="width: 70px" | &nbsp;
| style="width: 110px" | &nbsp;
| style="width: 224px" | &nbsp;
| style="width: 115px; text-align: center" | &nbsp;
| style="width: 55px; text-align: center" | &nbsp;
|-
| 15
| &nbsp;
| style="text-align: center" | &nbsp;
| style="width: 112px" | &nbsp;
| style="width: 70px" | &nbsp;
| style="width: 110px" | &nbsp;
| style="width: 224px" | &nbsp;
| style="width: 115px; text-align: center" | &nbsp;
| style="width: 55px; text-align: center" | &nbsp;
|}
</div> </div> <div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> <div class="mw-parser-output">&nbsp;</div> </div> </div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div></div> <div class="mw-parser-output">&nbsp;</div> </div> <div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div></div></div> <div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div>
 
<div class="mw-parser-output">
== PWM Outputs ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 902px"
|-
| style="width: 15px" | '''ID'''
| style="width: 70px; text-align: center" | '''Subsystem'''
| style="width: 76px" | <p style="text-align: center">'''Component'''</p> <p style="text-align: center">'''Type'''</p>
| style="text-align: center; width: 94px" | '''Model #'''
| style="text-align: center; width: 167px" | '''Description<br/> (brief)'''
| style="text-align: center; width: 148px" |
'''Operation'''
 
&nbsp;
 
| style="text-align: center; width: 280px" | '''Brake/Coast'''
| colspan="2" rowspan="1" style="width: 198px; text-align: center" |
'''Notes'''
 
'''(8) max. 40A &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PDB # &nbsp;&nbsp;'''
 
|-
| style="width: 15px" | 0
| style="width: 70px" | Hang
| style="width: 76px" | Servo
| style="width: 94px" |
&nbsp;
 
Hs-322HD
 
| style="width: 167px; text-align: center" | Engages/disingages ratchet
| style="width: 148px" |
&nbsp;
 
| style="width: 280px" | N/A
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| style="width: 15px" | 1
| style="width: 70px" | Shooter
| style="width: 76px" | Servo
| style="width: 94px" |
Hs-785HB
 
| style="width: 167px; text-align: center" | Moves turret hood to increase/decrease shot angle
| style="width: 148px" | &nbsp;
| style="width: 280px" | N/A
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| style="width: 15px" | 2
| style="width: 70px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 94px" | &nbsp;
| style="width: 167px; text-align: center" | &nbsp;
| style="width: 148px" | &nbsp;
| style="width: 280px" | &nbsp;
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| style="width: 15px" | 3
| style="width: 70px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 94px" | &nbsp;
| style="width: 167px; text-align: center" | &nbsp;
| style="width: 148px" | &nbsp;
| style="width: 280px" | &nbsp;
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| style="width: 15px" | 4
| style="width: 70px" | Driver LEDs
| style="width: 76px" | LED
| style="width: 94px" | LED
| style="width: 167px; text-align: center" | Gives connection to Driver Interface LEDs
| style="width: 148px" | Allows drivers to see power cell count from the front/back of robot
| style="width: 280px" | N/A
| style="width: 125px" | 20A (via voltage regulator)
| style="width: 72px" | 10
|-
| style="width: 15px" | 5
| style="width: 70px" | Wheel of Fortune
| style="width: 76px" | Servo
| style="width: 94px" | &nbsp;
| style="width: 167px" | Swing color sensor outside the frame perimeter
| style="width: 148px" | &nbsp;
| style="width: 280px" | &nbsp;
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| rowspan="1" style="width: 15px" |
6
 
&nbsp;
 
| style="width: 70px" |
Drive base
 
&nbsp;
 
| style="width: 76px" | Spark Max
| style="width: 94px" | Neo
| style="width: 167px; text-align: center" | Left front drive motor
| style="width: 148px" | Moves left side of robot forwards/backwards
| style="width: 280px" | Don't know
| style="width: 125px; text-align: center" | 40A
| style="width: 72px; text-align: center" | 14
|-
| rowspan="1" style="width: 15px" |
7
 
&nbsp;
 
| style="width: 70px" | Drive Base
| style="width: 76px" | Spark Max
| style="width: 94px" | Neo
| style="width: 167px; text-align: center" | &nbsp;Left rear drive motor
| style="width: 148px" | &nbsp;
| style="width: 280px" | Don't know
| style="width: 125px; text-align: center" | 40A
| style="width: 72px; text-align: center" | 15
|-
| rowspan="1" style="width: 15px" | 8
| style="width: 70px" | Drive Base
| style="width: 76px" | Spark Max
| style="width: 94px" | Neo
| style="width: 167px; text-align: center" | Right front drive motor
| style="width: 148px" | Moves right side of robot forwards/backwards
| style="width: 280px" | Don't know
| style="width: 125px; text-align: center" | 40A
| style="width: 72px; text-align: center" | 0
|-
| rowspan="1" style="width: 15px" |
9
 
&nbsp;
 
| style="width: 70px" | Drive Base
| style="width: 76px" | Spark Max
| style="width: 94px" | Neo
| style="width: 167px; text-align: center" | Right Rear drive Motor
| style="width: 148px" | &nbsp;
| style="width: 280px" | Don't know
| style="width: 125px; text-align: center" | 40A
| style="width: 72px; text-align: center" | 1
|-
| style="width: 15px" | 8
| style="width: 70px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 94px" | &nbsp;
| style="width: 167px" | &nbsp;
| style="width: 148px" | &nbsp;
| style="width: 280px" | &nbsp;
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|-
| style="width: 15px" | 9
| style="width: 70px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 94px" | &nbsp;
| style="width: 167px" | &nbsp;
| style="width: 148px" | &nbsp;
| style="width: 280px" | &nbsp;
| style="width: 125px" | &nbsp;
| style="width: 72px" | &nbsp;
|}
 
&nbsp;
<div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> <div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div></div></div></div></div></div></div>
 
== Relay Outputs ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 927px"
|-
| '''ID'''
| style="text-align: center" | '''Subsystem'''
| style="width: 69px" | <p style="text-align: center">'''Component'''</p> <p style="text-align: center">'''Type'''</p>
| style="width: 54px; text-align: center" | '''Model #'''
| style="width: 192px; text-align: center" | '''Description<br/> (brief)'''
| style="width: 259px; text-align: center" | '''Operation'''
| style="width: 115px; text-align: center" | '''Notes'''
|-
| 0
| &nbsp;
| style="width: 69px" | &nbsp;
| style="width: 54px" | &nbsp;
| style="width: 192px" | &nbsp;
| style="width: 259px" | &nbsp;
| style="width: 115px" | &nbsp;
|-
| 1
| &nbsp;
| style="width: 69px" | &nbsp;
| style="width: 54px" | &nbsp;
| style="width: 192px" | &nbsp;
| style="width: 259px" | &nbsp;
| style="width: 115px" | &nbsp;
|-
| 2
| &nbsp;
| style="width: 69px" | &nbsp;
| style="width: 54px" | &nbsp;
| style="width: 192px" | &nbsp;
| style="width: 259px" | &nbsp;
| style="width: 115px" | &nbsp;
|-
| 3
| &nbsp;
| style="width: 69px" | &nbsp;
| style="width: 54px" | &nbsp;
| style="width: 192px" | &nbsp;
| style="width: 259px" | &nbsp;
| style="width: 115px" | &nbsp;
|}
 
&nbsp;
</div> <div class="mw-parser-output">
== Analog IO ==
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output">
=== <u>RoboRIO Analog Inputs</u> ===
 
{| style="width: 1030px" cellspacing="1" cellpadding="2" border="1"
|-
| ID
| style="text-align: center" | Subsystem
| style="width: 70px" | <p style="text-align: center">Component</p> <p style="text-align: center">Type</p>
| style="width: 54px;  text-align: center" | Model #
| style="width: 227px;  text-align: center" | Description<br/> (brief)
| style="width: 262px;  text-align: center" | Operation
| style="width: 132px;  text-align: center" |
Voltage
 
Range
 
| style="width: 91px;  text-align: center" | Notes
|-
| 0
| Drive Base
| style="width: 70px" | Gyro
| style="width: 54px" | ADW22307
| style="width: 227px" | Located on center axis underneath the helix
| style="width: 262px" | Tells where the drive base is looking by degrees (for autonomous)
| style="width: 132px" | 7mV/degree
| style="width: 91px;  text-align: center" | &nbsp;
|-
| style="text-align: center" | 1
| style="text-align: center" | Shooter
| style="width: 69px;  text-align: center" | Potentiometer
| style="width: 122px;  text-align: center" | Bournes 3547S-1AA-103A
| style="width: 139px;  text-align: center" | Located on the output of the hood servo
| style="width: 193px;  text-align: center" | Tells the angle of the hood
| style="width: 223px;  text-align: center" | &nbsp;
| &nbsp;
|-
| style="text-align: center" | 2
| style="text-align: center" | &nbsp;
| style="width: 69px;  text-align: center" | &nbsp;
| style="width: 122px;  text-align: center" | &nbsp;
| style="width: 139px;  text-align: center" | &nbsp;
| style="width: 193px;  text-align: center" | &nbsp;
| style="width: 223px;  text-align: center" | &nbsp;
| &nbsp;
|-
| style="text-align: center" | 3
| style="text-align: center" | &nbsp;
| style="width: 69px;  text-align: center" | &nbsp;
| style="width: 122px;  text-align: center" | &nbsp;
| style="width: 139px;  text-align: center" | &nbsp;
| style="width: 193px;  text-align: center" | &nbsp;
| style="width: 223px;  text-align: center" | &nbsp;
| &nbsp;
|}
</div> <div class="mw-parser-output">&nbsp;</div> </div>
 
=== <u>More Board Analog Inputs</u> ===
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 1030px"
|-
| ID
| style="text-align: center" | Subsystem
| style="width: 70px" | <p style="text-align: center">Component</p> <p style="text-align: center">Type</p>
| style="width: 54px; text-align: center" | Model #
| style="width: 227px; text-align: center" | Description<br/> (brief)
| style="width: 262px; text-align: center" | Operation
| style="width: 132px; text-align: center" |
Voltage
 
Range
 
| style="width: 91px; text-align: center" | Notes
|-
| style="text-align: center" | 0
| style="text-align: center" | &nbsp;
| style="width: 69px; text-align: center" | &nbsp;
| style="width: 122px; text-align: center" | &nbsp;
| style="width: 139px; text-align: center" | &nbsp;
| style="width: 193px; text-align: center" | &nbsp;
| style="width: 223px; text-align: center" | &nbsp;
| &nbsp;
|-
| style="text-align: center" | 1
| style="text-align: center" | &nbsp;
| style="width: 69px; text-align: center" | &nbsp;
| style="width: 122px; text-align: center" | &nbsp;
| style="width: 139px; text-align: center" | &nbsp;
| style="width: 193px; text-align: center" | &nbsp;
| style="width: 223px; text-align: center" | &nbsp;
| &nbsp;
|-
| style="text-align: center" | 2
| style="text-align: center" | &nbsp;
| style="width: 69px; text-align: center" | &nbsp;
| style="width: 122px; text-align: center" | &nbsp;
| style="width: 139px; text-align: center" | &nbsp;
| style="width: 193px; text-align: center" | &nbsp;
| style="width: 223px; text-align: center" | &nbsp;
| &nbsp;
|-
| style="text-align: center" | 3
| style="text-align: center" | &nbsp;
| style="width: 69px; text-align: center" | &nbsp;
| style="width: 122px; text-align: center" | &nbsp;
| style="width: 139px; text-align: center" | &nbsp;
| style="width: 193px; text-align: center" | &nbsp;
| style="width: 223px; text-align: center" | &nbsp;
| &nbsp;
|}
 
&nbsp;
</div> </div> </div> </div> <div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
== Digital IO (GPIO) ==
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div class="mw-parser-output">
=== <u>RoboRio IO</u> ===
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 1229px"
|-
| style="text-align: center" | '''ID'''
| style="text-align: center" | '''Direction'''<br/> (IN/OUT)
| style="width: 69px; text-align: center" | '''Subsystem'''
| style="width: 122px" | <p style="text-align: center">'''Component'''</p> <p style="text-align: center">'''Type'''</p>
| style="width: 139px; text-align: center" | '''Model #'''
| style="width: 193px; text-align: center" | '''Description<br/> (brief)'''
| style="width: 223px; text-align: center" | '''Operation'''
| style="width: 231px; text-align: center" | '''Notes'''
|-
| style="text-align: center" | 0
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Intake
| style="width: 122px; text-align: center" | Banner Opto
| style="width: 139px; text-align: center" | Q10RN6R
| style="width: 193px; text-align: center" | Senses Incoming Power Cells
| style="width: 223px; text-align: center" |
1 = Ball not present&nbsp;
 
0 = Ball Present
 
| style="width: 231px; text-align: center" |
w/Q106E emitter,
 
sensor open-collector out
 
|-
| style="text-align: center" | 1
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | &nbsp;
| style="width: 122px; text-align: center" | &nbsp;
| style="width: 139px; text-align: center" | &nbsp;
| style="width: 193px; text-align: center" | &nbsp;
| style="width: 223px; text-align: center" |
&nbsp;
 
| style="width: 231px; text-align: center" |
&nbsp;
 
|-
| style="text-align: center" | 2
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Storage
| style="width: 122px; text-align: center" | Allen-Bradley RightSight Prox Sensor
| style="width: 139px; text-align: center" | 42EF-D2MPAK-F4
| style="width: 193px; text-align: center" | Senses balls when ready to shoot
| style="width: 223px; text-align: center" |
1 = Ball present
 
0 = Ball not present
 
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 3
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Shooter
| style="width: 122px; text-align: center" | Banner Opto
| style="width: 139px; text-align: center" | Q10RN6R
| style="width: 193px; text-align: center" | Senses when a ball is exiting the shooter
| style="width: 223px; text-align: center" |
1 = Ball not present&nbsp;
 
0 = Ball Present
 
| style="width: 231px; text-align: center" |
w/Q106E emitter,
 
sensor open-collector out
 
|-
| style="text-align: center" | 4
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Drive base&nbsp;
| style="width: 122px; text-align: center" | Phase A Left Encoder
| style="width: 139px; text-align: center" | REV-11-1271
| style="width: 193px; text-align: center" | measures rotation of drive wheels
| style="width: 223px; text-align: center" | 2048 cycles per revolution
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 5
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Drive base
| style="width: 122px; text-align: center" | Phase B Left Encoder
| style="width: 139px; text-align: center" | REV-11-1271
| style="width: 193px; text-align: center" | measures rotation of drive wheels
| style="width: 223px; text-align: center" | 2048 cycles per revolution
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 6
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Drive base
| style="width: 122px; text-align: center" | Phase A Right Encoder
| style="width: 139px; text-align: center" | REV-11-1271
| style="width: 193px; text-align: center" | measures rotation of drive wheels
| style="width: 223px; text-align: center" | 2048 cycles per revolution
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 7
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Drive base
| style="width: 122px; text-align: center" | Phase B right encoder
| style="width: 139px; text-align: center" | REV-11-1271
| style="width: 193px; text-align: center" | measures rotation of drive wheels
| style="width: 223px; text-align: center" | 2048 cycles per revolution
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 8
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Intake
| style="width: 122px; text-align: center" | Omron Reflective
| style="width: 139px; text-align: center" | EE-SPY415
| style="width: 193px; text-align: center" | Senses the presence of the intake mechanism to zero the rotation motor encoder
| style="width: 223px; text-align: center" |
1 = not present
 
0 = present<br/> (Need to double check this)
 
| style="width: 231px; text-align: center" | &nbsp;
|-
| style="text-align: center" | 9
| style="text-align: center" | IN
| style="width: 69px; text-align: center" | Hang
| style="width: 122px; text-align: center" | Optical Sensor Through-Beam
| style="width: 139px; text-align: center" | OPB815WZ
| style="width: 193px; text-align: center" | Sense when hanger is all the way retracted
| style="width: 223px; text-align: center" | 1 = hanger sensed (all the way down), 0 = hanger not sensed
| style="width: 231px; text-align: center" | &nbsp;
|}
&nbsp; <div class="mw-parser-output">&nbsp;</div> </div> <div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div></div>
 
=== <u>Rev Robotics More Board IO</u> ===
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 1022px"
|-
| style="width: 16px; text-align: center" | '''ID'''
| style="width: 56px; text-align: center" | '''Direction (IN/OUT)'''
| style="width: 74px; text-align: center" | '''Subsystem'''
| style="width: 74px; text-align: center" | '''Component Type'''
| style="width: 56px; text-align: center" | '''Model #'''
| style="width: 197px; text-align: center" | '''Description (brief)'''
| style="width: 254px; text-align: center" | '''Operation'''
| style="width: 141px; text-align: center" | '''Notes'''
|-
| style="width: 16px" | 0
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 1
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 2
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 3
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 4
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 5
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 6
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 7
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 8
| style="width: 56px; text-align: center" | IN
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 9
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 10
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 11
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 12
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 13
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 14
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px; text-align: center" | &nbsp;
|-
| style="width: 16px; text-align: center" | 15
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 74px; text-align: center" | &nbsp;
| style="width: 56px; text-align: center" | &nbsp;
| style="width: 197px; text-align: center" | &nbsp;
| style="width: 254px; text-align: center" | &nbsp;
| style="width: 141px" | &nbsp;
|}
</div> <div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div></div>
 
== I2C Registers ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 1007px"
|-
| style="text-align: center" | '''Address'''<br/> (e.g. 0100111X)
| style="width: 37px; text-align: center" | '''Pin'''<br/> (e.g. GP0)
| style="width: 76px; text-align: center" | '''Subsystem'''
| style="width: 75px" | <p style="text-align: center">'''Component'''</p> <p style="text-align: center">'''Type'''</p>
| style="width: 53px; text-align: center" | '''Model #'''
| style="width: 205px; text-align: center" | '''Description<br/> (brief)'''
| style="width: 241px; text-align: center" | '''Operation'''
| style="width: 112px; text-align: center" | '''Notes'''
|-
| style="text-align: center" | 0x52
| style="width: 37px; text-align: center" | &nbsp;
| style="width: 76px; text-align: center" | Wheel of Fortune
| style="width: 75px; text-align: center" | Color Sensor
| style="width: 53px; text-align: center" | REV-31-1557
| style="width: 205px; text-align: center" | Reads colors of wheel
| style="width: 241px; text-align: center" | Provides these channels:&nbsp;Red, Green, Blue, Alpha, and Proximity
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 37px" | &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|}
</div> </div>
== SPI Devices ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 1007px"
|-
| style="text-align: center" | '''#'''
| style="width: 76px; text-align: center" | '''Subsystem'''
| style="width: 75px" | <p style="text-align: center">'''Component&nbsp;Type'''</p>
| style="width: 53px; text-align: center" | '''Model #'''
| style="width: 205px; text-align: center" | '''Description&nbsp;(brief)'''
| style="width: 241px; text-align: center" | '''Operation'''
| style="width: 112px; text-align: center" | '''Notes'''
|-
| &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| &nbsp;
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
|}
 
== USB Host Ports ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 1007px"
|-
| style="text-align: center" | '''Address'''
| style="width: 76px; text-align: center" | '''Subsystem'''
| style="width: 75px" | <p style="text-align: center">'''Component&nbsp;Type'''</p>
| style="width: 53px; text-align: center" | '''Model #'''
| style="width: 205px; text-align: center" | '''Description&nbsp;(brief)'''
| style="width: 241px; text-align: center" | '''Operation'''
| style="width: 112px; text-align: center" | '''Notes'''
|-
| 0
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|-
| 1
| style="width: 76px" | &nbsp;
| style="width: 75px" | &nbsp;
| style="width: 53px" | &nbsp;
| style="width: 205px" | &nbsp;
| style="width: 241px" | &nbsp;
| style="width: 112px" | &nbsp;
|}
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
== Pneumatics Control Modules ==
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 931px"
|-
| style="width: 8px" |
'''PCM'''
 
'''ID'''
 
| style="width: 1px" | '''#'''
| style="text-align: center" | '''Subsystem'''
| style="width: 75px" | <p style="text-align: center">'''Solenoid is Double or Single?'''</p>
| style="width: 64px" | <p style="text-align: center">'''Solenoid'''</p> <p style="text-align: center">'''Model #'''</p>
| style="width: 183px" | <p style="text-align: center">'''Description'''</p> <p style="text-align: center">'''(brief)'''</p>
| style="width: 290px; text-align: center" | '''Operation'''
| style="width: 118px; text-align: center" | '''Circuit Pressure'''
| style="width: 118px; text-align: center" | '''PDB #'''
|-
| rowspan="8" style="width: 8px" | 1
| style="width: 1px" | 0
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
| rowspan="8" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 1
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| style="width: 1px" | 2
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 3
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| style="width: 1px" | 4
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 5
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| style="width: 1px" | 6
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 7
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| colspan="1" rowspan="6" style="width: 8px" | 2
| style="width: 1px" | 0
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
| colspan="1" rowspan="6" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 1
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| style="width: 1px" | 2
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 3
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|-
| style="width: 1px" | 4
| colspan="1" rowspan="2" | &nbsp;
| colspan="1" rowspan="2" style="width: 75px" | &nbsp;
| colspan="1" rowspan="2" style="width: 64px" | &nbsp;
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
| colspan="1" rowspan="2" style="width: 118px" | &nbsp;
|-
| style="width: 1px" | 5
| style="width: 183px" | &nbsp;
| style="width: 290px" | &nbsp;
|}
<div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> <div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
<div class="mw-parser-output"><div class="mw-parser-output">
= Robot Lights Reference =
 
* When '''Disabled''':
** Front Lights - Shows status of DIGITAL sensors, one sensor per row.  Each row is GREEN for sensor not tripped, RED for when it is tripped.
*** Row 4 (top row): Shooter game piece exit sensor
*** Row 3: Helix-shooter game piece transition sensor
*** Row 2: Intake game piece count sensor
*** Row 1: Intake pivot zeroing sensor
*** Row 0: Hanger zeroing sensor
* When '''Enabled''':
** Red X: Ball count indeterminate
** Otherwise, one row is lit from bottom to top for each game piece in robot
 
= Operator Controls =
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
=== Disable Xbox Controller ===
 
[[Media:DisableXbox.docx|DisableXbox.docx]]
 
<div class="mw-parser-output">
<div class="mw-parser-output">
=== Controller 1 - Primary Driver ===
 
{| style="width: 908px" cellspacing="1" cellpadding="2" border="1"
|-
| style="width: 92px" | '''&nbsp;Button/Axis #'''
| style="width: 414px" | '''Action/Button'''
| '''Description'''
| '''Details'''
|-
| style="width: 92px;  text-align: center" | A-1
| style="width: 414px" | Left Joystick Y
|
Tank mode: left side drive motors forward/reverse
 
Arcaded mode: robot moves foward/reverse
 
| &nbsp;
|-
| style="width: 92px;  text-align: center" | A-1
| style="width: 414px" | Left Joystick X
| &nbsp;
| &nbsp;
|-
| style="width: 92px;  text-align: center" | A-4
| style="width: 414px" | Right Joystick Y
| Tank mode: right side drive motors foward/reverse
| &nbsp;
|-
| style="width: 92px;  text-align: center" | A-4
| style="width: 414px" | Right Joystick X
| Arcade mode: robot moves left/right
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-6
| style="width: 414px" | Right Bumper
| Right side drive motors: Slow
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-5
| style="width: 414px" | Left Bumper
| Left side drive motors: Slow
| &nbsp;
|-
| style="width: 92px;  text-align: center" | A-3
| style="width: 414px" | Right Trigger
| Right side drive motors: Turbo
| &nbsp;
|-
| style="width: 92px;  text-align: center" | A-2
| style="width: 414px" | Left Trigger
| Left side drive motors: Turbo
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-1
| style="width: 414px" | A Button
| Toggles between tank and arcade mode
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-3
| style="width: 414px" | X Button
| &nbsp;
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-4
| style="width: 414px" | Y Button
| Calibrates Gyro
| &nbsp;
|-
| style="width: 92px;  text-align: center" | B-2
| style="width: 414px" | B Button
| &nbsp;
| &nbsp;
|}
</div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div></div>
 
<div class="mw-parser-output">
<div class="mw-parser-output">
=== Controller 2 - Aux Driver ===
 
{| style="width: 908px" cellspacing="1" cellpadding="2" border="1"
|-
| style="text-align: center;  width: 91px" | '''Button/Axis #'''
| style="width: 286px" | '''Action/Button'''
| style="width: 361px" | '''Description'''
| style="width: 141px" | '''Details'''
|-
| style="text-align: center;  width: 91px" | A-0
| style="width: 286px" | Left Joystick X-Axis
| style="width: 361px" | &nbsp;
| style="width: 141px" | &nbsp;
|-
| style="text-align: center;  width: 91px" | A-1
| style="width: 286px" | Left Joystick Y-Axis
| style="width: 361px" | Shooter manual speed
| style="width: 141px" | Not position-sensative -- accumulates change to speed slowly in whichever direction is held (up slowly increases speed setting, down slowly decreases it)
|-
| style="width: 91px;  text-align: center" | A-2
| style="width: 286px" | Left Trigger
| style="width: 361px" | Lower and run intake
| style="width: 141px" | Press and hold, release to stop.
|-
| style="width: 91px;  text-align: center" | A-3
| style="width: 286px" | Right Trigger
| style="width: 361px" | Shoot
| style="width: 141px" | Press and hold, release to stop.&nbsp; Shoots when shooter has reached desired speed as long as balls remain in robot.
|-
| style="width: 91px;  text-align: center" | A-4
| style="width: 286px" | Right Joystick X-Axis
| style="width: 361px" | &nbsp;
| style="width: 141px" |
&nbsp;
 
&nbsp;
 
|-
| style="width: 91px;  text-align: center" | A-5
| style="width: 286px" | Right Joystick Y-Axis
| style="width: 361px" | &nbsp;
| style="width: 141px" | &nbsp;
|-
| style="width: 91px;  text-align: center" | B-1
| style="width: 286px" | A Button
| style="width: 361px" | Retract the hanger
| style="width: 141px" | Press and hold, release to stop
|-
| style="width: 91px;  text-align: center" | B-2
| style="width: 286px" | B button
| style="width: 361px" | Auto-shoot setting: Wall
| style="width: 141px" | Single press
|-
| style="width: 91px;  text-align: center" | B-3
| style="width: 286px" | X Button
| style="width: 361px" | Auto-shoot setting: Initiation Line
| style="width: 141px" | Single press
|-
| style="width: 91px;  text-align: center" | B-4
| style="width: 286px" | Y button
| style="width: 361px" | Extend the hanger
| style="width: 141px" | Press and hold, release to stop
|-
| style="width: 91px;  text-align: center" | B-5
| style="width: 286px" | Left bumper
| style="width: 361px" | Outtake game pieces
| style="width: 141px" | Press and hold, release to stop
|-
| style="width: 91px;  text-align: center" | B-6
| style="width: 286px" | Right bumper
| style="width: 361px" | Pre-heat shooter
| style="width: 141px" | Press and hold, release to stop
|-
| style="width: 91px;  text-align: center" | B-7
| style="width: 286px" | Back Button
| style="width: 361px" | &nbsp;
| style="width: 141px" | &nbsp;
|-
| style="width: 91px;  text-align: center" | B-8
| style="width: 286px" | Start Button
| style="width: 361px" | Auto-shoot setting: Panel
| style="width: 141px" | Single press
|-
| style="width: 91px;  text-align: center" | B-9
| style="width: 286px" | Left Stick Pressed
| style="width: 361px" | &nbsp;
| style="width: 141px" | &nbsp;
|-
| style="width: 91px;  text-align: center" | B-10
| style="width: 286px" | Right Stick Pressed
| style="width: 361px" | &nbsp;
| style="width: 141px" | &nbsp;
|-
| style="width: 91px;  text-align: center" | POV-0
| style="width: 286px" | D-pad up
| style="width: 361px" | Run Control Panel
| style="width: 141px" | Press and hold, release to cancel. Rotatation control, position control, or manual advance based on console switches
|}
 
<div class="mw-parser-output">
=== Controller 3&nbsp;- Switches on console ===
 
{| style="width: 907px" cellspacing="1" cellpadding="1" border="1"
|-
| style="width: 92px" | '''&nbsp;Button/Axis #'''
| style="width: 112px" | '''&nbsp;Action/Button'''
| style="width: 521px" | &nbsp;'''Description'''
| style="width: 158px" | '''Details'''
|-
| style="width: 92px;  text-align: center" | B-1
| style="width: 112px" | Control Panel Sensor Broken
| style="width: 521px" |
On = broken, run CP manually
 
Off = Working, do whatever is in button 1
 
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-2
| style="width: 112px" | Intake Pivot Sensor Broken
| style="width: 521px" |
On = broken, zero pivot based solely on startup position
 
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-3
| style="width: 112px" | Intake ball counter Broken
| style="width: 521px" | On = broken, don't use this sensor
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-4
| style="width: 112px" | Storage-shooter transition counter broken
| style="width: 521px" | On = broken, don't use this sensor
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-5
| style="width: 112px" | Shooter ball counter broken
| style="width: 521px" | On = broken, don't use this sensor
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-6
| style="width: 112px" | Control Panel Mode
| style="width: 521px" |
Determines which control panel operation to run
 
On = rotation
 
Off = position
 
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-7
| style="width: 112px" | Shoot Manual Speed
| style="width: 521px" | On = Manual speed control, off = use presets
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-8
| style="width: 112px" | Disable drive "backdrive"
| style="width: 521px" | On = Disable backdrive code, off = enable backdrive code
| style="width: 158px" | &nbsp;
|-
| style="width: 92px;  text-align: center" | B-9
| style="width: 112px" | Hanger Speed
| style="width: 521px" | On = Lift speed, Off = slow speed (test if hooked)
| style="width: 158px" | &nbsp;
|}
 
</div>
</div>
 
=== Dashboard ===
 
{| border="1" cellpadding="2" cellspacing="1" style="width: 0px"
|-
| '''Key'''
| '''Data Type'''
| '''Value'''
| style="width: 600px" | '''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&nbsp;
|-
| 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
| &nbsp;
| 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&nbsp;
|}
 
</div> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> </div> </div>
</div>
 
= IO Maps for Old Robots =
 
*[[2020:Robot_IO_Map|2019&nbsp;IO Map]] (applies to 2021 as well!)
*[[2019:Robot_IO_Map|2019&nbsp;IO Map]]  
*[[2018:Robot_IO_Map|2018&nbsp;IO Map]]  
*[[2017:Robot_IO_Map|2017&nbsp;IO Map]]  
*[[2016:Robot_IO_Map|2016&nbsp;IO Map]]  
*[[2015:Robot_IO_Map|2015&nbsp;IO Map]]  
*[[2014:Robot_IO_Map|2014 IO Map]]  
*[[2013:Robot_IO_Map|2013 IO Map]]  
*[[2012:Robot_IO_Map|2012 IO Map]]  
*[[2011:Robot_IO_Map|2011 Thunderous Prime IO Map]]  
*[[2010:Electrical_Main#IO_Map_2010_Thunderfoot|2010 Thunderfoot IO Map]]  
*[[2009:IO_Map|2009 Thunderplucker]]
*[[IO_Pin_Maps_for_Pre-2009_Robots|IO Pin Maps for Pre-2009 Robots]]  
 
</div> </div> </div> </div> </div> </div>
</div>

Revision as of 15:00, 7 January 2022

Robot I/O

CAN ID Assignments

ID Subsystem

Component

Type

Model # Brake or Coast? 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  
3  
4
5  
6  
7 2
8
9
10  
11
12                
13                
14                
15                
 
 
 
 
 
 

PWM Outputs

ID Subsystem

Component

Type

Model # Description
(brief)

Operation

 

Brake/Coast

Notes

(8) max. 40A              PDB #   

0 Hang Servo

 

Hs-322HD

Engages/disingages ratchet

 

N/A    
1 Shooter Servo

Hs-785HB

Moves turret hood to increase/decrease shot angle   N/A    
2                
3                
4 Driver LEDs LED LED Gives connection to Driver Interface LEDs Allows drivers to see power cell count from the front/back of robot N/A 20A (via voltage regulator) 10
5 Wheel of Fortune Servo   Swing color sensor outside the frame perimeter        

6

 

Drive base

 

Spark Max Neo Left front drive motor Moves left side of robot forwards/backwards Don't know 40A 14

7

 

Drive Base Spark Max Neo  Left rear drive motor   Don't know 40A 15
8 Drive Base Spark Max Neo Right front drive motor Moves right side of robot forwards/backwards Don't know 40A 0

9

 

Drive Base Spark Max Neo Right Rear drive Motor   Don't know 40A 1
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 Drive Base Gyro ADW22307 Located on center axis underneath the helix Tells where the drive base is looking by degrees (for autonomous) 7mV/degree  
1 Shooter Potentiometer Bournes 3547S-1AA-103A Located on the output of the hood servo Tells the angle of the hood    
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 Intake Banner Opto Q10RN6R Senses Incoming Power Cells

1 = Ball not present 

0 = Ball Present

w/Q106E emitter,

sensor open-collector out

1 IN        

 

 

2 IN Storage Allen-Bradley RightSight Prox Sensor 42EF-D2MPAK-F4 Senses balls when ready to shoot

1 = Ball present

0 = Ball not present

 
3 IN Shooter Banner Opto Q10RN6R Senses when a ball is exiting the shooter

1 = Ball not present 

0 = Ball Present

w/Q106E emitter,

sensor open-collector out

4 IN Drive base  Phase A Left Encoder REV-11-1271 measures rotation of drive wheels 2048 cycles per revolution  
5 IN Drive base Phase B Left Encoder REV-11-1271 measures rotation of drive wheels 2048 cycles per revolution  
6 IN Drive base Phase A Right Encoder REV-11-1271 measures rotation of drive wheels 2048 cycles per revolution  
7 IN Drive base Phase B right encoder REV-11-1271 measures rotation of drive wheels 2048 cycles per revolution  
8 IN Intake Omron Reflective EE-SPY415 Senses the presence of the intake mechanism to zero the rotation motor encoder

1 = not present

0 = present
(Need to double check this)

 
9 IN Hang Optical Sensor Through-Beam OPB815WZ Sense when hanger is all the way retracted 1 = hanger sensed (all the way down), 0 = hanger not sensed  
 
 
 

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   Wheel of Fortune Color Sensor REV-31-1557 Reads colors of wheel Provides these channels: Red, Green, Blue, Alpha, and Proximity  
               
               
               
               
               
               

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

Robot Lights Reference

  • When Disabled:
    • Front Lights - Shows status of DIGITAL sensors, one sensor per row. Each row is GREEN for sensor not tripped, RED for when it is tripped.
      • Row 4 (top row): Shooter game piece exit sensor
      • Row 3: Helix-shooter game piece transition sensor
      • Row 2: Intake game piece count sensor
      • Row 1: Intake pivot zeroing sensor
      • Row 0: Hanger zeroing sensor
  • When Enabled:
    • Red X: Ball count indeterminate
    • Otherwise, one row is lit from bottom to top for each game piece in robot

Operator Controls

Disable Xbox Controller

DisableXbox.docx

Controller 1 - Primary Driver

 Button/Axis # Action/Button Description Details
A-1 Left Joystick Y

Tank mode: left side drive motors forward/reverse

Arcaded mode: robot moves foward/reverse

 
A-1 Left Joystick X    
A-4 Right Joystick Y Tank mode: right side drive motors foward/reverse  
A-4 Right Joystick X Arcade mode: robot moves left/right  
B-6 Right Bumper Right side drive motors: Slow  
B-5 Left Bumper Left side drive motors: Slow  
A-3 Right Trigger Right side drive motors: Turbo  
A-2 Left Trigger Left side drive motors: Turbo  
B-1 A Button Toggles between tank and arcade mode  
B-3 X Button    
B-4 Y Button Calibrates Gyro  
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 Shooter manual speed Not position-sensative -- accumulates change to speed slowly in whichever direction is held (up slowly increases speed setting, down slowly decreases it)
A-2 Left Trigger Lower and run intake Press and hold, release to stop.
A-3 Right Trigger Shoot Press and hold, release to stop.  Shoots when shooter has reached desired speed as long as balls remain in robot.
A-4 Right Joystick X-Axis  

 

 

A-5 Right Joystick Y-Axis    
B-1 A Button Retract the hanger Press and hold, release to stop
B-2 B button Auto-shoot setting: Wall Single press
B-3 X Button Auto-shoot setting: Initiation Line Single press
B-4 Y button Extend the hanger Press and hold, release to stop
B-5 Left bumper Outtake game pieces Press and hold, release to stop
B-6 Right bumper Pre-heat shooter Press and hold, release to stop
B-7 Back Button    
B-8 Start Button Auto-shoot setting: Panel Single press
B-9 Left Stick Pressed    
B-10 Right Stick Pressed    
POV-0 D-pad up Run Control Panel Press and hold, release to cancel. Rotatation control, position control, or manual advance based on console switches

Controller 3 - Switches on console

 Button/Axis #  Action/Button  Description Details
B-1 Control Panel Sensor Broken

On = broken, run CP manually

Off = Working, do whatever is in button 1

 
B-2 Intake Pivot Sensor Broken

On = broken, zero pivot based solely on startup position

 
B-3 Intake ball counter Broken On = broken, don't use this sensor  
B-4 Storage-shooter transition counter broken On = broken, don't use this sensor  
B-5 Shooter ball counter broken On = broken, don't use this sensor  
B-6 Control Panel Mode

Determines which control panel operation to run

On = rotation

Off = position

 
B-7 Shoot Manual Speed On = Manual speed control, off = use presets  
B-8 Disable drive "backdrive" On = Disable backdrive code, off = enable backdrive code  
B-9 Hanger Speed On = Lift speed, Off = slow speed (test if hooked)  

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 

IO Maps for Old Robots