Voltage Regulator
Using LM2596 Voltage Regulator with Espressif ESP32
What is the LM2596?
LM2596 practical reference
An adjustable buck (step-down) converter module used to efficiently drop higher battery voltages down to a project's logic-level supply. Built around the LM2596 switching regulator IC, it converts a higher input voltage down to a lower, adjustable output set by an onboard trimmer potentiometer, with far less wasted heat than a linear regulator — the standard choice for powering 5V or 3.3V electronics from a 9V, 12V, or higher battery/adapter source in DIY projects.
Key specifications
- Converter type: LM2596 adjustable DC-DC buck (step-down) converter
- Input voltage: 4.5V–40V DC (practical range; must exceed the desired output plus ~1.5V dropout)
- Output voltage: Adjustable from ~1.25V to ~35V DC via onboard trimmer potentiometer
- Output current: Up to ~3A typical (with adequate heatsinking/cooling at higher loads)
- Switching frequency: ~150 kHz
- Efficiency: Up to ~92% typical, much cooler-running than a linear regulator dropping the same voltage difference
- Adjustment: Onboard trimmer potentiometer sets output voltage — measure with a multimeter under no/light load while adjusting
Pinout and connection notes
As with other adjustable regulator boards, set the output voltage using the onboard trimmer potentiometer and a multimeter before connecting sensitive electronics — these modules ship at an arbitrary factory-set voltage. Input voltage must be at least ~1.5V higher than the desired output for the regulator to maintain regulation; if the input voltage is already lower than what you need, use a boost converter like the MT3608 instead, since buck converters cannot step voltage up.
- IN+: Positive voltage input from battery/power source
- IN-: Negative input / ground
- OUT+: Positive regulated stepped-down output
- OUT-: Negative output / ground (shared with IN-)
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Setting Up LM2596 with Espressif ESP32
Wiring
| Component pin | Espressif ESP32 pin | Note |
|---|---|---|
| IN+ / IN- | Higher-voltage source (e.g. 12V adapter, multi-cell pack) | Not connected to the ESP32 |
| OUT+ | 5V / VIN pin | Trim to ~5.0-5.2V under load before connecting |
| OUT- | GND |
Swipe sideways to see every column →
- Same efficiency argument as the Arduino Uno: dropping 12V+ down to 5V with the LM2596 wastes far less heat than relying on the board's own onboard regulator from VIN.
- Same calibrate-then-connect workflow as the boost converter — verify with this sketch on a separately-powered ESP32 first.
- If you'd rather feed 3V3 directly and skip the board's onboard regulator, you can trim to ~3.3V instead — just don't feed both 5V and 3V3 at once, since that puts two regulators fighting each other.
Related Components
18650 Holder
Single-cell 18650 holder for portable project power.
AMS1117 33
Fixed 3.3V linear regulator for powering logic-level components.
MT3608
Adjustable step-up converter for boosting low battery voltages to component requirements.
TP4056
Single-cell Li-ion charging module with protection — the standard for USB-powered lithium charging.
Related Guides & Projects
MicroPython vs Arduino on ESP32: Which Should You Learn First?
An honest comparison for beginners: where MicroPython is easier, where Arduino C++ is faster, how libraries and memory differ, and how to choose based on your project instead of hype.
MicroPython ESP32 Web Server: Control an LED or Relay from Your Browser
Create a working web server with the socket module, parse requests, serve a responsive control page for an LED or a relay, keep the displayed state truthful, choose a safe relay startup state and make the server survive bad or repeated requests.
MicroPython on ESP32 and Raspberry Pi Pico W: The Complete Guide
A structured MicroPython learning path for ESP32 and Pico W. Set up your tools, control GPIO, read sensors, connect to WiFi, build web servers, publish MQTT data and make projects reliable. Start here, then follow the links by level.
boot.py vs main.py in MicroPython: What Runs, When and Why
Understand the difference between boot.py and main.py in MicroPython, startup order, Wi-Fi setup, project structure, and recovery from boot errors.