Picking the best logic level converter for ESP32 and Arduino projects trips up more hobbyists than it should, mostly because “logic level converter” actually covers several genuinely different pieces of hardware that solve different problems. Grab a fast bidirectional shifter for an I2C bus and you’ll get corrupted data. Grab an I2C-safe shifter to drive a NeoPixel strip and it won’t have the output strength to work at all.
This guide covers five converters spanning the real technical distinctions that matter: I2C-safe bidirectional shifters, high-speed bidirectional shifters for SPI, and a completely different unidirectional shifter built specifically for boosting one-way signals like addressable LED data lines. If you’ve ever connected a 5V Arduino to a 3.3V ESP32, sensor, or SD card module, this is the component standing between you and a fried chip.
Mixing 5V Arduino boards with 3.3V ESP32 hardware in the same project? Our Best ESP32 Development Boards for Beginners guide flags exactly where this voltage mismatch shows up, and our Best Relay Module for Arduino and ESP32 roundup covers another module where getting the logic level right actually matters.
Quick Comparison Table
| Converter | Channels | Direction | Chip | Best For |
|---|---|---|---|---|
| HiLetgo 4-Channel (BSS138) | 4 | Bidirectional | BSS138 | Best budget/beginner, I2C-safe |
| LONELY BINARY 27-Pack | 2/4/6 mix | Bidirectional | BSS138-class | Best value/variety pack |
| Lonely Binary 6-Pack TXB0108/TXS0108 | 8 per module | Bidirectional | TXB0108 + TXS0108 | Best high-speed 8-channel, both variants |
| SparkFun 8-Channel (TXS0108E) | 8 | Bidirectional | TXS0108E | Best reference-quality 8-channel |
| Adafruit 74AHCT125 | 4 | Unidirectional | 74AHCT125 | Best for WS2812/NeoPixel LED strips |
1. Best Budget/Beginner Level Shifter: HiLetgo 4-Channel Bidirectional Logic Level Converter
HiLetgo 4-Channel Bidirectional Logic Level Converter (BSS138)
Best for: Beginners connecting a 5V Arduino to 3.3V sensors or an ESP32 over I2C, SPI, or serial.

This is the module most Arduino tutorials point to when a 3.3V sensor needs to talk to a 5V board, and for good reason. Built around four BSS138 MOSFETs with 10K pull-up resistors, it’s specifically designed to work correctly with I2C’s open-drain signaling, something a lot of faster level shifters actually get wrong. Wire the lower voltage side to LV and GND, the higher voltage side to HV and GND, and each of the four channels shifts independently in whichever direction the data happens to be flowing.
The tradeoff for that I2C-safe design is speed. The pull-up resistors that make it play nicely with I2C also slow down transitions, capping reliable use to I2C, TTL serial, and SPI under roughly 2MHz. For the overwhelming majority of hobbyist projects debugging exactly that kind of mismatch, that ceiling is nowhere close to a limitation.
Specifications:
- Channels: 4, bidirectional
- Chip: BSS138 N-channel MOSFET with 10K pull-up resistors
- Voltage range: 1.8V to 10V depending on side
- Max reliable speed: I2C, TTL serial, and SPI under approximately 2MHz
- Connections: 6-pin header per side (breadboard-friendly)
Why it stands out:
- I2C-safe by design, the single most common protocol mismatch hobbyists run into
- Cheapest, most widely documented level shifter in this guide
- Simple 6-pin header wiring with no configuration needed
- Works automatically in both directions on every channel
- Appears in the vast majority of Arduino and ESP32 wiring tutorials that need level shifting
Things to keep in mind:
- Pull-up resistors cap speed well below what TXB0108 or TXS0108-based shifters can handle
- 4 channels is enough for most single-bus jobs but limiting for complex multi-signal wiring
- Not the right choice for driving LED strips or other loads needing strong output drive
馃憠 Buy HiLetgo 4-Channel Logic Level Converter on Amazon
Verdict: The default first purchase for anyone hitting a 3.3V/5V mismatch on I2C, SPI, or serial. Cheap, safe, and exactly what most tutorials assume you’re using.
2. Best Value/Variety Pack: LONELY BINARY 27-Pack Logic Level Converter
LONELY BINARY 27-Pack Logic Level Converter (2/4/6-Channel Mix)
Best for: Makers who’d rather stock a range of channel counts than buy single-purpose packs project by project.

