Documentation

ShillehTek LM2596 Step-Down Buck Converter Module DC-DC w/ Digital Voltmeter | ShillehTek Product Manual
Documentation / ShillehTek LM2596 Step-Down Buck Converter Module DC-DC w/ Digital Voltmeter | ShillehTek Product Manual

ShillehTek LM2596 Step-Down Buck Converter Module DC-DC w/ Digital Voltmeter | ShillehTek Product Manual

Overview

The LM2596 is a high-efficiency adjustable DC-DC step-down buck converter built around the LM2596S regulator. With a built-in digital voltmeter and a clean 4-button user interface, it lets you take any DC source between 4V and 40V and turn it into a clean adjustable output between 1.25V and 37V — all without breaking out a multimeter.

This module is a workshop staple for powering Arduino, Raspberry Pi, ESP32, ESP8266, motors, sensors, LED strips, and prototype electronics directly from a higher-voltage source like a 12V wall adapter, a battery pack, or a solar panel. The on-board display shows the live input or output voltage, and the function key lets you switch between input/output display, fine-tune the voltage in 0.01V increments, or drop the module into a low-power state.

It is built around the LM2596S monolithic switching regulator, which is more efficient than linear regulators and runs cooler under load. With up to 3A continuous output current and ~92% peak efficiency, it can comfortably power most maker-grade projects.

At a Glance

Input Voltage
4V - 40V DC
Output Voltage
1.25V - 37V DC
Output Current
3A max
Efficiency
Up to 92%
Switching Frequency
150 kHz
Built-in Display
3-digit Voltmeter

Specifications

Parameter Value
Regulator IC LM2596S-ADJ
Input Voltage Range 4V - 40V DC
Output Voltage Range 1.25V - 37V DC (V_out must be at least ~1.5V below V_in)
Output Current 3A maximum, 2A recommended for sustained loads
Switching Frequency 150 kHz (fixed)
Conversion Efficiency Up to 92% (typical 85% across mid-range loads)
Output Ripple < 30 mV peak-to-peak (typical)
Load Regulation ± 0.5%
Voltage Display Accuracy ± 0.1V (3-digit 7-segment)
Operating Temperature -40°C to +85°C
Adjustment Method Multi-turn trim potentiometer
Dimensions ~62 x 28 x 14 mm

Pinout Diagram

LM2596 step-down buck converter pinout diagram showing IN+, IN-, OUT+, OUT-, multi-turn voltage adjustment trimmer, 3-digit digital voltmeter, and the function button for input/output display, fine-tune mode, and low-power mode

Wiring Guide

Powering an Arduino from 12V

The most common use: drop a 12V wall adapter or battery down to 5V to feed an Arduino through its USB +5V or VCC rail. Always set the output voltage before connecting the Arduino.

LM2596 Terminal Connect To Details
IN+ +12V source (battery / wall adapter)
IN- Source GND
OUT+ Arduino 5V pin Or VIN if you target 7-12V
OUT- Arduino GND Common ground
Warning: Adjust the output voltage with a multimeter before wiring it to your Arduino. The LM2596 ships at an unknown voltage and could deliver 30V+ on power-up, which will instantly destroy a 5V board.
Tip: The 5V pin bypasses Arduino's onboard regulator (which is fine — that's the point), but never feed more than 5.0–5.2V into it. For VIN you can safely feed 7-12V; the onboard regulator will drop it to 5V but will get hot.

Powering an ESP32 or ESP8266

ESP32 and ESP8266 boards have onboard 5V-to-3.3V regulators, so you typically feed them 5V via the 5V pin. Set the LM2596 output to 5.0V before connecting.

LM2596 Terminal Connect To
IN+ +12V (or any 7-40V source)
IN- Source GND
OUT+ ESP32 / ESP8266 5V pin (or VIN)
OUT- ESP32 / ESP8266 GND
Warning: Do not feed 3.3V output directly into the 3.3V pin of an ESP32. The onboard regulator may not handle reverse current cleanly, and your readings can drift. Feed 5V into the 5V pin and let the board's regulator do its job.

Powering a Raspberry Pi

Raspberry Pi can be powered through the 5V pins on the GPIO header (pins 2 and 4). This bypasses the onboard polyfuse, so accuracy matters — set output to 5.1V before connecting.

LM2596 Terminal Raspberry Pi GPIO Details
OUT+ Pin 2 or Pin 4 (5V) 5.1V exactly is ideal
OUT- Pin 6 (GND) Or any GND pin
Warning: A Raspberry Pi 4 or 5 can pull 1.5–3A under load. Make sure the LM2596 is fed enough input current and that the wiring is thick enough; thin breadboard jumpers will brown out the Pi during boot.
Tip: Powering through GPIO bypasses the official USB-C polyfuse and the input voltage filter. If you're not sure your input is clean, consider using the official USB-C input instead.

