Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

Arduino TXS0108E: Safe 3.3V to 5V Level Shifting | ShillehTek

May 15, 2026 30 views

Arduino TXS0108E: Safe 3.3V to 5V Level Shifting | ShillehTek
Project

Build a safe 3.3 V to 5 V interface using an Arduino and the TXS0108E 8-channel level shifter, protecting 3.3 V devices while passing fast digital signals.

15 min Beginner3 parts

Project Overview

Arduino TXS0108E level shifting: Use the TXS0108E 8-channel bidirectional logic-level shifter to safely connect a 5 V Arduino to 3.3 V boards (ESP32, Pi Pico, Raspberry Pi) so both devices can communicate without damaging the 3.3 V side.

When you wire an Arduino (5 V) to a 3.3 V target, the voltage mismatch can damage the 3.3 V chip. The TXS0108E is an 8-channel bidirectional logic-level translator that handles fast digital signals (including SPI) without resistors or MOSFET level-shifter hacks.

  • Time: ~15 minutes
  • Skill level: Beginner
  • What you will build: An Arduino UNO talking SPI to a 3.3 V chip through the TXS0108E.
TXS0108E 8-channel bidirectional logic level shifter module used to translate between 3.3 V and 5 V devices
TXS0108E - 8 bidirectional channels in a single module.

Parts List

From ShillehTek

External

  • A 3.3 V target device (ESP32, Pi Pico, MFRC522, etc.)

Note: TXS0108E has weak internal pull-ups. It works for SPI and digital I/O but is not recommended for I b2C with strong external pull-ups; use a BSS138-based shifter for I b2C.

Step-by-Step Guide

Step 1 - Inspect the Module

Goal: Identify the low-voltage side (A) and high-voltage side (B), plus the power and enable pins.

What to do: Locate the A-side pins (typically used for 3.3 V signals) and the B-side pins (typically used for 5 V signals). Find VA, VB, GND, and OE on the board silk screen.

Top view of a TXS0108E level shifter module showing A-side and B-side pin headers
Two rows of 8: A side (low voltage, for example 3.3 V) and B side (high voltage, for example 5 V).
TXS0108E pinout diagram highlighting VA, VB, GND, OE and the A1-A8 and B1-B8 channels
VA and VB power both rails. OE (output enable) must be pulled HIGH to activate.

Expected result: You know which side is referenced to 3.3 V (VA/A pins) and which side is referenced to 5 V (VB/B pins), plus where to wire OE.

Step 2 - Wire It Up

Goal: Power both voltage rails and connect your signal lines so the TXS0108E can translate between 3.3 V and 5 V.

What to do: Provide 3.3 V to VA, 5 V to VB, connect grounds together, and tie OE to 3.3 V so the translator is enabled. Then map your signal lines A1 to A8 to the 3.3 V device, and B1 to B8 to the 5 V device.

Wiring diagram showing TXS0108E translating Arduino 5 V signals to an ESP32 3.3 V side with VA, VB, GND, and OE connections
Power both rails, tie OE HIGH, then translate up to 8 lines.
  • VA d2 3.3 V (low side reference)
  • VB d2 5 V (high side reference)
  • GND d2 common GND
  • OE d2 3.3 V (always enabled)
  • A1 d5A8 d2 3.3 V device pins
  • B1 d5B8 d2 5 V device pins

Expected result: The TXS0108E has VA and VB powered correctly, shares ground between both systems, and is enabled with OE HIGH.

Step 3 - Test With a Simple Toggle

Goal: Verify a 5 V Arduino output is translated to a safe 3.3 V signal on the A side.

What to do: Upload this sketch to your Arduino and connect Arduino D8 to a TXS0108E B channel (for example B1). Probe the matching A channel (for example A1) on the 3.3 V side using a multimeter or oscilloscope.

Code:

// Toggle pin D8 on the 5V side; B1 on the TXS0108E reflects to A1 on the 3.3V side.
void setup() { pinMode(8, OUTPUT); }
void loop() {
  digitalWrite(8, HIGH); delay(500);
  digitalWrite(8, LOW);  delay(500);
}

Expected result: On A1 you should see a 0 V / 3.3 V square wave that follows the Arduino e2 80 99s 5 V toggle.

Step 4 - See It in Action

Goal: Confirm the level shifter operates correctly in a real wired setup once powered and enabled.

What to do: Re-check VA, VB, GND, and OE wiring, then run your circuit and confirm translated signals behave as expected on both sides.

TXS0108E module connected in a working mixed-voltage circuit with power rails and signal wires attached
Once OE is high and both rails are powered, the shifter works.

Expected result: Mixed-voltage signals pass through the TXS0108E without exposing the 3.3 V device to 5 V logic levels.

Step 5 - Where to Take It Next

Goal: Apply the TXS0108E to common mixed-voltage projects.

What to do: Use the extra channels to translate additional GPIO, SPI, or one-wire style digital lines between 5 V and 3.3 V devices.

  • Wire an Arduino to a 3.3 V RC522 RFID safely
  • Connect an Arduino UNO to a Raspberry Pi e2 80 99s GPIO header
  • Bridge two boards that share SPI but run on different rails
  • Drive WS2812B LEDs from a 3.3 V MCU (boost their data line to 5 V)

Expected result: You have a repeatable wiring pattern for safely translating up to 8 digital lines between 3.3 V and 5 V systems.

Conclusion

The TXS0108E makes it easy to connect a 5 V Arduino to 3.3 V boards by translating up to eight bidirectional signal lines while keeping the 3.3 V side protected.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or designing a mixed-voltage system for your product, check out our IoT consulting services.