Most level shifter multi-packs assume you need the same channel count every time, which rarely matches reality. This pack takes a different approach: 18 two-channel modules, 6 four-channel modules, and 3 six-channel modules, all bidirectional with automatic direction sensing, in one purchase. A simple serial connection only needs 2 channels, an I2C bus needs 2 as well, but a small SPI peripheral might need 4 or more, and having the right size on hand instead of an oversized 8-channel board wired with half its pins unused is a genuine convenience.
Like the HiLetgo module above, these use the same BSS138-class open-drain design that plays correctly with I2C, so the same speed ceiling applies. What you’re really buying here is flexibility across projects rather than higher performance on any single one.
Specifications:
- Channels: mixed pack, 18x 2-channel, 6x 4-channel, 3x 6-channel
- Direction: bidirectional, automatic sensing
- Protocols: I2C, SPI, UART
- Connections: 2.54mm pitch, breadboard-friendly
- Marketed for: Arduino, ESP32, Raspberry Pi Pico
Why it stands out:
- Right-sized channel count for the job instead of always reaching for the same board
- 27 total modules across three sizes means rarely running out mid-project
- Same I2C-safe BSS138-class design as the standalone 4-channel modules
- Explicitly targeted at Arduino, ESP32, and Pico projects
- Genuinely useful for anyone building several small projects rather than one big one
Things to keep in mind:
- Same speed ceiling as any BSS138-class shifter, not a fit for high-speed SPI or parallel buses
- Buying in this volume only pays off if you’re doing enough projects to use the variety
- Smaller 2-channel modules have less board space for labeling than the larger ones
馃憠 Buy LONELY BINARY 27-Pack Logic Level Converter on Amazon
Verdict: The pick for makers who build often enough that always reaching for an oversized 8-channel board starts to feel wasteful. Right-sized shifters for whatever the project actually needs.
3. Best High-Speed 8-Channel Shifter: Lonely Binary 6-Pack TXB0108/TXS0108
Lonely Binary 6-Pack TXB0108/TXS0108 8-Channel Logic Level Shifter
Best for: SPI, SD card, and other higher-speed interfaces where the BSS138’s speed ceiling becomes a real limitation.

This pack solves the exact problem the BSS138 modules above can’t: real speed, up to 100Mbps, on 8 channels per module. What makes it worth calling out specifically is that it includes both major chip variants: three TXB0108 modules optimized for push-pull signals like SPI, and three TXS0108 modules that also handle open-drain protocols like I2C properly. Rather than guessing which chip your project needs, this pack lets you match the right one to the right job.
Both variants use automatic direction sensing, so there’s no control pin to configure, just wire the lower voltage side and higher voltage side and the chip figures out which way data is flowing on each channel independently. For SD card interfaces, fast SPI displays, or any project where the BSS138’s roughly 2MHz ceiling has become the bottleneck, this is the upgrade path.
Specifications:
- Channels: 8 per module, bidirectional
- Chips: TXB0108 (push-pull optimized) and TXS0108 (open-drain compatible)
- Voltage range: 1.2V to 3.6V (A side), 1.65V to 5.5V (B side)
- Max data rate: up to 100Mbps
- Direction sensing: automatic, no control pins required
Why it stands out:
- Includes both TXB0108 and TXS0108 variants, so you can match the chip to the protocol
- Up to 100Mbps handles SPI, SD card interfaces, and other fast buses the BSS138 can’t
- Automatic direction sensing on every channel, no configuration needed
- 8 channels per module covers complex multi-signal wiring in one board
- Compact breakout with standard headers for breadboard use
Things to keep in mind:
- TXB0108 variant is not I2C-safe, use the TXS0108 modules in the same pack for that protocol instead
- Higher price than the simpler BSS138-based options for the added speed and channel count
- No strong output drive for LEDs or long cable runs, still a signal-level shifter, not a driver
馃憠 Buy Lonely Binary TXB0108/TXS0108 8-Channel Shifter on Amazon
Verdict: The right upgrade once a BSS138 shifter’s speed ceiling becomes the actual bottleneck. Having both chip variants in one pack removes the guesswork of picking the wrong one.
4. Best Reference-Quality 8-Channel Shifter: SparkFun Level Shifter (TXS0108E)
SparkFun 8-Channel Level Shifter (TXS0108E)
Best for: Makers who want a well-documented, single-purpose 8-channel shifter from a brand with a long reference-design track record.

