GX-TXT-v3: HOLD Node Dynamics and LED On-Time
The GX-TXT-v3 is a circuit designed to detect activity from an IR remote control: the signal produced by the photodiode is amplified, adjusted using the gain and sensitivity controls, and finally used to charge the HOLD node, which keeps the orange indicator LED active for a certain period of time.
In yesterday’s session I experimentally characterized the amplification and sensitivity chain, focusing in particular on the combined effect of POT_GAIN and POT_SENS on the response of QIN and on the voltage reached by the HOLD node, using the virtual photodiode as a controlled source.
Today I am focusing instead on the final and dynamic part of the circuit: I want to study the charging and, above all, the discharging of HOLD, relate its voltage to the turn-on and turn-off of the orange LED, measure how long the LED remains on after a defined burst, and compare the real behavior with the LTspice simulation.
I started from here:
First dynamic test: maximum gain
For the first test I deliberately chose conditions favorable to activating the chain, setting the gain practically to maximum and the sensitivity to a high value. The aim was to obtain a clear charge on the HOLD node and easily observe the entire subsequent discharge phase and the turn-off of the orange LED.
Measurement conditions
| Parameter | Value |
|---|---|
| RGAIN | 5 Ω |
| RSENS | 9.432 kΩ |
| Frequency | 38 kHz |
| Burst | 100 pulses |
| Burst duration | about 2.63 ms |
| Generator amplitude setting | 3.05 V |
| Generator offset setting | +890 mV |
| Oscilloscope time base | 500 ms/div |
In burst mode the generator sets a continuous offset equal to half the amplitude. Since the circuit used as a virtual photodiode rejects the negative part of the signal, for this first test I set an amplitude of 3.05 V instead of the approximately 1.5 V used in the previous continuous-train tests.
I later realized that an additional continuous offset of +890 mV had also remained set on the generator. In my initial interpretation I had therefore attributed the observed DC level exclusively to the behavior of burst mode, without taking this additional offset into account.
The test remains valid as a dynamic characterization of the HOLD node and the LED stage; for the subsequent measurements I measured the voltage directly across the 51 kΩ RSENSE resistor, experimentally deriving the ISENSE current associated with the different stimulus levels.
Charging and discharging of HOLD
With a time base of 500 ms/div, the 100-pulse burst occupies only about 2.63 ms, so the HOLD charging phase appears practically instantaneous on the time scale used. This acquisition is instead particularly suitable for observing the subsequent capacitor discharge and the response of the circuit that drives the orange LED.
The trace shows that HOLD initially reaches a voltage of about 4.46 V (the cursor reading of the maximum is made uncertain by a small crest at the peak) and then decays slowly. When VHOLD falls to around 1.32 V, the LED enters the rapid turn-off region; when HOLD reaches about 1.08 V, the LED can be considered off.
Using the time cursors I also marked the two transition points: the beginning of the rapid turn-off occurs about 2.13 s after the burst, while the LED is completely off at about 2.51 s. The transition therefore lasts about 380 ms.
I also saved the CSV data for the two traces. This makes it possible to analyze numerically with GNU Octave both the HOLD discharge and the LED current over time, derived from the voltage measured at the N_LED_ARANCIO node.



