Mike Ficco Home

Controller 2020 Intro
Purchase The 2020
2020 User Manual
2020 Bugs & Problems
Construction Projects
.


Train Products And Projects




Introducing The Controller 2020

The Controller 2020 is a small infrared system for controlling Lionel TMCC CAB-1 and Legacy Engines, Switches, and Accessories. The infrared range exceeds my ability to test. It performs flawlessly at distances greater than forty (40) feet.
Controller2020
Figure 1. The Controller 2020 Module And Remote

To use the Controller 2020 you need a working Lionel 6-14295 #990 Legacy Command Set and a Lionel 6-81326 LCS Serial Converter 2 You also need additional cables as described in the Lionel documentation. See for example, the Lionel SER2 User's Guide. Once you have properly connected the Lionel SER2 to your working Legacy setup, simply connect the Controller 2020 to the Lionel SER2 with a 9 pin serial cable. A somewhat busy Figure 2 below shows the entire system.

The cable connecting the Controller 2020 to the SER2 is a RS-232 DB9 Serial Cable like would be used for connecting a PC serial port to an external device. The device, in this case the Lionel SER2, is expected to have a 9 pin female connector and the Controller 2020, which pretends to be a PC, has a 9 pin male connector. The cable is a "straight-through" serial cable with a female connector on one end and a male connector on the other. It is NOT a "null-modem" cable. You probably have a suitable cable in an old junk bin - although you may have to modify it some to fit on the Controller 2020's thick acrylic case. Modification details can be found here.

Controller2020system
Figure 2. The Controller 2020 Connected To Lionel A Legacy System

Notes:






Youtube Videos


Introducing The Controller 2020





Controller 2020 Final Assembly


.....


More Videos To Come
.







Purchase The Controller 2020

Not yet accepting orders. Please try again in a few days.
Go here to purchase The Controller 2020.

.









The Controller 2020 User Manual

Once you have connected your Controller 2020 as pictured in Figure 2 the magic can begin - and your magic wand is the little infrared remote control. Figure 3 shows the remote with a legend of characters superimposed on the image. These superimposed characters will be used in the following discussion to describe operation of The Controller 2020.

RemoteLegend
Figure 3. The Controller 2020 Remote's Character Legend

Perhaps the most important thing to understand about the Controller 2020 is that it has three modes of operation: Mode A, Mode B, and Mode C. Selection of the mode is pretty obvious. As you might guess, pressing A enters Mode A and so on. Figure 4 summarizes mode selection.
ModeSelection
Figure 4. Mode Selection With The Controller 2020 Remote

The active mode tells the module how to interpret an infrared command. For example, if Mode A is active the module interprets an infrared command as defined by pins 1 & 2 of the configuration dipswitch. Mode B processes the command as defined by pins 3 & 4 and Mode C as defined by pins 4 & 5. So, if Mode B is active and pins 3 & 4 are both OFF (equal zero) the remote will control Lionel Legacy Engine number one.

Only one mode can be active at a time and that mode is determined by pressing A, B, or C on the remote. In the factory configuration the user would touch B to select Engine 1 and press ▲ a couple of times to get the engine going. Later she would press A to control a Switch and press ▶ to tell Switch 1 to turn.

Using the configuration dipswitch the user can set Mode A to control Engine 1, Mode B to control Engine 2, and Mode C to control Engine 2 Features like opening the couplers and enabling smoke. Other configurations can be set with the dipswitch as described below. Soft Configuration must be used to access Lionel Legacy Command Control Accessories, Engines, and Switches with Lionel LCS IDs higher than 2.

The following picture summarizes operation of the remote when it is in a Mode that controls an Engine. Note the difference between pressing O and pressing P. O stops the engine you are controlling. P is emergency power off. It stops everything.
EngineControl
Figure 5. The Controller 2020 Remote: Engine Control

The next picture summarizes operation of the remote when it is in a Mode that controls a Switch. Again P is emergency power off. However, when the remote is controlling Switches it can also toggle the behavior of an Accessory with LCS ID 1. That is, in this Mode the remote controls two Switches but also commands one Accessory by sending the two command sequence: "Aux1 Option 1" + "Numeric 1". This is the same sent by ▲ in Accessory Mode and will cause a momentary closure of output 1 on the ASC2 in both 1 TMCC ID and 8 TMCC ID configurations. It can also toggle the latched output of Electric RailRoad Company modules.
SwitchControl
Figure 6. The Controller 2020 Remote: Switch Control

This next picture summarizes operation of the remote when it is controlling an Accessory. Accessory control is a little more complicated than, say, making an Engine go faster. Specifically, Lionel documents 18 distinct Accessory action commands and the Lionel 6-81639 ASC2, often a target of these commands, can be operated in three different ways: The simple explanation is the Controller 2020 sends combinations of Accessory commands as shown in Figure 7 - to provide the control summarized in Figure 11. For those of you wanting a more complete explanation, we have a Technical Deep Dive.

Technical Deep Dive

You don't need to know the details of the LCS Command Specification to use the 990 handset but it's a different story if you want to build your own controller. Following are the commands that cause specific ASC2 operation.

As shown in Figure 7 following, the Controller 2020 actually sends two commands when some of the IR remote keys are pressed. I found that the second command is ignored by the ASC2 when it is in 8 TMCC ID mode, but is used by the ASC2 when it is in 1 TMCC ID mode. Sending two commands this way allows me to "piggy-back" operation between the two ASC2 configurations using the same IR remote key.

