Communication device having barometric sensor calibration responsive to communication fingerprint of known local network nodes

A communication device, method and computer program product enable reduced polling of a barometric sensor, which reduces power consumption and sensor calibration drift. A controller of a communication device determines at least one of received signal strength and direction of respective broadcast signals from local network node(s) positioned within a building to provide a local coverage area. The controller determines a location of the communication device in relation to the local network nodes in response to determining the received signal strength and/or the direction of the respective broadcast signals. The controller determines current altitude data related to a current barometer reading of the barometric sensor. The controller compares the current and the historical altitude data associated with past reading(s) at the location. In response to determining that a difference between the historical and the current altitude data is greater than a threshold distance, the controller calibrates the barometric sensor.

BACKGROUND

1. Technical Field

The present disclosure relates generally to portable communication devices, and more particularly to portable communication devices that include a barometric sensor.

2. Description of the Related Art

Portable communication devices may include a number of sensors such as accelerometers, ambient light sensors, global positioning system (GPS) sensor, compass, proximity sensor, gyroscope, etc. Some portable communication devices can include a barometric sensor that is used for determining local weather in response to an atmospheric pressure change. The barometric sensor can also be used for determining altitude. The portable communication device can determine the altitude in order to assist first responders in locating a person who makes an emergency call using the portable communication device. Altitude of the device can also be determined by use of GPS signals; However, while inside of a building, the portable communication device may not have access to GPS signals as an alternate source of altitude information.

A number of different technologies are used in design of barometric sensors, including: (i) piezoelectric; (ii) piezoresistive; (iii) strain gage; and (iv) capacitive. What each of these technologies have in common is calibration drift that occurs in response to frequent activations, the passage of time, and changes in the environment (e.g., temperature). Thus, the communication device is required to regularly recalibrate the barometric sensor to maintain accurate altitude data. When available, recalibration involves locating the communication device and communicating with a fixed location external source of accurate barometric data to use in calibrating the barometric sensor of the communication device. In an example, airports often include METeorological Aerodrome Reports (METARs) stations that include station location, station altitude and ambient barometric pressure data. Many locations however do not have an external source of accurate barometric data to enable recalibration. In addition, frequent recalibration of the barometric sensor consumes stored power, reducing available time between recharging of the communication device.

DETAILED DESCRIPTION

According to a first aspect of the present disclosure, a communication device, a computer program product, and a method avoid unnecessary recalibrating of a barometric sensor based on a radio frequency (RF) fingerprint of known local network nodes. The communication device includes a barometric sensor. The communication device includes a communication subsystem communicatively connectable over-the-air to one or more local network nodes positioned within a building to provide a local coverage area. Examples of local network nodes include wireless access points for wireless communication and femtocells or fifth generation new radio base nodes (“gNB”) for cellular communication. The communication device includes a memory that stores a barometric calibration application and historical data of prior communication connections with the one or more local network nodes. A controller of the communication device is communicatively coupled to the barometric sensor, the communication subsystem, and the memory. The controller determines at least one of received signal strength and direction of respective broadcast signals from the one or more local network nodes. In response to determining that least one of the received signal strength and the direction of the respective broadcast signals, the controller determines a location of the communication device in relation to the one or more local network nodes. The controller monitors the barometric sensor for a current barometer reading. The controller determines current altitude data related to the current barometer reading of the communication device. The controller compares the current altitude data with historical altitude data associated with one or more past readings at the location of the communication device. In response to determining that a difference between the historical altitude data and the current altitude data is greater than a threshold distance, the controller calibrates the barometric sensor. In response to determining that a difference between the historical altitude data and the current altitude data is not greater than the threshold distance, the controller does not calibrate the barometric sensor, reducing power consumption by the communication device.

In the following detailed description of exemplary embodiments of the disclosure, specific exemplary embodiments in which the various aspects of the disclosure may be practiced are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, architectural, programmatic, mechanical, electrical, and other changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and equivalents thereof. Within the descriptions of the different views of the figures, similar elements are provided similar names and reference numerals as those of the previous figure(s). The specific numerals assigned to the elements are provided solely to aid in the description and are not meant to imply any limitations (structural or functional or otherwise) on the described embodiment. It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements.

