# HM-10 reads all text as question mark

**URL:** <https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634>\
**Category:** Networking, Protocols, and Devices\
**Created:** [February 8, 2025, 6:50am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634 "2025-02-08T06:50:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 6:50am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/1 "2025-02-08T06:50:18Z")

</div>

Do not be too fast.  
It's not that easy I think.

I use Arduino UNO btw.

Okay, I bought 5pcs HM-10 from eBay for cheap.

I had HC-06 before.  
I used that one without issues.  
I connected:

VCC -\> Arduino 5V

GND -\> Arduino GND

RX -\> Arduino TX

TX -\> Arduino RX

BRK -\> Unconnected

State -\> Unconnected

I wrote simple code, with just [Serial.read](http://serial.read/) and Serial.println and when I connect to module from phone, I have idea synchronization between devices.  
I can send and receive data on both sides.  
Life is so beautiful.

So, what's wrong with HM-10.

I did absolutely same wiring and it doesn't work.  
I can't send anything from Arduino Serial Monitor. When I send it, it doesn't show up in monitor, it just clears input field. (It should be written below as I remember from HC-06).

I connected to module with phone with BT Serial app, I send text and module recevies just question mark.

It doesn't matter if my text is 1 character or 10, it reads just one question mark.

So, in short, I can't post anything in Arduino Serial Monitor and when I post in smartphone app, Arduino Serial Monitor reads just one question mark.

I can't use AT commands. As I already said above, when I type anything in input field and press enter, text dissapears and serial monitor shows nothing(it just clears input field).

What's wrong?

---

<div class="post-metadata">

**Author:** ![HazardsMind](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hazardsmind/32/215209_2.png) [@HazardsMind](https://forum.arduino.cc/u/HazardsMind)\
**Post date:** [February 8, 2025, 7:21am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/2 "2025-02-08T07:21:25Z")

</div>

What baud rate are you using? Keep in mind HM-10 is a BLE module so it may not play nicely with other modules.

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 7:33am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/3 "2025-02-08T07:33:03Z")

</div>

In code I use Serial with 9600, but I tried another rates with no luck.

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 7:44am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/4 "2025-02-08T07:44:48Z")

</div>

> [@kupa565482](#):
>
> What's wrong?

The HM-10 module operates usually at 3.3V for both power and logic levels. While some breakout boards include a voltage regulator that allows them to be powered with 5V , the module itself might not be 5V-tolerant on its UART pins. If using it with a 5V microcontroller, a logic level shifter or voltage divider is often needed to avoid damage.

➜ if you were to show us

- the code
- the circuit
- more information on your "BT Serial app" (it should be a BLE Serial)

we could possibly provide more guidance. Otherwise the only thing we can say is that the proverbial crystal ball is still in the dishwasher...

 ![ball1](https://europe1.discourse-cdn.com/arduino/original/4X/b/d/8/bd8678a75311b6ba9b9f8e4ad05dd2597eed05ba.jpeg)

➜ Please do yourself a favor and read [How to get the best out of this forum](https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum/679966). Post accordingly, including code with code tags, necessary documentation for your request such as your exact circuit and power supply details, links to components, etc.

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 8:01am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/5 "2025-02-08T08:01:44Z")

</div>

I used BLE Scanner and LightBlue on my iPhone.  
Wiring setup is mentioned in the first post.  
I connected it like HC-06 did.  
As I remember from HC-06, I needed just Serial.begin(9600) in setup scope and everything worked by itself.Whenever I connect to bluetooth and send data with Serial from phone, Arduino Serial Monitor used to receive data immediately.  
I need HM-10 for more advance project, but I think it’s the simplest code that should work and to be sure, module does work.

Module has written 3.6-6V on VCC and 4V on RX-TX pins, but some tutorials what I saw, doesn’t have any resistors or something.  
My board is Arduino UNO R3

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 8:04am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/6 "2025-02-08T08:04:46Z")

</div>

> [@kupa565482](#):
>
> and 4V on RX-TX pins

and so you decided to send 5V ?...

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 8:16am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/7 "2025-02-08T08:16:27Z")

</div>

🤣 Some tutorials and experience from HC-06.  
Could it be a reason?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 8:48am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/8 "2025-02-08T08:48:32Z")

</div>

Electronic components have inherent tolerances, allowing for slight deviations from their specifications, but operating them outside their rated limits always carries a risk. While some components may tolerate minor overvoltage for a short period, exceeding specifications means you're operating beyond guaranteed reliability.

If you happened to receive a component with minimal tolerance margin—one that is already near its rated limit—you risk damaging it. In this case, sending 5V from the Arduino UNO’s Tx pin to a 3.3V-rated Rx pin could easily cause failure, especially if the documentation explicitly states a maximum input voltage of 4V.

To ensure proper operation and avoid damage, always adhere to the specified voltage limits. Implementing a simple voltage divider with two resistors is an effective and reliable way to step down the voltage safely. But it might be too late for this module now.

here is a tutorial with the voltage divider