Note that the Electric RailRoad Company's Mini Commander (and other products) can be configured to latch an output instead of momentarily closing the output when it receives the Aux1 Accessory command. I've done this in my Searchlight project and toggle the light on and off with the Aux1 key instead of the Aux2. This allows me to operate it with the O key when the remote is in Switch control mode.

AccessoryControl
Figure 7. The Controller 2020 Remote: Accessory Control

Finally, the following picture summarizes operation of the remote when it is controlling Engine Features.

FeatureControl
Figure 8. The Controller 2020 Remote: Engine Feature Control

Configuration Switch Settings

An important advantage of The Controller 2020 is the ability to customize it for your personal use. This can be done in several ways, the easiest of which is to change the settings of the dipswitch on top of the circuit board. The switch has eight pins - their meaning is explained following Figure 9. To change the configuration remove power, flip open the enclosure lid, and set the pins as desired. This is most easily done using the blade of a small screwdriver. Figure 9 shows the tip of a screwdriver blade on pin eight.

The pins are numbered from left to right and this may be a little confusing at first since this is the reverse of normal numbers that have the smaller digit to the right. The picture shows the factory configuration - the way The Controller 2020 is shipped. Pins 1 & 2 set the behavior of Mode A as described below. Notice that pin 2 is 1 (ON) and pin 1 is 0 (OFF). Look at the description for "pin1 & pin2" below and make sure you understand the numbering. Again, pin 1 is on the left, pin 2 is on the right.

Note: The dipswitch settings are only read at power up. To change these settings disconnect the power, change the switch settings as desired, then re-apply power. Don't be touchin' The Controller 2020 board with power connected!
Dipswitch
Figure 9. The Controller 2020 Configuration Dipswitch
pin1 & pin2: Determine command processing for Mode A (factory default setting is bold)
00 - Control Accessory 1
10 - Control Engine 1 (Speed, Direction, Horn)
01 - Control Switches 1 & 2, Toggle Accessory 1
11 - Control Engine 1 Features (Bell, Couplers, Smoke, Dialog)
pin3 & pin4: Determine command processing for Mode B (factory default setting is bold)
00 - Control Engine 1 (Speed, Direction, Horn)
10 - Control Engine 2 (Speed, Direction, Horn)
01 - Control Engine 1 Features (Bell, Couplers, Smoke, Dialog)
11 - Control Switches 1 & 2, Toggle Accessory 1
pin5 & pin6: Determine command processing for Mode C (factory default setting is bold)
00 - Control Engine 1 (Speed, Direction, Horn)
10 - Control Engine 2 (Speed, Direction, Horn)
01 - Control Engine 1 Features (Bell, Couplers, Smoke, Dialog)
11 - Control Engine 2 Features (Bell, Couplers, Smoke, Dialog)
pin7: Controls Grandkids Operation (factory default setting is bold)
0 - Grandkids Operation OFF
1 - Grandkids Operation ON. Grandkids operation limits the top speed of Engines to about 60% of maximum to help prevent your little darlings from destroying your expensive train.
pin8: Enables/Disables an alternative interpretation of the pins (factory default setting is bold)
0 - Standard meaning
1 - Alternative interpretation. This "alternative interpretation" of the pins is described following.

Alternative Switch Interpretation

Setting pin 8 of the dipswitch to ON specifies an alternative operational/debuging/testing interpretation of pins 1-6. The meaning of pin 7 (Grandkids Operation) stays the same.
pin1 & pin2: Alternative Interpretation - Log Control
00 - No operation defined (NOOP). Recommended setting when using an operation specified by other pins (such as defining a new Soft Configuration).
10 - Ten seconds after powering up the Controller 2020 will print the internal log to the serial port as ASCII text. The serial cable must be disconnected from the Lionel SER2 and connected to the serial port of a PC or Mac running a terminal emulator program. Set the terminal emulator to 9600 BAUD, no parity. The log will be displayed on the terminal emulator. The 10 second delay is arbitrary - It just seemed like a good thing to do.
01 - Ten seconds after powering up the Controller 2020 will clear its internal log. I didn't want to do this immediately upon power up so I arbitrarily chose a 10 second delay.
11 - Reserved
pin3 & pin4: Alternative Interpretation - Configuration Control
00 - No operation defined (NOOP). Recommended setting when using a previously defined Soft Configuration.
10 - Ten seconds after powering up the Controller 2020 will print the current configuration to the serial port as ASCII text. The serial cable must be disconnected from the Lionel SER2 and connected to the serial port of a PC or Mac running a terminal emulator program. Set the terminal emulator to 9600 BAUD, no parity.
01 - Ten seconds after powering up the Controller 2020 will delete any Soft Configurations and restore the factory default configuration.
11 - Define Soft Configurations
pin5: (No Alternative Interpretation)
0 - No operation defined (NOOP). The recommended setting when using an operation specified by other pins.
1 - Reserved
pin6: Alternative Interpretation - Debugging
0 - Normal Operation. Debugging OFF.
1 - Turn debugging ON. Do NOT do this when the Controller 2020 is connected to a SER2.
pin7: Stays The Same
0 - Grandkids Operation OFF
1 - Grandkids Operation ON. This of course has no meaning when defining a new Soft Configuration or displaying the log or current configuration - so leave this pin OFF when in those circumstances.
pin8: Alternative Interpretation
0 - N/A (Alternative Interpretation not enabled)
1 - Use the Alternative Interpretation