As further described below, implementation of the functional features of the disclosure described herein is provided within processing devices and/or structures and can involve use of a combination of hardware, firmware, as well as several software-level constructs (e.g., program code and/or program instructions and/or pseudo-code) that execute to provide a specific utility for the device or a specific functional logic. The presented figures illustrate both hardware components and software and/or logic components.

Those of ordinary skill in the art will appreciate that the hardware components and basic configurations depicted in the figures may vary. The illustrative components are not intended to be exhaustive, but rather are representative to highlight essential components that are utilized to implement aspects of the described embodiments. For example, other devices/components may be used in addition to or in place of the hardware and/or firmware depicted. The depicted example is not meant to imply architectural or other limitations with respect to the presently described embodiments and/or the general invention. The description of the illustrative embodiments can be read in conjunction with the accompanying figures. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the figures presented herein.

FIG.1depicts a functional block diagram of an electronic device, specifically communication device100, having controller101that determines whether recalibration of barometric sensor102is or is not necessary, in part based on an RF fingerprint, detected by communication subsystem103, of known local network nodes104. As used herein, an RF fingerprint is a coverage area around a selected local network node that is associated with a floor height that is constant such that each instance of being in the RF fingerprint should correspond to the same barometric pressure and altitude. Some slight barometric pressure variation is allowable due to weather and calibration drift so long as the drift is not greater than a threshold value. Communication device100may be one of a host of different types of devices, including but not limited to, a mobile cellular phone, satellite phone, or smart-phone, a laptop, a net-book, an ultra-book, a networked smart watch or networked sports/exercise watch, and/or a tablet computing device or similar device that can include wireless and/or wired communication functionality. As an electronic device supporting wireless communication, communication device100can be utilized as, and also be referred to as, a system, device, subscriber unit, subscriber station, mobile station (MS), mobile, mobile device, remote station, remote terminal, user terminal, terminal, user agent, user device, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), computer workstation, a handheld device having wireless connection capability, a computing device, or other processing devices connected to a wireless modem. Communication device100is assumed to be a portable communication device whose physical location can be changed from time to time by a user.

Referring now to the specific component makeup and the associated functionality of communication device100. Communication device100includes controller101communicatively coupled to device memory106, communication subsystem103, input/output (I/O) subsystem110, and data storage subsystem111. Device memory106and each subsystem (103,110, and111) are managed by controller101. Device memory106includes program code for applications, such as barometric calibration application105and other application(s)113. Device memory106further includes operating system (OS)114, firmware interface115, such as basic input/output system (BIOS) or Uniform Extensible Firmware Interface (UEFI), and firmware116. Controller101executes barometric calibration application105that is stored in device memory106along with pressure-altitude lookup table (LUT)107, historical data108, and barometer settings109. When executed by controller101, barometric calibration application105configures communication device100to perform smart barometric sensor recalibration responsive to a recognized RF fingerprint of local network nodes104. Examples of barometric sensor102includes a piezoelectric sensor, a piezoresistive sensor, a strain gage sensor, and a capacitive sensor.

