RS232 level converter for Arduino

The earlier circuit with an RS232 chip would have my preference  for connecting a self built Arduino to an RS232 port. However, if space is at a premium, a chip with 4 capacitors and a few resistors might just be too much. In that case a levelconverter made from discrete components might be a better choice.

levelconverter2

Just to make clear: The TX and RX in the circuit refer to the microcontroller. The Tx signal from the Arduino gets fed to T2 and send to pin 2 of the DB9. That Pin 2 is the receive signal from the PC. The TX signal from the PC is available on Pin 3. This gets fed into T1 who then feeds it to the Rx of the Arduino.

There is a slightly fancier version available:

But the first circuit worked well for me.

Yet another circuit, looks as follows:

With regard to R5 that can be connected to TxD to borrow a negative voltage, but the circuit will only work half duplex then. It can also be connected to ground, which will probably work with most RS232 ports and that will allow Full duplex

One thing you have to keep in mind with these circuits: The RS232 does not trigger an automatic reset of your microcontroller anymore. If you still wish to have that, add another transistor, akin to what is build around T1 and attach that with it’s base side to the CTS and with its collector side to the Reset on the microcontroller, via a 100nF capacitor

6 thoughts on “RS232 level converter for Arduino”

  1. Thank you so much!!! I searched very long for such a solution, working without any additional IC!
    I put up the circuit on my breadboard and it work immediately. So I could transfer data from the Arduino UNO board via TX/RX pins to my PC and save the data into a file.
    Great solution!

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.