DCC++ /DCC-EX District/Reverse controller.

Paul1361 Mar 8, 2020

  1. Paul1361

    Paul1361 TrainBoard Member

    41
    6
    2
    Hey guys, as I have been working on my own layout and delving into DCC++ and I had an idea......

    Since we have access to the logic level DCC signal why not do districting and auto reverse using separate motor shields. I have thrown together a crude diagram below. The base station main motor shield would become a current meter and circuit breaker with the DCC (motor shield direction) line being passed to several shields, each being a district or reverse loop. A separate controller would read the current sense and set the enable lines of each shield. There would also be added a "Polarity Control" line that using a XOR gate would be able to invert the DCC signal line in effect reversing polarity of the output of the motor shield. The main enable line from the Base Station is passed thru to the District Controller to shut down all Districts. A I2C bus is used to pass district status and district programming parameters. Each district would have parameters for function (Normal or Reverse Loop), max current, and other parameters. Each district would need 2 GPO lines and 1 analog, so a uno could do up to 6 districts while a mega 2560 could handle up to 16. Since cross communication would be done using I2C multiple district controllers could be daisy chained in the case of a large club layout scenario.

    Using this method should reduce overall costs and allow for better control as individual district data (load/polarity) could be feed back from the base controller directly to a throttle using Atani's ESP32 based base station. When you consider the cost of ARCs and Circuit Breakers this becomes even more attractive since even 43A IBT-2 motor shields can be gotten for $10-12 off amazon. Also this would do away with the need for multiple boosters in the case of a large layout. Drawing1.jpg

    I think this is a sound concept, but would like feedback from the experts before perusing.
     
    Last edited: Mar 8, 2020
    tnt23 likes this.
  2. crusader27529

    crusader27529 TrainBoard Member

    247
    167
    11
    Yes, that works just fine, as I've already implemented that exact function. I use RS485 to transmit the DCC & an Enable signal to remote IBT-2 motor drivers by way of a remote Arduino that monitors current. Since the remote Arduinos need to know what an over current is, I designed it to be programmable, to control the maximum current in each POWER DISTRICT. Since it knows what a real over current it on a distric level, it can also just invert the DCC signals to act as a reverse loop controller. Just make sure there aren't 2 reversers adjacent to each other, as they'll 'fight' each other as the boundary is shorted if the polarity needs to be reversed.......
     
  3. Paul1361

    Paul1361 TrainBoard Member

    41
    6
    2
    RS485, now there is a protocol I haven't heard in quite a while, I remember using it to network PCs before 10BaseT came out.....
     

Share This Page