Model Railroad System
2.2.2
Model RR signals with an Arduino
Using an Arduino Uno to Operate Model RR Signals
Modules
Classes
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
Generated on Thu Jul 3 2025 00:58:49 for Model Railroad System by
1.9.1