Quick Bluetooth Question

Bluetooth is limited by range, and theoretically as the range drops off on say a Class 2 radio, 10m being the max, I should be able to tell my distance I’d imagine. Is there anyway to do that? Because if I can tell my distance to my receiver and I’m able to tell the headings by using GPS modules then I should be able ot make my project work…otherwise I have no way for the robotic portion to home in on the mobile control…if anyone has any bright ideas…

Seems like to me you could possibly send some type of ping message to your Bluetooth device at some constant rate. Measure the number of packets dropped WRT packets received, and you can figure your distance from that. It would definitely take some calibration and testing to get it to work right. I’m no Bluetooth guy, so this is all sort of theoretical since I don’t know much about the protocol.

brennen:
Seems like to me you could possibly send some type of ping message to your Bluetooth device at some constant rate. Measure the number of packets dropped WRT packets received, and you can figure your distance from that. It would definitely take some calibration and testing to get it to work right. I’m no Bluetooth guy, so this is all sort of theoretical since I don’t know much about the protocol.

not sure how well that will work, in my experimental experience once dropped packets become significant you’re at the outside range, so there’s no way I can tell the in between area, I could be wrong and I’m just not detecting it, but I’m also not using an MCU atm, so I can’t setup a PING and check, I’m just playing with hardware for starters.

Unless your radio has some sort of received signal strength indicator, whether in a register or on an analog output pin or something, I can’t really think of any other way to do it besides simply using a ratio of dropped versus total packets sent. Maybe someone else will chime in.

Unfortunately, like other digital radio systems, its all or none. You will see no packet loss until right at the edge, and then you will lose almost all of it. In a wide, open field with no obstructions, you might be able to determine two values: if someone is 10 meters or closer, or not within 10 meters.

This is going to be variable because your antenna characteristics are not going to be uniform enough to draw a perfect circle.

Indoors, and all bets are off. Obstructions will greatly effect bluetooth’s range. it could be anywhere from 2 meters to 10 meters.

If you can get RSSI off the chip, you might be able to judge distance in an open field. Again, this also breaks indoors.

Also, there is no way to judge round trip time using bluetooth. You cant just measure the distance between the ping times.

The above applies to WiFi as well.

maokh:
Also, there is no way to judge round trip time using bluetooth. You cant just measure the distance between the ping times.

I wasn't suggesting trying to measure RTT with the pings. I was simply suggesting counting the number of pings that were received back with respect to the number of pings sent. With some calibration, this could be used as a crude means of distance testing.

Since Grimm didn’t specify whether he was going to be indoors or not, I was simply just trying to make suggestions that he could try in the ideal case. They might work sometimes, they might not - I was just trying to make suggestions rather than say it couldn’t be done.

brennen:

maokh:
Also, there is no way to judge round trip time using bluetooth. You cant just measure the distance between the ping times.

I wasn't suggesting trying to measure RTT with the pings. I was simply suggesting counting the number of pings that were received back with respect to the number of pings sent. With some calibration, this could be used as a crude means of distance testing.

Since Grimm didn’t specify whether he was going to be indoors or not, I was simply just trying to make suggestions that he could try in the ideal case. They might work sometimes, they might not - I was just trying to make suggestions rather than say it couldn’t be done.

distance : radar principles, But this is very costly

distance : signal strength given a priori knowledge of the RF propagation losses from sender to receiver, and that the losses don’t vary due to blockages and mobility. Impractical. At best, for short distances, the accuracy with this is around 30 ft at high frequencies. The loss is frequency and distance dependent, as well as obstructions (including the human body at high freqs. like 2.4GHz).

brennen:

maokh:
Also, there is no way to judge round trip time using bluetooth. You cant just measure the distance between the ping times.

I wasn't suggesting trying to measure RTT with the pings. I was simply suggesting counting the number of pings that were received back with respect to the number of pings sent. With some calibration, this could be used as a crude means of distance testing.

Since Grimm didn’t specify whether he was going to be indoors or not, I was simply just trying to make suggestions that he could try in the ideal case. They might work sometimes, they might not - I was just trying to make suggestions rather than say it couldn’t be done.

