Yes, this is an odd hardwired constant that is only appropriate if you
actually wire the standard deviation array. It should only be in one spot and it is actually 0.001. I am talking about the constant at the bottom center of the stock "nonlinear Lev-Mar Fit.vi", feeding into the loop.
If the standard deviation is NOT wired, it is assumed to be 1 and chisquared is a measure of the variance betweeen data and fit. This blows up if your data is very small.
Since the function using the initial parameters is already within 0.001 of the data, it is immediately treated as converged as you noticed.
Solution:
(1) Wire the standard deviation! Initialize an array with the same size as your data and a value set to your estimated standard deviation. (e.g
. 0.01% of max-min of your data, or amplitude of least significant bit, etc.)
(2) Rewrite the stock VI as you did (Don't touch the lamda! lower only the single constant at bottom center!). Make sure to rename it and don't save it in vi.lib or it won't survive version upgrades.