Atlas Turntable - Custom DCC Controller

Affiliate Disclosure: We may receive a commision from some of the links and ads shown on this website (Learn More Here)

#1
Those of you who are familiar with the Atlas HO Turntable know it's pretty much impossible to find a ready-made solution to add DCC indexing capability. It doesn't support an easy way to add indexing like the more expensive Walthers turntables. But for me, an Atlas turntable was ideal because of its size, so I went with it. However, I wanted DCC indexing functionality, so using an Arduino with a hall effect sensor as a tachometer (installed inside the gearbox) I built a custom DCC control system for the turntable.

It's not totally done yet, because I still have to program the interface to my layout PC (which runs JMRI), but that will be fairly straightforward.

I can post more details if you guys are interested; let me know what you think! I included a short demo video with a little bit of explanation.

[video=youtube;-zNWIkmaTNo]https://www.youtube.com/watch?v=-zNWIkmaTNo[/video]

You can also read more about it in this post on my blog, and you can view/download/contribute to the code on GitHub.
 
Last edited by a moderator:
#3
I added a piezo buzzer (if you don't know what that is, it's a very crude speaker that sounds like an old 8-bit video game) for some audible feedback. The Arduino makes a noise when it's ready to go, and if you trigger the special "go back to the home position and get ready to shut off" function it beeps, does it, and then beeps again to signal that it's safe to cut the power. I'll do a demo next week sometime. I also added two buttons to help align it/calibrate it if it forgets where it is or suffers from a power failure. Eventually I plan to consolidate this to one schematic and release the code and schematic as open-source. Next week I'm going to start on the computer interface with ArduinoCMRI!
 
#4
Hi,

Sorry for resurrecting this old post.
How did you solve the layout editor only working if the turnout state is Closed?

I have a CMRI Arduino with the code for a turntable.
I setup the turnouts on JMRI turnout table and in the layout editor
When I use the turnout table everything works, every time, it doesn't matter if the turnout state is closed or thrown.
When I'm in the layout editor it only works if the turnout state is Closed...
I already read the manual over and over at some point they refer to "...To set the turntable to the desired position, simply click on the ray that you wish the turntable to be aligned with...." And that's true, but only if the state is Closed, if it is Thrown it does nothing, there is no activity on the CMRI Monitor.
if you want I can send you the code and a small video demonstrating the problem.
Appreciate any help you can provide.
Miguel
 
#5
I am away from my layout right now, but I'm pretty sure what I did was create a monitoring system for the turnouts using JMRI sensors. The ArduinoCMRI library has support for input bits as well as output bits, so I'm thinking I have my Arduino keeping track of where the turntable is and setting the input bits accordingly. Those input bits are bound to the turnouts in JMRI so everything updates and behaves. So what happens is you click a ray on the turntable, it throws that turnout, your Arduino moves the turntable, then it sets all turnouts except the one for the current position to CLOSED using the input bits. JMRI catches this information and stores it in the turnout table, and then all the rays on the turntable go back to CLOSED and everything works as expected. This also gives you position monitoring support in the panel even if you change the turntable from outside JMRI.

Now like I said, I'm away from the layout so I can't absolutely confirm that, but I'm pretty sure that's how mine works. If that seems inaccurate I can double check myself when I get back. Hope it helps, let me know how it goes!
 
#6
Hi,

Thanks for the reply.

I end up doing something like that. For testing purposes I created one single sensor. The Arduino sends a signal to that sensor which send a close command to all the turnouts. The way you did it is better but this was only to see if I could resolve the issue, and it did.

Thanks again.

btw I like your work very much. I needed a final kick to start my Arduino CMRI experience, and it was your work that push me :)
 
#7
I'm glad I could help out! Arduino is a very interesting way to add things to a model railroad and with the open nature of JMRI the possibilities are pretty much only limited by your patience. I'd love to see pics/video of your turntable now that you've got it polished up and finished.

Also, this is a little off topic, but if you're interested in software would you mind giving my software ZephyrCab a go? If you've seen Bruce Kingsley's Ultimate Throttle, it's analogous to that, but purely software. It's a web app you can use from a PC or a tablet that gives you realistic controls (notched throttle, air brakes, etc) with a physics engine to make the models handle exactly like their real life counterparts. It's free and open source, and I need some folks to test it out so I can figure out what I need to improve. I'd really appreciate any comments you have!

Demo Video (skip to 7:41 for the good part):


https://www.youtube.com/watch?v=GrTLCuW7GQw&t=461s

GitHub Page: https://github.com/k4kfh/ZephyrCab/

All you need is JMRI, no special hardware required. Let me know if you want some help setting it up.
 



ModelRailroadForums.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com

Top