Numerical processing of the traces with GNU Octave
In addition to the oscilloscope screenshots, I saved the traces acquired with the Rigol in CSV format. This makes it possible to use all acquisition samples to numerically analyze the dynamics of the HOLD node and the LED driver circuit, avoiding conclusions based only on cursor positions chosen visually on the oscilloscope.
For this processing I wrote a GNU Octave script that directly reads the CSV format generated by the Rigol, reconstructs the time axis using the Start and Increment values in the header, and assigns CH2 to the VHOLD voltage and CH3 to the voltage at the N_LED_ARANCIO node.
This first acquisition was also used as a test case for the script. Because the response is easy to read, with a clear HOLD charge and a subsequent complete LED transition, I was able to compare the automatic results with what was observed directly on the oscilloscope and with the initial estimates obtained using the cursors.
In this way I progressively verified detection of the HOLD maximum, fitting of its discharge, calculation of the LED current, and especially the automatic criterion used to identify the beginning, maximum-rate point, and end of the turn-off transition. Once validated on this test, the same method was kept unchanged for the subsequent acquisitions so that the results of the entire series would be comparable.
The script automatically derives both the HOLD baseline level and the supply voltage present at the N_LED_ARANCIO node when the LED is off from the pre-trigger section. From the latter, the LED current is then calculated sample by sample through the 680 Ω resistor:
ILED(t) = [VCC – VN_LED_ARANCIO(t)] / 680 Ω
Analysis of the HOLD discharge
During the discharge phase, the script automatically identifies crossings of VHOLD at regular voltage intervals, set to 100 mV in this analysis. The resulting points are used to compare the experimental curve with an exponential decay of the form:
VHOLD(t) = Vbase + A · e-(t-t0)/τ
The Vbase value is not imposed in the script but is derived automatically from the section preceding the burst. The fit therefore makes it possible to obtain an equivalent discharge time constant and to evaluate how closely the real behavior approaches that of a simple RC network.
Automatic identification of LED turn-off
LED turn-on, and especially turn-off, does not have a sharp physical boundary. To make subsequent acquisitions comparable, I therefore preferred to define a reproducible numerical criterion instead of choosing the points each time using the oscilloscope cursors.
The N_LED_ARANCIO voltage is first averaged over 1 ms intervals; the script then calculates its local derivative using a moving linear regression over a 50 ms window. During turn-off, N_LED_ARANCIO moves from the low level corresponding to the LED being on to a level close to VCC corresponding to the LED being off. Its derivative therefore forms a clearly recognizable positive lobe.
The maximum of the lobe identifies the point at which the variation is fastest. To define the transition conventionally, I used a threshold equal to 10% of the maximum derivative. The script automatically searches for the threshold crossing to the left and right of the main lobe, while also requiring a stable interval to prevent small secondary oscillations from being interpreted as a new transition.
The 10% criterion was verified on this first acquisition by comparing it with the points I had previously identified visually using the oscilloscope cursors. The two methods identify the same time region; however, the numerical method has the advantage that it can be applied unchanged to all subsequent measurements.
Finally, the script automatically generates a series of plots and saves them in PNG format, making it possible to retain a uniform representation of the different acquisitions together with the raw data.
Results of the first processing run
The analyzed test is the one performed with RGAIN = 5 Ω, RSENS = 9.432 kΩ, and a 100-pulse burst at a frequency of 38 kHz. The HOLD maximum is reached approximately at the end of the burst.
| Quantity | Result |
|---|---|
| HOLD baseline | 0.160 V |
| VCC derived from the trace | 8.960 V |
| VHOLD,max | 4.760 V |
| Time of VHOLD,max | 2.620 ms |
| ILED,max | 10.471 mA |
| Equivalent HOLD discharge time constant | 1.922 s |
| R² of the exponential fit | 0.9929 |
| Apparent capacitance assuming R = 100 kΩ | 19.22 µF |
LED turn-off transition
The derivative analysis automatically identifies a transition lasting about 401 ms. The three characteristic points obtained by the script are shown in the following table.
| Point | Time | VHOLD | N_LED_ARANCIO | ILED |
|---|---|---|---|---|
| Conventional start of transition | 2.1075 s | 1.560 V | 2.080 V | 10.118 mA |
| Maximum rate of change | 2.1625 s | 1.520 V | 3.040 V | 8.706 mA |
| Conventional end of transition | 2.5085 s | 1.320 V | 8.760 V | 0.294 mA |
At the point of maximum variation, the derivative of N_LED_ARANCIO reaches about 27.80 V/s. The most important result, however, is not the existence of an exact physical threshold, which the circuit does not have, but the availability of a reproducible criterion with which to compare the next acquisitions.
Considerations on HOLD and LED dynamics
This first processing run clearly separates two very different time scales. Charging of the HOLD node occurs on the order of milliseconds: the measured maximum, 4.760 V, is reached about 2.62 ms after the trigger, an interval practically equal to the duration of the 100-pulse burst at 38 kHz. Compared with the subsequent evolution of the circuit, which occurs on the order of seconds, the charging phase can therefore be considered very fast.
The discharge is much slower and is described quite well by an exponential decay. The fit returns an equivalent time constant τ ≈ 1.922 s and a coefficient R² ≈ 0.993. The good agreement shows that an exponential model provides a useful description of the behavior, but it does not mean that the HOLD node is an ideal RC network.
The 22 µF capacitor does not in fact discharge exclusively through the 100 kΩ resistor: the load of the following stage is also connected to the node, in addition to the measurement system. The approximately 19.22 µF obtained by simply applying C = τ/R with R = 100 kΩ must therefore be interpreted only as an apparent equivalent capacitance, not as a direct measurement of the actual capacitance of the tantalum capacitor.
The derivative of the discharge also supports this interpretation. The general trend is the one expected from an exponential decay: the voltage decreases faster at the beginning and progressively more slowly. The experimental derivative is, however, much more irregular than the original voltage, mainly because of the vertical resolution and the stepped structure of the data acquired by the oscilloscope. For determining τ, the direct fit of VHold therefore remains much more meaningful.
Relationship between HOLD and LED current
Plotting ILED as a function of VHold shows the operation of the final stage particularly clearly. For a large part of the discharge, the LED remains practically at its steady-state current, about 10.2–10.4 mA. The current changes very little while HOLD remains sufficiently high; the circuit then enters a relatively narrow region in which the current rapidly decreases to values close to zero.
Using the numerical derivative criterion, the conventional transition begins at VHold ≈ 1.56 V and ends at VHold ≈ 1.32 V. The point of maximum rate of change is around VHold ≈ 1.52 V. These values must not be interpreted as sharp physical thresholds: they describe a continuous transition using a reproducible criterion, useful above all for comparing subsequent measurements.
With this criterion, the transition duration is about 401 ms. The previous cursor-based evaluation performed directly on the oscilloscope had visually identified a region approximately between 2.13 s and 2.54 s. The good agreement between the two evaluations confirms that the algorithm is identifying the same region of the signal, with the advantage of using an identical procedure for every acquisition.
This test therefore provides a first quantitative reference for the dynamics of the final stage of the GX-TXT-v3: the burst rapidly charges HOLD, the stored voltage then decays over a time scale of several seconds, and the output circuit keeps the LED practically at its nominal current until HOLD enters the region in which progressive turn-off occurs.
Verification of the virtual-photodiode stimulus and current
Before proceeding with the new measurement series, I also directly verified the signal applied to the virtual photodiode. In the previous tests I had considered the behavior of the generator’s burst mode without noticing that a continuous offset of +890 mV had also remained set.
To avoid basing the analysis only on the generator’s nominal settings, for each level used in the series I therefore acquired both the drive-signal voltage and the voltage across the 51 kΩ RSENSE resistor of the virtual photodiode at the same time. The Vpp measurements automatically reported by the oscilloscope thus make it possible to directly derive the current actually obtained in the circuit.
IE ≈ VRSENSE / 51 kΩ
Because in the circuit used as a virtual photodiode the collector current can be approximated by the emitter current, I will use these values as an estimate of the IPD current applied to the GX-TXT-v3.
| Measured VGEN | Measured VRSENSE | Estimated IPD |
|---|---|---|
| 1.10 Vpp | 0.780 Vpp | 15.29 µA |
| 2.10 Vpp | 1.34 Vpp | 26.27 µA |
| 3.16 Vpp | 1.84 Vpp | 36.08 µA |
| 4.40 Vpp | 2.32 Vpp | 45.49 µA |
The frequency remains fixed at 38 kHz. The small differences shown by the oscilloscope’s automatic period measurement, on the order of 26.0–26.4 µs, are compatible with the nominal period of about 26.32 µs.
Measurement series with varying current and sensitivity
After defining the trace-processing method, I carried out a systematic series of acquisitions while keeping P_GAIN approximately at mid-range and varying both the current produced by the virtual photodiode and the P_SENS setting.
For each position of the sensitivity control, four levels of the same 100-pulse burst at 38 kHz were applied. The previous verification of the voltage across the 51 kΩ RSENSE resistor made it possible to associate the four generator levels with approximate equivalent photodiode currents of:
15.29 µA 26.27 µA 36.08 µA 45.49 µA
The P_SENS settings used in the main series were 9.459 kΩ, 7.527 kΩ, 5.048 kΩ, and 2.548 kΩ. This therefore gives a matrix of twenty experimental conditions in which the gain remains essentially constant while the input-signal level and the sensitivity setting vary independently.
For each acquisition, the time-domain traces of HOLD and the N_LED_ARANCIO node were recorded. The GNU Octave script described above then automatically derived the maximum value reached by HOLD, the LED current, the duration of the on-state, the turn-off region and, where possible, the HOLD decay parameters.
The purpose of this series is not only to identify the minimum current required to obtain an indication. Above all, the measurements show how P_SENS changes the amount of charge accumulated on the HOLD node and, consequently, the length of time for which the LED remains on after the same burst.
Results of the 20-condition experimental series
All measurements shown in the following table were performed with P_GAIN = 500 Ω and 100-pulse bursts at 38 kHz. The ISENSE current represents the estimated virtual-photodiode current, derived from the voltage measured across the 51 kΩ RSENSE resistor.
| P_SENS | I_SENSE | V_HOLD,max | T_LED |
|---|---|---|---|
| 9.459 kΩ | 15.29 µA | 2.78 V | 1.592 s |
| 9.459 kΩ | 26.27 µA | 4.26 V | 2.402 s |
| 9.459 kΩ | 36.08 µA | 4.62 V | 2.542 s |
| 9.459 kΩ | 45.49 µA | 4.58 V | 2.559 s |
| 7.527 kΩ | 15.29 µA | 2.06 V | 1.014 s |
| 7.527 kΩ | 26.27 µA | 3.74 V | 2.163 s |
| 7.527 kΩ | 36.08 µA | 4.46 V | 2.474 s |
| 7.527 kΩ | 45.49 µA | 4.50 V | 2.499 s |
| 5.048 kΩ | 15.29 µA | 0.46 V | LED off |
| 5.048 kΩ | 26.27 µA | 2.38 V | 1.321 s |
| 5.048 kΩ | 36.08 µA | 3.62 V | 2.094 s |
| 5.048 kΩ | 45.49 µA | 3.90 V | 2.256 s |
| 2.548 kΩ | 15.29 µA | ≈0 V | LED off |
| 2.548 kΩ | 26.27 µA | 0.18 V | LED off |
| 2.548 kΩ | 36.08 µA | 0.78 V | LED off |
| 2.548 kΩ | 45.49 µA | 0.98 V | LED off |
| 0 Ω | 15.29 µA | 0 V | LED off |
| 0 Ω | 26.27 µA | 0 V | LED off |
| 0 Ω | 36.08 µA | 0 V | LED off |
| 0 Ω | 45.49 µA | 0 V | LED off |
The table already shows two distinct effects. At a fixed P_SENS, increasing the virtual-photodiode current generally increases the maximum value reached by HOLD and, when the LED is activated, increases the duration of the indication. At a fixed input current, on the other hand, reducing P_SENS decreases both the charge reached by HOLD and the LED on-time, eventually reaching conditions in which the burst no longer produces a true visible indication.
Effect of the sensitivity setting at constant current
To show the effect of the sensitivity trimmer more directly, I chose to compare several acquisitions performed at the same virtual-photodiode current, about 26.27 µA, while keeping the burst and the P_GAIN position unchanged.
This condition is particularly useful because it lies in an intermediate operating region: the circuit is excited strongly enough to produce an indication at the higher P_SENS values, but as sensitivity is reduced the LED on-time decreases visibly until it disappears completely.
The following oscilloscope traces therefore show the role of the trimmer very clearly: at the same input current, adjusting P_SENS changes the charge reached by HOLD and, consequently, the duration of the visible indication.
The preceding sequence already shows qualitatively what the table and the overall plots confirm quantitatively: at a fixed virtual-photodiode current, the P_SENS setting controls the amount of charge transferred to the HOLD node and therefore how long the LED remains on. As sensitivity is reduced, the indication time progressively decreases until it disappears.
Overall data analysis
The individual acquisitions make it possible to observe the behavior of the GX-TXT-v3 directly, but the amount of data produced during this test series is far greater than would be useful to reproduce in full in the article.
For each experimental condition, the complete oscilloscope traces are available and, through the GNU Octave script, the maximum value reached by HOLD, the LED current, characteristic turn-on and turn-off times, HOLD discharge points, exponential fit, and several intermediate plots used to verify the processing are derived.

