3.3V to 5V PWM Converter for Industrial Applications
A 3.3V to 5V PWM converter is essential in many industrial applications where microcontrollers like STM32 output only 3.3V logic but the motor drivers and sensors require full 5V PWM for proper operation.
In our recent project, we faced a very common but tricky issue — we had a PWM signal coming from a 3.3V microcontroller (STM32), but our motor driver and few industrial sensors required a full 5V PWM input. Direct connection worked, but the motor was just running at half speed.
At first, we thought it was a simple logic level problem, so we tried few quick fixes — like transistor-based level shifters using BC547, MOSFET circuits, and even resistor dividers. But honestly, those circuits didn’t perform well for PWM. Either the signal got distorted or the response was too slow, and it just wasn’t reliable enough for industrial use.
After lot of trials and coffee-filled nights, we finally found a clean and professional solution using the MCP6001 / MCP6002 operational amplifier.
Hardware notes (what we learned)
At first we tried the MCP6001 because it is small and easy to use. But the MCP6001 is an SMD component and comes as single channel. For lab it was fine, but in industrial use we prefer the through-hole, its easy to hand solder and more mechanically roubst. That is why we moved to MCP6002, it gives two op channels and is available in through hole friendly pkg. So practical rec:
- If you are need a single channel and space is less (and you can able to handle SMD) MCP6001 is ok.
- If you want durability, easy assembly, and two channels, you can use MCP6002 (through-hole). This is better for the industrial boards / projects where vibrations, field soldering.
The Problem
Most modern controllers (like STM32, ESP32, etc.) output only 0–3.3V PWM signals, but many motor controllers, analog sensors, and industrial modules expect 0–5V signals for proper speed or control response. When you feed a 3.3V PWM into a 5V system, it doesn’t get recognized as full duty cycle, resulting in reduced motor speed or incomplete output range.
The Solution
We used MCP6002, a dual operational amplifier from Microchip, powered by 5V supply. The circuit is designed as a non-inverting amplifier that takes the 0–3.3V PWM input and scales it up linearly to 0–5V.
This small op-amp circuit solved everything — no distortion, no signal lag, and works perfectly even at higher PWM frequencies.
Circuit Design and PCB Overview
The circuit includes:
- MCP6002 Op-Amp (we used one of its two channels)
- 10k resistors for gain setting
- Small capacitor for stability
- An LED for indication
- Standard 5V power input
Input: 0–3.3V PWM
Output: 0–5V PWM
Power: 5V
The gain is adjusted with resistors (R1, R3, R4), giving just the right scaling factor to the match 3.3V to 5V conversion.
Why MCP6002?
- It works perfectly with the single supply of 5V
- Its Rail to rail input and output
- High frequency response (good for fast PWM)
- Dual op-amp package — can drive two channels if needed
PCB Design
We designed the PCB in Proteus and made it compact and clean. The 3D view below shows the final layout — MCP6002 in the center, resistors aligned, and power connectors placed neatly for easy wiring.




The board also has a simple LED to indicate output status, which helps in testing PWM visually.
Results
When connected to our STM32 PWM output and 5V motor driver, the performance was excellent.
The motor now runs full speed at 100% duty cycle, and all PWM duty cycles are linear and smooth.
We also tested it with few other industrial modules — no signal delay, no heating, and it works continuously without drift.
Final Thoughts
Sometimes simple looking problems like voltage level mismatch can waste lot of time. We learned that transistor level shifters are good for logic but not ideal for analog PWM or precision signals. Using MCP6001/MCP6002 op-amp gives a clean and accurate 0–3.3V to 0–5V conversion, and it’s absolutely reliable for long term industrial use.
If you are facing similar issues with motor speed or analog input scaling — try this circuit, it is simple, cheap, and works like a charm.
For More Details: Microchip MCP6002 Datasheet
Project Name: Zealyen Info – 3.3V to 5V PWM Converter
IC Used: MCP6002
Tested With: STM32, Arduino (3.3V logic), 5V Motor Driver