Keszoox
4-Channel Bi-Directional Logic Level Shifter — 3.3V↔5V, BSS138, Arduino & ESP32 (5-Pack)
4-Channel Bi-Directional Logic Level Shifter 3.3V↔5V, BSS138, Arduino & ESP32 (5-Pack)
Couldn't load pickup availability
4-Channel Bi-Directional Logic Level Shifter — 3.3V ⇄ 5V, BSS138 MOSFET (5-Pack)
This 4-channel bi-directional logic level shifter module uses BSS138 N-channel MOSFETs to translate logic signals between 3.3V and 5V systems in both directions simultaneously. With four independent channels, it is the standard solution for interfacing 5V Arduino boards with 3.3V devices such as ESP8266, ESP32, Raspberry Pi, and 3.3V sensors over I²C, SPI, UART, and GPIO.
Key Specifications
| Parameter | Value |
|---|---|
| Channels | 4 (independent, bi-directional) |
| Level Shifting | 3.3V ⇄ 5V (both directions simultaneously) |
| Shifter IC | BSS138 N-Channel MOSFET (per channel) |
| High-Side Voltage (HV) | 3.3V – 10V |
| Low-Side Voltage (LV) | 1.8V – 3.3V |
| Max Signal Frequency | ~1MHz (I²C fast mode compatible) |
| Pull-up Resistors | 10kΩ onboard (for I²C use) |
| Quantity | 5 modules |
BSS138 Level Shifter vs TXS0108E — Which Do I Need?
| Feature | BSS138 Module (this listing) | TXS0108E |
|---|---|---|
| Channels | 4 | 8 |
| I²C compatible | Yes (with pull-ups) | Not recommended (push-pull only) |
| SPI / UART | Yes | Yes |
| Max frequency | ~1MHz | ~100MHz |
| Best for | I²C, low-speed SPI, UART, GPIO | High-speed SPI, SDIO, push-pull signals |
Why Choose This Level Shifter?
- True bi-directional — signals pass in both directions without manual direction control
- I²C compatible — onboard 10kΩ pull-ups make it plug-and-play for I²C bus level shifting
- 4 independent channels — shift SDA, SCL, and 2 additional signals simultaneously
- 1.8V–10V range — works with 1.8V, 3.3V, and 5V logic systems
- 5-pack value — one for each project interface
Compatible With / Common Use Cases
- Arduino (5V) ↔ ESP8266/ESP32 (3.3V): I²C or SPI communication between 5V Arduino and 3.3V WiFi module
- Arduino (5V) ↔ Raspberry Pi (3.3V): GPIO and UART level shifting for Pi–Arduino communication
- 5V Arduino ↔ 3.3V sensors: BME280, BMP280, MPU-6050, VL53L0X sensor interfacing
- 5V ↔ 3.3V I²C bus: Connect 5V I²C master (Arduino) to 3.3V I²C slaves (OLED, RTC, sensors)
- UART level shifting: 5V TX/RX to 3.3V TX/RX for serial communication
Frequently Asked Questions
Q: How do I connect this level shifter for I²C between Arduino (5V) and ESP32 (3.3V)?
A: Connect HV to Arduino 5V, LV to ESP32 3.3V, GND to common ground. Connect Arduino SDA to HV1, ESP32 SDA to LV1. Connect Arduino SCL to HV2, ESP32 SCL to LV2. The onboard 10kΩ pull-ups handle I²C bus requirements — no additional pull-ups needed.
Q: Can this level shifter be used for SPI at high speeds?
A: The BSS138 MOSFET shifter works reliably up to ~1MHz. For SPI at 4MHz or higher, use a dedicated push-pull level shifter (TXS0108E, SN74LVCC3245A) instead. For I²C (100kHz standard, 400kHz fast mode) and UART (up to 115200 baud), this module is fully adequate.
Q: Do I need to connect both HV and LV power pins?
A: Yes — both HV (high-voltage side, e.g., 5V) and LV (low-voltage side, e.g., 3.3V) must be connected to their respective supply voltages. The BSS138 gate bias depends on both supplies to determine the switching threshold. Missing either supply will cause incorrect level shifting.
Package Contents
- 5× 4-Channel Bi-Directional Logic Level Shifter Module (BSS138)