Controller101includes processor subsystem117, which executes program code to provide operating functionality of communication device100that avoids recalibration of barometric sensor102by indirectly confirming that of the barometric pressure reading is accurate. Controller101confirms accuracy of the calibration by determining a location, which is associated with an altitude, from communication subsystem103. The software and/or firmware modules have varying functionality when their corresponding program code is executed by processor subsystem117or secondary processing devices within communication device100. Processor subsystem117of controller101can execute program code of barometric calibration application105and other application(s)113to configure communication device100to perform specific functions using historical data108, barometer settings109, and computer data118. In one or more embodiments, controller101executes barometric calibration application105to configure communication device100to: (i) determine at least one of received signal strength and direction of respective broadcast signals from one or more local network nodes104; (ii) determine a location of communication device100in relation to the one or more local network nodes104based on the received signal strength and/or the direction of the respective broadcast signals; (iii) monitor barometric sensor102for a current barometer reading; (iv) determine current altitude data related to the current barometer reading; (v) store the location of the communication device with the received strength and/or direction, and the current barometric reading as historical data108in device memory106for future reference; (vi) compare the current altitude data with historical altitude data associated with one or more past readings at the location of communication device100; and (vii) calibrate barometric sensor102in response to determining that a difference between the historical altitude data (108) and the current altitude data is greater than a threshold distance in barometer settings. The barometric pressures are related to altitudes, so, in one alternate embodiment, the compared data may be current and historical pressure readings. In one or more embodiments, digital map119is stored in device memory106. Controller101tracks a series of locations of communication device100. Controller generates and updates digital map119of a building including one or more floor levels and one or more locations of transitions between floor levels based on the series of locations that are tracked. Digital map119includes altitude data for the series of location. The altitude data may be in the form of barometric data that can be converted to altitude data. Controller101determines whether the difference between the historical altitude data and the current altitude data is greater than the threshold distance referenced to the altitude data stored in digital map119.

I/O subsystem110includes barometric sensor102, vibration output device128, light output device129, image capturing device(s)130, microphone131, display device132that presents user interface133, touch/haptic controls134, and audio output device(s)136. In one or more embodiments, I/O subsystem includes additional sensors, such as accelerometer137that provides acceleration data, inertial sensor138, and temperature sensor139. In one or more embodiments, support processors such as sensor hub140manage activating, controlling, monitoring, and polling of certain sensors such as barometric sensor102.

Referring now to the communication components and features of communication device100. Communication subsystem103of communication device100enables wireless communication with external communication system148. Communication subsystem103includes antenna subsystem150having lower band antennas151a-151mand higher band antenna arrays152a-152nthat can be attached in/at different portions of housing149. Communication subsystem103includes radio frequency (RF) front end153and communication module154. RF front end153includes transceiver(s)155, which includes transmitter(s)156and receiver(s)157. RF front end153further includes modem(s)158. RF Communication module154of communication subsystem103includes baseband processor163that communicates with controller101and RF front end153. Baseband processor163operates in a baseband frequency range to encode data for transmission and decode received data, according to a communication protocol. Modem(s)158modulate baseband encoded data from communication module154onto a carrier signal to provide a transmit signal that is amplified by transmitter(s)156. Modem(s)158demodulates each signal received from external communication system148using antenna subsystem150. The received signal is amplified and filtered by receiver(s)157, which demodulate received encoded data from a received carrier signal.

In one or more embodiments, controller101, via communication subsystem103, performs multiple types of over-the-air communication with network nodes164of external communication system148. Particular network nodes164can be part of communication networks165of public land mobile networks (PLMNs) that provide connections to plain old telephone systems (POTS)166for voice calls and wide area networks (WANs)167for data sessions. WANs167can include Internet and other data networks to communication device100. The particular network nodes164can be cellular “cells”, base stations, or base nodes168that support cellular OTA communication using RAT as part of a radio access network (RAN). Communication device100may use barometer settings109to determine which types of base nodes168have a small coverage area to use for RF fingerprinting of a location. In an example, particular types of femtocells or 5G NR base nodes168intended for indoor installation may be sufficiently limited in transmit power and constrained by building structure to be designated as local network nodes. Communication subsystem103communicates via OTA communication channel(s)172awith base nodes168.

Communication subsystem103can receive OTA communication from location services such as provided by global positioning system (GPS) satellites170. Communication subsystem103receives GPS signal(s)172bbroadcast by GPS satellites170to obtain geospatial location information when outdoors. In some instances, the accuracy of GPS information is sufficient to serve as another indirect confirmation of calibration of the barometric sensor when outdoors. In some instances, the GPS information is not available, such as when communication device100is indoor or due to the inherent altitude inaccuracy of the GPS system.

