Blog
The HC-05 got hot and now it is dead — the two supply mistakes that kill a module
Troniction

It got warm. Maybe you noticed at the time and thought nothing of it, maybe you only remember afterwards. Either way the LED does not light now, the phone cannot see it, and nothing you plug it into brings it back.
It is gone. That is the honest answer, and it is worth saying plainly because this is the only symptom in this entire subject whose fix is "buy another one". There is no reset, no reflash and no repair worth attempting on a part that costs under ten dollars.
So the useful part of this page is not the diagnosis. It is the two mistakes that actually kill these modules, because both are made once — at the very start, before anything works — and neither announces itself until the module has already stopped answering. Get those right and the replacement will outlive the project.
First, make sure it is actually dead
Before buying anything, rule out the far more common possibility that it is fine and starved.
| What you see | What it means |
|---|---|
| LED completely dark, on a known-good supply | No power reaching the board, or the module is gone |
| LED blinks fast and continuously | It is alive and advertising. Your problem is elsewhere |
| LED blinks, pairs, but the Arduino never receives | The radio lives and the receive path may be dead — cause 2 below |
A dark LED is not proof of death on its own. A module drawing from the Uno's 3.3V pin can look dead when it is only starving — that rail is rated 50 mA in total and the module wants close to 40 mA while advertising. Move VCC to the 5V pin and look again. If it has never appeared in your phone's list, that is a different article with four cheaper causes.
Only once it is dark on a solid 5V supply, with GND connected and nothing else on the rail, is it worth calling dead.
Cause 1: more than 7V on VCC
This is the one that produces heat, and it is the one people describe as "it got hot".
The number that matters:
| Specified supply range | 3.6–6V |
| Above | 7V destroys the module |
So 5V is comfortably inside spec and there is nothing clever to do. The trouble comes from three habits that all look reasonable:
- A 9V battery straight onto
VCC. The classic. It is past the limit before you have done anything wrong, and nine volts is the most available battery in a drawer. - The Arduino's
Vinpin instead of5V.Vinis whatever you fed the board — 9V or 12V on a battery-powered build. It is an input, not a regulated output, and it is one row away from the pin you wanted. - A bench supply left where it was for the last thing. No protection, no warning, and it will deliver exactly what you set.
Take the 5V pin, not Vin, and not a raw battery. Every one of these modules sits on a breakout board with its own 3.3V regulator, and that regulator's entire job is to take 5V in and make clean 3.3V for the radio. Using the 5V pin is not overvolting it — it is using the board as designed. What it cannot survive is the unregulated rail upstream.
The reverse-polarity myth, which is worth correcting
You will read, stated as fact, that swapping VCC and GND instantly destroys the module.
That is overstated. Many of the common breakouts — the JY-MCU boards in particular — carry reverse-polarity protection and survive it. Do not treat a reversed supply as safe, and do check twice before powering anything. But do not write off a module because it was briefly in backwards: wire it correctly, power it up, and see whether the LED blinks. Plenty of people have binned a working part on the strength of that sentence.
The failure that is actually documented as fatal is over-voltage. Reverse polarity is a risk on an unprotected board, not a certainty on any board.
Cause 2: a full 5V driven into RXD
This is the quieter one, and it is the reason a "dead" module sometimes still pairs perfectly.
The module's RXD is a 3.3V input. The Arduino's TX drives a full 5V. Run one straight into the other and you are past the input's limit on every single bit you transmit — and what gives out is the receive path only. The radio is untouched.
So the module still powers up. It still advertises, still appears in the phone's list, still pairs, still holds the connection indefinitely. It simply never acts on a byte you send, which reads as a software bug and sends people off to debug a sketch that was always fine.
The test: put it into AT command mode and send a bare AT. If OK comes back, the receive path is alive — your command travelled down exactly the wire in question and was understood. If nothing comes back and you are certain of the baud rate and the line ending for your particular module, the input is gone.
Be certain about that "certain". Total silence in command mode is far more often a dropdown than a dead pin — one setting makes every AT command fail on every module, and the four modules want four different settings. Rule that out before you conclude anything about damage.
The fix, for the next one: a voltage divider on that line and nothing on the other. The two directions are not symmetric, which is why the internet argues about it — module TXD into Arduino RX needs nothing, because 3.3V already clears the Arduino's 3.0V threshold, while Arduino TX into module RXD wants two resistors in a 1:2 ratio. Two components, a few cents, and this failure never happens again.
Which of the two was it
You do not strictly need to know — the module is gone either way — but you do need to know which mistake is still sitting in your wiring, because that is the one that will take the replacement too. Two questions separate them.
| Ask | If yes | What is still wrong |
|---|---|---|
| Was it warm before it stopped? | Over 7V reached VCC — or a reversed supply on a board without protection | The supply. Find what is feeding that pin before you plug anything else in |
Does it still answer AT, with the right baud and line ending? | No → the receive path is gone | The missing divider on the Arduino-TX line |
Those are the two tests the book's troubleshooting matrix gives for this family, and they are worth running in that order. Heat points at the supply; a module that is cold, advertises happily and simply never listens points at the data line.
The answers are not exclusive. A build that got 9V onto VCC was very likely also wired without a divider, because both come from the same first attempt at a first project. If the supply was wrong, check the RXD line before the new module goes in — do not fix one, plug in the replacement, and discover the other.
Why neither one warns you
It is worth understanding the shape these failures share, because it explains why they keep happening to careful people.
Both are supply mistakes made once, at the very beginning, when nothing is working yet and you are changing several things at a time trying to get the first sign of life. Neither produces an error. Neither produces smoke. The module does not stop at the moment of damage — it stops some minutes later, or on the next power-up, by which time you have moved three other wires and have no reason to connect the two events.
That is why the checklist below is worth thirty seconds rather than being the sort of thing you skip. It is not carefulness for its own sake; it is the only moment at which either of these is visible.
Before you power the replacement
Every item here has cost somebody a module.
VCCis on the5Vpin — not3.3V, notVin, not a battery, not a data pin.- Nothing upstream is above 6V at the point the module actually connects.
GNDis connected, and if the module has its own supply, that ground is tied to the Arduino's ground too.TXDandRXDcross — module TX to Arduino RX, module RX to Arduino TX.- The divider is on the Arduino-TX side only, with the module's
RXDon the junction between the two resistors. - Look at the board once more before switching on. Polarity, then voltage, then the crossing.
Power it up. A blinking LED — fast and continuous — is the whole of that checklist working.
What if neither of those was it
If the supply was always the Arduino's 5V pin, the divider was always fitted, and it still stopped — then the most likely explanation is the one worth checking before spending anything: it may not be dead.
Go back to the LED. On a known-good 5V supply with GND connected and nothing else drawing on the rail, a module that blinks is alive, and whatever is wrong lives further along the chain. Almost every symptom in this subject is free to fix, and the ones that look most like a dead part — nothing in the phone's list, garbage on the Serial Monitor, total silence in command mode — are all power, baud rate, line endings or which pins you used.
There is one more possibility, and it applies to a module that never worked from the first minute rather than one that worked and then stopped. A part sold as an HM-10 may be an outright fake: silicon that cannot run the firmware at all. The tell is AT+HELP cheerfully listing a generous set of commands that then return ERROR the moment you use one. Nothing you type fixes that, and it was never your wiring — it arrived that way.
The distinction that matters: did it work, then stop? If yes, something in your build killed it and the two causes above are the candidates. If it never worked at all, you are not looking at damage — you are looking at a setup problem or a bad part, and neither is solved by buying the same listing again.
What to buy
Replace like for like, from a named seller rather than the cheapest listing. DSD TECH is the reliably good SKU in this category. Prices, checked August 2026:
| Part | Typical | When |
|---|---|---|
| HC-06 | ~$8.50 | First one, Android phone, the Arduino only ever receives |
| HC-05 | $9–12 | You need master mode, so one Arduino can call another |
| HM-10 BLE | $10–15 | An iPhone or a web page has to talk to it |
⚠️ With the HM-10, who you buy from matters more than what the listing says. The name is used by a whole family of clones — CC41-A, AT-09, MLT-BT05 and outright fakes — sold under the same name, often at the same price. Most of them work; the fakes cannot be made to. That is a separate problem from this one, and it starts at the checkout rather than at the breadboard.
Every symptom in this subject sorts the same way, by which part of the chain is misbehaving, on the Arduino Bluetooth fixes index.
Common questions
- Is there any way to revive a module that got hot?
- No. There is no reset, no reflash and no repair worth attempting on a part that costs under ten dollars. This is the only family of symptoms in this subject whose fix is buying another one. The value in reading further is making sure the replacement does not die the same way in the same five minutes.
- I plugged VCC and GND in backwards for a second. Have I killed it?
- Probably not, and this is worth knowing because the internet states it as a certainty. Many of the common breakouts — the JY-MCU boards in particular — carry reverse-polarity protection and survive it. Do not treat it as safe, but do not write the module off either: power it correctly and see whether the LED blinks. The failure that is actually documented as fatal is over-voltage.
- It still powers up and pairs, but the Arduino never receives anything I send. Is that the same damage?
- It is the quieter version of it. Driving the Arduino's full 5V into the module's RXD pin can destroy the receive path while leaving the radio intact, so the module still advertises, still pairs and still holds a connection — and simply never acts on a byte. Put it in AT command mode and send a bare AT: if nothing comes back with the baud and line ending correct for your module, the input is gone.
- Can I run the module from a 9V battery if I am careful?
- Not onto VCC, no. These modules are specified for 3.6 to 6V and above 7V destroys them, so a 9V battery is over the limit before you have done anything wrong. Feed the Arduino from the battery through its Vin or barrel jack and take the module's VCC from the Arduino's regulated 5V pin.
- What should I buy to replace it?
- The same class of part from a named seller rather than the cheapest listing. DSD TECH is the reliably good SKU in this category. Prices checked August 2026: an HC-06 runs about $8.50, an HC-05 $9-12, and an HM-10 $10-15 — and with the HM-10 in particular, whose name is used by a family of clones, who you buy from matters more than what the listing says.
Still not connecting?
Arduino Bluetooth — Make It Connect is 62 pages of every way the link fails, why, and the fix — HC-05, HC-06 and HM-10 BLE, including the clone family almost nothing covers. $9.