First, equipment. You'll need the ESU manufactured replacement light board (KATO147456) which will remove the Kato light board in both control cars. You'll need a NEM 651 decoder with a wire harness for the motor car. I used the ESU 52684 LokPilot DCC MICRO V3.0 6-pin NEM651 interface with wire harness. I'll also mention that I think any NEM651 decoder with a wire harness would probably work, but I like ESU or Lenz . I've shortened my list of decoders that I like now that I have some experience with them, and these two brands have never let me down.
The reason for the wire harness should be apparant in the below photo. On the interior of the motor car you'll see a grey molded plastic piece that is actually where the pantograph is mounted. As this grey piece is recessed, its virtually impossible to get a standard NEM 651 decoder installed here and still be able to close the shell onto the frame!
The situation for the non-motor motor car (or 'dummy' I guess) is the same....you're going to need another NEM 651 decoder with a wire harness. Either out of ignorance, impatience, and some fiscal irresponsibility, I used another ESU 52684 for the non-motor car, even though its clearly overkill as a cheaper function decoder will suffice (I assume someone makes a function only NEM 651 decoder with a wire harness?).
Programming Decoders without Motors (e.g. the 'decoder' for the motor car without the motor). UPDATE- Be sure to read the comments below! This is not entirely complete or accurate! Here's something I had to learn the hard way. Apparently most decoders and most DCC systems require that the decoder requires some sort of load in order for the decoder to be read. Did you understand that? I don't. What it means for us non-scientists is that you need to connect the decoder to a motor, not just a light board, in order to program it. Don't fear, however, as the solution is simple. Just program your decoder for the 'dummy car' in the 'motor car', remove it, and then place in its appropriate dummy car! See!? This DCC stuff is easy! You could also program both locomotives on the same programming track with the same info, then remove the dummy car so that just the motor car is left on the programming track and correct your 'light' CV's so they are correctly set. I think that works too.
Problem Putting it Back Together:
The wire harness may create something of a problem however. If you don't get the wires folded just right, it tends to exert pressure on the lightboard, which causes the light board to lift slightly and results in some contact problems between the light board and the copper strips where the current contacts the decoder. I initially had some small, foam spacers that put a small amount of pressure on the light board (they are placed between the light board and the interior ceiling of the locomotive) although this made the shell not quite snap tight onto the frame all the time. Lately, I've been able to remove the spacers as the wires and everything seems to have settled and contact has been good.
Another thought. Perhaps its my model, perhaps I damaged it, but the shell just does not sit tightly on the body/frame for either of the motor cars. The tabs don't seem to exert enough pressure to create a tight fit as is typical. Not a big deal, but sort of annoying.
I think that about covers that actual decoder install. There should be no soldering or anything more complicated than that. It really should be easy, there's just a few things that can feel tremendously frustrating when you run into them!
My good friend Don (make sure you check out his site!) adds the following really useful information in the comments that deserves to be added to the original body of this post. If my comment on programming decoders without a load was confusing and/or incorrect, Don clears it up! Thanks Don!
Does anyone make function only NEM651-interfaced decoders? If so, I'd be interested to know.
You can program a decoder even without a sufficient load on it. I.e., there's no need for the decoder juggling just to get the "function" (as it were ;) ) decoder programmed. Your programmer will complain, but ignore this complaining. All the programmer is missing out on is the "OK!" the decoder sends back after programming a CV. The juggling is necessary if you want to confirm your programming by reading CVs back, however.
Here's how it works. First: The decoder only talks back when, 1) you program a CV into it. In this case all it says is "OK!" The lack of a response is a "D'oh!" which is why your programmer will freak out. Really, though, it doesn't really matter if your programmer can hear the decoder talk back or not. What's important is that the CV got sent. Second: When you explicitly ask for the value of a CV.
How does the decoder talk back? Why does it require a load? Think about how the decoder is connected to the programmer: Only through the track. The programmer talks by modulating (FM) the voltage on the rails. The decoder can't respond in kind, because it's not connected to a power source (think about it for a second). So it responds in a different way, not by putting a modulated signal on the voltage, but by turning on the lights and motor for a second. Why does that work? Because turning on, say, a motor is the only way the decoder has of drawing current from the programmer. That's what a load is: something that draws current. In the programmer is an ammeter that detects when current is being drawn. It knows that, if after sending a command, current is drawn, then that's an "OK!", and if no current gets drawn, that's a "D'oh!" But you have to draw some minimum amount of current before that threshold for detecting a "D'oh!" to detecting an "OK!" is crossed. A motor will draw enough current, a bulb will draw enough current, but even several LEDs will not draw enough current. Which is why you have to put your function deocoder in the motorized carriage to get anything back. Reading back CVs works in an analogous manner, but I'm unsure of the details.