Subscribe via RSS

trainControl v0.1 created!

After 3 days of coding/learning/coding-again I managed to whip together a fairly usable *nix console application to control the DCC System.

It is a client for the srcpd service mentioned previously and can control any number of trains.
There's still a fair bit of work to do on it... dynamically resizing windows, mouse input, etc... but I thought I'd post to show some progress.
If anyone is interested the source is here and can be compiled with "gcc -o tc main.c -lncurses -lform -lpanel".


...work continues...

28Sep/080

Controlling the Booster from Linux

After losing the source code to my DCC Throttle application I decided it was time to get the whole system controlled from Linux (or, in my case, Debian.)
I'd known that the DDW Server I'd been using was based off srcpd and that they were more-or-less compatible.
After a lot of tinkering (making sure libraries/compilers/etc... were installed) I finally got srcpd compiled and running.
There is a nice web-app to create the required configuration file which is then thrown in /usr/local/etc/ or can also sit in the same directory as long as you specify it.
It seems that you need to make sure that the 'NRMA/DCC Translation Table' is set to '1'. I have a copy of my configuration file here.
Right, now that the server was running I grabbed Telnet and connected to localhost:4303. I attempted to use the same set of commands as I had with DCCThrottle but to no avail... it turns out the version of srcpd I had installed was based on the 0.8.3 srcp specification... much had changed.
Instead of reading up on what I should be doing differently I connected up dtcltiny 0.8.2.

After a lot of tinkering with compilation/libraries/etc... I finally got it installed. On debian make sure you have qt3-apps-dev and libqt3-compat-headers installed... do this with apt-get.
Anyway... I'd done all this on a spare Thinkpad 600E I had lying around (PII 266mhz 256mb RAM) and I'd had a few issues with lag once it was up. I'd turn the headlights off on the control panel and my Twilight Express locomotive would then go dark around 1.5 seconds later. After turning off nearly all debug output I had a relatively stable system... but it does need a lot more investigation.
The next trick will be to investigate building a client on the console... I don't need fancy Xorg to get a gui and an ncurses console app should do. I saw rcsh and rcman and the rest, but python isn't my friend... although it'd be a nice opportunity to learn.
Anyway... all of this was a great learning experience... and I was quite impressed that my old notebook handled Debian and got the locos moving.

19Jul/080

Prototype Booster Complete!


Well... after a night of work (and using my breadboard version as basis) of soldering and drilling I have a prototype! I've used off-the-shelf components to house the board and everything fits nicely... secure... and works perfectly.

The next version will have an override switch (since the current version will only activate when there is data on the serial port) to allow power all the time.


Now is time to use this version as a test for how many amps it can push out... note I'm still using my computer power supply (which is still powering this machine I'm surfing on!) and all is well.
Finally... The going price for one of these will be AUD$65.00.

Anyone wanting one can leave a comment on this post or email me at stevenhoefel at hotmail dot com.


I've also written a new client app... very basic... controls the train that you specify.

16Jul/084

Researching a DCC booster circuit and DCC computer control

The concept...

Ok, after a miriad of attempts to control my model railroads with computers (parallel port to relays, voltage controls, etc...) I decided it was time to go to DCC... I mean... why not use the rails as a data bus and have all the logic inside the locomotives themselves. I had decided that all the european command stations were too expensive and that I would do as some of the references below have done and just use my computer to push out the 1's and 0's. Anyway, after a lot of trial and error I have a working prototype... but stay tuned for something more production ready.

For starters, here are some good references on homegrown DCC Boosters:

After searching online electronic stores for parts, I had noticed that there were two basic circuits in use. One used the L298 H Bridge and the other the LMD18200. As I'd browsed across Michael Brandt's site first, I'd realised that it was only necessary to connect a booster to the computer (and Haba's site confirmed this). Although I'd purchased all the components to make the Parallel port logic board, I've still never actually constructed it since it was much easier to just go direct to the COM1 (and also skip all the assembler programming!).

One weekend-long of wiring and re-wiring produced this... It's recommended to build anything like this first on a breadboard as you get the opportunity to just rip it all back out again when you make mistakes... and after a lot of cooked components and other issues... I finally got it all to work. The circuit uses a 12vAC input but I just skipped the initial AC-DC regulator and used the 12vDC from my computer's power supply. This currently allows around 8vDC to the engine and so I'll be upgrading to something closer to 18vDC input when I get the chance... For now, and it's great for testing, it's better to have lower voltages.

Next, Software...

There are a few options here... many in German and many in Linux. I'd found DDL and realised this was the way to go. It is what Haba had been running and therefore must work. I had severe issues compiling it on debian since the code was old and am still not across C/C++ enough to have gotten it going. I then found the binaries and managed to get something running, although couldn't successfully get a connection. (This was also whilst I was using Rod's circuit and so there could well have been too many variables...)

I then hit gold with DDW (DDL for Windows!). I had a few initial problems working out which port COM1 was and then why there was no action... but once my booster was complete and connected everything just started going... I realised that the server alone is no good... it wont send out data without a client connected... client of choice being RailyPlan v2.0 found on theDDW download page.

Now, I'd bought 2 Hornby R8215 Decoders and, based on forums read online, there seems to have been NRMA DCC compatability issues... Let me tell you that these things are gold. They are tiny, cheap and reliable. I've cooked one quite well and it keeps going... it has even emitted the usual burning-silicon smell a few times (when the motor has shorted) and keeps going. The only issue I've had is that the wires unsolder themselves when it gets tooooo hot. :)

The first decoder was installed in my old-reliable German DB loco (model unknown) and it was too easy. Plastic chassis, minimal wiring... simply spliced in. The decoder defaulted to Address '3' and I had it running in no time. Had no headlights or anything else to wire up, so there was no test of functions, etc... here.

This engine ended up being the old-reliable for a very long time for testing purposes of software, etc... that I was about to write. I believe I'm about to realise how easy this first loco install was compared to the little space that exists in Japanese n-scale engines.

I'm currently in the process of Decoder-ing up my Odoriko 5-Car series and will post again once I have the final story.

What a mess... you can see the breadboard up the back being powered by the computer power supply under the desk and my straight run of track.