I’m using HM-10 module to connect to Smart Bed which has its own BLE module which is also based on СС2541 (but not HM-10, and exact firmware is unknown). If I connect to that Smart Bed via BLE Viewer or any similar Android/iOS app, I get constant stream of status messages on FFE4 characteristic, the interval between messages is about 100 ms and there is no timeout.
However, when I do the same from my HM-10, it receives only first 10 to 15 messages (which takes about 2 seconds in average) and then reports OK+LOST and disconnects.
In order to test this I created BLE Server from ESP32 that emulates that smart bed (the same frequency of messages and the same messages) and made my HM-10 connect to my ESP32 thinking that it was smart bed. HM-10 receives those messages without any problem and without timeout.
So, there are three cases:
- iOS or Android connects to Smart Bed (СС2541) - receives all its messages without timeout
- HM-10 connects to Smart Bed emulator based on ESP32 - receives all its messages without timeout (same messages, same frequency!)
- HM-10 connects to real Smart Bed (СС2541) - receives only 10-15 messages, then timeout and OK+LOST
I initially tried this on v605 of HM-10. Upgraded to v705 - nothing changed.
So what is so special in communication between HM-10 and the other СС2541 that makes it constantly loose connection, while in all other cases neither HM-10 nor Smart Bed (СС2541) have any problems communicating with other devices under similar conditions?
Just in case, here is my connection sequence for HM-10:
(reset on power line) AT OK AT+RENEW OK+RENEW AT+IMME1 OK+Set:1 AT+NOTI1 OK+Set:1 AT+UUID0xFFE4 OK+Set:0xFFE4 AT+CHAR0xFFE9 OK+Set:0xFFE9 AT+ROLE1 OK+Set:1 AT+CO04C249834B20E OK+CO00A OK+CONN (a lot of status messages with 100 ms interval, for about 2 seconds) OK+LOST
I’m stuck with that, would be thankful for any ideas…