In one or more embodiments, network nodes164can be access point(s) or access nodes169that support wireless OTA communication. Communication device100may use barometer settings109to determine which types of access nodes169have a small coverage area to use for RF fingerprinting of a location. In an example, particular types of access nodes169intended for indoor installation may be sufficiently limited in transmit power and constrained by building structure to be designated as local network nodes. Communication subsystem103communicates via wireless communication channel(s)172cwith access node(s)169. In one or more particular embodiments, access node(s)169supports communication using one or more IEEE 802.11 wireless local area network (WLAN) protocols. Wi-Fi™ is a family of wireless network protocols, based on the IEEE 802.11 family of standards, which are commonly used between user devices and network devices that provide Internet access.

Data storage subsystem111of communication device100includes data storage device(s)179. Controller101is communicatively connected, via system interlink180, to data storage device(s)179. Data storage subsystem111provides applications, program code, and stored data on nonvolatile storage that is accessible by controller101. For example, data storage subsystem111can provide a selection of applications and computer data, such as barometric calibration application105and other application(s)113that support smart recalibration of barometric sensor102. These applications can be loaded into device memory106for execution by controller101. In one or more embodiments, data storage device(s)179can include hard disk drives (HDDs), optical disk drives, and/or solid-state drives (SSDs), etc. Data storage subsystem111of communication device100can include removable storage device(s) (RSD(s))181, which is received in RSD interface182. Controller101is communicatively connected to RSD181, via system interlink180and RSD interface182. In one or more embodiments, RSD181is a non-transitory computer program product or computer readable storage device. Controller101can access RSD181or data storage device(s)179to provision communication device100with program code, such as code for barometric calibration application105and other application(s)113.

In one or more embodiments, communication device100includes network interface controller (NIC or “network interface”)185with a network connection (NC)186. Network cable187connects NC186to wired area network188. NIC185can be referred to as a “network interface” that can support one or more network communication protocols. Wired area network188can be a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), or a wide area network (WAN).

Controller101manages, and in some instances directly controls, the various functions and/or operations of communication device100. These functions and/or operations include, but are not limited to including, application data processing, communication with second communication devices, navigation tasks, image processing, and signal processing. In one or more alternate embodiments, communication device100may use hardware component equivalents for application data processing and signal processing. For example, communication device100may use special purpose hardware, dedicated processors, general purpose computers, microprocessor-based computers, micro-controllers, optical computers, analog computers, dedicated processors and/or dedicated hard-wired logic.

Controller101includes processor subsystem117, which includes one or more central processing units (CPUs), such as data or application processor189. Processor subsystem117can include one or more digital signal processors190that are integrated with application processor189. Processor subsystem117can include other processors that are communicatively coupled to data processor189, such as baseband processor163of communication module154or sensor hub140of I/O subsystem110. In one or embodiments that are not depicted, controller101can further include distributed processing and control components that are external to housing149or grouped with other components, such as I/O subsystem110. Data processor189is communicatively coupled, via system interlink180, to device memory106. In one or more embodiments, controller101of communication device100is communicatively coupled via system interlink180to communication subsystem103, data storage subsystem111, and I/O subsystem110.

System interlink180represents internal components that facilitate internal communication by way of one or more shared or dedicated internal communication links, such as internal serial or parallel buses. As utilized herein, the term “communicatively coupled” means that information signals are transmissible through various interconnections, including wired and/or wireless links, between the components. The interconnections between the components can be direct interconnections that include conductive transmission media or may be indirect interconnections that include one or more intermediate electrical components. Although certain direct interconnections (system interlink180) are illustrated inFIG.1, it is to be understood that more, fewer, or different interconnections may be present in other embodiments.

FIG.2depicts a simplified functional bock of controller101of communication device100(FIG.1) having sensor hub140that has control of components necessary to determine whether barometer recalibration is necessary while application processor189is either in an active mode during an active communication session with a wireless access point or an inactive mode when not in an active communication session. In one or more embodiments, sensor hub140has a significantly lower power consumption rate than application processor189. Sensor hub140activates wireless integrated circuit, chip, or module201, which wirelessly connects to wireless access points, and wireless modem203to monitor signal strength and/or wireless direction of local network nodes104. Sensor hub140is communicatively connected to sensors, such as barometric sensor102, that are monitored while application processor189is either in an active mode or an inactive mode. Other monitored sensors may include accelerometer137, inertial sensor138, temperature sensor139, and always-on voice microphone205for activating application processor189. At least one of accelerometer137and inertial sensor138produce movement data used for dead reckoning of an estimated location of communication device100.

