

The 4-Channel Bi-Directional Logic Level Shifter (Manufacturer Part ID: BSS138 Level Shifter Module) is a compact and versatile device designed to facilitate communication between electronic components operating at different voltage levels. It enables seamless bi-directional data transfer across four independent channels, making it an essential tool for interfacing low-voltage microcontrollers (e.g., 3.3V) with higher-voltage peripherals (e.g., 5V).








The following table outlines the key technical details of the 4-Channel Bi-Directional Logic Level Shifter:
| Parameter | Specification | 
|---|---|
| Operating Voltage (High) | 5V | 
| Operating Voltage (Low) | 1.8V to 3.3V | 
| Number of Channels | 4 | 
| Communication Type | Bi-Directional | 
| Transistor Type | N-Channel MOSFET (BSS138) | 
| Maximum Data Rate | ~100 kHz (I2C) | 
| Dimensions | ~15mm x 15mm | 
The module has 8 pins, divided into two voltage domains: High Voltage (HV) and Low Voltage (LV). The table below describes each pin:
| Pin Name | Description | 
|---|---|
| HV | High voltage input (e.g., 5V). Connect to the higher voltage power supply. | 
| LV | Low voltage input (e.g., 3.3V). Connect to the lower voltage power supply. | 
| GND | Ground. Connect to the common ground of the circuit. | 
| HV1, HV2, HV3, HV4 | High voltage side of the four channels. Connect to the high-voltage device. | 
| LV1, LV2, LV3, LV4 | Low voltage side of the four channels. Connect to the low-voltage device. | 
Power Connections:
Data Connections:
Communication Protocols:
Below is an example of using the level shifter to interface a 3.3V sensor with a 5V Arduino UNO via I2C:
#include <Wire.h> // Include the I2C library
void setup() {
  Wire.begin(); // Initialize I2C communication
  Serial.begin(9600); // Start serial communication for debugging
  Serial.println("I2C Level Shifter Example");
}
void loop() {
  // Example: Request data from a 3.3V sensor at address 0x40
  Wire.beginTransmission(0x40); // Start communication with the sensor
  Wire.write(0x00); // Send a command or register address
  Wire.endTransmission(); // End transmission
  Wire.requestFrom(0x40, 2); // Request 2 bytes of data
  if (Wire.available() == 2) {
    int data = Wire.read() << 8 | Wire.read(); // Read and combine the data
    Serial.print("Sensor Data: ");
    Serial.println(data); // Print the received data
  }
  delay(1000); // Wait 1 second before the next request
}
No Communication Between Devices:
Data Corruption or Signal Loss:
Overheating or Damage:
Q: Can this module be used for analog signals?
A: No, the module is designed for digital signals only. It is not suitable for analog signal level shifting.
Q: What is the maximum voltage supported on the HV side?
A: The HV side supports a maximum voltage of 5V. Exceeding this may damage the module.
Q: Can I use fewer than four channels?
A: Yes, you can use as many or as few channels as needed. Unused channels can be left unconnected.
Q: Does the module require external power?
A: No, the module is powered directly from the HV and LV voltage inputs.
By following this documentation, you can effectively integrate the 4-Channel Bi-Directional Logic Level Shifter into your projects and ensure reliable communication between devices operating at different voltage levels.