Arduino TTL Voltage Levels

If I’m trying to connect 3.3V TTL serial devices to a Sparkfun RedBoard using SoftwareSerial, do I need a level shifter to avoid damaging the devices (https://www.sparkfun.com/products/12009 … 1442710417)? I’m trying to connect the following items.

GPS Receiver: https://www.sparkfun.com/products/13740

RockBLOCK Iridium SatComm Module: https://www.sparkfun.com/products/13745

One thing to note, I had actually hooked up the GPS before thinking about this question and did not damage it. However it only transmits data…it doesn’t have a RX wire, only TX. I’m guessing it was only transmitting at 3.3V to the Arduino, so it wasn’t in danger of being damaged by 5V signals coming from the board.

Good thing I realized this before trying to hookup the RockBLOCK…it’s a bit expensive!

Any output pin from a 5V device requires a level shifter to communicate with a 3.3V device. A voltage divider made from two resistors (1K and 2K) should work, as long as the data rate is not too high.

It is OK to connect a 3.3V output to an input on a 5V device, however in some cases you cannot guarantee that this will work.

The safest and best approach is to make all devices 3.3V.