Soft Configuration

Recall that the A, B, and C buttons on the IR remote represent three independent Modes - each of which is always configured to control some Lionel LCS device. When first power up the Controller 2020 activates mode B (it had to start in one of the three...) but a simple press of an A, B, or C IR remote key instantly changes the active Mode.

Some target device is always commanded in each Mode and when the Controller 2020 is powered up with pin8 OFF the "standard interpretation" of the dipswitch pins configures a predefined assignment of a device to each of the three Modes. This "standard interpretation" allows you to quickly and easily choose the targets you want to command from a small number of well defined options. By using Soft Configurations, however, you can truly customize your Controller 2020 in an almost unlimited number of ways. You can, for example, assign Mode A to Engine ID 33, Mode B to Switches 59 and 60, Mode C to the Features of Engine ID 7.

To define a Soft Configuration, set pins 3, 4, and pin 8 of the dipswitch to ON (1), all the other pins OFF (0), then power up the Controller 2020 and begin entering a Soft Configuration command. When pins 3, 4, and 8 are ON and the other pins are OFF the definition of a new Soft Configuration is enabled. The Controller 2020 is waiting for you to press P on the remote. Soft Configuration commands are of variable length but all begin by pressing the Power key on the remote. That is, set a new Soft Configuration by pressing P followed by the parameters x, y, z, z, z... where:
The first parameter entered, x, must be A, B, or C.

As previously mentioned, there are three modes: Mode A, Mode B, and Mode C. Pressing PA begins the process of setting the configuration of Mode A, pressing PB begins setting Mode B, and PC setting Mode C. Additional infrared button presses are expected to immediately follow. These will complete the new definition of the specified Mode.

Example:
PA: Says we are starting to define Mode A operation. More IR key presses are expected.
The next infrared remote key, y in the above sequence, continues the configuration of the Mode previously specified by the x key. This additional key selects the device to be controlled. Device choices are:
A: Says we want to configure an Accessory. Accessories initially have an ID of '1'.
B: Says we want to configure an Engine. Engines initially have an ID of '1'.
C: Says we want to configure a Switch. Soft Configuring a Switch starts with a base ID of '1' just like an Engine. However, when a Mode that controls a Switch is active the remote actually controls two Switches with sequential IDs plus one Accessory with an ID of '1'. More infrared keys are expected to complete this Soft Configuration but the Accessory controlled by the O key on the remote cannot be changed. The remote O key can only ever control the Accessory with ID '1'. The intention is to activate an uncoupler track connected to a Lionel ASC2 (6-81639).
O: Says we want to configure Engine Features. This also has an initial ID of '1'.
▲: Says to configure a Tie-Jector. Again, the initial ID is '1'.
▼: Says to configure a TMCC Speeder. Like you would expect, the initial ID is '1'.

Examples:
PAA: Says we want to define Mode A to control an Accessory. More infrared keys are expected.
PAB: Says we want to define Mode A to control an Engine. More infrared keys are expected.
PBC: Says we want to define Mode B to control a Switch (and also toggle Accessory 1 as shown in Figure 6). More infrared keys are expected.
The next infrared remote key, z in the above sequence, may be repeated and continues the configuration progress by setting the ID of the chosen device. This is done by entering combinations of one or more of the following four keys:
▲: Says to increment the device ID by one (1). IDs greater than 99 are not allowed.
▼: Says to decrement the device ID by one (1). IDs less than 1 are not allowed.
▶: Says to increment the device ID by five (5). IDs greater than 99 are not allowed.
◀: Says to decrement the device ID by five (5). IDs less than 1 are not allowed.
O: Says to increment the device ID by twenty (20). IDs greater than 99 are not allowed.

Examples:
PAB▲: Says we are configuring Mode A to control an Engine and to then increment the Engine LCS ID by 1. As noted previously, Engine's configured in this fashion start with an ID of 1. Hence this command has configured an Engine ID of 2. Since there is not yet a final P, more infrared keys are expected.
PAB▲▲▲: Says we are configuring Mode A to control an Engine and to then increment the Engine LCS ID by 3 to an ID of 4. Again, since there is not yet a final P, more infrared keys are expected.
PAB▶: Says we are configuring Mode A to control an Engine and to then increment the Engine LCS ID by 5 to 6. More infrared keys are expected.
PAC▶▲: Says we are configuring Mode A to control a Switch and to then increment the Switch LCS ID by 5+1 to 7. More infrared keys are expected.
PAC▲▶: Says we are configuring Mode A to control a Switch and to then increment the Switch LCS ID by 1+5 to 7 (note the reversed order). More infrared keys are expected.




PAAP: This command is complete and sets Mode A to control the Accessory with LCS ID 1
PAB▲▲▲P: This command is complete and sets Mode A to control the Engine with LCS ID 4
PCO▲▲▲P: This command is complete and sets Mode C to control the Features of the Engine with LCS ID 4




The following are wrong. They are examples of poorly formed Soft Configuration commands:
PBBB: This is wrong. The first three keys (PBB) are OK. Remember, the sequence of keys is Pxyz where z may be repeated. Here an x key of B says were are defining Mode B and the y key of B says we want an Engine but the z key must be some combination of ▲, ▼, ▶, ◀, or O.
POA: This is wrong because O is not a legal second, or x, key. The 'x' key, the second key, must be one of A, B, C.
A final 'P' says we are done - save the configuration.