well I’d be outdoors…

I’ve looked at radar, it would be too expensive for my requirements and too heavy

I’d use microwave if it wasn’t dangerous, because microwave would be perfect, the human body and other objects are not transparent to it, which is exactly what I want, however it can harm a person over long durations by heating the body, and burning them… :frowning: but a person would count as an object at whatever range to this setup…at 2.4 GHz there’d be loss, and that would likely indicate an object but it wouldn’t be the same as getting a signal back…

you guys are designing it based on a send/receive but I need it to be a transceive, that is the sender and receiver are the same device.

scratches head

I seem to be missing something in the understanding area. You’re trying to tell distance, and have heading information from GPS, but you’re too close to get a position difference via GPS, is that the issue?

As others have said, with calibration the RSSI output on an RF module (I know there’s one on the Nordics and on the Zigbee modules, but dunno about bluetooth) would sorta work, but that also may only give field readings, not actual signal strength (dunno).

I’ve not had to approach this before myself, mind you. I’d take a completely different approach, using other medium. Close field direction I’d use a scanning IR beacon (rotating mirror and slit shielded IR sensor to detect either a constant or pulsed IR beacon). Two of these could provide triangulation, otherwise you could combine that (using an RC servo instead of a constant speed mirror motor) with a sonar unit to provide distances. Sonars can work in the 5-10m range, so it might be useful.

SOI_Sentinel:
scratches head

I seem to be missing something in the understanding area. You’re trying to tell distance, and have heading information from GPS, but you’re too close to get a position difference via GPS, is that the issue?

As others have said, with calibration the RSSI output on an RF module (I know there’s one on the Nordics and on the Zigbee modules, but dunno about bluetooth) would sorta work, but that also may only give field readings, not actual signal strength (dunno).

I’ve not had to approach this before myself, mind you. I’d take a completely different approach, using other medium. Close field direction I’d use a scanning IR beacon (rotating mirror and slit shielded IR sensor to detect either a constant or pulsed IR beacon). Two of these could provide triangulation, otherwise you could combine that (using an RC servo instead of a constant speed mirror motor) with a sonar unit to provide distances. Sonars can work in the 5-10m range, so it might be useful.

Yes, exactly, the unit that I need a distance from won’t always have line of sight, and even if it did I don’t know what to do short of RADAR or the like, they should be within about 10 feet. I was thinking about IR, but that won’t work with a single device and could be hazardous to people, though I’ll be working under tight power contraints and I imagine at those levels it wouldn’t be an issue. Sonar might be an option I was looking at the SFE ultrasonic sensor and considering making something up to detect a certain pitch of sound, but I’d have to make it something pretty unique…

An IR beacon (a few mW dispersed into 360 degrees, not those focused 300mW monsters) flashing at several KHz won’t harm people. If you’re not trying to get a response off of a bounce, it’ll actually be easier and quite safe. Think TV remote control dangerous.

Since it sounds like a very small robot, layer? I’m just making sure you got one option, put the sonar AND one slit IR detector on the robot. The IR detector will give you the exact bearing, and the sonar can then give you the range. You can’t always do something with a single sensor system…

SOI_Sentinel:
An IR beacon (a few mW dispersed into 360 degrees, not those focused 300mW monsters) flashing at several KHz won’t harm people. If you’re not trying to get a response off of a bounce, it’ll actually be easier and quite safe. Think TV remote control dangerous.

Since it sounds like a very small robot, layer? I’m just making sure you got one option, put the sonar AND one slit IR detector on the robot. The IR detector will give you the exact bearing, and the sonar can then give you the range. You can’t always do something with a single sensor system…

that’s a really good idea, so something radial at a specific frequency, I’ll have to wander around and find a sound frequency in the ultrasonic range that isn’t inteferred with too much, and us a direction slit for the IR to give a heading. Thanks man, I’ll put my mind to work on that sort of design.

it will be a very small robot, originally I was aiming to make it the size of someones hand in length, but not it’s looking more like it will be overall the size of someone’s head, I upgraded from the SFE 2000 mAh battery to a 6350 mAh battery :wink: