External activation of quiescent devices
Patent Information
- Application Number
- JP2024515375
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-09-08
- Filing Date
- 2022-09-08
- Publication Date
- 2025-09-01
AI Technical Summary
Existing technologies lack efficient methods to awaken sleeping or quiescent devices, such as low-power sensors, from a dormant state using external activation signals.
A light detection circuit with a high pass filter generates voltage spikes from optical signals, powering a microcontroller to decode modified Morse code messages that include authentication, enabling the device to boot up and configure network credentials.
The method effectively activates quiescent devices by ensuring reliable power-up and secure network configuration through encoded optical signals, preventing false triggers and ensuring accurate message reception.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to turning on a sleeping device, and more particularly to a method and device for sending coded information to the device that communicates and commands the device to wake up. Summary of the Invention [Means for solving the problem]
[0002] This Summary is provided to introduce in a simplified form a selection of concepts that are further described below in the Detailed Description section. This Summary does not identify required features or essential features of the claimed subject matter.
[0003] In an embodiment, a light detection circuit adapted to receive a light signal from a light source is disclosed, the light detection circuit comprising: a high pass filter coupled to the light detection circuit to generate a spike upon receiving at least a given intensity of light; a power manager chip coupled to the light detection circuit to enable powering a microcontroller upon receipt of a spike; a timer to measure the time between spikes; and executable instructions residing in a memory, which, when executed by the microcontroller, perform the following actions: detect a spike; increment a spike counter; measure the time between spikes using the timer; clear the spike counter when the time between spikes exceeds a "word edge" length; and interpret a subsequent spike and delay length as a transmitted message when the spike counter reaches a wakeup threshold.
[0004] In an embodiment, the wake-up threshold is long enough to allow the microcontroller to boot.
[0005] In an embodiment, the transmitted message is in modified morse code.
[0006] In an embodiment, in modified Morse code, a short code (DOT) is a delay of 1 time duration, a long code (DASH) is a delay of 3 time durations, an END OF PART OF A LETTER is a delay of 1 time duration, an END OF LETTER is a delay of 5 time durations, and an END OF WORD is a delay of 9 time durations.
[0007] In an embodiment, the outgoing message includes a message portion and an authentication portion.
[0008] In an embodiment, the delay for one time period is about 8 ms.
[0009] In an embodiment, the light detection circuit, configured to receive an optical signal from the light source, is configured to receive the transmitted message as an optical signal.
[0010] In an embodiment, the transmitted message is stored in a memory.
[0011] In an embodiment, a light detection circuit configured to receive an optical signal from a light source is configured to receive a plurality of messages from the optical signal.
[0012] In an embodiment, the executable instructions, when executed by the microcontroller, further perform the following actions: Receive an out-of-band authentication request and transmit the contents of a buffer in memory.
[0013] In an embodiment, the light detection circuit is configured to generate a spike based off of the light signal.
[0014] In an embodiment, a device is disclosed having a microcontroller, a memory, and a transmitter, the device comprising a light detection circuit operationally able to receive a light signal from a light source and further operable to communicate to a power management circuit using the light signal, the power management circuit operable to boot up the microcontroller, the microcontroller operable to scan the light signal to find a message, and the transmitter operable to transmit at least a portion of the message.
[0015] In an embodiment, the message is encoded in modified Morse code, where a short code is a 1 time period signal, a long code is a 3 time period signal, a letter element end is a 2 time period signal, a letter end is a 5 time period signal, and a word end is a 9 time period signal.
[0016] In an embodiment, one time period comprises a time period >= 10 ms.
[0017] In an embodiment, one time period includes a time period <10 ms.
[0018] In an embodiment, the message includes a message portion followed by an authentication portion.
[0019] In an embodiment, the device further comprises a filter, the filter being a high pass filter.
[0020] In an embodiment, a method of externally activating a device is disclosed. The method is implemented by the device and one or more computers having a memory, one or more processors, a photodetector circuit, a high pass filter, and a transmitter. The method includes receiving an optical signal by the photodetector circuit, the photodetector circuit passing the optical signal to a filter, the filter generating a series of spikes of at least a threshold intensity when the optical signal is of sufficient strength, the spikes being spaced apart by a number of reference times, and powering the one or more processors upon receipt of the spikes.
[0021] In an embodiment, the method further includes scanning the optical signal to detect a spike, measuring the delay length between this spike and a subsequent spike, incrementing a spike counter when a spike is detected, clearing the spike counter when the delay length exceeds a "word end" delay, and interpreting the subsequent spike-delay length as a transmitted message when the spike counter reaches an activation threshold.
[0022] In an embodiment, the transmitted message is two characters of modified Morse code and a third authenticating character of modified Morse code.
[0023] In an embodiment, a programmable signaling light source having a processor and memory is disclosed, the signaling light source comprising a programmable light source having a processor and memory and operable to emit flashes of light with a known intensity and a known inter-flash delay, an encoder operable to encode a message, and executable instructions that, when executed by the processor, perform the actions of the encoder encoding a message including a message portion and an authentication portion, generating the encoded message, and the programmable light source sending the encoded message at least two times, the encoded message being encoded in modified Morse code.
[0024] In an embodiment, the act of the programmable light source sending the coded message further includes the act of the programmable light source repeatedly sending the coded message.
[0025] In an embodiment, the modified Morse code includes short codes which are light signals of one time period, long codes which are light signals of three time period, character element ends which are light signals of one time period, character ends which are light signals of five time period, and word ends which are light signals of nine time period.
[0026] In an embodiment, the system further includes a second transmitter, and the executable instructions, when executed by the processor, further perform the following actions: after sending the encoded message, request a secret message using the second transmitter, upon receiving the secret message, determine whether the secret message is equivalent to the authenticator, and if the secret message is equivalent to the authenticator, send the second message using the second transmitter.
[0027] In an embodiment, the authenticator is a character randomly selected by the optical transmitting device.
[0028] In an embodiment, the authenticator further includes a randomly selected character that is converted into modified Morse code, and the authenticator is followed by a word end in modified Morse code.
[0029] In an embodiment, the light signal comprises an intensity of about 40 lumens.
[0030] In an embodiment, the light signal comprises an intensity greater than 40 lumens.
[0031] In an embodiment, a method is disclosed that is implemented by one or more computers having a memory, one or more processors, a light source, and a transceiver, the method including converting a message into modified Morse code, the message including a message portion and an authentication portion, and repeatedly transmitting the message, the modified Morse code comprising signals including a light signal followed by a number of time periods.
[0032] In an embodiment, the method further includes the steps of requesting a secret message, receiving the secret message using the transceiver, checking whether the secret message is equal to the authenticator, and sending a second message if the secret message is equal to the authenticator.
[0033] In an embodiment, the message is encoded in modified Morse code, which constitutes a signal, the signal including a light signal followed by a number of time periods.
[0034] In an embodiment, a short code is 1 time period, a long code is 3 time periods, an end of part of letter is 1 time period, an end of letter is 5 time periods, and an end of word is 9 time periods.
[0035] In an embodiment, the second message is sent by a second transmitting device.
[0036] In an embodiment, the second transmitting device is a wireless transceiver.
[0037] In an embodiment, the message sent constitutes a signal of one time period, one time period being approximately 8 ms.
[0038] In an embodiment, a time period includes <8 ms.
[0039] In an embodiment, the transmitted signal is a word including two characters of modified Morse code and a third authentication character of modified Morse code followed by a word end.
[0040] In an embodiment, a non-transitory computer readable storage medium is disclosed having instructions stored thereon for externally triggering a stationary device, the instructions, when executed by a processor, causing the processor to perform steps including converting a message into modified Morse code, the message including a command portion and an authentication portion, repeatedly transmitting the message, the modified Morse code constituting a signal, the signal including a light signal followed by a number of time periods, requesting the secret message using a second transmitter, receiving the secret message using a second transceiver, and retransmitting the message when the secret message is equal to the authentication portion.
[0041] In an embodiment, the signal includes a flash of light followed by multiple time periods prior to the next flash.
[0042] In an embodiment, the modified Morse code comprises a signal that includes a rising or falling edge followed by a number of time periods.
[0043] In an embodiment, a short code is 1 time period, a long code is 3 time periods, a letter element end is 1 time period, a letter end is 5 time periods, and a word end is 9 time periods.
[0044] These and other aspects of the present invention will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. The following description sets forth various embodiments of the invention and numerous specific details thereof, given by way of example only and not by way of limitation. Many substitutions, modifications, additions, or rearrangements may also be made within the scope of the embodiments, and the embodiments include all such substitutions, modifications, additions, or rearrangements.
[0045] Non-limiting and non-exhaustive embodiments of the present embodiments are described with reference to the following figures, in which like reference numbers refer to like parts throughout the various views unless otherwise specified: [Brief description of the drawings]
[0046] [Figure 1] A computing system in conjunction with which the described embodiments can be implemented is disclosed. [Diagram 2] A method is disclosed that may be used with the embodiments disclosed herein and that may be used to power a processor. [Diagram 3] A method is disclosed that may be used with the embodiments disclosed herein and that may be used to read a message. [Figure 4] An embodiment is disclosed that may be used in the embodiments described herein to detect the start of a message. [Diagram 5] Describe the current Morse code chart. [Figure 6] A modified Morse code chart is disclosed for use in the embodiments described herein. [Figure 7A] Example messages that can be sent to the device 100 are disclosed. [Figure 7B] Example messages that can be sent to the device 100 are disclosed. [Figure 8] For the example system used in the embodiments described herein, the behavior when out-of-band authentication messages are sent is disclosed. [Figure 9] A digital signal generated by an optical circuit that does not have a high pass filter is disclosed. [Figure 10] The digital signals generated by the optical circuit having the high pass filter used in the embodiments described herein are disclosed. [Figure 11]The digital signal is disclosed in terms of a device receiving the signal through a high pass filter used in the embodiments described herein. [Figure 12] A computing system in conjunction with which the described embodiments can be implemented is disclosed. [Figure 13A] A physical embodiment is disclosed that can allow for external actuation of a stationary device. [Figure 13B] A physical embodiment is disclosed that can allow for external actuation of a stationary device. [Figure 14] A system is disclosed that can be used with the embodiments disclosed herein and can be used to read messages. [Figure 15] Methods are disclosed that can be used with the embodiments disclosed herein and that can be used to read messages. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0047] Corresponding reference characters indicate corresponding components throughout the various views of the drawings. It should be appreciated by those skilled in the art that elements in the figures are illustrated for clarity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to facilitate a better understanding of the various embodiments. Additionally, common elements that are useful or necessary in commercially feasible embodiments, but are well understood, are often not illustrated to facilitate a less obstructed view of the various embodiments.
[0048] Disclosed below are representative embodiments of methods, computer readable media, and systems that have particular application to external initiation of stationary devices.
[0049] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present embodiment. However, it will be apparent to those skilled in the art that these specific details may not be employed to practice the present embodiment. Meanwhile, well-known materials or methods are not described in detail to avoid obscuring the present embodiment.
[0050] Throughout this specification, reference to "one embodiment," "an embodiment," "one example," or "an example" means that a particular feature, structure, or characteristic described in connection with that embodiment or example is included in at least one of the embodiments of the present invention. That is, the appearances of the phrases "in one embodiment," "in an embodiment," "one example," or "example" in various places throughout this specification do not necessarily all refer to the same embodiment or example. Furthermore, the particular features, structures, or characteristics may be combined in any suitable combinations and / or subcombinations in one or more embodiments or examples.
[0051] The present embodiments may be realized as an apparatus, a method, or a computer program product. Thus, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects. Furthermore, the present embodiments may take the form of a computer program product of expression having computer usable program code embodied in any tangible medium embodied in the medium.
[0052] One or more computer usable or computer readable media, in any combination, may be utilized. For example, the computer readable media may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or flash memory) device, a portable compact disk read-only memory (CDROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out the operations of the present invention may be written in any combination of one or more programming languages.
[0053] Embodiments may also be implemented in an edge computing environment, where computing occurs within a network. In some embodiments, the network may not be connected to an outside internet, but the edge computing environment may be connected to an internal internet. The internet may be wired, wireless, or a combination of both. Embodiments may also be implemented in a cloud computing environment. Cloud models may consist of a variety of characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid scalability, pay-per-use, etc.), service models (e.g., Software as a Service ("SaaS"), Platform as a Service ("Paas"), Infrastructure as a Service ("IaaS")), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.).
[0054] The flowcharts and block diagrams in the flow diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, and may include one or more executable instructions for implementing a specified logical function(s). It is also noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a general purpose or special purpose hardware-based system that performs the specified functions or acts, or a combination of general purpose and special purpose hardware and computer instructions. These computer program instructions may also be stored on a computer-readable medium and may instruct a computer or other programmable data processing apparatus to function in a particular manner, such that storing the instructions on a computer-readable medium results in an article of manufacture that includes instruction means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0055] As used herein, the terms "comprises," "comprising," "include," "including," "has," "having," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements, but can also include other elements not expressly listed or that are inherent to such process, article, or apparatus.
[0056] Further, unless expressly stated otherwise, "or" refers to an inclusive or and not an exclusive or. For example, condition A or B is satisfied by any one of the following:
[0057] A is true (or exists) and B is false (or does not exist).
[0058] A is false (or does not exist) and B is true (or exists).
[0059] A and B are true (or exist).
[0060] Additionally, any examples or illustrations provided herein should not be considered as restrictions, limitations, or explicit definitions of any term or terms used in conjunction therewith. Instead, these examples or illustrations are to be considered as described with respect to one particular embodiment and as merely illustrative. It will be appreciated by those skilled in the art that any term or terms used in conjunction with these examples or illustrations encompass other embodiments that may or may not be shown together or in other paragraphs herein, and that all such embodiments are intended to be included within the scope of the term or terms. Phrases indicating such non-limiting examples and illustrations include, but are not limited to, "for example," "for instance," "eg," and "in one embodiment."
[0061] I. Big picture A quiescent device (one that is not currently harvesting or transmitting data, but can be scheduled to harvest or transmit data at a known future time) is woken up by flashing a coded message at the device. The device may have never been activated, such as when it is first deployed. The device is initially woken up by a series of external light signals sent by an external device. These external flashes constitute a message in modified Morse code and are sent to the device. The light signals trigger power management circuits that boot the processor, and the light signals, when of sufficient brightness and speed of activation, are sent through a process that transfers the light flashes to voltage spikes. When the device is fully awake, the message is read. When requested by another device, a sensor sends the authentication code provided in the message. This allows a single user action to wake up the device and configure it with network credentials.
[0062] The device may be turned off or quiescent by default at times, i.e., not currently producing or transmitting data, but may be scheduled to produce or transmit data at a future time. When the device is to be activated, redeployed, etc., the programmable transmission light source may send a repetitive message to the device. The repetitive message may include flashes of light separated by different amounts of time. The transmission light may trigger power to be supplied to the device and / or prompt an early start. The message may be in modified Morse code. The message is read when the device is fully activated. When the programmable light source requests the external device 220A, the external device 220A may send an authentication code, which the external device reads. If the authentication code is correct, the programmable light source may send another message. The modified Morse code provides different timings for letter parts, letter ends, and spaces between the ends of words.
[0063] II. Stationary Device System Embodiments With reference to FIG. 1, a device is disclosed that can be used in whole or in part in any of the embodiments disclosed herein. The device 100 can be any type of device that is woken up from a dormant state. For example, the device 100 may be initially being installed and thus needs to be put into operation. The device 100 may be in a dormant state and can be woken up from this state to move to its normal schedule. The device 100 may be a low-power device, such as a low-power sensor. The device 100 can include a light detection circuit 105 and / or a filter 110. The filter 110 may configure a frequency filter 112 that passes certain frequencies of light and rejects other frequencies. The frequency filter 112 may be a band-pass filter, a notch filter, a high-pass filter, etc. In an embodiment, the light detection circuit 105 and the filter 110 may be integrated. The light detection circuit 105 can be configured to receive a light signal from a light source. The light detection circuit 105 can generate a voltage when a flash of light hits a photodiode within the circuit. The magnitude of this voltage may be based on the intensity of the light striking the photodiode. For example, the frequency filter 112 may only pass a voltage equivalent to light of 45 lumens or greater. The voltage generated by the light detection circuit 105 may also vary depending on the specific details of the light detection circuit 105 and the frequency filter 112.
[0064] In one embodiment, the light can also be sent through an amplitude filter 114. The amplitude filter 114 passes only light with a certain amplitude (brightness). This filter can be a digital threshold. The frequency filter 112 and the amplitude filter 114 are used in pairs to allow light pulses with a fast-enough frequency and high enough light level to pass. The frequency filter 112 and the amplitude filter 114 can be passive high pass filters combined with a digital gate that converts the voltage signal to either a "1" or a "0". A "1" can be a very narrow pulse with rising and falling edges that appear as spikes. This digital gate 114 can convert the analog signal output from the frequency filter 112 to a digital circuit that can then be received by the power management circuit 140.
[0065] In an embodiment, one purpose of the filter may be to protect against saturation of the photodiode. The filter may also protect against fluctuations in light levels that may cause false positives and / or false negatives. For example, the filter 110 may filter out noise that does not meet a digital threshold (which is voltage dependent, which itself is light intensity dependent), and may also filter out low frequency noise. That is, ambient light in the space in which the device resides may not activate the device 100; a slow ramping light may not activate the device, random flashes such as from a lit lamp may not generate a complete message, and so on. The timer 175 may keep track of the time between successive spikes. The time between a spike (e.g., processed by the filter 110) and the next spike may be referred to as a "pulse." The pulse may be a time that indicates the time from one spike to the next. The power management circuit 140 may be operable to send power to the processor / MCU upon receipt of a spike. The spikes pass through frequency filter 112 and are digitized by a digital gate, which may be or be part of amplitude filter 114. Amplitude filter 114 may be part of frequency filter 112, part of power management circuitry 140, or may be a separate component.
[0066] The transmitter 115 may allow the device 100 to send device data 120 to another entity, such as a personal computing device such as a mobile phone, a controller controlling the device 100, the device 100 itself, or a different entity. The transmitter may be wired, wireless, some combination, etc. The transmitter may be Bluetooth Mesh, two-wire multi-drop, three-wire multi-drop, some combination of the above, different types of transmitters in general, etc. The device data 120 may be stored in a memory.
[0067] A solar panel and / or battery 130 may also be included. In some embodiments, the solar panel may be configured to function as the light detection circuit 105. The memory 155 may include a spike counter 160 that holds an internal value indicating the number of spikes received. The memory 155 may also include a wake-up threshold 165 that determines the number of spikes that must be received before a message is read. A buffer 170 may be part of the memory 155 and may hold messages or portions of messages sent to the device 100. The power management circuit 140 may be powered in part by a voltage from the light detection circuit, which may be used by the power management circuit as a signal to connect the processor 145 to the battery 130. The processor may have features such as efficient signal processing, low power, low cost, or other features. The processor may be a microcontroller. The processor 145 may be loaded with executable instructions that may make certain decisions, such as when to send a message. These executable instructions 150 may be embedded in firmware, software, hardware, or some combination of two or more of the three. The executable instructions 150 may also decode received messages, perform calculations, etc. The device may also have device components 135 that provide other services for the device 100.
[0068] III. Stationary Device Method Embodiments Referring to FIG. 2, a flow chart 200 discloses a method that can be used with the embodiments disclosed herein. The operations of method 200 presented below are intended to be exemplary. In an embodiment, method 200 can be performed together with one or more additional operations not described and / or excluding one or more of the operations discussed. Additionally, the order in which the operations of method 200 are shown in FIG. 2 and described below is not intended to be limiting. In an embodiment, method 200 can be implemented in one or more processing devices (e.g., digital processors such as processor 145), analog processors, digital circuits designed to process information, analog circuits designed to process information, state machines, and / or other mechanisms for electronically processing information). The one or more processing devices can include one or more devices that perform some or all of the operations of method 200 in response to instructions stored electronically on an electronic storage medium. The one or more processing devices can include one or more devices configured to be specifically designed for performing one or more of the operations of method 200 through hardware, firmware, and / or software.
[0069] In operation 205, a flashlight encoder sends a message to device 100. A flashlight encoder is a device that can flash a message of the type described herein. In operation 210, a photodiode in a light detection circuit receives light and generates a voltage based on the intensity of the received light. When the light intensity is sufficient, light detection circuit 105 is activated (210). In one embodiment, when light detection circuit 105 is activated, one or more transistors in the light detection circuit switch between a lower voltage and a higher voltage to generate a voltage spike. In one embodiment, the size of this spike is proportional to the intensity of the light. In one embodiment, the size of the voltage is the height of the spike. In operation 215, the spike is passed through a filter. In one embodiment, this is a bandpass filter that only passes voltages above a certain frequency. This filters out low frequency waves, such as the light in a room that suddenly becomes bright when the sun appears from behind the clouds. In one embodiment, after the bandpass filter, the voltage is passed through amplitude filter 114. These two filters can be used, for example, to prevent random light from starting up the processor 145, so that only light of a certain intensity above a certain frequency activates the power manager. In one embodiment, the spike is then stretched to signal the power management chip 140 that it should enable power to the MCU 145. This stretching can satisfy the debounce requirement in the power management circuit. In operation 220, the spike that was able to pass the filter 110 wakes up the power manager 140 (in one example, it is stretched to a pulse with a leading and trailing edge). After waking up, the power manager connects the battery 130 to the processor 145 and powers it. In operation 220, the power management chip 140 enables power to the MCU. In operation 225, the processor 145 boots a kernel, which may be the Zephyr kernel.It also registers an interrupt handler to respond to interrupts on the MUC I / O lines. After this process is complete, every rising edge of the incoming signal spike produces an MCU interrupt and executes the interrupt handler code. This process takes time to complete before a message can be properly received, so it is ideal to use a start-up sequence that lasts for a period of time to allow the MCU to receive power and fully boot before attempting to receive its final message.
[0070] The signal has already passed filter 110. To avoid false triggers inducing message decoding, the spikes of the wake-up sequence are counted and the message is not decoded until a specified threshold of spikes are received. If a delay between signal spikes greater than the modified Morse code "word end" of speech is received, the spike counter is cleared. This is to ensure that the wake-up signal spikes are received in good time and indicate intentional activation of the device, thus preventing message decoding from being induced by random noise, such as by switching on a light in the room where the device is located, even if this is done multiple times.
[0071] After the wake-up threshold is met, i.e., after the spike counter reaches the wake-up threshold, the code executing on the processor 145 waits a delay the length of a "word-end" portion of speech before beginning to interpret subsequent spikes and delays as part of the transmitted message. After meeting the wake-up threshold and receiving a delay that partially converts to a "word-end" portion of speech, subsequent spikes and delays are interpreted as part of the transmitted message until another delayed "word-end" portion of speech is received.
[0072] The above ideas can be incorporated into many different algorithms. One algorithm that can be used is illustrated with reference to FIG. 3. FIG. 3 discloses a method for processor 145 to read a message. With reference to FIG. 3, a flow chart 300 discloses a method that can be used with the embodiments disclosed herein. The operations of method 300 presented below are intended to be exemplary. In some embodiments, method 300 can be performed together with one or more additional operations not described and / or excluding one or more of the operations discussed. Additionally, the order in which the operations of method 300 are shown in FIG. 3 and described below is not intended to be limiting. In some embodiments, method 300 can be implemented in one or more processing devices (e.g., digital processors such as microcontroller 145, analog processors, digital circuits designed to process information, analog circuits designed to process information, state machines, and / or other mechanisms for electronically processing information). The one or more processing devices can include one or more devices that perform some or all of the operations of method 300 in response to instructions stored electronically on an electronic storage medium. The one or more processing devices may include one or more devices configured through hardware, firmware, and / or software specifically designed to perform one or more of the operations of method 300.
[0073] The first time a message is sent, it is likely that the entire message will not be received because of the delay required to power up processor 145 and begin executing executable instructions 150. Thus, the message may be sent multiple times to ensure that processor 145 is fully booted up before the last message sent begins to be received. When a subsequent message is sent, the message is finally received because the wake-up threshold was met by one of the previously sent messages and the signal "word end" portion of the audio has been received. In one embodiment, a spike counter keeps track of the number of spikes received. In one embodiment, to ensure that the entire message can be received, processor 145 may wait a certain amount of time (e.g., as measured by the number of spike counters) after the message began to be sent before decoding the message. In one embodiment, the processor may wait a certain amount of time measured in actual time. In one embodiment, the processor may measure the amount of time to wait in a different manner. In one embodiment, the spike counter is reset when a delay longer than the "word end" portion of the audio is detected after the spike and the spike threshold has not yet been reached. This threshold may be some number of signal spikes, such as 5, 9, etc., long enough to ensure that the processor has time to boot. In operation 305, the processor 145 is powered up. In operation 315, the processor boots up (310). While the processor is powered up and booting up, messages are sent continuously until the processor is fully booted up, at which point the entire message can be read. In operation 315, the processor receives a spike. In operation 320, the processor measures the time between this spike and the previously received spike. If the measured time is the message start time, in decision point 325, it is determined whether a valid message start has been detected. If so, in operation 330, the message is read. If a message start has not been detected, the processor returns to operation 315 and checks again to see if another spike has been received.
[0074] Referring to FIG. 4, a flow chart 400 discloses a method that can be used with the embodiments disclosed herein. The flow chart 400 describes an embodiment that can be used to detect a message start. At operation 402, the device wakes up. At operation 405, it scans for light signals. At decision point 410, it is determined whether a spike is detected. If so, at decision point 415, the spike counter is incremented. The spike counter has a wake-up threshold 165. This threshold is set long enough to ensure that the processor 145 has enough time to boot up and can be a non-zero integer. Examples can be 5, 4, 3, 10, etc. At decision point 420, the value of the spike counter is checked. At decision point 420, the length of the delay following the pulse is measured. If this is equal to or greater than the length of the start message, at operation 425, the spike counter is cleared. In one embodiment, if the delay length exceeds the "word edge" length of the modified Morse code (discussed with reference to FIGS. 5 and 6), the spike counter is cleared. This ensures that if an insufficient number of spikes are detected but the detected message is at the end (meaning a spike has been missed) then the message will not be read. At decision point 430 the value of the spike counter is checked. If it is at the activation threshold 165 then the next pulse is captured at operation 435. At operation 440 the spike and delay are decoded. At decision point 445 it is determined whether the delay is the same length as the word-end delay. If not then the next spike and delay are captured at operation 435. If it is the same length (word-end delay has been detected) then at operation 450 it is determined that the message has ended.
[0075] Once a message start is found, subsequent signal pulses are interpreted as part of the transmitted message. The time between signal spikes is measured, as discussed with reference to Figures 9, 10, and 11. Processor 145 uses modified Morse to decode the delay between spikes. In an embodiment, the sequence of time-decoded delays is buffered (170) in sequential order, LIFO order, etc. In some embodiments, the sequence of time-decoded delays is partially stored in a buffer. In some embodiments, buffer 170 is a designated location, and in some embodiments, the buffer location is determined on-the-fly. In some embodiments, when a "word-end" delay is found, decoding is performed on buffer 170 (where a message may be stored) and a message is generated. The generated message may be stored in the same buffer (e.g., 170) or a different buffer, and is overwritten by the subsequent received message. This ensures that the last message received is the message that is stored. In some embodiments, other methods are used. For example, multiple words may be in a message. In such a case, the end of the audio message signal portion can be determined. Once the end of the audio message signal portion is found, decoding of that portion of the audio buffer 170 can be performed to generate the message. Multiple buffers (e.g., 170) can also be used, etc.
[0076] Turning now to Figures 5 and 6, embodiments of message encoding and decoding are disclosed. Figure 5, 500, depicts the current International Morse Code chart. International Morse Code specifies durations, i.e., durations at the rising edge and durations at the falling edge. For example, the durations of short and long codes are the durations between the rising and trailing edges. The "END OF PART OF LETTER", "end of letter", and "end of word" portions of speech are periods when the Morse code signal is low, and thus the durations between the falling and rising edges. For example, Figure 9, 905, depicts a short code, e.g., a rising edge followed by a duration of one time unit. The end of letter element 910 is a trailing edge followed by one time unit.
[0077] FIG. 6 600 similarly discloses a modified Morse code chart describing the delay for each as used in the embodiments described herein. In this modified Morse code, there is only one signal spike. Thus, the term "delay" is used to describe the elapse between spikes, the period of which corresponds to the Morse code portion of the audio. In normal Morse code, the reference time period may be one time unit. Short code (1) 505 and long code (3) 510 indicate that the short code delay is 1× reference unit, and the long code delay is 3× reference unit. In an exemplary embodiment, the delay for one time period is about 8 ms. Thresholds may be provided so that one time unit has some give on each side, and is therefore "around." The give on each side may depend on other implementation details. The matrices shown in FIG. 5 and FIG. 6 are the resulting combinations of on / off portions of the audio. Traditional Morse Code measures the signal on duration and the signal off duration and uses each to decode a particular portion of the speech. The modified Morse Code disclosed herein only tracks the delay between rising edges. The rising edge can be defined by a spike. This creates combinations that traditional International Morse Code cannot distinguish. For example, the long code / character element end 515 and the short code / character end 520 are both 4× reference units. This is important because instead of a leading edge, a trailing edge, and a delay as in the exemplary embodiment disclosed herein, only one edge and a delay to the next edge is generated. Thus, the duration of the signal on plus the length of the signal off is the available information. This is discussed with reference to Figures 10, 11, and 12. In traditional Morse code, when the period between 4x signal spikes appears, there is no way to know whether the desired signal is a long code / end of letter element 515 or a short code / END LETTER 520.
[0078] FIG. 6 600 discloses a modified Morse code chart. To avoid combination collisions, the multiple of the reference timing unit assigned to each part of speech is adjusted to be unique. Thus, the character end signal 605 is equal to 5 time periods. The word end signal 610 is equal to 9 time periods. These time periods are added to the time periods of the short or long codes to obtain a unique time period. As an example, a short code (1) and a subsequent character element end (1) 615 take 2X reference units. A long code (3) and a subsequent character end (5) take 8X reference units 620. A long code (3) and a subsequent word end (9) 625 take 12X reference units, and so on.
[0079] 7A 700A and 7B 700B disclose in more detail the creation of messages using modified Morse code. Different character combinations specify different commands. In one embodiment, a message includes a sequence of characters 705A that specify the message followed by a sequence of characters or other characters used for authentication 710A. If the message is a word, the message is followed by a word terminator 610. In one exemplary embodiment, a message includes two message characters 715A, 720A followed by an authentication character 725A that is unrelated to the message (and possibly randomly generated by the transmission device). The authentication character 725A is sent back to the transmission device and used, for example, for network authentication.
[0080] In one embodiment, these messages are generated as a string by a processor / MCU in an optical encoder and then converted to a modified Morse code portion of speech. In one embodiment, the message is created directly as a modified Morse code portion of speech. The modified Morse code portion of speech can then be communicated to the device 100 using a light source. One example uses a light on the device and allows the specific on / off timing of the light to be programmed or otherwise specified. In one embodiment, a personal computing device such as a phone with a flashing light is used. As discussed above, the message can also be output multiple times from the beginning. For example, the message can be output for 2 seconds to ensure that the device 100 has been able to boot up and meet the wake-up threshold 165 (a specified number of pulses) to avoid inducing a message decode in response to a false trigger. The message can be used both as a preamble to initiate the device 100 and as an actual message to instruct the device 100 on its next action. In one embodiment, the number of times the message is output varies depending on the length of the message.
[0081] Figure 7A 700 shows the International Morse Code for the message "PRE". The message includes a message portion "PR" 705 (which may stand for "provision") and a randomly selected authentication portion "E" 710. Figure 7B discloses the message converted into a form that can be sent to activate a device. The P signal 735B in International Morse Code is ·-· 715A. More fully, spike 737B followed by a delay equal to a short code (1 time period)+Part of Word (1 time period) produces 2 time period 705B, spike 739B followed by a long code (3 time periods)+Part of Word (1 time period) produces 4 time period 710B, spike 742B followed by a long code (3 time periods)+Part of Word (1 time period) produces 4 time period 715B, and spike followed by a short code (1 time period)+character end (5 time periods) produces 6 time period 720B. R 720A is short code-long code-short code, which corresponds to spike 739B followed by a short code (1 time period)+character end (5 time periods) produces 6 time period 720B. R signal 740B is short code-long code-short code 720 in International Morse Code. The signal representing the modified Morse code character R 740B is a set of spikes and delays 725B, corresponding to a spike followed by a delay of 2 time periods (short code followed by the End of Part of Letter), a spike followed by a delay of 4 time periods (long code followed by the End of Part of Letter), and a spike followed by a delay of 6 time periods (short code followed by end of letter). The last character in the word, E 725A, is a short code (1 time period), but because it is the last character in the word, it is followed by an end of word signal 610. This corresponds to (1+9)=10 time periods. This results in a spike 742B followed by a delay of 10 time periods 730B, 745B. Receipt of the end of word indicates, in one embodiment, that the message has ended.Some messages may be longer than one word, in which case the modified Morse code table can be extended.
[0082] In one embodiment, these messages are generated as strings by the optical encoder 205 and then converted to a Morse code portion of speech. In one embodiment, the messages are created directly as a Morse code portion of speech. The Morse code portion of speech can then be communicated to the device 100 using a light source. One example uses a light on the device and allows the specific on / off timing of the light to be programmed or otherwise specified. In one embodiment, a personal computing device such as a phone with a flashing light is used. As discussed above, the message can also be output multiple times from the beginning. For example, the message can be output for two seconds to ensure that the device 100 has been able to boot up and meet the wake-up threshold 165 (a specified number of pulses) to avoid inducing a message decode in response to a false trigger. The message can be used both as a preamble to initiate the device 100 and as an actual message to instruct the device 100 on its next action. In one embodiment, the number of times the message is output varies depending on the length of the message.
[0083] The message itself commands the sensor to perform some action. Some possible states are:
[0084] Wake-up - Using a light source to bring a device out of a very low power state (sleep).
[0085] The sequence / pattern emitted by the communication-light source is used to set the state the device will boot into, i.e. provisioning mode, device firmware upgrade mode, diagnostic mode, etc.
[0086] Out-of-band (OOB) security - Sensors and transmitting devices can use flight as an additional communication medium to further obfuscate the network onboarding process, such as during network configuration during provisioning.
[0087] FIG. 8 800 discloses an exemplary system behavior when an out-of-band authentication message is sent. In operation 805, a request to provide an out-of-band authentication message is received. The message may be originally sent by flash encoder 205. In operation 810, the authentication message may be transmitted, for example, using transmitter 115. In one implementation, the authentication message may be the last character sent to the device. It is not part of the message portion. In one embodiment, authentication message 710A may be a message generated by device 100 or a message determined by device 100 using an algorithm. In one embodiment, the authentication message may be multiple characters long. In one embodiment, the authentication message may also be stored in buffer 170.
[0088] The authenticating portion of the memory, such as the last character sent, may be stored in a buffer 170 stored in memory 155. Sending the authentication code may include sending the contents of an authentication buffer stored in memory 155. Memory 155 holds the authenticating portion of the message. If the authentication code is a single character, such as E725A, E725A may be stored in buffer 170 and then sent when an authentication request is received. In one embodiment, the decoded character may be stored in buffer 170, which holds a single character. In such a system, the last character in the message is the character in this buffer, which is then sent as the authentication code in response to the authentication request. In one embodiment, buffer 170 may hold and send multiple characters. In one embodiment, a buffer may be used to hold the time between signals so that an entire message can be stored prior to decoding.
[0089] FIG. 9, 900, discloses a digital signal generated by an optical circuit that does not include a high pass filter. Specifically, FIG. 9, 900 discloses a modified international Morse code "A." The pulses in FIG. 9, 10, and 11 are measured in ms 903, with a standard time period of 10 ms. "A" is a short code-long code, which is a one time period pulse 905 (rising and training edges), followed by an END OF PART OF LETTER 910 (one time period signal low), followed by a three time period long code 915, followed by an END OF PART OF WORD 920 of nine time periods. The next rising signal appears at 925. The signal that generates the Morse code A is not shown, but can take many forms as long as it is of sufficient amplitude. For example, it may appear as a sinusoidal waveform with pauses in between, a square digital signal, or the like. If the signal is analog, it may be passed to a frequency filter 112, such as a high pass filter, and digitized by the photodetector circuit 105. The signal output from the frequency filter 112 may then be converted from an analog signal to a digital signal, for example, by an amplitude filter 114, an analog to digital converter, etc.
[0090] FIG. 10 1000 discloses a digital signal generated by an optical circuit including a high pass filter used in the embodiments described herein. Only the rising edge of each pulse is passed through the filter 110. Thus, the time between the rising edges is measured. This results in a spike 1005 corresponding to the rising edge of the short code, a spike 1010 corresponding to the rising edge of the long code, and a spike 1015 corresponding to the next rising edge received. As shown with reference to FIG. 5 and FIG. 6, the Morse parts are adjusted in the speech base unit multiples so that each combination of Morse high and Morse low forms a unique time period.
[0091] FIG. 11 1100 discloses the digital signal from the perspective of a device receiving the signal through a high pass filter used in the embodiments described herein. Two time measurements are decoded: the time from the rising edge of the short code (converted to a spike) to the rising edge of the long code (converted to a spike) 1105, which is 20 ms long, and the time from the rising edge of the long code (converted to a spike) to the next rising edge (converted to a spike) 1110, which is 80 ms long. Using table 600, the short code and the following letter element end are 2 reference units long 615, and the reference unit is 10 ms, so the time 1105 indicates the Morse code short code followed by the Morse code END OF PART OF LETTER. The time 1110 measured between the rising edges (converted to spikes) 1010 and 1015 is 8 reference units long (10 ms x 8), and therefore the Morse code long code and the following letter end (8 units long). The character is short-long and encodes "A".
[0092] II. System embodiments in which an external device wakes up a stationary device 12 illustrates a generalized example of a suitable programmable transmission light source 1200 in which the described embodiments may be implemented. The computing environment 1200 is not intended to suggest any limitation as to the scope of use or functionality of the present disclosure, as the present disclosure may be implemented in a variety of general-purpose or special-purpose computing environments.
[0093] Referring to FIG. 12, the computing environment 1200 includes at least one processor. The processor can take many forms, such as a core processing element 1210. The core processing element 1210 can include a central processing unit 1230 and a memory 1220. The central processing unit 1230 executes computer-executable instructions and can be a real or virtual processor. The memory 1220 can be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. The memory 1220 stores software 1285 that implements the method of externally starting a stationary device, as described above. Specialized processors can also be included.
[0094] The computing environment may also have additional features. For example, the programmable transmitting light source environment 1200 includes storage 1240 and a communication connection 1270, which may include one or more input / output devices 1250, one or more network connections (e.g., wired, wireless, etc.) 1260, as well as other communication connections (not shown). The communication connection 1270 may include one or more wireless transceivers to perform wireless communications, and / or one or more communication ports to perform wired communications. In an embodiment, the communication device 1270 may be configured to send a message through the programmable light source 1252.
[0095] The input device(s) 1250 may be devices that allow a user or other devices to communicate with the programmable communication light source 1200. These may include a programmable light source 1252, such as a flashlight, and a camera flash (a strobe light that may be connected to a camera or computing device). Other devices that may be included include a microphone, mouse, pen, trackball, touch screen 1256, or other device that provides input to a computing environment associated with the programmable communication light source 1200. For audio, the input device(s) 1250 may be a sound card or similar device that accepts audio input and generates audio output in analog or digital form, a speaker 1258, or a CD-ROM reader that provides audio samples to the computing environment. The output device(s) 1250 may be a touch screen 1256, a display, a keyboard, a printer, a speaker, a CD writer, a computer readable storage medium 1265, or other device that provides output from the programmable communication light source computing environment 1200. An interconnection mechanism (not shown), such as a bus, controller, or network, interconnects the components of the computing environment 1200. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment and coordinates the activities of the components of the computing environment.
[0096] Storage 1240 may be removable or non-removable and may include magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, flash drives, or any other media that can be used to store information and that can be accessed within computing environment 1200. Storage 1240 stores software instructions, such as stationary device external start-up software 1285, for implementing a method for sending flash comprise messages, including wake-up messages, to different devices.
[0097] The communication connection(s) 1270 enable communication over a communication medium to other computing entities. The communication medium conveys information such as computer-executable instructions, compressed graphics information, or other data in a modulated data signal. The communication connection(s) 1270 can include the input / output device 1250 and an input / output device that allows the client device to communicate with other devices over the network 1260. The communication device can include one or more wireless transceivers for performing wireless communications and / or one or more communication ports for performing wired communications. These connections can include network connections such as the Internet, an intranet, a LAN, a WAN, a cellular network, or other types of networks, and can be wired or wireless networks. It is understood that the network 1260 can be a combination of multiple different types of wired or wireless networks. The network 1260 can be a distributed network with multiple computers that can form a controller that acts together. The computing connection 1270 may be a portable communication device, such as a wireless handheld device, a mobile phone device, or the like.
[0098] A computer readable medium is any available non-transitory tangible medium that can be accessed within a computing environment. By way of example, and not limitation, in a computing environment, computer readable media includes memory 1220, storage 1240, communication media, and combinations of any of the above. A computer readable storage medium 1265 that can be used to store computer readable media includes instructions 1275 and data 1280. A data source may be a computing device, such as a general-purpose hardware platform server configured to receive and transmit information via a communication connection 1270. Although some operations of the disclosed methods have been described in a particular sequential order for ease of introduction, it should be understood that the described methodology encompasses rearrangements, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially can be rearranged or performed simultaneously. Moreover, for the sake of simplicity, the accompanying drawings may not show various ways in which the disclosed methods, apparatus, and systems can be used in conjunction with other methods, apparatus, and systems. Additionally, the description sometimes uses terms such as "determine," "build," and "identify" to describe the disclosed technology. These terms are high-level abstractions of actual operations that are performed. The actual operations that correspond to these terms may take various forms depending on the particular implementation, but are readily discernible to those of ordinary skill in the art.
[0099] Additionally, data produced from any of the disclosed methods can be created, updated, or stored using a variety of different data structures or formats in a tangible computer readable medium (e.g., a tangible computer readable medium such as one or more CDs), a volatile memory component (such as DRAM or SRAM), or a non-volatile memory component (such as a hard drive). Such data can be created or updated locally on a computer or across a network (e.g., by a server computer), or can be stored and accessed in a cloud computing environment.
[0100] With reference to Figures 13A and 13B, two embodiments of devices that can trigger stationary devices from the outside are disclosed. In 1300A, a mobile phone embodiment 1305A is disclosed that includes a flashing device 1310A that can be programmed to send messages. These messages can be sent to a stationary device 1320A. The device 1300B comprises a computer 1305B connected (1310B) to a transmission element 1315B. This computer can program the transmission element 1315B (which can be a camera, a flashing device, or any other type of lighting that can be programmed) to appropriately communicate the message creation. Here, the signal can also be direct to the stationary device, for example 1320A. If the lighting is connected to a larger device, it can also be transmitted to devices that are inconveniently located.
[0101] FIG. 14 discloses a system 1400 that can be used to wake up a stationary device using a programmable light source 1405. The signaling light can induce power to be provided to the stationary device and / or prompt the device to wake up early. The stationary device may be a device that is scheduled to be dormant but can be woken up for an unscheduled task, a device that is factory turned off, etc. The programmable light source 1405 may be operable to emit a light signal at a known intensity for a known period of time. The signal may have a particular amplitude. For example, the signal may be at least 40 lumens, about 40 lumens, about 45 lumens, about 60 lumens, etc. The signal may be larger than a flash that appears lambently. A dim light signal may be used when the stationary device is in a naturally dark area. Similarly, a signal with a larger amplitude may be used in a naturally bright area. The signal may last for multiples of time units, may be separated by multiples of time units, etc. This will be discussed in more detail with reference to FIG. 11 and the surrounding text. The transceiver 1410 may transmit information wirelessly, wired, etc., once at least one stationary device has been activated. The encoder 1415 may encode a message into some code so that the light source 305 can transmit it to the stationary device. This code may be modified Morse code, or a different code so long as it can be transmitted. The system may also have executable instructions 1420 that, when executed by a processor associated with the system, e.g., 1210, 1230, etc., perform various types of actions. These actions will be discussed with reference to FIG. 15.
[0102] III. Method embodiments for waking up a stationary device by an external device Referring to FIG. 15, a flow chart 1500 discloses a method that can be used with embodiments disclosed herein. The operations of method 1500 presented below are intended to be exemplary. In an embodiment, method 1500 can be performed together with one or more additional operations not described and / or excluding one or more of the operations discussed. Additionally, the order in which the operations of method 1500 are shown in FIG. 15 and described below is not intended to be limiting. In an embodiment, method 1500 can be implemented in one or more processing devices (e.g., a digital processor such as cpu 1230, a microprocessor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information). The one or more processing devices can include one or more devices that perform some or all of the operations of method 1500 in response to instructions stored electronically on an electronic storage medium. The one or more processing devices can include one or more devices configured to be specifically designed for performing one or more of the operations of method 1500 by hardware, firmware, and / or software.
[0103] In operation 1505, a message is determined. The message may be a certain number of alphabetic characters. For example, in one embodiment, the message may be two characters. As an example, the letters "PR" may be code for "The stationary device must be powered up and begin provisioning." There may be many messages, and these messages may include more or fewer characters, multiple words, and the like. In operation 1510, an authentication portion of the message may be determined. When a communication source sends a message, it may include an authentication message. This authentication message is sent back from the correct device to verify that the correct device received and understood the message. In one embodiment, the authentication portion is a randomly selected symbol. The symbol may be a letter, a number, an ideogram, a pictogram, a Unicode character, and the like. In one embodiment, the authentication portion is more than a symbol. In one embodiment, the authentication portion may be determined by a known algorithm and may be deciphered by the stationary device when sent. In operation 415, the message and authentication type are encoded. This encoding may be modified Morse code, or a different type of code. Further information regarding message encoding can be found with reference to FIGS. 9-11 and the associated text.
[0104] In operation 1520, the coded message is sent. The coded message includes spikes of light and pauses between the spikes. The spikes are sent, for example, using a programmable light 1552. The light must be of a particular amplitude, and what amplitude is required depends on the parameters of the stationary device to be woken up. The shape of the light spike is not important, as long as it is fired at the exact time between the first rising edge and the next rising edge, since the stationary device 1320A, in one embodiment, reads the rising edge. In one embodiment, the message may be a modified Morse code as disclosed herein. In operation 1525, the coded message is sent again. This sent message is also used as a wake-up signal. Thus, the message must be sent enough times so that some combination of time / time flashes will wake up the stationary device 1520A first, and then boot up the stationary device 1320A. The encrypted message may be sent a sufficient number of times to allow time for boot-up so that the entire message is received after the boot-up process is complete. The number of times the message should be sent (1525) may vary depending on how long it takes the stationary device to boot up. After the encrypted message has been sent a sufficient number of times, a two-factor authentication method may be used in operation 1530. This may involve requesting an out-of-band message from the stationary device. It may be expected that the out-of-band message is an authenticator portion of the original message. The message was originally sent using the programmable device 1252, but the out-of-band message may also be requested using a network connection 1260, such as a wireless transmitter, or a different method. In operation 1535, a secret message is received. This may be received from a transceiver, a network connection which may be a wireless transmitter, or using a different method. At decision point 1540, the secret message is authenticated. This may be done by comparing the received secret message to the authenticator portion that was originally sent.If the authenticator is equal to the secret message, then the next message is sent in operation 1550. This next message can be sent using a transceiver, a wireless transmitter, or a different network connection. If an incorrect authenticator was sent, or if the next message is not sent, etc., then the stationary device activation method is stopped in operation 1545.
[0105] V. Examples of Computer-Readable Media Referring to FIG. 12, an embodiment includes a configured computer readable non-transitory storage medium 1265. Non-transitory refers to a computer readable medium (CRM) that stores data for a short period of time or when power is present, such as a memory device or random access memory (RAM). The non-transitory medium 1265 can include disks (magnetic, optical, or other), RAM, EEPROM, or other ROM, and / or other configurable memory. Configurable memory includes computer readable media (not intended for manufactured transient phenomena, such as electrical, optical, or acoustic signals). The configured storage medium may be a removable storage medium 1265, such as a CD, DVD, or flash memory. A program on the storage medium can be executed on a processor (e.g., 1210, 1212, 1215, etc.) coupled to the memory. Such memory may be general purpose memory (such as RAM, ROM, CMOS, or Flash, which may be primary memory, or secondary memory such as a CD, hard drive, optical disk, or removable flash drive) and may be configured in embodiments to form a configured medium with data and instructions in the form of data 1280 and instructions 1275 read from a source, such as an output device 1255, using the computing environment 1200. The instructions, when executed by the processor, perform a method of calculating travel comfort information. The configured medium 1265 may cause the computer system to perform the actions associated herein.
[0106] Some embodiments provide or utilize a computer readable storage medium 1265 having software 1285 configured thereon that, when executed by at least one central processing unit 1230, performs the methods and systems described herein. In view of the numerous possible embodiments to which the principles of the present technology may be applied, it should be appreciated that the illustrated embodiments are examples and should not be taken as limitations on the scope of the present invention. By way of illustration, the various components of the systems and tools described herein may be combined in function and use. Accordingly, all subject matter that comes within the scope and spirit of these claims is claimed as the inventor's invention.
Claims
1. 1. A device having a microcontroller, a memory, and a transmitter, a light detection circuit configured to receive an optical signal from the light source; a high pass filter coupled to the light detection circuit, the high pass filter generating a spike when light of at least a given intensity is received; a power management chip coupled to the light detection circuitry, the power management chip enabling powering of the microcontroller upon receipt of the spike; a timer for measuring the time between spikes; executable instructions in memory; wherein the executable instructions, when executed by the microcontroller, Actions to detect spikes, and When a spike is detected, the action of incrementing a spike counter is taken. using said timer to measure the time between spikes; clearing said spike counter when the time between said spikes exceeds a word edge length; When the spike counter reaches an activation threshold, interpreting a subsequent spike and delay length as a transmitted message; The device that runs it.
2. 10. The device of claim 1, further comprising the wake-up threshold being long enough to allow the microcontroller to boot.
3. 3. The device of claim 2, wherein the transmitted message is in modified Morse code format.
4. 4. The device of claim 3, wherein in the modified Morse code, a short code is a 1 time period delay, a long code is a 3 time period delay, a letter element end is a 1 time period delay, a letter end is a 5 time period delay, and a word end is a 9 time period delay.
5. The device of claim 4 , wherein the transmitted message includes a message portion and an authentication portion.
6. 6. The device of claim 5, wherein the one time period delay is about 8 ms.
7. 7. The device of claim 6, wherein the light detection circuit configured to receive an optical signal from a light source is configured to receive a plurality of time-separated spikes as the optical signal.
8. 8. The device of claim 7, wherein the outgoing message is at least partially stored in a buffer.
9. 9. The device of claim 8, wherein the light detection circuit configured to receive an optical signal from a light source is configured to receive a plurality of messages as the optical signal.
10. 10. The device of claim 9, wherein the executable instructions, when executed by the microcontroller, further comprise: an action of receiving an out-of-band authentication request; sending the contents of a buffer in said memory; The device that runs it.
11. The device of claim 1 , wherein the light detection circuit is configured to generate a spike based on the optical signal.
12. 1. A device having a microcontroller, a memory, and a transmitter, a light detection circuit operable to receive an optical signal from a light source and further operable to communicate to a power management circuit using said optical signal; the power management circuitry is operable to boot up the microcontroller; the microcontroller is operable to scan the optical signals for messages; The device, wherein the transmitter is operable to transmit at least a portion of the message.
13. 13. The device of claim 12, wherein the message is encoded in modified Morse code, a short code being a 1 time period signal, a long code being a 3 time period signal, a letter element end being a 5 time period signal, and a word end being a 9 time period signal.
14. 14. The device of claim 13, wherein the one time period comprises a time of about 8 ms.
15. 15. The device of claim 14, wherein the one time period comprises a time of about 10 ms.
16. 14. The device of claim 13, wherein the message includes a message portion followed by an authentication portion.
17. 17. The device of claim 16, further comprising a filter, the filter being a high pass filter.
18. 1. A method implemented by a device and one or more computers having a memory, one or more processors, a photodetector circuit, a high pass filter, and a transmitter, comprising: receiving an optical signal with the optical detection circuit; the photodetector circuit passing the optical signal to a filter, wherein when the optical signal is of sufficient strength, the filter produces a series of spikes of at least a threshold intensity, the spikes being spaced apart by a plurality of reference times; powering the one or more processors upon receipt of one of the series of spikes; A method comprising:
19. 20. The method of claim 18, further comprising: detecting spikes; measuring a delay length between said spike and a subsequent spike; incrementing a spike counter when said spike is detected; clearing the spike counter when the delay length exceeds a word-end delay; When the spike counter reaches an activation threshold, interpreting a subsequent spike delay length as a transmitted message; A method comprising:
20. 20. The method of claim 19, wherein the transmitted message is two characters of modified Morse code and a third authentication character of modified Morse code.