Large Scale Central

Spy photos

With the rainy long weekend keeping me from rebuilding the RR, I had some time to make some progress on my various electronic projects. This one is a wireless throttle for DCC++ (and the EX flavor) based on the work of Dave Bodnar. It uses a TFT color screen, Arduino Mega, 4x4 keypad, and (currenyly) an HC12 wireless module. It talks directly to the DCC++ command station. Basic functionality works (speed, direction, emergency stop, f1-f8 keys) and can change the id of the locomotive being controlled. Lots of functionality to add, and I need to design and print a handheld case for it, but it works like it should.

That’s pretty cool.

So, what other functionality do you need to add?

Bruce Chandler said:

That’s pretty cool.

So, what other functionality do you need to add?

The big one, is I need to be able to have the function keys either be latching or not. i.e. “one click turns bell on, another turns bell off” but also “horn button is push-and-release”. That will involve some kind of menu system and config screens.

Well, that makes sense!

Looking good Bob. The advantage of rolling your own is that you get exactly what you want and don’t have to worry about the supplier being there when you need them.

I’m glad I was able to find an off-the -shelf system that does most of what I want because I’m just too slow building stuff!

Bob McCown said:

With the rainy long weekend keeping me from rebuilding the RR, I had some time to make some progress on my various electronic projects. This one is a wireless throttle for DCC++ (and the EX flavor) based on the work of Dave Bodnar. It uses a TFT color screen, Arduino Mega, 4x4 keypad, and (currenyly) an HC12 wireless module. It talks directly to the DCC++ command station. Basic functionality works (speed, direction, emergency stop, f1-f8 keys) and can change the id of the locomotive being controlled. Lots of functionality to add, and I need to design and print a handheld case for it, but it works like it should.

What does the 0050 indicate?

Locomotive ID. You hit the # key, then type in a 4 digit locomotive ID and then you’re controlling that one. I want to have it able to save two or three locomotives in memory, but its really easy to switch between them, so Im not sure its needed.

Bob McCown said:

Locomotive ID. You hit the # key, then type in a 4 digit locomotive ID and then you’re controlling that one. I want to have it able to save two or three locomotives in memory, but its really easy to switch between them, so Im not sure its needed.

I think that is a nice feature,but not sure how much it is really needed. Does it have to “link” with the loco?

Bruce Chandler said:

Bob McCown said:

Locomotive ID. You hit the # key, then type in a 4 digit locomotive ID and then you’re controlling that one. I want to have it able to save two or three locomotives in memory, but its really easy to switch between them, so Im not sure its needed.

I think that is a nice feature,but not sure how much it is really needed. Does it have to “link” with the loco?

Not in the same way that, say, the Revolution links. For DCC, the receiver (called a decoder) contains a programmable ID. When setting up the decoder (sounds, lights, etc), you set that ID. I (and most everybody else) uses the locomotive number for the ID. Then I can just set the controller for “locomotive 50” and it is now sending commands for locomotive 50. There is no direct connection between the controller and locomotive, but the controller is sending commands for “locomotive 50” (actually device 50, but that’s another project) and the decoder is listening to all the commands, and performing the ones for “locomotive 50”.

Bob McCown said:

I think that is a nice feature, but not sure how much it is really needed. Does it have to “link” with the loco?

Not in the same way that, say, the Revolution links. For DCC, the receiver (called a decoder) contains a programmable ID. When setting up the decoder (sounds, lights, etc), you set that ID. I (and most everybody else) uses the locomotive number for the ID. Then I can just set the controller for “locomotive 50” and it is now sending commands for locomotive 50. There is no direct connection between the controller and locomotive, but the controller is sending commands for “locomotive 50” (actually device 50, but that’s another project) and the decoder is listening to all the commands, and performing the ones for “locomotive 50”.

THANKS!

Bob McCown said:

Bruce Chandler said:

Bob McCown said:

Locomotive ID. You hit the # key, then type in a 4 digit locomotive ID and then you’re controlling that one. I want to have it able to save two or three locomotives in memory, but its really easy to switch between them, so Im not sure its needed.

I think that is a nice feature,but not sure how much it is really needed. Does it have to “link” with the loco?

Not in the same way that, say, the Revolution links. For DCC, the receiver (called a decoder) contains a programmable ID. When setting up the decoder (sounds, lights, etc), you set that ID. I (and most everybody else) uses the locomotive number for the ID. Then I can just set the controller for “locomotive 50” and it is now sending commands for locomotive 50. There is no direct connection between the controller and locomotive, but the controller is sending commands for “locomotive 50” (actually device 50, but that’s another project) and the decoder is listening to all the commands, and performing the ones for “locomotive 50”.

That sure sounds better to me. Of course the Revolution always seemed backward to me by keeping all of the parameters in the transmitter (no wonder it needs to link all the time!)

I’m undoubtedly simplifying things, but that’s my general understanding of how the protocol works. It definitely simplifies things. To see the DCC++ commands, you can look at this page.

https://dcc-ex.com/reference/software/command-reference.html

Basically, DCC++ is an open-source DCC system that speaks NMRA approved DCC commands.

Bruce Chandler said:

That sure sounds better to me. Of course the Revolution always seemed backward to me by keeping all of the parameters in the transmitter (no wonder it needs to link all the time!)

That’s one of the things I like about RailPro. All of the data is stored in the locomotive. Any controller that knows the locomotive’s optional password can find and control any locomotive. The controller reads how the screen should appear from the locomotive, then displays it for use with a simple Find button.

Started prototyping out the case for the handheld throttle. Here’s my 2nd attempt, with a Revo controller for size comparison. It needs to be slightly wider, but its pretty close to the final size.