I tried to use SciPy's smoothing univariate spline
from scipy.interpolate import UnivariateSpline
spl = UnivariateSpline(x, y)
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
You cannot change this parameter, it's fixed deep down in the FITPACK code:
In principle, you could modify the Fortran sources and recompile scipy, but this is almost surely not what you want to do. Instead, you could use the
s parameter of the UnivariateSpline (or splrep, for that matter) to see if you're getting something useful given your data
And, by the way, ODR has nothing to do with this.