Hi,
to find out about the min and max you can use the following actions:
"Float Operator": in there you can find out the min and max between two values. use this on update as the user move to store the min and max values
when you have these min and max values ( check for it on each update while the user is in calibration mode on your system), compare them with the centered stick value you found in your first step, and that will give you the min range and max range, when not calibrated, then you can find the multipler for the negative and positive range and use that for distributing a full input range.
examples:
current values [-0.9,0.1,0.8]
so the negative range is 1 actually
the positive range is 0.7
so when the current input is 0.3, the actual value you want will be (0.3-0.1)/0.7 ( current value - center)/(range)
you'll need to know when the current value is above or below the center to know which range and offset to apply.
This is UNTESTED, but this is the direction I would take to give it a go.
But, I am very sceptical that it would work on all cases, because when not calibrated, input axis can be not just offseted and with bad ranges, but also completly off the map, with jumps, etc etc. So... with caution...
bye,
Jean