FIG.3depicts a diagram of a first RF fingerprint recognized, within in multi-story building302, for single 18th floor office301with single local network node104. Communication device100has recorded historical data108for eight (8) locations303a-303hin single 18th floor office301of multi-story building302. Communication device100stores historical data108when barometric sensor102has been calibrated within a period of time that corresponds to an accurate reading. In an example, communication device100determines that the first RF fingerprint is limited to a single floor. Being on the same floor, all locations303a-303hwithin the first RF fingerprint are expected to have the same barometric pressure reading with the same corresponding altitude. Each further location303a-303hfrom local network node104has decreasing received signal strength indicator (RSSi) relative to a previous one of locations (303a-303h) and/or local network node104. The decreasing RSSi is related to increasing distance from local network node104. Sensor hub140receives RSSi from wireless module201(FIG.2). In an example, sensor hub140of controller101(FIG.1) receives barometric pressure reading from barometric sensor102(FIG.2). Sensor hub140looks up or calculates a current altitude such as by referencing pressure-altitude LUT107(FIG.1). Communication device100compares barometric pressure readings or associated altitude values for previous visits to locations303a-303hto compare to current barometer pressure readings. In response to determining that the barometer readings are within a threshold range from historical barometer pressure readings, communication device100may defer triggering recalibration of barometer sensor102(FIG.2). TABLE A provides examples of historical data108for local network node “Office AP Mac address 2F:3C:44:1A:22:AB”. The barometric pressure readings are the same for each location303a-303hbecause locations303a-303hare on the same floor at the same altitude.

In an example, communication device100is physically at location303c. Communication device100receives RSSi of −55 dBm from local network node104and identifies location303cas being within the first RF fingerprint of single 18th floor office301of multi-story building302. In one or more embodiments, the structure of multi-story building302greatly attenuates the signal of local network node104so that the RF fingerprint is determined based solely on the RSSi being above a lower power threshold. In one or more embodiments, communication device100is so frequently on 18th floor office301that any instance of being able to receive the RSSi on an adjacent floor results in an occasional reversion to a standard frequency of calibration of barometric sensor102due to a difference in barometric pressure between different floors. Communication device100receives current barometric pressure reading 2002.0 psi from barometric sensor102(FIG.1). Communication device100accesses barometric pressure reading of 2001.1 psi from historical data108(FIG.1) for location303c. In response to the difference being less than the threshold value of ±0.2 psi, communication device100determines that barometric sensor102is providing a sufficiently accurate barometric pressure reading to defer calibration of barometric sensor102.

In another example, communication device100is physically at location303g. Communication device100receives RSSi of −75 dBm from local network node104and identifies location303gas being within the first RF fingerprint of single 18th floor office301of multi-story building302. Communication device100receives current barometric pressure reading 2002.4 psi from barometric sensor102(FIG.1). Communication device100accesses barometric pressure reading of 2001.1 psi from historical data108(FIG.1) for location303c. In response to the difference being greater than the threshold value of ±0.2 psi, communication device100determines that barometric sensor102requires calibration.

FIG.4depicts a top view of a large office401having five (5) local network nodes104a-104epositioned to provides wireless coverage. Communication device100may identify locations within large office401based on identifying the strongest one of local network nodes104a-104e. In one or more embodiments, communication device100collects data from multiple local network nodes104a-104e. The collection of data from these multiple location network nodes104a-104eadds can increase the accuracy of the determination, using more complex methods. For example, communication device100can triangulate horizontal location relative to multiple local network nodes104a-104e.

In one or more embodiments, controller101(FIG.1) of communication device100monitors a respective direction of each of the respective broadcast signals from the one or more local network nodes104a,104b,104c,104d, and104e. Controller101determines the location, including a floor level, of communication device100at least in part by triangulating relative positions of one of the one or more local network nodes104a-104emeasured by communication device100from different locations and in part based on the current altitude data.

