I am trying to communicated between two devices with low energy bluetooth support with gatt profile. I am using gatttool to connect. I observed (with btmon) that while connecting both device request for the primary discovery by group type request. Then both devices sends "Request Not Supported" to primary discovery as error. These devices have bluez stack running and the same request is responded properly later. I dont get this problem if this the bug. I need to get discover primary service while connecting with peripheral.
Related
My goal is to retrieve the IP address of client connected to an esp32 in soft Access Point mode WITHOUT client sending a request.
So far calling "remoteIP()" method from "client" object seems to be the only way I can successfully retrieve connected client IP is when an HTTP request is made.
If I call "client.remoteIP()" before the remote client sends an HTTP request I get
All zeros, yikes.
Currently I'm polling the "softAPgetStationNum()" method from "WiFi" object and I'm alerted as soon as a device is connected or disconnected.
I would like to get the client IP along with the new connection alert.
My advanced apologies for not including my code hopefully my description has enough clarity to properly relay my intended objective. Thanks
Ps- if I could get guidance on retrieving MAC of remote client too that would be dope!
I don't know what interface Arduino has built on top of Espressif's framework, but the underlying ESP IDF v4.3 has functions esp_wifi_ap_get_sta_list() which gives you a list of all connected stations (including MACs) and esp_netif_get_sta_list() which maps this list of clients to their IP addresses.
I am trying to implement a Bluetooth Low Energy Host on a system with SAM E54 with FreeRTOS. The bluetooth stack I am using is Nimble (Mynewt-NimBLE from Apache). I am trying to connect the SAM E54 to a nRF52840 Dongle (driven with nRF Connect Desktop application).
When I set my device as Central (as a 4.x device, with no 5.x capabilities), the device can connect to another device without error.
But when I switch on the 5.x capabilities, (basically by changing a define's value and calling another API function), and try to connect to the same peripheral, it fails 9 out of 10 times, triggering a "connection supervisor timeout" on both the server and the client.
I tried changing the supervisor timeout value, but it won't fix the problems. When a connection is bound to be successful, the central's information is displayed immediately on nRF Connect. When connection establishment is going to fail, I know it right away (before the connection supervisor timeout is triggered) because no information about the central is displayed on nRF Connect.
Once the connection is established, it can stay on for hours, so I don't think this is an RF noise issue.
I know NimBLE is not initially designed for SAM E54 and FreeRTOS, and surely the problem comes from a wrong implementation or configuration of the stack. But right now I feel like I've tested everything, and I don't know where to dig for solutions.
The actual questions are :
To start a connection using 4.x BLE capabilities, some HCI commands packets are sent. Should these packets be any different than the packets sent when I enable the 5.x capabilities ? In both cases, I am connecting to a 4.x device.
What step of the connection establishment process fails when both server & client "think' they are connected, yet don't exchange information?
The issue is that I developing application (esp32 based device with NimBle Stack) that send indication message to paired phones ... but I've noticed that indicate messages also available for not paired devices !!
In my case I consider it as security violation
Is there a way to send indicate messages only for paired devices or it will be send to all device that connected over Gatt protocol ?
And if yes then will it be encrypted that nobody could eavesdrop the message ?
Can someone describe the APNs architecture to me in regards to:
How does the handshake work when authenticating from server to client, for a push-notification?
How does the APNs know when to send a push-notification to a phone after it's been turned off (push notification would have been originally sent to the phone at that time). Does the phone know to ping the APNs when it first boots up?
Telecoms is complicated and has evolved over time. An APN is not exactly an internet domain. It is used to establish a PDP context which sets up a tunnel to the home provider to allow packets to be exchanged, this maybe an internet connection. The apn is a name to indicate which network your device is part of, the hlr/hss from the operator will know if your sim is provisioned for that apn. The sim does the mutual authentication between terminal and network, the sim has a identical chip as your payment-card. It contains a secret and logic to verify it knows that secret.
The network can wake up a non-transmitting device, this can be a data-sms, but there is also a signal to send a push to the terminal. The hlr/hss has a message waiting flag indicator, so a switched off device will receive an sms, just one that is processed invisibly and would actually pling on your phone.
As I said, telecoms is complicated so my explanation is more storytelling than reading 3gpp specs.
I have a device which has a settings on it.
The device is uploading data to the cloud.
In the cloud I have settings of the device that I want to do a smart way to update the device settings, but still leave the device the master and stateless. I mean that every request shall come from the device towards the cloud and NACK/ACK will come back to the device.
Currently what we do is to put a command in the database to send to the device according to its serial number. when the device pings to the server, it gets the message with the update. But I do not want to wait for the ping of the BSS. How can I notify the device that a message is waiting for it ?
How do Apple does it with icloud settings to the devices ?
Thanks
Look at the MQTT protocol. This is being promoted by Amazon for IOT devices, and a broker (message router) is available from Amazon. The protocol uses a publish and subscriber model. The devices subscribe to their "topic" something like yourcompany/todevice/serialnumber, and when the server publishes to the same topic, the MQTT broker delivers the message. the messages normally use JSON protocol.