I have breadboarded this simple circuit:
R1, R2 and R4 are 10k digipots being controlled by an Arduino. R3 is a fixed 10k resistor. C1 and C2 are both 100 nF. R1 and R2 always have the same value, so think of them like a dual-gang pot. The op amp is a MCP6023, which is running at +5V (single supply), the digipots are MCP42010s, also running at +5V (and yes all the ICs have decoupling caps). The Arduino produces three square waves which are mixed with three 10k resistors and pass through a 10 uF electrolytic cap before entering the filter. The output of the filter passes through an attenuator (a 1M resistor and a 10k to ground) and a 100 uF electrolytic before going to an amp.
My problem is that I'm getting a lot of unwanted distortion from the filter. The signals are getting clipped a lot when resonance is high (R4 controls the resonance). I really don't like this and I'm not sure what to do. Maybe attenuate the signal before it goes into the filter? I've tried a couple random resistor values and nothing seems to be working. Thoughts?
R1, R2 and R4 are 10k digipots being controlled by an Arduino. R3 is a fixed 10k resistor. C1 and C2 are both 100 nF. R1 and R2 always have the same value, so think of them like a dual-gang pot. The op amp is a MCP6023, which is running at +5V (single supply), the digipots are MCP42010s, also running at +5V (and yes all the ICs have decoupling caps). The Arduino produces three square waves which are mixed with three 10k resistors and pass through a 10 uF electrolytic cap before entering the filter. The output of the filter passes through an attenuator (a 1M resistor and a 10k to ground) and a 100 uF electrolytic before going to an amp.
My problem is that I'm getting a lot of unwanted distortion from the filter. The signals are getting clipped a lot when resonance is high (R4 controls the resonance). I really don't like this and I'm not sure what to do. Maybe attenuate the signal before it goes into the filter? I've tried a couple random resistor values and nothing seems to be working. Thoughts?








