HM-10 bluetooth pairing with iPhone - ios

I am using a HM-10 bluetooth to pair with my iPhone but I noticed that HM-10 can't be paired with iPhone using the "settings". It just won't show up in my bluetooth list. I will need a special app like "Lightblue" or "Bluecap" to pair it.
My question is, if I need a certain app to pair the bluetooth module with my iPhone, why is that many devices such as bluetooth speakers could be paired using the "settings" even without having an app?
Are there any bluetooth modules that could be paired without having an app like "Lightblue" or "Bluecap"?

Pairing through settings is only available for devices that use legacy profiles such as handsfree or A2DP.
Bluetooth Low Energy devices, such as the HM-10 are discoverable by any app using Core Bluetooth. Apps, like LightBlue, are just general purpose BLE apps that let you explore available BLE devices.
BLE devices only require pairing if they are using encryption on their characteristics. In this case, iOS will show the pairing dialog and complete the pairing process when the app attempts to read the encrypted characteristic.
To use the HM-10 you will need to write your own app to perform whatever communication task you are trying to achieve.

You can use nrf52832 as Bluetooth module.
If you are not making hobby project hm10 is very bad choice
I shifted from hm10 to nrf52832 before 6 months

Related

swift how to develop an app performing an actual bluetooth pair

The actual bluetooth pair I am talking about is: let the app shows up in the searching list of Bluetooth of System Settings and other devices can pair to it (like we pair our device to Apple Air Pods).
But all articles I find online are talking about BLE/CoreBluetooth, I don't think these methods could make a device name shows up in the Bluetooth of System Settings.So how to develop an app performing an actual bluetooth pair? Any ideas?
The Bluetooth preferences screen only shows legacy Bluetooth peripherals. Devices advertising BLE services do not appear.
Apps on iOS do not have the ability to create and advertise legacy Bluetooth services.
If you create an app that acts as a BLE peripheral, using Core Bluetooth, and specify that encryption is required for a characteristic then you will trigger a pairing process when an app acting as a Bluetooth central on the other device connects and attempts to read/write that characteristic. Note that this requires cooperating apps on both devices.

I want to connect to iPhone's BLE through my BLE device

The purpose of this task is to connect to iPhone's BLE through BLE device to access ANCS of iphone. Please note that there is no app installed in iPhone to turn ON BLE of iPhone.
So, If we enable Bluetooth from iPhone setting, will it enable BLE along with BT classic?
Yes, if you enable BLE on an iPhone, you are enabling BT classic as well. The reason for this is that BLE is just a subset of the whole Bluetooth radio, along with BT classic. Since they use the same physical radio and chip, there is no way to enable BLE without turning on BT classic or vice versa. That being said, there is very limited functionality of BT classic on iPhones and most of that is restricted to developers unless you join the MFi program.
For more information on the different Bluetooth subsets, please see this answer:-
Can a Bluetooth LE powered device discover a classic Bluetooth device and vice-versa?
Please note that you will always have to enable Bluetooth manually on an iPhone and there is no way to enable this automatically.
I hope this helps.

Use bluetooth in iOS application

I'm currently digging my through the nest of using Bluetooth in my iOS application and I find it quite hard to find the information I'm looking for.
Can I turn on Bluetooth from within my app or does the user have to do it manually?
Can I use the basic Bluetooth fetaures (such as Discovery, connecting and Sending Data) with other devices running Bluetooth < 4.0 (classic)
AFAIK CoreBluetooth Framework can only be used to communicate with devices running Bluetooth 4.0+. Which framework is used to communicate with Bluetooth < 4.0 devices?
Is it possible to use Bluetooth in such a way that Apple will reject my App on App Store? And which ways would that be?
Is there a difference between paired and unparied communication? Can one communicate with another device without being paried? Can pairing be initated from an app?
To give some Context to my question: I'm currently developing a part of a Home Automation Application where the App needs to communicate with an embedded device which does not yet have Wifi. It has not been decided which Bluetooth version will run on the embedded device. The same functionality will be implemented in an Android application.
Thankful for some input from some with Bluetooth experience for iOS.
you cannot turn on Bluetooth from your app. The user must do it using settings or the control center.
unless you device is MFi certified you can only communicate with Bluetooth Low Energy devices
the external accessory framework is used to communicate with MFi devices that use "classic" Bluetooth
I am not aware of any use of Core Bluetooth that will lead to app rejection. If your app supports an MFi accessory that isn't associated with your company then your app will be rejected.
you can initiate bonding (commonly known as pairing but it is actually different) by requiring encryption for an attribute. Once the bonding is complete there is no difference in how you transfer data, but the data will be encrypted over the air.

can I have a BLE device (maybe an app on mac) pair with iphone bluetooth without an app on the phone

I want to write an OSX app (about bluetooth keyboard) use bluetooth to control my iphone. so my mac act as a bluetooth keyboard. I do know there are several softwares to do this, but I still want to know how to make it. I can't discover my macbook bluetooth in the iphone system bluetooth menu.
As I understand it, pairing is a feature of Bluetooth 1.0, not BLE. Bluetooth keyboards and such use Bluetooth 1.0, which requires pairing.
BLE is a simpler, low power API that does not require pairing. It involves advertising and subscribing to "services".
Apple requires you to sign up for a separate SDK in order to develop "old school" Bluetooth devices like keyboards and headsets that pair with their hardware.

Bluetooth and iOS - what protocols/ profiles are supported?

I am developing an iOS bluetooth app that needs to pair with a peripheral device.
What frame work do I need to use to interact with a device that has support for the following protocols/profiles:
A2DP
HFP
HSP
Are either of these possible with an iOS device without being a member of the the MFI program?
How do I support these profiles:
https://support.apple.com/kb/HT3647
Do I do that using corebluetooth?
These are standard profiles that are supported inherently by iOS. You don't need to add any software to make the phone work with these. At the same time apps running on the phone will have limited access to what device they can use or are using but for example the audio routing can be obtained.
All in all, as long as the device implements the profiles correctly, any application will be able to use it, not just yours.
There are two completely different methods of doing Bluetooth communications. One is with the classic Bluetooth profiles and the latest is using BLE (Bluetooth Low Energy).
Classic Bluetooth can be used with the ExternalAccessory framework and GameKit framework.
BLE uses CoreBluetooth.
The classic profiles supported are listed here:
http://support.apple.com/kb/HT3647

Resources