do you know which of these values I would need to adjust to make this work for the 50-500 Hz range?Below is an interesting circuit that adjusts the pulse-width output of the ubiquitous 555 configured as a one-shot, so that the duty-cycle is 50% between 25Hz to 111Hz.
The idea is to adjust the 555 output pulse width using a feedback loop, until the output pulse train has an average voltage value of 50% of the pulse amplitude, which only occurs when the duty-cycle is 50%.
The 555 is triggered by the falling pulse edge of the input signal to generate a one-shot output.
The 555 output pulse train is integrated by U1 and adjusts the Q1-Q2 current-mirror current, which controls the charge time of C3, and thus the 555 pulse-width, until the integrated (average) value equals the Ref value determined by R1 and R2.
Vref is set to 1/2 the output pulse amplitude (≈ ½ of 4.48V in the simulation), thus giving an output duty-cycle of 50%.
U1 is a rail-rail type input and output op amp to maximize the dynamic range.
The value of R1 may need to be tweaked to get a 50% duty-cycle, depending upon what the actual pulse output voltage is of the 555 you use.
Of course, you could also adjust Ref voltage to give a different fixed duty-cycle, other than 50%.
The value of R5 may also have to be tweaked, depending upon how good the two transistors are matched.
For good matching you could use the inexpensive (U$0.37) DMMT3906W matched transistor pair in place of Q1 and Q2.
The LTspice simulation below shows that the output duty-cycle is 50% for 20% duty-cycle pulse input frequencies of 25Hz (yellow traces) and 111Hz (blue traces).
It will also do that for any frequency between those two limits, and is insensitive to the input duty-cycle.
View attachment 153477
Moderator edit: New thread created from this.