Wiki source code of AL5 Programming Tutorial - PS2 & BotBoard II
Last modified by Eric Nantel on 2026/04/06 10:24
Show last authors
| 1 | {{html wiki="false" clean="false"}} |
| 2 | <style> |
| 3 | .asm { font-family: Verdana, Helvetica, sans-serif; font-size: 14px; max-width: 960px; } |
| 4 | .asm-step { background: #fff; border: 1px solid #ddd; border-radius: 8px; margin-bottom: 1.5rem; overflow: hidden; } |
| 5 | .asm-step-header { background: #F5A800; display: flex; align-items: stretch; justify-content: space-between; } |
| 6 | .asm-step-name { padding: 0.6rem 1rem; font-weight: bold; font-size: 15px; color: #2C1A00; } |
| 7 | .asm-step-num { background: #1a1a1a; color: white; padding: 0.6rem 1.1rem; font-weight: bold; font-size: 15px; display: flex; align-items: center; white-space: nowrap; } |
| 8 | .asm-step-body { display: flex; flex-wrap: wrap; gap: 1.25rem; padding: 1rem; align-items: flex-start; } |
| 9 | .asm-step-text { flex: 1 1 250px; font-size: 13px; line-height: 1.6; } |
| 10 | .asm-step-figure { flex: 0 1 280px; text-align: center; } |
| 11 | .asm-step-figure img { max-width: 100%; height: auto; border: 1px solid #ccc; border-radius: 4px; } |
| 12 | .asm-step-figure span { display: block; font-size: 12px; color: #666; margin-top: 0.3rem; } |
| 13 | .asm-fullwidth { padding: 1rem; border-top: 1px solid #eee; font-size: 13px; overflow-x: auto; } |
| 14 | .asm-info { background: #f9f9f9; border: 1px solid #ddd; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; font-size: 13px; line-height: 1.6; } |
| 15 | .asm-info h2 { font-size: 15px; margin: 0 0 0.5rem 0; color: #2C1A00; } |
| 16 | .section-header { background: #1a1a1a; color: white; font-weight: bold; font-size: 14px; padding: 0.5rem 1rem; border-radius: 6px; margin: 1.5rem 0 1rem 0; } |
| 17 | .ref-table { border-collapse: collapse; width: 100%; font-size: 12px; } |
| 18 | .ref-table th { background: #ccc; border: 1px solid #aaa; padding: 0.3rem 0.6rem; text-align: center; } |
| 19 | .ref-table td { border: 1px solid #ddd; padding: 0.3rem 0.6rem; text-align: center; } |
| 20 | .ref-table tr:nth-child(odd) td { background: #f9f9f9; } |
| 21 | .ref-table tr:nth-child(even) td { background: #fff; } |
| 22 | .code-block { background: #f4f4f4; border: 1px solid #ddd; border-radius: 4px; padding: 0.6rem 0.8rem; font-family: 'Courier New', monospace; font-size: 12px; line-height: 1.6; white-space: pre; overflow-x: auto; } |
| 23 | .warning { color: #c00; font-weight: bold; } |
| 24 | h1 { font-size: 18px; margin-bottom: 0.25rem; } |
| 25 | </style> |
| 26 | |
| 27 | <div class="asm"> |
| 28 | |
| 29 | <!-- Header --> |
| 30 | <div style="padding: 0.5rem 0 1rem 0;"> |
| 31 | <h1>AL5 Programming Tutorial — PS2 RC Rev. 1</h1> |
| 32 | <p><b>Updated January 11, 2012</b></p> |
| 33 | <p><span class="warning">Safety first!</span> Wear eye protection and never touch a powered robot!</p> |
| 34 | <p>The purpose of this guide is to set up the robot arm to be controlled via a PlayStation 2 game controller. This can be done using a Bot Board II with Basic Atom Pro 28 with or without an SSC-32 — both methods are demonstrated below.</p> |
| 35 | <p>Note: PS2 control programs have been verified to work with Lynxmotion wireless controllers. Non-Lynxmotion controllers cannot be guaranteed.</p> |
| 36 | </div> |
| 37 | |
| 38 | <!-- Requirements --> |
| 39 | <div class="asm-info"> |
| 40 | <h2>What You'll Need</h2> |
| 41 | <p>Any AL5 arm · Bot Board II with Basic Atom Pro 28 · SSC-32 (optional) · PS2 Controller and cable · 6" Servo Extender Cable</p> |
| 42 | </div> |
| 43 | |
| 44 | <!-- ── SECTION A ── --> |
| 45 | <div class="section-header">Method A — SSC-32 + Bot Board II / Basic Atom Pro 28</div> |
| 46 | |
| 47 | <!-- A Step 1 --> |
| 48 | <div class="asm-step"> |
| 49 | <div class="asm-step-header"> |
| 50 | <div class="asm-step-name">AL5 PS2 RC — Modify Servo Cable</div> |
| 51 | <div class="asm-step-num">Step 1 / 5</div> |
| 52 | </div> |
| 53 | <div class="asm-step-body"> |
| 54 | <div class="asm-step-text"> |
| 55 | <p>To connect the Bot Board II to the SSC-32, modify a 6" servo extender cable: remove the header pins so you have two female ends. Use an exacto knife to gently pry the tab up and pull the red wire free on one end. Cover the exposed connector with heat shrink to avoid accidental shorts.</p> |
| 56 | <p>Remove the TX and RX jumpers from the lower-right corner of the SSC-32, and plug the unmodified end of the cable in: yellow on TX, red on RX, black on ground.</p> |
| 57 | </div> |
| 58 | <div class="asm-step-figure"> |
| 59 | <img src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/al5-programming-tutorial-ps2-botboard/WebHome/scmod01.jpg"> |
| 60 | <span>Figure 1.</span> |
| 61 | </div> |
| 62 | </div> |
| 63 | </div> |
| 64 | |
| 65 | <!-- A Step 2 --> |
| 66 | <div class="asm-step"> |
| 67 | <div class="asm-step-header"> |
| 68 | <div class="asm-step-name">AL5 PS2 RC — Install Boards</div> |
| 69 | <div class="asm-step-num">Step 2 / 5</div> |
| 70 | </div> |
| 71 | <div class="asm-step-body"> |
| 72 | <div class="asm-step-text"> |
| 73 | <p>Wire the Bot Board II and SSC-32 as shown in the schematic and tables in Step 3. Verify all jumpers are correct. Install the boards as shown in Figure 2 after all connections are complete and checked.</p> |
| 74 | </div> |
| 75 | <div class="asm-step-figure"> |
| 76 | <img src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/al5-programming-tutorial-ps2-botboard/WebHome/al5ps22.jpg"> |
| 77 | <span>Figure 2.</span> |
| 78 | </div> |
| 79 | </div> |
| 80 | </div> |
| 81 | |
| 82 | <!-- A Step 3 — tables + schematic --> |
| 83 | <div class="asm-step"> |
| 84 | <div class="asm-step-header"> |
| 85 | <div class="asm-step-name">AL5 PS2 RC — Configure Jumpers & Connections</div> |
| 86 | <div class="asm-step-num">Step 3 / 5</div> |
| 87 | </div> |
| 88 | <div class="asm-step-body"> |
| 89 | <div class="asm-step-text"> |
| 90 | <p>Configure the Bot Board II as shown in Table 3-1. Configure the SSC-32 as shown in Table 3-2.</p> |
| 91 | </div> |
| 92 | </div> |
| 93 | <div class="asm-fullwidth"> |
| 94 | <div style="display:flex; flex-wrap:wrap; gap:1.5rem; margin-bottom:1rem;"> |
| 95 | <!-- Bot Board II --> |
| 96 | <div style="flex:1 1 280px;"> |
| 97 | <p style="font-weight:bold; margin-bottom:0.4rem;">Bot Board II Jumpers (Table 3-1)</p> |
| 98 | <table class="ref-table" style="margin-bottom:0.75rem;"> |
| 99 | <tr><th>Action</th><th>Setting</th></tr> |
| 100 | <tr><td>Connect</td><td>6.0VDC battery to VS</td></tr> |
| 101 | <tr><td>Enable</td><td>Speaker</td></tr> |
| 102 | <tr><td>Connect</td><td>I/O 4-7 Power Bus to 5VDC</td></tr> |
| 103 | <tr><td>Connect</td><td>VL to SSC-32's VL</td></tr> |
| 104 | </table> |
| 105 | <p style="font-weight:bold; margin-bottom:0.4rem;">Bot Board II Connections</p> |
| 106 | <table class="ref-table"> |
| 107 | <tr><th>Pin</th><th>Function</th><th>Pin</th><th>Function</th></tr> |
| 108 | <tr><td>P0</td><td>N/A</td><td>P8</td><td>N/A</td></tr> |
| 109 | <tr><td>P1</td><td>N/A</td><td>P9</td><td>Speaker</td></tr> |
| 110 | <tr><td>P2</td><td>N/A</td><td>P10</td><td>SSC-32 RX</td></tr> |
| 111 | <tr><td>P3</td><td>N/A</td><td>P11</td><td>SSC-32 TX</td></tr> |
| 112 | <tr><td>P4</td><td>N/A</td><td>P12</td><td>PS2 Data</td></tr> |
| 113 | <tr><td>P5</td><td>N/A</td><td>P13</td><td>PS2 Command</td></tr> |
| 114 | <tr><td>P6</td><td>N/A</td><td>P14</td><td>PS2 Select</td></tr> |
| 115 | <tr><td>P7</td><td>N/A</td><td>P15</td><td>PS2 Clock</td></tr> |
| 116 | </table> |
| 117 | </div> |
| 118 | <!-- SSC-32 --> |
| 119 | <div style="flex:1 1 280px;"> |
| 120 | <p style="font-weight:bold; margin-bottom:0.4rem;">SSC-32 Jumpers (Table 3-2)</p> |
| 121 | <table class="ref-table" style="margin-bottom:0.75rem;"> |
| 122 | <tr><th>Action</th><th>Setting</th></tr> |
| 123 | <tr><td>Connect</td><td>6.0VDC battery to VS</td></tr> |
| 124 | <tr><td>Connect</td><td>9.0VDC battery to VL</td></tr> |
| 125 | <tr><td>Disconnect</td><td>VL = VS1</td></tr> |
| 126 | <tr><td>Enable</td><td>115.2k baud</td></tr> |
| 127 | <tr><td>Connect</td><td>VL to Bot Board's VL</td></tr> |
| 128 | </table> |
| 129 | <p style="font-weight:bold; margin-bottom:0.4rem;">SSC-32 Servo Connections</p> |
| 130 | <table class="ref-table"> |
| 131 | <tr><th>Pin</th><th>Function</th><th>Pin</th><th>Function</th></tr> |
| 132 | <tr><td>P0</td><td>Base Rotate</td><td>P3</td><td>Wrist</td></tr> |
| 133 | <tr><td>P1</td><td>Shoulder</td><td>P4</td><td>Gripper</td></tr> |
| 134 | <tr><td>P2</td><td>Elbow</td><td>P5</td><td>Wrist Rotate</td></tr> |
| 135 | </table> |
| 136 | </div> |
| 137 | </div> |
| 138 | <p><b>Schematic.</b> Double check your connections against the schematic below. Note: if your cable colors don't match the diagram, find a complete listing <a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/bot-board-ii/" target="_blank">here</a>.</p> |
| 139 | <div style="text-align:center;"> |
| 140 | <img src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/al5-programming-tutorial-ps2-botboard/WebHome/rcarm02.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px;"> |
| 141 | <p style="font-size:12px; color:#666; margin-top:0.3rem;">Schematic.</p> |
| 142 | </div> |
| 143 | </div> |
| 144 | </div> |
| 145 | |
| 146 | <!-- A Step 4 --> |
| 147 | <div class="asm-step"> |
| 148 | <div class="asm-step-header"> |
| 149 | <div class="asm-step-name">AL5 PS2 RC — Download & Program</div> |
| 150 | <div class="asm-step-num">Step 4 / 5</div> |
| 151 | </div> |
| 152 | <div class="asm-step-body"> |
| 153 | <div class="asm-step-text"> |
| 154 | <p>Download and install Basic Micro Studio. Download the arm code <a href="https://github.com/Lynxmotion/Arms/zipball/master" target="_blank">here</a>. Open the .bas file and locate the arm length constants section. Remove the semicolons from in front of the arm you are using. The code defaults to AL5D — if using another arm, add a semicolon before the AL5D line. Make sure the <code>USE_SSC32</code> line is <b>not</b> commented out (as shown in Table 4).</p> |
| 155 | <p>When finished, save your program and click "Program." Consult the <a href="https://community.robotshop.com/forum/t/serial-usb-to-serial-port-troubleshooting/17938" target="_blank">serial troubleshooting guide</a> if you have difficulties.</p> |
| 156 | </div> |
| 157 | <div class="asm-step-figure" style="flex: 0 1 340px;"> |
| 158 | <p style="font-weight:bold; font-size:12px; margin-bottom:0.4rem;">Table 4 — Arm Selection (SSC-32 mode)</p> |
| 159 | <div class="code-block">;[SETUP] |
| 160 | ;disable(0)/enable(1) the FSR Gripper |
| 161 | EnableFSR con 0 |
| 162 | |
| 163 | USE_SSC32 con 1 ;Comment this line to use only the Bot Board |
| 164 | |
| 165 | ;Select Arm type |
| 166 | ;NOTE: Enable only one arm! |
| 167 | ;AL5A con 1 |
| 168 | ;AL5B con 1 |
| 169 | ;AL5C con 1 |
| 170 | AL5D con 1</div> |
| 171 | </div> |
| 172 | </div> |
| 173 | </div> |
| 174 | |
| 175 | <!-- A Step 5 --> |
| 176 | <div class="asm-step"> |
| 177 | <div class="asm-step-header"> |
| 178 | <div class="asm-step-name">AL5 PS2 RC — Controller Reference</div> |
| 179 | <div class="asm-step-num">Step 5 / 5</div> |
| 180 | </div> |
| 181 | <div class="asm-fullwidth"> |
| 182 | <p style="font-weight:bold; margin-bottom:0.5rem;">PS2 Controls — Table 5</p> |
| 183 | <table class="ref-table"> |
| 184 | <tr><th>Button</th><th>Function</th><th>Button</th><th>Function</th></tr> |
| 185 | <tr><td>L Joy Up</td><td>Gripper Up</td><td>R Joy Up</td><td>Gripper Angle Up</td></tr> |
| 186 | <tr><td>L Joy Down</td><td>Gripper Down</td><td>R Joy Down</td><td>Gripper Angle Down</td></tr> |
| 187 | <tr><td>L Joy Left</td><td>Gripper Back</td><td>R Joy Left</td><td>Base Rotate Left</td></tr> |
| 188 | <tr><td>L Joy Right</td><td>Gripper Away</td><td>R Joy Right</td><td>Base Rotate Right</td></tr> |
| 189 | <tr><td>L1</td><td>Gripper Close</td><td>R1</td><td>Wrist Rotate CW</td></tr> |
| 190 | <tr><td>L2</td><td>Gripper Open</td><td>R2</td><td>Wrist Rotate CCW</td></tr> |
| 191 | <tr><td>L3</td><td>N/A</td><td>R3</td><td>N/A</td></tr> |
| 192 | <tr><td>D-Pad Up</td><td>N/A</td><td>△ Triangle</td><td>Center Wrist Rotate</td></tr> |
| 193 | <tr><td>D-Pad Down</td><td>N/A</td><td>X Cross</td><td>Fully Open Gripper</td></tr> |
| 194 | <tr><td>D-Pad Left</td><td>N/A</td><td>□ Square</td><td>N/A</td></tr> |
| 195 | <tr><td>D-Pad Right</td><td>N/A</td><td>O Circle</td><td>N/A</td></tr> |
| 196 | <tr><td>Start</td><td>Enable / Disable Arm</td><td>Select</td><td>N/A</td></tr> |
| 197 | </table> |
| 198 | </div> |
| 199 | </div> |
| 200 | |
| 201 | <!-- ── SECTION B ── --> |
| 202 | <div class="section-header">Method B — Bot Board II / Basic Atom Pro 28 Only (No SSC-32)</div> |
| 203 | |
| 204 | <!-- B Step 1 --> |
| 205 | <div class="asm-step"> |
| 206 | <div class="asm-step-header"> |
| 207 | <div class="asm-step-name">AL5 PS2 RC — Install Bot Board II</div> |
| 208 | <div class="asm-step-num">Step 1 / 4</div> |
| 209 | </div> |
| 210 | <div class="asm-step-body"> |
| 211 | <div class="asm-step-text"> |
| 212 | <p>Install the Bot Board as shown in Figure 1. Wire the Bot Board II as shown in the schematic and table in Step 2. Verify all jumpers are correct.</p> |
| 213 | </div> |
| 214 | <div class="asm-step-figure"> |
| 215 | <img src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/al5-programming-tutorial-ps2-botboard/WebHome/bbiiarm.jpg"> |
| 216 | <span>Figure 1.</span> |
| 217 | </div> |
| 218 | </div> |
| 219 | </div> |
| 220 | |
| 221 | <!-- B Step 2 — tables + schematic --> |
| 222 | <div class="asm-step"> |
| 223 | <div class="asm-step-header"> |
| 224 | <div class="asm-step-name">AL5 PS2 RC — Configure Jumpers & Connections</div> |
| 225 | <div class="asm-step-num">Step 2 / 4</div> |
| 226 | </div> |
| 227 | <div class="asm-step-body"> |
| 228 | <div class="asm-step-text"> |
| 229 | <p>Configure the Bot Board II as illustrated in Table 2.</p> |
| 230 | </div> |
| 231 | </div> |
| 232 | <div class="asm-fullwidth"> |
| 233 | <div style="display:flex; flex-wrap:wrap; gap:1.5rem; margin-bottom:1rem;"> |
| 234 | <div style="flex:1 1 280px;"> |
| 235 | <p style="font-weight:bold; margin-bottom:0.4rem;">Bot Board II Jumpers</p> |
| 236 | <table class="ref-table" style="margin-bottom:0.75rem;"> |
| 237 | <tr><th>Action</th><th>Setting</th></tr> |
| 238 | <tr><td>Connect</td><td>6.0VDC battery to VS</td></tr> |
| 239 | <tr><td>Connect</td><td>9.0VDC battery to VL</td></tr> |
| 240 | <tr><td>Enable</td><td>Speaker</td></tr> |
| 241 | <tr><td>Connect</td><td>I/O 0-3 Power Bus to VS</td></tr> |
| 242 | <tr><td>Connect</td><td>I/O 4-7 Power Bus to VS</td></tr> |
| 243 | <tr><td>Connect</td><td>I/O 12-15 Power Bus to 5V</td></tr> |
| 244 | </table> |
| 245 | </div> |
| 246 | <div style="flex:1 1 280px;"> |
| 247 | <p style="font-weight:bold; margin-bottom:0.4rem;">Bot Board II Connections (Table 2)</p> |
| 248 | <table class="ref-table"> |
| 249 | <tr><th>Pin</th><th>Function</th><th>Pin</th><th>Function</th></tr> |
| 250 | <tr><td>P0</td><td>Base Rotate</td><td>P8</td><td>N/A</td></tr> |
| 251 | <tr><td>P1</td><td>Shoulder</td><td>P9</td><td>Speaker</td></tr> |
| 252 | <tr><td>P2</td><td>Elbow</td><td>P10</td><td>N/A</td></tr> |
| 253 | <tr><td>P3</td><td>Wrist</td><td>P11</td><td>N/A</td></tr> |
| 254 | <tr><td>P4</td><td>Gripper</td><td>P12</td><td>PS2 Data</td></tr> |
| 255 | <tr><td>P5</td><td>Wrist Rotate</td><td>P13</td><td>PS2 Command</td></tr> |
| 256 | <tr><td>P6</td><td>N/A</td><td>P14</td><td>PS2 Select</td></tr> |
| 257 | <tr><td>P7</td><td>N/A</td><td>P15</td><td>PS2 Clock</td></tr> |
| 258 | </table> |
| 259 | </div> |
| 260 | </div> |
| 261 | <p><b>Schematic.</b> Double check your connections against the schematic below. Note: if your cable colors don't match the diagram, find a complete listing <a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/bot-board-ii/" target="_blank">here</a>.</p> |
| 262 | <div style="text-align:center;"> |
| 263 | <img src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/al5-programming-tutorial-ps2-botboard/WebHome/rcarm03.png" style="max-width:100%; border:1px solid #ccc; border-radius:4px;"> |
| 264 | <p style="font-size:12px; color:#666; margin-top:0.3rem;">Schematic.</p> |
| 265 | </div> |
| 266 | </div> |
| 267 | </div> |
| 268 | |
| 269 | <!-- B Step 3 --> |
| 270 | <div class="asm-step"> |
| 271 | <div class="asm-step-header"> |
| 272 | <div class="asm-step-name">AL5 PS2 RC — Download & Program</div> |
| 273 | <div class="asm-step-num">Step 3 / 4</div> |
| 274 | </div> |
| 275 | <div class="asm-step-body"> |
| 276 | <div class="asm-step-text"> |
| 277 | <p>Download and install Basic Micro Studio. Download the arm code <a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v1-robots/ses-v1-arms/WebHome/ps2arm2.zip" target="_blank">here</a>. Open the .bas file and locate the arm length constants section. Remove the semicolons from in front of the arm you are using. The code defaults to AL5D — if using another arm, add a semicolon before the AL5D line. Make sure the <code>USE_SSC32</code> line is <b>commented out</b> (as shown in Table 3).</p> |
| 278 | <p>When finished, save your program and click "Program." Consult the <a href="https://community.robotshop.com/forum/t/serial-usb-to-serial-port-troubleshooting/17938" target="_blank">serial troubleshooting guide</a> if you have difficulties.</p> |
| 279 | </div> |
| 280 | <div class="asm-step-figure" style="flex: 0 1 340px;"> |
| 281 | <p style="font-weight:bold; font-size:12px; margin-bottom:0.4rem;">Table 3 — Arm Selection (Bot Board only)</p> |
| 282 | <div class="code-block">;[SETUP] |
| 283 | ;disable(0)/enable(1) the FSR Gripper |
| 284 | EnableFSR con 0 |
| 285 | |
| 286 | ;USE_SSC32 con 1 ;Comment this line to use only the Bot Board |
| 287 | |
| 288 | ;Select Arm type |
| 289 | ;NOTE: Enable only one arm! |
| 290 | ;AL5A con 1 |
| 291 | ;AL5B con 1 |
| 292 | ;AL5C con 1 |
| 293 | AL5D con 1</div> |
| 294 | </div> |
| 295 | </div> |
| 296 | </div> |
| 297 | |
| 298 | <!-- B Step 4 --> |
| 299 | <div class="asm-step"> |
| 300 | <div class="asm-step-header"> |
| 301 | <div class="asm-step-name">AL5 PS2 RC — Controller Reference</div> |
| 302 | <div class="asm-step-num">Step 4 / 4</div> |
| 303 | </div> |
| 304 | <div class="asm-fullwidth"> |
| 305 | <p style="font-weight:bold; margin-bottom:0.5rem;">PS2 Controls — Table 4</p> |
| 306 | <table class="ref-table"> |
| 307 | <tr><th>Button</th><th>Function</th><th>Button</th><th>Function</th></tr> |
| 308 | <tr><td>L Joy Up</td><td>Gripper Up</td><td>R Joy Up</td><td>Gripper Angle Up</td></tr> |
| 309 | <tr><td>L Joy Down</td><td>Gripper Down</td><td>R Joy Down</td><td>Gripper Angle Down</td></tr> |
| 310 | <tr><td>L Joy Left</td><td>Gripper Back</td><td>R Joy Left</td><td>Base Rotate Left</td></tr> |
| 311 | <tr><td>L Joy Right</td><td>Gripper Away</td><td>R Joy Right</td><td>Base Rotate Right</td></tr> |
| 312 | <tr><td>L1</td><td>Gripper Close</td><td>R1</td><td>Wrist Rotate CW</td></tr> |
| 313 | <tr><td>L2</td><td>Gripper Open</td><td>R2</td><td>Wrist Rotate CCW</td></tr> |
| 314 | <tr><td>L3</td><td>N/A</td><td>R3</td><td>N/A</td></tr> |
| 315 | <tr><td>D-Pad Up</td><td>N/A</td><td>△ Triangle</td><td>Center Wrist Rotate</td></tr> |
| 316 | <tr><td>D-Pad Down</td><td>N/A</td><td>X Cross</td><td>Fully Open Gripper</td></tr> |
| 317 | <tr><td>D-Pad Left</td><td>N/A</td><td>□ Square</td><td>N/A</td></tr> |
| 318 | <tr><td>D-Pad Right</td><td>N/A</td><td>O Circle</td><td>N/A</td></tr> |
| 319 | <tr><td>Start</td><td>Enable / Disable Arm</td><td>Select</td><td>N/A</td></tr> |
| 320 | </table> |
| 321 | </div> |
| 322 | </div> |
| 323 | |
| 324 | </div> |
| 325 | {{/html}} |

