I am trying to set up an IoT device using a Raspberry Pi 3A+. I want the Pi to connect to WiFi, so for this I set up an access point on which the WiFi credentials can be sent. The issue is finding this access point, as iOS does not allow scanning for available WiFi networks (bear in mind, this needs to work with multiple devices, so I cannot use a predetermined SSID).

I have tried to solve this using Bluetooth a Bluetooth server that has the name of the access point's SSID. While this works fine for Android, iOS devices are never able to detect the server. For setting up the Bluetooth server, I use the following:

$ sudo bluetoothctl
[bluetoothctl]# serial-alias <ACCESS POINT SSID>
[bluetoothctl]# menu scan
[bluetoothctl]# transport le
[bluetoothctl]# back
[bluetoothctl]# discoverable on

In /etc/bluetooth/main.conf I have set DiscoverableTimeout = 900 and ControllerMode = le.

I hope someone can help me figure out how to setup the Bluetooth server properly. It only needs to be detectable and nothing more.

  • Thanks, that looks very promising. I will try it out.
    – Whitefyre2
    Jul 28, 2021 at 9:34
  • @ukBaz: Perhaps consider making your comment(s) an answer?
    – Seamus
    Jul 29, 2021 at 20:07

1 Answer 1


There is an example of setting up a BlueZ GATT server at:


You will also need to create an advertisement so that it can be discovered. There is an example advertisement in the BlueZ tree at:


The documentation for the various APIs are at:


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.