Interfacing directly with pins 0 and 1 for serial communication

I have some specific requirements to communicate with an Arduino Uno that is sporting a CNC Shield.

I must communicate with the arduino directly through the transmit and receive pins (1 and 0).

I cannot use soft serial or other pins.

I must be able to send and receive messages from pins 1 and 0 to an external device like a computer or a serial modem.

I cannot use the USB port at all.

Right now, if I directly interface with pins 1 and 0 and my PC's native COM port, I see garbled text when I send a message from the arduino. I have the PC and the arduino set at 115200 Baud.

For grins, I used the same terminal program (hercules), but connected through the Uno's USB interface and I see the data properly. Again, I cannot use this in my final design, but it at least tells me the arduino is talking.

What am I missing?

You should read this:

It is definitely not safe to directly connect your Arduino to a serial port on your computer. The voltage levels exceed what the Arduino can handle.

What kind of serial port? How is it connected? Are the grounds hooked up?

A typical DB9-style PC serial port operates at around 12 volts, that's way more than what your Arduino can handle... Voltage level shifting is required to make it work.

If you want to communicate between a PC and an Arduino without using the standard Arduino USB connection then the next simplest option is to use a USB-TTL cable connected to pins O, 1 and GND.

You should remove anything that is connected to pins 0 and 1 when you want to upload a program using the normal Arduino USB connector.


This diagram may be helpful!