First Power up of the TCS decoder and the Bluetooth Enabled Control Widget
This is the first power on test of the decoder. I have not changed anything in the firmware or Android App from what I had with the Economi Decoder. I am using the 28/128 speed step which is the default in both decoders – so the extended packet format of DCC. The throttle, Bell and Horn all work out of the box, no configuration was done to the decoder before I tried this.
Because the TCS has some additional features and requirements, I will probably have to change the firmware and app side a little from the Economi implementation. It also has some sort of ‘mode’ to switch between the lights and sound functions so I will have to figure that out. That is the nice thing about a custom app, I can tailor it to each decoder.
I also will be controlling a few extra things with this particular installation – I’ve got a temperature sensor mounted on the heatsink of the DCC amp. I also had a current sensor in there but it proved to be defective so I had to remove it for now. I’ve got two fans wired to function outputs on the decoder so I can turn those on and off. Two servos will be used to control the couplers as well. These will be implemented in the widget layer, they won’t be controlled by DCC so I can tailor that profile as well. Just yanking the couplers open doesn’t work very well, you need a smooth motion.
One other option will require a PCB mod. I want to be able to ‘name’ each BT module so it shows up in the phone as a locomotive number and description. The docs say I can use up to 20 characters for this. However it requires that you power up the device with a pin held low, then let it go high so it enters ‘AT’ mode. This will require either a special app or an extension to the one I have to set this plus a jumper on the PCB. I can work around this for now but I will add it to the PCB layout along with a couple of other spacing fixes for the next pass.
This was the biggest job I have ever done to an airplane. I did a bunch of plastic work on my last one (a Cessna 152) and even put in a new set of skylights once but this took the prize. Four days of 8hr work (that I am still paying for. ouch) but I think the results are well worth it.
I think I’ve finally gotten to a beta release point on my Phone App and Widget Firmware. The firmware is universal but the phone app is customized for the Soundtraxx Economi DCC decoder. This app lets you control and program a battery powered locomotive via wireless DCC on your Android phone.. Above are the four screens. Some of the controls, the couplers in particular, are not implemented quite yet, or are implemented but untested. Everything else works. The coupler buttons are intended to control servos to actuate the couplers ala switching moves.
Below is a (rather long) video of the app driving the decoder on my little test setup. The blue readout is a current meter. Not pulling much here.
I have a new locomotive, a USAT GP9, that I will be putting a TCS WOW decoder into. That will get it’s own phone app, although it should look very similar to this one. I’m finding the various decoders, while all adhering to the DCC spec, are a little different in certain areas, particularly the CV programming. Also, one thing I didn’t consider is getting data FROM the decoder. I have the circuit and s/w design for that but it’s not implemented yet. That’s next.
At some point I may try to merge the various incarnations of the phone app into one, but for now I’ll be doing one for each. I plan to support the three decoders I currently have, the QSI, the Economi and the TCS Wow.
Here is a demo of the phone app. It doesn’t actually do anything, just lets you change screens and move the throttle slider etc. But I’d be interested in feedback from other train folks – Drop me an email: firstname.lastname@example.org
Got my new boards in for the latest widget design. On the left is the DCC Amplifier, it turns the logic level signal from the widget into a 15v DCC signal. The board on the right is the new Megawidget.
I have moved away from SOIC components as they are hard as heck to solder by hand. So this one sports an Atmega328 28 pin thru-hole microcontroller. I still have one SOIC component, the 3.3v regulator for the network module but it’s a pretty easy hand solder and the thru-hole version is ridiculously large.
Another advantage to this microcontroller is I can run it at 16mhz using an external crystal. It’s a pretty speedy little sucker at that clock rate.
The boards came out perfect in terms of electrical connections, I didn’t have to cut any traces or add any jumper wires. However I do have a bit of a spacing problem on both the controller and the DCC amp that I will have to address on the next pass. The ISP programmer port is too close to the bluetooth module and the logic input on the AMP requires that I wire it instead of putting a pin header – but for now they are ok.
The plan is to refactor all of my existing code on the firmware side and get it all squeaky clean- bluetooth network, servo control and the DCC output. Hope to have that done this weekend. Eventually it will drive a TCS WOW Sound 5A DCC controller.
I pulled another project off the back burner and got the basics working. This is a Android Phone App I wrote in Python that interfaces to my control widget but with Bluetooth instead of 802.15.4. It uses the same DCC output code as all my other widgets but with a Bluetooth Network interface instead of Xbee. I seem to be late to the party all the time but I found this unit- it’s a pin Xbee compatible unit so it will fit right into my Control Widget design with no problems, just some different software. In the picture above, the unit on the left is my Asus 7″ tablet and the one on the right is a cheapo smart phone I got off of Amazon. Both work quite well. Not sure on the range yet, once I get the boards built I’ll be installing it all in my Aristo U25B for some real world testing.
I don’t have all the function codes working quite yet, but the throttle works great. This is all done with a BT board I’ve had laying around for a while- I have one of the above Xbee type units coming so I will be refactoring the code a bit for that anyhow. I should have boards for testing in about a week.
Here is an expansion of my R/C to DCC circuit. I now have all six channels of a cheap 2.4Ghz Radio Control System driving a 2Amp Economi DCC decoder. Throttle stick drives the speed, the other sticks trigger the bell, horn and other sounds. I have one of the switches doing the direction. The DCC amp can drive a 4A load with peak to 5A so more than enough for most G scale Here I’m driving a single USAT motor block. Still have a couple of small issues in the firmware but for the most part it works quite well. I am going to try to finish this off over the next few days and design a PCB for it.
Here is a diagram of the transmitter controls
A video of everything working. Can’t quite see the blue LED that is the backup light, but the Headlamp LED is quite bright. I still have channel 5 open, not sure what to do with that one at the moment. Basically, you can do throttle, direction and 8 functions with a six channel system.
I’ve been neglecting one of my main investments and interests, my airplane- 172ME.
So I spent some vacation time working on sprucing her up. Put in some new plastic trim and painted the headliners. New seats and wall panels are coming in June. I guess next pass will be an owner assisted 100hr with Dan the mechanic man. I need to take out everything to the bare metal on the inside and put it all back in new. And then do something about the paint on the outside. At least touch it up. Needs new seat belts too, and ADS-B. Always something 🙂
Ok, not engineering but eh. Here are my new Brahma Chickens. Ordered 18, they sent 21. All arrived fine and healthy. These will grow into rather large birds, the males can reach 12-14 lbs. I’m not sure why I like chickens but I do. This is the first time I’ve gotten all one breed of chicken. Last shot IS engineering I guess- my fortress Chicken Coop with automatic aluminum door, all solar powered.
Got my prototype to run first pass. This is a motor driver chip that I have wired to convert logic level DCC to 14v 5A DCC. I was working with the LMD18200 but that sucker was $16 from mouser! Ouch. And it only did 3A. This is the L298N which is only 3 bucks from Sparkfun. Big difference! Now I just need to layout a PCB and get it off this breadboard. Sometimes rainy days are not so bad…