I would like to build a smartwatch for my iPhone based on the arduino tools and libraries. But I have a problem with BLE: I know there is already a library for the nRF8001 for ancs (https://github.com/robotastic/ANCS-Library) , but I want to use the HM-11 module, mainly because it's smaller and cheaper.
So is it possible to connect an HM-11 module to an Arduino and receive iOS notifications and do something with it? (for example display it on a screen)
Thanks in advance.
1.1 Please read apple notification document first.
AT+TYPE3 command change to
AT+ANCS1 command to open
AT+PASS[para1] command to set passcode. Default passcode is "000000"
AT+RESET to restart module.
Now you can use LightBlue or our software to scan and made a connect with module. iOS will ask you input passcode. please input your passcode value.
If all is okay, you should receive
AT+ANCS[para1] command from module
AT+ANCSN: module open Notification Source SUCCESSED.
AT+ANCSC: module open Control Point SUCCESSED.
AT+ANCSD: module open Data Source SUCCESSED.
Get ANCS notification information. When iOS notification center has an change (such as call, email, short message). Module will output
AT+ANCS8[para2] command through
Format such as :
8: The length of the para1.
EventIDNotificationAdded = 0,
EventIDNotificationModified = 1,
EventIDNotificationRemoved = 2,
Reserved EventID values = 3 ~ 255
CategoryIDOther = 0,
CategoryIDIncomingCall = 1,
CategoryIDMissedCall = 2,
CategoryIDVoicemail = 3,
CategoryIDSocial = 4,
CategoryIDSchedule = 5,
CategoryIDEmail = 6,
CategoryIDNews = 7,
CategoryIDHealthAndFitness = 8,
CategoryIDBusinessAndFinance = 9,
CategoryIDLocation = 10,
CategoryIDEntertainment = 11,
Reserved CategoryID values = 12 ~ 255
The current number of active iOS notifications in the given category. For example, if two unread emails are sitting in a user's email inbox, and a new email is pushed to the user's iOS device, the value of CategoryCount is 3.
A 32-bit numerical value that is the unique identifier (UID) for the iOS notification. This value can be used as a handle in commands sent to the Control Point characteristic to retrieve more information about the iOS notification.
Get Notification Attributes
Format such as:
NotificationAttributeIDAppIdentifier = 0,
NotificationAttributeIDTitle = 1, (Needs to be followed by a 2-bytes max length parameter)
NotificationAttributeIDSubtitle = 2, (Needs to be followed by a 2-bytes max length parameter)
NotificationAttributeIDMessage = 3, (Needs to be followed by a 2-bytes max length parameter)
NotificationAttributeIDMessageSize = 4,
NotificationAttributeIDDate = 5,
NotificationAttributeID = 6 ~ 255
para3 : max length parameter (reserved)
If para2 value is 0, 4, 5, para3 must set to "00"
if para2 value is 1, 2, 3, you need setup a number.
About Get Notification Attributes Response
AT+ANCSW: Send request SUCCESSED.
para1 value is 0x00 ~ 0x14.
Mean the next package length you need to receive.
[........]: The byte array you need to receive.
Show in apple Notification document Figure 2-6. (page 9)
After you receive AT+ANCSW, you may receive
AT+ANCS[para1] many times. until the Figure 2-6 package is completed.
How to remove ANCS.
7.1 Remove bond information from iOS. 7.2 Execute
AT+ERASE remove module bond information.
AT+ANCS0 close module ANCS function.
AT+RESET to restart module.
ANCS is easy to use, you don't need write any iOS code. iOS will manage the bluetooth link and push the message to module.