How the damn think works and how it could be better...or eliminated!
I calculated the properties of the pangolin suggested sallen key filter. Here is what I found.
http://en.wikipedia.org/wiki/Sallen_Key_filter (see lowpass example)
R1=2.7k
R2= the range 0-104.8k
C1=390pf
C2=680pf
R2 is based on the fixed value 2220k in parallel with the 200k pot either all the way on or off. Since the diodes only conduct one direction, only on pot at a time is involved in the calculation. So the pot ranges from 0-200k so 0 parallel with 220k=0 and 220k in parallel with 200k =104.8k. Thus the filter ranges from 0HZ-18.737 KHZ with a Q of 0-13,680. The Q increases with increasing frequency. Now here is the important part. The input impedance is near infinity which is good but the output in very low. Thus I suggest a buffering opamp after the filter to make up gain and stabilize the impedance. If this is not done it will draw excessive current loading down the drivers input and prevent you from getting a full-scale signal to the driver(have been here and done that!). Thus I think I should put the scaling/gain/offset after the filter rather than before. I also think we might want to put an opamp before the filter to add a little gain before the filter to offset the diode conductance forward bias. If this is done, you could most likely get away with 1N4001 diodes. This initial opamp can be for buffering the differential input anyway.
Thus I think that while the filter everyone is using works, it could be made better by the changes I suggest above.
My biggest question is how does this filter slow down the signal for the diodes? I think it happens by changing the time when the signal goes above zero with the sallen key diodes forward conduction.
Would this not be far better if the signal was retimed in software before it left the pangolin card? Thus turn the green on a bit sooner and stay on a little longer (like pulling points)than the other colors to match the laser diodes. This would mean the software would have to look ahead to predict when to turn on the green in relation to the other colors. It could ignore this when scanning by itself. You also only need to treat one channel this way.