Special Note: Soft Configuration commands are limited to 16 IR remote key presses. This means the following command, intended to set Mode A to an Engine with ID 16, is illegally long and will have unpredictable results.
PAB▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲P

To set Mode A to an Engine with ID 16 use instead one of the following commands.
PAB▶▶▶P
PAB◀OP
PABO◀P
PAB▶▶▲▲▲▲▲P

Soft Configuration Final Notes


Soft Configuration Confirmation

After you hit the Soft Configuration ending P the target device is briefly activated to confirm the entered Soft Configuration command was well formed and was accepted and saved. Specific device confirmation depends on the type of target (remember the target must be powered to be activated):

Soft Configuration Device Control Summary

Soft Configuration allows control of numerous Lionel Legacy or TMCC enabled products as summarized in the following figures.
Summary
Figure 10. IR Remote Engine Control Summary

Summary
Figure 11. IR Remote Accessory And Switch Control Summary


Debugging

CAB-1 and Lionel Legacy Commands (TMCC1 & TMCC2) are documented here. They are binary commands that the 990 Legacy Command Base modulates onto the outer rails of your track layout. The Controller 2020 normally uses a Lionel SER2 to inject these binary commands into your layout. Turning on debugging, however, tells the Controller 2020 to instead convert the binary commands into human readable hexadecimal ASCII text. In addition, internal Arduino program information is displayed such as state transitions and each IR remote key as it is pressed. This is just a little bit of geek paradise. You're welcome!

To Enable Debugging:
Debugging
Figure 12. Debugging With The Controller 2020

Debugging Fun

Remember, the Controller 2020 must NOT be connected to the Lionel SER2. Some things you may enjoy debugging include:

Terminal Emulator Programs

Figure-13 below shows a sample debugging session using Bray's terminal program (version 1.93b). A large number of terminal emulation programs can be used instead. The Internet is your friend. Do some research and pick one you like - of course being careful of the viruses, malware, and CIA mind control lurking on the Internet.

Both the Controller 2020 and the PC implement the DTE (Data Terminal Equipment) side of the RS-232 serial connection. This means you need a "Null Modem" adapter and a Female-Female gender changer to connect the Controller 2020 to your PC's serial port. Figure 12 above shows a Controller 2020/PC connection using a combination gender changing null modem adapter (and a USB-to-serial adapter).
DebuggingSample
Figure 13. Controller 2020 Sample Debugging Output

.







Controller 2020 Bugs And Other Problems

None reported.
Contact me here to make a report. .







Construction Projects

Construction Project 1: Automating Control of A Lionel Searchlight Car

The Electric RailRoad Company makes several command control receivers compatible with the Lionel Legacy system. The following describes installing the Electric RailRoad Company Mini Commander Acc in a Lionel 6-36863 Alien Security (Searchlight) Car. The Lionel 6-36863 is similar to other Lionel Searchlight cars.

I bought the Electric RailRoad Company Mini ACC Lionel "Hot Box" Car Kit which includes a wire harness, double sided mounting tape, and an install guide. The guide was mostly useless for the searchlight car but the Detailed Connection Guide was very helpful. The "Hot Box" wire harness and mounting tape were used in the installation.
Lionel 6-36863
Figure CP1.1. The disassembled Lionel 6-36863
Before we actually take the car apart we want to put the searchlight lens in a safe place so we don't drop it on the floor and step on it. It just lifts off to expose the lamp underneath. There is a rubber gasket with little bumps on top that sits on the lamp base (it is not attached). Small vibration of those little bumps is what makes the searchlight turn.

To disassemble the searchlight car, press the tab at the back of the car as shown in Figure CP1.2. The tab is mostly hidden below the deck of the car but if you look closely you can see it. While pressing the tab lift gently. This seems like a good time to mention that I offer no support on this project and I am certainly not responsible if you hurt yourself or break something - so be careful.

This also seems like a good time to mention that you should read and make sure you understand the programming instructions for the MiniCommander. The Electric RailRoad Company documentation does a decent job of explaining this so I won't duplicate their effort. This article is about installing the hardware in a car.

You will need:
Open It
Figure CP1.2. Opening the Lionel 6-36863
Begin by cutting the cable tie holding the wires. When we reassemble everything we will use heat shrink tubing to cover exposed wires. Notice on the following picture (the blue arrow) that the original assembly of this searchlight car left an electrical wire exposed beyond the end of the heat shrink tubing. Yeah, don't do that. Make sure the wires are completely covered to prevent electrical shorts.

A close look at the picture shows we have black wires, red wires, and black wires with a white stripe. Black wires come from the wheels on both the left and right and black wires with a white stipe come from the center rail roller on both sides. Notice that a red wire also comes from the left. That actually goes to the lamp. In the picture you can see it curl around from behind at the base of the lamp.
Begin
Figure CP1.3. Unbundling The Searchlight Wires
Find the switch that turns the searchlight on and off. It is to the left in all Figures in this construction article. When we're done, the switch will no longer be used (but there is no reason to remove it). The switch is electronically replaced by the MiniCommander.
Switch
Figure CP1.4. The Lionel Original 6-36863 On/Off Switch
There's a perfect open space to the right side of the car. Using the mounting tape from the "Hot Box" kit, stick the MiniCommander to the train chassis. Make sure to leave room to fit the top of the train back on the chassis. The connector side of the MiniCommander should be towards the center of the car. Your completed work should look like Figure CP1.6.
MiniCommander
Figure CP1.5. The Electric RailRoad Company MiniCommander
The "Hot Box" kit comes with two white connectors - one of these connectors has two wires and the other has one. For this application we want the connector with a single white wire. Set it within easy reach.