These data remain part of the laboratory documentation, but presenting them one by one would produce many nearly equivalent figures and make it more difficult to distinguish the information that is actually significant. After showing a direct example of the effect of the P_SENS setting in the preceding oscilloscope traces, I therefore combined the results of the different acquisitions to look for several overall relationships.
In particular, I consider three aspects. The first concerns the final stage directly and relates LED current to the voltage present on the HOLD node. The second relates the maximum value reached by HOLD after the burst to the time for which the indication remains active. The third returns to the circuit input and shows how the on-time depends on the virtual-photodiode current for different P_SENS settings, with P_GAIN kept approximately at mid-range.
In this way, the many results from the individual measurements are used together without losing the ability to trace them back to the original acquisitions, while avoiding turning the article into a simple sequence of oscilloscope traces and intermediate plots.
LED current as a function of HOLD voltage
A first analysis consists of combining the data from the different acquisitions and plotting ILED directly as a function of VHOLD. In this comparison it no longer matters which photodiode current or which P_SENS position produced a given voltage: the response of the HOLD–LED stage itself is observed directly.
To avoid unnecessarily overlaying a large number of nearly coincident points, the data are grouped into VHOLD intervals and the median LED current is calculated for each level. The individual experimental points remain visible on the plot, allowing the spread between different acquisitions to be evaluated as well.