SparkFun’s breakout for the TXS0108E has been the reference design cited across countless tutorials and forum threads for years, and that documentation depth is the real reason to reach for it over a generic clone. The TXS0108E itself handles both push-pull and open-drain signaling, meaning it works correctly with I2C as well as SPI, at speeds up to 110Mbps in push-pull mode or 1.2Mbps in open-drain mode.
One detail trips up first-time users: the board pulls its OE (output enable) pin low by default, so it needs to be tied to VCC_A to actually enable the chip. SparkFun’s hookup guide documents this clearly, which is exactly the kind of detail that separates a well-supported reference board from an unlabeled clone where you’re left guessing.
Specifications:
- Channels: 8, bidirectional
- Chip: TXS0108E (Texas Instruments)
- Voltage range: 1.4V to 3.6V (Port A), 1.65V to 5.5V (Port B)
- Max data rate: 110Mbps push-pull, 1.2Mbps open-drain
- Note: OE pin must be tied to VCC_A to enable the board
Why it stands out:
- Single chip handles both I2C-style open-drain and SPI-style push-pull signaling
- Extensive official documentation and hookup guide from SparkFun
- Long track record as a reference design cited across the hobbyist community
- High push-pull speed suits fast SPI devices like SD cards and displays
- VCC_A/VCC_B constraint (A must not exceed B) is clearly documented, avoiding a common wiring mistake
Things to keep in mind:
- Requires tying the OE pin to VCC_A, easy to miss on a first build without reading the documentation
- Costs more than generic clones offering similar core TXS0108E specs
- VCC_A must stay at or below VCC_B, wiring it backward won’t work correctly
馃憠 Buy SparkFun 8-Channel Level Shifter on Amazon
Verdict: The pick when documentation quality and a proven reference design matter as much as the core specs. A dependable choice for both I2C and SPI on the same board.
5. Best Unidirectional Shifter for LED Strips: Adafruit 74AHCT125
Adafruit 74AHCT125 Quad Level-Shifter (3V to 5V)
Best for: Driving WS2812/NeoPixel LED strips and other one-way signals from a 3.3V microcontroller.

