Apart from the possible issues created by having Virtual GND which has a source impedance of 270 Ohms :- meaning some fraction (~ 270/Zload) of your output signal appears across R10, your output signal rides on top of this common mode signal who's amplitude increases as Zload decreases and approaches R10, this though isn't the source of the oscillation shown in that video (which at one point looked to be around 2Mhz, well above the lmv321 crossover freq), this though is probably tipping the two unstable Max4239's configurations (u1,u4) into oscillation.

Max4239'S are Decompensated op-amps, these are only stable at gains greater than 10. Another way of stating this is that the fraction of Output signal you feed back to the inv input shouldn't be greater than 1/10 .

So adding feedback caps (Like c3,c4 here in Ucurrent schematic) which then at some freq (1/2pi C4 Rf) starts to feedback a greater portion of the output signal will cause any NON unity gain stable Op-amp to become unstable.

There are a number of techniques available to enable use of NON unity gain stable OP's with capacitive loads . One I won't discuss here is a resistor + cap between the op's inputs

http://www.ti.com/lit/an/snoa486b/snoa486b.pdfHere's one I sometimes use with both compensated and decompensated Op's, being useful when a flat response is desired. First decide what is the max value of Capacitive load that we want the Op-amp to be stable with then Cf can be calculated.

I usually make Cf*Rf= Cload*(Rop+Riso). Where Rop is the open loop output impedance of your OP (typically 50-100 but there are exceptions).

Then calculate Cs by making Xcf/Xcs = Rf/Rg . Here for these relatively low frequency OP's we can ignore the small input capacitance (few pF) of the Op-amp which adds to Cs .

One way to describe whats going on here is that initially the gain is set by feedback resistors Rf and Rg then at some frequency (= 1/2pi Cf Rf) the capacitive divider Xcf/Xcs takes over the feedback roll. Because of wider tolerances in capacitors it's not really possible to match Cf/Cs as accurately as you can Rf/Rg so you won't get a perfectly flat response Over your OP's entire B.W .

Addition :- The OP still has to be able to drive the series combo of Cr+Cs : Ct = (Cs*Cf)/(Cs+Cf) and if this get's to large it itself will load down the op-amp, (so then you would try to use lower values by increasing Rf,Rg).

Simpler is indirect drive method :- here the capacative load is simply isolated from the Opamp feedback node by a resistor 'Riso'. I generally choose in both methods to make Riso to be = Rop (usually ~ 50 Ohms varying if I want to achieve a specific Zout or working with unusual opamp's) this should be sufficient to stabilize for capacitive loads of practically any size. Making it larger doesn't really increase stability value, it just means higher Zout.

The major difference between the first and second method is that in the first method Riso is inside the feedback loop so the op-amp reduces the apparent output impedance to approx (Riso/1-Loop Gain) which is very Low (< 1 milliohm at DC). Then at the comp freq ( 1/2pi Cf Rf) the capacitors take over feedback, above this frequency Riso is no longer inside the feedback loop, thus Zout rises to ~ Riso .

With the second method Zout = Riso over the entire B.W , Which doesn't matter here considering the main intended usage (load is usually 10M Zin multi-meter) which results in a tiny measurement error proportional to ~ (Riso/10M).

Unlike the final output amp (U4) which sees the load, the first Max4239 (U1) shouldn't need any compensation, just remove C3 to make this stable. ( the few pF input capacitance of U1 creates a pole with R5||Rf but it's well above Fcrossover so no problem).

Regards Kevin.D

Later Edit :- I want to correct something I posted above, the statement that 'adding single feedback cap's like C4 and C3 always makes Non unity gain stable op's unstable is incorrect. If I had bothered to do the maths before I had posted I would have seen that in Daves Ucurrent the zero created by C3,C4 is at (1/(2 pi 10p 10k) = 1.6 Mhz thats just below the crossover for this op-amp when at a gain of 10. You can of course use single small feedback caps that give phase boost's near the crossover frequency (when loop gain = 1) like Dave did here without being worried what happens at the higher frequencies because loop gain is then well below crossover. So doing this (even in decompensated amps) help's the Op-amp to remain stable with small load cap's or stray cap on the inv input. The problem is when larger values of feedback caps are used to try and compensate for larger values of load capacitance's, it might be ok for fixed load capacitance values in some cases but when the load capacitance is variable then a decompensated OP will become unstable when the load cap is then much smaller or no longer present. This is where the two techniques posted above come in as they can cope with wide variation of load capacitance.