# HM-10 Modules Pair & Connect (Solid LED) but No Data Transmission Between Arduinos

**URL:** <https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825>\
**Category:** Networking, Protocols, and Devices\
**Created:** [May 6, 2026, 5:06am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825 "2026-05-06T05:06:39Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![drabberlicense7](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/drabberlicense7/32/1099219_2.png) [@drabberlicense7](https://forum.arduino.cc/u/drabberlicense7)\
**Post date:** [May 6, 2026, 5:06am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/1 "2026-05-06T05:06:39Z")

</div>

Hi everyone,

I am having trouble with a pair of HM-10 Bluetooth 4.0 modules. I have two pairs (one set with black PCBs and one with blue PCBs). I am able to successfully pair and connect them—the status LED goes from blinking to solid on both—but I cannot send or receive any data between them through the Serial Monitor.

**Hardware Setup:**

- **Master:** Arduino Mega 2560
- **Slave:** Arduino UNO
- **Modules:** HM-10 and AT09
- **Power:** External 5V power supply for the modules with common GND shared with the Arduinos.
- **Level Shifting:** I am using a voltage divider on the HM-10 RX pins to shift the Arduino's 5V TX signal to 3.3V.

**Configuration Steps Taken:**

1. **Master Setup:** `AT+ROLE1`, `AT+TYPE0`.
2. **Slave Setup:** `AT+ROLE0`, `AT+TYPE0`.
3. **Connection:** I used `AT+ADDR?` to get the MAC address, then `AT+INQ` to find the device index, and finally `AT+CONN[index]` to connect.
4. **Result:** The LEDs on both modules stay solid, indicating a successful connection.

**The Problem:** Despite the solid LED, when I type something in the Serial Monitor of the Master, nothing appears on the Slave's Serial Monitor, and vice versa.

**What I have already tried:**

- Swapping TX/RX cables (to rule out cross-wiring issues).
- Swapping Master/Slave roles between the boards.
- Testing different module combinations (Blue-Blue, Black-Black, Blue-Black).
- Using `SoftwareSerial` on different pins.
- Using a "Blank Sketch" on the Arduinos to use them as USB-to-Serial converters.
- Verified that both Serial Monitors are set to **9600 baud** and **Both NL & CR**.

**Wiring Diagram:**

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/4/4/5/445f3a14fe2befaf965088c213ca9cbc365505be.png)

**Serial Monitor Logs (AT Commands):**

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/0/c/3/0c3cd13e455ee7070162f2f05f8d050581995bbb.png)

**Code used for testing (SoftwareSerial):**

```arduino
#include <SoftwareSerial.h>

SoftwareSerial bluetooth(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);
  bluetooth.begin(9600);
  Serial.println("Ready to send/receive data...");
}

void loop() {
  if (bluetooth.available()) {
    Serial.write(bluetooth.read());
  }
  if (Serial.available()) {
    bluetooth.write(Serial.read());
  }
}

```

**Physical Modules:** I am using two different versions of the HM-10 breakout boards to rule out hardware defects.

- **Model A:** Blue PCB, labeled ZS-040 with a 3.3V/5V level converter.

- **Model B:** Black PCB, labeled Bluetooth 4.0.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/a/2/0/a20eaf038111543c704d3a253c75c7363e37a821.jpeg)

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/b/7/9/b79b1332716a94ed68ddc59b8d827eff48f51b83.jpeg)

Is there any specific command like `AT+START` or a characteristic setting I am missing to allow transparent data transmission after the connection is established? Any help would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [May 6, 2026, 6:25am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/2 "2026-05-06T06:25:28Z")

</div>

