If the predefine hardware device does not mach your needes you can make a special one by your self and contribute!
First you have to decide device funcionality and add the necesary adapting electronics to your arduino.
IMPORTANT: The user is responsible to map every pin to the real hardware. No check is done.
This INDI drivers allows to use arduino boards (http://www.arduino.cc) as general propouse I/O.
The comunication to the arduino board it is made using firmata protocol (http://www.firmata.org/) and the board has to be load with the standard firmata firmaware. This firmware is distributed with the Arduino-IDE programing tool. To load File->examples->firmata->standardfirmata
The driver read the properties configuration from xml skeleton file. It use also this file to program on runtime arduino pin behaviour (ANALOG,PWM,INPUT, OUTPUT). Skeleton files usually are in /usr/share/indi or /usr/loca/share/indi ([devicename]_sk.xml)
The driver use a special tag <indiduino> to map each arduino pin. The syntax is:
<indiduino pin=”[pinnumber]” type=”[input][output]” mul=”[float number]” add=”[float number]“/>
Fisical Analogs Outputs have to be in the 0-255 range (arduino PWM). This can be achive using “mul” and “add” attributes. The formula is ARDUINO_PWM_VALUE=INDI_NUMBER_VALUE*mul+add
Fisical Analogs Inputs are always in the 0-1024 range (arduino ADC). INDI properties are set using this formula: INDI_NUMBER_VALUE=ARDUINO_ADC_VALUE*mul+add
See example skeleton files for more details.
Advices:
Using custom Firmware is posible to map signal not to real hardware but a logical variables. Using this is posible to achive elaborate behaviours tripping arduino functions. See stepper example code.