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 &nbsp;
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 &nbsp;
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 &nbsp;
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 &nbsp;
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 &nbsp;
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 &nbsp;
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}}
Copyright RobotShop 2018