LED on-time as a function of maximum HOLD voltage
The second comparison uses, for each test, the maximum value reached by HOLD immediately after the burst and the corresponding LED on-time.
This representation almost completely removes what happens in the preceding chain: regardless of how a given VHOLD,max was reached, the interest is in determining how long the circuit then takes to reach the region in which the LED turns off.
Since the HOLD discharge was found to be approximately exponential, it is reasonable to expect an increasing but nonlinear relationship between VHOLD,max and TLED. In addition to the experimental points, the script therefore also calculates a simple logarithmic fit, used as a comparison with the observed trend and not as an exact model of the circuit.

Effect of sensitivity on indication time
The comparison most directly related to the practical use of the GX-TXT-v3 is the one between the ISENSE current produced by the virtual photodiode and the TLED time.
All series were obtained with P_GAIN kept approximately at mid-range. The different P_SENS settings are plotted on the same graph so that the behavior of the circuit can be compared directly at the same input current.
Conditions in which the LED does not turn on are represented by TLED = 0. In this case, zero is not a missing value but an experimental result: the applied burst was not sufficient to produce a true visible indication.
This plot therefore makes it possible to read the practical effect of the sensitivity trimmer directly: at a fixed virtual-photodiode current, changing P_SENS changes the level reached by HOLD and consequently the duration of the indication, down to settings for which the LED remains completely off.

