HM-10 Bluetooth AT commands keep returning "ERROR"

Hi Guys,
I have been using a HM-10 breakout board with an arduino and it works fine but i need to increase baud rate as the default 9600 isn't fast enough for what i need. To do this i need to send it an AT command, but sending any AT message to it just returns an "ERROR" string.

I am running the sample code taken from this guide.

Here is this code i got that allows you to send messages to the HM-10 using sketches serial terminal.

#include <AltSoftSerial.h>
AltSoftSerial BTserial; 
char c=' ';
boolean NL = true;
void setup() 
    Serial.print("Sketch:   ");   Serial.println(__FILE__);
    Serial.print("Uploaded: ");   Serial.println(__DATE__);
    Serial.println(" ");
    Serial.println("BTserial started at 9600");
void loop()
    // Read from the Bluetooth module and send to the Arduino Serial Monitor
    if (BTserial.available())
        c =;
    // Read from the Serial Monitor and send to the Bluetooth module
    if (Serial.available())
        c =;
        // do not send line end characters to the HM-10
        if (c!=10 & c!=13 ) 
        // Echo the user input to the main window. 
        // If there is a new line print the ">" character.
        if (NL) { Serial.print("\r\n>");  NL = false; }
        if (c==10) { NL = true; }

I have searched everywhere on this and i haven't found any mention of the HM-10 breakout board sending back "ERROR" and why it does this.

This is the terminal output when i attempt to run the demo and start typing in AT commands.

Sketch:   C:\Users\jeffez\Documents\Arduino\HM10Test\HM10Test.ino
Uploaded: Mar 16 2019
BTserial started at 9600



What do you mean by "it works fine"?

What do you mean by "it works fine"?

It works as it came with its default baud rate. I mentioned that to show that it has been wired and otherwise setup correctly. The issue is it doesn't seem to know when i am trying to send it AT commands.

Given the lack of response i can only assume that i haven't made any obvious mistakes and i'm probably just using a crappy clone. Has anyone had one of these running properly with AT commands? If so where can i find one? Cheers

In case this is helpful for anyone with a similar issue..

I got an official hm-10 and it responded fine to AT commands straight away so i think it might have been the firmware on the clone. It was perhaps too old and needed to be manually put into AT mode? I didn't get as far as trying once i got official working one. From what i read, normally a hm-10 will just respond with nothing if it fails to interpret an AT command, not give back "ERROR". I have not seen this type of response mentioned anywhere.

After all that i still had issues even with the official hm-10 as after setting a new baud rate and setting the serial monitor the match it, the device seems to be unresponsive.

I also couldn't get any response to AT commands with BTserial.write() in the sketch code. I wouldn't have thought using something other than the default baud rate would be such a feat! It's been quite frustrating.

Thankfully the latest official hm-10 firmware to date now has 115200 as the default baud rate which is what i was after all along. So i just updated the firmware and now don't have to worry about AT commands. Easy to do on an official hm-10 i'm not so sure about a clone.

In short. If you want 115200 baud on a hm-10 you might be better off taking the time to update the firmware.

Hope this is helpful to anyone