Wiki source code of BotBoarduino Manual
Last modified by Eric Nantel on 2023/01/19 11:43
Show last authors
| 1 | {{html wiki="false" clean="true"}} |
| 2 | <table border="0"> |
| 3 | <tbody><tr> |
| 4 | <td align="center"><span class="headmd">Table of Contents</span></td> |
| 5 | <td align="center"><span class="headmd">Links</span></td> |
| 6 | </tr> |
| 7 | <tr> |
| 8 | |
| 9 | <td > |
| 10 | <ul class="toc"> |
| 11 | <li><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#bb2lay">BotBoarduino</a> |
| 12 | <ul class="toc"> |
| 13 | <li class="toc"><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#bbufeat">BotBoarduino Hardware Information</a></li> |
| 14 | <li class="toc"><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#aglance">Shorting Bar Jumpers and Connections</a></li> |
| 15 | <li class="toc"><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#connections">PS2 / SSC-32 Connections</a></li> |
| 16 | </ul> |
| 17 | </li> |
| 18 | <li><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#testcont">Troubleshooting</a> |
| 19 | <ul class="toc"> |
| 20 | <li class="toc"><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#trouble">General Troubleshooting</a></li> |
| 21 | </ul> |
| 22 | |
| 23 | </li> |
| 24 | </ul> |
| 25 | </td> |
| 26 | <td valign="top"> |
| 27 | <ul class="toc"> |
| 28 | <li><a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/bbu01.pdf" target="_blank">BotBoarduino Schematic (pdf)</a></li> |
| 29 | </ul> |
| 30 | </td> |
| 31 | |
| 32 | </tr> |
| 33 | </tbody></table> |
| 34 | <hr width="95%" color="#808080"> |
| 35 | <p align="center"><span class="headmd"><a name="bb2lay">BotBoarduino.</a></span></p> |
| 36 | <p><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/bbduinom02.jpg" width="650" height="478"></p> |
| 37 | <p><span class="headsm"><a name="bbufeat">BotBoarduino Hardware Information.</a></span></p> |
| 38 | <p>The image above illustrates the shorting bar jumpers (the black rectangles) as they are on the board as it is shipped. The jumpers are used to |
| 39 | set operating parameters for the board. It should not be assumed that they are correct for your project as changes are likely to be required. Please |
| 40 | consult the tutorial for your project for the proper shorting bar jumper positions.</p> |
| 41 | |
| 42 | <p>The BotBoarduino is 3.00" x 2.30" with 0.125" holes set in |
| 43 | 0.15" from each edge.</p> |
| 44 | <ol> |
| 45 | <li>The BotBoarduino is based on the Arduino Duemilanove. In the Arduino programming environment you must select "Arduino Duemilanove w/ ATmega328". Simply plug a USB Mini cable from this plug to a free USB port on your PC for programming the processor and receiving |
| 46 | debug information. For help with USB drivers, go to the <a href="http://arduino.cc/en/Guide/Windows" target="_blank">official Arduino page</a>. <font color="#FF0000">To prevent damaging the board's USB port, you must remove the USB cable from a MOBILE robot!</font></li> |
| 47 | <li>These four pins are connected to the FTDI's CTS, DSR, DCD, and RI signals. You should never have to worry about these pins. Use them only |
| 48 | if you know what you're doing as these pins can prevent the BotBoarduino from being programmed.</li> |
| 49 | |
| 50 | <li>This is a Power Good LED. When you have successfully applied power to the onboard regulator, the yellow LED will turn on.</li> |
| 51 | <li>This shorting bar enables the onboard speaker. To use the speaker, send the appropriate sound generating command to Pin 5. Note, the I/O pin |
| 52 | drives a transistor amplifier. It does not drive the speaker directly.</li> |
| 53 | <li>The 3 LEDs and Pushbuttons use only 3 I/O lines to make a simple user interface for your program. By making the I/O line a low output the LED |
| 54 | can be turned on. By briefly making the I/O line an input the I/O line can be read to see if a button is being pressed. <font color="#FF0000">However, |
| 55 | do NOT make the I/O line a high output and press a button, as damage to the I/O pin can occur.</font> The shorting bars |
| 56 | directly above JA, JB, and JC will need to be |
| 57 | installed for these LEDs and Pushbuttons to be used.<br> |
| 58 | |
| 59 | <table border="1" bordercolor="#000000" width="200"> |
| 60 | <tbody><tr> |
| 61 | <td align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Chip I/O</b></td> |
| 62 | |
| 63 | <td align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14" colspan="2"><b>PB/LED</b></td> |
| 64 | </tr> |
| 65 | <tr> |
| 66 | <td align="center" bordercolor="#C0C0C0" height="1">Pin 7</td> |
| 67 | <td height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">A</td> |
| 68 | <td height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Red</td> |
| 69 | </tr> |
| 70 | |
| 71 | <tr> |
| 72 | <td align="center" bordercolor="#C0C0C0" height="14">Pin 8</td> |
| 73 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">B</td> |
| 74 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Green</td> |
| 75 | </tr> |
| 76 | <tr> |
| 77 | <td align="center" bordercolor="#C0C0C0" height="14">Pin 9</td> |
| 78 | |
| 79 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">C</td> |
| 80 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Yellow</td> |
| 81 | </tr> |
| 82 | </tbody></table> |
| 83 | </li> |
| 84 | <li>This is where you connect servos, motor controllers, sensors, etc. to the microcontroller. Use caution when connecting anything the the I/O |
| 85 | bus. Never connect anything while the power is on. The outside row is ground, the middle row is power, and the inside row are the IO pins.</li> |
| 86 | <li>This is where you configure the I/O bus center row to use VL (+5vdc from the onboard regulator) or VS (direct from the Servo Power Input). |
| 87 | This is done in banks of four I/O pins. <font color="#FF0000">Caution, applying the servo voltage to this row with a 5vdc peripheral installed |
| 88 | will cause damage to the peripheral.</font> </li> |
| 89 | <li>This port is for connecting a Sony Playstation controller to use as a robot controller. |
| 90 | The Lynxmotion, Sony, and Madcatz controllers we tested only required a 1K pullup on Pin 6, |
| 91 | which is built into the board and must be enabled by installing a jumper on the JPU. Other |
| 92 | brands may require a pullup on Pin 9, which is not included. Note, some controllers require the green wire |
| 93 | to be connected to 7.5vdc to enable vibrating motors, or wireless operation. The Playstation 2 cables' coloring differs from different |
| 94 | production runs. Please refer to the table in the <a href="https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/#aglance">Shorting Bars and Connections section</a> to verify the color coding and |
| 95 | connections for your cable.<br> |
| 96 | |
| 97 | <table border="1" bordercolor="#000000" width="200"> |
| 98 | <tbody><tr> |
| 99 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Pin</b></td> |
| 100 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>PS2 Function</b></td> |
| 101 | </tr> |
| 102 | <tr> |
| 103 | <td width="248" align="center" bordercolor="#C0C0C0" height="1">Pin 8</td> |
| 104 | <td height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">DAT</td> |
| 105 | </tr> |
| 106 | <tr> |
| 107 | <td width="248" align="center" bordercolor="#C0C0C0" height="14">Pin 7</td> |
| 108 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">CMD</td> |
| 109 | </tr> |
| 110 | <tr> |
| 111 | <td width="248" align="center" bordercolor="#C0C0C0" height="14">Pin 6</td> |
| 112 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">ATT</td> |
| 113 | </tr> |
| 114 | <tr> |
| 115 | <td align="center" bordercolor="#C0C0C0" height="14">Pin 9</td> |
| 116 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">CLK</td> |
| 117 | </tr> |
| 118 | </tbody></table> |
| 119 | </li> |
| 120 | <li>This pin group breaks out the ICSP pins. These allow you to burn a bootloader onto the Atmega328 or program the chip with an external programmer. |
| 121 | Do not connect anything to these pins unless you know what you are doing.</li> |
| 122 | <li>This connecter brings out pins 0 and 1 of the arduino along with ground in such a way that you can connect the BotBoarduino to an SSC-32 with any servo extension cable. <font color="#FF0000">You will need to remove anything connected to these pins while programming.</font></li> |
| 123 | |
| 124 | <li>This allows the VL and/or VS inputs to be connected to two of the AtMega328's analog inputs through a 4:1 voltage divider. For example, if the |
| 125 | battery voltage were 9vdc, the analog input would see 2.25vdc.<br> |
| 126 | |
| 127 | <table width="200" border="1" bordercolor="#000000"> |
| 128 | <tbody><tr> |
| 129 | <td align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Chip I/O</b></td> |
| 130 | <td align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Use</b></td> |
| 131 | </tr> |
| 132 | <tr> |
| 133 | |
| 134 | <td align="center" bordercolor="#C0C0C0" height="1">A0</td> |
| 135 | <td bordercolor="#C0C0C0" bgcolor="#FFFFFF" height="1" align="center">V-Servo |
| 136 | / General Purpose</td> |
| 137 | </tr> |
| 138 | <tr> |
| 139 | <td align="center" bordercolor="#C0C0C0" height="14">A1</td> |
| 140 | <td bordercolor="#C0C0C0" bgcolor="#FFFFFF" height="14" align="center">V-Logic |
| 141 | / General Purpose</td> |
| 142 | </tr> |
| 143 | |
| 144 | <tr> |
| 145 | <td align="center" bordercolor="#C0C0C0" height="14">A2 - A5</td> |
| 146 | <td bordercolor="#C0C0C0" bgcolor="#FFFFFF" height="14" align="center">General |
| 147 | Purpose</td> |
| 148 | </tr> |
| 149 | </tbody></table> |
| 150 | </li> |
| 151 | <li>These headers bring out analog pins A4 and A5 for use with the I2C comunication protocol. To use this header |
| 152 | you must install jumpers horizontally across the SDA-P and SCL-P headers.</li> |
| 153 | <li>This allows you to power the Servos and Logic from the same battery. It simply connects the VS input to the VL input. Caution, when using this |
| 154 | option do NOT use the VL input.</li> |
| 155 | |
| 156 | <li>This button will reset the micro when pressed. This can be useful for starting different programs depending on which SUI button is pressed on |
| 157 | reset.</li> |
| 158 | <li>This is the VS (servo voltage) input. Servo voltage can be 4.8vdc to 7.2vdc. However, some micro servos will not tolerate more than 6vdc. This |
| 159 | input is used to provide power for the servos only, or to provide power to both VL and VS using the VS=VL jumper. See Item 13.<br> |
| 160 | |
| 161 | <table border="1" bordercolor="#000000" width="200"> |
| 162 | <tbody><tr> |
| 163 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Board</b></td> |
| 164 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Input</b></td> |
| 165 | </tr> |
| 166 | |
| 167 | <tr> |
| 168 | <td width="248" align="center" bordercolor="#C0C0C0" height="1">VS +</td> |
| 169 | <td width="248" height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">RED</td> |
| 170 | </tr> |
| 171 | <tr> |
| 172 | <td width="248" align="center" bordercolor="#C0C0C0" height="14">VS -</td> |
| 173 | <td width="248" height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">BLACK</td> |
| 174 | |
| 175 | </tr> |
| 176 | </tbody></table> |
| 177 | </li> |
| 178 | <li>This is the VL (logic voltage) input. This input is normally used with a 9vdc battery connector to provide power to the microcontroller and |
| 179 | anything connected to the 5vdc lines on the board. This input can be used to isolate the VL from the VS (servo voltage).<br> |
| 180 | |
| 181 | <table border="1" bordercolor="#000000" width="200"> |
| 182 | <tbody><tr> |
| 183 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Board</b></td> |
| 184 | |
| 185 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Input</b></td> |
| 186 | </tr> |
| 187 | <tr> |
| 188 | <td width="248" align="center" bordercolor="#C0C0C0" height="1">VL +</td> |
| 189 | <td width="248" height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">RED</td> |
| 190 | </tr> |
| 191 | <tr> |
| 192 | |
| 193 | <td width="248" align="center" bordercolor="#C0C0C0" height="14">VL -</td> |
| 194 | <td width="248" height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">BLACK</td> |
| 195 | </tr> |
| 196 | </tbody></table> |
| 197 | </li> |
| 198 | <li>This header selects the Logic Power source for the board. Select USB to power the Logic from the onboard USB port |
| 199 | or Select EXT to power the board from the VL terminal.</li> |
| 200 | <li>The Low Dropout regulator will provide 5vdc out with as little as 5.4vdc coming in. This is important when operating your robot from a |
| 201 | battery. It can accept a maximum of 12vdc in. The regulator is rated for 1.5A.</li> |
| 202 | |
| 203 | <li>These headers are spaced to accept all Arduino compatible Shields and Extensions.</li> |
| 204 | <li>Status LEDs.<br> |
| 205 | |
| 206 | <table border="1" bordercolor="#000000" width="300"> |
| 207 | <tbody><tr> |
| 208 | <td width="20" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>LED</b></td> |
| 209 | <td width="248" align="center" bordercolor="#808080" bgcolor="#C0C0C0" height="14"><b>Function</b></td> |
| 210 | </tr> |
| 211 | <tr> |
| 212 | <td width="20" align="center" bordercolor="#C0C0C0" height="1">L</td> |
| 213 | <td width="248" height="1" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Directly connected to P13 on the Arduino chip</td> |
| 214 | </tr> |
| 215 | <tr> |
| 216 | <td width="20" align="center" bordercolor="#C0C0C0" height="14">TX</td> |
| 217 | <td width="248" height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Blinks when sending data</td> |
| 218 | </tr> |
| 219 | <tr> |
| 220 | <td width="20" height="14" align="center" bordercolor="#C0C0C0">RX</td> |
| 221 | <td height="14" align="center" bordercolor="#C0C0C0" bgcolor="#FFFFFF">Blinks when receiving data</td> |
| 222 | </tr> |
| 223 | </tbody></table> |
| 224 | </li> |
| 225 | <li>This is where the Atmega 328 chip is plugged in. Atmega328 pin map:<br> |
| 226 | <br><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/atmega328map.png"> |
| 227 | </li> |
| 228 | </ol> |
| 229 | |
| 230 | <hr width="95%" color="#808080"> |
| 231 | <p><span class="headsm"><a name="aglance">Shorting Bar Jumpers and Connectors at a glance.</a></span></p> |
| 232 | <p><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/bbduinom03.png" width="650" height="447"></p> |
| 233 | The Playstation 2 cables' coloring differs from different production runs. Please refer to the diagram below to verify the color coding on your cable.<br> |
| 234 | |
| 235 | <p><img border="2" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/wire08s.gif"><br> |
| 236 | </p> |
| 237 | <p><span class="headsm"><a name="connections">PS2 / SSC-32 Connections</a></span></p> |
| 238 | <p><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/botboarduino-ps2.jpg" width="650"></p> |
| 239 | <p><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/botboarduino-ssc32.jpg" width="650"></p> |
| 240 | <p><img border="0" src="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/servo-erector-set-system/ses-electronics/ses-modules/botboarduino/botboarduino-manual/WebHome/botboarduino-ssc-32-ps2.jpg" width="650"></p> |
| 241 | <hr width="95%" color="#808080"> |
| 242 | <p align="center"><span class="headmd"><a name="testcont">Troubleshooting</a></span></p> |
| 243 | <p><span class="headsm"><a name="trouble">General Troubleshooting</a></span></p> |
| 244 | <p>The yellow power (PWR) LED should glow if the regulator is getting the proper power. You must make sure to connect the battery or wall pack with |
| 245 | the proper polarity. This means the red wire is positive (+) and the black wire is ground (-). <font color="#FF0000">If you connect the battery or |
| 246 | wall pack with the polarity reversed, the regulator and the microcontroller can be instantaneously and permanently damaged!</font> Check your wiring |
| 247 | carefully before applying power.</p> |
| 248 | <p><font color="#FF0000">If SSC-32 is connected to RX/TX/Gnd (hardware serial port on pin 0 and 1) it must be removed while programming! This is because the USB port shares the same IO pins.</font></p> |
| 249 | <p>The maximum voltage for VL is 12vdc. If you use a higher voltage the regulator may overheat and you could get burned!</p> |
| 250 | |
| 251 | <p>Confirm that the Atmega 328 chip's notch is aligned with the socket's notch.</p> |
| 252 | <p>In the Arduino programming environment, make sure you have selected "Arduino Duemilanove w/ ATmega328".</p> |
| 253 | <p>The Lynxmotion PS2 controller has issues with the analog mode on the Lynxmotoin left pad (often displaying 0 rather than analog values). We suggest using the joysticks as alternative analog inputs.</p> |
| 254 | </div> |
| 255 | |
| 256 | |
| 257 | |
| 258 | |
| 259 | </body> |
| 260 | {{/html}} |