Every converter above this one is bidirectional, built to shift signals traveling in both directions on the same channel. The 74AHCT125 is deliberately different: it’s a one-way buffer with four independent channels, and that unidirectional design is exactly what makes it the right tool for driving addressable LED strips like WS2812 and NeoPixels from a 3.3V board like an ESP32.
The reason a bidirectional shifter like the TXB0108 falls short here is output strength. Adafruit’s own documentation for the TXB0108 specifically notes it doesn’t have strong output pins capable of driving LEDs or long cable runs, since it’s designed to sit between two logic chips, not drive a load. The 74AHCT125 is built for exactly that job: power it with 5V, feed it 3.3V logic on the input, and it outputs a strong, clean 5V signal capable of reliably driving a full LED strip.
Specifications:
- Channels: 4, independent, unidirectional
- Chip: 74AHCT125
- Direction: shifts 3V logic up to 5V (power with 5V to detect 3V logic)
- Output current: 8mA per channel
- Supply voltage: 4.5V to 5.5V
Why it stands out:
- Strong output drive capable of reliably powering LED strip data lines, unlike bidirectional shifters
- Purpose-built for the extremely common 3.3V-to-5V NeoPixel/WS2812 use case
- Four independent channels, each individually enabled via its own OE pin
- Small, simple, and inexpensive compared to more complex bidirectional shifters
- Well documented by Adafruit specifically for this LED strip use case
Things to keep in mind:
- Unidirectional only, not a substitute for the bidirectional shifters above on I2C or SPI buses
- Requires tying the OE pins to ground to keep all four channels active
- Only shifts one direction (3V to 5V), it won’t step a 5V signal down to 3V on the same channel
馃憠 Buy Adafruit 74AHCT125 Quad Level-Shifter on Amazon
Verdict: The specialist tool in this guide. Not a general-purpose level shifter, but exactly the right one when a 3.3V board needs to reliably drive a 5V LED strip.
Which Logic Level Converter Should You Buy?
The right logic level converter for Arduino and ESP32 projects comes down to two questions before price ever matters: is the signal bidirectional or one-way, and does the protocol use open-drain signaling like I2C or push-pull signaling like SPI.
For most beginners hitting a 3.3V/5V mismatch on I2C, SPI, or serial, the HiLetgo 4-Channel BSS138 converter is the correct default, it’s I2C-safe and covers the vast majority of hobbyist wiring problems. Makers building several small projects at different channel counts should look at the LONELY BINARY 27-Pack instead of buying single-purpose boards project by project.
Once speed becomes the limiting factor, on SD cards, fast SPI displays, or other high-throughput buses, the Lonely Binary TXB0108/TXS0108 6-pack is the upgrade, and including both chip variants means you’re never stuck with the wrong one. The SparkFun TXS0108E covers the same speed and protocol range with the documentation depth of a proven reference design. And if the project is driving a NeoPixel or WS2812 LED strip rather than talking to a sensor, skip the bidirectional shifters entirely, the Adafruit 74AHCT125 is the unidirectional tool actually built for that job.
Bidirectional vs. Unidirectional: Why the 74AHCT125 Is Different
Four of the five converters in this guide are bidirectional, meaning each channel can pass a signal in either direction depending on which side is currently driving it. That’s the right behavior for two-way communication buses like I2C and SPI, where data flows both ways depending on the moment. But it comes with a real tradeoff: bidirectional chips like the TXB0108 are built to sit between two logic devices, not to drive a physical load, so their output current is too weak to reliably power something like an LED strip’s data line, especially over any real cable length.
The 74AHCT125 solves a completely different problem. It’s a unidirectional buffer, each of its four channels only ever shifts a signal in one fixed direction, from a 3.3V input to a strong, clean 5V output. That fixed direction is exactly what makes it capable of the higher output current needed to drive a real load reliably, which is why it’s the standard recommendation anywhere a 3.3V microcontroller needs to control 5V-logic WS2812 or NeoPixel LEDs.
The practical rule: if the signal genuinely needs to travel both ways, use a bidirectional shifter matched to the protocol’s signaling style. If the signal only ever flows one direction and needs to actually drive something on the other end, a unidirectional buffer like the 74AHCT125 is the right and often only reliable option.
I2C-Safe vs. High-Speed: BSS138 vs. TXB0108 vs. TXS0108
The three bidirectional chip families in this guide look similar on a spec sheet, but the difference between them explains a huge share of the confusing wiring problems hobbyists run into.
BSS138-based shifters, like the HiLetgo and LONELY BINARY modules, use MOSFETs with pull-up resistors that mimic I2C’s own open-drain signaling style. That design makes them naturally I2C-safe, since the chip’s behavior matches what I2C already expects from devices on the bus. The tradeoff is speed: those same pull-up resistors slow down signal transitions, capping reliable performance at roughly 2MHz, comfortably above I2C’s typical 100kHz to 400kHz range but nowhere near what fast SPI needs.
TXB0108-based shifters take the opposite approach: push-pull output stages that actively drive both high and low states, reaching speeds up to 100Mbps. That speed is exactly why they’re the right choice for SPI, but it’s also why they’re explicitly not recommended for I2C. Push-pull outputs fight against I2C’s expectation that a device can pull the line low without another device actively fighting to hold it high, which is the corrupted-data problem mentioned earlier.
TXS0108-based shifters split the difference by supporting both signaling styles on the same chip, handling open-drain protocols like I2C as well as push-pull ones like SPI, at the cost of dropping to a much slower 1.2Mbps when operating in open-drain mode. For a project that needs one shifter to safely handle both an I2C sensor and a faster SPI display, that flexibility is worth the added complexity over picking a single-purpose BSS138 or TXB0108 board.
Final Recommendation
For most Arduino and ESP32 projects, the HiLetgo 4-Channel BSS138 converter remains the best starting point for a logic level converter for Arduino projects, I2C-safe, cheap, and correct for the overwhelming majority of hobbyist wiring problems. Anyone driving NeoPixel or WS2812 LED strips from a 3.3V board should skip straight to the Adafruit 74AHCT125 instead, since none of the bidirectional shifters in this guide have the output strength for that job.
ArduinoYard has several guides where this exact voltage mismatch shows up in practice: Measuring Distance with HC-SR04 and ESP32 walks through the voltage divider needed on the sensor’s ECHO pin, Bluetooth Module HC-05 with Arduino covers the same problem on a different module, and the ESP32 Pinout and GPIO Reference explains why the ESP32’s 3.3V logic makes this a recurring issue across nearly every project.
Rounding out your Arduino and ESP32 parts bin? Check out our guides on the Best DC Motor Driver for Arduino and ESP32, Best Stepper Motor Driver for Arduino, and Best Arduino Sensor Kit.