This invention relates to biotechnology for medical and health applications, including photobiomodulation, phototherapy, and photobiomodulation therapy (PBT).
Biophotonics is the biomedical field relating to the electronic control of photons, i.e. light, and its interaction with living cells and tissue. Biophotonics includes surgery, imaging, biometrics, disease detection, and photobiomodulation (PBM). Photobiomodulation therapy (PBT), also referred to as phototherapy, is the controlled application of light photons, typically infrared, visible and ultraviolet light to invoke photobiomodulation for medically therapeutic purposes including combating injury, disease, pain and immune system distress. More specifically, PBT involves subjecting cells and tissue undergoing treatment to a stream of photons of specific wavelengths of light either continuously or in repeated discontinuous pulses to control the energy transfer and absorption behavior of living cells and tissue.
While there are many potential mechanisms, as shown in
Another aspect of photobiological process 22 is that the cytochrome-c oxidase molecule 24 is a scavenger for a nitric oxide (NO) molecule 27, an important signaling molecule in neuron communication and angiogenesis, the growth of new arteries and capillaries. Illumination of cytochrome-c oxidase molecule 24 in cells treated during PBT releases NO molecule 27 in the vicinity of injured or infected tissue, increasing blood flow and oxygen delivery to the treated tissue, accelerating healing, tissue repair, and immune response.
To perform PBT and stimulate the cytochrome-c oxidase molecule 24 to absorb energy from photon 23, the intervening tissue between the light source and the tissue absorbing light cannot block or absorb the light. As illustrated in
Aside from absorption by fats and lipids (curve 43), EMR comprising photons 23 of wavelengths λ within in transparent optical window 45, is directly absorbed by cytochrome-c oxidase (curves 41aa, 41b). Specifically, cytochrome-c oxidase molecule 24 absorbs the infrared portion of the spectrum represented by curve 41b unimpeded by water or blood. A secondary absorption tail for cytochrome-c oxidase (curve 41a), illuminated by light in the red portion of the visible spectrum, is partially blocked by the absorption properties of deoxygenated hemoglobin (curve 44b), limiting any photobiological response for deep tissue but still activated in epithelial tissue and cells.
Present Photonic Delivery Systems
In order to achieve maximum energy coupling into tissue during PBT, it is important to devise a consistent delivery system for illuminating tissue with photons consistently and uniformly. While early attempts used filtered lamps, lamps are extremely hot and uncomfortable for patients, potentially can burn patients and doctors, and are extremely difficult in maintaining uniform illumination during a treatment of extended durations. Lamps also suffer short lifetimes, and if constructed using rarified gasses, can also be expensive to replace regularly. Because of the filters, the lamps must be run very hot to achieve the required photon flux to achieve an efficient therapy in reasonable treatment durations. Unfiltered lamps, like the sun, actually deliver too broad of a spectrum and limit the efficacy of the photons by simultaneously stimulating both beneficial and unwanted chemical reactions, some involving harmful rays, especially in the ultraviolet portion of the electromagnetic spectrum. Extended periods of exposure to ultraviolet light are also known to increase the risk for contracting cancer because UV light damages DNA. In the infrared spectrum, expended exposure to far infrared electromagnetic radiation and heat can cause drying of skin and cause premature aging by destroying elastin and collagen.
As an alternative, lasers have been and continue to be employed to perform PBT, generally referred to by the term LLLT an acronym for low-level laser therapy. Unlike lamps, lasers risk burning a patient, not through heat, but rather by exposing tissue to intense concentrated optical power, also known as ablation. To prevent that problem, special care must be taken that the laser light is limited in its power output and that unduly high current producing dangerous light levels cannot accidentally occur. A second, more practical problem arises from a laser's small “spot size”, the illuminated area. Because a laser illuminates a small focused area, it is difficult to treat large organs, muscles, or tissue and it is much easier for an overpower condition to arise.
Another problem with laser light is that its “coherence,” which prevents a laser beam from spreading out, makes it more difficult to cover large areas during treatment. Studies reveal there is no inherent extra benefit from PBT using coherent light. For one thing, bacterial, plant and animal life evolved on and naturally absorbs scattered, not coherent light because coherent light does not occur naturally from any known light sources. Secondly, the first two layers of epithelial tissue already destroy any optical coherence, so the coherent character of an incident laser beam is quickly lost as it is absorbed in human or animal tissue. Laser manufacturers have promoted the premise that optical interference patterns of laser light called ‘speckles’ arising from backscattering enhance therapeutic efficacy, but no scientific evidence has been provided to support such marketing-motivated assertions.
Moreover, the optical spectrum of a laser is too narrow to fully excite all the beneficial chemical and molecular transitions needed for to achieve high efficacy PBT. The limited spectrum of a laser, typically a range of 1 nm around the laser's center wavelength value, makes it difficult to properly excite all the beneficial chemical reactions needed in PBT. It is difficult to cover a range of frequencies with a narrow bandwidth optical source. For example, referring again to
So just as sunlight has an excessively broad spectrum of wavelengths, photobiologically exciting many competing chemical reactions with many EMR wavelengths, some even harmful, the wavelength spectrum of laser light is too narrow and does not stimulate enough chemical reactions to reach full efficacy in phototherapeutic treatment. This subject is discussed in greater detail in a related application entitled “Phototherapy System And Process Including Dynamic LED Driver With Programmable Waveform”, by Williams et al. (U.S. application Ser. No. 14/073,371), now U.S. Pat. No. 9,877,361, issued Jan. 23, 2018, which is incorporated herein by reference.
To deliver PBT by exciting the entire range of wavelengths in the transparent optical window 45, i.e. the full width from approximately 650 nm to 950 nm, even if four different wavelength light sources are employed to span the range, each light source would require a bandwidth almost 80 nm wide. This is more than an order of magnitude wider than the bandwidth of a laser light source. This range is simply too wide for lasers to cover in a practical manner. Today, LEDs are commercially available for emitting a wide range of light spectra from the deep infrared through the ultraviolet portion of the electromagnetic spectrum. With bandwidths of ±30 nm to ±40 nm, it is much easier to cover the desired spectrum with center frequencies located in the red, the long red, the short near infrared (NIR) and the mid NIR portions of the spectrum, e.g. 670 nm, 750 nm, 810 nm, and 880 nm.
Photobiomodulation therapy (PBT) is sharply distinguishable from photo-optical therapy. As shown in
Several rudimentary tests highlight the many and vast differences between PBT and photo-optical therapy. For one, photo-optical therapy only works on the eyes, whereas PBT affects any cell including internal organs and brain cells. In photo-optical therapy, light is directed to light perceiving cells (photo-transduction), which in turn results in the generation of electrical signals that are carried to the brain, whereas PBT stimulates chemical transformations, ionic, electron and thermal transport within treated cells and tissue, with no need for signal transduction to the brain. The effect is local and systemic without the assistance of the brain. For example, blind patients respond to PBT but not to photo-optical therapy. Another distinction between photo-optical therapy and PBT is illustrated in
As an etymological side note, ambiguity in nomenclature prompted researchers to change original references using the catholic term ‘phototherapy’ or PT into the more modern currently accepted term ‘photobiomodulation therapy’ or PBT. The term phototherapy was used generically to mean any therapeutic application of light including (i) photo-optical therapy involving visual stimulation, (ii) photobiomodulation therapy or PBT involving cellular modulation, and (iii) photodynamic therapy or PDT activating an injected chemical or applied ointment with light to encourage a chemical reaction. A similarly broad term ‘photochemistry’, chemical reactions stimulated by light, also ambiguously refers to any and all of the foregoing treatments. So, while photochemistry and phototherapy have broad meaning today, PBT, PDT, and photo-optical therapy have specific non-overlapping interpretations.
As another source of confusion, the term LLLT was originally intended to mean ‘low level laser therapy’ to distinguish lasers operated at low power levels (sometimes called ‘cold’ lasers in the popular press) from lasers operating at high power for tissue ablation and surgery. With the advent of LED based therapies, some authors conflated the nomenclature for laser- and LED-based therapies into ‘low-level light therapy’, having the same acronym LLLT. This unfortunate action caused much confusion in the published art and indiscriminately blurred the distinction of two very different photonic delivery systems. A ‘low level’ laser is eye safe and burn-safe only because it is operated at low levels. If a cold laser is powered up to a higher level either intentionally or accidently so that it is no longer ‘cold’, it can cause severe burns or blindness in milliseconds. In contrast, LEDs always operate at low levels and cannot be operated at high optical power densities. At no power level can LEDs cause blindness. And although LEDs can overheat by running too much current through them for extended durations, they cannot cause an instantaneous burns or tissue ablation the way a last can. As such, the term low-level light is meaningless in reference to a LED. Accordingly, throughout this application the acronym LLLT shall refer only to laser PBT meaning low-level laser therapy and will not be used to refer to LED PBT.
Present Day Photobiomodulation Therapy Systems
Today's state-of-the-art photobiomodulation therapy systems, shown by example system 50 in
In the system shown, controller 51 not only generates the signals to control the LEDs within the pads but also provides a source of power to drive the LEDs. The electrical power delivered from controller 51 to the LED pads is substantial, typically 12 W for two sets of three pads each. An exemplary electrical schematic of the system is shown in
The signal on output A is then routed to one or more LED pads 62 through shielded-cable 63 comprising high current power lines ground GND 69a, 5V supply line 69b, and +VLED supply line 69c, as well as LED control signal line 70a for controlling conduction in NIR LEDs 71a through 71m, and LED control signal line 70b for controlling conduction in red LEDs 72a through 72m. Control signal lines 70a and 70b in turn drive the base terminals of bipolar junction transistors 73a and 73b, respectively, the transistors operating as switches to pulse the corresponding strings of LEDs on and off. When the input to either bipolar transistor is low, i.e. biased to ground, no base current and no collector current flow and the LED string remains dark. When the input to either bipolar transistor is high, i.e. biased to 5V, base current flows and in a corresponding manner collector current flows, illuminating the LEDs in the corresponding LED string. LED current flow is set by the LED turn-on voltages and by current limiting resistors 74a or 74b. Using resistors to set LED brightness is not preferred because any variation in the LED voltage either from manufacturing stochastic variability or from variations in temperature during operation will result in a change in LED brightness. The result is poor uniformity in LED brightness across an LED pad, from LED pad to LED pad, and from one manufacturing batch to the next. An improvement in maintaining LED brightness uniformity can be gained by replacing resistors 74a and 74b with fixed value constant current sources or sinks 75a and 75b, as shown in
The physical connection between PBT-controller 61 and LED pads 62, over shielded cable 63 can also be described as two interacting communication stacks in the parlance of the 7-layer open source initiative or 7-layer OSI model. As shown in
Because the electrical signals comprise simple digital pulses, parasitic impedances in cable 63 can affect communication signal integrity and LED pad operation. As shown in
Another disadvantage of using simple electrical signal connections between PBT controller 61 and the LED pads is the PBT system cannot confirm if the peripheral attached to cable 63 is in fact a qualified LED pad or an invalid load. For example, improper LED configurations not matched to the PBT controller, as shown in
Powering non-LED loads from PBT controller 61 can damage the invalid peripheral, the controller, or both. This is particularly problematic because one pin on the PBT controller's output supplies high voltage of 20V or greater, exceeding the 5V rating of most semiconductors and causing permanent damage to ICs. Inductive loads as represented by icon 94 can cause overvoltage voltage spikes that may damage the controller. Loads containing motors such as disk drives or fans can lead to excessive damaging inrush currents. Shorted-cables or shorted electrical loads, as depicted by icon 93, can cause fires. Connecting a battery to the PBT controller 61, as shown by icon 96, can result to excessive current and fire risk. Overcharging or subjecting a chemical cell to an overvoltage also has the potential to cause intense fire or even an explosion. Unknown electrical loads, shown by icon 95, represent unspecified risks. Especially problematic is any connection between PBT controller 61 and an electrical power source such as a generator, car battery, or UPS, the result of which may include complete destruction of the system and an extreme fire hazard. In
Other problems arise when mismatched LED pads are connected to the same output. For example, in
Another issue arises when two or more LED pads are connected to both LED outputs at the same time, as shown in
In
In today's LED pads, overheating for any reason is problematic because there is no temperature protection. As shown in
As described in the foregoing, the limitations of today's PBT systems above are numerous, impacting PBT system utility, functionality, safety, and expandability. These limitations include the following issues:
In summary, the architecture of present day PBT systems is completely outmoded, and requires an entirely new system architecture, new control methods, and new communication protocols to facilitate an efficacious, flexible, versatile, and secure solution to providing photobiomodulation therapy.
In the photobiomodulation therapy (PBT) process of this invention, defined patterns (e.g., sequences of square-wave pulses, sine waves, or combinations thereof) of electromagnetic radiation (EMR) having one or more wavelengths, or spectral bands of wavelengths, are introduced into a living organism (e.g. a human being or animal) using a distributed system comprising two or more distributed components or “nodes” communicating using a bus or transceiver to send instructions or files between or among the constituent components. The radiation is normally within the infrared or visible parts of the EMR spectrum, although ultraviolet light may sometimes be included.
EMR of a single wavelength may be used, or the pattern may include EMR having two, three or more wavelengths. Rather than consisting of radiation of a single wavelength, the EMR may include spectral bands of radiation, often represented as a range of wavelengths centered on a central wavelength, e.g., λ±Δλ. The pulses or waveforms may be separated by gaps, during which no radiation is generated, the trailing edge of one pulse or waveform may coincide temporally with the leading edge of the following pulse, or the pulses may overlap such that radiation of two or more wavelengths (or spectral bands of wavelengths) may be generated simultaneously.
In one embodiment, the distributed PBT system's components comprise a PBT controller and one or more intelligent LED pads communicating using a unidirectional serial data bus sending data, files, instructions, or executable code from the PBT controller to the intelligent LED pads. In a second embodiment, the distributed PBT system's components comprise a PBT controller and one or more intelligent LED pads communicating using a bidirectional data bus or transceiver whereby the PBT controller is able to send data, files, instructions, or executable code to the intelligent LED pad and conversely the intelligent LED pad is able to return data to the PBT controller regarding the pad's operating status or patient condition, including LED pad configuration data, program status, fault conditions, skin temperature or other sensor data. The other sensor data may include two-dimensional temperature maps, two- or three-dimensional ultrasound images, or may comprise biometric data such as pH, humidity, blood oxygen, blood sugar, or skin impedance etc., which in turn may optionally be used to change the treatment conditions, i.e. operating in a closed biofeedback loop.
In one embodiment, the EMR is generated by light-emitting diodes (LEDs) arranged in serial “strings” connected to a common power supply. Each LED string may comprise LEDs designed to generate radiation of a single wavelength or band of wavelengths in response to a defined constant or time varying current. The LEDs may be embedded in a flexible pad designed to fit snuggly against a skin surface of a human body, allowing the target tissue or organ to be exposed to a uniform pattern of radiation. Power may be delivered to each intelligent pad from a cable connecting the LED pad to the PBT controller or alternatively may be provided to the LED pad from a separate power source. In an alternative embodiment, semiconductor laser diodes may be used in place of LEDs configured in an array to create a uniform pattern of radiation or alternatively mounted in a handheld wand to create a spot or small area of concentrated radiation.
In the distributed PBT system disclosed herein, each of the LED strings is controlled by an LED driver, which in turn is controlled by a microcontroller contained within the intelligent LED pad. The LED pad's microcontroller communicates with another microcontroller or computer in the PBT controller via a communication bus, which may include wired connectivity such as USB, RS232, HDMI, I2C, SMB, Ethernet, or proprietary formats and communication protocols, or which may alternatively comprise wireless media and protocols including Bluetooth, WiFi, WiMax, cellular radio using 2G, 3G, 4G/LTE, or 5G protocols, or other proprietary communication methods.
Using a display, keyboard or other input device connected to the PBT controller, a doctor or clinician can select the particular algorithm (process sequence) that is suited to the condition or disease being treated. The instructions are then communicated from the PBT controller over the wired or wireless data bus to one or more intelligent LED pads, instructing the pad's microcontroller when to commence or suspend a PBT treatment and specifying what treatment is to be performed.
In one embodiment, referred to as data streaming, the PBT controller sends a stream of data packets specifying the LED driving waveforms including the timing of when an LED is instructed to conduct current and the magnitude of the current to be conducted. The streaming instructions sent by the controller are selected from a “pattern library” of algorithms, each of which defines a particular process sequence of pulses or waveforms of the EMR generated by the LED strings. Upon receiving the data packets over the data bus, the intelligent LED pad stores the instruction in memory, then commences “playback” of the streaming data file, i.e. driving the LEDs in accordance with the instructions received. During the playback of the streaming data file, communication from the PBT controller to the intelligent LED pad over the data bus may be interrupted to accommodate system safety checks or to allow the intelligent LED pad to report its status or to upload sensor data to the PBT controller.
Unlike prior art PBT systems, in the disclosed distributed PBT system the PBT controller is not constantly sending instructions to the intelligent LED pads. During intervals when the PBT controller is silent, either listening to the data bus, or receiving data from the intelligent LED pads over the data bus, each intelligent LED pad must operate autonomously and independently from the PBT controller and the other LED pads connected on the same data bus or communication network. This means the PBT controller must send sufficient data to the intelligent LED pad to be stored in the pad's memory to support uninterrupted LED playback operation until the next data file can be delivered.
In another embodiment, the PBT controller delivers a complete playback file to the intelligent LED pad, defining the entire execution sequence of a PBT treatment or session. In this method the file is delivered prior to commencing playback, i.e. before executing treatment. As soon as the file is loaded into the memory of the intelligent LED pad, the in-pad local microcontroller can execute playback in accordance with instructions contained in the playback file. The transferred playback file may comprise either (i) an executable code file including the totality of all LED driving waveform instructions, (ii) a passive playback file defining the treatment durations and settings that is interpreted by executable code comprising a LED player software, or (iii) data files comprising waveform primitives that are subsequently combined in a prescribed manner by the LED pad's microcontroller to control the LED illumination pattern and execute a PBT treatment or session.
In the latter two examples, the executable code needed to interpret the playback file, referred to as the “LED player”, must be loaded into the intelligent LED pad prior to commencing playback. This LED player can be loaded into the intelligent LED pad at the time a user instructs the PBT controller to commence therapy, or can be loaded into the intelligent pad at a previous date, e.g. when the LED pad is programmed during manufacturing or at the time the PBT controller is turned on and establishes that the intelligent LED pad is connected to the PBT controller's local area network. In cases where the LED player file is previously loaded into an intelligent LED pad and stored in non-volatile memory for extended durations, the distributed PBT system must include provisions to determine whether the LED player file previously loaded into the LED pad is still current or has become obsolete. If the PBT controller determines that the LED player file stored in the LED pad is up-to-date, LED playback can commence immediately. Alternatively, if the PBT controller determines that the LED player file stored in the LED pad is obsolete, expired, or just not up-to-date, the PBT controller can download the current LED player file to the LED pad either immediately or after first obtaining the user's approval. In some instances, performing treatments using an obsolete LED player file may result in improper playback or a system malfunction. In such cases, the operation of the intelligent pad may be mandatorily suspended by the PBT controller until the current LED player file is downloaded and stored in the LED pad.
The ability of an LED pad to function independently and autonomously for a defined duration distinguishes the LED pad as “intelligent” as compared to a passive LED pad. Passive LED pads, in contrast, are limited to responding to real time signals sent from the PBT controller, where any interruption in communication will immediately result in disruption of the LED pad's operation, affecting the pulse train or waveform of the EMR emitted by the LEDs in the pad. In other words, bus communication between the PBT controller and one or more intelligent LED pads can be considered as a packet-switched local area network (LAN).
Another key feature of the disclosed distributed PBT system is its autonomous safety systems—protection and safety functions operating in each intelligent LED pad independent of the PBT controller. Specifically, in network connected professional medical devices, safety systems must continue to operate without fail even when network connectivity is lost. As a key feature of this invention, during operation each intelligent LED pad regularly executes a safety related subroutine to ensure that its software is operating normally and that no dangerous conditions exist. These intelligent LED pad embedded protective features include a software related “blink timer” subroutine, a watchdog timer, overvoltage protection, LED current balancing, and over-temperature protection. The autonomous safety functions are included in firmware comprising the intelligent LED pad's local operating system (referred to herein as “LightPadOS,” which is stored in non-volatile memory in the intelligent LED pad and executed by the microcontroller included within each intelligent LED pad.
Upon receiving an instruction to commence therapy, an intelligent LED pad's LightPadOS starts a software timer and concurrently resets and starts a hardware counter in the pad's microcontroller. The LightPadOS then launches the executable code to perform a PBT treatment, executed as a streaming data file or as a LED player (playing a specific playback file) in synchrony with an advancing program counter. The program counter advances at a frequency defined by either a shared system clock or a precision time reference specific to one or several intelligent LED pads. Such time references can be established using a RC relaxation oscillator, a RLC resonant tank oscillator, a crystal oscillator, or a micromechanical machine based oscillator. In this manner, pulses with nanosecond precision can be used to synthesize square wave pulses, sine waves, and other waveforms varying in frequency and in duration. The synthesized waveforms are then used to drive strings of varying waveform LEDs in the selected patterns according to defined algorithms.
During program execution (playback), both the software blink timer and the hardware-based watchdog timer continue to count in synchrony with the program counter time base. When the software blink timer reaches a certain predefined time (referred to herein as the blink interval), e.g. 30 seconds, the blink timer generates an interrupt signal which is sent to the pad's operating system LightPadOS and which suspends the treatment's program counter and commences an ‘interrupt service routine” or ISR. The ISR then performs housekeeping functions, which may include reading the temperature of one or more sensors in the intelligent LED pad, sending the temperature data to the PBT controller, and concurrently comparing the highest measured temperature to a defined range. If the temperature exceeds the defined range a warning flag is also generated and sent to the PBT controller as a request for the system to take some action, e.g. to reduce the LED duty factor (on time per cycle) to lower the pad's temperature, or to suspend treatment.
If, however, the highest measured temperature exceeds a predetermined safety threshold, the intelligent LED pad immediately suspends execution of the treatment program and simultaneously sends a message to the PBT controller. Unless the PBT controller restarts the program, the overheating intelligent LED pad will remain off indefinitely. In this manner, if an over-temperature condition occurs while the PBT controller is unavailable or malfunctioning, or if the network or communication bus is busy or unavailable, the default condition is to stop the treatment.
During an ISR the intelligent LED pad can perform other safety tests, for example checking for excessive input voltages resulting from a power supply failure, excessive currents resulting from an internal pad short circuit, or detecting excessive moisture resulting from sweat or water contacting the intelligent LED pad, possibly resulting a missing or improperly applied sanitary barrier between the patient and the LED pad. In any case, the malfunctioning intelligent LED pad firsts suspends operation and then sends a message to the PBT controller, informing the PBT controller of the fault. The other LED pads may also be informed of the fault. In such a case the other LED pads may continue to operate independently (even though one pad has discontinued operation) or, alternatively, all the intelligent LED pads may be shut down concurrently (either by the PBT controller or via direct pad-to-pad communications). After the ISR is complete, control is returned to the LED pad performing the PBT treatment by restarting the program counter, restarting the software blink timer, and restarting the watchdog timer.
In the event that a software execution failure occurs either in the LED playback file or in the ISR subroutine, the program counter will not resume operation and the blink timer will not be reset and restarted. If the watchdog timer reaches its full count without being reset (e.g. at 31 seconds), it means software execution has failed. A watchdog timer time-out instantly generates an interrupt flag suspending program execution in the offending LED pad and sending a fault message to the PBT controller and optionally to the other LED pads. As a result, a software failure always defaults to a non-operational state for the malfunctioning LED pad to ensure patient safety even in the absence of network connectivity.
Aside from autonomous safety features, in another embodiment the disclosed distributed PBT system includes centralized protection of the networked components administered by the PBT controller. Specifically, the PBT operating system operating with the PBT controller, referred to herein as “LightOS,” includes a number of protective provisions, including the ability to detect if a component attached to the network or communication bus is an authorized component or a fraud. If a user attempts to connect a light pad or other component to the PBT controller's network that cannot pass a prescribed authentication process, then the component will be denied access to the network. The PBT controller's LightOS operating system can prohibit unauthorized access in any number of ways including shutting down the entire distributed system until the offending device is removed, not sending any data packets to the fraudulent device's IP address, or encrypting the commands so as to make them unrecognizable by the unauthorized component.
To effectuate multi-layer secure communication in the disclosed distributed PBT system, the operating system of the PBT controller (LightOS) and the operating system of the intelligent LED pads (LightPadOS) comprise parallel communication stacks using consistent protocols and shared secrets not discernable to a device operator, hackers, or unauthorized developers. As such the distributed PBT system operates as a protected communication network with the ability to execute security on any number of communication layers including data link Layer-2, network Layer-3, transport Layer-4, session Layer-5, presentation Layer-6, or application Layer-7.
For example, a numeric code installed and cryptographically hidden in both a PBT controller and an intelligent LED pad, i.e. a shared secret, can be used to confirm the authenticity of a network connected intelligent LED pad without ever divulging the key itself. In one method of LED pad validation executed on data link Layer-2, the PBT controller passes a random number to the intelligent LED pad over the network or communication bus. In response, the microcontroller in the LED pad decrypts its copy of the shared secret (numeric code), merges it with the received random number then performs a cryptographic hash operation on the concatenated number. The intelligent LED pad then openly returns the cryptographic hash value across the same transceiver link.
Concurrently, the PBT controller performs an identical operation decrypting its own copy of the shared secret (numeric code), merging it with the generated random number it sent to the LED pad then performing a cryptographic hash operation on the concatenated number. The PBT controller next compares the received and locally generated hash values. If the two numbers match the pad is authentic, i.e. it is ‘authorized’ to connect to the network. The aforementioned authentication algorithm may be executed on any PHY Layer-1 and/or data-link Layer-2 connection over any data bus or packet switched network including USB, Ethernet, WiFi or cellular radio connections. In the event of a WiFi connection, the data link may also be established using WiFi protected access protocol WPA2.
For ‘administrative’ purposes and security tracking, the authorization time and date (and as available the GPS location) of the authenticated component is stored in non-volatile memory and optionally uploaded to a server. The benefit of employing secure communication and AAA (authentication, authorization, administration) validation of all connected components in the distributed PBT system is crucial to ensure safety and protection from the intentional connection of uncertified and potentially unsafe imposter devices. In this way, imposter devices cannot be driven by the distributed PBT system. AAA validation also protects against the accidental connection of devices not intended for operation as part of the PBT system such as lithium ion battery packs, unapproved power supplies, speakers, disk drives, motor drivers, high power Class III and Class IV lasers, and other potential hazards unrelated to the PBT system.
The security of a distributed PBT system using a packet switched network (such as Ethernet or WiFi) may also be enhanced by using dynamic addressing on network Layer-3 and dynamic port assignment on data transport Layer-4. In the operation of a PBT controller not connected to the Internet or any other local area network, the PBT controller generates a dynamic IP address and a dynamic port address, and then broadcasts the address to the other network connected devices to which the intelligent LED pads respond with their own dynamic IP addresses and their own dynamic port addresses. In the event that the distributed PBT system is in contact with a router or the Internet, a dynamic host configuration processor (DHCP) is used to assign dynamic IP addresses. Similarly, a remote procedure call (RPC) is used to perform a dynamic port number assignment. Since dynamic IP addresses and dynamic ports change whenever a device is connected to a network, the risk of a cyber attack surface is reduced. Additional Layer-4 security can be added using TLS ‘transport layer security’, IPSec security protocol, or other protocols.
Once the components of a distributed PBT system are established through Layer-2 authentication, and Layer-3 and Layer-4 network and port address assignments, the distributed PBT system is ready to execute treatments. Upon the PBT controller receiving a user ‘start’ command, PBT treatment commences with an exchange of encryption keys or digital certificates between the PBT controller and the network-connected intelligent LED pads to establish a Layer-5 session. Once the session is opened, the PBT controller and each intelligent LED pad maintain their secure link during the exchange of files and commands until the treatment is completed or is terminated. Additional network security can be performed using encryption on presentation Layer-6 or at the application Layer-7.
As disclosed, the network-connected distributed PBT system functions as a single unified virtual machine (VM) able to reliably and safely perform photobiomodulation therapy using multiple intelligent LED pads offering
In another embodiment, the disclosed distributed PBT system comprises three stage waveform generation involving digital waveform synthesis, PWM pulse generation, and a dynamic multiplexed multichannel LED driver able to produce square wave, triangle wave, sawtooth, and sine wave waveforms. Waveforms may comprise a single periodic function or a chord of multiple frequency components.
In another embodiment, the disclosed waveform generator can generate chords based on a prescribed key and frequency scale, e.g. a chord comprising two, three, or four different frequencies including noise filtering. LED driving waveforms can also be produced from audio samples or by combining chords of scalable audio primitive waveforms of varying resolution and frequency. Waveforms may be stored in libraries based on waveform synthesizer parametrics, PWM waveforms, and PWM chords, including major, minor, diminished, augmented chords, octaves, and inversions. The software-controlled LED driver includes I/O mapping (multiplexing), dynamic current control, and various dynamic programmable current references.
In another embodiment, a distributed PBT system comprises multiple sets of intelligent LED pads controlled from a centralized multichannel PBT control station. An optional WiFi PBT remote is included to facilitate local start-start and pause control. In yet another embodiment, the PBT controller comprises an application running on a mobile device or smartphone controlling intelligent LED pads. The mobile application includes intuitive UI/UX control and biofeedback display. The app may also connect to the Internet or to a PBT server as a therapy database. In another embodiment, the PBT system comprises a fully autonomous LED pad set programmed over the network.
The distributed PBT system may also be used to control LEDs mounted in a mouthpiece to combat gum inflammation and periodontal disease or to drive individual LEDs mounted in ear buds inserted into a nose or ear to kill bacterial inflections in the sinus cavities. A variation of the individual LED buds may be used as “spots” placed on acupuncture points.
The aforementioned distributed PBT system is not limited to driving LEDs but may be used to drive any energy emitter positioned adjacent to a patient in order to inject energy into living tissue, including coherent light from a laser, or time-varying magnetic fields (magneto-therapy), micro-electric currents (electrotherapy), ultrasonic energy, infrasound, far infrared electromagnetic radiation, or any combination thereof.
In one such embodiment, a LED or laser handheld wand comprises a large area head unit and a pivoting handle, an integral temperature sensor, a battery charger, a step-up (boost) voltage regulator, and integral safety system as a proximity detector. In yet another embodiment, a magneto therapy device comprises a coil implemented as a multilayer printed circuit board and used to generate time-varying magnetic fields. The magneto therapy device may be implemented in a pad or in a wand. Magnetotherapy, used to reduce inflammation and joint pain may be operated independently or in combination with PBT.
Another handheld wand version includes a modulated voice coil operated as a vibrator applying pressure to muscles and tissue at infrasound frequencies, i.e. below 10 Hz, similar to massage therapy but with deeper penetration. Infrasound therapy, used to reduce relax muscles and improve flexibility and range of motion, may be operated independently or in combination with PBT.
In another embodiment an ultrasound therapy device comprises a bendable PCB with one or more piezoelectric transducers modulated in the ultrasound band from 20 kHz to 4 MHz. The pad with piezoelectric transducers may also include LEDs modulated by pulses in the audio spectrum. In one application of a combination ultrasound-LED device, the ultrasound produced by the piezoelectric transducers is employed to break up scar tissue and the light emitted by the LEDs is used to improve circulation and remove the dead cells thereafter.
In order to overcome the aforementioned limitations facing existing generation PBT systems, a completely new system architecture in required. Specifically, the generation of sinusoidal waveforms and chords combining sine waves must occur within close proximity of the LEDs being driven to avoid significant waveform distortion from cabling. Such a design criterion mandates relocating waveform synthesis, moving it out of the PBT controller and into the LED pad. To accomplish this seemingly minor re-partitioning of functions is in fact a significant design change, and requires converting the LED pad from a passive component into an active system or “intelligent” LED pad. While a passive LED pad contains only an array of LEDs, current sources, and switches, an intelligent LED pad must integrate a microcontroller, volatile and non-volatile memory, a communication transceiver or bus interface, LED drive electronics, and the LED array. Because of the need for long cabling or wireless operation the time reference for the microcontroller must also be relocated into the LED pad. Essentially each intelligent LED pad becomes a small computer, which once instructed, is able to independently produce LED excitation patterns.
So rather than using a centralized PBT controller producing and distributing electrical signals to passive LED pads, the new architecture is “distributed”, comprising a network of autonomously operating electronic components lacking centralized real time control. This distributed PBT system, the first of its kind, requires the invention of intelligent LED pads—a therapeutic light delivery system whereby the LED pads perform all calculations needed to generate dynamic LED excitation patterns and safely execute LED drive accordingly. In distributed PBT operation, the role of the PBT controller is dramatically diminished to that of a UI/UX interface, allowing a user to select therapy treatments or sessions from available protocol libraries, and to start, pause, or terminate treatments. This lack of central hardware control is virtually unheard of in medical devices because ISO13485, IEC, and FDA regulations demand, for reasons of safety, hardware controllability at all times. As such, the implementation of effective safety systems in distributed hardware medical devices requires a new and innovative approach where safety functions must be performed locally and communicated system-wide. Such a safety protocol must be specified, designed, verified, validated and documented in accordance with FDA design regulations and international safety standards.
Another implication of a distributed PBT system with intelligent LED pads is the replacement of electrical signal communication with command-based instructions comprising data packets. Such command-based communication involves the design and development of a packet switched private communication network among the distributed system's components, adapting digital communication to meet the unique and stringent requirements of medical device control. Packet routing, security, and data payloads must be designed to prevent hacking or system malfunction, and must carry all requisite information to perform all necessary PBT operations.
Implementing a distributed PBT system with intelligent LED pads involves two sets of interrelated innovations. In this application, the intelligent LED pad's operation is disclosed including time-based LED excitation patterns delivered by streaming or by file transfer. This disclosure also considers the in-pad generation of waveforms using a three-step process of waveform synthesis, PWM player operation, and dynamic LED drive as well as requisite safety functions. In a related application filed by R. K. Williams et al., U.S. application Ser. No. 16/377,192, titled “Distributed Photobiomodulation Therapy Devices, Methods, and Communication Protocols Therefor,” filed concurrently with this application, the data communication hierarchical stack and control protocol are disclosed.
In the distributed PBT systems disclosed herein, LED playback can be controlled using either a time-based instruction sequence (referred to as streaming) or through command-based waveform generation and synthesis. In either event, data packets carry the LED excitation pattern digitally in their payload. In operation, through a graphical interface a user or therapist selects a PBT treatment or therapy session, and agrees to commence treatment. The command is then packetized, i.e. prepared, formatted, compressed, and stuffed into a communication packet, and delivered over a serial peripheral communication bus, LAN, broadband connection, WiFi, fiber or other media to one or more intelligent LED pads. Although the payload data being carried in each data packet is digital comprising bits organized as octets or hexadecimal words, the actual communication medium is analog, comprising differential analog signals, radio waves, or modulated light.
In wired communication, the communication bus typically uses electrical signals comprising analog differential waveforms modulated at a specified rate known as the symbol rate or baud rate (https://en.wikipedia.org/wiki/Symbol_rate). Each symbol may comprise a frequency or code for a defined duration. The detection of each sequential symbol is immune to distortions caused by reactive parasitics in a cable or by noise sources and therefore overcomes all the issues associated with digital pulse signal transmission in prior art PBT implementations. In WiFi communication, incoming serial data is split and transmitted in small packets across multiple frequency sub-bands, known as OFDM, i.e. orthogonal frequency division multiplexing to achieve a high-symbol rate and low bit-error rate. Similar frequency splitting methods are used in fiber channel and DOCSIS communication to achieve high symbol rates. Since each transmitted symbol is capable of representing multiple digital states, the serial bus bit data rate is therefore higher than the media's symbol rate. The effective bit data rate (https://en.wikipedia.org/wiki/List_of_device_bit_rates) of several of the most common serial and wireless communication protocols above 50 MB/s are summarized here below for reference:
In response to a user's commands, the PBT controller converts instructions into communication data packets, which are subsequently sent to all connected and qualified LED pads. The LED pads receive the instructions and respond accordingly, commencing a therapy session or performing other tasks. Because of high-bandwidth communication, the PBT system's user experience is that the treatment was instantaneous, i.e. users perceive a real time UI/UX response even though the system's operation was in fact performed as a sequence of inter-device communication and autonomous tasks.
The disclosed distributed PBT system involves multiple interacting components, each of which performs a dedicated function or functions within the de-centralized system. The number of unique components integrated into the system affects the system's overall complexity and impacts the sophistication of the communication protocol, i.e. the “language” used in inter-device communication. Various components of the disclosed distributed PBT system may include:
By combining or excluding various components in the PBT system, a variety of performance and system costs can be tailored for a wide range of users covering hospitals and clinics, and extending to individual users and consumers, spas, estheticians, sports trainers and athletes, as well as professional mobile applications for paramedics, police, or for military field doctors. Since the PBT components use a voltage higher than 5V, care in the disclosed design is exercised to prevent a user for accidentally connecting a USB peripheral into a high-voltage (12V to 42V) connection or bus.
LED Control in Distributed PBT Systems
One basic implementation of a distributed PBT system, shown in
Construction of main MPU 134 may comprise a fully integrated single-chip microcontroller or a microprocessor-based module, optionally containing main system clock 124, bus interface 135, and portions of non-volatile memory 128 and volatile memory 129. Any number of partitions is possible including using multiple silicon integrated circuits (ICs), system on chip (SOC) integration, system in package (SIP), or as modules. For example, volatile memory 129 may comprise dynamic random access memory (DRAM), or static random access memory (SRAM). This memory may be integrated all, or in part, within main MPU 134 or may be realized by separate integrated circuits. Similarly, non-volatile memory 128 may comprise electrically erasable programmable random access memory (E2PROM) or “flash” memory, which may be integrated all, or in part, within MPU 134. Within PBT controller 131 high-capacity non-volatile data storage may also be realized using moving media storage such as optical disks (CDs/DVDs), by magnetic hard disk drives (HDDs), and even through network connections to cloud storage.
The role of non-volatile data storage 128 within PBT controller 131 is multipurpose including storage of the main operating system, referred herein as LightOS, as well as to retain program libraries of PBT treatments and sessions, generally stored in encrypted form for security reasons. Non-volatile memory 128 may also be used to capture treatment logs, upload sensor data, and possibly retain treatment metadata. In contrast to non-volatile memory 128, the role of volatile memory 129 in PBT controller 131 is primarily that of scratchpad memory, holding data temporarily while calculations are performed. For example, in preparing a PBT session comprising a sequence of separate PBT treatments, the encrypted treatment algorithms must first be decrypted, assembled into a PBT session, re-encrypted, then assembled into a communication packet ready for network transport. Volatile memory 129 holds the data content during the communication packet assembly process.
Another consideration in a distributed PBT system is power distribution needed to power the PBT controller and the LED pads. Options include the following:
In the example shown, external power-supply brick 132 powers the entire PBT system, providing 5 V to integrated circuits and +VLED to the strings of LEDs. USB cable 136 carries transceiver symbol data from the bus interface 135 of PBT controller and bus transceiver 131 to a bus interface 338 of LED pad 337. USB cable 136 also supplies power; specifically ground (GND), 5V, and +VLED to intelligent LED pad 337, generally carried on copper conductors that are thicker and have a lower resistance than the cable's signal lines. Each LED pad 337 comprises a pad μC 339, the bus interface 338, a RAM volatile memory (e.g. SRAM or DRAM) 334a, a NV-RAM non-volatile memory (e.g. EEPROM or flash) 334b, a time reference clock 333, an LED driver 335, and an LED array 336. Time reference clock 333 produces clock pulses 299 at a frequency Φpad. The LED driver 335 includes switched current sinks 140 and 141, a string of series connected LEDs 142a through 142m for generating a light of a wavelength λ1, and a string of series connected LEDs 143a through 143m for generating light of a wavelength λ2. Typically, an LED pad 337 would include more than two strings of LEDs and current sinks, with one current sink for each string of LEDS.
Memory within LED pad 337, including both volatile memory 334a and non-volatile memory 334b, is similar to that of the semiconductor memory employed in PBT controller 131 except that the total capacity can be smaller, and preferably consumes lower power. Memory in LED pad 337 must comprise semiconductor solutions because the risk of mechanical shock and breakage of moving media storage makes it inadvisable to integrate fragile data storage into LED pad 337. Specifically, volatile memory 334a in LED pad 337 may comprise dynamic random access memory (DRAM), or static random access memory (SRAM) and may be integrated all, or in part, within μC 339. In the LED pad 337, volatile memory 334a is useful to hold data that need not be retained except during use such as LED streaming files, LED player files and LED playback files. The advantage of only temporarily retaining executable code needed to perform the current PBT treatment (and not the entire library of treatments), is that in this way the capacity and cost of memory required within LED pad 337 can be greatly reduced as compared to the memory required in the PBT controller 131. It also has the advantage that it renders reverse engineering and copying of the treatment programs more difficult because any time power is removed from LED pad 337, all the data is lost.
Non-volatile memory 334b may comprise electrically erasable programmable random access memory (E2PROM) or “flash” memory, which may be integrated all, or in part, within μC 339. Non-volatile memory 334b is preferably employed to hold firmware that does not need to be changed often, such as the operating system for the LED pad 337, herein referred to as LightPadOS, along with manufacturing data including pad identification data, i.e. the LED pad ID register, and manufacturing related LED configuration data. Non-volatile memory 334b may also be used to retain user logs of what treatments have been performed. Low-cost design for LED pads is another important economic consideration because one PBT controller is often sold with multiple LED pads, up to 6 or 8 per system. To lower the overall memory cost it is beneficial to concentrate memory, especially non-volatile memory, into the PBT controller where there is only a single device, and to minimize the memory contained within each LED pad, which occurs in multiple instances per system.
In operation, user commands input on touchscreen LCD 133 of PBT controller 131 are interpreted by main MPU 134, which in response retrieves treatment files stored in non-volatile memory 128 and transfers these files through USB bus interface 135, over USB cable 136 to bus interface 338 within intelligent LED pad 337. The treatment files, once transferred, are temporarily stored in volatile memory 334a. The μC 339 within pad 337, operating in accordance with the LightPadOS operating systems stored in non-volatile memory 334b, then interprets the treatments stored in RAM volatile memory 334a and controls the LED driver 335 in accordance with the LED excitation patterns of the selected treatment, whereby n strings of LEDs in LED array 336, a given string containing m LEDs, are illuminated and generate light of various wavelengths in a desired manner. Because PBT controller 131 and LED pad 337 operate using their own dedicated clocks 124 and 333, the distributed PBT system is asynchronous, being driven by clock pulses 297 and 299 at two different frequencies, specifically Φsys and Φpad respectively.
Since the two systems operate with different clock rates, communications between PBT controller 131 and LED pad 337 occur asynchronously, i.e. without a common synchronized clock. Asynchronous communication is compatible with a wide range of serial bus communication protocols including USB 136 as shown, or Ethernet, WiFi, 3G/LTE, 4G, and DOCSIS-3. Although a synchronous clock version of a distributed PBT system, i.e. one with a shared clock is technically possible, synchronous operation offers no performance or efficacy advantage over its asynchronous counterpart. Moreover, high frequency clock distribution over long cables is problematic suffering from clock skew, phase delays, pulse distortions and more.
The architecture of
As shown in
To ensure components are able to exchange information and execute instructions at a high abstraction level, i.e. at the application layer and above, it is important that the two operating systems LightOS and LightPadOS are developed with parallel structure using the same encryption and security methods and protocols on any given layer. This criterion includes adopting common shared secrets, executing pre-defined validation sequences (needed for components to join the system's private network), executing common encryption algorithms, and more.
To ensure that the two components can commence communication and perform tasks, the PBT controller must first establish whether the LED pad is indeed a manufacturer approved, system-validated component. This test, referred to as “authentication” is shown in the flow chart of
In steps 153a and 153b, the two devices negotiate what is the maximum data rate they can each understand and reliably communicate. Once the communication data rate is established, the symmetric authentication processes 154a and 154b commence. During symmetric authentication, in step 154a the LightOS first queries the LightPadOS to determine if the LED pad 123 is a valid manufacturer-approved device by checking data stored in the LED pad identity data register 144. In the mirrored authentication process of step 154b, the LED pad 123 confirms that the PBT controller 120 is a valid device with a valid manufacturing ID approved for use with the LED pad 123. In this exchange certain encrypted security credentials and manufacturer's identification data including serial number, manufacturing code, and GUD ID number change hands to insure that both PBT controller 120 and the intelligent LED pad 123 are from the same manufacturer (or are otherwise licensed as an approved device). In the authorization fails, the host LightOS informs the user the LED pad is not approved for use in the system and instructs them to remove it. If LightOS is unable to authenticate LED pad 123 then PBT controller 120 will discontinue communication with the LED pad 123. Conversely, if the LED pad's LightPadOS is unable to determine the authenticity of PBT controller 120, then LED pad 123 will ignore the instructions of PBT controller 120. Only if symmetric authentication is confirmed can operation proceed.
Any number of authentication methods can be performed to establish a private network including PBT controller 120 and LED pad 123 and approve LED pad 123's connection to the private network. These methods may involve symmetric or asymmetric encryption and key exchange, employing ‘certificate authority’ based identity confirmation through the exchange of digital CA-certificates, or exchanging cryptographic hash data to confirm that LED pad 123 holds the same shared secrets as PBT controller 120, meaning that LED pad 123 was produced by a qualified manufacturer. For example, a numeric code installed and cryptographically hidden in both PBT controller 120 and intelligent LED pad 123, i.e. a shared secret, can be used to confirm the authenticity of intelligent LED pad 123 without ever divulging the key itself. In one such method of LED pad validation executed on data link layer 2, the PBT controller 120 passes a random number to the intelligent LED pad 123 over the network or communication bus. In response, the microcontroller in the LED pad 123 decrypts its copy of the shared secret (numeric code), merges it with the received random number then performs a cryptographic hash operation on the concatenated number. The intelligent LED pad 123 then openly returns the cryptographic hash value across the same transceiver link.
Concurrently the PBT controller 120 performs an identical operation decrypting its own copy of the shared secret (numeric code), merging it with the generated random number it sent to the LED pad 123 then performing a cryptographic hash operation on the concatenated number. The PBT controller 120 next compares the received and locally generated hash values. If the two numbers match, the LED pad 123 is confirmed as authentic, i.e. LED pad 123 is ‘authorized’ to connect to the network. The aforementioned authentication algorithm may be executed on any PHY layer 1 and/or data-link 2 connection over any data bus or packet switched network including USB, Ethernet, WiFi or cellular radio connections. In the event of a WiFi connection, the data link may also be established using WiFi protected access protocol WPA2.
For ‘administrative’ purposes and security tracking, the authorization time and date (and as available the GPS location) of the authenticated component is stored in a non-volatile memory such as non-volatile memory 128 and optionally uploaded to a server. The benefit of employing secure communication and AAA (authentication, authorization, administration) validation of all connected components in the distributed PBT system is crucial to ensure safety and protection from the intentional connection of uncertified and potentially unsafe imposter devices. In this way, imposter devices cannot be driven by the distributed PBT system. AAA validation also protects against the accidental connection of devices not intended for operation as part of the PBT system such as lithium ion battery packs, unapproved power supplies, speakers, disk drives, motor drivers, high power Class III and Class IV lasers, and other potential hazards unrelated to the PBT system.
The security of a distributed PBT system using a packet switched network (such as Ethernet or WiFi) may also be enhanced using dynamic addressing on network layer 3 and dynamic port assignment on data transport layer 4 of communication stacks 147 and 148. In operation of a PBT controller not connected to the Internet or a local area network, the PBT controller generates a dynamic IP address and a dynamic port address, and then broadcasts the addresses to the other network connected devices to which the intelligent LED pads respond with their own dynamic IP addresses and their own dynamic port addresses. In the event that the distributed PBT system is in contact with a router or the Internet, a dynamic host configuration processor (DHCP) is used to assign dynamic IP addresses. Similarly, a remote procedure call (RPC) is used to perform a dynamic port number assignment. Since dynamic IP addresses and dynamic ports change whenever a device is connected to a network, the cyber attack surface is reduced. Additional layer-4 security can be added using TLS transport layer security, IPSec security protocol, or other protocols. Once the intelligent LED pad is connected to the network, additional information such as LED configuration data can be exchanged to authorize the component to operate as part of the distributed PBT system.
In step 155a, the LightOS in the PBT controller 120 requests information regarding the LED configuration of the LED pad 123. In step 155b, the LightPadOS in the LED pad 123 responds by relaying the information within the configuration register 145 of the LED pad 123 to the PBT controller 120. In addition to containing a detailed description of the LED array 336 the configuration file also specifies the manufacturer's specification for the maximum, minimum and target voltage need to power the LED strings 142a-142m and 143a-143m in the array 336. The configuration file also specifies the minimum required current needed to drive the LEDs. If more than one LED pads are connected to the PBT controller 120, the LightOS in PBT controller 120 solicits and receives the same information from every attached LED pad, i.e. analyzing the entire network of connected devices.
In step 156a, the LightOS in PBT controller 120 inspects the voltage requirements of LED pad 123 and compares that value to the output voltage range of the high voltage power supply, e.g., the external power supply brick 132 shown in
If in step 156a, the power supply's output voltage meets the operating range of every connected LED pad, i.e. Vmin≤+VLED≤Vmax, then the PBT controller 120 will enable the high supply voltage +VLED. Optionally in step 156b the PBT controller 120 may inform the LED pad of the supply voltage chosen which is stored in non-volatile memory 334b, documenting the last supply voltage delivered to the LED pad (useful when inspecting quality matters and field failures). In the event that the PBT controller 120 employs a programmable voltage power supply, the LightOS operating system will select the best voltage based on the operating Vtarget of LED pad 123, as stored in the pad's LED configuration register 145. If the target voltages are mismatched, the LightOS operating system in PBT controller 120 will choose a voltage +VLED as some compromise of the various reported target voltages. The term “high supply voltage” in this context means a voltage between 19.5 V minimum and 42 V maximum. Common supply voltages include 20V, 24V, or 36V. Even after +VLED is enabled, this high voltage is not connected to the output socket or supplied to the LED pads until a treatment is selected and therapy initiated.
During the authentication process and in the case of user inquiries, the PBT controller 120 must solicit information regarding the manufacturing of the LED pad 123. This data is beneficial for complying with medical device regulations of traceability, and for debugging quality or field failures or for processing return merchandise authorizations (RMAs).
As described, during the authentication process the PBT controller 120 gathers information regarding the LED configuration of every connected LED pad. As shown in
The LED configuration register 145 is essentially a tabular description of LED pad 337's circuit. The schematic circuit diagram of
The foregoing is intended to exemplify without limitation, the data formatting of LED configuration register 145 and its corresponding schematic equivalent, not to represent a specific design. In particular, the number of LED strings “n” and the number of LEDs connected in series in a given string “m” contained within the LED pad are likely to exceed the numbers shown in this example. In practice, the number of LEDs in the various strings may be identical or may differ from string to string. For example, an LED pad may include 15 strings comprising fourteen LEDs in series, or 210 LEDs. These LEDs may be arranged in three groups of five LED strings each; one-third near infrared (NIR), one-third red, and one-third blue. Each LED type may be configured with 5 parallel strings and 14 series connected LEDs, i.e. three 14s5p arrays.
LED configuration register 145 also includes the minimum and maximum operating voltages for the LED pad. For proper LED operation, the power supply voltage +VLED must exceed the minimum voltage specification Vmin of the LED pad to ensure uniform illumination, but to avoid damage from excessive voltage or heat the power supply voltage should not exceed the specified maximum voltage Vmax. In other words, the value of the supply voltage acceptable for powering the LED pad must meet the criteria Vmin<+VLED≤Vmax. The manufacturer's specified value of Vmin, stored in LED configuration register 145, must on a statistical basis exceed the highest voltage string of LEDs in the LED pad to insure that so long that the criteria Vmin<+VLED are maintained, the pad's highest voltage strings will still be fully illuminated in operation. If the Vmin voltage is specified too low, in some LED pads individual LED strings may be dimmer than others during treatment. Poor brightness uniformity adversely impacts treatment efficacy by limiting a PBT treatment's peak and average power and reducing a treatment's total energy (dose).
The highest voltage string in a LED pad is determined by both design and stochastic voltage variability in LED manufacturing. Each LED string comprises m series-connected LEDs, where each LED has its own unique forward conducting voltage Vfx, where x varies from 1 to m, and where the total string voltage is the summation of these individual LED voltages ΣVfx. The highest voltage could occur in a string comprising fewer series-connected LEDs with higher-voltage, or it could occur in a string comprising a larger number of lower forward voltage LEDs. A LED pad manufacturer must employ statistical sampling data of LED forward voltages on a lot-to-lot basis to ensure that no LED pad is manufactured with an LED string voltage exceeding the specified value of Vmin.
Albeit less precise, the power supply must be capable of supplying a minimum required average current Imin to illuminate all the LEDs of a particular color (wavelength) at once. Generally, in a two wavelength LED pad, 50% of the n strings of LEDs may be conducting at the same time. While in a three-color LED pad, it is likely that only one of the three LED wavelengths will be illuminated at a time to avoid overheating, a worst case assumption of ⅔rd or 67% of the n-strings can be used to calculate the maximum current. The peak current in LED conducting in continuous operation will in the worse case not exceed 30 mA per string, i.e. ILED≤30 mA. Using this worst case assumption, a pad with n=30, ⅔rd of the strings illuminated at one time, and with ILED≤30 mA will require a value of Imin=30(⅔)(30 mA)=600 mA.
The value of Imax specified in LED configuration register 145 is not a description of the maximum current flowing in the LEDs, but a description of maximum safe current at 50% duty factor in the pad's conductive traces. This current includes the current flowing in the LED pad's own LED strings plus any current bussed through the LED pad to another LED pad. The specification is included to prevent operating the pad where significant voltage drops occur in the LED pad's power lines resulting in heating, malfunction, electromigration, or metal fusing. One possible design guideline for an LED pad's printed circuit board (PCB) is to utilize copper conductors capable of carrying more than twice its rated current, meaning the pad can safely carry its own current and the current of another LED concurrently. An added design guard band of δ=25% is included as a safety margin. For example, if Imin=600 mA then using a 25% guard band, Imax=2Imin (1+δ)=1500 mA. Configuration register 145 also includes the mirror ratio α used to convert the reference current Iref into the LED string current ILED (or vice versa) in accordance with the relation ILED=αIref. If different ratios are used for each channel, the table can be modified accordingly to include α1, α2, α3 . . . whereby ILED1=α1 Iref1, ILED2=α2 Iref2, and so on.
Referring again
In the switched current sink 161a, a digital inverter 171 and an analog transmission gate comprising a P-channel MOSFET 172 and a ground connected N-channel MOSFET 173 perform the digital enable function of the En input, controlling the gate of N-channel current sink MOSFET 167. Specifically, when the enable signal En is high, the output of inverter 171 is at ground, turning on P-channel transmission gate MOSFET 172 and turning off N-channel MOSFET 173. Because the P-channel MOSFET 172 has a grounded gate, it is biased in a fully on condition, i.e. its linear region, and behaves like a resistor, passing the analog voltage VG from the output of transconductance amplifier 170 to the gate of N-channel current sink MOSFET 167. Conversely, when the enable signal En is low (digital 0), the output of inverter 171 connected to P-channel transmission gate MOSFET 172 is biased to 5 V, and the P-channel MOSFET 172 is turned off, disconnecting the gate of N-channel current sink MOSFET 167 from the output of transconductance amplifier 170. Concurrently, N-channel MOSFET 172 is turned on, pulling the gate of current sink MOSFET 167 to ground and turning off the current sink MOSFET 167, i.e. ILED=0. In conclusion, the circuit of
In a similar manner, the current source 200a of
In the implementation of switched current source 200a shown in
Conversely, when the enable signal En is low (digital 0), the output of inverter 211b is biased at ground, turning off high-voltage level shift N-channel MOSFET 210a. With high-voltage level-shift N-channel MOSFET 210a turned off, no current flows in resistor 209a, and the voltage at the gate of P-channel transmission-gate MOSFET 207 is biased to +VLED turning P-channel transmission gate MOSFET 207 off and disconnecting the output of transconductance amplifier 206 from the gate of P-channel current source MOSFET 203. Concurrently, N-channel MOSFET 210b is turned on, allowing current to flow in resistor 209b and pulling the gate of P-channel pull-up MOSFET 208 down near to ground, turning MOSFET 208 on. With P-channel pull-up MOSFET 208 is an on state, the gate of P-channel current source MOSFET 203 is biased to +VLED, whereby the current source MOSFET 203 is turned off and ILED=0. In conclusion, the circuit of
It should be noted that the current sink circuit implementation of
In the high-voltage current source circuits of both
In all the aforementioned circuits, LED current control depends on a common reference current. To achieve the required precision for controlling LED brightness, reference current Iref requires active trimming during manufacturing. One method for trimming the reference current, using resistors, is shown in
In order to vary the reference current and thereby the LED current dynamically, the value of the reference current can be changed digitally by overwriting the calibration register 186 with dynamic data adjusting or modulating LED brightness, but to do so is disadvantageous as it loses the accuracy achieved by a calibration reference trim during manufacturing. This problem is overcome by the dynamically programmable reference circuit of
Referring again to
Data Streaming in Distributed PBT Systems
By incorporating all LED drive circuitry into an LED pad, as previously shown in
In master-slave data streaming, a series of LED instructions is sent sequentially and continuously instructing the LEDs when to turn on and off. Similar to an audio streaming file, the data transfer from the PBT controller to the intelligent LED pad must occur in advance of executing a particular step. The incoming instruction packets, sent in successive pieces, must stay ahead of the treatment's execution; otherwise the treatment will stall for lack of instructions. This process is illustrated in the flowchart of
An example of USB data packet transfer and instruction execution during master-slave streaming is shown in
Execution of streaming instructions can be performed using two techniques, the just-in-time (JIT) sequential transfer method and the transfer-ahead-and-shift method. In the JIT sequential transfer method shown in
In the transfer-ahead-and-shift method, shown in
An alternative approach is to transfer a complete and entire playback file from the PBT controller to the intelligent LED pad prior to commencing LED therapy. Shown in the flowchart of
Returning to
In this discussion, the term “treatment” is defined as a single therapeutic procedure, typically 20 minutes in duration and designed to invoke photobiomodulation on a specific tissue type or organ. Furthermore a “session” comprises a sequential series of treatments. As shown in
The step sequence of performing sessions for inflammation, infection, and healing, together make injury protocol 316, first by speeding up the inflammatory phase of healing involving fibroblast and collagen scaffolding, cell apoptosis, and phagocytosis, then by combatting secondary microbial infections opportunistically attempting to colonize the wound. Finally, after inflammation subsides and all infection is removed, the final step in the injury protocol promotes healing of the wound by improving the thermodynamics and energy supply needed to feed healthy tissue regrowth. Injury protocol 316 does not employ daily therapy sessions, but by intent spreads the first three sessions over a five-day period. Rather than daily therapy, the need for intervening days off is explained by graph 317, shown in
Despite controversy regarding the results of pharmacological studies, the biphasic model in “energy medicine” has been reconfirmed by numerous studies from radiation therapy of carcinoma to photobiomodulation. For example, in cancer therapy a small radiation dose is unable to adequately kill cancer cells while a large radiation dose is toxic and may rapidly kill the patient, far faster than leaving the cancer untreated. Adapting the biphasic model to photobiomodulation, graph 317 represents a pseudo-3D representation of PBT conditions where the x-axis represents treatment time; the orthogonally projected y-axis describes the power density of the PBT treatment measure in W/cm2, and the vertical z-axis measure the effective energy dose in J/cm2 or eV/cm2, i.e. the product of power and time and scaled by the observed magnitude of photobiomodulation, otherwise observed treatment efficacy. Topographically, the graph appears as two coasts, a mountain range and an interior valley. As shown for low dose treatments known as a sub-threshold dose, the treatment has an inadequate power, i.e. the rate of energy delivery, to do anything. Similarly for very short durations, no matter what the power level is there is not enough energy delivered to invoke photobiomodulation. In other words, too fast or too little energy does not invoke photobiomodulation.
For a combination of moderate power densities and durations, stimulation occurs resulting in a peak response curve for power densities or total energy doses above this level, beneficial PBT response and treatment efficacy declines rapidly and may even inhibit healing. Of course, excessively powerful levels lasers can cause burns, tissue damage, and ablation (cutting). And although LEDs are incapable of the power densities of lasers, they still can be driven at high currents causing overheating. These treatment conditions occur, however, far beyond the power levels and energy doses shown in the graph. The graph 319 on the right from a case study confirms the dose (fluence) dependence of PBT efficacy is indeed biphasic with a minimal response at 1 J/cm2, a peak response at 2 J/cm2, reduced benefits at 10 J/cm2, and inhibition at 50 J/cm2. Inhibition means the impact of the PBT treatment was worse than doing nothing. So for this reason along with concerns with safety and patient comfort PBT treatments should be spread over time and limited in power and dose (duration).
Data Security in Distributed PBT Systems
To effectuate multi-layer secure communication in the disclosed distributed PBT system, the operating system of the PBT controller (LightOS) and the operating system of the intelligent LED pads (LightPadOS) comprise parallel communication stacks using consistent protocols and shared secrets not discernable to a device operator, hackers, or unauthorized developers. As a result, the distributed PBT system operates as a protected communication network with the ability to execute security on any number of communication layers including data link Layer-2, network Layer-3, transport Layer-4 during setup, and on session Layer-5, presentation Layer-6, or application Layer-7 during operation.
As disclosed, “treatments, sessions, and protocols” define sequences of photoexcitation patterns and operating parameters including LED wavelength, modulation pattern and frequency, treatment durations, and the LED intensity (brightness), together determining the instantaneous power, average power, therapeutic dose (total energy), and ultimately therapeutic efficacy. In order to discourage copying or duplication, these sequences should be stored and communicated securely, using encryption and other methods. Although some data security methods and related security credentials can be executed as part of the application, i.e. in LightOS and LightPadOS, a added level of security can be achieved by inclusion of a “presentation” Layer-5 in the communication stack of the PBT controller host and any network connected intelligent LED pad clients.
The presentation layer is schematically represented in
Once communication stack 331 receives a USB packet, the ciphertext payload is extracted is transferred up to the presentation Layer-6, where it is decrypted and converted into plaintext. The plaintext file is then passed to the application Layer-7, where it is executed by the LED pad's operating system LightPadOS. Provided that the PBT controller's LightOS and the intelligent LED pad's operating system LightPadOS are designed to communicate and execute instructions in a self-consistent manner, the bidirectional link between communication stacks 330 and 331 functions as a virtual machine at the application Layer-7, meaning the distributed device behaves the same as if it were a single piece of hardware, and at the presentation layer to bidirectionally execute encryption and decryption. In this manner data can be transferred between the PBT controller and the intelligent LED pad. To prevent copying of the source code, however, the library of treatments is stored in encrypted form. For added security, the encryption key used for storing the algorithms in different than the key used for communication. So before a treatment file can be securely communicated it must first be decrypted.
The process for preparing, communicating, and executing an encrypted treatment is represented schematically in
In addition to treatment data, the same method can be used to prepare and transfer PBT session data from the PBT controller to the LED pad. This process is shown in the schematic diagram of
As shown in
Even greater security can be achieved by storing the algorithm in the LED pad in its encrypted form. As shown in
Distributed PBT System with LED Pad Player
Although JIT or transfer-ahead-and-shift-based data streaming for LED drive control may be used for controlling an LED pad in a distributed PBT system, the delivery of real time data over the communication network connecting the PBT controller and one or more LED pads becomes problematic when more sophisticated algorithms are required. Even when high bandwidth communication is available, the streaming of clock signals or multi-MHz digital data represents a dubious command and control method, particularly in safety-focused applications such as medical devices. An alternative made possible by the disclosed distributed PBT system is to employ a two-step process for driving the LEDs, first to download a “LED player” into the LED pads, then to download a “LED playback file” defining the specific PBT treatment or PBT session to be performed. In this method as disclosed, execution of LED drive is performed autonomously within the intelligent pad based on commands from the PBT controller. Because the LED driver is local within the LED pad, advanced functions such as waveform synthesis and sinusoidal drive can be realized. If more than one treatment or session is performed, only the new “LED playback” file need be downloaded anew. The original LED player can be retained.
The first step in intelligent LED pad playback is to download the LED player from the PBT controller into the LED pad. In a manner similar to the transfer process for streaming files shown in
Waveform synthesis is an algorithmic generation of excitation patterns such as sine waves and chords of sine waves but is also able to generate triangle waves, sawtooth waves, and to reproduce audio samples. The operation of waveform synthesizer 483, shown in
Since the duty factor D is an analog value limited between 0% and 100%, for convenience f(t) is limited to any value between 0.0000 and 1.0000. If f(t) is allowed to exceed 1.000 then the value must be scaled by the function's maximum value i.e. f(t)=[f(t)unscaled)/f(t)max] or the waveform will be clipped to the value 1.000 by the process ΨP [f (t)]. The PWM clock frequency called the symbol rate clock Φsym is given by Φsym=1/TPWM. The symbol rate is derived from the system clock Φsys and must exceed the highest frequency waveform f (t) being synthesized, or described mathematically as Φsys>Φsym>f (t). The table below describes the time intervals where tx=(x−1) TPWM breaking each 500 ms interval into its start time tx (on) and tx(off).
The second process in the LED player is the PWM Player 484, shown in
Although the PWM player function can be performed in hardware, it is easily performed in software. Described in logical pseudo-code in terms of a fast counter and x (incremented on each loop), then:
which means that in each cycle of duration TPWM from time×TPWM≤t<(×TPWM+DTPWM) the PWM player's output is equal in magnitude to the input (on state), and for an interval (×TPWM+DTPWM)≤t<(x+1) TPWM the PWM player's output is grounded, a digital “0”. By chopping the input Gsynth (t) with the PWM pulse Gpulse (t), the output 493a waveform is digital with an equivalent value of Gsynth (t)·Gpulse (t). The underlying waveform is shown superimposed atop the PWM signal 494. Although typically PWM player 484 outputs only a single digital waveform, it can produce more than one output as needed. In the example shown, although output 493a includes the multiplicative combination of two PWM pulses, output 493b is identical to Gpulse (t), meaning Gsynth (t)=1. PWM Player 484 can also output a constant time-invariant value Gsynth (t)·Gpulse (t)=1.
The third component of the LED player is LED driver 485. As shown in
The entire process of LED playback is summarized in
It should be noted that since each pad independently communicates asynchronously with the PBT controller and since each LED pad generates its own internal time reference for LED playback, strictly speaking the disclosed distributed PBT is an asynchronous system. That said, because of the high clock rates, precision time references, and high-speed communication network, timing mismatch between the LED pads is in the range of microseconds, imperceptible in UI control and UX response and having no impact on PBT efficacy.
Waveform Synthesis in Distributed PBT Systems
In distributed PBT systems, one PBT controller may control many intelligent LED pads, e.g. 3, 6 or more. Because of the number of intelligent LED pads required, economic considerations mandate limiting the complexity of a LED pad, specifically the cost and processing power of pad μP 339. Likewise, to manage product costs, the total memory within a LED pad must also be limited. Limited in computing power and memory, synthesis of waveforms within an LED pad in a distributed PBT system requires several criteria be met:
Detailed operation of waveform synthesizer 483 is illustrated in
Waveform Synthesis with Unit Function Generator
The operation of unit function generator 551, illustrated in
Synthesis of a single sine wave or a chord of three or more sine waves of frequencies fa, fb, fe, and relative magnitudes Aa, Ab, Ac, respectively can be described by the equation f (t)=Aα(0.5+0.5[Aa sin (2πtfa)+Ab sin (2πtfb)+Ac sin (2πtfc)]/[(Aa+Ab+Ac)])+0.5(1−Aα). This mathematical process, shown in
Digital summation, the arithmetic addition of binary, octal, or hexadecimal numbers, is identical to the addition of decimal numbers except that the numbers comprise binary or binary equivalent representations of numbers, i.e. base two (b2), base eight (b8), or base sixteen (b16), rather than base ten (b10). Although digital summation can be performed using dedicated devices, the arithmetic logic unit (ALU) resident within the LED pad's microcontroller 339 can easily perform the required tasks in binary mathematics. Converting numbers into another base then adding them in the alternate base and converting them back to base 10 produces identical results. This equivalency principle is shown in the example table below for the addition of three numbers in different bases. In the context of waveform synthesis, the numbers being added represent the instantaneous values of three sine waves at any given moment, added together to produce a digital summation of the three numbers. For illustrative purposes, the values of the sine wave have been magnified by ten times, i.e. where Axfx (t1) and where Ax=10 for x=1 to 3. For example, at a specific time t1, the value of the functions fa (t1))=1, fb (t1))=0.5, and fc (t1))=0.5. In a case where the gain factors are evenly weighted, i.e. where Aa=10, Ab=10, and Ac=10, then the summation 10(Σfx (t1))=20. To convert this number into a unit function, the resulting sum must be scaled to a fractional number between a result between 0.000 and 1.000—a task performed by auto-range function 584.
For each time point tx, dividing Ax (Σfx (tx)) by the sum of the gain multipliers (Aa+Ab+Ac) provides an average of the blended chord. In the case of even weighting, i.e. where Ax=10, the sum of these gain factors (Aa+Ab+Ac)=30. Applied to the above summation, auto-range scaling converts the summation of 20 to the auto-range scaled number 20/30=0.666, the same number as found by averaging three numbers having instantaneous values of 1.0, 0.5, and 0.5. The auto-range function also works when the sine waves are blended with non-even weighting, where one or more sine wave frequency components dominate the mix. For example, a blend where Aa is 20% of the total, Ab is 40%, and where Ac=40% yields the following mix of signals of the
In this case (Aa+Ab+Ac)=100 while g(t)=70, so that the output of the auto-range function is 0.7. The auto-range function employs positive multiplier Aα>0 to scale the signal to compensate for magnitude compression. Because the scalar Aα shifts not only the function but also shifts its average value, the DC offset correction term 0.5 (1−Aα) is added to the sum of sine waves to re-center the function's average back down to 0.5.
The figure also illustrates a variety of mixed blend chords. Graph 567 depicts an evenly weighted mix blend of sinusoids of frequencies fa and fb, graph 568 depicts an evenly weighted mix blend of sinusoids of frequencies fa and fc, and graph 569 depicts an evenly weighted mix blend of sinusoids of frequencies fb and fc. Unevenly mixed blends of two sine waves with a ⅔rd weighting of frequency fa and a ⅓rd weighting of frequency fb are shown in graph 570. Three sine wave mixes include an evenly weighted chord 572 and an unevenly weighted chord 571, where [Aa, Ab, Ac]=[0.2, 0.4, 0.4]. Algebraic calculation of sin (θ) where θ=fxt for x=a, b, c . . . requires computation of a power series [http://www2.clarku.edu/˜djoyce/trig/compute.html] for each sin (θ) evaluation where
where n!=n·(n−1)·(n−2) . . . 3·2·1. Note the same method can be used to produce cosine waveforms, which are nothing more than since waves shifted in phase by 90°. To produce a three sine wave chord Ax (Σfx (tx)) with the highest frequency sine wave in the 9th octave, approximately 20 kHz, with 360 degrees of precision requires that all the foregoing calculations along PWM generation ΨP [f(t)] must occur at a rate of 7.2 MHz, i.e. within 138 ns. This approach is computationally intensive, wasting compute cycles and burning power, especially when synthesizing high frequency since waves.
Waveform Synthesis with Primitives Processor
Primitives processor 552, shown in
sin 0°=0
sin 15°=(√{square root over (6)}−√{square root over (2)})/4
sin 30°=1/2
sin 45°=√{square root over (2)}/2
sin 60°=√{square root over (3)}/2
sin 75°=(√{square root over (6)}+√{square root over (2)})/4
sin 90°=1
Since the sine function is periodic, there is no reason to recalculate the same values each time evaluation sin (θ) is required. In such a case the use of a lookup table is potentially beneficial.
Lookup tables, however, face several fundamental hurdles—for one, the table can only return a value of the function at the same input condition for which it was previously calculated, i.e. with the same argument. Just because the table contains the value of sin (45°) doesn't mean it knows the value of sin (22°). In a subroutine call to a lookup table, ensuring that the input argument matches its available arguments is not likely unless the two are co-developed to insure they employ the same values. Another issue in the use of lookup tables is the stiff equation problem, performing high-resolution waveform synthesis across over many orders-of-magnitudes of frequency. For example, if a 20 kHz sinusoid (9th octave) is synthesized using PWM methods with 16-bit precision, the required sample rate is (20,000 Hz)(162)=1,310,726,000 Hz or roughly 1.3 GHz. If in the same simulation, an infrasound excitation pattern at 0.1 Hz (−2nd octave) is added to the chord, the period of the low frequency wave component is T=1/f=1/(0.1 Hz)=10 sec. This means to maintain the required resolution in the ninth octave while synthesizing a single 10 second infrasound wave requires a table of (1.3 GHz)(10 sec)=13 billion data points. Such a huge data table not only requires too much time for the transfer from PBT controller into the intelligent LED pad, but it also requires too much memory.
To resolve the stiff equation issue while ensuring matching arguments between subroutine calls and lookup tables, an inventive method disclosed herein uses pre-defined periodic waveform primitives such as sin waves or linear (scalar) functions, combined with a series of counters sharing a common numeric base, e.g. base 2. The term “primitives” as used herein means tabular time independent description of a waveform—one where the waveform is described using arguments specified relative to the waveform's period T and to not absolute time. For example, in linear functions such as a sawtooth wave, inputting a rectilinear (Cartesian) argument to the lookup table returns a unique value. In a linear unit sawtooth ramping from 0 to 1 over a period T, the input p is unit-less, where at 25% of T the function “saw (p)” has a value of 0.25, at 78% of T the function saw (p) has a value 0.78, etc. To accommodate repeating cycles, it is beneficial to express the argument input “p” using the modulus function MOD (argument, limit) where MOD (p, 1) for positive inputs returns a value bounded between 0 and 1, i.e. the remainder after division by the largest integer multiple of the limit. For example, MOD (0.78, 1)=0.78, MOD (5.78, 1)=0.78, and MOD (z.78, 1)=0.78 for any value of z. As such only data covering one period T is required to describe any repeating waveform.
The same function applies to polar coordinates. Evaluation of sin (MOD (θ, 360°)) produces a repeating sequence of values between sin (0°) and sin (359.99 . . . °). At 360° the entire cycle repeats because sin (MOD (360°, 360°))=sin (0°). Note that in actual code or in spreadsheets the angle arguments θ of sin or any other trigonometric functions are expressed in radians, not in degrees, but the principal of the modulus function and its application remain the same. Using the modulus function in the manner disclosed, the size of a lookup table for any periodic function can be limited to a single period, reducing the size of the table dramatically. The number of data pairs in each lookup table is therefore equal to the principal resolution ξ providing a one-to-one correspondence between an input Φx to a lookup table and its output fx where for any octave x, the relation Φx=ξx fx describes the transformation performed by the lookup table subroutine call.
Although these function primitives comprise a collection of time independent states describing a mathematical function, waveform synthesis requires their combination with oscillators comprising either digital or analog clocks to produce a time varying waveform. Specifically for rectilinear functions of period T such as the triangle or sawtooth waves the argument x can be expressed as x=t/T, and for sine waves, sine wave chords, and other trigonometric unit functions θ=tf In either case a source of time is required to transform a time independent wave form primitive into a time varying function. One such implementation to generate a range of time sources, represented algorithmically in
During synthesis, each clock is converted to a time varying waveform f (t) using a lookup table of the periodic function, e.g. sine wave, sine wave chords, triangle waves, sawtooth waves, etc. Each clock is paired with the waveform it creates, for example Φ8 uses sine wave lookup table 618 with primitive resolution ξ8 to generate sine wave frequency f8, Φ3 uses sine wave lookup table 613 with primitive resolution ξ3 to generate sine wave frequency f3, and Φ1 uses sine wave lookup table 611 with primitive resolution ξ1 to generate sine wave frequency f1, where
f8=Φ8/ξ8
f3=Φ3/ξ3
f1=Φ1/ξ1
and, in general, fx=Φx/ξx. So, in operation, the 10-octave waveform-summing implementation primitives processor 552 uses nine binary counters 598 to 590 to generate ten clock frequencies comprising input Φ9=Φsym and clocks Φ8 to Φ0 to drive corresponding sine wave lookup tables 619 to 610 to synthesize sine waves f9 to f0.
The mixing process involves selecting various combinations of the sine waves using octave selector switches 609 to 600, blending the selected sine wave components in a digital-mixer summing node 630 where the components are weighted in various percentages by digital gain amplifiers 620 to 629. The blended summation is scaled by auto range function 631 into the range as 0.000 to 1.000. Although the primitives processor 552 can be implemented in hardware or with firmware-controlled hardware, the function can be entirely emulated using software, wherein mixer 630 is executed digitally using binary addition, and the auto range function 631 can be performed using binary mathematics executing one of several division algorithms (https://en.wikipedia.org/wiki/Division_algorithm). To avoid performing unnecessary operations, primitives-processor 552 only executes operations on selected octave selector switches 600 to 609.
Using the method shown in
To avoid aliasing and phase shift distortions, counter cascade 598 to 590 is synchronized to a common clock called the symbol rate Φsym output from tuner (counter) 599. For convenience, symbol rate Φsym is equivalent to the clock signal Φ9 for ninth octave waveform synthesis, but this relationship is arbitrary. Any symbol rate higher than the PWM resolution of the highest synthesized frequency, where Φsym≥ξsym fmax will suffice. The counter cascade can be realized using hardware or software. Although a ripple counter can be used, a synchronous counter is preferred to prevent clock phase hift. A ripple counter is a counter cascade where each counter stage's output is instantly available at the same time it is input into the next stage. Because of the propagation delay through each counter stage, the outputs of higher frequency clocks change state before the lower frequency clocks do. The state changes therefore “ripples” down the cascade, such that the first clock Φ9 changes state, followed a moment later by the clock Φ8 and then by the clocks Φ7, Φ6, Φ5, etc., rippling like a wave traversing a pond's surface.
In contrast, a synchronous counter operates synchronously, such that even though the digital count takes time to ripple through the counter chain, the outputs only change contemporaneously with a synchronizing clock pulse. In this manner, the signal ripple through the counter cascade is invisible to the user. More specifically, whether implemented in hardware or in software, a synchronous counter operates like a ripple counter but with D-type flip-flop [https://en.wikipedia.org/wiki/Flip-flop_(electronics)] latched outputs. The D flip-flop retains is prior state until it is enabled by a latch signal with the corresponding truth table, i.e. the data input high or low state is copied to the latch output only when the sync clock goes high, after which the sync clock can return low and the flip flop output will remain latched in what ever state was on the D input at the time of the last sync clock pulse until the next sync pulse occurs. During that interval between clock pulses, the output of each counter stage can change without the transition appearing on the counter's output. To avoid clutter in the schematic, counters 599 to 590 may represent a synchronous counter without explicitly depicting the D flip flop latch or any sync clock input. To ensure that the clock transitions ripple completely through the counter cascade before updating the state of clock outputs Φ9 through Φ0 the sync clock pulse is derived from state transition of the lowest synthesized frequency clock, in this exemplar represented as Φ0.
The symbol rate Φsym feeding the counter cascade is generated from system clock rate Φsys by using a programmable “tuner” counter 599. The symbol clock rate Φsym is generated to produce a maximum output frequency fmax at a resolution ξsym. The value of the primitive resolution ξsym is a programmable input to tuner counter 599 that can be changed depending on the waveform synthesis being performed. The numerical variable ξsym, referred to herein the “primitive symbol resolution” is defined as the resolution of the highest synthesized frequency where ξsym=Φsym/fmax having a value that may range from 24 to 65,536 depending on the synthesis precision required. For example, selecting ξsym=96 in sine wave synthesis means for the highest pitch sine wave of the synthesizer is related to the symbol clock rate by the relationship Φsym=ξsym fmax=96 fmax where 90° of arc uses 24 points, one point every 3.75°. In operation, setting tuner counter 599 produces the entire cascade of frequencies derived from and tuned to the symbol clock rate Φsym. The resolution of the ξsym need not match the resolution of lower octave lookup tables. Different precision levels ξx can be employed for lookup tables 610 to 619, or alternatively the same precision lookup table may be employed to generate some or all the required frequency components. Alternatively, the same lookup table can be used for every generated sine wave. In such cases every sine wave frequency fx has an identical resolution ξ9=ξ8=ξ7 . . . ξ1=ξ0.
Because the entire counter cascade is driven from a common symbol clock rate Φsym the exact frequency relationship of the synthesized waveforms is precisely defined by the counter frequency Φx and its corresponding lookup table's resolution ξx. Although this relationship is shown using binary (divide by 2) counters, there is no restriction in what the counter's divisor may be. Dividing by two is convenient because it is equivalent to a halving of frequency, equivalent in musical scales to one octave or twelve half steps. The counters however can utilize any cascade combination of counters each with different divisors. Alternatively, programmable counters, where the count is loaded into the counter, may be employed. Furthermore, since the counters operate at fixed clock rates and complete one complete oscillating period in every ξx data points, i.e. one complete cycle of a lookup table, then the relative timing and phase of any two periodic functions is precisely known. Given, for example, two sine waves having frequencies fx and fy, where
fx=Φx/ξx
fy=Φy/ξy
then the frequency ratio of waveforms is given by
This ratio is illustrative that frequency scaling can be performed by changing the clock Φx or by changing the resolution ξx of the lookup table. For example, if a constant resolution lookup table is used where ξx=ξy=24 then the frequency ratio fx/fy of the synthesized sine waves depends only the ratio of clock rates Φx/Φy or
In such cases, a clock frequency ratio Φx/Φy=4, results in two sine waves of the same note but two octaves apart, for example the musical note A at 1,760 Hz in the 6th octave and the musical note A at 440 Hz in the 4th octave.
The resulting 2 sine-wave chord is given by the summation
g(t)=0.5+0.5[A6 sin(f6t)+A4 sin(f4t)]=0.5+0.5[A6 sin(Φsymt/192)+A4 sin(Φsymt/768)]
The multiplier 0.5+0.5[periodic expression] is used to scare the peak magnitude of the sine wave from ±1 to ±0.5 centered on an average value of zero. The adder 0.5 shifts the curve up by +0.5 to span a positive range between 0.000 and 1.000. By enabling octave selector switch 601 as shown in
and the resulting 3 sine-wave chord is given by the summation
g(t)=0.5+0.5[A6 sin(f6t)+A4 sin(f4t)+A1 sin(f1t)]=0.5+0.5[A6 sin(Φsymt/192)+A4 sin(Φsymt/768)+A1 sin(Φsymt/6144)]
As described the above synthesis method utilizes a single waveform primitive to concurrently generate chords consisting of two or three sine waves.
Additional details of the operation of primitives-processor 552 are illustrated in the single primitive chord synthesis illustrated in
Since all the relationships between clock rates and frequencies in a single primitive binary counter cascade comprise precise ratios to other frequencies present in the primatives processor 552, setting the frequency and resolution of any one synthesized waveform of frequency fx and ξx automatically determines the frequency of every other synthesized frequency and clock in the entire counter cascade including the symbol rate Φsym and the maximum frequency fmax. Frequency scaling of the primitives process is summarized in the following table:
The primitive processor 552 whose operation is depicted in
Since the entire synthesizer is tuned to octave multiples, choice of the fkey key select input is arbitrary. For convenience, digital tuning can be based in accordance with international frequency standards for pitch. For example, the pitch “A” above middle C in the fourth octave has a frequency 440 Hz. This 440 Hz tone is considered the general tuning standard for musical pitch [https://en.wikipedia.org/wiki/A440_(pitch_standard)]. Referred to as A440, A4, or the Stuttgart pitch, the International Organization for Standardization classifies it as ISO-16. Adapting this standard for the primitive processor, the disclosed synthesizer is tuned to a specific key by selecting a note or frequency in the fourth octave.
Specifically, the input “key select” 642 sets the note or frequency in the 4th octave to which the entire synthesizer is tuned. If the maximum synthesized frequency is chosen to be in the ninth octave of the audio spectrum, and arbitrarily we select the 4th octave as the frequency input range for tuning the synthesizer, then the 9th octave and the fourth octave differ by 5 octaves. Since 25=32, it means that fmax=f9=32f4 and set in accordance key select 642 the maximum frequency fmax=32 fkey. Given Φsym=ξsym fmax then Φsym=ξsym (32fkey). For example, setting “key select” to 440 Hz (standard A above middle C) where f4=440 Hz and where fmax=32 fkey=32(440 Hz)=14,080 Hz automatically scales the entire spectrum of available synthesized frequencies so that f9=14,080 Hz, f8=7,040 Hz, f7=3,520 Hz, f6=1,760 Hz, f5=880 Hz, f4=4400 Hz, f3=220 Hz, f2=110 Hz, f1=55 Hz, f0=22.5 Hz, and f−1=11.25 Hz. Should fkey be set to middle D then all the synthesized frequencies fx will also be multiples of D. Or if fkey is set to middle A# then all the binary synthesized frequencies will also be multiples of A#. The synthesis of sine waves having frequencies other than octave multiples will be discussed later in this disclosure.
Referring again to the primitive processor implementation of
Φsym=Tsym(32fkey)=24(32)(440 Hz)=337,920 Hz,
Tsym=1/Φsym=1/(337,920 Hz)=2.96 μs
This symbol rate corresponds to a synthesized maximum frequency fmax in the ninth octave where fmax=f9=Φsym/ξsym=(337,920 Hz)/24=14,080 Hz with a corresponding period T9=1/f9=71.02 μs which is also equivalent to Tsym ξsym=(2.9592 . . . μs)(24)=71.02 μs.
By establishing a time reference used the binary counter cascade, the time-independent sine primitive table 645 is transformed into a time-based description of the function 646a, specifically g (t). The same clock symbol clock Φsym is the time base for generating clocks Φ6 and Φ4 used to synthesize 6th and 4th octave sinusoids 647a and 648a, specifically
Φ6=Φsym/8=(337,920 Hz)/8=42,240 Hz, having a period 1/Φ6=1/(42,240 Hz)=23.67 μs
Φ4=Φsym/32=(337,920 Hz)/32=10,560 Hz having a period 1/Φ4=1/(10,560 Hz)=94.79 μs
These clocks are used to synthesize two synchronous sine waves having frequencies f6 and f4 with the following frequencies
f6=Φ6/ξ6=(42,240 Hz)/24=1,760 Hz with a corresponding period T6=1/f6=568 μs
f4=Φ4/ξ4=(10,560 Hz)/24=440 Hz with a corresponding period T4=1/f4=2,273 μs
In the prescribed manner, the sine waves of equal resolution but of differing frequency can be synthesized with a common clock and a single waveform primitive. In other words, the primitive table sets the shape of the waveform while the resolution ξ and the counter clocks determine the frequencies of the generated sine waves. The exemplary table below shows the relationship between the argument of the sine function θ measured in degrees (or in radians), the normalized unit sine wave function 0.5+0.5 sin (θ), and the times corresponding to the states for sinusoids oscillating at frequencies fmax in the ninth octave, f6 in the sixth octave, and f4 in the fourth octave.
Although the table reveals a detailed pattern between 0° and 90°, for brevity's sake detailed 15° descriptions of the other three quadrants are redundant and have been excluded (because the sinusoid is a symmetric function, all four quadrants can be constructed from the data of one quadrant). The time required to complete a sine wave's 360° cycle, i.e. the period T, depends on the sine wave's frequency. For example, consistent with the foregoing calculations, sine waves having frequencies f9, f6, and f4 comprise periods of 71 μs, 568 μs, and 2,273 μs respectively. Specifically, the value of the function 0.5+0.5 sin (θ)=1 when the argument θ=90°=π/2. The period of the sine wave T occurs at four times this duration, when θ=360°=2π. For example, a sixth octave sine wave tuned to the key of A requires 142 μs to complete one quarter of its cycle, so its period is T6=4(142.05)=569.2 μs.
Using a weighted average with a divisor (A6+A4) yields . . .
During averaging, the term [A6+A4] does not affect the 0.5 offset because it appears in both the numerator and denominator of the fraction modifying the average value of the function. The second purpose of the Auto Range function, i.e. maximizing the sine component by Aα to full scale, does in fact change the average of the function. To avoid shifting the 0.5 average value the auto range function disclosed herein uses an additive correction factor 0.5 (1−Aα)
As described the summation g (t) is scaled by auto-range function 631 by the scalar [Aα/(A6+A4)] performing a weighted average of the sine wave components along with digital multiplication by the gain factor Aα. The resulting time varying waveform f(t) 553, shown in table 649, describes a chord 655 consisting of two sine waves of frequencies f6 and f4 having an average value of 0.5 and the ability to maximize the amplitude of the periodic function over the range from 0.000 to 1.000 with no signal clipping or distortion. PWM generator 555 then processes f (t) by the PWM transformation ΨP [f (t)] producing synth out data 488 comprising a PWM string of pulses 499, referred to as Gsynth (t). Unlike f (t) which is analog, the Gsynth (t) is digital in amplitude, transitioning between a 0 (low) and 1 (high) state as a sequential series of pulses, embedding analog information in its varying pulse widths.
One issue arising from the disclosed synthesis method is quantization noise. Although a single sine wave does not suffer from this issue, when two or more sine waves are added the noise appears in the waveform. This origin of the noise is illustrated in
The impact of using a fixed resolution primitive with different clock rates is shown in
One resolution to this problem is illustrated in
f6=Φ6/ξ6
f5=Φ6/ξ5=Φ6/(2ξ6)
f4=Φ6/ξ4=Φ6/(4ξ6)
As indicated, sinusoidal frequencies f6, f5, and f4, generated from a common clock Φ6, are all factors of two from one another, as shown in table 661. In this manner, the time steps are constant for all the generated frequencies. The resulting curves, shown in
is maintained when Φx=Φy.
In
To limit the maximum size of the primitive look up tables, the audio spectrum can be broken up into bands, e.g. upper, middle, and lower scales as well as an infrasound band (i.e. below 20 Hz) for zero and negative octaves. Such an approach is employed in the quad-range scaled-primitive synthesis block diagram shown in
The highest frequency clock of the cascade, the symbol clock Φsym, is then used to synthesize sine waves in four bands or scales. In the upper scale Φsym is used to generate sine waves f9, f8 and f7 in accordance with selector switches 609, 608, and 607 respectively. If a selector switch is enabled, the clock pulse for Φsym is passed to the corresponding sine wave lookup table 699, 698, or 697 to produce sine waves f9, f8 and f7 as desired.
Specifically, sine wave lookup table 699 with resolution ξ9=24, if enabled, produces a sine wave f9 with a frequency f9=Φsym/ξ9. Sine wave f9 has a frequency 32 times the fkey key select frequency and 1/24th of the symbol frequency Φsym. In the same upper scale, sine wave lookup table 698 with resolution ξ8=48, if enabled, produces a sine wave f8 with a frequency f8=Φsym/ξ8=Φsym/(2ξ9). Sine wave f8 has a frequency 16 times the fkey key select frequency and 1/48th of the symbol frequency Φsym. Similarly, sine wave lookup table 697 with resolution ξ7=96, if enabled, produces a sine wave f7 with a frequency f7=Φsym/ξ7=Φsym/(4ξ9). Sine wave f7 has a frequency 8 times the fkey key select frequency and 1/96th of the symbol frequency Φsym. Because generation of sinusoids with frequencies f9, f8 and f7 comes from the same clock frequency Φsym, their waveform synthesis employs the same time increments, thereby avoiding the aforementioned issue of digitization error within the upper scale.
The same clock Φsym is also divided by 8 in counter 672 to produce a lower frequency rate clock Φ6 used for sinusoid synthesis of sine waves f6, f5, and f4 in the middle scale. If any selector switch 606, 605, and 604 is enabled, the clock pulse comprising Φ6=Φsym/8 is passed to the corresponding sine wave lookup table 696, 695, or 694 to produce sine waves f6, f5 and f4 as desired. Specifically, sine wave lookup table 696 with resolution ξ6=24, if enabled, produces a sine wave f6 with a frequency f6=Φ6/ξ6=Φsym/(8ξ6). Sine wave f6 has a frequency four times the fkey key select frequency and 1/192 of the symbol frequency Φsym. In the same middle scale, sine wave lookup table 695 with resolution ξ5=48, if enabled, produces a sine wave f5 with a frequency f5=Φ6/ξ5=Φsym/(16ξ6). Sine wave f5 has a frequency 2 times the fkey key select frequency and 1/384 of the symbol frequency Φsym. Similarly, sine wave lookup table 694 with resolution ξ4=96, if enabled, produces a sine wave f4 with a frequency f4=Φ6/ξ4=Φsym/(32ξ6). Sine wave f4 has a frequency equal to the fkey key select frequency and 1/768 of the symbol frequency Φsym. Because generation of sinusoids with frequencies f6, f5 and f4 comes from the same clock frequency Φ6=Φsym/8, the waveform synthesis employs the same time increments, thereby within the middle scale avoiding the aforementioned issue of digitization error.
To generate sinusoid f3, f2, and f1 in the lower scale, clock Φ6 is divided by 8 in counter to produce a lower frequency rate clock Φ3. If any selector switch 603, 602, and 601 is enabled, the clock pulse comprising Φ3=Φsym/64 is passed to the corresponding sine wave lookup table 693, 692, or 691 to produce sine waves f3, f2 and f1 as desired. Specifically, sine wave lookup table 693 with resolution ξ3=24, if enabled, produces a sine wave f3 with a frequency f3=Φ3/ξ3=Φsym/(64ξ3). Sine wave f3 has a frequency f3 of ½th the fkey key select frequency and 1/1,536 of the symbol frequency Φsym. In the same lower scale, sine wave lookup table 692 with resolution ξ2=48, if enabled, produces a sine wave f2 with a frequency f2=Φ3/ξ2=Φsym/(128ξ3). Sine wave f2 has a frequency ¼th the fkey key select frequency and 1/3,072 of the symbol frequency Φsym. Similarly, sine wave lookup table 691 with resolution ξ1=96, if enabled, produces a sine wave f1 with a frequency f1=Φ3/ξ1=Φsym/(256ξ3). Sine wave f1 has a frequency ⅛th the fkey key select frequency and 1/6,144 of the symbol frequency Φsym. Because generation of sinusoids with frequencies f3, f2 and f1 comes from the same clock frequency Φ3=Φsym/64 the waveform synthesis employs the same time increments, thereby within the lower scale avoiding the aforementioned issue of digitization error.
The counter cascade can also be used to generate infrasound excitation of the LEDs, i.e. sine waves having frequencies below 20 Hz. As shown, the output of divide-by-8 counter 674 having a clock frequency Φ0=Φsym/512, if chosen by selector switch 600 produces a sine wave f0 at a resolution ξ0=24 where the generated frequency is given by f0=Φ0/ξ0=Φsym/(512ξ0). Using the above principles, the scaling concept can be extended to produce two lower infrasound frequencies f−1 and f−2 (as desired) by including two additional sine look-up tables with respective resolutions 48 and 96 driven by clock Φ0.
In the foregoing discussion, the use of time increments comprising constant intervals minimizes quantization noise but requires larger higher-resolution look up tables increasing the required memory capacity within a LED pad.
Provided that a lookup table has the required number of data points, a single table can be used to generate multiple octaves of data from a single clock. For example, a table of 24,576 points can be used to synthesize sine waves spanning 11 octaves with an angle precision of 0.0146484375° per data point. Combining a 337,920 Hz clock with an 11 octave universal primitive table, frequencies can be generated, e.g. in the key-of-A ranging from f9=Φsym/ξsym=14,080 Hz in the 9th octave down to 13.75 Hz in the −1st octave (including A at 440 Hz). This example is illustrated in the 4th column of the table below. Using the same symbol clock rate, i.e. in the same table column, if the number of synthesized frequencies is reduced to only 7 octaves, the size of the universal primitive data table shrinks to 1,536 data points spanning a range from 14,080 Hz in the 9th octave down to f3=220 Hz.
Alternatively, using the same 7-octave universal primitive table, the frequency band covered can be shifted by employing a lower symbol clock rate. For example, as shown in the 5th column of the table below, with symbol clock rate Φsym=168,960 Hz, a 1,536 data point universal primitive, can cover a range from 7,040 Hz in the 8th octave down to 110 Hz in the 2nd octave. By shrinking the table size and lowering the symbol clock, a compromise in sine wave frequency range and data table size is also possible. Referring to the 6th column of the table below, a symbol clock rate of Φsym=42,240 Hz can generate sine waves from 1,760 Hz in the 6th octave to 55 Hz in the 1st octave using a look-up table with only 768 data points.
The process of waveform synthesis using universal-primitive synthesis is shown in
In waveform synthesis using a universal primitive table, the same table is employed to generate any sine wave with equal or lower precision than the table's precision. For example, if the table 677 resolution is 96 points, i.e. increments of 3.750, the same table can be used to generate sine waves with 48, 24 or 12 points, the higher the resolution, the lower the synthesized frequency.
Various frequency sine waves are synthesized by looking up the data for every angle or by systematically skipping angles. For example, in the table above, using a symbol clock with a frequency Φsym=224,256 Hz with rows 00, 04, 08, 0C, 10 . . . results in a 5,672 Hz sine wave while selecting every row in table produces a 1,168 Hz sine wave.
Key Select and Custom Waveform Synthesis
As described previously, because the periodic waveform generation involves a cascade counter with fixed frequency-multiples, the waveform synthesizer is essentially “tuned” to specific key. The user interface (UI) and resulting operation (UX or user experience) is shown in
A table of exemplary frequencies by octave is shown below for a variety of tunings for musical keys of F#/G♭ through B. The scales shown are referred to as “equal tempered”.
Another option in UI menu 701 is the selection “Other”, in which case other scales are used to modulate the LEDs. These scales, including Pythagorean, Just Major, Mean-tone, and Werckmeister, shown in the table below, share the frequency for middle C at 261.626 Hz with the even-tempered scale but differ in the relative frequency relationships between the twelve half steps spanning an octave. For example, in an even-tempered scale, the tone of A4 above middle C is set to 440 Hz but in other scales varies from 436.05 Hz to 441.49 Hz.
In “Other” mode, the user interface (UI) and resulting operation (UX user experience) is shown in
And although the scales vary throughout the octave, they all match one another for the frequency C. For example, as shown for comparative purposes, the fifth octave C5 frequencies shown in the below table all match at f5=525.25 Hz=2f4. The notation used by Pythagorean, Just Major, and Mean-tone, scales differ slightly from the Werckmeister and even-tempered scales in their use of sharps # and flats ♭. Although the exact effects of tuning on PBT efficacy are not well characterized, scientific studies have confirmed that therapeutic efficacy of PBT treatments is clearly frequency dependent. If on UI menu 701, the item “Physio” is selected, frequency scales reported in these medical studies to be therapeutically beneficial are used for the value of fkey. If instead the Custom button in menu 701 is selected, as shown in
The disclosed PBT system is also capable of generating excitation patterns comprising a chord of three frequencies within the same octave, i.e. a triad, and optionally with an additional frequency as a 7th or one octave higher than the root note of the chord. A block diagram of an algorithmic chord builder is shown in
In operation, chord construction algorithm 680 uses a scaled fraction of symbol clock Φsym to drive four lookup up tables 682B, 684, 683 and 682A to synthesize four sine waves with a fundamental root at frequency ff, a third at a frequency f3, a fifth at a frequency f5 and a top note either a 7th or a note one octave higher than the root (depending on the selection) with a frequency ft. The three or four frequencies are then blended in accordance with digital gain amps 685A, 686, 687, and 685B with gains Af, A3, A5 and At respectively, and mixed in summing node 630 to create g (t).
The exact frequencies of the notes in the chord depend on the value of the selected octave 681 and by the value of fkey key select 642, i.e. the tuning or key of the binary cascade counters. Together these synthesizer settings determine the frequency or the root note, also referred to as the fundamental of chord. The remaining notes in the chord are calculated as a ratio to the chord's fundamental frequency in accordance with the following table describing the frequency ratio of common musical chords (https://pages.mtu.edu/˜suits/chords.html):
Although the chord builder can be a library element used in predefined treatments and sessions, chords can also be created using a UI menu such as shown in the exemplar of
Returning to the synthesizer block diagram of
An example of autorange operation 584 is illustrated in
Examples of PWM output 490 using the transformation ΨP [f (t)] are shown for a variety of non-sinusoidal functions in
PWM Player Operation
Revisiting the block diagram of
Since Gpulse (t) comprises a PWM string of pulses, the waveform alternates between high and low logic states. Specifically, whenever the function Gpulse (t)=1, i.e. the PWM pulse 492 is in its high or logic “1” state, the digital state of Gsynth (t) is precisely reproduced at the output of PWM player 484. For example, when Gpulse (t)=1 then if Gsynth (t)=1 the output of PWM player 484 is high and if Gsynth (t)=0 then the output of PWM player 484 is low. Whenever, however, the function Gpulse (t)=0, i.e. the PWM pulse 492 is in its low or logic “0” state, the digital state of Gsynth (t) is forced to zero, ignoring the state of the input Gsynth (t). Logically, this function is the same as an AND gate. Mathematically it is equivalent to a digital multiply where the output of PWM player 492 is given by the product Gsynth(t)·Gpulse (t). Actual implementation of PWM player 492 may be achieved in hardware, software/firmware, or some combination thereof.
Illustrated schematically in
The off portion of the pulse is given by toff=TPWM−ton=(0.43 ms)−(0.26 ms)=17 ms. When the pulse frequency changes to 584 Hz, the period increases to 1.712 ms with an on-time of 1.027 ms. Thus, pulse string 492 is dynamically generated by pulse width modulator 711 in accordance with the dynamic conditions specified in table 491. The output of PWM player 484, shown as a gated PWM pulse string 493, includes the with embedded waveform 494 output from the waveform synthesizer 483.
Pulse width modulator 711 essentially comprises two sequential counters, one for counting the on time, the other for counting the off time, where Gpulse (t)=1 during the ton interval and Gpulse (t)=0 during the toff interval. In logic pseudo-code, operation of pulse width modulator 711 can be described by defining the following subroutine.
The above subroutine entitled “Pulse Width Modulator” is a software pseudo-code description performing the same function as block 711, i.e. executing a loop for an interval Δt comprising alternating digital pulses in the logic 1 state for duration ton and a logic 0 state for a duration (TPWM−ton) repeatedly until the count of clock Tref=1/Φref exceeds Δt. The variables [Δt, TPWM, ton] are loaded into the subroutine from the sequence defined in table 714 in PWM player parametrics 491, as illustrated in the following exemplar executable pseudo-code where table look ups are specified by the value in the (row, column) pair, i.e. table (Row, column) where Row is a defined variable:
As described, the above executable pseudo-code repeatedly reads table 714, loading data into the subroutine call Pulse Width Modulator with the arguments for its duration Δt, the PWM pulse period TPWM, and the PWM pulse on-time ton, incrementing the row number after each loop is completed. For example, when commencing Row=0 so Δt is calculated by the difference of the time entries in the second row and the first row in the table's first column, i.e. where table (2,1)=180 sec and where table (1,1)=0, therefore Δt=180 sec in the first loop of the code. Similarly, in the first row and fourth column, the data for the PWM period is TPWM=table (1, 4)=0.43 ms, and in the first row and fifth column, the data for the PWM one time is ton=table (1, 5)=0.26 ms. At the end of the loop, the row number is incremented from 1 to 2, so the new data is read from the second row where Δt=[table (3,1)−table (2,1)]=[360 s−180 s]=180 s, TPWM=table (2, 4)=1.712 ms, and ton=table (2, 5)=1.027 ms. This process continues until a null entry for TPWM is encountered, i.e. TPWM=table (Row, 4)=0. At that point, program execution concludes. So as demonstrated, the functions of PWM Player 484 and pulse width modulator 711 can be executed using software or hardware, or some combination thereof.
For example, the function of pulse width modulator 711 is represented schematically in
As a result, clock pulses from clock ΦPWM are routed through AND gate 723 to ton counter 721 but blocked by AND gate 724 from reaching the toff counter 722. Accordingly, ton counter 721 counts down for a duration ton. During its countdown, the output of ton counter 721 remains in a logic “0” state and has no effect on S/R latch 720. Concurrently, lacking a clock input, the operation of toff counter 722 is suspended. Referring to the associated timing diagrams 728-731, during the interval from Tx to (Tx+ton), PWM clock ΦPWM 728 continues counting, reset signal 729 comprising the R input to S/R latch 720 remains low, set signal 730 comprising the S input to S/R latch 720 remains low (except for a startup pulse not shown), and the output Gpulse (t) 731 remains high.
Once ton counter 721 completes its countdown of the interval ton, the output of counter 721 goes high momentarily, as shown by reset pulse 734. The rising edge on the R input of S/R latch 720 resets the output Q to logic “0” and disables PWM clock ΦPWM from passing through AND gate 723 and driving ton counter 721. Concurrently, the falling edge of the Q output produces a rising edge on the output of inverter 725 triggering a load of toff register 727 data into toff counter 722. The logic high input to AND gate 724 enables routing of the ΦPWM clock to toff counter 722. Referring to the associated timing diagrams 728-731, during this interval from (Tx+ton) to (Tx+TPWM), PWM clock ΦPWM continues counting (diagram 728), reset signal comprising the R input to S/R latch 720 remains low (except for reset pulse 734 at the beginning of the interval) (diagram 729), the set signal at the S input to S/R latch 720 remains low (diagram 730), and the output Gpulse (t) remains low (diagram 731). Once toff counter 722 counts down to zero after an interval of toff, its output generates a short set pulse 732, which toggles the Q output of S/R latch 720 back to a logic “1” state, loading the current value from ton register 726 into ton counter 721 and restarting the entire process.
As shown in diagram 731, the Gpulse output toggles between a logic high state for a duration ton=DPWM TPWM to a logic low state for a duration toff=(1−DPWM) TPWM. Each time a set pulse 732 is triggered, the current value of ton register 726 is loaded into the ton counter 721. Similarly, each time a reset pulse 734 is triggered, the current value of toff register 727 is loaded into the toff counter 722. In this manner, PWM player parametrics file 491 is able to dynamically change the PWM player's frequency and duty factor producing a waveform identical to its software equivalent implementation. Note that resistor 733 used to pull the S input to S/R latch 720 high during startup has a high resistance, and is unable to overcome the logic low state output from toff counter 722 once startup is concluded and power to the circuitry has stabilized.
In conclusion, in the PWM player 748 the frequency fPWM and a corresponding duty factor DPWM change over time in accordance with a specific playback file, thereby defining a PWM sequence of pulses of varying durations of ton and toff. Note that the pulse frequency fPWM=1/TPWM of the pulse width modulator 711 is lower in frequency than the PWM clock ΦPWM=20 kHz used to drive the pulse width modulator 711. Moreover, the PWM frequency fPWM is far below the oversampled clock Φsym used by in the PWM generator 555 ΨP [f (t)] in the waveform synthesizer 483, i.e. 1/Φsym>>1/ΦPWM>fPWM.
LED Driver Operation
The third stage in an LED player of a distributed PBT system is the LED driver circuitry. Referring to
Greater detail of the operation of LED driver 485 is shown in the block diagram of
As shown, LED driver 485 contains, two buffers per input, e.g. IN1 is passed through inverters 744a and 744b and IN2 is passed through inverters 745a and 745b, as well as a PWM clock counter 710, an LED drive controller 747, multiple channels carrying currents exemplified by ILED1 and ILED4, wherein each channel includes an LED string, a controlled current source or sink and optionally a D/A converter and an associated Iref data register. For example, the channel carrying the current ILED1 includes a controlled current sink 740a driving LED string 743a, a D/A converter 741a producing a reference current Iref1, and an associated Iref1 data register 742a. Similarly, the channel carrying the current ILED4 includes a controlled current sink 740d driving LED string 743d, a D/A converter 741d producing a reference current Iref4, and an associated Iref4 data register 742d. An optional cross point matrix 746 is used to dynamically allocate, i.e. map, inputs IN1, IN2, etc. to the channels carrying ILED1 and ILED4 and any other channels, as required. Aside from its PWM waveform inputs Gsynth (t)·Gpulse (t) LED driver 485 also requires inputs from LED driver parametrics file 749 and reference clock Φref.
In operation, input waveforms are mapped to the channels dynamically controlling the current for assigned LED strings. For example, waveform 493 is input to IN1 then mapped through cross-point switch 746 to the digital En1 input to current sink 740a and to other channels (not shown). As detailed in its accompanying legend, the blackened circle in cross-point switch indicates a closed switch, i.e. a connection, while an open circle indicates no connection, i.e. an open circuit. Similarly, waveform 750 is input to IN2 then mapped through cross-point switch to the digital EN4 input to current sink 740d and to other channels (not shown). Concurrently, as synchronized by the clock ΦLED output from PMW clock counter 710, the analog signal Iref1 is supplied to current sink 740a and the analog signal Iref4 is supplied to current sink 740d. Currents Iref1 and Iref4 are set by the digital values loaded into Iref1 register 742a and Iref4 register 742d and by corresponding D/A converters 741a and 741d. The resulting waveforms 748a and 748d are represented in the currents ILED1=αIref1 and ILED4=αIref4. The design, implementation, and operation of current sinks (or alternatively current sources) are shown in
Set “I/O Mapping” where
En1=IN2
En4=IN1
En5=IN2
Although it is possible to change this mapping dynamically, the mapping is more likely to be executed only once per treatment and left unchanged throughout the treatment. In many cases only a single input is used. The executable code for current each channel's current can be fixed to constant value
Set “Output Currents” where
ILED1=20 mA
ILED4=20 mA
ILED5=20 mA
During manufacturing calibration, an error term or curve Icalib is stored in non-volatile memory for each channel, for example Icalib1=1.04 mA, Icalib4=−0.10 mA, Icalib4=0.90 mA. The LED pad also stores a value of the mirror ratio α, e.g. α=1/β=1,000, meaning a milliamp channel current ILED requires a corresponding microampere reference current Iref. Before commencing playback, the pad μC 339 calculates and stores the values of Iref for each channel where
Iref1=[ILED1+Icalib1]/α=[20 mA+(1.04 mA)]/106=21.04 μA
Iref4=[ILED4+Icalib4]/α=[20 mA+(−0.10 mA)]/106=19.99 μA
Iref5=[ILED5+Icalib5]/α=[20 mA+(0.90 mA)]/106=20.90 μA
The Iref values are stored in the equivalent digital form in Iref registers 742a, 742d, 742e, etc. in volatile memory prior to program execution. If the value of the target LED current changes, the register value can be overwritten prior to program execution, or dynamically “on-the-fly” as the treatment progresses. For example, using executable pseudo-code, dynamic LED drive may comprise
During execution the value of Iref for each channel is set by a [ILED+Icalib]/α where ILED1=“drive” (Row, 2), ILED4=“drive” (Row, 5), etc. and where column 2 cells contain the LED current drive data for ILED2, column 5 contains ILED4 data, etc. The value of Row is used to define various intervals for a treatment, e.g. up to 540 sec conducting 20 mA and thereafter carrying 23 mA.
If all the channels are carrying the same current, the channel specific columns can be eliminated from the table a replaced by a single column, as shown below
The program can also invoke a function rather than a table, e.g. in Treatment Headache example
In the foregoing example the 20 mA sine wave is generated by a mathematical function for the reference current ILED (t) with a defined frequency, e.g. 5.5 Hz, using the Φref clock (or optionally a multiple thereof). The desired output current ILED (t) at each instance is corrected on a channel-by-channel basis by the calibration table data before being converted by mirror ratio α into the corresponding reference current Iref1 registers 742a, 742, 742e, etc. According to the instruction “Set t=t+(1/Φref),” each loop at time t is incremented by a duration (1/Φref) and the summation stored back in the variable t, thereby overwriting the prior value. As such the variable t acts as a clock incremented with each loop of the program. The clock continues to count and repeatedly generate the sine wave with a fixed periodicity of TLED=1/fLED until the terminus condition t≥tend is met.
LED Player in Distributed PBT System
In the LED playback operation illustrated in
In order to execute PBT treatments, first the LED player is downloaded from the PBT controller into the LED pad, followed by the specific LED playback file to be executed. Once the LED player is downloaded, the LED player does not need to be reloaded each time a new treatment is selected. New playback files can be repeatedly loaded and new treatments or sessions executed so long as the LED player remains in the volatile memory of the LED pad. Turning off the PBT system or disconnecting a LED pad from the PBT controller, however, wipes the LED player software from the LED pad's volatile memory and it must be re-installed into the pad before a LED playback file can be executed and treatment or session commence. Although the program wipe issue can be avoided by storing the LED player file in non-volatile memory, for security purposes it is preferable to write the program in volatile memory such as SRAM or DRAM rather than in non-volatile EEPROM or flash. In that way any attempt to reverse engineer the program's contents are lost with a power interruption and a hacker's efforts to extract the program thwarted by the immediate loss of the executable code.
As shown as
Other options shown in
PWM player parametrics file 491 includes settings for constant or pulse mode. In pulse mode, the playback file comprises a sequence of PWM frequencies fPWM and a corresponding duty factor DPWM versus playback time, thereby defining a PWM sequence of pulses of varying durations of ton and toff. Note that the pulse frequency fPWM of the pulse width modulator 711 is lower in frequency than the PWM clock ΦPWM=20 kHz used to drive the pulse width modulator 711. To conclude, in PWM player operation, the PWM frequency fPWM is not fixed but varies with the playback program specified in PWM parametrics file 491. Although the frequency fPWM can be as high as the clock ΦPWM in most cases it is lower so that fPWM≤ΦPWM. Moreover, the frequency fPWM is in the audio spectrum, far below the oversampled clock Φsym in the supersonic range used by in the PWM generator ΨP [f (t)] in the waveform synthesizer block, i.e. mathematically fPWM≤ΦPWM<Φsym.
In LED driver parametrics 749, the unit function digital PWM inputs INx are mapped against the current sink enable Eny. For example, the input IN1 maps to the channel 4 current sink enable En4, the input IN2 maps to current sink enables En1 and En5 (not shown) for channels 1 and 5, etc. LED current control comprises a playback file of αIref versus time. The value of Iref for each channel is set by the output of each corresponding D/A converter, which may comprise a constant, a periodic function, or an audio sample. Alternatively, one D/A converter may be used to supply the reference current of all output channels with the same function or constant value.
Commencing Playback in Distributed PBT Systems
After downloading the LED player and LED playback file into an LED pad, playback is enabled by a start signal 840 in the PBT System timing control, which may be implemented in software or in hardware using the exemplary circuit of
At startup, one shot 848 generates a pulse that immediately drives the output of OR gate 847 to high. Concurrently the pulse from one shot 848 triggers the set input S of interrupts latch 843, setting its output Q to high. When user input “start” 840 is selected, it generates a positive pulse, setting the output Q of start/stop latch 842 to high. With the Q outputs of both start/stop latch 842 and interrupts latch 843 set high, AND gate 846 is enabled. As a result, the output of oscillator Φosc is delivered to the PWM player 834 as clock Φsys, and divided by PBT system clock counter 640 to produce reference clock Dref.
Selecting “pause” 841 generates a pulse that resets the output of start/stop latch 842 to zero and suspends playback. Playback remains latched off until “start” 840 is selected, cancelling the pause command. As a result, start/stop latch 842 starts and stops program execution. In the event that an interrupt occurs for any reason, i.e. if any one of the inputs to OR gate 647 go high, output of OR gate 647 will also go high, thereby resetting the output Q of interrupts latch 843 to zero. With the Q output of interrupts latch low, the outputs of AND gates 846 and 845 also go low, disconnecting clock Φosc from the LED player and suspending treatment. This situation will persist until the cause of the interrupt is remedied, the inputs to OR gate 647 are reset to low and a system restore pulse is sent to the S input of interrupts latch 843. For example, if an over temperature condition occurs, the over temperature flag 846 will go high 846 disable LED pad operation until normal temperatures return and the over temperature flag 846 is reset.
A unique safety feature of the disclosed distributed PBT system is the blink timer. This timer operates within the intelligent LED pad itself and does not rely on the PBT controller. At regular intervals in the pad μC 339, e.g. every 20 or 30 seconds, the program counter interrupts operation to execute an interrupt service routine (ISR). During this interval, the blink timer timeout 844 is set to logic 1 while the LightPadOS software executes a safety check regarding LED pad electrical connections, any priority messages or file updates, file parity checks, etc. Once the safety check routine has been completed, the blink timer timeout 844 is reset to zero, the watchdog timer 845 is reset, and program execution is returned to the main routine. After completing the ISR, the pad μC 339 generates a system restore pulse to interrupts latch 843 and program operation recommences. If the software has for any reason frozen, the program will not resume operation and the LED strings in the pad will remain off. Otherwise, the LED pad will resume operation after a defined interval, e.g. 2 seconds.
Another failure mode involves frozen software while the LEDs are on and emitting light. If the condition persists the LEDs may overheat and present a burn risk to a patient. To prevent a dangerous condition from arising, watchdog timer 845 (whose operation is not dependent on software) counts down in parallel to the software program counter. Should the software timer become frozen in an on state, the watchdog timer 845 will not be reset, and the watchdog timer 845 will time out, generating an interrupt signal from blink timer timeout 844 and discontinuing operation of the PBT system until the fault condition is resolved.
In this manner the disclosed distributed PBT system can be used to control LED pad operation remotely. Furthermore, the methods disclosed herein can be adapted to control multiple intelligent LED pads simultaneously from a common PBT controller.
Component Communication Over Distributed PBT Systems
Implementing the required communication among components in a distributed PBT system requires a complex communication network and dedicated protocol designed to accommodate the mix of real time and file-based data transfers, some of which are linked to safety systems. In accordance with FDA regulations, safety is a major design consideration in medical devices. In distributed systems this concern is further exacerbated by autonomous operation of components. In the event that inter-device communication in the distributed PBT fails or is interrupted, the safety systems cannot malfunction. The topic of communication, safety, sensing and biofeedback are discussed in greater detail in related U.S. application Ser. No. 16/377,192, entitled “Distributed Photobiomodulation Therapy Devices, Methods, and Communication Protocols Thereof,” filed contemporaneously with this application.
As described above, the delivery of LightOS data packets in a distributed PBT system can be achieved using a 4-layer communication protocol executed over a wired bus such as USB, I2C, SMBus, FireWire, Lightening and other wired communication mediums. If, however, distributed PBT system communication is performed over Ethernet, WiFi, telephonically over cellular networks (such as 3G/LTE/4G or 5G), or if data is passed through a public router, communication cannot be performed exclusively through the MAC address, i.e., a Layer-1 and Layer-2 communication stack is not sufficient to execute data routing through the network.
For example, as shown in
Using the described 7-layer OSI communication stack, network communication in the PBT system can easily be adapted to WiFi wireless communication. In the distributed PBT system shown in
As shown in
Using wireless connectivity, the PBT controller 1010 can be replaced an application program running on a mobile device such as a cell phone, tablet, or notebook computer. For example, in
Because PHY Layer-1 and Data Link Layer-2 are within the six data layers not shared in communication stack 1109, the cell tower 1105 communication stack 1107 is unable to directly access the intelligent LED pad 1101 communication stack 1108. Instead, only Application Layer-7 within communication stack 1109 bridges the two communication networks. The software in cell phone 1100 may comprise a dedicated Light app, which like LightPadOS, operates as reduced instruction set version of the LightOS operating system used in the dedicated hardware PBT controllers described previously. In essence, the Light app in cell phone 1100 emulates the operation of LightOS in facilitating PBT control functionality and its UI/UX touchscreen-based control. The Light app is realized as software designed for operating on the operating system used in the corresponding mobile device. For example, in smart phones and tablets, the Light app is created to run atop Android or iOS while in notebooks, the Light app is created to run on MacOS, Windows, Linux, or UNIX. The conversion of the source code, the basic logic and function of the Light app, into executable code adapted to run atop a specific platform is a conversion process referred to as a “compiler”.
The translation of source code into compiled code is therefore platform-specific, meaning that multiple versions of the software must be distributed each time a software revision, patch, or new release occurs. Operation of a mobile device based distributed PBT system is shown in
An example of a user interface for software control of a PBT system is shown in a screen 1120 in
Driving Other Distributed Components
The PBT controller of this invention can also be used to control therapy devices other than LED pads. These peripheral components may comprise laser PBT wands and systems, autonomous LED pads programmed over a distributed PBT system, magnetotherapy pads and wands, LED masks, LED caps, LED ear and nose buds, and more. LED facemasks, head caps, and LED beds are simply multi-zone PBT systems using unique LED delivery systems. Electrical control of these other devices is generally similar to control of the intelligent LED pads with the aforementioned PBT system as disclosed herein. Broadly, the aforementioned distributed PBT system is not limited to driving LEDs but may be used to drive any energy emitter positioned adjacent to a patient in order to inject energy into living tissue, including a coherent light from a laser, time-varying magnetic fields (magneto-therapy), micro-electric currents (electrotherapy), ultrasonic energy, infrasound, far infrared electromagnetic radiation, or any combination thereof.
Nonetheless, because these other distributed therapeutic systems, such as laser PBT, thermotherapy, magnetotherapy, and ultrasound therapy, use energy emitters other than LEDs, they require some modifications in order to drive the energy emitters using the disclosed PBT controller. Some examples of adapting the disclosed PBT system for alternate therapies are described below:
Laser PBT Systems—
The block diagram of
Details of the safety sensors, shown in
The controlled current sink 1256 is used to drive the string of lasers 1156a through 1156m with wavelength λ1. The controlled current sink 1257 is used to drive the string of lasers 1157a through 1157m with wavelength λ2 in laser array 1242. The laser strings 1156a-1156m and 1157a-1157m are powered by a supply voltage +VHV output from a boost-type switching regulator 1241 comprising an input capacitor 1265, a PWM controller 1260, a low-side power DMOSFET 1262, an inductor 1261, a Schottky rectifier 1263, and an output capacitor 1264 with voltage feedback to PWM controller 1260. The input to laser power supply 1241 is supplied by Li-Ion battery 1172 and battery charger 1171 from USB power input. A 2.5-V voltage-regulated output is also delivered from battery charger 1171 and filter capacitor 1266 to power the components of the laser PBT control circuit 1240. If a higher voltage is required, the +VHV power supply output used to drive the laser array may also be used to supply the laser PBT control after the boost converter is operating.
Autonomous LED Pads for Photobiomodulation Therapy—Another peripheral compatible with the distributed PBT system is autonomous LED pads to be used in applications when a PBT controller or cell phone is unavailable or inconvenient by which to administer emergency treatments, e.g. in a battle field or in a plane crash in a mountainous location. In operation, a single button located on the autonomous LED pad is used to select the treatment. In general, no UX display is available for information. And although autonomous LED pads operate “autonomously” (i.e. by themselves) during therapy treatments, during manufacturing they are connected to part of a distributed PBT system to load their applicable programs and to confirm their successful operation.
The PBT software programs loaded into the autonomous LED pads are determined by the markets and applications for which they are intended. For example, the treatment programs loaded into the LED pads in a ski resort might comprise treatments for concussion (a common ski injury) while those used by paramedics might focus on treating wounds such as lacerations or burns. In sports facilities and tennis clubs, autonomous LED pads for muscle and join pain may be more common. In military applications, the major field application is to slow or prevent the spread of infection in a bullet or shrapnel wound.
The electrical design of the intelligent LED 337 of
The important factor in a autonomous LED pad is the cost should be controlled by utilizing a standard design, i.e. using one common manufacturing flow and product BOM (build of materials) for all applications and markets, then to use software downloads to customize the generic product into an application specific version.
As described, autonomous LED pads do not utilize a display, a radio link, or a remote control and therefore offer a limited number of preloaded treatment programs, generally from one to five choices as illustrated in
Pulsed LED Thermotherapy—In a manner similar to visible and near infrared light in photobiomodulation therapy, thermotherapy is the application of far infrared, typically comprising wavelengths of 1 μm to 100 μm. Thermotherapy includes spas, heating pads, and heater body wraps. According to Wikipedia, the therapeutic effects of heat include “increasing the extensibility of collagen tissues; decreasing joint stiffness; reducing pain; relieving muscle spasms; reducing inflammation, edema, and aids in the post acute phase of healing; and increasing blood flow. The increased blood flow to the affected area provides proteins, nutrients, and oxygen for better healing.” It also expedites the delivery of metabolic waste and carbon dioxide. Heat therapy is also useful for ameliorating muscle spasms, myalgia, fibromyalgia, contracture, bursitis,
While the therapeutic claims overlap those offered by PBT, the physical mechanism of thermotherapy is considerably different. Unlike PBT, which imparts photons absorbed by molecules to stimulate chemical reactions that otherwise would not occur, i.e. photobiomodulation, in thermotherapy heat absorbed by tissue and water accelerates molecular vibration rates to expedite ongoing chemical reactions. Since, however, in accordance with Einstein relation E=h c/λ the energy of a photon is inversely proportional to its wavelength, the energy of 3 μm far infrared radiation is only 20% to 20% that of red and NIR PBT. This energy difference is significant, as the lower energy is insufficient to break chemical bonds or transform molecular structure. As a result, thermotherapy is generally considered as symptomatic relief without the associated accelerated healing manifest in PBT. Penetration depths for far infrared sources shorter than 3 μm (i.e. IR type B) exhibit greater penetration depths than longer wavelengths and are therefore preferred over long wavelength sources.
The aforementioned PBT system can be adapted for thermotherapy by replacing the visible light and NIR LEDs with LEDs in the far IR spectrum. LEDs are generally limited to 12 μm wavelengths or shorter as described in “Far infrared radiation (FIR): its biological effects and medical applications”, Photonics Lasers Med., vol. 1, no. 4, November 2012, pp. 255-266: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3699878/by F. Vatansever and M. R. Hamblin. By adjusting the crystalline structure of III-V compound superlattice compound semiconductors for smaller bandwidths, LEDs operating in far IR spectrum have been achieved to wavelengths up to 8.6 μm (see “Superlattice InAs/GaSb light-emitting diode with peak emission at a wavelength of 8.6 μm,” IEEE J. Quant. Elect., vol. 47, no. 1, January 2011, pp. 5-54). The PBT system used for driving NIR LEDs disclosed herein can therefore easily be retrofitted to accommodate FIR LEDs simply by swapping the NIR LEDs for their longer wavelength counterparts. The drive circuitry can be used in an identical manner, using pulsed or sinusoidal waveforms. Because of the long wavelengths, drive frequencies below 100-Hz are more suitable to insure uniform delivery far infrared radiation. At even lower frequencies, e.g. below 10 Hz, the FIR LEDs in a pad can be scanned row by row to produce a massage like wave rippling across each pad, successively stimulating vasodilation in a systematic pattern across treated tissue. Optionally, near infrared LEDs for PBT and far infrared LED for thermotherapy can be combined into one intelligent pad, and driven either concurrently or alternating in time.
Magnetotherapy—Magnetotherapy (MT) is an alternative medicine therapy where injured tissue is subjected to magnetic fields. The influence of fixed magnetic fields on tissue is dubious and is generally considered pseudo-medicine, fringe medicine and even quackery. Some studies have concluded medical claims for permanent magnet magnetotherapy are wholly unsupported by the results of scientific and clinical studies, and prohibit marketing any magnet therapy product using medical claims (https://en.wikipedia.org/wiki/Magnet_therapy). Conflicting claims suggest that pulsed magnetic fields exhibit a therapeutic effect because the living tissue contains a large number of free ions and even electrically balanced molecules (such as water), which act as dipoles because of the direction of their charges. When subjected to an oscillating magnetic field, molecules are repelled and attracted according to their electric charge in a manner similar to imaging performed by magneto-resonant imaging (MRI), except that the excitation occurs at lower frequencies. This type of magnetic therapy is commonly referred to as pulsed magnetotherapy or PMT.
Reported effects of PMT are largely analgesic, including muscle relaxation, improved local blood circulation and vasodilation; anti-inflammatory effects; pain relief through the local release of endorphins; and beneficial effects on cellular membrane action potentials. The action mechanism is primarily believed to be electrochemical rather than thermal, in essence acting in a catalytic manner by accelerating ongoing chemical reaction rates. Reported PMT pulse frequencies range across the audio and infrasound spectrum from 20-kHz down to below 1-Hz. From the published literature it is impossible to determine the accuracy of these reported claims or to ascertain treatment efficacy of pulsed magnetotherapy. Moreover, PMT carries certain risks. In particular PMT is contraindicated in the case of tumors and has a safety risk of affecting pacemaker operation.
In accordance with this invention, a pulsed magnetotherapy system can be realized by repurposing the disclosed PBT system by replacing optical components with electromagnets and adapting the drive circuit contained in the intelligent pad or wand. Optionally, LEDs for PBT can be driven in combination with magnetic emitters, either concurrently or alternating in time. In the case of driving an array of electromagnets, the electromagnet array should be mounted on a three dimensionally bendable printed circuit board (or 3D PCB) similar to that described herein for LED arrays and disclosed in U.S. application Ser. No. 14/919,594, now U.S. Pat. No. 10,064,276, entitled “3D Bendable Printed Circuit Board with Redundant Interconnections,” incorporated herein by reference. The rigid-flex PCB is necessary to adjust the orientation of numerous electromagnets to a 90° angle (i.e. a right angle) to the patient's tissue being treated without mechanically damaging the solder joints between the flexing PCB and the rigid electromagnets. The rigid flex PCB provides a perfect solution for achieving reliable 3D bendability.
Protective layers comprising a coating of polyimide, silicon, or other scratch protection material is used to seal both the rigid and flex portions of the PCB. As shown, an insulator 1304 protects metal layer 1301 and an insulator 1305 protects metal layer 1302, completely sealing the flex PCB from moisture and the risk of mechanically induced scratches. In the rigid portion of the PCB, a patterned insulating layer 1313 protects a portion of metal layer 1311 and an un-patterned insulating layer 1314 entirely protects metal layer 1312. Some portions of metal layer 1311 remain unprotected for the purpose of soldering components onto the rigid PCB.
As shown, the electrical interconnection of the various metal layers within a given rigid PCB, between rigid PCBs, and within flex PCB's can be accomplished without the need for wires, connectors or solder joints, using conductive vias 1306, 1307, and 1308. These conductive vias comprise conductive columns of metal or other low resistance materials formed perpendicular to the various metal layers and may penetrate two or more metal layers to facilitate multilevel connectivity and non-planar electrical topologies, i.e. circuits where conductors must cross one other without becoming electrically shorted.
In PMT pads, the role of the rigid portion of the disclosed rigid-flex PCB may be used in various ways. In one case, discrete electromagnetic, permanent magnets, and permanent magnet/electromagnet stacks can be mounted onto the rigid portion of the rigid-flex PCB. Alternatively, the PCB interconnections can be used to form a toroid that when combined with through-hole magnetic material forms a planar magnetic structure. One exemplary layout of a planar magnetic toroid is illustrated in the exploded diagram of
An exemplary circuit used to drive the PMT, illustrated in
Freewheeling diodes 1354 and 1355 are included to prevent high voltage spikes whenever the current sinks 1342 and 1343 are rapidly switched off by recirculating inductor current, until either the energy EL=0.5LI2 stored in electromagnets 1352 and 1353 is consumed or until the current sink once again conducts current. Capacitors 1356 and 1357 are used to filter switching noise or optionally to intentionally to form a tank circuit with the inductance represented by the coils with electromagnets 1352 and 1353 and oscillate at a resonant frequency of fLC=1/(2πSQRT(LC)). A voltage +VEM for driving the electromagnets 1352 and 1353 is derived from a switching power supply 1363, which is shown as a boost converter but may be either a boost converter to step up the voltage or a Buck converter to step it down. Alternatively, since current sinks 1343 and 1343 control inductor current anyway the voltage regulator can be eliminated.
Although the operation of a switching power supplies is well known in the art, the circuitry of the boost converter within switching power supply 1363 is shown in
If the voltage at capacitor 1368 is below target, the width (on-time) of the pulses generated by PWM controller 1365 is increased to be a larger percentage D=ton/(ton+toff)=(ton/TPWM) of the next clock period TPWM, i.e. the duty factor D increases, allowing the average current in the inductor 1369 to increase and driving the output voltage +VEM higher. If, on the other hand, the voltage at capacitor 1368 is too high, the duty factor D, i.e. the on-time for MOSFET 1366 will be reduced, allowing the current in inductor 1369 to gradually decrease over several switching cycles and thereby allow the output voltage +VEM to decline. By continuously adjusting the pulse width and consequent duty factor D (the on-time of power MOSFET 1366) the output voltage +VEM is regulated to a constant value by virtue of voltage feedback. The regulation process of switching power supply 1363, operating at a switch frequency and period TPWM, is therefore referred to a PWM, meaning pulse width modulation. The role of output capacitor 1368 is to filter the output voltage +VEM, while input capacitor 1364 is used to prevent back injection of noise into the power source and to stabilize the power network. As shown, the output voltage +VEM of the switching converter and regulator is higher than its input, i.e. +VEM>Vbat, so the converter within switching power supply 1363 is referred to as a boost converter. If however, the desired output voltage +VEM is lower than the battery voltage, i.e., +VEM<Vbat, then a step-down or Buck converter is required. Topologically, realizing a Buck converter requires only a minor modification to the circuit shown for switching power supply 1363 in
Alternatively, instead of employing planar magnetics to realize the electromagnet, a pre-assembled or discrete electromagnet module may be employed. As shown in
In such a design every magnet 1351a, 1351b, 1351c, etc. in the array is an electromagnet and can be electronically controlled to vary its magnet field in accordance with the PMT circuit shown in
In an alternative embodiment, some electromagnets may be replaced by permanent magnets to combine a mix of constant and time varying magnetic fields. For example in
The PMT apparatus can also be adapted for use as a handheld magnetotherapy device or wand 1450 as shown in
Periodontal PBT LED Mouthpiece—Although PBT can be performed through the cheeks to treat gum disease, another option is to inject light directly into the patient's mouth using lasers or LEDs in the near-infrared, infrared, and blue spectrum. Such as device must be small and must comfortably fit into the patient's mouth. As an autonomous therapy device, the device must use a lightweight software client capable of executing only a few pre-programmed algorithms. Alternatively, the device may employ data streaming from a user control module using a wired connection, Bluetooth, or low power WiFi 802.11 ah. The user control module communicates with a PBT controller in the same manner as the controller of an intelligent LED pad except that its output does not drive LEDs within a pad but instead is streamed to the LED mouthpiece as a passive electrical signal so that no processing is performed within the mouthpiece.
An example of such a periodontal PBT apparatus is shown in the three-dimensional perspective drawing of
The same process can be adapted into manufacturing a H-shaped mouthpiece useful in using PBT to treat both upper and lower jaws concurrently. The method shown in
The bonding of the rigid PCBs 1515a and 1515b is shown in
Voltage supply and control circuitry for the periodontal PBT mouthpiece 1523 is shown in
The control signals 1537a and 1537b may be used to digitally strobe the LEDs 1504a-1504d and 1505a-1505d on and off, or alternatively to program the conducted current or synthesize a periodic waveform such as a sine wave. Current from current source 1524a is mirrored by NPN bipolar transistor 1525a to control the current in NPN bipolar transistor 1526a and therefore the current in LEDs 1504a and 1504b and to control the current in NPN bipolar transistor 1526b and therefore the current in LEDs 1504c and 1504d, all in accordance with the program executed by microcontroller 1535. Similarly, current from current source 1524b is mirrored by NPN bipolar transistor 1525b to control the current in NPN bipolar transistor 1527b and therefore the current in LEDs 1505a and 1505b to control the current in NPN bipolar transistor and therefore the current in LEDs 1505c and 1505d, also in accordance with the program executed by microcontroller 1535. In this manner LED current can be controlled using a minimal number of components to save space. The voltage supply and control circuitry shown in
Ultrasound Therapy—The distributed PBT system disclosed herein is also applicable of driving piezoelectric transducers to produce ultrasound in the frequency range from range from 100 kHz to 4 MHz. The dominant therapeutic action mechanism for ultrasound therapy is vibrational, effective for breaking up scar tissue and causing heating with good depth penetration. Driving algorithms can be similar to those used in sinusoidal drive of LEDs disclosed herein including both digital (pulsed) and sinusoidal drive. The disclosed distributed ultrasound therapy system is capable of performing ultrasonic therapy independently or in combination with PBT. Using the disclosed system, ultrasound transducers can also be combined with LED arrays to break up scar tissue using ultrasound, and to carry it away using PBT accelerated phagocytosis.
One implementation of a combined ultrasound PBT therapy system or USPBT pad is shown in
High side MOSFETs 1564a and 1564b are driven by level shifting driver-circuits 1566a and 1566b, respectively. Similarly, low-side MOSFETs 1563a and 1563b are driven by low side buffers 1565a and 1565b, respectively. In operation, the half-bridge formed by low-side N-channel MOSFET 1563a and high-side P-channel 1564a is driven out of phase with the half-bridge formed by low-side N-channel MOSFET 1563b and high-side P-channel 1564b. Whenever high-side P-channel MOSFET 1564a is on and conducting, then low-side N-channel 1563a is off and Vx=+VPZ. Concurrently, high-side P-channel MOSFET 1564b is off and low-side N-channel MOSFET 1563b is on and conducting whereby Vy=0, causing current to flow through the piezoelectric transducer 1562 from Vx to Vy. In the next half cycle, current flow through the piezoelectric transducer 1562 reverses from Vy to Vx. In operation, the two half-bridges are driven out of phase by an inverter 1567 in response to the output of pad μC 1557. The output of the half-bridge is bidirectional, having an absolute magnitude±VPZ. The output of pad μC 1557 is also used to drive an LED array 1561 through an LED driver 1560, which is similar to the LED driver 335 shown in
In an alternative embodiment shown in
A pad for the combined application of ultrasonic and photobiomodulation therapy (referred to herein as USPBT) is shown in
Optionally, LEDs for PBT can be driven in combination with the ultrasonic piezoelectric emitters, either concurrently or alternating in time. The combined application of ultrasonic and photobiomodulation therapy is useful in breaking up scar tissue using ultrasound and using PBT to accelerate removal of the dead cells.
Infrasound Therapy—Infrasound therapy is analogous to tissue massage except that it occurs at very low frequencies below the audio spectrum, typically from 20-Hz down to 1-Hz or lower. The actuator for creating low frequencies must be relatively large, e.g. 10 cm in diameter and therefore is well suited for inclusion in wand similar to that shown in
PBT LED Buds for Nose/Ears—Although PBT can be performed transcranially, another option is to inject light directly into the nose or ears using lasers or LEDs in the near, infrared, and blue spectrum. Such as device is small. As an autonomous therapy device, the device must use a lightweight software client capable of executing only a few pre-programmed algorithms. Alternatively, the device may employ data streaming from a user control module using a wired connection, Bluetooth, or low power WiFi 802.11ah. The user control module communicates with the PBT controller and operates in the same manner as the controller of an intelligent LED pad except that its output does not drive LEDs within a pad but instead is streamed to the LED buds as a passive electrical signal so that no processing is performed within the buds. The disclosed PBT system is therefore directly compatible to support PBT LED buds for nose and ear treatments. Another benefit of intranasal and intra-aural (i.e. in the ear) PBT is its ability to kill pathogens and bacteria infecting the sinus cavities.
PBT LED Spots for Acupuncture—Another small sized LED source is a small LED or laser “spot”, a coin sized pad attached to the body over acupuncture points. Such as device is small and has no room for battery power. The device may employ data streaming from a user control module using a wired connection, Bluetooth, or low power WiFi 802.11ah. The user control module communicates with the PBT controller and operates in the same manner as the controller of an intelligent LED pad except that its output does not drive LEDs within a pad but instead is streamed to the LED/laser spots as a passive electrical signal so that no processing is performed within the spots. The disclosed PBT system is therefore directly compatible to support PBT LED buds for acupuncture LED spots.
Bluetooth Headphones—Although not medically therapeutic, in relaxation applications music may be broadcast to headphones over Bluetooth synchronized to PBT treatment waveforms. Given the waveform synthesis capability of the disclosed PBT system, it is capable to support synchronized music and PBT treatments.
This application is a continuation of application Ser. No. 16/377,181, filed Apr. 6, 2019, now U.S. Pat. No. 11,388,799, issued Jul. 12, 2022, which in turn is a continuation-in-part of application Ser. No. 15/857,002, filed Dec. 28, 2017, now U.S. Pat. No. 11,006,488, issued May 11, 2021, which in turn is a divisional of application Ser. No. 14/073,371, filed Nov. 6, 2013, now U.S. Pat. No. 9,877,361, issued Jan. 23, 2018. This application is related to the following applications: application Ser. No. 14/461,147, filed Aug. 15, 2014, now U.S. Pat. No. 10,328,276, issued Jun. 25, 2019; application Ser. No. 14/919,594, filed Oct. 21, 2015, now U.S. Pat. No. 10,064,276, issued Aug. 28, 2018; and application Ser. No. 16/377,192, filed Apr. 6, 2019. Each of the foregoing applications and patents is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5103395 | Spako et al. | Apr 1992 | A |
6720745 | Lys et al. | Apr 2004 | B2 |
11813475 | Broeng | Nov 2023 | B2 |
20010028227 | Lys et al. | Oct 2001 | A1 |
20020143373 | Courtnage | Oct 2002 | A1 |
20040044384 | Leber | Mar 2004 | A1 |
20050245998 | Pruitt | Nov 2005 | A1 |
20090062682 | Bland et al. | Mar 2009 | A1 |
20100286673 | Altshuler et al. | Nov 2010 | A1 |
20110109228 | Shimomura | May 2011 | A1 |
20120022618 | Lum | Jan 2012 | A1 |
20120165716 | Reuben | Jun 2012 | A1 |
20140128941 | Williams | May 2014 | A1 |
20140228915 | Gardner | Aug 2014 | A1 |
20150202455 | Williams et al. | Jul 2015 | A1 |
20150238774 | Anderson | Aug 2015 | A1 |
20160129279 | Ferolito | May 2016 | A1 |
20180008837 | Zhang | Jan 2018 | A1 |
20180043177 | Iguchi | Feb 2018 | A1 |
Number | Date | Country |
---|---|---|
2775529 | Oct 2013 | CA |
2999499 | Sep 2014 | CA |
3044440 | May 2018 | CA |
107530155 | Jan 2018 | CN |
1808199 | Oct 2011 | EP |
WO-9507731 | Mar 1995 | WO |
WO-2008136958 | Nov 2008 | WO |
WO-2013102183 | Jul 2013 | WO |
2014072821 | May 2014 | WO |
WO-2018022775 | Feb 2018 | WO |
Number | Date | Country | |
---|---|---|---|
20220191989 A1 | Jun 2022 | US |
Number | Date | Country | |
---|---|---|---|
62653846 | Apr 2018 | US | |
61723950 | Nov 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14073371 | Nov 2013 | US |
Child | 15857002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16377181 | Apr 2019 | US |
Child | 17681738 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15857002 | Dec 2017 | US |
Child | 16377181 | US |