UART Tx - polarity?

Yesterday I was able to successfully control my HDMI switch via RS232 with an XP laptop (running Docklink) and a USB to RS232 dongle.
Today I used that same laptop setup to send data to my Imp. Without success.
The data I logged in the Imps log window seemed to have no relationship with the data sent by Docklink. I connected my scope to the Tx and GND, defined a (virtual) serial bus on my scope (automatically transfers serial data of many bus types to parallel) and got the same data shown on the scope screen as was shown on the Imps log window!? A quick conclusion could be that Docklink screwed up some how but: when I set one of the virtual serial bus settings on my scope from ‘active high’ to ‘active low’ the data on the scope matched the data sent by Docklink!

Now my question: how come controlling my HDMI switch using Docklink worked ‘out of the box’ where the data seen by the Imp somehow looks to be inverted? I’m not that familiar in depth with RS232 but I have never heard of a polarity option.

Anyone who can shed some light on this?
Your reply is greatly appreciated!

The imp’s UART pins are not RS232, do NOT connect it directly! It will permanently damage the imp.

RS232 is a definition for both the serial transfer and the voltage levels. RS232 uses +12v and -12v to convey 0’s and 1’s (+12v = 0, -12v = 1). These days people often drop it down to +5v=0, -5v=1.

Low voltage serial, like the imp, arduino, and everything without an RS232 connector uses 0v = logic 0 and 3.3v or 5v (depending on the device) = logic 1. This is why you see the voltages inverted when compared to an RS232 port.

Serial buffer chips like the MAX3232 are used to convert low voltage serial to/from RS232. Sparkfun sell one on a breakout here:

We should put that on the wiki really.


@Hugo: I put a 3232 in between and it works like a charm!