> **[Interfacing the HC-06 Bluetooth module with Arduino](https://projecthub.arduino.cc/RucksikaaR/interfacing-the-hc-06-bluetooth-module-with-arduino-94aabd)**
>
> A simple and informative tutorial about interfacing the HC-06 Bluetooth module with Arduino

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 9:14am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/9 "2025-02-08T09:14:13Z")

</div>

Okay, I will try.  
I had 5 pcs of HM-10 and I thin one of them should be alive 😃, I didn't use it

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 9:21am UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/10 "2025-02-08T09:21:48Z")

</div>

worth trying

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 2:42pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/11 "2025-02-08T14:42:41Z")

</div>

Now I bought HC-06.  
What’s wrong here? I can’t even see on my smartphone in the nearby BT list.  
I tried RX TX pins as well as 2 and 3.

 ![IMG_0691](https://europe1.discourse-cdn.com/arduino/original/4X/0/c/6/0c6f6a5a080881fe63980cc7d9ed9042800887c4.jpeg)  
 ![IMG_0692](https://europe1.discourse-cdn.com/arduino/original/4X/0/1/b/01b2a276d852d3c476b397943d93d08d7f8c6068.jpeg)

```arduino

// Basic Bluetooth sketch HC-06_01
// Connect the Hc-06 module and communicate using the serial monitor
//
// The HC-06 defaults to AT mode when first powered on.
// The default baud rate is 9600
// The Hc-06 requires all AT commands to be in uppercase. NL+CR should not be added to the command string
//
 
 
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-06 TX to the Arduino RX on pin 2. 
// Connect the HC-06 RX to the Arduino TX on pin 3 through a voltage divider.
// 
 
 
void setup() 
{
    Serial.begin(9600);
    Serial.println("Enter AT commands:");
 
    // HC-06 default serial speed is 9600
    BTserial.begin(9600);  
}
 
void loop()
{
 
    // Keep reading from HC-06 and send to Arduino Serial Monitor
    if (BTserial.available())
    {  
        Serial.write(BTserial.read());
    }
 
    // Keep reading from Arduino Serial Monitor and send to HC-06
    if (Serial.available())
    {
        BTserial.write(Serial.read());
    }
 
}

```

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 2:55pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/12 "2025-02-08T14:55:39Z")

</div>

I connected my Android device to HC-06 and I can send text from Android to Arduino Serial Monitor, but when I type AT, it says just AT, it doesn't say "OK"

---

<div class="post-metadata">

**Author:** ![anon94801460](https://avatars.discourse-cdn.com/v4/letter/a/278dde/32.png) [@anon94801460](https://forum.arduino.cc/u/anon94801460)\
**Post date:** [February 8, 2025, 3:29pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/13 "2025-02-08T15:29:18Z")

</div>

> [@kupa565482](#):
>
> What’s wrong here?

Connecting 5V Arduino directly to 3.3V modules.

If you break the rules, do not expect the things to work.

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 3:34pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/14 "2025-02-08T15:34:44Z")

</div>

Do you mean 5V pin or RX-TX?  
If 5V pin, It doesn't matter. I tried 3.3V before and didn't work. I found someone said 5V supply worked and I tried.  
Absolutely no difference

---

<div class="post-metadata">

**Author:** ![anon94801460](https://avatars.discourse-cdn.com/v4/letter/a/278dde/32.png) [@anon94801460](https://forum.arduino.cc/u/anon94801460)\
**Post date:** [February 8, 2025, 3:35pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/15 "2025-02-08T15:35:53Z")

</div>

I meant what i wrote.

Save yourself the trouble of learning very basic electrical circuit theory by buying a 3.3V Arduino, and join the modern era.

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 4:48pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/16 "2025-02-08T16:48:04Z")

</div>

OH MY WORLD!!!  
I followed this tutorial, but I used Both NL & CR in Serial Monitor and it works 😮  
I have no idea, what I did differently, but it worked.  
I did absolutely followed scheme and tutorial, but I used Both NL & CR mode and what a surprise!

What did I do different, no idea.

It worked on HC-06, HM-10 returns text like incorrect baud rate, but I tried all baud rates ☹

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 5:11pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/17 "2025-02-08T17:11:32Z")

</div>

Probably the module expected CR and LF at the end of an AT command.

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 5:18pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/18 "2025-02-08T17:18:34Z")

</div>

I already had it specified when I was trying before

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [February 8, 2025, 5:26pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/19 "2025-02-08T17:26:24Z")

</div>

Loose wire then may be …

---

<div class="post-metadata">

**Author:** ![kupa565482](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kupa565482/32/1194650_2.png) [@kupa565482](https://forum.arduino.cc/u/kupa565482)\
**Post date:** [February 8, 2025, 5:52pm UTC](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634/20 "2025-02-08T17:52:06Z")

</div>

Now, I'm trying to find out what's wrong with HM-10 and why it behaves like incorrect baud rate

[Next page](https://forum.arduino.cc/t/hm-10-reads-all-text-as-question-mark/1351634.md?page=2)
