Skip to content

Commit 28399b8

Browse files
authored
improving brain board documentation (#524)
* added INA260 details * added testing of INA260 * Added details of testing the INA260 in the README * updated PCA9685 instructions * typo * specify wire length for roboclaws * add explaination of INA260 connections * use updated image * add TOC to cut down on scrolling * fixing link format * formatting * easier to trim C32 if installed before J27-29. * typo on J24 size * detail on pi connection * typos * add info about USBC pwr cord * fix url * add info about USBC pwr cord * revert image change * renumber figs, remove duplicate * fix typo, update image
1 parent de04470 commit 28399b8

File tree

3 files changed

+45
-40
lines changed

3 files changed

+45
-40
lines changed

electrical/pcb/README.md

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ Printed Circuit Boards for the project.
99

1010
Note that the images in these instructions are taken from an assembly of the v2.0.1 board. There are minimal differences between v2.0.1 and v2.0.3 - such that it wasn't worth doing another photoshoot for v2.0.3. Make sure to follow the written instructions when in doubt.
1111

12+
## Table of Contents
13+
1. [Part References](#1-part-references)
14+
2. [Schematic and Layout Documentation](#2-schematic-and-layout-documentation)
15+
3. [Motor Board Assembly](#3-motor-board-assembly)
16+
4. [Brain Board Assembly](#4-brain-board-assembly)
17+
5. [Motor Board and Brain Board Mating](#5-motor-board-and-brain-board-mating)
18+
6. [Testing the PCB and wiring for the Drive Motors](#6-testing-the-pcb-and-wiring-for-the-drive-motors)
19+
1220
## 1. Part References
1321

1422
Check out the [BOM documents](control_board/BOM/v2.0.3)
@@ -135,10 +143,10 @@ The INA260 daughter board is used for digital sensing of voltage and current, me
135143

136144
**Option 1: If you have an INA260 daughter board, you should install that in footprint U1.**
137145

138-
1. Attach an 8x1 female header to the 8 pins on the bottom side of the INA260 / U1 footprint, as seen in Figure 3.10
146+
1. Attach an 8x1 female header to the 8 pins on the bottom side of the INA260 / U1 footprint, as seen in Figure 3.10. Note that this is sensing the current on the high side of the power, so PWR on the the Motor Board is connected to Vin+ on the INA260, and Vin- on the INA260 is connected to MMLOAD+, which connects to the main power bus of the rover.
139147
2. Solder the 8x1 male header pins to the INA260.
140148
3. Attach a 3x1 female header (cut from a longer Nx1 header) to the two pins on the top side of the INA260 / U1 footprint, as seen in Figure 3.14. You'll need to manually remove the center pin.
141-
4. Removce the center pin from a 3x1 male header pins, and solder to the INA260.
149+
4. Remove the center pin from a 3x1 male header pins, and solder to the INA260.
142150
5. Solder across pads A0 and A1 on the INA260 (to set it to use I2C Address 0x45)
143151
6. Install M2.5 x 12mm + 6mm standoffs to the side of the INA260 opposite the pins as shown in Figure 3.20
144152

@@ -150,7 +158,7 @@ The INA260 daughter board is used for digital sensing of voltage and current, me
150158
|:-:|
151159
| Figure 3.15: INA260 installed |
152160

153-
**Option 2*: If you don't have one, you will need to bypass U1**
161+
**Option 2: If you don't have one, you will need to bypass U1**
154162

155163
TODO: need to update this discussion of bypassing U1 once the layout has been updated
156164

@@ -172,9 +180,7 @@ Install 3 female headers for the daughter board, into U4. You will need a two 4x
172180

173181
### 3.7 Install 12V bus regulator U3
174182

175-
Solder a 5x1 female header to the U3 footprint, and attach an appropriately sized standoff
176-
177-
TODO: specify standoff
183+
Solder a 5x1 female header to the U3 footprint, and attach an appropriately sized standoffs (I used an M3x10mm standoff)
178184

179185
| <img src="../../images/pcb_assembly/v2_0_1/assembly/PXL_20230418_050503408.jpg" height="300"> |
180186
|:-:|
@@ -267,31 +273,27 @@ You **may** use larger headers to fill all the holes in the U2 footprint, but it
267273

268274
You will need to attach male headers to the PCA9685 daughter board, as shown in figure 3.33.
269275

270-
| <img src="../../images/pcb_assembly/v2_0_1/assembly/pca9685_headers.jpg" height="300"> |
271-
|:-:|
272-
| Figure 3.33: Male headers soldered onto PCA9685 daughter board |
273-
274276
Also, 5v power is provided to the PCA9685 through the two holes at the top of the U2 header. You have a couple options for this.
275277

276-
** Option 1 - Wires **
278+
**Option 1 - Wires**
277279
To connect these, I soldered 2 small wire leads on the PCA9685 daughter board, and then soldered them on to the motor board once I installed the PCA9685.
278280

279-
** Option 2 - 1x1 Pins/Headers
281+
**Option 2 - 1x1 Pins/Headers**
280282
The V+ and GND on the PCA9685 don't exactly line up with the GND_motor and +5V_motor pins on the Motor board, but are close enough you can make them connect with two 1x1 pins on the PCA9685 and two 1x1 headers on the Motor board, as shown in figure 3.34.
281283

282284
| <img src="../../images/pcb_assembly/v2_0_1/assembly/pca9685_headers.jpg" height="300"> |
283285
|:-:|
284-
| Figure 3.34: Male headers soldered onto PCA9685 daughter board |
286+
| Figure 3.33: Male headers soldered onto PCA9685 daughter board |
285287

286-
| <img src="../../images/pcb_assembly/v2_0_1/assembly/PXL_20230424_003801047.jpg" height="300"> |
288+
| <img src="../../images/pcb_assembly/v2_0_1/assembly/pca9685_installed.jpg" height="300"> |
287289
|:-:|
288-
| Figure 3.35: PCA9685 installed in motor board |
290+
| Figure 3.34: PCA9685 installed in motor board |
289291

290292
Finally install capicator C3 as shown in figure 3.36.
291293

292294
| <img src="../../images/pcb_assembly/v2_0_1/assembly/c3_installed.png" height="300"> |
293295
|:-:|
294-
| Figure 3.36 : C3 installed |
296+
| Figure 3.35 : C3 installed |
295297

296298

297299
### 3.12 Install resistor R5 and capacitor C1
@@ -300,7 +302,7 @@ These are aids for the INA260, and can be left out if the IN260 is not used
300302

301303
| <img src="../../images/pcb_assembly/v2_0_1/assembly/r5_c1.png" height="300"> |
302304
|:-:|
303-
| Figure 3.30: PCA9685 installed in motor board |
305+
| Figure 3.36: PCA9685 installed in motor board |
304306

305307
### 3.13 Install J21, J20, and resistors R6,R7,R8,R9,R10
306308

@@ -310,7 +312,7 @@ Use an 8x1 female header for J20.
310312

311313
| <img src="../../images/pcb_assembly/v2_0_1/assembly/j20_j21_r6_r10.png" height="300"> |
312314
|:-:|
313-
| Figure 3.31: Components installed, as viewed from top of board |
315+
| Figure 3.37: Components installed, as viewed from top of board |
314316

315317
### 3.14 Test INA260 installation
316318

@@ -330,7 +332,7 @@ Power: 1230.00 mW
330332

331333
| <img src="../../images/pcb_assembly/v2_0_1/assembly/r2_r3_r4.png" height="300"> |
332334
|:-:|
333-
| Figure 3.32: Components installed, as viewed from top of board |
335+
| Figure 3.38: Components installed, as viewed from top of board |
334336

335337
### 3.16 Install Roboclaw standoffs, headers, and capacitors
336338

@@ -341,75 +343,75 @@ First, install standoffs for the 3 RC footprints, as shown an figure 3.33 and 3.
341343
Next, solder in the two female headers for each RC footprint. You'll need a 2x10 and a 5x1 for each RC. These should be soldered into the holes on the side of each RC footprint.
342344

343345
Finally, install the following capacitors for each RC footprint:
344-
- RC1: capacitors C13,C15,C17,C20 (figure 3.33). Install on the top side of the board.
345-
- RC2: capacitors C2,C4,C9,C10 (figure 3.34). Install on the underside of the board.
346-
- RC3: capacitors C14,C16,C18,C21 (figure 3.34). Install on the top side of the board.
346+
- RC1: capacitors C13,C15,C17,C20 (figure 3.40). Install on the top side of the board.
347+
- RC2: capacitors C2,C4,C9,C10 (figure 3.39). Install on the underside of the board.
348+
- RC3: capacitors C14,C16,C18,C21 (figure 3.40). Install on the top side of the board.
347349

348350
Technically, you can install the capacitors on either side of the board, but it makes for a cleaner presentation if you install them where their respective "C" labels are on the board.
349351

350352
| <img src="../../images/pcb_assembly/v2_0_1/assembly/rc1_pop.png" height="300"> |
351353
|:-:|
352-
| Figure 3.33: C2,C4,C9,C10 installed|
354+
| Figure 3.39: C2,C4,C9,C10 installed|
353355

354356
| <img src="../../images/pcb_assembly/v2_0_1/assembly/PXL_20230425_054908018.jpg" height="300"> |
355357
|:-:|
356-
| Figure 3.34: C13,C15,C17,C20 and C14,C16,C18,C21 installed|
358+
| Figure 3.40: C13,C15,C17,C20 and C14,C16,C18,C21 installed|
357359

358360
### 3.17 Install motor supply headers J16,J17,J18
359361

360-
Figure 3.35 shows how these should be installed. J16 on the top of the board is installed in the same way.
362+
Figure 3.41 shows how these should be installed. J16 on the top of the board is installed in the same way.
361363

362364
Make sure to orient the connector in the proper direction, as indicated in the images.
363365

364366
| <img src="../../images/pcb_assembly/v2_0_1/assembly/motor_supply_headers.png" height="300"> |
365367
|:-:|
366-
| Figure 3.35: J17 and J18 installed, on bottom of board|
368+
| Figure 3.41: J17 and J18 installed, on bottom of board|
367369

368370
### 3.18 Install 3x Roboclaw boards in footprints RC1, RC2, RC3
369371

370-
First, wire the 6pos terminal block headers to the roboclaw boards, as indicated in figure 3.36. Cut the wires to about 5cm and tin the ends.
372+
First, wire the 6pos terminal block headers to the roboclaw boards, as indicated in figure 3.42. Cut the wires to about 5cm and tin the ends.
371373

372374
Unless you have an older version of the PCB (v2.0.2 or earlier), wire the pins in the J16,J17,J18 headers directly to the pins on the corresponding side of the roboclaw - it is a direct 1-to-1 mapping all the way down, with no wires crossed. Use 16AWG wire (18AWG would also be fine)
373375

374376
Do this for all three roboclaws.
375377

376378
| <img src="../../images/pcb_assembly/v2_0_1/assembly/roboclaw_wired_1.png" height="300"> <img src="../../images/pcb_assembly/v2_0_1/assembly/roboclaw_wired_2.png" height="300"> |
377379
|:-:|
378-
| Figure 3.36: Wiring up the roboclaws |
380+
| Figure 3.42: Wiring up the roboclaws |
379381

380382
Then install the 3 roboclaws in the RC1, RC2, and RC3 footprints. It doesn't matter which roboclaw goes in which footprint - we will later set unique addresses in software for each of them to communicate over the serial bus.
381383

382384
| <img src="../../images/pcb_assembly/v2_0_1/assembly/roboclaws_installed.png" height="300"> |
383385
|:-:|
384-
| Figure 3.37: Installing the roboclaw boards |
386+
| Figure 3.43: Installing the roboclaw boards |
385387

386388
### 3.19 Install capacitors C5,C6
387389

388390
| <img src="../../images/pcb_assembly/v2_0_1/assembly/PXL_20230426_055549256.MP.jpg" height="300"> |
389391
|:-:|
390-
| Figure 3.38: Installing capacitors C5, C6|
392+
| Figure 3.44: Installing capacitors C5, C6|
391393

392394
### 3.20 Install corner servo header J19, and capacitor C19
393395

394396
Make sure to install C19 in the proper direction, as shown in figure 3.39. One side of the capacitor has negative polarity indicators on it, that should be installed opposite the "+" sign on the footprint.
395397

396398
| <img src="../../images/pcb_assembly/v2_0_1/assembly/j19_c19.png" height="300"> |
397399
|:-:|
398-
| Figure 3.39: J19 and C19 installed (top of photo) |
400+
| Figure 3.45: J19 and C19 installed (top of photo) |
399401

400402
### 3.21 Install LED array U5
401403

402404
Make sure to align the slightly "chipped"/beveled corner of the LED array with the beveled corner of the U5 footprint, to have proper LED polarity
403405

404406
| <img src="../../images/pcb_assembly/v2_0_1/assembly/u5_installed.png" height="300"> |
405407
|:-:|
406-
| Figure 3.40: LED array U5 installed |
408+
| Figure 3.46: LED array U5 installed |
407409

408410
### 3.22 Install drive motor headers J8,J9,J10,J11,J13,J14
409411

410412
| <img src="../../images/pcb_assembly/v2_0_1/assembly/IMG_0827.jpeg" height="300"> |
411413
|:-:|
412-
| Figure 3.41: Drive motor headers installed |
414+
| Figure 3.47: Drive motor headers installed |
413415

414416

415417

@@ -444,9 +446,8 @@ Make sure to install the switch in the correct direction to match the footprint.
444446
Install these components:
445447
- U6 LED array
446448
- J22,J23 raspberry pi ribbon cable headers
447-
- J27,J28,J29 2x1 female headers - "other breakouts"
448449
- J25 3x4 male headers - "i2c breakout"
449-
- J24 3x4 male header (white color) - "arduino comm"
450+
- J24 1x6 shrouded male header (white color) - "arduino comm"
450451
- J30 8x1 male header - "signal test header"
451452

452453
Make sure to align the slightly "chipped"/beveled corner of the LED array with the beveled corner of the U6 footprint, to have proper LED polarity
@@ -470,6 +471,11 @@ Ignore the resistors and figure 4.4 for the moment
470471
|:-:|
471472
| Figure 4.4: J26 (top) and C32 installed on back side of board |
472473

474+
Trim the leads of C32 before you continue.
475+
476+
### Install other breakouts on top of board
477+
478+
Finally, install J27,J28,J29 2x1 female headers in front of the leads of C32
473479

474480
### 4.5 Install ESTOP and Serial TXD/RXD LED logic circuit components
475481

@@ -493,17 +499,14 @@ Install all of these as indicated in figure 4.5:
493499

494500
### 4.6 Mount the Raspberry Pi board
495501

496-
Using appropriate standoffs, attach the raspberry pi to the top of the brain board, as shown in figure 4.6
497-
498-
TODO: identify the parts for the standoffs
502+
Using appropriate standoffs (M3x6mm+6mm works well, if a bit tight in the Raspberry Pi 5 mounting holes), attach the raspberry pi to the top of the brain board, as shown in figure 4.6. Attach the ribbon cable from the GPIO on the Pi to J22.
499503

500504
| <img src="../../images/pcb_assembly/v2_0_1/assembly/IMG_0844.jpeg" height="300"> <img src="../../images/pcb_assembly/v2_0_1/assembly/IMG_0845.jpeg" height="300"> |
501505
|:-:|
502506
| Figure 4.6: RPi mounted on the brain board |
503507

504508
__Important Note if you are using a Raspberry Pi 5:__
505-
The Raspberry Pi (RPi) 5 has different power requirements than previous RPi generations. The two 5v lines attached to the RPi via the ribbon cable are not to enough to adequately power the RPi 5, especially if attaching any peripherals, like a camera. Until further revisions are done to the PCB, it is recommeded to power the RPi 5 through a USB C connector. You can cut a USB C cable and identify the V+ and Ground lines using a digital multimeter, then solder those lines to the 5v and Gnd test connection points on the motorboard. You can then plug the USB C connector into the RPi 5 to power it.
506-
509+
The Raspberry Pi (RPi) 5 has different power requirements than previous RPi generations. The two 5v lines attached to the RPi via the ribbon cable are not to enough to adequately power the RPi 5, especially if attaching any peripherals, like a camera. Until further revisions are done to the PCB, it is recommeded to power the RPi 5 through a USB C connector. You can cut a USB C cable and identify the V+ and Ground lines using a digital multimeter, then solder those lines to the 5v and Gnd test connection points on the motorboard. You can then plug the USB C connector into the RPi 5 to power it. You can also order USB-C cables with PWR/GND broken out already (see [Extra Parts List](../../parts_list/extra_parts.md))
507510

508511

509512
## 5. Motor Board and Brain Board Mating

parts_list/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ Heat shrink is a must have for keeping cables nice and snug.
187187
Take a look at the [wiring overview](../electrical/wiring/README.md#overview) to get an idea of what you will be building. You'll need crimps and connectors for DuPont, Bullet, XT30, JST, and Molex styles. Crimping doesn't have a 100% success rate, so we recommend getting extras or buying a kit if you're planning on using them for other projects as well. Here are some options for each set you need:
188188

189189
* A Raspberry Pi ribbon cable, e.g. from [Adafruit](https://www.adafruit.com/product/1988) but available in many places. While you could use header pins for this connection, the cable is the cleanest solution
190+
* A USB-C power breakout cable if you're using a Raspberry Pi 5, e.g. from [Amazon](https://www.amazon.com/dp/B0D2C74PLY)
190191
* XT30 connectors for the power connections on the motor PCB.
191192
* DIY options, either:
192193
* [5 pairs M/F from Gobilda](https://www.gobilda.com/xt30-connector-pack-fh-mc-x-5-mh-fc-x-5/)

parts_list/extra_parts.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Heat shrink is a must have for keeping cables nice and snug.
3737
Take a look at the [wiring overview](../electrical/wiring/README.md#overview) to get an idea of what you will be building. You'll need crimps and connectors for DuPont, Bullet, XT30, JST, and Molex styles. Crimping doesn't have a 100% success rate, so we recommend getting extras or buying a kit if you're planning on using them for other projects as well. Here are some options for each set you need:
3838

3939
* A Raspberry Pi ribbon cable, e.g. from [Adafruit](https://www.adafruit.com/product/1988) but available in many places. While you could use header pins for this connection, the cable is the cleanest solution
40+
* A USB-C power breakout cable if you're using a Raspberry Pi 5, e.g. from [Amazon](https://www.amazon.com/dp/B0D2C74PLY)
4041
* XT30 connectors for the power connections on the motor PCB.
4142
* DIY options, either:
4243
* [5 pairs M/F from Gobilda](https://www.gobilda.com/xt30-connector-pack-fh-mc-x-5-mh-fc-x-5/)

0 commit comments

Comments
 (0)