I have succesfully connected to my hm-10 device and started configuring it using AT commands. I would like to know if it is possible to modify the data sent in advertisement and read it on another hm-10 device in some way.

I am using AT commands specified here: http://denethor.wlu.ca/arduino/MLT-BT05-AT-commands-TRANSLATED.pdf

And some from here (working less consequently): https://www.rhydolabz.com/documents/37/datasheet%20HM-10.pdf

This is the device I am using: https://elextra.dk/en-gb/p/bluetooth-modul-til-arduino-ble-40-at-09-hm-10/H45653

I am using Arduino UNO R3.

I can configure the HM-10 module as a slave or master, and I can set name, and check characteristics. But I am having issues in setting a flag for the advertisement. How is it possible for me to set data that can be broadcasted to all nearby bluetooth devices (mainly other HM-10 modules). It does not need to be a lot. I think the flag is one byte, which is more than enough.

Anybody has the same problem? Is there anyway to broadcast and read data with this module without connecting?

This is my current code for sending AT commands:

  Software serial multple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)

 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo and Micro support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

#include <SoftwareSerial.h>

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

void setup() {
  // Open serial communications and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only

  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.println("Hello, world?");

void loop() { // run over and over
  if (mySerial.available()) {
  if (Serial.available()) {


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.