Trimble Thunderbolt (RS232)

The Thunderbolt connects to your computer via a 9 pin serial port.  Standard pins are in use.

  1. Not used
  2. Transmit (TxD)
  3. Receive (RxD)
  4. Not used
  5. Ground (Gnd)
  6. Not used
  7. Not used
  8. Not Used
  9. Not Used

If you are planning to connect your Trimble to a microcontroller as I am you will need to provide it appropriate levels as the RS-232 standard defines the voltage levels that correspond to logical one and logical zero levels for the data transmission and the control signal lines.  Valid signals are plus or minus 3 to 15 volts; the ±3 V range near zero volts is not a valid RS-232 level. The standard specifies a maximum open-circuit voltage of 25 volts: signal levels of ±5 V, ±10 V, ±12 V, and ±15 V are all commonly seen depending on the power supplies available within a device. RS-232 drivers and receivers must be able to withstand indefinite short circuit to ground or to any voltage level up to ±25 volts.

The common way of interfacing RS232 to a processor is via a MAX232.  Don’t forget the MAX232 inverts the signal so you will need to allow for that in your code.

I took the easy way out and purchased a small module from Jungletronics (ebay) designed for this purpose.  Cost a few pounds and is pretty much plug and play (except for making the interface cable to the Netduino.  I also decided to put them back to back so bought a male to male gender changer too.

TSIP Packet Structure

TSIP stands for Trimble Standard Interface Protocol, and it is used in products from Trimble such as the Thunderbolt and differs from NMEA which is a lot simpler and only contains status data.

The TSIP protocol is based on the transmission of packets of information between the user equipment and the GPS receiver. Each packet includes an identification code that identifies the meaning and format of the data that follows. Each packet begins and ends with control characters.

TSIP packet structure is the same for both commands and reports. The packet format is:

<DLE> <id> <data string bytes> <DLE> <ETX>

Where:

  • <DLE> is the byte 0×10
  • <ETX> is the byte 0×03
  • <id> is a packet identifier byte, which can have any value excepting <ETX> and <DLE>.

The bytes in the data string can have any value. To prevent confusion with the frame sequences <DLE> <id> and <DLE> <ETX>, every <DLE> byte in the data string is preceded by an extra <DLE> byte (‘stuffing’). These extra <DLE> bytes must be added (‘stuffed’) before sending a packet and removed after receiving the packet. Notice that a simple <DLE> <ETX> sequence does not necessarily signify the end of the packet, as these can be bytes in the middle of a data string. The end of a packet is <ETX> preceded by an odd number of <DLE> bytes.

Multiple-byte numbers (integer, float, and double) follow the ANSI / IEEE Std. 754 IEEE Standard for binary Floating-Point Arithmetic. They are sent most-significant byte first. Note that switching the byte order will be required in Intel-based machines. The data types used in the ThunderBolt TSIP are defined below.

  • UINT8 – An 8 bit unsigned integer (0 to 255).
  • INT8 – An 8 bit signed integer (-128 to 127).
  • UINT16 – A 16 bit unsigned integer (0 to 65,535).
  • INT16 – A 16 bit signed integer (-32,768 to 32,767).
  • UINT32 – A 32 bit unsigned integer (0 to 4,294,967,295)
  • INT32 – A 32 bit signed integer (-2,147,483,648 to 2,147,483,647).
  • Single — Float (4 bytes) (3.4×10-38 to 1.7×1038) (24 bit precision)
  • Double —Float (8 bytes) (1.7×10-308 to 3.4×10308) (53 bit precision)

An example packet:

0x10,
0x8F, 0xAB,
0x00, 0x03, 0xE5, 0x1F, 0x06, 0x88, 0x00, 0x00,
0x0C, 0x17, 0x36, 0x16, 0x18, 0x01, 0x07, 0xDC,
0x10, 0x03

Your challenge is to decode this (hint: it is a timing packet).  I will post more about the breakdown of this kind of packet in the next post.

 

Netduino

I pulled out the PICAXE documentation, fired up the development environment and started to write some code.  It didn’t take too long before I worked out that the picaxe was just not up to the job of processing the serial traffic from the Thunderbolt.  It might just be my limited experience but I wasn’t prepared to spend any more time on it when I knew there were alternatives available.  I jumped onto the web and ordered a Netduino which is an open source electronics platform using the .NET Micro Framework.  Featuring a 32-bit microcontroller and a rich development environment it is perfect for me who is very comfortable with the C# programming environment.

NetduinoIt arrived on Friday and I spent the evening playing with it.  I have got the device talking to a display which will be the subject of another future post.

The unit has two serial ports built in and a handful of analogue and digital input/outputs.  This will now form the base of the project.  It has made it a little more expensive than I had originally thought but the extra power available will give me more versatility and allow me to work faster than before.  I even have old code written for other projects which will be able to be used here.

The next post is already in draft and will introduce us to the displays available for electronics projects, how to interface etc.  I will continue to post various PICAXE items here too as they are still useful for smaller projects (and I still have many of them)

Trimble Thunderbolt Monitor Project (LCD)

I decided I would like to start a new construction project for 2012. Having thought carefully I finalised on a 10MHz reference which can be used as a standard for test equipment, or to lock the master oscillator (TCXO) of a rig/transverter to a solid, accurate source. I did quite a bit of research over Christmas and concluded that the best bet would be to start with something commercial and add to it. It is possible to start from scratch but with the surplus market so cheap why not spend the time adding the sugar and actually using it.

My research eventually pointed me to the Trimble Thunderbolt which is a commercial GPS disciplined clock and readily available on eBay. This was to be the basis of the project. I ordered one and it arrived today.

20120109-213634.jpg

To interact with the Thunderbolt you plug it into a PC and use some proprietary software which reads the TSIP data stream. TSIP is the protocol used and is not as simple as the typical NMEA stream you would get from a GPS. Plugging it into a computer is not the most useful way of determining if a lock is present so I decided to add an LCD screen. It is possible to get quite a bit of information from the unit thanks to the brilliant documentation from Trimble.

My plan is to build the GPS into a 19″ rack enclosure, add a 4×20 LCD screen and a few buttons for sending commands. As with most projects others have been there before and there is plenty of similar projects on the web. Most are much simpler than what I had planned. A few days ago I stumbled across a posting by VK4GHZ announcing his monitor for sale. When I looked at what it did I was very excited. I hoped it would be an open project which perhaps I could build. He has decided to make it a commercial venture and it costs AUD $160 + shipping! Wow!

I have decided to create my own project and document the progress here. I will publish anything I can including the code in the hope that someone benefits from it. I am a programmer by trade but still fairly new to programming micro controllers. The first attempt will be by using a PICAXE and a uM-FPU floating point processor. Few bits and bobs ordered so will get on it once they arrive.

Useful links