I want to create an Android app where I want to be able to receive my own transmitter Bluetooth signal in Android , since Bluetooth signal is omnidirectional.
I.e. I want to receive and transmit Bluetooth at same time and receive my own transmitted signal and analyze it on same phone.
Or I tried to use beacon simulator to simulate LE beacon Bluetooth signal and in my Bluetooth setting I tried to scan for available devices but it does not show my android device.
How can I do so?
It is not possible to simultaneously transmit and receive the same packets from the same antenna systems. Theoretically, you can receive packets resulting from reflections. In the practice, this application has no right to work. Switching the operating mode from the transmitter to the radio receiver requires time.
To track bluetooth packets you can use the CC2640 dongle with the PC application:
http://www.ti.com/tool/PACKET-SNIFFER
Related
I am using BLE v4.1 for my application where I am able to transfer 200 packets of length 20 bytes each from peripheral to central side.
I want to transfer data via BLE and play some music while the data is being transferred. The music file is available locally and will be played on earphones(can be wired or wireless BlueTooth earphones)
I am facing an issue of packet drops around 15-20% when I am playing audio through wireless earphones while data is being transferred via BLE and audio is played on phone Bluetooth earphones(tried on Android and iOS, both) simultaneously.
With wired earphones connected; there is no issue, I can transfer data via BLE and play audio smoothly without any issue but things are different with wireless Bluetooth earphones case. I tried it with different Android phones(Android 11, different manufacturers) and different BlueTooth earphones, the issue still exists.
What could be a cause for the same and how can I debug it?
Bluetooth and Bluetooth Low Energy has only one radio that can only do one thing at a time. The connection events are scheduled and cannot overlap. This means the throughput is shared among all connected devices. You will get a higher throughput per device with only one connection than with two connections.
You will have to experiment with connection interval and connection event length to find parameters that seems to work, and test with multiple Bluetooth controllers (phones), since all have different scheduling algorithms.
I have to test Ble devices with an App on iOS and Android, the scenario is having multiple device sending signals and it is difficult to figure out which device is connecting to what phone.
Is there a better way to test and what are some of best tools for checking the status of ble devices like signal strength and other characteristics.
I've been using LightBlue Explorer to poke at BLE devices to see characteristics and values. It can also emulate devices once it's seen a real one.
I ultimately ended up writing my own Device Simulator on iOS. This lets me generate a controlled BLE service/characteristic, with full control of the device name, advertised broadcast name, and characteristic values.
I am developing a windows Phone application which is supposed to send audio signals to a circuitry. The circuit sends signals to another device on receiving the audio signal from windows phone. this works fine when connected to the audio jack of a laptop/pc, but windows phone does not detect this device to be a headset and it plays the audio signals through the loudspeaker. Is there any way to force the signals through the audio port?
A number of bluetooth Arduino shields (Bluefruit EZ-link, SparkFun Bluetooth Silver) support DTR/RTS and have special out pin to wire. How do they work? Does it require special drivers (linux f.e.)? Can any bluetooth receiver be used or modified to provide DTR/RTS? Since setting DTR/RTS is vendor-specific does it depend on transmitter side or receiver (bluetooth shield) only?
The only idea is that special USB drivers needed that send special AT commands to make BT receiver know actual DTR/RTS value.
The documentation of Bluetooth SPP (https://developer.bluetooth.org/TechnologyOverview/Documents/SPP_SPEC.pdf) states in section 4.1 RS232 Control Signals that "all devices are required to send information on all changes in RS232 control signals".
And since Bluefruit EZ-link is not using any special drivers on the side of the computer, it must be that the standard BT virtual serial port drivers that manage the ports created for the BT connection to Arduino handle the control signals properly and send them over to the BT shield connected to Arduino. Hence no work should be needed on the side of the computer, and it only depends on the receiver: whether it has the control signals accessible on any of the output pins and operates them as it should, or not (as usually is the case, unfortunately).
I'm attempting to use a classic bluetooth chip to possibly send out signals to another device with a classic bluetooth chip.
Now would it be possible to create a beacon with classic bluetooth?
You certainly can. A Bluetooth LE beacon typically sends out regular advertisements with a unique identifier that can be picked up by a receiving device (typically a mobile phone) doing a Bluetooth LE scan. Since you can also send out advertisements and do scans with classic Bluetooth, you could build the same thing with this technology.
The main disadvantage is that classic Bluetooth uses much more power, both for transmitting the beacon signal and more importantly for doing the scans. So if you are using mobile phones to detect the beacons the battery drain will be much higher than if using Bluetooth LE.