DCC++ Hardware - Throttles

KE4NYV Jan 25, 2016

  1. KE4NYV

    KE4NYV TrainBoard Member

    219
    281
    17
    I have a preliminary throttle design started based on the DCC++ protocol, as well as an RS485 cab bus.
     
    Scott Eric Catalano likes this.
  2. Jean-Eric

    Jean-Eric TrainBoard Member

    25
    24
    6
    Can you share it?
     
    Scott Eric Catalano likes this.
  3. KE4NYV

    KE4NYV TrainBoard Member

    219
    281
    17
    This is a design concept mock-up:

    [​IMG]
     
    Scott Eric Catalano likes this.
  4. Pepijn

    Pepijn TrainBoard Member

    18
    23
    4
    Are you using prebuild rs485 modules or designing your own interface?
    I'm trying to hook up one of the earlier mentioned RS485 modules to an Arduino but running into some difficulties.
    The idea is to connect a Multimaus throttle (using the Xpressnet protocol) and use that to control DCC++.
    I can exchange basic commands with the multimaus, but longer commands fail because there apparently is a constant stream of zeros coming from the serial interface that is hooked up to the RS485 module.
     
    Scott Eric Catalano likes this.
  5. KE4NYV

    KE4NYV TrainBoard Member

    219
    281
    17
    No, I am looking at a Texas Instruments part that will be integrated right onto the throttle PCB. Interfaced to the outside world through an RJ45 connector (NOT ETHERNET). Standard CAT5 jumper cables can be used for the connection to the buss network.
     
    KC Smith and Scott Eric Catalano like this.
  6. Pepijn

    Pepijn TrainBoard Member

    18
    23
    4
    I finally managed to reliably hook up the RS485 module. It is all very slow going, as I'm new to Arduino, C++ and Rs485.
    However, I was able to connect a Roco Multimaus throttle using the library from Philipp Gahtow, which I addedd to DCC++.
    I tied a few XpressNet functions to DCC++ as a proof of concept and was able to switch track power on and off, toggle cab functions and drive a train.
    This would basically allow all XpressNet 3.x devices to operate a DCC++ basestation.

    However, as the number of XpressNet commands increased turning the speed knob, a number of commands were lost. Without having investigated further I suspect that having to deal with the DCC signal and XpressNet queries demands too much from the Arduino. It should basically be querying an XpressNet device every 80 microseconds I think. I will have to see if there is room for optimization. Perhaps the XpressNet server is better of on a seperate Arduino, which could be connected using the "master/slave protocol" that Gregg is working on.
     
    Scott Eric Catalano likes this.
  7. tz3p9v

    tz3p9v TrainBoard Member

    12
    18
    14
    If you are using the serial monitor (defaults to 115200), you may also want to reduce the speed at which this is operating (to 19200 ?) ... this may give back some "horsepower" to the processor.
     
    Pepijn and Scott Eric Catalano like this.
  8. David Bodnar

    David Bodnar TrainBoard Member

    264
    481
    11
    I have been doing some throttle experiments over the last few days and have a working prototype of a Wireless Talking DCC++ Throttle.

    Wireless is via an Infrared TV Remote Control

    Talking refers to its ability to confirm commands verbally, a functionality that I find very efficient as you don't have to look at the unit's LCD screen to see what is going on.

    I have notes on the unit on my web page here:
    http://trainelectronics.com/DCC_Arduino/DCC++/IRThrottle/

    and a YouTube video demonstration here:


    Please let me know what you think!

    dave
     
    zephyr9900, papahnash, chi.sp and 4 others like this.
  9. UK Steve

    UK Steve TrainBoard Member

    453
    683
    12
    That's really cool Dave

    Well Done.
     
    HVT and Scott Eric Catalano like this.
  10. Scott Eric Catalano

    Scott Eric Catalano TrainBoard Member

    205
    57
    6
    Move over TCS WoW Sound David is on his way =-) well done!
     
    HVT likes this.
  11. KC Smith

    KC Smith TrainBoard Member

    91
    92
    8

    Too Fun...
    Dave's a man on a Mission.

    Don't forget the button for the automated announcements of the upcoming passenger station stops.

    Awesome project Dave! Well Done!

    Kevin
     
    Scott Eric Catalano and HVT like this.
  12. DJ79

    DJ79 TrainBoard Member

    36
    25
    10
    This sounds like HAL from 2001... Dave? What are you doing, Dave?
     
  13. David Bodnar

    David Bodnar TrainBoard Member

    264
    481
    11
    When I started working with the MP3 units I did use my own voice and rapidly grew tired of hearing it! I found that the Text to Speech capability of Windows gave a much more interesting flavor to the voice reports.

    dave

    texttospeech.jpg
     
  14. mayhaw9999

    mayhaw9999 TrainBoard Member

    27
    28
    5
    Dave,
    You continue to amaze me. (As do so many other of you working on Gregg's "invention"). Outstanding contribution!

    David U
     
    Scott Eric Catalano likes this.
  15. esfeld

    esfeld TrainBoard Member

    413
    370
    13
    Dave ..... fantastic! .... since I have a working infrared throttle based on your original design, would you consider giving some instruction on updating it to this system or do I have to construct a new throttle from scratch?
    Steve
     
    Scott Eric Catalano and KC Smith like this.
  16. David Bodnar

    David Bodnar TrainBoard Member

    264
    481
    11
    Steve - I would recommend building up the new IR throttle from scratch - if you would like to simplify the task a bit I do have a number of the circuit boards that I used for my prototype - drop me an email (dave@davebodnar.com) if you would like me to send you one.
    I plan on spending more time on the web page soon to update things like a parts list and more specific instructions for modifying the board.
    dave
     
    Scott Eric Catalano and KC Smith like this.
  17. KC Smith

    KC Smith TrainBoard Member

    91
    92
    8
    Jason

    I was wondering about the RS485 pinouts.[​IMG]

    Could we arrange the pinouts so that it was closer to two of the most common DCC wired throttles
    so that as we create Universal Bus RJ45, RJ12 input Board interfaces the wiring to the back board RJ485 bus would be more intuitive?

    Two examples I was thinking of are;
    XpressNet pinouts
    http://www.opendcc.de/info/xpressnet/xpressnet_e.html
    XpressnNet uses pin 3 RS485B and pin 4 RS485A

    Loconet pinouts
    http://www.trainweb.org/nrmrc/dcc/loconetandloconetcables.pdf
    XLocoNet uses pin 3 and pin 4 for data also

    Both use pin 2 for GND and Pin 1 and Pin 6 for Track Signal.

    I don't have either of them but they seem to be most prolific.

    I don't mean to make your job any harder believe me, just thinking for down the road.

    Thanks,
    Kevin

    P.S. By using pins 1-6 we could even use Very inexpensive Surplus RJ45 Cat 3 and Cat 5 cables for the throttles. Cat 5E & Cat 6 use eight wires.
     
    Last edited: Feb 1, 2016
    Scott Eric Catalano likes this.
  18. KE4NYV

    KE4NYV TrainBoard Member

    219
    281
    17
    Yeah, I have no problem with switching up pins. Nothing is set in stone at this point. I just looked at the pinouts and I think there is some confusion because I am spec'ing out an RJ45, which is eight contacts, where the others use RJ12, which is six contacts. No big deal, we just have to remember that RJ12 pin #1 is actually RJ45 pin #2 and so on. We can match these as close as possible. If you notice Loconet has it's signal on RJ12 pins #3 and #4. Since these are the center two contacts, we can match that by using contacts #4 and #5 of the RJ45 and maintain the center two contacts. That's the one nice thing about RJ modular connectors, they always self-center on the tang, adding contacts in pairs, moving outward. RJ11 has four contacts, RJ12 has six and RJ45 has eight.

    No problem here! :)
     
    KC Smith and Scott Eric Catalano like this.
  19. David Bodnar

    David Bodnar TrainBoard Member

    264
    481
    11
    I have spent the last few days working on the Talking DCC++ Throttle. I spent much of the time modifying the software so that it can directly control two different DCC locomotives - since the variables are in an array this could easily be change to 3 or 4 or more locomotives.

    In addition I have added a point to point controller that can be used with a trolley or small engine. A pair or reed switches are used to sense the train's nearing the end of the line and signal the controller to stop, pause and reverse. I plan on experimenting with some other sensors.

    I put together a short video and have notes on the build on my web page here:
    http://trainelectronics.com/DCC_Arduino/DCC++/IRThrottle/

    As always, I encourage you to share your thoughts and suggestions.

    dave

     
  20. mikegillow

    mikegillow TrainBoard Member

    118
    117
    13
    One "Up Vote" for using the common pinout. Tony's Train Exchange has a "universal throttle panel" that I would be inclined to use on my layout for wired throttles if they were compatible. That way I could swap out DCC++ for another system if conditions required, such as hosting an Ops session for some of my club members (we use NCE at the club and most of the guys have their own throttles).
     
    Scott Eric Catalano and KC Smith like this.

Share This Page