Motors, LED Strips, and General Loads

The LM2596 is a great front-end for motor drivers (L298N, TB6612, A4988), 12V LED strips that need 5V, or sensor rails that need an isolated voltage from a shared battery.

LM2596 Terminal Load Connection
IN+ / IN- Battery, wall adapter, or solar panel (4-40V)
OUT+ / OUT- Motor driver V+ / GND, LED strip + / -, or sensor rail
Tip: When you're not sure of the load's safe input, set the LM2596 to 5.0V first, verify with the onboard display, then dial up to your target voltage in small increments while watching for warm components.
Info: If you're powering a motor and a microcontroller from the same source, share the LM2596 input but use two separate buck modules — one set for motor voltage, one set for 5V logic — to keep motor noise off your logic supply.

Code Examples

The LM2596 is a passive power supply module — it does not connect to a microcontroller's GPIO and does not require any code to operate. The voltage is set entirely with the on-board trim potentiometer and the function button.

Setting the Output Voltage (Procedure)

set-output-voltage.txt
1. Connect IN+ and IN- to your DC source (4-40V).
   The display lights up and shows the input voltage.

2. Short-press the function button.
   The display switches between input ("IN") and output ("OUT") readings.
   Leave it on OUT.

3. Use a small flathead screwdriver on the multi-turn trim pot.
   - Clockwise   = step UP voltage
   - Counter-CW  = step DOWN voltage
   The display updates live.

4. Once you see your target voltage on OUT, disconnect input,
   then wire the load to OUT+ / OUT- and re-power.

Optional: medium-press the button to enter fine-tune mode
(adjusts the displayed value by 0.01V offset for calibration).
Long-press the button to enter low-power "display off" state.

Reading Output Voltage from a Microcontroller (Optional)

If you want a microcontroller to monitor the LM2596 output, sample the OUT+ rail through a voltage divider into an ADC pin. Below is a generic Arduino sketch that reads a 0-15V rail through a 10k:2k divider.

voltage_monitor.ino
// Read LM2596 OUT+ through a 10k:2k voltage divider on A0.
// Divider ratio = 2k / (10k + 2k) = 1/6
// So Arduino reads up to 5V * 6 = 30V on the rail.

const int sensePin = A0;
const float dividerRatio = 6.0;
const float adcRef = 5.0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(sensePin);
  float vAtPin = (raw / 1023.0) * adcRef;
  float vRail = vAtPin * dividerRatio;
  Serial.print("LM2596 output: ");
  Serial.print(vRail, 2);
  Serial.println(" V");
  delay(500);
}

Frequently Asked Questions

How do I adjust the output voltage on the LM2596?
Apply input voltage to IN+ and IN-, short-press the function button until the display shows OUT, then turn the multi-turn trim potentiometer with a small screwdriver. Clockwise increases the voltage, counter-clockwise decreases it. The display updates live as you turn.
What does the function button do?
A short press toggles the display between input voltage (IN) and output voltage (OUT). A medium press enters a fine-tune mode for calibrating the displayed value. A long press puts the module into a low-power state where the display turns off; pressing again wakes it.
Can I get exactly 3.3V or exactly 5.0V out of it?
Yes, but you have to dial it in by hand. The trim potentiometer is a 25-turn pot, so it gives you fine control. Use a multimeter on OUT+ and OUT- with no load connected, and adjust until you see the exact voltage you want. Then verify under load — heavy loads can drop the voltage slightly.
Why is my output voltage lower than I set it?
Two common reasons. First, the LM2596 has a "dropout" of about 1.5V — your output voltage cannot get closer than ~1.5V below your input voltage. So a 9V input cannot reliably produce 8V; use 12V input for 8V out. Second, under heavy current draw the output sags slightly; budget a few hundred millivolts of headroom.
How much current can it actually deliver?
The datasheet rates the LM2596S at 3A maximum, but realistic continuous current is around 2A without a heatsink. Above 2A the regulator IC and inductor get hot. For sustained 3A loads, attach a small heatsink and ensure airflow.
Can I use it to charge a battery?
No. The LM2596 is a fixed-voltage step-down regulator with no current limit and no charge-termination logic. It will happily push 3A into a battery and damage it. Use a dedicated charger module (TP4056 for single-cell lithium, for example) or a CC-CV bench supply.
Is the input/output polarity protected?
No. Reversing the input wires will likely destroy the LM2596S regulator. Always double-check polarity before applying power, and consider adding a series Schottky diode on the input if you're driving from a connector that can be plugged in either way.

Related Tutorials