Model Railroad System  2.2.2
Model RR signals with an Arduino
SignalDriverBoard.h
1 // -!- c++ -!- //////////////////////////////////////////////////////////////
2 //
3 // System :
4 // Module :
5 // Object Name : $RCSfile$
6 // Revision : $Revision$
7 // Date : $Date$
8 // Author : $Author$
9 // Created By : Robert Heller
10 // Created : Sun Jul 26 17:22:30 2015
11 // Last Modified : <150727.2118>
12 //
13 // Description
14 //
15 // Notes
16 //
17 // History
18 //
19 /////////////////////////////////////////////////////////////////////////////
20 //
21 // Copyright (C) 2015 Robert Heller D/B/A Deepwoods Software
22 // 51 Locke Hill Road
23 // Wendell, MA 01379-9728
24 //
25 // This program is free software; you can redistribute it and/or modify
26 // it under the terms of the GNU General Public License as published by
27 // the Free Software Foundation; either version 2 of the License, or
28 // (at your option) any later version.
29 //
30 // This program is distributed in the hope that it will be useful,
31 // but WITHOUT ANY WARRANTY; without even the implied warranty of
32 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 // GNU General Public License for more details.
34 //
35 // You should have received a copy of the GNU General Public License
36 // along with this program; if not, write to the Free Software
37 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
38 //
39 //
40 //
41 //////////////////////////////////////////////////////////////////////////////
42 
43 #ifndef __SIGNALDRIVERBOARD_H
44 #define __SIGNALDRIVERBOARD_H
45 /** @page SignalDriverBoard Signal Driver board
46  * The Signal Driver board is assembled on a piece of "strip board",
47  * specifically a 3.5 inch by 2.5 inch piece cut from a BusBoard Prototype
48  * Systems BPS-MAR-ST6U-001 (included in the Mouser project). After cutting
49  * this piece from the board some of the copper foil needs to be carefully
50  * removed. This is done with a sharp hobby knife and a soldering iron is used
51  * to heat the copper to make it easy to peel. The PCB Layout/assembly Zip
52  * file includes a PostScript file named SignalDriverMax72xx.back.ps which is
53  * an actual sized drawing of what the foil should look like. Here is a
54  * side-by-side view of an actual board and the SignalDriverMax72xx.back.ps
55  * drawing:
56  * @image latex SignalDriverMax72xx_back-photo.jpg "Photo of the Signal Driver circuit board (foil side)" height=2.5in
57  * @image html SignalDriverMax72xx_back-photo-thumb.jpg "Photo of the Signal Driver circuit board (foil side)"
58  * @image latex SignalDriverMax72xx_back.png "Signal Driver Foil side PCB layout" height=2.5in
59  * @image html SignalDriverMax72xx_back-thumb.png "Signal Driver Foil side PCB layout"
60  * I cut the board to have two strip rows above and below the foil layout to
61  * provide a place to drill mounting holes that would not interfere with the
62  * circuit elements.
63  *
64  * The next step is to run the vertical connections, using solid hookup wire.
65  * I used a different color for each "layer". Staring with layer group2
66  * (ground) in black.
67  * @image latex SignalDriverMax72xx_group2-photo.jpg "Photo of group2 (ground) wires in black" height=2.5in
68  * @image html SignalDriverMax72xx_group2-photo-thumb.jpg "Photo of group2 (ground) wires in black"
69  * @image latex SignalDriverMax72xx_group2.png "Group2 (ground) PCB Layout" height=2.5in
70  * @image html SignalDriverMax72xx_group2-thumb.png "Group2 (ground) PCB Layout"
71  *
72  * Then layer group3 (power) in red.
73  * @image latex SignalDriverMax72xx_group3-photo.jpg "Group3 (power) with red wire" height=2.5in
74  * @image html SignalDriverMax72xx_group3-photo-thumb.jpg "Group3 (power) with red wire"
75  * @image latex SignalDriverMax72xx_group3.png "SignalDriverMax72xx_group3.png" height=2.5in
76  * @image html SignalDriverMax72xx_group3-thumb.png "SignalDriverMax72xx_group3.png"
77  * Then layer group4 (signal1) in yellow.
78  *
79  * @image latex SignalDriverMax72xx_group4-photo.jpg "Group4 (signal1) in Yellow" height=2.5in
80  * @image html SignalDriverMax72xx_group4-photo-thumb.jpg "Group4 (signal1) in Yellow"
81  * @image latex SignalDriverMax72xx_group4.png "Group4 (signal1) PCB Layout" height=2.5in
82  * @image html SignalDriverMax72xx_group4-thumb.png "Group4 (signal1) PCB Layout"
83  * Then layer group5 (signal2) in green.
84  *
85  * @image latex SignalDriverMax72xx_group5-photo.jpg "Group5 (signal 2) in green" height=2.5in
86  * @image html SignalDriverMax72xx_group5-photo-thumb.jpg "Group5 (signal 2) in green"
87  * @image latex SignalDriverMax72xx_group5.png "PCB layer group5 (signal2)" height=2.5in
88  * @image html SignalDriverMax72xx_group5-thumb.png "PCB layer group5 (signal2)"
89  * Then layer group6 (signal3) in blue.
90  *
91  * @image latex SignalDriverMax72xx_group6-photo.jpg "Photo of group6 (signal3) in blue." height=2.5in
92  * @image html SignalDriverMax72xx_group6-photo-thumb.jpg "Photo of group6 (signal3) in blue."
93  * @image latex SignalDriverMax72xx_group6.png "PCB layer group6 (signal3)" height=2.5in
94  * @image html SignalDriverMax72xx_group6-thumb.png "PCB layer group6 (signal3)"
95  * Then layer group7 (signal4) in white.
96  *
97  * @image latex SignalDriverMax72xx_group7-photo.jpg "Photo of group 7 (signal 4) in white" height=2.5in
98  * @image html SignalDriverMax72xx_group7-photo-thumb.jpg "Photo of group 7 (signal 4) in white"
99  * @image latex SignalDriverMax72xx_group7.png "PCB layout of group7 (signal4)" height=2.5in
100  * @image html SignalDriverMax72xx_group7-thumb.png "PCB layout of group7 (signal4)"
101  * Finally, the headers, IC socket, and the passive components are installed.
102  * There is a trick to installing the IC socket and the headers: solder only
103  * one pin, then while pushing the socket or header against the board, reheat
104  * the solder to make it re-flow. This should cause the socket or header to
105  * snap squarely to the board. You might have to push some of the wires to one
106  * side to install the IC socket and the 9-pin headers, but if you were
107  * careful about routing the wires, this should not be a problem. The
108  * resistor needs to have one of its leads bent 180 degrees to allow it to be
109  * mounted on end. The unbent pin should go next to the where the red wires
110  * are installed. C2 (the larger electrolytic capacitor) is polarized. The
111  * negative lead (the shorter one next to the stripe) goes towards the IC
112  * socket. The resistor and the capacitors should be mounted as tightly to
113  * the board as possible. You can solder one lead and the reheat the solder
114  * to carefully position them tight and square.
115  *
116  * @image latex SignalDriverMax72xx_frontassembly-photo.jpg "Photo of front assembly" height=2.5in
117  * @image html SignalDriverMax72xx_frontassembly-photo-thumb.jpg "Photo of front assembly"
118  * @image latex SignalDriverMax72xx_frontassembly.png "PCB layout of front assembly" height=2.5in
119  * @image html SignalDriverMax72xx_frontassembly-thumb.png "PCB layout of front assembly"
120  * Here is another view of the completed circuit board. This angle view gives
121  * a better view of the assembly. The next step is to carefully inspect the
122  * board, looking closely with a magnifier looking for solder bridges or bad
123  * solder joints.
124  *
125  * @image latex SignalDriverMax72xx_frontassembly-angle-photo.jpg "Photo of front assembly at an angle" height=2.5in
126  * @image html SignalDriverMax72xx_frontassembly-angle-photo-thumb.jpg "Photo of front assembly at an angle"
127  * Then you can use an Ohmmeter (or a multimeter in Ohmmeter mode) to check
128  * the circuit paths from each pin of the IC socket. The text file named
129  * @c SignalDriverMax72xx.pcb.u1 in the PCB Layout/assembly zip-file contains
130  * a listing of the connections to each pin of the IC socket. Here is a
131  * version of the front assembly diagram with the pin numbers indicated.
132  *
133  * @image latex SignalDriverMax72xx_frontassembly-wpinnos.png "PCB layout of the front assembly with pin numbers" height=2.5in
134  * @image html SignalDriverMax72xx_frontassembly-wpinnos-thumb.png "PCB layout of the front assembly with pin numbers"
135  *
136  * @htmlonly
137  * <div class="contents"><a class="el" href="ConnectingSignalDriverBoard.html">Continuing with the Connecting the Signal Driver Board</a></div>
138  * @endhtmlonly
139  */
140 
141 #endif // __SIGNALDRIVERBOARD_H
142