In one or more embodiments, controller101(FIG.1) of communication device100monitors acceleration data from accelerometer137. Controller101(FIG.1) determines a change in location by performing dead reckoning in response to the acceleration data. Controller101(FIG.1) monitors a direction of the respective broadcast signal from a particular one of one or more local network nodes104a-104e. Controller101(FIG.1) determines the location, including a floor level, at least in part based on triangulating relative positions of the particular one of one or more local network nodes104a-104eand in part based on the current altitude data.

FIG.5depicts a diagram of a second RF fingerprint recognized for first floor501aand second floor501bof home502. Local network nodes104a-104bare positioned respectively on first and second floor501a,501b. In an example, communication device100may determine location as one of locations503a-503hon the first floor and locations503i-503pon the second floor based solely on RSSi from the stronger of the two local network nodes104a-104b. In another example, communication device100may determine location based on RSSi from both of local network nodes104a-104b. In an additional example, communication device100may determine location in part by determining triangulating directions to both local network nodes104a-104bfrom communication device100at a selected location in home502. In further example, communication device100may determine location in part by determining triangulating directions to one local network node104a-104bwhile communication device100is moving within home502. TABLE B presents examples of historical data108for local network node “Home AP Mac Address 00:22:6B:FF:24:12” on the first floor501a:

TABLE C presents example historical data108for local network node “Home AP Mac address 00:08:5c:00:00:01” on second floor501b:

In one or more embodiments, sufficient RF signal attention between first floor501aand second floor501bof home502allows communication device100to determine location with only one of TABLES B-C having RSSi above a lower received power threshold to be applicable. In one or more embodiments, communication device100receives signals from both local network nodes104a-104bat least in some locations. Communication device100can determine that certain locations can be conclusively determined based on a much higher RSSi from one than another of local network nodes104a-104b. Other locations may not be distinguishable based solely on RSSi. In one or more embodiments, communication device100determines a relative direction and distance between communication device100and each local network nodes104a-104b. In an example, communication device100determines each location based on a geometric solution for the determined directions to local network nodes104a-104b. In some instances, communication device100can identify a direction in the horizontal plane but not distinguish the vertical direction to one of local network nodes104a-104b, which can result in some locations being ambiguous as to which floor501a-501bis indicated. In other instances, communication device100can triangulate not only horizontal location but also vertical location relative to multiple local network nodes104a-104bso that some locations are not ambiguous as to which floor501a-501bis indicated. Alternatively, communication device100may learn attenuation of signals caused by structures of home502, which creates combinations of RSSi readings from local network nodes104a-104bthat are not ambiguous, enabling identification of which floor501a-501bcommunication device100is on. In an example, communication device100detects a series of RSSi readings that is compared to and matched with RSSi readings stored in digital map119.

FIG.6A-6B(collectivelyFIG.6) present a flow diagram of method600performed by example communication device100for smart barometric sensor recalibration responsive to a recognized RF fingerprint of local network nodes.FIG.7presents a flow diagram performed by the communication device to determine horizontal or geospatial coordinates for each location by referencing an accelerometer or an inertial sensor and triangulating directions to the local network nodes (s). The description of methods600and700are provided with general reference to the specific components illustrated within the precedingFIGS.1-5, and specific components referenced in methods600and700may be identical or similar to components of the same name used in describing precedingFIGS.1-5. In an example, controller101of communication device100(FIG.2) performs methods600and700implementing functionality of smart barometric sensor recalibration.

With reference toFIG.6A, method600begins with monitoring or polling, by a controller of a communication device, a barometric sensor of the communication device for a current barometric pressure reading (block602). The monitoring and/or polling occurs at a first time interval or frequency. In one or more embodiments, the controller includes a sensor hub that activates, configures, manages, and polls sensors, such as monitoring acceleration data from the accelerometer and monitoring a current barometer reading of the barometric sensor. The sensor hub consumes stored electrical power at a sufficiently low level than the application processor to enable continuous activation, enabling for example periodic barometric pressure readings. The sensor hub is communicatively coupled to an application processor of the controller that executes applications. The application processor consumes power at a higher level. In one or more embodiments, application processor switches to an inactive state when not required to execute an application, reducing power consumption. Sensor hub is configured to be able to monitor the local network nodes, via use of a wireless chip or module and a wireless modem, when the application processor is inactive or asleep, which may be referred to as in a sleep mode.

