Large Scale Central

New Toy - Protothrottle

This showed up today. I’m thinking it’s going to be a fun new year. It’s spitting out Xbee packets exactly as advertised

This is a piece of engineering art. I am very impressed. The network interface is Xbee Series 1 broadcast. I can’t tell you how wonderful that is (http://largescalecentral.com/externals/tinymce/plugins/emoticons/img/smiley-smile.gif)

The guys at ISE sure know their stuff eh? Even though its $500, I think the amount of R&D that went into helps in my,mind off set some of that cost. And these are all just hobbyist like us. If you want some good background on the development read the MRH threads about this.

You’ve got me just about convinced to hit the buy button.

So do they give any description of their protocol/command structure?

Yes, they are completely open source. The payload for each of the xbee packets looks like this:

Byte0 = Address of the base/receiver. 0xD0 to 0xEF. The PT displays 0 to 31 for simplicity, but internally adds 0xD0 to the value.
Byte1 = Address of the ProtoThrottle. 0x30 to 0x49. The PT displays A to Z for simplicity, but internally translates to 0x30 to 0x49.
Byte2 = 15 (packet size)
Byte3,4 = CRC16 for data validation
Byte5 = ‘S’ for Status Packet
Byte 6,7 = 16-bit locomotive address. Long address (0-9999) if MSB clear. Short address (0-127) if MSB set.
Byte 8 = Speed/direction. Encoded the same as DCC “128 step” mode. 0 = idle, 1 = e-stop, 2-127 = speed, MSB = direction
Byte 9 = Functions 28-24
Byte 10 = Functions 23-16
Byte 11 = Functions 15-8
Byte 12 = Functions 7-0
Byte 13 = Status bits. Currently only supports emergency stop.
Byte 14 = Battery voltage (20mV per LSB)

These are sent about once per second or when a control changes. The packets are Xbee Series 1 broadcast with the ‘escaped’ API selection. It is up to the destination to reconstruct the DCC data stream. They have some specific Xbee configurations you have to set, they have a python verification program in one of their repos on Github. It was very easy to do.

I am building out my receiver so I can accept the broadcast from the protothrottle but also use directed messages to configure the receiver. My planned user interface is a Raspberry Pi ZeroW running flask and apache2, set up as a standalone wifi node. An xbee will be connected to the USB port of the RPI. That way I can pull up a web page on the RPi and configure any device on the Xbee network. Well, not the protothrottle, I don’t think their firmware supports that. But my receivers need the DCC address set and I’d like to do a GUI for the setting of decoder data. A web app will be the best as anyone can access that on any device, not just android.

I’ve also got a design to ‘translate’ these packets to Airwire if anyone is interested in that.

This is a lot of fun :slight_smile:

https://youtu.be/ZddGSfWhqQE

I think I have the basics functional. The state machine needs some tweaking but it’s working out well so far. I’m not sure on the brake lever yet, it’s cool, has a certain friction to it. Nice. I’d like that motion to translate to the TCS Wow brake function thing but I don’t see how that is going to work with this protocol. Hmm. The video has the brake mapped to the soundtraxx economi ‘squeal’ on F11.

If you’ve got questions about decoder mapping functions it might be worth joining the Protothrottle Group.io group.

Very cool to see it in action!

https://groups.io/g/ProtoThrottle/topics

Installed in my GP9- I have the basics working, still need some config options for the decoder. This is a neat box.

https://youtu.be/4PyK95wO1C4

Kewl lookin throttle. What’s the range on that?

It’s Xbee Series 1. About 100 meters is the spec, I have not physically tested it yet.

he needs to adjust CV2 to get a slower start, it’s too fast even with the obvious momentum…

Yeah, someone else also pointed out its the wrong sound file for a GP9 too, but that’s ok for now. Just testing. Next step is getting the directed message handling in so I can tweak all the CVs with my phone. If you look close, the shell is not even screwed down yet. That’s because I have to pull the Xbee, re-install the BluetoothBee and reflash the firmware to change CVs via my Android app. Then reverse all that to go back to the Protothrottle. Not real convenient to say the least! ha.

Well I just got one of these throttles in the mail today. Now I can make the switch to DCC finally once Martin releases his board. Super excited to play around with this throttle. Its about the closest one can get to running the real thing. And that’s coming for a guy who ran the real things for 8 years.

You know, I was really skeptical about this thing, its darn expensive. But it is way way cool and if you are looking for ‘tactile feel’, this is it. And it does Xbee. I can’t tell you how happy that makes me. :slight_smile:

It’s certainly not cheap, but its about the cost of one if our large scale locomotives equipped with sound. I figure with plans for a small switching layout, I don’t need more than 3 or 4 engines so I can justify the cost. Heck with this installed and working on only 1 engine, I figure that might be all I need!

I’m super glad I kept bugging you about this.

Got the basic directed message stuff working with the Xbees. Still needs some work and the cosmetics are pretty boring but all the underlying message passing is working. Here is a link if you are interested:

http://martinsant.net/?p=3979

Working on another widget - Protothrottle to Airwire. I’ve combined the Xbee and the CC1101 modem into a nice little ‘translator’ for Airwire. This is essentially a ‘computer controlled’ T5000, with the computer in this case being the Protothrottle. Protothrottle sends commands via Xbee, this intercepts those and converts them into the Airwire DCC stream.

http://martinsant.net/?p=4060

Ken Brunt said:

Kewl lookin throttle. What’s the range on that?

Very Cool !

Martin stated earlier theoretical range 100 meters, but YMMV

Greg

I’m patiently waiting for the new ESU version 5 decoder to come out so I can play with my Protothrottle. Good excuse to finish my locomotive project first.