I'm not sure all Lionel searchlight cars use the same color wires so please reference Figures CP1.3 and CP1.6 for this discussion. In CP1.3 you see a red wire on the left side of the switch that goes to the little module shrouded in red heat shrink. Remove this wire from the switch. After removing it, cut off the old end of the wire that was soldered to the switch and strip it to give it a nice clean look. Twist it together with the end of the single white wire connector we set within easy reach above. Solder the wires and cover them with heat shrink tubing. A good view of this can be seen in Figure CP1.6 where the connector has been pressed into the second from bottom socket. This is the HC-1 socket on the MiniCommander. You will program the MiniCommander to control the searchlight with the HC-1 socket.

The MiniCommander needs power and you provide that by connecting wires to the green terminal block at the top left edge of the board as it is pictured in Figures CP1.5 and CP1.6.

The green terminal block has two screws. If you look carefully at the board, or the Detailed Connection Guide, you will see the screw closest to the top edge of the board is labeled HOT and the other is labeled GND. We will connect power to the terminal block using the wires included in the Hot Box kit. The Hot Box kit pictured on the Electric RailRoad Company web site shows white and black wires but mine came with red and black wires - whatever. It doesn't make any difference.

Solid black wires from the left and right wheels come together in a little bundle with a third black wire under some black heat shrink. Carefully remove that black heat shrink. You can follow the third black wire to the red heat shrink covered little module. Twist the Hot Box black wire together in the little bundle of the other three wires and solder it. You now have a bundle of four black wires - this is the car's ground circuit. Cover the exposed wires with some heat shrink. You can see the completed four wire bundle in the center of Figure CP1.6.

We're almost finished. Unsolder the wire from the center of the switch. If you follow this wire you will find it goes to the heat shrink bundle where the black wires with the white stripe come together. Cut off the old soldered end and strip the wire to give it a nice clean look like we did with the other wire we unsoldered from the switch. Twist this wire together with the red wire from the Hot Box kit. Solder it and cover it with heat shrink. Put the other end of the red wire in the HOT hole of the MiniCommander's green terminal block. Put the free end of the Hot Box kit black wire in the GND hole of the terminal block. We should be done, but before putting the top of the car back on, program and test your work on your Lionel Legacy System.

Put a cable tie or two on the wires to keep them out of the way - but make sure to leave enough slack in the wires for the wheels to turn.

Note: If your Hot Box kit came with black and white wires, replace the underlined word red above with "white".

Make sure everything clears - then snap the top of the car back in place and put the searchlight lens back on.

Enjoy your very cool remote controlled searchlight.
Complete
Figure CP1.6. MiniCommander installation complete

.







Construction Project 2: Assembling The Controller 2020 Kit


The Controller 2020 is available for purchase as a kit and this section describes how to assemble it.
TheKit
Figure CP2.1. The Controller 2020 Kit

Before starting, gather the following:
The Controller 2020 Kit contains (note that the brands and colors may vary): This is not an especially difficult kit to assemble, but it should probably not be the first time you do something like this. There is no "right" sequence to assembling the Controller 2020 kit but I found the following works.
  1. Peel the protective paper off the clear acrylic enclosure and assemble it. Do this before you warm up the soldering iron since peeling the paper off can be a challenge for those with uncooperative fingernails. The assembled enclosure should look like Figure CP2.2. Set it in front of you while you work on the circuit board so you can to imagine how cool your toy will be when you've completed it.
    Note: Only one enclosure comes with the Controller 2020 kit. For clarity Figure CP2.2 shows two enclosures - one from the end and another from the side - but you only get one enclosure.
    Also Note: Assemble the enclosure by first standing up the sides and pushing them together on the bottom. Insert the lid hinges in the holes in the sides. Make sure the tabs on the lid align with the sides as shown in Figure CP2.2. Loop the front panel, the one with the IR receiver window, over the catches at the top. Make sure you put the top on first - then (gently) compress the springy catches on the bottom, align the panel, and it should snap lightly in place. Repeat this process with the back panel - top first, compress springy things on the bottom, lightly snap in place. The acrylic is sturdy but it will break if you press too hard. NO PART OF THIS ASSEMBLY REQUIRES FORCE. If you find yourself pressing hard on something, put it down and walk away for a few minutes.
  2. Solder the strips of pins to the bottom of the board.
  3. Solder the ribbon cable to the bottom of the board. Doing this before anything is mounted on the top of the board allows it to lay flat while you struggle with the wires.
  4. Solder the dipswitch to the top of the Proto Shield.
  5. Solder to the top of the Proto Shield the EMI reduction caps and the wires that connect the infrared receiver and the RS232 connector boards.
  6. Attach the infrared receiver plastic mount to the Proto Shield with a full 1 inch square of mounting foam. This mounting foam is also partially applied over the previously soldered wires. It serves as a strain relief to hold the wires in place and prevent excessive flexing of them when you push their connectors onto the IR receiver and RS232 boards.
    Note: The factory assembled Controller 2020 solders the wires to the IR receiver so they don't shake off during shipping. In the comfort of your home you don't need to solder the connectors. Pushing them on is fine.
  7. Attach the infrared receiver to the top of the plastic mount with a piece of mounting foam.
  8. Remove the back panel from the assembled acrylic enclosure. Remember, this case is plastic - a sturdy plastic that looks very cool, but plastic. It will scratch and will break if you go gorilla on it. Attach the RS-232 connector to the back panel with the washers on the outside between the UNC Jack Post screws and the acrylic. Later, you will push the connectors of the 4 conductor ribbon cable onto the RS232 board pins. You need to bend the four pins outward to about 45 degrees so the connectors clear the Proto Shield when everything is assembled. You want to use a small pair of pliers to bend them at the top of the plastic, not at the circuit board. Bending them with your thumb at the circuit board may fracture the solder joint.
