Not all shields have issues. For the Arduino shield, it is recommended to add a heatsink to the main chip to increase surface area for cooling. The BTS7960B boards have a massive heatsink on the bottom of the board. Pololu boards I am not sure on but likely they wouldn't be hurt by having a heatsink attached to them as well. On my setup I plan on using a pair of BTS7960B boards with 40mm fans added to make it active cooling instead of passive.
Still doing some testing. In particular I found a problem if turnout power is applied before Arduino power - the board sees the Arduino outputs as 0, activating all the relays and trying to throw all the turnouts. Just got that solved. Turnout power first goes through one relay on the board which needs to be at "1" to supply power. So if I connect the turnouts to power before the Arduino fires up, that relay will be at 0 and no power is supplied to the other relays. Simple solution that doesn't need code, but does use one Arduino pin. I'm also seeing if BT24-600B triacs can be used instead of relays. About the same price per turnout, but I'd need 4 relay boards and have limited space - I can fit all the triacs on one perfboard, along with the IO expanders to control them.
I have had no issues with these Deek robot motor boards http://www.ebay.com/itm/261516145493?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT run them on both Unos and Megas on my test track as well as main tack through a booster.
A bit delayed response but I am using the NCE EB1 in between motor shield and track and operates perfectly. When I short track to test the EB1 cuts power but the base station basically doesn't even know it happened and 2 seconds later everything fires back up and starts again.
Hi all, I've just been given an oldish "Raildriver" controller designed for use with PC train simulator programs (see http://raildriver.com/). Wondering if anyone has reverse engineered this hardware to use as a DCC cab control? It has a USB interface to the PC running the simulation so in theory it could plug into a raspberry pi/DCC++ system. I'd be interested to get any feedback. Cheers, Greg
Keith That's fine, unless you don't know where the short is ...... I added a push button to the EB1 (see "Short Circuit Protection" Msg#3) that way the EB1 LED blinks when a short is encountered .... when short is rectified push the button to reset .... again, the base station stays powered on through it all. BTW I too prefer the Deek-Robot motor shields.
Hi Gregg, I'm having CV read problems and followed your lead. I tried lowering this value, first to 25, later to 20. The loc on the programming track seems to "stutter" a little bit more (can also be my hopeful imagination), but no dice reading the CV... Should I lower this value even further? Gerard
Dear All! I’m just found this site and I’m very happy because I started to build a H0 scale railroad system, with some automated control. Arduino is my another new hobby, and DCC++ system is very good to combine them. At the first page I read: “The base station consists of an Arduino Uno (or Arduino Mega) and an Arduino Motor Shield, and that's the only hardware needed (with the exception of an 18V AC or similar power pack). “ I want to buy an Arduino Motor Shield, but when I see the official page, I read that Arduino Motor Shield can have an external power supply maximum 12V. It is not enough for H0. But I read, that some of you use this shield with H0 trains. Maybe I don’t understand something, or misunderstood. So, please help me to solve my problem! Is it good the official Arduino Motor Shield R3, what I found on the Arduino website, for H0 scale trains, or not? Thanks a lot. Mike
Hi. The std motor shield can take up to 18V, but if it is supplied with more than 12V you should cut the trace to prevent it passing the supply voltage to the Arduino which DOES have a maximum of 12V; you then would need to have a seperate supply of 7 - 12V for the Arduino. This is what the Motor Shield website says: HTH Jim
Thank You Jim for your very fast answer. I was uncertain because of the Schematics.pdf in documentation section of Arduino website, but now I’m sure, and go to buy the shield. Thanks again. Mike
I have read quite a lot of the thread, but it's just too long to read everything at this point. It's very interesting to see how this has all evolved. I am awed by the amount of time and effort people have put into DCC++ (and I include those who have made other projects work with DCC++). After playing around with 3D design, I was looking for a new challenge and began playing around with the Arduino. I have a (yet another) gate crossing application about 50% done. I am trying to 3D print the gates and I'm not sure that will work out. I am going forward with DCC++ but maybe with a wrinkle or two. I model HO and right now my only layout is a 4 foot module that combines with other modules when my club sets up at shows. My present thoughts: Stage 1: A Mega based base station running off a laptop. No layout control, just loco control. My club's modules can have a third track that is under local control and that is what I'd be controlling- it can interface with other modules so can be quite a bit longer than 4 feet and some modules have switching setups connected to it. Step 2: A Mega based cab control. It would be in the base station enclosure and have a keyboard, a rotary encoder, an LCD readout, and switches for horn and bell. It would eliminate the need for a laptop. This would send the same signals to the base station a laptop would. I am hoping that there would be no or minimal change in the base station sketch. I am still wondering of the DCC++ base could handle a laptop and the base controller at the same time. Would it do anything the laptop couldn't? No. But by using a Mega there are a lot of possibilities for future projects. Step 3: A hand help controller. Not just a throttle, but duplicating the functionality of the base cab control. Rather than adding to the code on the base station, I'd have this communicate with by base cab control and have the base unit pass the signals to the actual DCC++ base. I already have some XBee Pro modules I can dedicate to this approach. I have read about some of the other approaches, but we set up in some areas with a lot of background interference (like the Big E in Springfield, Mass) and I am hoping the XBees will have less of a chance of interference. At final iteration one person could operate with the base and another with the handheld. Maybe a third on a laptop? If anyone has any comments I welcome them. Has anyone already gone in this direction, or a direction that would get me part way? Dave Yale
My thoughts go more in the direction of having the DCC++ on the Arduino controlled by JMRI on an Raspberry Pi. JMRI can put a webserver "in the air", so we could use phones and tablets as handcontrollers... Even more preferable would be a Loconet connection so we could use the existing Digitrax controllers. ;-) Gerard
I thought about a rasberry pi with a nice touch screen as the base, the interface could be tweaked until just right, but I'm hoping to learn more about hardware on this one. A thought for the future though. Sent from my SAMSUNG-SM-G900A using Tapatalk
[QUOTE=" Even more preferable would be a Loconet connection so we could use the existing Digitrax controllers. ;-) Gerard[/QUOTE] Hello, If you want DCC++ with a Loconet connection, here you have it!!! https://github.com/ClubNCaldes/LNetDCCpp I wanted a DIY command station with Loconet interface that could replace my Intellibox Basic or my Digikeyjs DR500, so I took the DCC++ source code and added the MRRWA Loconet libraries (http://mrrwa.org/loconet-interface/) to it. I wrote an article in my blog where you can have more detailed information: http://www.clubncaldes.com/2017/04/cheapest-dcc-command-station-with.html I changed the code to run only in a MEGA, and suppressed the current interfaces to have room for the loconet libraries and buffers. I always use an independent Loconet<->Ethernet interface implemented also with an Arduino (UNO version in this case). So I only need the command station to be able to send and receive commands through Loconet. Being part of a loconet network I don't need the command station to be able to drive inputs and outpus, so I used the pins to implement new functionalities: * 3 external leds to show the state of the command station (ON, OFF, Short circuit) * 2 external buttons to change the state to OFF or to ON * 1 external Emergency button (in Loconet you can stop the command station in two ways, a "normal stop" or "emergency stop", sent messaged are different) * 2 external relay that switch from normal to programming current automatically during a CV read or write operation * KeyPad LCD shield support. Display shows current consumption and CV values when read or write. Buttons can also be used to start and stop the command station. It's planned a future development to read and write CV directly from the command station and not only through Loconet. I've been using this version of the command station with Rocrail with a 14 meters long modular layout during a weekend and has been proved to be reliable and completely stable. Enjoy it!
Hi Gregg, re. CURRENT_SAMPLE_MAX what are the min and max values here and what are the corresponding currents? Or is this a hit-and-miss guess? And the current sense motor shield output goes to Arduino A0: what is the scaling factor for this conversion? Can I substitute the L298 motor shield current sense output to A0 by the current sense output from a booster driven by this motor shield? Or maybe superimpose both (maybe by adding the 2 values with two resistors?)? Erik
Hello, If you want DCC++ with a Loconet connection, here you have it!!! https://github.com/ClubNCaldes/LNetDCCpp I wanted a DIY command station with Loconet interface that could replace my Intellibox Basic or my Digikeyjs DR500, so I took the DCC++ source code and added the MRRWA Loconet libraries (http://mrrwa.org/loconet-interface/) to it. I wrote an article in my blog where you can have more detailed information: http://www.clubncaldes.com/2017/04/cheapest-dcc-command-station-with.html I changed the code to run only in a MEGA, and suppressed the current interfaces to have room for the loconet libraries and buffers. I always use an independent Loconet<->Ethernet interface implemented also with an Arduino (UNO version in this case). So I only need the command station to be able to send and receive commands through Loconet. Being part of a loconet network I don't need the command station to be able to drive inputs and outpus, so I used the pins to implement new functionalities: * 3 external leds to show the state of the command station (ON, OFF, Short circuit) * 2 external buttons to change the state to OFF or to ON * 1 external Emergency button (in Loconet you can stop the command station in two ways, a "normal stop" or "emergency stop", sent messaged are different) * 2 external relay that switch from normal to programming current automatically during a CV read or write operation * KeyPad LCD shield support. Display shows current consumption and CV values when read or write. Buttons can also be used to start and stop the command station. It's planned a future development to read and write CV directly from the command station and not only through Loconet. I've been using this version of the command station with Rocrail with a 14 meters long modular layout during a weekend and has been proved to be reliable and completely stable. Enjoy it! [/QUOTE] Very good work I have read your blog...so the question is this....how hard would it be to implement NCE/Digitrax controllers? I am sure another re-write of code would be needed?
If you want to connect any Loconet compatible controller (I guess these NCD/Digitrax you mention are Loconet) nothing has to be done. All loconet protocol is already implemented and you can move trains from any software connected to the layout or from any (Loconet compatible) controller. Cheers, Dani
Hi all, I have built a DCC++ system using a mega 2560 and standard arduino motor shield and I am running it through a high power booster(thanks to Dave Bodnar for this).Everything is working fine using it with JMRI. I am looking to use all the sensor pins available to me on the mega and maybe more.My question is how do I get more pins? Can I add another Mega or Uno to the system to do this. If yes,could someone please advise me on how to do this as I am still new to using the arduino. Many thanks Cheers Gary
Hi Gary, To be able to use more pins I used a chip called MCP23017-E/SO I2C 16 bit I/O expander. I used it for output in my Relay board (see my Github page), but it can be configured as inputs as well. It works based on the I2C protocol. I originally built and tested it for the Raspberry Pi, but I have also tested it on an Arduino. Gerard