Unexpected resets, unstable behavior and random crashes are common problems in microcontroller-based systems. In most cases, these issues are caused by voltage instability or insufficient power supply.
This article explains brownouts, voltage drops and how to design stable power systems for reliable operation.
What is a Brownout?
A brownout occurs when the supply voltage drops below the minimum required level for proper operation.
- Voltage temporarily too low
- Microcontroller cannot operate correctly
Many microcontrollers include brownout detection to reset the system when voltage drops.
Why Brownouts Cause Resets
- Logic circuits require stable voltage
- Low voltage leads to undefined behavior
- System resets to prevent malfunction
This is a safety feature, not a defect.
Typical Causes of Voltage Instability
Insufficient Current Supply
- Power supply cannot handle load
- Voltage drops under load
Current Spikes
- ESP32 WiFi transmissions
- Sudden load changes
These spikes can be very short but significant.
Voltage Drop in Wiring
- Long or thin wires
- Poor connectors
Weak Voltage Regulators
- Linear regulators overheating
- Small regulators unable to handle peaks
ESP32: A Special Case
The ESP32 is particularly sensitive to power issues.
- Peak current: up to 500-700mA
- Very fast current spikes
Symptoms:
- Random resets
- WiFi disconnects
- Boot loops
Measuring Voltage Stability
To diagnose issues:
- Measure voltage at the microcontroller
- Check under real operating conditions
Important:
- Voltage may look stable without load
- Problems appear only during activity
Solutions for Stable Power
Use a Strong Power Supply
- Ensure sufficient current capacity
- Add margin above expected load
Use Buck Converters Instead of Linear Regulators
- Higher efficiency
- Better handling of current spikes
Add Decoupling Capacitors
- Place near microcontroller power pins
- Typical values:
- 100nF ceramic
- 470µF-1000µF electrolytic
Capacitors provide short-term energy during spikes.
Improve Wiring
- Use short, thick wires
- Avoid loose connections
Use Proper Grounding
- Ensure solid ground connections
- Avoid ground loops
Brownout Detection (BOD)
Many microcontrollers include brownout detection:
- Monitors supply voltage
- Triggers reset if voltage drops too low
Disabling BOD is not recommended — it hides the problem instead of fixing it.
Typical Real-World Fixes
ESP32 Resetting
- Add 1000µF capacitor
- Use stronger 5V supply
Arduino Resetting on Load
- Replace VIN input with buck converter
System Fails with Long Cable
- Reduce cable length
- Increase wire thickness
Common Mistakes
- Using weak power supplies
- Ignoring current spikes
- Powering via unstable sources
- Not adding capacitors
Conclusion
Voltage instability and brownouts are among the most common causes of microcontroller issues. They often appear as random resets or unreliable behavior.
By designing a stable power system with sufficient current capacity, proper regulation and good wiring, you can eliminate these problems and ensure reliable operation.
