Thursday, August 29, 2019

DIY Simple DCC Command Station for less than 20€

In our last exhibition we missed to have an independent command station to read and write CV. Normally we are managing trains in automatic mode, so command station and Rocrail are busy managing trains and we cannot stop if we need to program a new locomotive or read its data if we don't know the locomotive number it has.

So we decided to make a new module with two independent tracks and an independent command station so we can read, program and test locomotives. This module will be in the operator's side, connected to the "T" module that we use to enter or extract compositions to the main tracks.

We took profit of the fantastic DCC++ project, and just changed it to add a display, keypad and slider so we don't need the PC to perform any of the above operations before running a train in the main layout.


Disclaimer


Before continue reading, please consider the following typical disclaimer for DIY projects that applies to all this blog:

DIY projects are purely “at your own risk”. As with any DIY project, unfamiliarity with the tools and process can be dangerous. Posts should be construed as theoretical advice only. I’m not a professional, but only a hobbiest passing on ideas and tips to other hobbiests. Information and techniques I show here can change, and there can be mistakes in the information I publish, so I’m not responsible if that happens. Please consider my instructions as a guide only.


Shopping List


Arduino MEGA 2560 R3, 5€

L298 Motor Shield, 5€


4x5 matrix Keypad, 1€


Slide Pot, or linear potentiometer, 1€
We chose a linear potentiometer, but it can be a regular button potentiometer or any other kind.


20x4 LCD display with I2C controller, 6€


A bunch of DUPONT cables for the connections, 1€


Two power sources, one for Arduiono and an independent one for the motor shield. We recomend a 16Vdc 3Amp power source for the motor shild, as we found with less voltage some decoders do not respond to CV commands, or sound decoders do not work properly.

Connection


Please check first my previous post about how to mount the original DCC++ command station here (http://www.clubncaldes.com/2016/02/build-your-own-dcc-command-station-for-8.html). Motor shield needs some preparation (cutting a pad and making a bridge between pins 2 and 13).

After that you can connect the new elements (keypad, display and slider pot) as shown in the following scheme. Take into account that the keypad of the scheme is not the correct one (we are using the 4x5 keypad, see photo above these lines), but I couldn't find the Fritzing object for the right keypad:




  • Display needs 5V, GND and two wires to SDA and SCL pins of Arduino (pins 20 and 21)
  • Potentiometer needs 5V and GND in the same way, and the signal is connected to A8
  • Keypad is connected using 9 pins (from 22 to 30)
  • You will need one power source for Arduino, and an independent 16Vdc power source for the motor shield

Program


You will find always the latest version of the program to upload to the Arduino in the following link, were you can freely download from ClubNCaldes github repository and upload it to the Arduino Mega board:




How it works


I tried to make it as much intuitive as possible, but this are the main keys:

"*" ON, tracks are feeded with current
"#" OFF, no current to tracks
"F1" RUN MODE, this is the mode to run and test trains
"F2" PROG MODE, this is the mode to read and write CV in the programming track

In RUN MODE the left and right arrow are used to set the direction of travel, while the numbers activate or deactivate the functions. Speed is controlled with the slide pot.

In PROG MODE you can see a little help in the last line of the display which tells you the meaning of each CV entered (just for the standard ones like address number, acceleration, break, config...)


I hope you enjoy this simple but useful DCC command station for you own projects.


Thursday, August 22, 2019

Kato D51 2016-9 DCC with sound

I don't know if Kato planned this model to be easy to convert to DCC, but it seems so. I converted several D51, but this is the easiest one and has a lot of space to add sound also.



The weights in the tender are not occupying all the space and you can add a SD10A decoder and a small speaker from D&H. I purchased them in www.decoders.es



If using SD10A decoder, first you need to solder some small cables to the SUSI pads to connect it to the D&H programmer. I couldn't find a specific D51 sound project, but some steam projects have similar sound to the original one as I could check looking for videos in Youtube.

This custom board you see between the decoder and the programmer is just to help with the connection and testing of the sound decoders. I made it to be able to connect the sound decoders with screw terminals, and it has also a speaker. I think the design of the D&H programmer is awful when referring to the connection, programming and testing of sound decoders. It is missing screw terminals and a test speaker. It's not a cheap device and connection of decoders is horrible so better make a small helper board like this one.



Once the sound is programmed, we can come back to the decoder installation. Here you can see were to solder the current wires, red and black ones:



In the following photos you can see how it fits in the tender. Remember to isolate the decoder with Kapton tape and pass motor wires (orange and gray) throw the existing hole like in the photos:





Finally, cut the motor wires (or remove the cooper plates used by the motor to pick up the current) and solder them to the orange and gray cables of the decoder. Ready to test:



I found using this decoder that the locomotive was not running smoothly, it was instead advancing in fits and starts. This was fixed changing CV56 (Motor proportional controller) to value 0. 




This CV has something to do with what Doehler & Haass calls "Super Soft Drive". It seems a kind of motor auto regulation, doing some pauses between current pulses to the motor and measuring it in order to adjust the pulse width (or something like that....). But the fact is that it drove me crazy until I could find a clue about it and deactivate it.