Lab
Will it brown out?
A Bluetooth module that never appears in your phone’s list is usually not broken. It is browning out — drawing more current than the pin it is plugged into can supply, at exactly the moment it needs the most. The Arduino Uno’s 3.3V pin supplies 50 mA in total, and an HC-05 draws close to 40 mA while it is advertising.
Start with pairing on 3.3V and read the verdict. Then move VCC to 5V and watch it flip. That is not overvolting the module: the breakout board carries its own 3.3V regulator, and taking 5V in is exactly what it is for.
Then set it back to 3.3V and switch to sending. It is comfortable — which is why a module can work perfectly once paired and still be impossible to pair. Only discovery is expensive.
Last, add 20 mA of other sensors to the rail. The 50 mA is the whole rail, not the module’s share of it, and that is the half of the sentence most tutorials leave out.
What this shows
A Bluetooth module that never appears in the phone's list is usually browning out rather than broken. The Arduino Uno's 3.3V pin supplies 50 mA in total, for everything on it, and an HC-05 draws close to 40 mA while it is advertising — which is precisely the moment you are trying to discover it.
The failure hides well because there is nothing to see: no smoke, no heat, no error. The rail sags under the module's draw, the module resets, comes back up, advertises, and sags again. From outside it simply never stays alive long enough to be found, which reads as a dead module rather than a starved one.
It explains the detail people find contradictory — that a module can work perfectly once paired and be impossible to pair. Idle draw is under 8 mA and sending is about 20 mA, both comfortably inside 50. Only discovery, at close to 40 mA, does not fit.
The fix is to move VCC from the 3.3V pin to the 5V pin. That is not overvolting it: every one of these modules is sold on a breakout board carrying its own 3.3V regulator, whose whole job is to take 5V in and make clean 3.3V for the radio. The genuine limit is 3.6-6V; how far past that is fatal depends on which regulator the board carries, and the common 662K part is rated for 6V maximum input.
The 50 mA is the whole rail, not the module's share of it. Put another 20 mA of sensors on 3.3V and even sending data stops fitting.
Common questions
- Why does my HC-05 never show up in the Bluetooth list?
- Most often it is browning out. The Arduino Uno's 3.3V pin supplies 50 mA in total and an HC-05 draws close to 40 mA while advertising, so the rail sags, the module resets, and it never stays visible long enough to be discovered. Move VCC to the 5V pin.
- Is moving it to the 5V pin not overvolting the module?
- No. These modules are sold on a breakout board with its own 3.3V regulator, built to take 5V in and make clean 3.3V for the radio. Using the 5V pin is using the board as designed. The real limit is the supply range of 3.6-6V; past that it depends on the board's regulator, and the common 662K part is rated for 6V maximum input.
- Why does it work fine once paired but never pair?
- Idle draw is under 8 mA and transmitting is about 20 mA, both well inside the 50 mA rail. Discovery is the expensive state at close to 40 mA. A module that behaves perfectly once connected can still be impossible to connect.
- How much can the Arduino Uno's 3.3V pin actually supply?
- 50 mA, and that is the entire rail for everything you hang off it, not a per-device allowance. Anything else you have powered from 3.3V comes out of the same 50 mA.