Conclusions
The measurements show that the two GX-TXT-v3 controls perform complementary functions. Once the gain of the input stage has been selected using P_GAIN, the P_SENS trimmer can be used to adjust the response of the visual indication in a practical way.
The main effect of this adjustment is not so much a change in LED intensity, since once turned on the LED rapidly reaches a current close to its steady-state value, but rather a change in the duration of the indication and, at lower-sensitivity settings, the transition between turn-on and no turn-on.
In practice, P_SENS therefore makes it possible to decide how readily a given IR signal should produce a visible indication and how long it should persist. This can be useful, for example, by using a reference remote control at a defined distance and angle and adjusting the circuit to obtain a short flash. Under the same conditions, the response produced by a second remote control can then be compared qualitatively.
The same adjustment can also be used in a less comparative and more practical way: sensitivity can be set to obtain short, easily distinguishable flashes when checking individual buttons, or increased when weaker signals need to be detected or a more persistent indication is desired.
It is important, however, to remember that the LED on-time does not depend only on the instantaneous optical power received. The HOLD node integrates the response of the input chain over time, so the result also depends on the actual number of pulses contained in the remote-control transmission, their timing structure, and the characteristics of the photodiode used as the detector.
Consequently, the GX-TXT-v3 should not be interpreted as an instrument for absolute measurement of the optical power of a remote control, but as an adjustable and repeatable detector, particularly suitable for relative comparisons performed while keeping the test geometry, photodiode, and circuit settings constant.
GNU Octave scripts used for processing
To automate processing of the acquisitions, I used three GNU Octave scripts. The code is extensively commented and can therefore be easily modified to adapt it to different acquisitions or to add further processing.
Analysis of a single acquisition
The first script, initially developed to validate the processing method, analyzes a single CSV file exported by the oscilloscope. It reconstructs the time axis, calculates LED current, analyzes HOLD charging and discharging, automatically determines the LED turn-off region, and generates the corresponding plots and result files.
To use it, simply specify at the beginning of the file the CSV filename and the test metadata, such as P_GAIN, P_SENS, frequency, number of pulses, and generator amplitude. The results are automatically saved in the output folder.
Automatic processing of a measurement series
The second script extends the same processing to an entire measurement campaign. The experimental conditions are described in a simple index file containing P_GAIN, P_SENS, VGEN, and the name of the corresponding CSV file.
The script automatically assigns an identifier to each test, creates a dedicated folder, performs the analysis, saves plots, metadata, and results, and builds a single summary CSV file containing all acquisitions. During execution it also produces a detailed log file, useful for checking the process and identifying acquisitions in which HOLD or the LED does not show a significant response.
Overall campaign analysis
The third script uses the results produced by the batch processing and the tables from the individual acquisitions to combine data from the entire campaign. It is the script used to generate the overall characteristics ILED = f(VHOLD), TLED = f(VHOLD,max), and the families of TLED = f(ISENSE) curves as P_SENS is varied.
Here too, the plots, the numerical data used to build them, and a processing log file are saved automatically.
Download
The three scripts, together with the example files required to use them, are collected in a single ZIP archive. The code contains numerous comments describing the configurable parameters and the different processing stages.
