Enclosure
Figure CP2.2. The Acrylic Enclosure

There are two Proto Shields in Figure CP2.3, one of the boards shows its top side and the other shows the bottom.
Note: This is done for clarity - you only get one board in the kit. You do, however, get the entire 40 pin strip.
BareBoard
Figure CP2.3. The Bare Proto Shield With 40 Pin Strip

Detailed Instructions

As shown in Figure CP2.4, the provided 40 pin strip of pins must be cut into two 6 pin strips and two 8 pin strips. You can toss the remaining 12 pin strip in your junk box for a future project.

Solder the pins so they stick out of the bottom of the board. The pin numbers are printed on the top of the board. No pin numbers are visible on the side from which the pins project. You want the pins as perpendicular as possible - for final assembly you will align these pins and press them carefully into the provided motherboard. Do not press the pins into the motherboard and use that to hold them in place while you solder. The soldering heat may damage the motherboard connector.
ProtoShield
Figure CP2.4. The Proto Shield With Cut Pins

Look at Figure CP2.6 and Figure CP2.7 to make sure you solder the pins in the right place. When finished, strip and tin one end of the 8-conductor ribbon cable as shown in Figure CP2.5. There are no connectors on this ribbon cable.
PrepCable1
Figure CP2.5. Prepare The Ribbon Cable For Soldering

The Proto Shield pins are counted from zero and pin 0 is shown to the left in Figure CP2.6 below. The actual colors of the wires are not important and may vary from kit to kit. The ribbon cable in the picture shows the black wire connected to pin 2 and the orange wire connected to pin 10. The ribbon cable is not connected to pin 8

Cut the ribbon cable approximately in half. The kit provides enough cable for two tries at soldering in case something goes wrong the first time. We will solder the eight wires of the cable to the Arduino digital input/output (I/O) pins. Start with one edge of the ribbon cable and solder the first wire to pin 2 (counting from 0), the next to pin 3 and so on until pin 8. Skip over pin 8 and solder the seventh wire to pin 9 and the eighth to pin 10. Remember, the numbers are printed on the top of the board and the ribbon cable goes on the bottom. Your work should look like Figure CP2.6 when finished with the first end of the ribbon cable.
BottomOfBoard
Figure CP2.6. Bottom of The Circuit Board With Pins And Ribbon Cable

With one end of the ribbon cable installed, cut a small piece of the double-sided mounting foam and use it to hold the cable in place. This prevents flexing the solder joints while you work on the other end of the cable. Prepare the second side of the cable by carefully estimating the needed length and cutting it. If you cut it too short you'll have to unsolder the first side and try again. It can be hard to solder the cable the second time since solder may remain in the holes after you remove the old cable (experienced builders will have the tools to handle this but an experienced builder probably wouldn't have cut the cable too short).

Strip and tin the second end of the cable as shown in Figure CP2.7.
PrepCable1
Figure CP2.7. Prepare The Ribbon Cable - Again

After soldering the ribbon cable install the dipswitch on the top of the Proto Shield. Be careful to orient it as shown in Figure CP2.8.
Note: Very Important all 8 pins on the numbered side of the dipswitch must be in the pads used by the ribbon cable. This will leave two solder pads open as shown in Figure CP2.8.
Also note: Very Important the pins on the other side of the dipswitch must go in the trace labeled GND.

Technical Information: The Arduino digital pins connected to the dipswitch are configured as inputs with internal pull-ups. When a pin of the dipswitch is moved to the ON position it grounds the pull-up and the value read from the Arduino input pins changes from 1 to 0. This is how the configuration setting is read at power up.
BoardTop
Figure CP2.8. Top of The Circuit Board With The Switch Installed

With the Arduino pins, ribbon cable, and dipswitch in place it is now time to install the FCC capacitors and the wiring for the IR receiver and RS232 interface. All of this goes on the top of the Proto Shield with the dipswitch. I recommend the capacitors to reduce the FCC ElectroMagnetic Interference (EMI) of the Controller 2020. Although not FCC certified, smart people with expensive equipment did take a look at the Controller 2020. It was pretty clean but these caps made it even better. Solder the bigger cap near pin 1 of the dipswitch as show in Figure CP2.9. Be careful with the placement and make sure you get one leg of the cap in 5v and the other in GND. Solder the small one at the bottom of the parallel GND and 5v strips as also shown Figure CP2.9.
EMIReduction
Figure CP2.9. Install The EMI Reduction Caps

Two ribbon cables are included in this kit. You already used the one with 8 wires. There is also one with 4 wires and it has connectors on one end. We will use the 4 wire ribbon cable to connect the RS232 board to the Proto Shield. Finally, the kit has three wires (not ribbon) with connectors on one end. These are used to connect the IR receiver.

