June 2010 Archives

Tenma 72-860A Serial Port


A few weeks ago, I bought one of these sound level meters in order to get a better sense of the noise level around my house. I chose this specific model because it had a serial port, figuring it would be easy to hook the meter up to a small embedded system and gather ongoing samples throughout the day. Nope.

I wasted quite a bit of time trying to get the meter working. For a while I could only get it to work on a Windows machine using their special software. After pulling out the oscilloscope and multimeter, I finally figured it out.

The documentation is wrong. The 1/8" TRS jack doesn't have TX, RX, and GND. Instead:

tip: logic 0 (positive voltage)
ring: tx data
sleeve: logic 1 (negative voltage)

Internally, these three pins are connected to an optocoupler in order to separate the external serial connection from the on-board 5v logic. For embedded systems, this turns out to be somewhat convenient, because one can provide whatever voltages are desired between tip and sleeve and then read the data which uses those same voltages from ring. (For example, the internal circuit allows you to use CMOS levels without having to use something like a MAX232 by connecting sleeve to GND and tip to +3.3v.)

The cable supplied with the device has a 1/8" male plug on one end and a female DB-9 on the other. It's connected as follows:

1: nc
2: ring
3: nc
4: tip
5: nc
6: tip
7: sleeve
8: sleeve
9: nc

Or, in graphic form:


Those of you out there who know your EIA232 pinouts will note that nothing, in fact, is connected to pin 5, usually GND. How can that be? The designers of this product are "cheaping out" and assuming that the end-user will have fully functioning serial port...

In order to use the supplied cable, your serial port must be able to drive both RTS and DTR independently. Setting DTR=1 and RTS=0 will put the right voltages on sleeve and tip, which makes the signal on ring range between the same voltages for 0 and 1 that your serial port itself provides. Once set, you will be able to read data at 19200 8N1 without trouble.