Thanks for the link of the new sw! Seem identical to the other one that i had (1.4)...
I've tried to find where are the non-linearities in the amplitude, and are in the 4053 analog switches used for attenuate the signal amplified by the first opamp... i've bypassed the final amplification stage and the filter (for unloading the r-2r attenuation network), set a constant voltage out of the the dac, then set the amplification setting to 20v (maximum, so that all the analog switches was selecting the input signal - so no attenuation), measured the voltage in input of the analog switches and at the output (at the resistors), and at the output the voltage is not the same as the input. Nice to notiche that some only some chip are out of spec (as much as 1% error), so with a good selection of 4053 is possible to select the most precise one's and use them (thig that i'll do as they are quite cheap)
Got it: The error is due to the on resistance of the analog switches. I've cheked and seem that all the 4053 from various makers have almost the same specs. How much is bad paralleling 2 analog switches? Or eventually change the r2r from 500ohm/1k to 1k/2k?
Also the ADG733 is an interesting alternative, the low on resistance will eliminate the problem. But need to convert supply from +/-5v to +3.3v/-2.5v, not too complicated but then there is the need to reduce the amplification of the first opamp (that amplify the signal up to 7vpp) to max 5vpp.
I was not able to find an analog switch with same voltage rating and lower on resistance other than this... Also valuated to use an unity gain buffer but i not think that's a good solution.
Found also what's causing the error at around half of the 12bit scale, it's the switch of the msb. The problem (at least, this one) isn't the precision of the resistors, but that around the lsb the load on the altera chip caused by 500/1k resistor is too much and the output of the chip is not 3.3v but a bit less (Also here, due to on resistance). Need to try to switch from 500/1k to 1k/2k, or 5k/10k or 10k/20k. I not know if this have negative sides, but for sure change the impedance of the network, increase noise and increase error due to input bias current of the opamp.