The three non-ribbon cable wires are different colors. The actual colors don't matter and may vary from kit to kit. Eventually, not yet, you will push the three connectors onto the three pins of the infrared receiver board. Look at the bottom of the little IR receiver circuit board and notice that one of the pins has a square eyelet. A square eyelet traditionally indicates pin one (1). Flip the little board over and notice that this pin 1 is labeled DATA (on some boards this is 'DAT'). Pin 2 next to it is labeled VCC and pin 3 is GND. Pick a color to use for pin 1 - let's say that is color-D. Now pick the color-V wire that goes to VCC and the color-G wire that goes to the GND pin. Obviously there are no such colors as color-D, color-V, and color-G. The point is the actual color doesn't matter. What's important is that the wires connect the correct IR receiver pins to the correct Proto Shield pins.

Look at your Proto Shield and Figures CP2.10 and CP2.14 and estimate the needed length of the three infrared receiver wires. For each wire cut the end of the wire opposite the connector appropriately, then strip and tin the end. Figure CP2.13 shows how the wires might be cut. Remember, it's better a wire be a little too long than it be too short. For example, as can be seen in Figures CP2.10 through CP2.14, the black IR receiver wire could be a little shorter but the extra length causes no problem.

Solder the color-D wire (blue in Figure CP2.10) to Proto Shield pin 8 - that's the one we skipped over when we soldered the first ribbon cable. Be careful not to melt any of the ribbon cable while working in the close quarters. Solder the color-V wire (white in Figure CP2.10) to a convenient 5v area on the Proto Shield and solder the color-G wire (black in Figure CP2.10) to a GND strip. When finished you work should look like Figure CP2.10 - of course your wires may be different colors.

Oh - you should have been observing proper anti-static precautions while handling these boards. I hope you were.

Now strip and tin the non-connector ends of the 4 conductor ribbon cable. Do not shorten this cable. We want it full length to reach across the board to the mounted RS232 connector. Pin 1 on the little RS232 board (also with a square eyelet) is labeled TX, pin 2 is RX, 3 is GND and 4 is VCC. Decide which edge of the ribbon cable you want to connect to pin one. We will call that wire color-T. The next wire on the ribbon is color-R and that goes to pin 2, then color-G goes to pin 3, and color-V on the other edge of the cable will be connected to RS232 pin 4. Solder the non-connector end of color-T to pin 1 of the Proto Shield and the color-R wire to pin 0 (yes, RS232 pin 1 to Proto Shield pin 0 and RS232 pin 2 to Proto Shield pin 1). Color-G goes to GND and color-V goes to 5v on the Proto Shield as shown in Figure CP2.10. Notice the positioning of the color-G (orange) wire that goes to the RS232 board. It has a little curve in it to clear the leg of the plastic IR receiver mount as shown in Figure CP2.11.
ConnectorWires
Figure CP2.10. Placement of The IR Receiver And RS232 Wires

We are finished soldering. You can turn off the soldering iron.

Attach the plastic mount for the IR receiver to the Proto Shield with a full one inch square of mounting foam as shown in Figure CP2.12. Notice that the mounting foam is back from the edge and even with the front of the circuit board pad labeled 5v and extends beyond the side of the plastic mount on top of the soldered wires. The bridge side of the plastic mount goes down on the Proto Shield. Exact placement of the plastic mount is important but not critical. You can be off a little and the Controller 2020 will still work. When well positioned the lens of the mounted infrared receiver will look through the small window in the front of the enclosure as shown in Figure CP2.21.
IR Mount1
Figure CP2.11. Wires Around And Under The IR Mount

Peal off the bottom of a 1" square of mounting foam and stick it to the board as shown - even with the front of the 5v pad and across the wires. You want the wires held in place so the plastic mount clears the wires and can touch the Proto Shield through the thickness of the mounting foam. You don't want the legs of the plastic mount sitting on top of a wire. One wire goes through the legs of the mount, one goes to the dipswitch side, and the others go to the other side. Leave the protective top sheet on the foam and squeeze the foam down onto the Proto Shield. Don't break anything but squeeze it pretty hard to really stick it to the board, holding the wires in place. Now remove the protective top sheet, align the plastic mount, and push down hard on the mount to make sure it gets stuck to the board. Don't break anything!
MountingFoam
Figure CP2.12. Placement of The Mounting Foam

Cut a piece of mounting foam the size of the top of the IR receiver plastic mount and stick it on top of the mount as shown in Figure CP2.13.
CutWires
Figure CP2.13. Ready To Mount The IR Receiver

Remove the protective top sheet from the foam, align the infrared receiver board, and push it upside down onto the mounting foam as shown in Figure CP2.14. The IR lens must face the edge of the Proto Shield and the pins must reach backward into the middle of the board.

Push the connectors onto the IR receiver board - color-D (blue in Figure CP2.14) to the DATA pin, color-V (white in the Figure) to the VCC pin, and color-G (black in the Figure) to the GND pin.
IRreceiver
Figure CP2.14. IR Receiver Attached To The Proto Shield

Using a small pair of pliers carefully bend the pins on the RS232 interface board outward to about 45 degrees. Be sure to bend them at the top of the plastic, not at the circuit board.

Attach the RS232 connector board to the enclosure using the 18mm UNC Jack Post screws and washers provided. The washers must be on the outside of the enclosure. The socket extension shown in Figure CP2.15 is for finger twirling convenience. The enclosure is a sturdy acrylic - but do not over tighten the screws.
MountRs232
Figure CP2.15. Mount The RS232 Connector To The Enclosure