Method600includes scheduling recalibration of the barometric sensor on a recurring time interval (block604). In one or more embodiments, routine recalibration of the barometric sensor is triggered by one or more factors including: the amount of usage of the barometric sensor, an elapse of time, and changes in the environment such as temperature. Method600includes determining a current altitude of the communication device corresponding to the current barometric pressure reading (block606). The determining of the current altitude can be based on a pressure-altitude lookup table (LUT) or a mathematical formula. Method600includes providing the current barometric pressure reading and the current altitude to applications, such as emergency communication applications to first responders or local weather applications, executed by the communication device (block608). In an example, the communication device reports the current altitude data to a connected network node, such as by including corresponding meta data with a voice call. Method600includes monitoring, by a communication subsystem of a communication device, available local network node(s) that are positioned within a building to provide a local coverage area (block610). Method600includes measuring received signal strength from a selected local network node (block612). Method600includes determining whether the received signal strength is equal to or greater than a received strength threshold value indicating that the communication device is in the local coverage area of the selected local network node (decision block614). In response to determining that the received signal strength is less than the received strength threshold value, method600returns to block602. In response to determining that the received signal strength is equal to or greater than the received strength threshold value, method600includes identifying a current location of the communication device with the local coverage area of the selected local network node defined by the received signal strength (block616). Then method600proceeds to block618(FIG.6B).

With reference toFIG.6B, method600includes determining whether the current location has been previously stored as historical data in device memory (decision block618). In response to determining that the current location has not been previously stored in historical data, method600includes creating a new location entry in the historical data that includes the identity of the selected local network node, the received signal strength, and one or more of the barometric pressure reading and the corresponding current altitude (block620). Then method600returns to block602(FIG.6A). In response to determining that the current location has been previously stored in historical data, method600includes monitoring or polling the barometric sensor at a second polling frequency that is less than the first polling frequency (block622). The first polling frequency is empirically preset based on calibration drift based on one or more of time, usage, and ambient condition changes. The second polling frequency is longer because being in the RF fingerprint defined by the historical data provides an alternate way to confirm that calibration of the barometric sensor has not drifted too much for accurate readings. Method600includes suspending scheduled recalibrations of the barometric sensor (block624). Method600includes comparing the current altitude data with historical altitude data associated with one or more past readings at the location of the communication device (block626). Method600includes determining whether a difference between the historical altitude data and the current altitude data is greater than a threshold distance (decision block628). In response to determining that the difference between the historical altitude data and the current altitude data is greater than the threshold distance, method600includes calibrating the barometric sensor (block630). Then method600returns to block602(FIG.6A). In response to determining that the difference between the historical altitude data and the current altitude data is less than or equal to the threshold distance, method600returns to block602(FIG.6A).

With reference toFIG.7, method700includes monitoring one or more of an accelerometer and an inertial sensor for a horizontal movement of the communication device (block702). Method700includes determining a current location in part based on the horizontal movement (block704). Method700includes measuring direction of broadcast signals from the one or more local network nodes (block706). Method700includes determining the current location at least in part by triangulating respective locations of the one or more local network nodes (block708). Method700includes mapping locations in the local coverage area based in part on one or more of the horizontal movement and the triangulating of the respective locations of the one or more local network nodes (block710). Method700returns to block702.

As will be appreciated by one skilled in the art, embodiments of the present innovation may be embodied as a system, device, and/or method. Accordingly, embodiments of the present innovation may take the form of an entirely hardware embodiment or an embodiment combining software and hardware embodiments that may all generally be referred to herein as a “circuit,” “module” or “system.”

While the innovation has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made, and equivalents may be substituted for elements thereof without departing from the scope of the innovation. In addition, many modifications may be made to adapt a particular system, device, or component thereof to the teachings of the innovation without departing from the essential scope thereof. Therefore, it is intended that the innovation not be limited to the particular embodiments disclosed for carrying out this innovation, but that the innovation will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another.