Author Topic: Restricting Range  (Read 836 times)

300Baud

  • RFduino Newbie
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Restricting Range
« on: June 21, 2016, 05:10:23 AM »
Greetings.  Newbie RFduino user here.  I am designing a solution whereby I only want to establish a connection when the smartphone / tablet device is within 1-2m of the RFduino.  Noticed that I can lower power to minimum via RFduinoBLE.txPowerLevel, but also wondering what other tricks / patterns more experienced developers might suggest to ensure proximity restriction is effective.  Note: Found this thread on proximity measurement - looks like a great starting point http://forum.rfduino.com/index.php?topic=736.0

tolson

  • Global Moderator
  • *****
  • Posts: 866
  • Karma: +20/-0
    • View Profile
    • Thomas Olson Consulting
Re: Restricting Range
« Reply #1 on: June 29, 2016, 04:52:28 PM »
Greetings.  Newbie RFduino user here.  I am designing a solution whereby I only want to establish a connection when the smartphone / tablet device is within 1-2m of the RFduino.  Noticed that I can lower power to minimum via RFduinoBLE.txPowerLevel, but also wondering what other tricks / patterns more experienced developers might suggest to ensure proximity restriction is effective.  Note: Found this thread on proximity measurement - looks like a great starting point http://forum.rfduino.com/index.php?topic=736.0

You are right. You can set the TX power to minimum (-20 dBm). But you can't use RSSI values before you make a connection. Hmm!

If you decide to use the Simblee instead of RFduino there is an additional API which physically inserts some kind of attenuator in the antenna path... SimbleeCOM.proximityMode()...  such that you have to be within a few inches. Exactly how much hasn't been documented, but you could be the first to give it a go and publish your findings here. The command is in the SimbleeCOM API, but I don't know why you couldn't do what that command does while in plain old SimbleBLE. All it is doing is setting GPIO31 HIGH to enable it. GPIO31 LOW to put it back to normal.

Actually, I think you can use...
SimbleBLE.proximityMode(true); // to enable the attenuation
and
SimbleBLE.proximityMode(false); // to disable the attenuation (DEFAULT)

Have fun!







« Last Edit: June 29, 2016, 10:15:24 PM by tolson »