WO2023039070A2 - External activation of quiescent device - Google Patents

External activation of quiescent device Download PDF

Info

Publication number
WO2023039070A2
WO2023039070A2 PCT/US2022/042915 US2022042915W WO2023039070A2 WO 2023039070 A2 WO2023039070 A2 WO 2023039070A2 US 2022042915 W US2022042915 W US 2022042915W WO 2023039070 A2 WO2023039070 A2 WO 2023039070A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
spike
light
time
signal
Prior art date
Application number
PCT/US2022/042915
Other languages
French (fr)
Other versions
WO2023039070A3 (en
Inventor
Marciano Preciado
Sterling Sleight
Jeremy Fillingim
Original Assignee
PassiveLogic, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/469,760 external-priority patent/US11830383B2/en
Priority claimed from US17/469,671 external-priority patent/US20230071312A1/en
Application filed by PassiveLogic, Inc. filed Critical PassiveLogic, Inc.
Priority to EP22868061.7A priority Critical patent/EP4399699A2/en
Priority to CN202280066301.7A priority patent/CN118043868A/en
Publication of WO2023039070A2 publication Critical patent/WO2023039070A2/en
Publication of WO2023039070A3 publication Critical patent/WO2023039070A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/11Arrangements specific to free-space transmission, i.e. transmission through air or vacuum
    • H04B10/114Indoor or close-range type systems
    • H04B10/1141One-way transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/11Arrangements specific to free-space transmission, i.e. transmission through air or vacuum
    • H04B10/114Indoor or close-range type systems
    • H04B10/116Visible light communication

Definitions

  • the present disclosure relates to turning on sleeping devices. More specifically, the present disclosure relates to signaling a device to wake it up, and sending the device encoded information which gives it instructions.
  • a light detection circuit adapted to receive a light signal from a light source.
  • This light detection circuit comprises: a high pass filter coupled to the light detection circuit that when receiving light of at least a given intensity produces a spike; a power manager chip coupled to the light detection circuit that upon receipt of the spike enables power to the microcontroller; a timer that measures a time between spikes; and executable instructions in memory that upon execution by the microcontroller perform the following actions: detect a spike; increment a spike counter; use the timer to measure time between spikes; when the time between spikes exceeds an “END OF WORD” length, clear the spike counter; and when the spike counter reaches a wakeup threshold then interpret subsequent spikes and delay lengths as a transmitted message.
  • the wakeup threshold is of sufficient length to allow the microcontroller to boot.
  • the transmitted message is in modified morse code.
  • a DOT is a delay of 1 time duration
  • a 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
  • an END OF WORD is a delay of 9 time durations.
  • the transmitted message comprises a message portion and an authentication portion.
  • the delay of one time duration is about 8 ms.
  • the light detection circuit adapted to receive a light signal from a light source is adapted to receive a transmitted message as the light signal.
  • the transmitted message is stored in memory.
  • the light detection circuit adapted to receive a light signal from a light source is adapted to receive multiple messages from the light signal.
  • the executable instructions that upon execution by the microcontroller further perform the following actions: receiving an out-of-bound authentication request; and transmitting contents of a buffer in the memory.
  • the light detection circuit is adapted to generate a spike based off of the light signal.
  • a device with a microcontroller, memory, and transmitter comprising: a light detection circuit operationally able to receive a light signal from a light source, and operationally able to use the light signal to signal a power management circuit; the power management circuit operationally able to boot up the microcontroller; the microcontroller operationally able to scan the light signal for a message; and the transmitter operationally able to transmit at least a portion of the message.
  • the message is encoded in modified morse code wherein a DOT is a signal of one time duration, a DASH is a signal of 3 time durations, and END OF PART OF A LETTER is a signal of 2 time durations, an END OF LETTER is a signal of 5 time durations; and an END OF WORD is a signal of 9 time durations.
  • one time duration comprises a time ⁇ 10 ms.
  • the message comprises a message portion followed by an authentication portion.
  • the device further comprises a filter, wherein the filter is a high pass filter.
  • a method whereby a device is externally activated, implemented by a device with one or more computers with memory, one or more processors, a light detection circuit, a high pass filter, and a transmitter comprising: receiving a light signal by the light detection circuit; the light detection circuit passing the light signal to a filter, the filter producing a series of spikes of at least a threshold intensity when the light signal is of sufficient intensity, the spikes a multiple of a base time apart; and powering the one or more processors upon a receipt of the spike.
  • the method further comprises: scanning the light signal to detect a spike; measuring a delay length between the spike and a subsequent spike; when the spike is detected, incrementing a spike counter; when the delay length exceeds an “END OF WORD” delay, clearing the spike counter; and when the spike counter reaches a wakeup threshold then interpreting subsequent spike-delay lengths as a transmitted message.
  • the transmitted message is two letters in modified morse code and a third authentication letter in modified morse code.
  • a programmable signaling light source with a processor and a memory comprising: a programmable light source with a processor and memory operationally able to flash light at a known intensity with a known delay between light flashes; an encoder operationally able to encode a message; and an executable instruction that upon execution by the processor performs the following actions: the encoder encoding a message comprising a message part and an authentication part, producing an encoded message; and the programmable light source sending the encoded message at least twice; wherein the encoded message is encoded in modified morse code.
  • the programmable light source sending the encoded message further comprises the programmable light source repeatedly sending the encoded message.
  • the modified morse code comprises a DOT being a light signal of one time duration, a DASH being a light signal of 3 time durations, END OF PART OF A LETTER being a light signal of one time duration, an END OF LETTER being a light signal of 5 time durations; and an END OF WORD being a light signal of 9 time durations.
  • further comprising a second transmitter wherein the executable instruction that upon execution by the processor performs the further actions: after sending the encoded message, requesting a secret message using the second transmitter; upon receipt of the secret message, determining if the secret message is equivalent to the authentication part; and when the secret message is equivalent to the authentication part, the second transmitter sends a second message.
  • the authentication part is a letter randomly chosen by the light transmitting device.
  • the authentication part further comprises the letter chosen at random translated into modified morse code, and wherein the authentication part is followed by a modified morse code END OF WORD.
  • the light signal comprises an intensity of about 40 lumens.
  • the light signal comprises an intensity of greater than 40 lumens.
  • a method implemented by one or more computers with memory, one or more processors, a light source, and a transceiver comprising: translating a message into modified morse code; the message comprising a message part and an authentication part; and repeatedly transmitting the message; wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations.
  • the message is encoded in modified morse code, wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations.
  • a DOT is one time duration
  • a DASH is three time durations
  • an end of part of a letter is one time duration
  • an END OF LETTER is 5 time durations
  • an END OF WORD is 9 time durations.
  • the second message is sent by a second transmitting device.
  • the second transmitting device is a wireless transceiver.
  • the sent message comprises a signal of a time duration, and wherein one time duration comprises about 8 ms.
  • one time duration comprises ⁇ 8 ms.
  • the transmitted message is a word comprising two letters in modified morse code and a third authentication letter in modified morse code followed by an END OF WORD.
  • a non-transitory computer readable storage medium storing instructions for externally activating a quiescent device wherein the instructions when executed by a processor, cause the processor to perform steps is disclosed, the instructions including: translating a message into modified morse code; the message comprising a command part and an authentication part; repeatedly transmitting the message; wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations; requesting a secret message using a second transceiver; and receiving a secret message using the second transceiver; when the secret message is equivalent to the authentication part, resending the message.
  • the signals comprise a light flash followed by a number of time durations prior to the next light flash.
  • the modified morse code comprises signals, and the signals comprise a rising or falling edge followed by a number of time durations.
  • a DOT is one time duration
  • a DASH is three time durations
  • an END OF PART OF A LETTER is 1 time duration
  • an END OF LETTER is 5 time durations
  • an END OF WORD is 9 time durations.
  • FIG. 1 discloses a computing system in conjunction with which described embodiments can be implemented.
  • FIG. 2 discloses methods that may be used to power a processor that may be used with embodiments disclosed herein.
  • FIG. 3 discloses methods that may be used to read a message that may be used with embodiments disclosed herein.
  • FIG. 4 discloses embodiments that may be used to detect a message start, as used in embodiments described herein.
  • FIG. 5 describes a current morse code chart.
  • FIG. 6 discloses a modified morse code chart, as used in embodiments described herein.
  • FIGS. 7A and 7B disclose exemplary messages that may be sent to the device 100.
  • FIG. 8 discloses exemplary system behavior when an out of band authentication message is sent, as used in embodiments described herein.
  • FIG. 9 discloses a digital signal generated by a light circuit without a high pass filter.
  • FIG. 10 discloses a digital signal generated by a light circuit with a high pass filter, as used in embodiments described herein.
  • FIG. 11 discloses a digital signal from the perspective of a device receiving the signal through a high pass filter, as used in embodiments described herein.
  • FIG. 12 discloses a computing system in conjunction with which described embodiments can be implemented.
  • FIGS. 13 A and 13B disclose physical embodiments in which external activation of a quiescent device may be possible.
  • FIG. 14 discloses systems that may be used to read a message that may be used with embodiments disclosed herein.
  • FIG. 15 discloses methods that may be used to read a message that may be used with embodiments disclosed herein.
  • Embodiments in accordance with the present embodiments may be implemented as an apparatus, method, or computer program product. Accordingly, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects. Furthermore, the present embodiments may take the form of a computer program product embodied in any tangible medium of expression having computer- usable program code embodied in the medium.
  • a computer-readable medium 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 Light memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device.
  • Computer program code for carrying out operations of the present embodiments may be written in any combination of one or more programming languages.
  • Embodiments may be implemented in edge computing environments where the computing is done within a network which, in some implementations, may not be connected to an outside internet, although the edge computing environment may be connected with an internal internet. This internet may be wired, wireless, or a combination of both.
  • Embodiments may also be implemented in cloud computing environments.
  • a cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc.), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), Infrastructure as a Service (“laaS”), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.).
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • 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 general or special purpose hardware-based systems that perform the specified functions or acts, or combinations of general and special purpose hardware and computer instructions.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” or any other variation thereof, are intended to cover a non-exclusive inclusion.
  • a process, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, article, or apparatus.
  • any examples or illustrations given herein are not to be regarded in any way as restrictions on, limits to, or express definitions of any term or terms with which they are utilized. Instead, these examples or illustrations are to be regarded as being described with respect to one particular embodiment and as being illustrative only. Those of ordinary skill in the art will appreciate that any term or terms with which these examples or illustrations are utilized will encompass other embodiments which may or may not be given therewith or elsewhere in the specification and all such embodiments are intended to be included within the scope of that term or terms. Language designating such non-limiting examples and illustrations includes, but is not limited to: “for example,” “for instance,” “e.g.,” and “in one embodiment.”
  • a quiescent device in a state where it is currently not harvesting data or sending data, though it may be on schedule such that it will harvest data or send data at a known later time
  • the device may have never been turned on, such as when it is originally commissioned.
  • the device is first woken up by a series of external light signals sent by an external device. These external light flashes make up a message in modified morse code that is sent to the device.
  • the light signals trigger a power management circuit that boots a processor.
  • the light signals are also sent through a process that transfers the light flash into a voltage spike upon sufficient brightness and sufficient speed of activation.
  • the device fully wakes up, the message is read.
  • the sensor Upon request from another device, the sensor sends an authentication code that was provided in the message. This enables a single user action to wake the device up and set it up with networking credentials.
  • a device by default is, at times, turned off, or quiescent. That is, it is in a state where it is currently not harvesting data or sending data, though it may be on schedule such that it will harvest data or send data at a later time.
  • a programmable signaling light source may send it a repeating message comprising light flashes that are separated by different amounts of time.
  • the signaling light may trigger power being applied to the device, and/or prompt an early wakeup.
  • the message may be in modified morse code.
  • 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 a different timing for spaces between parts of letters, end of letters, and end of words .
  • the device 100 may be any sort of device that will be woken up from a sleep state.
  • the device 100 may be initially being installed, and so needs to be commissioned.
  • the device 100 may be in a sleep state and may be wakened from it out of its normal schedule.
  • the device 100 may be a low power device, such as a low power sensor.
  • the device 100 may comprise a light detection circuit 105, and/or a filter 110.
  • the filter 110 may be comprised of a frequency filter 112, which passes light of a certain frequency and rejects other frequencies.
  • This frequency filter 112 may be a band-pass filter, a notch filter, a high pass filter, etc.
  • the light detection circuit 105 and the filter 110 may be integrated.
  • the light detection circuit 105 may be adapted to receive a light signal from a light source.
  • the light detection circuit 105 may produce voltage when photodiodes in the circuit are hit by a flash of light.
  • the intensity of the voltage may rely on the intensity of the light that hits the photodiodes.
  • the frequency filter 112 may only allow voltage equivalent to a light of 45 lumens or higher through.
  • the voltage produced by the light detection circuit 105 may be dependent upon specifics of the light detection circuit 105 and the frequency filter 112.
  • the light may also be sent through an amplitude filter 114 that only passes light though that is of a certain amplitude (brightness).
  • This filter may be a digital threshold.
  • the pairing of the frequency filter 112 and the amplitude filter 114 may allow a light pulse through that has a fast-enough frequency with a sufficiently high light level.
  • the frequency filter 112 and amplitude filter 114 may be a passive high pass filter coupled with a digital gate which turns the voltage signal into either a “1” or “0”.
  • the “1” may be a very narrow pulse with a rising and trailing edge that appears to be a spike.
  • This digital gate 114 may convert the analog signal output from the frequency filter 112 to a digital circuit.
  • the digital circuit may then be received by a power management circuit 140.
  • one purpose of the filter may be to guard against saturation of the photodiodes.
  • the filter may also guard against varying light levels causing false positives and/or false negatives.
  • the filter 110 may filter out noise that does not meet a digital threshold (dependent on the voltage, which itself is dependent on the intensity of the light), and may filter out low frequency noise.
  • a digital threshold dependent on the voltage, which itself is dependent on the intensity of the light
  • a timer 175 may keep track of the time between successive spikes.
  • a spike (e.g., processed by the filter 110) followed by the time to the next spike may be referred to as a “pulse.”
  • This pulse may be a time that indicates the time from one spike to the next.
  • a power manager circuit 140 maybe operationally able to send power to an processor/MCU upon receipt of a spike that has passed through frequency filter 112 and been digitized by a digital gate, which may be a or a portion of an amplitude filter 114.
  • the amplitude filter 114 may be part of the frequency filter 112, part of the power management circuit 140, or a separate component.
  • a transmitter 115 may allow the device 100 to send device data 120 to another entity, such as a personal computing device such as a cell phone, a controller that controls the device 100, a device 100, or a different entity.
  • the transmitter may be wired, wireless, some combination, etc.
  • the transmitter may be a bluetooth mesh, a 2-wire multidrop, a 3 -wire multidrop, some combination of the above, a different sort of transmitter altogether, and so on.
  • the device data 120 may be stored in memory.
  • a solar panel and/or a battery 130 may be included.
  • the solar panel may be configured to also function as the light detection circuit 105.
  • the memory 155 may comprise a spike counter 160, which holds an internal value of how many spikes have been received.
  • the memory 155 may also comprise a wakeup threshold 165, which determines the number of spikes which should be received before a message is read.
  • a buffer 170 may be part of the memory 155 that holds messages or parts of messages that have been sent to the device 100.
  • a power manager circuit 140 may be powered in part by the voltage from the light detection circuit, the power manager circuit may use the voltage as a signal to connect a processor 145 to the battery 130.
  • the processor may comprise high-efficiency signal processing, low power, low cost, or may have other features.
  • the processor may be a microcontroller.
  • the processor 145 may have executable instructions on board which can make certain decisions, such as when to send a message.
  • These executable instructions 150 may be embedded within firmware, within software, within hardware or within some combination of two or three of them.
  • the executable instructions 150 may also decode received messages, make calculations, and so on.
  • the device may also have device components 135 which provide other services of the device 100.
  • a flowchart 200 discloses methods that may be used with embodiments disclosed herein.
  • the operations of method 200 presented below are intended to be illustrative. In some embodiments, method 200 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 200 are illustrated in FIG. 2 and described below is not intended to be limiting.
  • method 200 may be implemented in one or more processing devices (e.g., a digital processor such as the processor 145), 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 may include one or more devices executing 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 may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method 200.
  • a flash light encoder sends a message to the device 100.
  • the flash light encoder is a device that is able to flash messages of types described herein.
  • photodiodes in the light detection circuit receives the light and generate voltage based on the intensity of the light received. When the light is of sufficient intensity, the light detection circuit 105 is triggered 210. In some embodiments, when the light detection circuit 105 is triggered, one or more transistors in the light detection circuit switch between a lower voltage and a higher voltage to produce a voltage spike. In some embodiments, the size of the spike is proportional to the intensity of the light. In some embodiments, the voltage size is the spike height. At operation 215, the spike is passed through a filter.
  • this is a band-pass filter that only allows voltages of a certain frequency or higher through. This filters out low frequency waves, such as the light in a room getting suddenly brighter when, for example, the sun appears from under a cloud.
  • the voltage is passed through an amplitude filter 114. These two filters may be used so that only light of a certain intensity above a certain frequency will trigger the power manager to, e.g., prevent random light from starting up the processor 145.
  • the spike is then elongated to signal to the power manager chip 140 that it should enable power to the MCU 145. This elongation may satisfy a debouncer in the power manager circuit.
  • the power manager 140 (in some instances elongated into a pulse with a leading and a trailing edge), is awakened by a spike that was able to make it through the filter 110. After being awakened, the power manager connects the battery 130 to the processor 145, powering it.
  • the power manager chip 140 enables power to the MCU.
  • the processor 145 boots a kernel, which may be a Zephyr kernel.
  • the interrupt handlers are also registered to respond to interrupts on the MCU I/O lines. After this process is complete, an MCU interrupt is produced for each rising edge of the incoming signal spike and interrupt handler code is run. This process requires time to complete before a message may be accurately received.
  • a wakeup sequence that lasts for some duration of time is ideally used to allow the MCU to receive power and for it to fully boot before attempting to receive its eventual message.
  • the signal has already gone through a filter 110.
  • the spikes of the wakeup sequence are counted and the message is not decoded until a specified threshold of spikes has been received. If a delay between signal spikes that is greater than the modified morse code part of speech “END OF WORD” is received, then the spike counter is cleared. This is to ensure that the wakeup signal spikes are received in a timely manner that would suggest a deliberate wake up of the device, and as such, prevents a message decode being triggered by random noise, such as by turning on the lights in the room where the device is located, even if it is done multiple times.
  • the code running on the processor 145 waits for a delay the length of the “END OF WORD” part of speech before beginning to interpret subsequent spikes and delays as part of the transmitted message. After meeting the wakeup threshold and receiving a delay that translates, in part, to an “END OF WORD” part of speech, subsequent spikes and delays will be interpreted as part of the transmitted message until another delay “END OF WORD” part of speech is received.
  • FIG. 3 discloses a method of the processor 145 reading a message.
  • a flowchart 300 discloses methods that may be used with embodiments disclosed herein. The operations of method 300 presented below are intended to be illustrative. In some embodiments, method 300 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 300 are illustrated in FIG. 3 and described below is not intended to be limiting.
  • method 300 may be implemented in one or more processing devices (e.g., a digital processor such as the microcontroller 145), 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 may include one or more devices executing 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 to be specifically designed for execution of one or more of the operations of method 300.
  • the message may be sent multiple times to ensure that the processor 145 is fully booted up before the last message sent has begun to be received.
  • the message will be eventually received, as the wakeup threshold will have been met by a previous transmission of one of the messages and the signal “END OF WORD” part of speech will have been received.
  • a spike counter holds the number of spikes that have been received.
  • the processor 145 may wait for a certain time (e.g., measured in a number of spike counters), to have have passed since the message began to be sent prior to decoding the message. In some embodiments, the processor may wait for a certain time measured in actual time. In some embodiments, the processor may measure the time to wait in a different way.
  • the spike counter is reset when a delay after a spike is detected that is longer than the “END OF WORD” part of speech and a spike threshold has not yet been achieved. This threshold may be some number of signal spikes, such as 5, 9, etc., that is long enough to ensure that the processor has time to boot.
  • the processor 145 is powered on.
  • the processor boots up 310. While the processor is powering on and booting up, a message is continually sent until the processor is fully booted up, at which point the whole message can be read.
  • the processor receives a spike.
  • the processor measures the time between this spike and a previous spike received. If, at decision point 325, the measured time is a message start time, then at decision point 325 it is determined if a valid message start has been detected. If so, then at operation 330, the message is read. If the message start has not been detected, then back at operation 315, the processor again checks for another spike to be received.
  • a flowchart 400 discloses methods that may be used with embodiments disclosed herein.
  • This flowchart 400 describes embodiments that may be used to detect a message start.
  • a device wakes up.
  • a light signal is scanned.
  • decision point 410 it is determined if a spike is detected. If so, then at decision point 415 a spike counter is incremented.
  • the spike count has a wake-up threshold 165.
  • This threshold may be a non-zero integer that is set long enough to ensure that the processor 145 has sufficient time to boot up. Examples may be 5, 4, 3, 10, etc.
  • the value of the spike counter is checked.
  • the length of the delay that follows the pulse is measured.
  • the spike counter is cleared. In some embodiments, if the delay length exceeds the "END OF WORD” length in modified morse code (as discussed with reference to FIGS 5 and 6), then the spike counter is cleared. This ensures that if insufficient spikes have been detected but the message detected is at the end (meaning spikes have been missed), a message will not be read.
  • the value of the spike counter is checked. If it is at a wakeup threshold value 165, then at operation 435, the next pulse is fetched.
  • the spike and delay is decoded. At decision point 445 it is determined if the delay is the same length as END OF WORD delay.
  • a next spike and delay is fetched. If so (an END OF WORD delay has been detected), at operation 450, the message is determined to be finished. Once a message start has been discovered, subsequent signal pulses are interpreted as part of the transmitted message. The time between signal spikes is measured. This is discussed with reference to FIGS. 9, 10, and 11.
  • the processor 145 decodes the delays between the spikes using the modified morse. In embodiments, the sequence of delays decoded into time units are buffered 170 in sequential order, in LIFO order, etc. In some embodiments the sequence of delays decoded into time units are partially stored in a buffer.
  • the buffer 170 is a designated location, in some embodiments, the buffer location is determined on the fly. In embodiments, single word messages are received. In some embodiments, when an “END OF WORD” delay is found, a decode of the buffer 170 (that the message may have been stored in) is performed and a message is produced. The produced message may be stored in the same buffer (e.g., 170) or a different buffer that is overwritten with subsequent messages received. This ensures that the last message received is the message stored. In some embodiments, other methods are used. For example, multiple words may be in a message. In such cases, an end of message signal part of speech may be defined. When the end of message signal part of speech is found, a decode of the parts of speech buffer 170 may be performed, with a message being produced. Multiple buffers (e.g., 170) may be used, etc.
  • FIG. 5 at 500 describes a current International Morse Code chart.
  • International Morse Code specifies duration, some on rising edges and some on trailing edges.
  • the durations for a DOT and DASH are durations between a rising edge and a trailing edge.
  • the “END OF PART OF A LETTER”, “END OF LETTER”, and “END OF WORD” parts of speech are durations for when the morse code signal is low, and therefore the duration between the falling edge and rising edge.
  • FIG. 9 at 905 shows a DOT, e.g., a rising edge followed by a duration of 1 time unit.
  • An END OF PART OF A LETTER 910 is a trailing edge followed by one time unit.
  • FIG. 6 at 600 discloses a modified morse code chart, similarly, that describes the delays for each as used in embodiments described herein.
  • this modified morse code there are only single signal spikes.
  • the term “delay” is used to describe the elapses between spikes where that duration also corresponds to a morse code part of speech.
  • a base time duration may be of one time unit.
  • the DOT(l) 505 and DASH(3) 510 indicate that a delay for a DOT is lx the base unit, and the DASH is a delay that is 3x the base unit.
  • a delay of one time duration is around 8ms.
  • the matrices shown in FIGS. 5 and 6 are the combinations of resulting on/off parts of speech.
  • traditional morse code the signal on duration and the signal off duration are measured, with each used to decode the specific part of speech. Modified morse code disclosed herein only tracks the delays between rising edges. The rising edge may be defined by a spike. This creates combinations in traditional International Morse code that cannot be distinguished. For example, a DASH/END OF PART OF A LETTER 515 and DOT/END OF LETTER 520 that are both 4x the base unit.
  • FIG. 6 at 600 discloses a modified morse code chart.
  • the multiples of the base timing unit that are assigned to each part of speech are adjusted to be unique.
  • the END OF LETTER signal 605 equals 5 time durations.
  • the END OF WORD signal 610 equals 9 time durations. These time durations are added to the DOT or DASH time duration to produce a unique time duration.
  • the DOT (1) followed by an END OF PART OF A LETTER (1) 615 will take 2X the base unit
  • a DASH (3) followed by End of Letter (5) will take 8X the base unit 620
  • a DASH (3) followed by an END OF W0RD(9) 625 will take 12x the base unit, etc.
  • FIGS. 7A at 700A and 7B at 700B disclose creation of messages using modified morse code in greater detail.
  • the message comprises a series of letters 705 A that specify the message followed by a series of letters or other characters that are used for authentication 710A.
  • the message will be followed by an END OF WORD 610, when the message is a single word.
  • a message will comprise two message letters 715 A, 720A, followed by an authentication character 725 A unrelated to the message (and possibly generated randomly by the signaling device) that will be passed back to the signaling device to be used, e.g., for network authentication.
  • these messages are generated by a processor/MCU in a light encoder as strings of letters and are then converted to modified morse code parts of speech.
  • the messages are created directly as modified morse code parts of speech.
  • the modified morse code parts of speech may then be signaled to the device 100 using a light source.
  • a light on a device that allows the specific on/off timing of the light to be programmed or otherwise specified is used.
  • a personal computing device such as a phone with a flashlight is used.
  • a message may be originally output multiple times.
  • a message may be output for two seconds to be sure that the device 100 may boot up and that the wakeup threshold 165 (a specified number of pulses) can be met to avoid triggering a message decode on a false trigger.
  • the message may be used as both a preamble to turn on the device 100 and as the actual message that instructs the device 100 in its next action.
  • the number of times a message is output depends on the length of the message.
  • FIG. 7A at 700 shows the international morse code for a message “PRE”.
  • This message comprises a message part — “PR” 705 (which may stand for “provision”), and an authentication part chosen at random — “E” 710.
  • FIG. 7B discloses the message translated into a form that may be sent to wake up a device.
  • the P signal 735B in international morse code is • - • 715A.
  • the R 720A is a DOT DASH DOT, which corresponds to spike 739B, DOT (1 time period + END OF LETTER (5 time periods) to produce 6 time periods 720B.
  • the R signal 740B in international morse code is DOT DASH DOT 720.
  • the signal that represents the modified morse code letter R 740B is the set of spikes and delays 725B corresponding to a spike followed by a delay of 2 time periods (DOT followed by an End of Part of Letter), a spike followed by a delay of 4 time periods (DASH followed by an End of Part of Letter), and a spike followed by a delay of 6 time durations (DOT followed by an END OF LETTER).
  • the last letter in the word, E 725A is a DOT (1 time duration), but because it is the last letter in the word, it is followed by an END OF WORD signal 610, which corresponds to (1+9) 10 time durations.
  • this message is known to be finished. Some messages may be longer than a single word, in which case, the modified morse code table may be extended.
  • these messages are generated by a light encoder 205 as strings and are then converted to morse code parts of speech.
  • the messages are created directly as morse code parts of speech.
  • the morse code parts of speech may then be signaled to the device 100 using a light source.
  • a light on a device that allows the specific on/off timing of the light to be programmed or otherwise specified is used.
  • a personal computing device such as a phone with a flashlight is used.
  • a message may be originally output multiple times.
  • a message may be output for two seconds to be sure that the device 100 may boot up and that the wakeup threshold 165 (a specified number of pulses) can be met to avoid triggering a message decode on a false trigger.
  • the message is used as both a preamble to turn on the device 100 and as the actual message that instructs the device 100 in its next action.
  • the number of times a message is output depends on the length of the message.
  • Some possible states are: Wakeup - The light source is used to pull the device out of a super-low-power state (shipping-sleep); Communication - The sequence/pattern emitted by the light source is used to set the state that the device wakes up in. i.e. provisioning mode, device firmware upgrade mode, diagnostics mode, etc.; Out-of-Band (OOB) Security - the sensor and the signaling device may use the flight as an additional communication medium to obfuscate the network onboarding process even further. This may be sent during the network setup in provisioning, etc.
  • OOB Out-of-Band
  • FIG. 8 at 800 discloses exemplary system behavior when an out of band authentication message is sent.
  • a request is received to provide an out of band authentication message.
  • This message may have originally been sent by a flash light encoder 205.
  • an authentication message may be transmitted, e.g., using the transmitter 115. In some implementations this authentication message may be the last letter sent to the device, which is not part of the message portion.
  • the authentication message 710A may be a message generated by the device 100, or determined by the device 100 using an algorithm. In some embodiments, the authentication message may be multiple characters long. In some embodiments, the authentication message may be stored in a buffer 170.
  • the authentication portion of a memory may be stored in a buffer 170 stored in memory 155.
  • Transmitting an authentication code may comprise transmitting the contents of an authentication buffer stored in memory 155 which holds the authentication portion of a message.
  • the authentication code is a single letter, such as E 725 A
  • the E 725 A may be stored in a buffer 170 and then sent when an authentication request is received.
  • a character as decoded may be stored in a buffer 170 that holds a single character; in such a system, the last letter in the message will be the one in the buffer that is then sent as the authentication code in response to the authentication request.
  • a buffer 170 may hold and send multiple characters.
  • a buffer may be used to hold the time between signals, such that an entire message may be stored prior to decoding.
  • FIG. 9 at 900 discloses a digital signal generated by a light circuit without a high pass filter.
  • FIG. 9 at 900 specifically discloses a modified international morse code “A”.
  • the pulses in FIG. 9, 10, and 11 are measured in ms 930, with a standard time duration of 10 ms.
  • “A” is a DOT DASH, which is a pulse 905 (rising and training edge) of one time duration followed by an END OF PART OF LETTER 910 (a signal low of one time duration) followed by a DASH 915 of 3 time durations, followed by an END OF PART OF WORD 920 of 9 time durations.
  • the next rising signal appears at 925.
  • the signal that produces the A in morse code is not shown, but it may take many forms, as long as it is of sufficient amplitude. For example, it may appear similar to sine waves with pauses between them, a square digital signal, etc.
  • the signal may then be passed into a frequency filter 112, such as a high pass filter, digitized by the light detection circuit 105.
  • the signal that is output from the frequency filter 112 may then be converted from an analog signal to a digital signal by, e.g., an amplitude filter 114, an analog to digital converter, etc.
  • FIG. 10 at 1000 discloses a digital signal generated by a light circuit with a high pass filter, as used in embodiments described herein. Only the rising edge of each pulse makes it through the filter 110. As such, the time between rising edges is measured. This gives spike 1005, which corresponds to the rising edge of the DOT; spike 1010, which corresponds to the rising edge of the DASH, and spike 1015, which corresponds to the next rising edge received. As shown with reference to FIGS. 5 and 6, the morse parts of speech base unit multiples have been adjusted such that each combination of morse high and morse low will produce a unique time duration.
  • FIG. 11 at 1100 discloses a digital signal from the perspective of a device receiving the signal through a high pass filter, as used in embodiments described herein. Two time measurements are decoded, the time from the rising edge of the DOT (transformed into a spike) to the rising edge of the DASH (transformed into a spike) 1105, which is 20 ms long, and time from the rising edge of the DASH (transformed into a spike) to the next rising edge (transformed into a spike) 1110, which is 80 ms long.
  • a DOT followed by an end of a part of letter is 2 base units long 615, and the base unit is 10 ms, so the time 1105 indicates a morse signal DOT followed by a morse signal END OF PART OF LETTER.
  • the time 1110 measured between the rising edges (transformed into spikes) 1010 and 1015 is 8 base units long (10 ms * 8), and so is a morse signal DASH followed by an END OF LETTER (8 units long).
  • the letter is DOT DASH, which encodes to an “A”.
  • FIG. 12 illustrates a generalized example of a suitable programmable signaling light source 1200 in which described embodiments may be implemented.
  • the computing environment 1200 is not intended to suggest any limitation as to scope of use or functionality of the disclosure, as the present disclosure may be implemented in diverse general -purpose or special-purpose computing environments.
  • the computing environment 1200 includes at least one processor, This processor may come in many forms, such as core processing elements 1210.
  • the core processing element 1210 may comprise a central processing unit 1230, and memory 1220.
  • the central processing unit 1230 executes computer-executable instructions and may be a real or a virtual processor.
  • the memory 1220 may 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 implementing the described methods of externally activating a quiescent device. Specialized processors may also be included.
  • the programmable signaling light source environment 1200 includes storage 1240 and communication connections 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).
  • Communication connections 1270 may include one or more wireless transceivers for performing wireless communication and/or one or more communication ports for performing wired communication.
  • communication device 1270 may be configured to send messages through a programmable light 1252.
  • Input device(s) 1250 may be a device that allows a user or another device to communicate with the programmable signaling light source 1200. These may comprise a programmable light source 1252 such as a flashlight, and a camera flash (a strobe light that can connect to a camera or a computing device). Other devices that may be included comprise a microphone, a mouse, a pen, a trackball, a touchscreen 1256, or another device that provides input to the computing environment associated with the programmable light source 1200. For audio, the input device(s) 1250 may be a sound card or similar device that accepts audio input and produces audio output in analog or digital form, a speaker 1258, or a CD-ROM reader that provides audio samples to the computing environment.
  • a programmable light source 1252 such as a flashlight, and a camera flash (a strobe light that can connect to a camera or a computing device).
  • Other devices that may be included comprise a microphone, a mouse, a pen, a trackball, a
  • the output device(s) 1250 may be a touchscreen 1256, a display, a keyboard, a printer, a speaker, a CD- writer, a computer readable storage medium 1265, or another device that provides output from the programmable signaling light source computing environment 1200.
  • An interconnection mechanism such as a bus, controller, or network interconnects the components of the computing environment 1200.
  • operating system software provides an operating environment for other software executing in the computing environment, and coordinates activities of the components of the computing environment.
  • the storage 1240 may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, flash drives, or any other medium which can be used to store information and which can be accessed within the computing environment 1200.
  • the storage 1240 stores instructions for the software, such as quiescent device external activation software 1285 to implement methods of sending messages comprising light flashes, including wakeup messages, to a different device.
  • the communication connection(s) 1270 enable communication over a communication medium to another computing entity.
  • the communication medium conveys information such as computer-executable instructions, compressed graphics information, or other data in a modulated data signal.
  • Communication connections 1270 may comprise input/output devices 1250, and input/output devices that allows a client device to communicate with another device over network 1260.
  • a communication device may include one or more wireless transceivers for performing wireless communication and/or one or more communication ports for performing wired communication.
  • These connections may include network connections, which may be a wired or wireless network such as the Internet, an intranet, a LAN, a WAN, a cellular network or another type of network. It will be understood that network 1260 may be a combination of multiple different kinds of wired or wireless networks.
  • the network 1260 may be a distributed network, with multiple computers, which might be building controllers acting in tandem.
  • a computing connection 1270 may be a portable communications device such as a wireless handheld device, a cell phone device, and so on
  • Computer-readable media are any available non-transient tangible media that can be accessed within a computing environment.
  • computer-readable media include memory 1220, storage 1240, communication media, and combinations of any of the above.
  • Computer readable storage media 1265 which may be used to store computer readable media comprises instructions 1275 and data 1280.
  • Data Sources may be computing devices, such as general hardware platform servers configured to receive and transmit information over the communications connections 1270.
  • the attached figures may not show the 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 like “determine,” “build,” and “identify” to describe the disclosed technology. These terms are high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms will vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art.
  • data produced from any of the disclosed methods can be created, updated, or stored on tangible computer-readable media (e.g., tangible computer-readable media, such as one or more CDs, volatile memory components (such as DRAM or SRAM), or nonvolatile memory components (such as hard drives) using a variety of different data structures or formats.
  • tangible computer-readable media e.g., tangible computer-readable media, such as one or more CDs, volatile memory components (such as DRAM or SRAM), or nonvolatile memory components (such as hard drives) using a variety of different data structures or formats.
  • Such data can be created or updated at a local computer or over a network (e.g., by a server computer), or stored and accessed in a cloud computing environment.
  • a cell phone embodiment 1305A that includes a flashlight 1310A that can be programmed to send messages. These messages may be sent to a quiescent device 1320A.
  • the device 130013 comprises a computer 1305B connected 1310B to a signal element 1315B.
  • the computer may program the signal element 1315B (which may be a camera, a flashlight, or another type of light that can be programmed) to signal appropriately for message creation.
  • the signals here may also be directed to a quiescent device, e.g. 1320A.
  • a light connected to a larger device may allow a device in an inconvenient location to be signaled.
  • FIG. 14 discloses a system 1400 that may be used to activate a quiescent device using a programable light source 1405.
  • the signaling light may trigger power being applied to the quiescent device, and/or prompt an early wakeup of the device.
  • a quiescent device may be a device that is sleeping on a schedule, but may be activated for a task off schedule, that is factory turned off, etc.
  • This programmable light source 1405 may be operationally able to flash a light signal at a known intensity for a known time.
  • the signals may have a certain amplitude.
  • the signals may be at least 40 lumens, about 40 lumens, about 45 lumens, about 60 lumens, etc.
  • the signal may be such that it is greater than flashes that appear lambently.
  • a transceiver 1410 may be able to transmit information wirelessly, wired, etc., to, at least the quiescent device, once wakened.
  • An encoder 1415 may encode a message in a code such that the light source 305 can signal it to the quiescent device.
  • the code may be modified morse code, or a different code that can be signaled.
  • the system may also have executable instructions 1420 that upon execution by a processor associated with the system, e.g., 1210, 1230, etc., perform actions of various types. These actions will be discussed with reference to FIG. 15.
  • a flowchart 1500 discloses methods that may be used with embodiments disclosed herein.
  • the operations of method 1500 presented below are intended to be illustrative. In some embodiments, method 1500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 1500 are illustrated in FIG. 15 and described below is not intended to be limiting.
  • method 1500 may be implemented in one or more processing devices (e.g., a digital processor such as the 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 may include one or more devices executing 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 may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method 1500.
  • a message is determined.
  • This message may be a certain number of alphabetic characters.
  • the message may be two characters.
  • the letters “PR” may be code for “the quiescent device should turn on and start provisioning,” There may be many messages, the messages may comprise more or fewer letters, may comprise multiple words, etc.
  • an authentication part of the message may be determined.
  • the signaling light source sends a message in may include an authentication message that will be sent back from the device to ensure that the correct device has received the message, and understands the message.
  • the authentication part is a symbol chosen at random.
  • This symbol may be a letter, a number, an ideogram, an emoji, a unicode character, etc.
  • the authentication part is more than symbol.
  • the authentication part may be determined by a known algorithm which, when sent, may be deciphered by the quiescent device.
  • the message and authentication type are encoded. This encoding may be in modified morse code, or a different type of code. More information on message encoding may be found with reference to FIGS. 9-11 and the surrounding text.
  • the encoded message is sent.
  • This encoded message comprises spikes of light and pauses between the spikes.
  • the spikes are sent, e.g., using the programmable light 1552.
  • This light should be a certain amplitude; what amplitude is necessary depends on the parameters of the quiescent device to be awakened.
  • the shape of the light spike is not so important, as long as the time between the first rising edge and the next rising edge can be accurately flashed, as the quiescent device 1320A in some embodiments, reads the rising edges.
  • the message may be in morse code modified as disclosed herein.
  • the encoded message is sent again. The message that is to be sent also is used as the wakeup signal.
  • the message must be sent enough times that the quiescent device 1520A should be initially wakened by some combination of time flashes which will then cause the quiescent device 1320A to boot up.
  • the encoded message may be sent sufficient times to allow for the boot up time, such that a full message is received after the boot up process has finished.
  • the number of times a message should be sent 1525 may depend on the time it takes the quiescent device to boot up.
  • a two factor authentication method may be used. This may entail requesting an out of band message from the quiescent device, which may be expected to be the authentication part of the original message.
  • this out of band message may be requested using a network connection 1260, such as a wireless transmitter, or a different method.
  • a secret message is received. This may be received from the network connection, which may be a transceiver, a wireless transmitter, or using a different method.
  • this secret message is authenticated. This may be performed by comparing the secret message received to the authentication part initially sent. If the authentication portion is equivalent to the secret message, then at operation 1550, a next message is sent. This next message may be sent using a transceiver, a wireless transmitter, or a different network connection. If the wrong authentication part is sent, no next message is sent, etc., then at operation 1545, the quiescent device wakeup method is stopped.
  • Non-transitory refers to computer-readable media (CRM) that stores data for short periods or in the presence of power such as a memory device or Random Access Memory (RAM).
  • Non-transitory medium 1265 may include disks (magnetic, optical, or otherwise), RAM, EEPROMS or other ROMs, and/or other configurable memory, including computer-readable media (not directed to a manufactured transient phenomenon, such as an electrical, optical, or acoustical signal).
  • the storage medium which is configured may be a removable storage medium 1265 such as a CD, DVD, or flash memory.
  • a program on the storage medium may be run on a processor (e.g., 1210, 1212, 1215, etc.) which is coupled to a memory.
  • a memory may be a general-purpose memory (which may be primary, such as RAM, ROM, CMOS, or flash; or may be secondary, such as a CD, a hard drive, an optical disk, or a removable flash drive), can be configured into an embodiment using the computing environment 1200 in the form of data 1280 and instructions 1275, read from a source, such as an output device 1255, to form a configured medium with data and instructions which upon execution by a processor perform a method for computing traveling comfort information.
  • the configured medium 1265 is capable of causing a computer system to perform actions as related herein.
  • Some embodiments provide or utilize a computer-readable storage medium 1265 configured with software 1285 which upon execution by at least a central processing unit 1230 performs methods and systems described herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Optical Communication System (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

After installation, a device (100) may be not yet powered. It may be awakened by receiving a flash of light of sufficient frequency and amplitude. After waking, the device (100) decodes the message to determine its next action, and, upon request sends an authentication message. This enables a single user action to wake the device (100) up and set it up with networking credentials. The same process may be used to wake the device (100) outside of a normal sleep-wake cycle.

Description

EXTERNAL ACTIVATION OF QUIESCENT DEVICE
FIELD
The present disclosure relates to turning on sleeping devices. More specifically, the present disclosure relates to signaling a device to wake it up, and sending the device encoded information which gives it instructions.
SUMMARY
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description section. This summary does not identify required or essential features of the claimed subject matter.
In embodiments, a light detection circuit adapted to receive a light signal from a light source is disclosed. This light detection circuit comprises: a high pass filter coupled to the light detection circuit that when receiving light of at least a given intensity produces a spike; a power manager chip coupled to the light detection circuit that upon receipt of the spike enables power to the microcontroller; a timer that measures a time between spikes; and executable instructions in memory that upon execution by the microcontroller perform the following actions: detect a spike; increment a spike counter; use the timer to measure time between spikes; when the time between spikes exceeds an “END OF WORD” length, clear the spike counter; and when the spike counter reaches a wakeup threshold then interpret subsequent spikes and delay lengths as a transmitted message.
In embodiments, the wakeup threshold is of sufficient length to allow the microcontroller to boot.
In embodiments, the transmitted message is in modified morse code.
In embodiments, in the modified morse code a DOT is a delay of 1 time duration, a 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.
In embodiments, the transmitted message comprises a message portion and an authentication portion.
In embodiments, the delay of one time duration is about 8 ms.
In embodiments, the light detection circuit adapted to receive a light signal from a light source is adapted to receive a transmitted message as the light signal.
In embodiments, the transmitted message is stored in memory. In embodiments, the light detection circuit adapted to receive a light signal from a light source is adapted to receive multiple messages from the light signal.
In embodiments, the executable instructions that upon execution by the microcontroller further perform the following actions: receiving an out-of-bound authentication request; and transmitting contents of a buffer in the memory.
In embodiments, the light detection circuit is adapted to generate a spike based off of the light signal.
In embodiments, a device with a microcontroller, memory, and transmitter is disclosed, comprising: a light detection circuit operationally able to receive a light signal from a light source, and operationally able to use the light signal to signal a power management circuit; the power management circuit operationally able to boot up the microcontroller; the microcontroller operationally able to scan the light signal for a message; and the transmitter operationally able to transmit at least a portion of the message.
In embodiments, the message is encoded in modified morse code wherein a DOT is a signal of one time duration, a DASH is a signal of 3 time durations, and END OF PART OF A LETTER is a signal of 2 time durations, an END OF LETTER is a signal of 5 time durations; and an END OF WORD is a signal of 9 time durations.
In embodiments, one time duration comprises a time => 10 ms.
In embodiments, one time duration comprises a time < 10 ms.
In embodiments, the message comprises a message portion followed by an authentication portion.
In embodiments, the device further comprises a filter, wherein the filter is a high pass filter.
In embodiments, a method is disclosed, whereby a device is externally activated, implemented by a device with one or more computers with memory, one or more processors, a light detection circuit, a high pass filter, and a transmitter comprising: receiving a light signal by the light detection circuit; the light detection circuit passing the light signal to a filter, the filter producing a series of spikes of at least a threshold intensity when the light signal is of sufficient intensity, the spikes a multiple of a base time apart; and powering the one or more processors upon a receipt of the spike.
In embodiments, the method further comprises: scanning the light signal to detect a spike; measuring a delay length between the spike and a subsequent spike; when the spike is detected, incrementing a spike counter; when the delay length exceeds an “END OF WORD” delay, clearing the spike counter; and when the spike counter reaches a wakeup threshold then interpreting subsequent spike-delay lengths as a transmitted message.
In embodiments, the transmitted message is two letters in modified morse code and a third authentication letter in modified morse code.
In embodiments, a programmable signaling light source with a processor and a memory is disclosed, comprising: a programmable light source with a processor and memory operationally able to flash light at a known intensity with a known delay between light flashes; an encoder operationally able to encode a message; and an executable instruction that upon execution by the processor performs the following actions: the encoder encoding a message comprising a message part and an authentication part, producing an encoded message; and the programmable light source sending the encoded message at least twice; wherein the encoded message is encoded in modified morse code.
In embodiments, the programmable light source sending the encoded message further comprises the programmable light source repeatedly sending the encoded message.
In embodiments, the modified morse code comprises a DOT being a light signal of one time duration, a DASH being a light signal of 3 time durations, END OF PART OF A LETTER being a light signal of one time duration, an END OF LETTER being a light signal of 5 time durations; and an END OF WORD being a light signal of 9 time durations.
In embodiments, further comprising a second transmitter, wherein the executable instruction that upon execution by the processor performs the further actions: after sending the encoded message, requesting a secret message using the second transmitter; upon receipt of the secret message, determining if the secret message is equivalent to the authentication part; and when the secret message is equivalent to the authentication part, the second transmitter sends a second message.
In embodiments, the authentication part is a letter randomly chosen by the light transmitting device.
In embodiments, the authentication part further comprises the letter chosen at random translated into modified morse code, and wherein the authentication part is followed by a modified morse code END OF WORD.
In embodiments, the light signal comprises an intensity of about 40 lumens.
In embodiments, the light signal comprises an intensity of greater than 40 lumens.
In embodiments, a method implemented by one or more computers with memory, one or more processors, a light source, and a transceiver is disclosed, comprising: translating a message into modified morse code; the message comprising a message part and an authentication part; and repeatedly transmitting the message; wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations.
In embodiments, further comprising: requesting a secret message; receiving a secret message using the transceiver; checking if the secret message is equivalent to the authentication part; and when the secret message is equivalent to the authentication part, sending a second message.
In embodiments, the message is encoded in modified morse code, wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations.
In embodiments, a DOT is one time duration, a DASH is three time durations, an end of part of a letter is one time duration, an END OF LETTER is 5 time durations; and an END OF WORD is 9 time durations.
In embodiments, the second message is sent by a second transmitting device.
In embodiments, the second transmitting device is a wireless transceiver.
In embodiments, the sent message comprises a signal of a time duration, and wherein one time duration comprises about 8 ms.
In embodiments, one time duration comprises < 8 ms.
In embodiments, the transmitted message is a word comprising two letters in modified morse code and a third authentication letter in modified morse code followed by an END OF WORD.
In embodiments, a non-transitory computer readable storage medium storing instructions for externally activating a quiescent device wherein the instructions when executed by a processor, cause the processor to perform steps is disclosed, the instructions including: translating a message into modified morse code; the message comprising a command part and an authentication part; repeatedly transmitting the message; wherein the modified morse code comprises signals, and the signals comprise a light signal followed by a number of time durations; requesting a secret message using a second transceiver; and receiving a secret message using the second transceiver; when the secret message is equivalent to the authentication part, resending the message.
In embodiments, the signals, comprise a light flash followed by a number of time durations prior to the next light flash.
In embodiments, the modified morse code comprises signals, and the signals comprise a rising or falling edge followed by a number of time durations. In embodiments, a DOT is one time duration, a DASH is three time durations, an END OF PART OF A LETTER is 1 time duration, an END OF LETTER is 5 time durations; and an END OF WORD is 9 time durations.
These, and other, aspects of the invention will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. The following description, while indicating various embodiments of the embodiments and numerous specific details thereof, is given by way of illustration and not of limitation. Many substitutions, modifications, additions or rearrangements may be made within the scope of the embodiments, and the embodiments includes all such substitutions, modifications, additions or rearrangements.
BRIEF DESCRIPTION OF THE FIGURES
Non-limiting and non-exhaustive embodiments of the present embodiments are described with reference to the following FIGURES, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
FIG. 1 discloses a computing system in conjunction with which described embodiments can be implemented.
FIG. 2 discloses methods that may be used to power a processor that may be used with embodiments disclosed herein.
FIG. 3 discloses methods that may be used to read a message that may be used with embodiments disclosed herein.
FIG. 4 discloses embodiments that may be used to detect a message start, as used in embodiments described herein.
FIG. 5 describes a current morse code chart.
FIG. 6 discloses a modified morse code chart, as used in embodiments described herein.
FIGS. 7A and 7B disclose exemplary messages that may be sent to the device 100.
FIG. 8 discloses exemplary system behavior when an out of band authentication message is sent, as used in embodiments described herein.
FIG. 9 discloses a digital signal generated by a light circuit without a high pass filter.
FIG. 10 discloses a digital signal generated by a light circuit with a high pass filter, as used in embodiments described herein.
FIG. 11 discloses a digital signal from the perspective of a device receiving the signal through a high pass filter, as used in embodiments described herein. FIG. 12 discloses a computing system in conjunction with which described embodiments can be implemented.
FIGS. 13 A and 13B disclose physical embodiments in which external activation of a quiescent device may be possible.
FIG. 14 discloses systems that may be used to read a message that may be used with embodiments disclosed herein.
FIG. 15 discloses methods that may be used to read a message that may be used with embodiments disclosed herein.
Corresponding reference characters indicate corresponding components throughout the several views of the drawings. Skilled artisans will appreciate that elements in the FIGURES are illustrated for simplicity 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 help to improve understanding of various embodiments. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments.
DETAILED DESCRIPTION
Disclosed below are representative embodiments of methods, computer-readable media, and systems having particular applicability to external activation of quiescent devices.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present embodiments. It will be apparent, however, to one having ordinary skill in the art that the specific detail need not be employed to practice the present embodiments. In other instances, well-known materials or methods have not been described in detail in order to avoid obscuring the present embodiments.
Reference throughout this specification to “one embodiment”, “an embodiment”, “one example” or “an example” means that a particular feature, structure or characteristic described in connection with the embodiment or example is included in at least one embodiment of the present embodiments. Thus, appearances of the phrases “in one embodiment”, “in an embodiment”, “one example” or “an example” in various places throughout this specification are not necessarily all referring to the same embodiment or example. Furthermore, the particular features, structures or characteristics may be combined in any suitable combinations and/or sub-combinations in one or more embodiments or examples.
Embodiments in accordance with the present embodiments may be implemented as an apparatus, method, or computer program product. Accordingly, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects. Furthermore, the present embodiments may take the form of a computer program product embodied in any tangible medium of expression having computer- usable program code embodied in the medium.
Any combination of one or more computer-usable or computer-readable media may be utilized. For example, a computer-readable medium 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 Light memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out operations of the present embodiments may be written in any combination of one or more programming languages.
Embodiments may be implemented in edge computing environments where the computing is done within a network which, in some implementations, may not be connected to an outside internet, although the edge computing environment may be connected with an internal internet. This internet may be wired, wireless, or a combination of both. Embodiments may also be implemented in cloud computing environments. A cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc.), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), Infrastructure as a Service (“laaS”), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.).
The flowchart 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 embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It will also be 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 general or special purpose hardware-based systems that perform the specified functions or acts, or combinations of general and special purpose hardware and computer instructions. These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
As used herein, the terms “comprises,” “comprising,” “includes,” “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 may include other elements not expressly listed or inherent to such process, article, or apparatus.
Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
Additionally, any examples or illustrations given herein are not to be regarded in any way as restrictions on, limits to, or express definitions of any term or terms with which they are utilized. Instead, these examples or illustrations are to be regarded as being described with respect to one particular embodiment and as being illustrative only. Those of ordinary skill in the art will appreciate that any term or terms with which these examples or illustrations are utilized will encompass other embodiments which may or may not be given therewith or elsewhere in the specification and all such embodiments are intended to be included within the scope of that term or terms. Language designating such non-limiting examples and illustrations includes, but is not limited to: “for example,” “for instance,” “e.g.,” and “in one embodiment.”
I. Overview
A quiescent device (in a state where it is currently not harvesting data or sending data, though it may be on schedule such that it will harvest data or send data at a known later time) is waken up by flashing an encoded message at it. The device may have never been turned on, such as when it is originally commissioned. The device is first woken up by a series of external light signals sent by an external device. These external light flashes make up a message in modified morse code that is sent to the device. The light signals trigger a power management circuit that boots a processor. The light signals are also sent through a process that transfers the light flash into a voltage spike upon sufficient brightness and sufficient speed of activation. When the device fully wakes up, the message is read. Upon request from another device, the sensor sends an authentication code that was provided in the message. This enables a single user action to wake the device up and set it up with networking credentials.
A device by default is, at times, turned off, or quiescent. That is, it is in a state where it is currently not harvesting data or sending data, though it may be on schedule such that it will harvest data or send data at a later time. When the device is to be turned on, recommissioned, etc., a programmable signaling light source may send it a repeating message comprising light flashes that are separated by different amounts of time. The signaling light may trigger power being applied to the device, and/or prompt an early wakeup. The message may be in modified morse code. When the device fully wakes up, the message is read. Upon request from the programmable light source to 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 a different timing for spaces between parts of letters, end of letters, and end of words .
II. System Embodiments for a Quiescent Device
With reference to FIG. 1, a device is disclosed that may be used, in whole, or in part, in any of the embodiments disclosed herein. The device 100 may be any sort of device that will be woken up from a sleep state. For example, the device 100 may be initially being installed, and so needs to be commissioned. The device 100 may be in a sleep state and may be wakened from it out of its normal schedule. The device 100 may be a low power device, such as a low power sensor. The device 100 may comprise a light detection circuit 105, and/or a filter 110. The filter 110 may be comprised of a frequency filter 112, which passes light of a certain frequency and rejects other frequencies. This frequency filter 112 may be a band-pass filter, a notch filter, a high pass filter, etc. In some embodiments, the light detection circuit 105 and the filter 110 may be integrated. The light detection circuit 105 may be adapted to receive a light signal from a light source. The light detection circuit 105 may produce voltage when photodiodes in the circuit are hit by a flash of light. The intensity of the voltage may rely on the intensity of the light that hits the photodiodes. For example, the frequency filter 112 may only allow voltage equivalent to a light of 45 lumens or higher through. The voltage produced by the light detection circuit 105 may be dependent upon specifics of the light detection circuit 105 and the frequency filter 112.
In some embodiments, the light may also be sent through an amplitude filter 114 that only passes light though that is of a certain amplitude (brightness). This filter may be a digital threshold. The pairing of the frequency filter 112 and the amplitude filter 114 may allow a light pulse through that has a fast-enough frequency with a sufficiently high light level. The frequency filter 112 and amplitude filter 114 may be a passive high pass filter coupled with a digital gate which turns the voltage signal into either a “1” or “0”. The “1” may be a very narrow pulse with a rising and trailing edge that appears to be a spike. This digital gate 114 may convert the analog signal output from the frequency filter 112 to a digital circuit. The digital circuit may then be received by a power management circuit 140.
In some embodiments, one purpose of the filter may be to guard against saturation of the photodiodes. The filter may also guard against varying light levels causing false positives and/or false negatives. For example, the filter 110 may filter out noise that does not meet a digital threshold (dependent on the voltage, which itself is dependent on the intensity of the light), and may filter out low frequency noise. Thus, ambient light in a space that the device is in may not trigger the device 100. Slowly rising light may not trigger the device, random flashes of light, such as from lamps being turned on may not produce a complete message so the device 100 is not turned on, etc. A timer 175 may keep track of the time between successive spikes. A spike (e.g., processed by the filter 110) followed by the time to the next spike may be referred to as a “pulse.” This pulse may be a time that indicates the time from one spike to the next. A power manager circuit 140 maybe operationally able to send power to an processor/MCU upon receipt of a spike that has passed through frequency filter 112 and been digitized by a digital gate, which may be a or a portion of an amplitude filter 114. The amplitude filter 114 may be part of the frequency filter 112, part of the power management circuit 140, or a separate component.
A transmitter 115 may allow the device 100 to send device data 120 to another entity, such as a personal computing device such as a cell phone, a controller that controls the device 100, a device 100, or a different entity. The transmitter may be wired, wireless, some combination, etc. The transmitter may be a bluetooth mesh, a 2-wire multidrop, a 3 -wire multidrop, some combination of the above, a different sort of transmitter altogether, and so on. The device data 120 may be stored in memory.
A solar panel and/or a battery 130 may be included. In some embodiments, the solar panel may be configured to also function as the light detection circuit 105. The memory 155 may comprise a spike counter 160, which holds an internal value of how many spikes have been received. The memory 155 may also comprise a wakeup threshold 165, which determines the number of spikes which should be received before a message is read. A buffer 170 may be part of the memory 155 that holds messages or parts of messages that have been sent to the device 100. A power manager circuit 140 may be powered in part by the voltage from the light detection circuit, the power manager circuit may use the voltage as a signal to connect a processor 145 to the battery 130. The processor may comprise high-efficiency signal processing, low power, low cost, or may have other features. The processor may be a microcontroller. The processor 145 may have executable instructions on board which can make certain decisions, such as when to send a message. These executable instructions 150 may be embedded within firmware, within software, within hardware or within some combination of two or three of them. The executable instructions 150 may also decode received messages, make calculations, and so on. The device may also have device components 135 which provide other services of the device 100.
III. Method Embodiments for a Quiescent Device
With reference to FIG. 2, a flowchart 200 discloses methods that may be used with embodiments disclosed herein. The operations of method 200 presented below are intended to be illustrative. In some embodiments, method 200 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 200 are illustrated in FIG. 2 and described below is not intended to be limiting. In some embodiments, method 200 may be implemented in one or more processing devices (e.g., a digital processor such as the processor 145), 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 may include one or more devices executing 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 may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method 200.
At operation 205, a flash light encoder sends a message to the device 100. The flash light encoder is a device that is able to flash messages of types described herein. At operation 210, photodiodes in the light detection circuit receives the light and generate voltage based on the intensity of the light received. When the light is of sufficient intensity, the light detection circuit 105 is triggered 210. In some embodiments, when the light detection circuit 105 is triggered, one or more transistors in the light detection circuit switch between a lower voltage and a higher voltage to produce a voltage spike. In some embodiments, the size of the spike is proportional to the intensity of the light. In some embodiments, the voltage size is the spike height. At operation 215, the spike is passed through a filter. In some embodiments, this is a band-pass filter that only allows voltages of a certain frequency or higher through. This filters out low frequency waves, such as the light in a room getting suddenly brighter when, for example, the sun appears from under a cloud. In some embodiments, after the band-pass filter, the voltage is passed through an amplitude filter 114. These two filters may be used so that only light of a certain intensity above a certain frequency will trigger the power manager to, e.g., prevent random light from starting up the processor 145. In some embodiments, the spike is then elongated to signal to the power manager chip 140 that it should enable power to the MCU 145. This elongation may satisfy a debouncer in the power manager circuit. At operation 220, the power manager 140 (in some instances elongated into a pulse with a leading and a trailing edge), is awakened by a spike that was able to make it through the filter 110. After being awakened, the power manager connects the battery 130 to the processor 145, powering it. At operation 220, the power manager chip 140 enables power to the MCU. At operation 225, the processor 145 boots a kernel, which may be a Zephyr kernel. The interrupt handlers are also registered to respond to interrupts on the MCU I/O lines. After this process is complete, an MCU interrupt is produced for each rising edge of the incoming signal spike and interrupt handler code is run. This process requires time to complete before a message may be accurately received. Thus, a wakeup sequence that lasts for some duration of time is ideally used to allow the MCU to receive power and for it to fully boot before attempting to receive its eventual message.
The signal has already gone through a filter 110. To avoid triggering a message decode on a false trigger, the spikes of the wakeup sequence are counted and the message is not decoded until a specified threshold of spikes has been received. If a delay between signal spikes that is greater than the modified morse code part of speech “END OF WORD” is received, then the spike counter is cleared. This is to ensure that the wakeup signal spikes are received in a timely manner that would suggest a deliberate wake up of the device, and as such, prevents a message decode being triggered by random noise, such as by turning on the lights in the room where the device is located, even if it is done multiple times. After the wakeup threshold is met, i.e., the spike counter reaches the wakeup threshold, the code running on the processor 145 waits for a delay the length of the “END OF WORD” part of speech before beginning to interpret subsequent spikes and delays as part of the transmitted message. After meeting the wakeup threshold and receiving a delay that translates, in part, to an “END OF WORD” part of speech, subsequent spikes and delays will be interpreted as part of the transmitted message until another delay “END OF WORD” part of speech is received.
The above ideas may be incorporated in many different algorithms. One that may be used is shown with reference to FIG. 3. FIG. 3 discloses a method of the processor 145 reading a message. With reference to FIG. 3, a flowchart 300 discloses methods that may be used with embodiments disclosed herein. The operations of method 300 presented below are intended to be illustrative. In some embodiments, method 300 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 300 are illustrated in FIG. 3 and described below is not intended to be limiting. In some embodiments, method 300 may be implemented in one or more processing devices (e.g., a digital processor such as the microcontroller 145), 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 may include one or more devices executing 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 to be specifically designed for execution of one or more of the operations of method 300.
The first time the message is transmitted, the entire message more than likely will not be received because of the delay it takes to power the processor 145 and start running the executable instructions 150. Therefore, the message may be sent multiple times to ensure that the processor 145 is fully booted up before the last message sent has begun to be received. On subsequent message transmits, the message will be eventually received, as the wakeup threshold will have been met by a previous transmission of one of the messages and the signal “END OF WORD” part of speech will have been received. In some embodiments, a spike counter holds the number of spikes that have been received. In embodiments, to ensure that the whole message can be received, the processor 145 may wait for a certain time (e.g., measured in a number of spike counters), to have have passed since the message began to be sent prior to decoding the message. In some embodiments, the processor may wait for a certain time measured in actual time. In some embodiments, the processor may measure the time to wait in a different way. In embodiments, the spike counter is reset when a delay after a spike is detected that is longer than the “END OF WORD” part of speech and a spike threshold has not yet been achieved. This threshold may be some number of signal spikes, such as 5, 9, etc., that is long enough to ensure that the processor has time to boot. At operation 305, the processor 145 is powered on. At operation 315, the processor boots up 310. While the processor is powering on and booting up, a message is continually sent until the processor is fully booted up, at which point the whole message can be read. At operation 315, the processor receives a spike. At operation 320, the processor measures the time between this spike and a previous spike received. If, at decision point 325, the measured time is a message start time, then at decision point 325 it is determined if a valid message start has been detected. If so, then at operation 330, the message is read. If the message start has not been detected, then back at operation 315, the processor again checks for another spike to be received.
With reference to FIG. 4, a flowchart 400 discloses methods that may be used with embodiments disclosed herein. This flowchart 400 describes embodiments that may be used to detect a message start. At operation 402, a device wakes up. At operation 405 a light signal is scanned. At decision point 410 it is determined if a spike is detected. If so, then at decision point 415 a spike counter is incremented. The spike count has a wake-up threshold 165. This threshold may be a non-zero integer that is set long enough to ensure that the processor 145 has sufficient time to boot up. Examples may 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 that follows the pulse is measured. If it is greater or equal to the length of a start message, then at operation point 425 the spike counter is cleared. In some embodiments, if the delay length exceeds the "END OF WORD” length in modified morse code (as discussed with reference to FIGS 5 and 6), then the spike counter is cleared. This ensures that if insufficient spikes have been detected but the message detected is at the end (meaning spikes have been missed), a message will not be read. At decision point 430, the value of the spike counter is checked. If it is at a wakeup threshold value 165, then at operation 435, the next pulse is fetched. At operation 440 the spike and delay is decoded. At decision point 445 it is determined if the delay is the same length as END OF WORD delay. If not, then at operation 435, a next spike and delay is fetched. If so (an END OF WORD delay has been detected), at operation 450, the message is determined to be finished. Once a message start has been discovered, subsequent signal pulses are interpreted as part of the transmitted message. The time between signal spikes is measured. This is discussed with reference to FIGS. 9, 10, and 11. The processor 145 decodes the delays between the spikes using the modified morse. In embodiments, the sequence of delays decoded into time units are buffered 170 in sequential order, in LIFO order, etc. In some embodiments the sequence of delays decoded into time units are partially stored in a buffer. In some embodiments, the buffer 170 is a designated location, in some embodiments, the buffer location is determined on the fly. In embodiments, single word messages are received. In some embodiments, when an “END OF WORD” delay is found, a decode of the buffer 170 (that the message may have been stored in) is performed and a message is produced. The produced message may be stored in the same buffer (e.g., 170) or a different buffer that is overwritten with subsequent messages received. This ensures that the last message received is the message stored. In some embodiments, other methods are used. For example, multiple words may be in a message. In such cases, an end of message signal part of speech may be defined. When the end of message signal part of speech is found, a decode of the parts of speech buffer 170 may be performed, with a message being produced. Multiple buffers (e.g., 170) may be used, etc.
Turning now to FIGS. 5 and 6, an embodiment of message coding and decoding is disclosed. FIG. 5 at 500 describes a current International Morse Code chart. International Morse Code specifies duration, some on rising edges and some on trailing edges. For example, the durations for a DOT and DASH are durations between a rising edge and a trailing edge. The “END OF PART OF A LETTER”, “END OF LETTER”, and “END OF WORD” parts of speech are durations for when the morse code signal is low, and therefore the duration between the falling edge and rising edge. For example, FIG. 9 at 905 shows a DOT, e.g., a rising edge followed by a duration of 1 time unit. An END OF PART OF A LETTER 910 is a trailing edge followed by one time unit.
FIG. 6 at 600 discloses a modified morse code chart, similarly, that describes the delays for each as used in embodiments described herein. In this modified morse code, there are only single signal spikes. As such, the term “delay” is used to describe the elapses between spikes where that duration also corresponds to a morse code part of speech. In normal morse code, a base time duration may be of one time unit. The DOT(l) 505 and DASH(3) 510 indicate that a delay for a DOT is lx the base unit, and the DASH is a delay that is 3x the base unit. In an exemplary embodiment, a delay of one time duration is around 8ms. There may be a threshold such that one time unit has some give on each side, hence the “around.” The give on each side may be dependent on other implementation details. The matrices shown in FIGS. 5 and 6 are the combinations of resulting on/off parts of speech. In traditional morse code, the signal on duration and the signal off duration are measured, with each used to decode the specific part of speech. Modified morse code disclosed herein only tracks the delays between rising edges. The rising edge may be defined by a spike. This creates combinations in traditional International Morse code that cannot be distinguished. For example, a DASH/END OF PART OF A LETTER 515 and DOT/END OF LETTER 520 that are both 4x the base unit. This is significant, as in an exemplary embodiment disclosed here, only an edge and a delay to the next edge is generated, rather than a leading edge, a trailing edge, and a delay. As such the duration of the signal on plus the length of the signal off is the information that is available. This is discussed with reference to FIGS. 10, 11, and 12. With traditional morse code, if a duration of 4x between signal spikes appeared, there is no way to know if the signal desired was a DASH/END OF PART OF A LETTER 515 or a DOT/END OF LETTER 520.
FIG. 6 at 600 discloses a modified morse code chart. To avoid combination collisions, the multiples of the base timing unit that are assigned to each part of speech are adjusted to be unique. As such, the END OF LETTER signal 605 equals 5 time durations. The END OF WORD signal 610 equals 9 time durations. These time durations are added to the DOT or DASH time duration to produce a unique time duration. As an example, the DOT (1) followed by an END OF PART OF A LETTER (1) 615 will take 2X the base unit, a DASH (3) followed by End of Letter (5) will take 8X the base unit 620, a DASH (3) followed by an END OF W0RD(9) 625 will take 12x the base unit, etc.
FIGS. 7A at 700A and 7B at 700B disclose creation of messages using modified morse code in greater detail. Different letter combinations specify different commands. In some embodiments, the message comprises a series of letters 705 A that specify the message followed by a series of letters or other characters that are used for authentication 710A. The message will be followed by an END OF WORD 610, when the message is a single word. In some exemplary embodiments a message will comprise two message letters 715 A, 720A, followed by an authentication character 725 A unrelated to the message (and possibly generated randomly by the signaling device) that will be passed back to the signaling device to be used, e.g., for network authentication.
In some embodiments, these messages are generated by a processor/MCU in a light encoder as strings of letters and are then converted to modified morse code parts of speech. In some embodiments, the messages are created directly as modified morse code parts of speech. The modified morse code parts of speech may then be signaled to the device 100 using a light source. In some instances a light on a device that allows the specific on/off timing of the light to be programmed or otherwise specified is used. In some embodiments, a personal computing device, such as a phone with a flashlight is used. As previously discussed, a message may be originally output multiple times. For example, a message may be output for two seconds to be sure that the device 100 may boot up and that the wakeup threshold 165 (a specified number of pulses) can be met to avoid triggering a message decode on a false trigger. The message may be used as both a preamble to turn on the device 100 and as the actual message that instructs the device 100 in its next action. In some embodiments, the number of times a message is output depends on the length of the message.
FIG. 7A at 700 shows the international morse code for a message “PRE”. This message comprises a message part — “PR” 705 (which may stand for “provision”), and an authentication part chosen at random — “E” 710. FIG. 7B discloses the message translated into a form that may be sent to wake up a device. The P signal 735B in international morse code is • - • 715A. More completely, this works out to spike 737B followed by a delay equal to DOT (1 time period) + Part of Word (1 time period) to produce 2 time periods 705B, spike 739B, DASH (three time periods) + Part of Word (1 time period) to produce 4 time periods 710B, spike 742B, DASH (three time periods) + Part of Word (1 time period) to produce 4 time periods 715B, spike, DOT (1 time period + END OF LETTER (5 time periods) to produce 6 time periods 720B. The R 720A is a DOT DASH DOT, which corresponds to spike 739B, DOT (1 time period + END OF LETTER (5 time periods) to produce 6 time periods 720B. The R signal 740B in international morse code is DOT DASH DOT 720. The signal that represents the modified morse code letter R 740B is the set of spikes and delays 725B corresponding to a spike followed by a delay of 2 time periods (DOT followed by an End of Part of Letter), a spike followed by a delay of 4 time periods (DASH followed by an End of Part of Letter), and a spike followed by a delay of 6 time durations (DOT followed by an END OF LETTER). The last letter in the word, E 725A is a DOT (1 time duration), but because it is the last letter in the word, it is followed by an END OF WORD signal 610, which corresponds to (1+9) 10 time durations. This results in a spike 742B followed by a delay of 10 time periods 730B, 745B. With the receipt of the END OF WORD, in some embodiments, this message is known to be finished. Some messages may be longer than a single word, in which case, the modified morse code table may be extended.
In some embodiments, these messages are generated by a light encoder 205 as strings and are then converted to morse code parts of speech. In some embodiments, the messages are created directly as morse code parts of speech. The morse code parts of speech may then be signaled to the device 100 using a light source. In some instances a light on a device that allows the specific on/off timing of the light to be programmed or otherwise specified is used. In some embodiments, a personal computing device, such as a phone with a flashlight is used. As previously discussed, a message may be originally output multiple times. For example, a message may be output for two seconds to be sure that the device 100 may boot up and that the wakeup threshold 165 (a specified number of pulses) can be met to avoid triggering a message decode on a false trigger. The message is used as both a preamble to turn on the device 100 and as the actual message that instructs the device 100 in its next action. In some embodiments, the number of times a message is output depends on the length of the message.
The message itself instructs the sensor to perform some action. Some possible states are: Wakeup - The light source is used to pull the device out of a super-low-power state (shipping-sleep); Communication - The sequence/pattern emitted by the light source is used to set the state that the device wakes up in. i.e. provisioning mode, device firmware upgrade mode, diagnostics mode, etc.; Out-of-Band (OOB) Security - the sensor and the signaling device may use the flight as an additional communication medium to obfuscate the network onboarding process even further. This may be sent during the network setup in provisioning, etc.
FIG. 8 at 800 discloses exemplary system behavior when an out of band authentication message is sent. At operation 805, a request is received to provide an out of band authentication message. This message may have originally been sent by a flash light encoder 205. At operation 810, an authentication message may be transmitted, e.g., using the transmitter 115. In some implementations this authentication message may be the last letter sent to the device, which is not part of the message portion. In some embodiments, the authentication message 710A may be a message generated by the device 100, or determined by the device 100 using an algorithm. In some embodiments, the authentication message may be multiple characters long. In some embodiments, the authentication message may be stored in a buffer 170.
The authentication portion of a memory, such as the last character sent, may be stored in a buffer 170 stored in memory 155. Transmitting an authentication code may comprise transmitting the contents of an authentication buffer stored in memory 155 which holds the authentication portion of a message. When the authentication code is a single letter, such as E 725 A, the E 725 A may be stored in a buffer 170 and then sent when an authentication request is received. In some embodiments, a character as decoded may be stored in a buffer 170 that holds a single character; in such a system, the last letter in the message will be the one in the buffer that is then sent as the authentication code in response to the authentication request. In some embodiments, a buffer 170 may hold and send multiple characters. In some embodiments, a buffer may be used to hold the time between signals, such that an entire message may be stored prior to decoding.
FIG. 9 at 900 discloses a digital signal generated by a light circuit without a high pass filter. FIG. 9 at 900 specifically discloses a modified international morse code “A”. The pulses in FIG. 9, 10, and 11 are measured in ms 930, with a standard time duration of 10 ms. “A" is a DOT DASH, which is a pulse 905 (rising and training edge) of one time duration followed by an END OF PART OF LETTER 910 (a signal low of one time duration) followed by a DASH 915 of 3 time durations, followed by an END OF PART OF WORD 920 of 9 time durations. The next rising signal appears at 925. The signal that produces the A in morse code is not shown, but it may take many forms, as long as it is of sufficient amplitude. For example, it may appear similar to sine waves with pauses between them, a square digital signal, etc. If the signal is analog, it may then may be passed into a frequency filter 112, such as a high pass filter, digitized by the light detection circuit 105. The signal that is output from the frequency filter 112 may then be converted from an analog signal to a digital signal by, e.g., an amplitude filter 114, an analog to digital converter, etc.
FIG. 10 at 1000 discloses a digital signal generated by a light circuit with a high pass filter, as used in embodiments described herein. Only the rising edge of each pulse makes it through the filter 110. As such, the time between rising edges is measured. This gives spike 1005, which corresponds to the rising edge of the DOT; spike 1010, which corresponds to the rising edge of the DASH, and spike 1015, which corresponds to the next rising edge received. As shown with reference to FIGS. 5 and 6, the morse parts of speech base unit multiples have been adjusted such that each combination of morse high and morse low will produce a unique time duration.
FIG. 11 at 1100 discloses a digital signal from the perspective of a device receiving the signal through a high pass filter, as used in embodiments described herein. Two time measurements are decoded, the time from the rising edge of the DOT (transformed into a spike) to the rising edge of the DASH (transformed into a spike) 1105, which is 20 ms long, and time from the rising edge of the DASH (transformed into a spike) to the next rising edge (transformed into a spike) 1110, which is 80 ms long. Using the table 600, a DOT followed by an end of a part of letter is 2 base units long 615, and the base unit is 10 ms, so the time 1105 indicates a morse signal DOT followed by a morse signal END OF PART OF LETTER. The time 1110 measured between the rising edges (transformed into spikes) 1010 and 1015 is 8 base units long (10 ms * 8), and so is a morse signal DASH followed by an END OF LETTER (8 units long). The letter is DOT DASH, which encodes to an “A”.
II. System Embodiments for an External Device to Wake a Quiescent Device
FIG. 12 illustrates a generalized example of a suitable programmable signaling light source 1200 in which described embodiments may be implemented. The computing environment 1200 is not intended to suggest any limitation as to scope of use or functionality of the disclosure, as the present disclosure may be implemented in diverse general -purpose or special-purpose computing environments.
With reference to FIG. 12, the computing environment 1200 includes at least one processor, This processor may come in many forms, such as core processing elements 1210. The core processing element 1210 may comprise a central processing unit 1230, and memory 1220. The central processing unit 1230 executes computer-executable instructions and may be a real or a virtual processor. The memory 1220 may 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 implementing the described methods of externally activating a quiescent device. Specialized processors may also be included.
A computing environment may have additional features. For example, the programmable signaling light source environment 1200 includes storage 1240 and communication connections 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). Communication connections 1270 may include one or more wireless transceivers for performing wireless communication and/or one or more communication ports for performing wired communication. In embodiments, communication device 1270 may be configured to send messages through a programmable light 1252.
Input device(s) 1250 may be a device that allows a user or another device to communicate with the programmable signaling light source 1200. These may comprise a programmable light source 1252 such as a flashlight, and a camera flash (a strobe light that can connect to a camera or a computing device). Other devices that may be included comprise a microphone, a mouse, a pen, a trackball, a touchscreen 1256, or another device that provides input to the computing environment associated with the programmable light source 1200. For audio, the input device(s) 1250 may be a sound card or similar device that accepts audio input and produces 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 touchscreen 1256, a display, a keyboard, a printer, a speaker, a CD- writer, a computer readable storage medium 1265, or another device that provides output from the programmable signaling 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 activities of the components of the computing environment.
The storage 1240 may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, flash drives, or any other medium which can be used to store information and which can be accessed within the computing environment 1200. The storage 1240 stores instructions for the software, such as quiescent device external activation software 1285 to implement methods of sending messages comprising light flashes, including wakeup messages, to a different device.
The communication connection(s) 1270 enable communication over a communication medium to another computing entity. The communication medium conveys information such as computer-executable instructions, compressed graphics information, or other data in a modulated data signal. Communication connections 1270 may comprise input/output devices 1250, and input/output devices that allows a client device to communicate with another device over network 1260. A communication device may include one or more wireless transceivers for performing wireless communication and/or one or more communication ports for performing wired communication. These connections may include network connections, which may be a wired or wireless network such as the Internet, an intranet, a LAN, a WAN, a cellular network or another type of network. It will be understood that network 1260 may be a combination of multiple different kinds of wired or wireless networks. The network 1260 may be a distributed network, with multiple computers, which might be building controllers acting in tandem. A computing connection 1270 may be a portable communications device such as a wireless handheld device, a cell phone device, and so on.
Computer-readable media are any available non-transient tangible media that can be accessed within a computing environment. By way of example, and not limitation, with the computing environment, computer-readable media include memory 1220, storage 1240, communication media, and combinations of any of the above. Computer readable storage media 1265 which may be used to store computer readable media comprises instructions 1275 and data 1280. Data Sources may be computing devices, such as general hardware platform servers configured to receive and transmit information over the communications connections 1270. Although the operations of some of the disclosed methods are described in a particular, sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially can be rearranged or performed concurrently. Moreover, for the sake of simplicity, the attached figures may not show the 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 like “determine,” “build,” and “identify” to describe the disclosed technology. These terms are high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms will vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art.
Further, data produced from any of the disclosed methods can be created, updated, or stored on tangible computer-readable media (e.g., tangible computer-readable media, such as one or more CDs, volatile memory components (such as DRAM or SRAM), or nonvolatile memory components (such as hard drives) using a variety of different data structures or formats. Such data can be created or updated at a local computer or over a network (e.g., by a server computer), or stored and accessed in a cloud computing environment.
With reference to FIGS. 13 A and 13B, two embodiments of devices that can externally activate a quiescent device are disclosed. At 1300A a cell phone embodiment 1305A is disclosed that includes a flashlight 1310A that can be programmed to send messages. These messages may be sent to a quiescent device 1320A. The device 130013 comprises a computer 1305B connected 1310B to a signal element 1315B. The computer may program the signal element 1315B (which may be a camera, a flashlight, or another type of light that can be programmed) to signal appropriately for message creation. The signals here may also be directed to a quiescent device, e.g. 1320A. A light connected to a larger device may allow a device in an inconvenient location to be signaled.
FIG. 14 discloses a system 1400 that may be used to activate a quiescent device using a programable light source 1405. The signaling light may trigger power being applied to the quiescent device, and/or prompt an early wakeup of the device. A quiescent device may be a device that is sleeping on a schedule, but may be activated for a task off schedule, that is factory turned off, etc. This programmable light source 1405 may be operationally able to flash a light signal at a known intensity for a known time. The signals may have a certain amplitude. For example, the signals may be at least 40 lumens, about 40 lumens, about 45 lumens, about 60 lumens, etc. The signal may be such that it is greater than flashes that appear lambently. When a quiescent device is in a naturally dark area, a dimmer light signal may be used. Similarly, a naturally bright area may use a signal of greater amplitude. The signals may last for multiples of a time unit, may be separated by multiples of a time unit, and so on. This is discussed in greater detail with reference to FIG 11 and the surrounding text. A transceiver 1410 may be able to transmit information wirelessly, wired, etc., to, at least the quiescent device, once wakened. An encoder 1415 may encode a message in a code such that the light source 305 can signal it to the quiescent device. The code may be modified morse code, or a different code that can be signaled. The system may also have executable instructions 1420 that upon execution by a processor associated with the system, e.g., 1210, 1230, etc., perform actions of various types. These actions will be discussed with reference to FIG. 15.
III. Method Embodiments for an External Device to Wake a Quiescent Device
With reference to FIG. 15, a flowchart 1500 discloses methods that may be used with embodiments disclosed herein. The operations of method 1500 presented below are intended to be illustrative. In some embodiments, method 1500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method 1500 are illustrated in FIG. 15 and described below is not intended to be limiting. In some embodiments, method 1500 may be implemented in one or more processing devices (e.g., a digital processor such as the 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 may include one or more devices executing 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 may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of method 1500.
At operation 1505, a message is determined. This message may be a certain number of alphabetic characters. For example, in some embodiments, the message may be two characters. As an example, the letters “PR” may be code for “the quiescent device should turn on and start provisioning,” There may be many messages, the messages may comprise more or fewer letters, may comprise multiple words, etc. At operation 1510, an authentication part of the message may be determined. When the signaling light source sends a message, in may include an authentication message that will be sent back from the device to ensure that the correct device has received the message, and understands the message. In some embodiments, the authentication part is a symbol chosen at random. This symbol may be a letter, a number, an ideogram, an emoji, a unicode character, etc. In some embodiments, the authentication part is more than symbol. In some embodiments, the authentication part may be determined by a known algorithm which, when sent, may be deciphered by the quiescent device. At operation 415, the message and authentication type are encoded. This encoding may be in modified morse code, or a different type of code. More information on message encoding may be found with reference to FIGS. 9-11 and the surrounding text.
At operation 1520, the encoded message is sent. This encoded message comprises spikes of light and pauses between the spikes. The spikes are sent, e.g., using the programmable light 1552. This light should be a certain amplitude; what amplitude is necessary depends on the parameters of the quiescent device to be awakened. The shape of the light spike is not so important, as long as the time between the first rising edge and the next rising edge can be accurately flashed, as the quiescent device 1320A in some embodiments, reads the rising edges. In some embodiments, the message may be in morse code modified as disclosed herein. At operation 1525, the encoded message is sent again. The message that is to be sent also is used as the wakeup signal. Therefore, the message must be sent enough times that the quiescent device 1520A should be initially wakened by some combination of time flashes which will then cause the quiescent device 1320A to boot up. The encoded message may be sent sufficient times to allow for the boot up time, such that a full message is received after the boot up process has finished. The number of times a message should be sent 1525 may depend on the time it takes the quiescent device to boot up. After the encoded message has been sent for sufficient times, at operation 1530, a two factor authentication method may be used. This may entail requesting an out of band message from the quiescent device, which may be expected to be the authentication part of the original message. Even though the message was originally sent using a programmable light device 1252, this out of band message may be requested using a network connection 1260, such as a wireless transmitter, or a different method. At operation 1535, a secret message is received. This may be received from the network connection, which may be a transceiver, a wireless transmitter, or using a different method. At decision point 1540, this secret message is authenticated. This may be performed by comparing the secret message received to the authentication part initially sent. If the authentication portion is equivalent to the secret message, then at operation 1550, a next message is sent. This next message may be sent using a transceiver, a wireless transmitter, or a different network connection. If the wrong authentication part is sent, no next message is sent, etc., then at operation 1545, the quiescent device wakeup method is stopped.
V. Example Computer-Readable Medium
With reference to FIG. 12, some embodiments include a configured computer- readable non-transitory storage medium 1265. Non-transitory refers to computer-readable media (CRM) that stores data for short periods or in the presence of power such as a memory device or Random Access Memory (RAM). Non-transitory medium 1265 may include disks (magnetic, optical, or otherwise), RAM, EEPROMS or other ROMs, and/or other configurable memory, including computer-readable media (not directed to a manufactured transient phenomenon, such as an electrical, optical, or acoustical signal). The storage medium which is configured may be a removable storage medium 1265 such as a CD, DVD, or flash memory. A program on the storage medium may be run on a processor (e.g., 1210, 1212, 1215, etc.) which is coupled to a memory. Such a memory may be a general-purpose memory (which may be primary, such as RAM, ROM, CMOS, or flash; or may be secondary, such as a CD, a hard drive, an optical disk, or a removable flash drive), can be configured into an embodiment using the computing environment 1200 in the form of data 1280 and instructions 1275, read from a source, such as an output device 1255, to form a configured medium with data and instructions which upon execution by a processor perform a method for computing traveling comfort information. The configured medium 1265 is capable of causing a computer system to perform actions as related herein.
Some embodiments provide or utilize a computer-readable storage medium 1265 configured with software 1285 which upon execution by at least a central processing unit 1230 performs methods and systems described herein.
In view of the many possible embodiments to which the principles of the technology may be applied, it should be recognized that the illustrated embodiments are examples and should not be taken as a limitation on the scope of the invention. For instance, various components of systems and tools described herein may be combined in function and use. We, therefore, claim as our invention all subject matter that comes within the scope and spirit of these claims.

Claims

1. A device with a microcontroller, memory, and transmitter comprising: a light detection circuit adapted to receive a light signal from a light source; a high pass filter coupled to the light detection circuit that when receiving light of at least a given intensity produces a spike; a power manager chip coupled to the light detection circuit that upon receipt of the spike enables power to the microcontroller; a timer that measures a time between spikes; and executable instructions in memory that upon execution by the microcontroller perform the following actions: detect a spike; when a spike is found, increment a spike counter; use the timer to measure time between spikes; when the time between spikes exceeds an END OF WORD length, clear the spike counter; and when the spike counter reaches a wakeup threshold then interpret subsequent spikes and delay lengths as a transmitted message.
2. The device of claim 1, further comprising the wakeup threshold being of sufficient length to allow the microcontroller to boot.
3. The device of claim 2, wherein the transmitted message is in modified morse code.
4. The device of claim 3, wherein in the modified morse code a DOT is a delay of 1 time duration, a DASH is a delay of 3 time durations, and 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.
5. The device of claim 4, wherein the transmitted message comprises a message portion and an authentication portion.
6. The device of claim 5, wherein the delay of one time duration is about 8 ms.
7. The device of claim 6, wherein the light detection circuit adapted to receive a light signal from a light source is adapted to receive multiple spikes separated in time as the light signal.
8. The device of claim 7, wherein the transmitted message is at least partially stored in a buffer.
9. The device of claim 8, wherein the light detection circuit adapted to receive a light signal from a light source is adapted to receive multiple messages as the light signal.
26
10. The device of claim 9, wherein the executable instructions that upon execution by the microcontroller further perform the following actions: receiving an out-of-bound authentication request; and transmitting contents of the buffer in the memory.
11. The device of claim 1, wherein the light detection circuit is adapted to generate a spike based off of the light signal.
12. A device with a microcontroller, memory, and transmitter comprising: a light detection circuit operationally able to receive a light signal from a light source, and operationally able to use the light signal to signal a power management circuit; the power management circuit operationally able to boot up the microcontroller; the microcontroller operationally able to scan the light signal for a message; and the transmitter operationally able to transmit at least a portion of the message.
13. The device of claim 12, wherein the message is encoded in modified morse code; wherein a DOT is a signal of one time duration, a DASH is a signal of 3 time durations, an END OF LETTER is a signal of 5 time durations; and an END OF WORD is a signal of 9 time durations.
14. The device of claim 13, wherein one time duration comprises a time of about 8 ms.
15. The device of claim 14, wherein one time duration comprises a time of about 10 ms.
16. The device of claim 13, wherein the message comprises a message portion followed by an authentication portion.
17. The device of claim 16, further comprising a filter, wherein the filter is a high pass filter.
18. A method implemented by a device with one or more computers with memory, one or more processors, a light detection circuit, a high pass filter, and a transmitter comprising: receiving a light signal by the light detection circuit; the light detection circuit passing the light signal to a filter, the filter producing a series of spikes of at least a threshold intensity when the light signal is of sufficient intensity, the spikes a multiple of a base time apart; and powering the one or more processors upon a receipt of one of the series of spikes.
19. The method of claim 18, further comprising: detecting a spike; measuring a delay length between the spike and a subsequent spike; when the spike is detected, incrementing a spike counter; when the delay length exceeds an END OF WORD delay, clearing the spike counter; and when the spike counter reaches a wakeup threshold then interpreting subsequent spike-delay lengths as a transmitted message.
20. The method of claim 19, wherein the transmitted message is two letters in modified morse code and a third authentication letter in modified morse code.
PCT/US2022/042915 2021-09-08 2022-09-08 External activation of quiescent device WO2023039070A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22868061.7A EP4399699A2 (en) 2021-09-08 2022-09-08 External activation of quiescent device
CN202280066301.7A CN118043868A (en) 2021-09-08 2022-09-08 External activation of a static device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/469,760 2021-09-08
US17/469,671 2021-09-08
US17/469,760 US11830383B2 (en) 2021-09-08 2021-09-08 External activating of quiescent device
US17/469,671 US20230071312A1 (en) 2021-09-08 2021-09-08 External Activation of Quiescent Device

Publications (2)

Publication Number Publication Date
WO2023039070A2 true WO2023039070A2 (en) 2023-03-16
WO2023039070A3 WO2023039070A3 (en) 2023-04-13

Family

ID=85507012

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/042915 WO2023039070A2 (en) 2021-09-08 2022-09-08 External activation of quiescent device

Country Status (2)

Country Link
EP (1) EP4399699A2 (en)
WO (1) WO2023039070A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230071312A1 (en) * 2021-09-08 2023-03-09 PassiveLogic, Inc. External Activation of Quiescent Device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7551057B2 (en) * 2005-11-04 2009-06-23 Lear Corporation Remote entry system with increased transmit power and reduced quiescent current
US8477010B2 (en) * 2008-01-25 2013-07-02 Somfy Sas Method for communicating information by infrared rays between a transmitter and a receiver in a home-automation network
US8327048B2 (en) * 2009-01-07 2012-12-04 Sony Computer Entertainment Inc. Using USB suspend/resume to communicate information through a USB device
US10108511B2 (en) * 2015-06-15 2018-10-23 Qualcomm Incorporated Test for 50 nanosecond spike filter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230071312A1 (en) * 2021-09-08 2023-03-09 PassiveLogic, Inc. External Activation of Quiescent Device

Also Published As

Publication number Publication date
EP4399699A2 (en) 2024-07-17
WO2023039070A3 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
US20230071312A1 (en) External Activation of Quiescent Device
CN118043868A (en) External activation of a static device
US20220171451A1 (en) Techniques for adjusting computing device sleep states
US9852731B2 (en) Mechanism and apparatus for seamless voice wake and speaker verification
US11119723B2 (en) User-adaptive volume selection
EP3754652B1 (en) Method and apparatus for adjusting detection threshold for activating voice assistant function
US11809535B2 (en) Systems and methods for multi-modal user device authentication
Parameshachari et al. A study on smart home control system through speech
CN104580699B (en) Acoustic control intelligent terminal method and device when a kind of standby
EP2829087B1 (en) Controlling applications in a mobile device based on the environmental context
BR112017021673B1 (en) VOICE CONTROL METHOD, COMPUTER READABLE NON-TRANSITORY MEDIUM AND TERMINAL
US20140334645A1 (en) Method and apparatus for controlling voice activation
CN111566730A (en) Voice command processing in low power devices
RU2015147185A (en) EQUIPMENT AND METHODS FOR ACTIVATED LIGHTING DEVICES
BR112015031706B1 (en) Method for discriminatingly providing audible responses to a voice command received by a user device that supports voice activation and user device
US9582983B2 (en) Low power voice trigger for finding mobile devices
CN102929390A (en) Method and device for starting application program in stand-by state
CN109844857B (en) Portable audio device with voice capability
CN106775569B (en) Device position prompting system and method
KR20160005050A (en) Adaptive audio frame processing for keyword detection
WO2023039070A2 (en) External activation of quiescent device
CN104270858B (en) Method and device for intelligently controlling lighting system by using sound
CN103634457A (en) Method for controlling alarm clock bell by using sound and electronic apparatus
WO2020119810A1 (en) Electronic device control system and method
WO2022262534A1 (en) Control method, apparatus and device for household appliance

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22868061

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2024515375

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 202280066301.7

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2022868061

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022868061

Country of ref document: EP

Effective date: 20240408

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22868061

Country of ref document: EP

Kind code of ref document: A2