To complete the Proto Shield set the default factory configuration on the dipswitch. That is, set pins 2 and 5 to ON and all others OFF.

You are almost ready for the final assembly - joining the completed Proto Shield to the motherboard. But before doing this, make a check of the lead length of the motherboard. If some are too long to comfortably fit in the acrylic enclosure they must be trimmed as shown in Figure CP2.16.
TrimLeads
Figure CP2.16. Check Lead Length On The Motherboard

Controller 2020 Final Assembly

Whether you built the kit or ordered an assembled Controller 2020, the final step is to press the Proto Shield onto the Arduino board. Well, almost the final step. The real final step is to put the circuit boards into the enclosure - but we'll get to that.

Have you been using proper anti-static precautions? Good. Keep it up.
Align the Proto Shield pins with the motherboard as shown in Figure CP2.17 and press gently and evenly around the board until all the pins are well seated.

Note: No pins connect to the final two motherboard socket holes for both rows of sockets. On one side you will have two strips of 8 pins connecting to pins 0 to 7 and pins 8 to 13 plus GND and AREF. On the other side you have two strips of 6 pins connecting to pins A5 to A0 and Vin to Reset.

This seems like a good time to mention the care you should take when, some day in the future, you decide to remove the Proto Shield from the motherboard. As you pull, it is very easy to have one side come lose causing the board to twist in you hand - breaking some pins and giving you a very cool row of bleeding puncture wounds. Yep, I've done it - so far not on this project. Anyway, to remove the Proto Shield work your way around and around the board lifting only a little at a time. Try to get the entire board to come free of the sockets at the same time.
AlignThePins
Figure CP2.17. Align The Proto Shield Pins With The Motherboard

Now you are truly ready for the final step - placing the circuit boards in the enclosure. Your work should look something like Figure CP2.18. Push the ribbon cable connectors onto the RS232 pins. Make sure to get the right wires on the pins.
MountingFoam
Figure CP2.18. Caption MountTheRs232_full

Now put the acrylic back panel back on the enclosure. Remember, hang the top on the catches, compress the bottom springy things, and gently snap together. Gently - we don't want to break anything now!
InTheEnclosure
Figure CP2.19. Put The Boards In The Enclosure

The back of your enclosure should look like Figure CP2.20.
Note: The motherboard in the kit may vary. This Figure CP2.20 shows one with a full size USB connector. Other versions of the motherboard will not have this.
MountingFoam
Figure CP2.20. Rear of The Enclosure After Assembly

The front of your enclosure should look like Figure CP2.21.
MountingFoam
Figure CP2.21. Front of The Enclosure After Assembly

Congratulations. You have completed the assembly of the Controller 2020. Go play with it!







Construction Project 3: Modifying A Serial Cable For The Controller 2020


The thick acrylic of the Controller 2020 enclosure allows it to be sturdy but prevents a normal serial cable from fully seating on the DB9 connector. The enclosure is beautiful, so we are going to let that alone and instead modify a serial cable to make it fit better.

I sell a cable (here) that works well but this is how to modify one from your junk box.
BeforeModification
Figure CP3.1. Cable Connector Poor Fit Before Modification

We must drill out the thumbscrew holes in the cable to allow the UNC Jack Post screws of the connector mounted on the acrylic to recess below the face of the cable.
BeforeModification
Figure CP3.2. End of The Cable Before Modification

The face of the connector is actually two pieces of metal. They are held together by a slight crimp in the metal at the screw holes. Remove the thumbscrews and drill out these holes to 5.5mm diameter and a depth of 5mm.

Very Important: Do not drill the holes beyond 5mm deep. If you drill too deeply you will destroy the threads moulded into the plastic that keep the cable mounting thumbscrews from falling out.

When the holes are drilled the crimp is removed and the faceplate comes off as shown in Figure CP3.3. For safety, put the cable in a vice to prevent the loose faceplate from spinning in your hand.

I found that drilling out the holes with a power drill grabs and warps the metal. The best way I found to do this is with a Dremel tool and a 5.5mm burr bit. The high speed of the Dremel prevents catching and bending the metal. Use a stop or brace to prevent drilling deeper than 5mm.

Interesting information: A #3 drill bit is 0.213", 5mm is 0.197", 5.5mm is 0.2165", and the clearance hole for an M5 screw is 0.201".
Step1
Figure CP3.3. Modify The Cable Connector Step 1

Drilling the holes leaves plastic and metal residue that blocks the thumbscrew holes and may pose a danger to electronics if it falls out on a circuit board. I clean out the residue with a #3 drill bit in a hand-held tool and a vacuum. I found a good way to open the thumbscrew holes is to push a 3d 1.25" finishing nail through from the back. Using a drill to reopen the thumbscrew holes tends to damage the threads in the plastic housing.

Glue the faceplate back on the connector and let it dry completely.
Step2
Figure CP3.4. Connector Modified To Allow Recessed Jacks

Reinsert the cable mounting thumbscrews with spacers as shown in Figure CP3.5. The spacers used have a length of 5mm and are made for M4 screws. They have an inside diameter of 4.1mm. Spacers are needed to hold the cable mounting thumbscrews in their new position so they can pull against the connector and hold it tight.
GoodFit
Figure CP3.5. The Modified Cable Fits Well