![image](https://europe1.discourse-cdn.com/arduino/original/4X/4/4/5/445f3a14fe2befaf965088c213ca9cbc365505be.png)

SoftwareSerial bluetooth(10, 11); // RX, TX

- The pins don’t agree.

---

<div class="post-metadata">

**Author:** ![drabberlicense7](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/drabberlicense7/32/1099219_2.png) [@drabberlicense7](https://forum.arduino.cc/u/drabberlicense7)\
**Post date:** [May 6, 2026, 6:56am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/3 "2026-05-06T06:56:46Z")

</div>

You are correct, the pins in the diagram (0 and 1) don't match the SoftwareSerial bluetooth(10, 11) snippet. I should have clarified that.

The attached diagram represents a **'Hardware Bypass'** test. I am using a blank sketch on the Arduinos to use the onboard USB-to-Serial converter to talk directly to the HM-10 modules via the Serial Monitor. For this specific configuration:

• Arduino **RX (0)** is connected to HM-10 **RX** (via voltage divider).

• Arduino **TX (1)** is connected to HM-10 **TX**.

I have also tested the SoftwareSerial configuration on pins 10 and 11 (crossing TX to RX) to rule out hardware serial conflicts, but the result remains the same: the modules show a solid 'Connected' LED, but no data is being bridged between them.

I didn't want to clutter the post with every single wiring variation I've tried, but I can confirm that even with a clear UART path and a shared GND, the transparent transmission is not occurring.

---

<div class="post-metadata">

**Author:** ![xfpd](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/xfpd/32/1120236_2.png) [@xfpd](https://forum.arduino.cc/u/xfpd)\
**Post date:** [May 6, 2026, 2:43pm UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/4 "2026-05-06T14:43:47Z")

</div>

> [@drabberlicense7](#):
>
> • Arduino **RX (0)** is connected to HM-10 **RX** (via voltage divider).
> 
> • Arduino **TX (1)** is connected to HM-10 **TX**.

Arduino 5v TX goes through the voltage divider to the HM-10 3.3v RX.

The HM-10 3.3v TX goes directly to Arduino RX.

---

<div class="post-metadata">

**Author:** ![drabberlicense7](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/drabberlicense7/32/1099219_2.png) [@drabberlicense7](https://forum.arduino.cc/u/drabberlicense7)\
**Post date:** [May 6, 2026, 4:42pm UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/5 "2026-05-06T16:42:22Z")

</div>

Thank you for pointing that out. I actually already tested the wiring configuration you mentioned (crossing TX to RX using pins 10 and 11 with SoftwareSerial) and I got the exact same results.

I switched back to the **Hardware Bypass** (blank sketch) just to eliminate any possible code-related latency or overhead, but the behavior is identical:

• **Initial success:** Occasionally, right after power-cycling the Master, I can see a single 'HELLO' or something I send on the Serial Monitor.

• **Immediate freeze:** Right after that first message, the communication dies. The LEDs remain solid (connected), but no more data passes through. This happens even with 'No line ending' selected.

I have already verified that the 5V TX from the Arduino is stepped down to 3.3V via the voltage divider and that all GNDs (external PSU and both Arduinos) are tied together. It seems like the UART buffer on the CC2541 is hanging or shifting states after the first packet is bridged.

---

<div class="post-metadata">

**Author:** ![gilshultz](https://avatars.discourse-cdn.com/v4/letter/g/67e7ee/32.png) [@gilshultz](https://forum.arduino.cc/u/gilshultz)\
**Post date:** [May 6, 2026, 5:05pm UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/6 "2026-05-06T17:05:22Z")

</div>

**Welcome Back!**  
Without a schematic and based on your picture, I suspect you have a power supply problem. You did not include a link to the HM-10 module, so I can only guess which version you are using.

My suggestion is to use a good external power supply. Arduinos typically provide poor power regulation and can cause problems like the ones you are seeing. You may notice random disconnects or pairing issues, AT commands not responding, shorter BLE range, and the module resetting during transmit bursts.

Some possible causes include transmit current spikes (around 20 to 30 mA), poor decoupling leading to voltage dips, and additional noise from breadboards or long wires.

Let us know how it works out for you.

---

<div class="post-metadata">

**Author:** ![cattledog](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/cattledog/32/217816_2.png) [@cattledog](https://forum.arduino.cc/u/cattledog)\
**Post date:** [May 6, 2026, 10:04pm UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/7 "2026-05-06T22:04:32Z")

</div>

The Martyn Currey tutorials are worth looking at.

[https://www.martyncurrey.com/arduino-to-arduino-communication-using-hm-10s/](https://www.martyncurrey.com/arduino-to-arduino-communication-using-hm-10s/)

---

<div class="post-metadata">

**Author:** ![xfpd](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/xfpd/32/1120236_2.png) [@xfpd](https://forum.arduino.cc/u/xfpd)\
**Post date:** [May 7, 2026, 1:57am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/8 "2026-05-07T01:57:48Z")

</div>

> [@drabberlicense7](#):
>
> I can see a single 'HELLO'

That would tell me the wiring was good or close, and missing something.

> [@drabberlicense7](#):
>
> **Immediate freeze**

I like to put a "heartbeat" timer in my code to blink the LED\_BUILTIN one time per loop to verify the code is advancing. That is to say, something like this...

```arduino
unsigned long timer, timeout = 500;

// your configuration

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);

  // your setup

}

void loop() {
  if (millis() - timer >= timeout) {
    timer = millis();
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  }

  // your code

}

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [November 3, 2026, 1:58am UTC](https://forum.arduino.cc/t/hm-10-modules-pair-connect-solid-led-but-no-data-transmission-between-arduinos/1442825/9 "2026-11-03T01:58:47Z")

</div>

Closed on November 3, 2026, 1:58am UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
