Crude Joy !
I refactored the Joystick service from 800+ lines of code down to ~300. Its much more dynamic and less brittle. It publishes a single type of data - an "Input" object which includes an identifier & value.
The z 0.0000015258789 is an example "z" is the identifier and 0.0000015258789 is the value. It still has its own mapping capabilities so that you can remap the ranges to what you want. The publishing points are greatly simplified. Now there is only 1 !
e.g.
subscribe("joystick","publishInput")
That one liner will send you ALL the data - the only expectation is you'll need to route based on the identifier
e.g.
onInput(input) :
if (input.id == "z") :
arduino.analogWrite(leftWheel, input.value) # y axis
elif (input.id == "x") :
arduino.analogWrite(righWheel, input.value) # x axis
elif (input.id == "0") :
arduino.digitalWrite(power, input.value) # power button
I have not checked anything in - but I will when I get the webgui more functional