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