I have been using CSR1010 Module to trigger a test of the luminary. I Am getting connected to the BLE module using the Android App by the name BLE-Scanner.
Using this app I am able to get connected to the device for all the time possible. But when I trigger the test in the device, after sometime the application gets disconnected from the device .
Any solutions to keep the Bluetooth connection intact when test is executing for some standard time interval like 30 or 60 min?
Related
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?
I am working on CC2541 BLE controller. I am using SimpleBLEPeripheral from TI BLE stack which is available on TI's website. I have interfaced the controller with a sensor whose state changes at an interval of 3 seconds. This means that event is generated at every 3 seconds. I am using custom profile's UUID whose length is 128 bits. I have also developed an app to get the sensor's data on my app. All is working good but device is getting disconnected with the app after establishing a connection.
I also tried changing the Connection Parameter in firmware but the issue is not resolved yet.
What should I try to make this connection flawless? I want that device should not get disconnected when it is in range and also if the device is out of range for sometime, it should auto reconnect with the app when it comes in the range of the mobile phone.
we are doing a project on image processing using a camera,raspberry pi3 and a gsm module. Above mentioned things are with a flying drone. I can send a notification message to a mobile using gsm module if required object detected on the cam. But we store that image to view on a webpage or through a mobile app easily. while it's flying it can't connect to the internet. So can you suggest a solution to get those images when it is inside our home wifi range.(any how we can get the images from sd card but i need to get those as soon as possible it detected the wifi) . Thanks in advance
You could consider using "tethering", a.k.a. "Personal Hotspot" in Apple parlance, on your mobile phone.
Basically, you would enable the Personal Hotspot on your iPhone and allow your RPi to connect to it via Wifi. You would have to check your setup, but my iPhone takes IP address 172.20.10.1 for itself and dishes out IP addresses to clients which are the same but with the 1 replaced by a small number under 13.
You can see from here how to setup your RPi to automagically connect to your Hotspot whenever in range. You could also consider fixing a static IP address when on that network, so you know where the RPi will show up for sure.
You would then ensure that Apache, or maybe lighttpd which is lighter weight, is running on your RPi.
Then, your app on the RPi would store its image as image.jpg in Apache's DOCUMENT_ROOT directory, probably /var/www/html/image.jpg but check.
Now, on the iPhone, start Safari and browse to:
http://172.20.10.N/image.jpg
where N is a small number. You should see your image and be able to save it to DropBox or Photos or iCloud Drive for others to see.
Of course, once your RPi is connected to your iPhone's hotspot, it can FTP or ssh copy the image to any website or other server on the Internet it has access to itself.
I have understood your question also I have cheapest solution to build your project. you will be needing 3 modules
ESP8266 (Wifi module)
SD card logger
Camera module(go with your choice, try ESP8266(But I have not tried it))
Combining all these can get your work done. But most instructing part is When connected with wifi it should transmit video to webpage or app and when not connected should log video to SD card
Below is my try to solve your problem, if you have any doubts feel free to ask your question.
ESP8266 is an WiFi module, you can connect it with an hot-spot or an router, similar to any WiFi device's on successful connection it throws 200,OK failing will throw 404 or so. Technically just like any TCP devices it will work. You can connect, disconnect, send and receive data continuously using software(using code you write).
0-code for camera unit starts
1-try connecting WiFi && start the camera and start logging into SD card //InCase if WiFi module takes longer time than usual to connect, this will prevent data from losing
2-if connection failed - continue writing to SD card
3-else(connection made) - start streaming the data && stop the SD card logging and save the file and create a new empty file so that we can save on next connection out without wasting data.
4-check for connection status in regular interval (goto step2).
5-on any external inputs(like click an image)
most important thing: code for your camera interface should work independent from the flight controller code.
-NandhaFrost
So recently I've been working on some kind of project that uses arduino and esp8266 to make an HTTP get request from a basic website that I created. But somehow I messed things up while sending AT commands using the arduino Serial monitor. Now I doesn't accept any AT command and as soon as I open the Serial monitor I always get this message :
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 19 of 500 allowed.
220-Local time is now 13:29. Server port: 21.
220-This is a private system - No anonymous login
220 You will be disconnected after 3 minutes of inactivity.
I'm just want to be able to communicate with it using its AT commands again .
Any help would be much appreciated :)
I am currently working on andriod Bluetooth Low Energy, I am able to connect to a first BLE device and get services, read/write service, and when i try to connect to second device, it connects for 15-20 sec and then disconnects. Now when i try to connect to write/read characteristic of first device, nothing works.
Has any one tried connecting to multiple devices. How do you initialize Gatt for multiple devices(minimum 5 devices)?
it depends on your hardware how many devices you can connect stable.I recomment you to use on seperate service for the scanning part and one Data exchange Service for the each of your devices. For the data exchange service don't use bind service. This gave me connection handling problems. I recommend you to create a List of Strings with the Macadresses you are looking for. When you found one, delete it from you List and transmit the found device to the it's service. You should also have a look at disconnecting. Stop service and in it's onDestroy call
mConnectedGatt.disconnect();
ble_device=null;