Device support

With WebIOPi 0.6+, you can use Serial/I2C/SPI/1-Wire devices directly from the REST API without writing macros.

WebIOPi drivers inherit from a common devices abstraction set (Temperature, Analog converter, GPIO Expander...) providing a consistent and unique set of function. Low level access to Serial, I2C and SPI is provided by lightweights classes available in the WebIOPi core without dependencies. Configuration is provided with the /etc/webiopi/config file. Devices and bus drivers can also be directly used in your Python script.

Serial Interfaces

http://files.trouch.com/icon/python.png Python library http://files.trouch.com/icon/rest.png REST API http://files.trouch.com/icon/javascript.png Javascript library

Name RAW Access Comment
Serial http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Supports native UART and USB adapters
I2C http://files.trouch.com/icon/python.png REST API provided with component drivers below
SPI http://files.trouch.com/icon/python.png REST API provided with component drivers below
1-Wire REST API provided with component drivers below

Analog

http://files.trouch.com/icon/net.png Product page http://files.trouch.com/icon/pdf.gif Datasheet http://files.trouch.com/icon/python.png Python library http://files.trouch.com/icon/rest.png REST API http://files.trouch.com/icon/javascript.png Javascript library

Name Bus Description Links Support Comment
ADS1014 I2C 12-bits 1-channel ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Not tested
ADS1015 I2C 12-bits 4-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
ADS1114 I2C 16-bits 1-channel ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Not tested
ADS1115 I2C 16-bits 4-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Not tested
MCP3004 SPI 10-bits 4-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP3008 SPI 10-bits 8-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP3204 SPI 12-bits 4-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP3208 SPI 12-bits 8-channels ADC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP4725 I2C 12-bits 1-channel DAC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP4921 SPI 12-bits 1-channel DAC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP4922 SPI 12-bits 2-channels DAC http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
PCA9685 I2C 12-bits 16-channels PWM http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png

Digital

http://files.trouch.com/icon/net.png Product page http://files.trouch.com/icon/pdf.gif Datasheet http://files.trouch.com/icon/python.png Python library http://files.trouch.com/icon/rest.png REST API http://files.trouch.com/icon/javascript.png Javascript library

Name Bus Description Links Support Comment
DS2408 1-Wire 8-channels Addressable Switch http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Driver submitted by Stuart Marsden
MCP23008 I2C 8-bits I/O Expander http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23009 I2C 8-bits I/O Expander with Open-Drain Output http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23017 I2C 16-bits I/O Expander http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23018 I2C 16-bits I/O Expander with Open-Drain Output http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23S08 SPI 8-bits I/O Expander http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23S09 SPI 8-bits I/O Expander with Open-Drain Output http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23S17 SPI 16-bits I/O Expander http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
MCP23S18 SPI 16-bits I/O Expander with Open-Drain Output http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
PCF8574 I2C 8-bits I/O Expander http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png

Sensors

http://files.trouch.com/icon/net.png Product page http://files.trouch.com/icon/pdf.gif Datasheet http://files.trouch.com/icon/python.png Python library http://files.trouch.com/icon/rest.png REST API http://files.trouch.com/icon/javascript.png Javascript library

Name Bus Description Links Support Comment
BMP085 I2C Pressure & Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
DS1822 1-Wire Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
DS1825 1-Wire Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
DS18B20 1-Wire Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
DS18S20 1-Wire Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
DS28EA00 1-Wire Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
TMP75 I2C Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
TMP102 I2C Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
TMP275 I2C Temperature sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png
TSL2561 I2C Luminosity sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Driver submitted by Andreas Riegg
TSL4531 I2C Luminosity sensor http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Driver submitted by Andreas Riegg
VCNL4000 I2C Luminosity and Distance sensor with IR http://files.trouch.com/icon/python.png http://files.trouch.com/icon/rest.png http://files.trouch.com/icon/javascript.png Driver submitted by Andreas Riegg

Expansion Boards

http://files.trouch.com/icon/net.png Product page http://files.trouch.com/icon/pdf.gif Datasheet http://files.trouch.com/icon/python.png Python library http://files.trouch.com/icon/rest.png REST API http://files.trouch.com/icon/javascript.png Javascript library

Name Bus Description Links Support Comment
Arduino Serial I/O, ADC, PWM Planned
MOD-IO2 I2C I/O board with external power Community proposal
Pi-Face SPI I/O board with Open-Drain Output Planned
RPIDOM I2C Téléinfo and 1-Wire controller Planned - Board gracefully provided by Yadom

Device not listed ?

I cannot write a driver for all components, mainly because I don't have them, and I cannot buy everything. I could write drivers simply reading specs, but I will not be able to certify it work.

Submit your devices

Feel free to submit any component you use and/or would like to use with WebIOPi on the forum. Depending on demands, I may write the driver if I can have a sample.

How to help

If you know how the device work on it's low level interface, look on the source repository, starting with PCF8574, write your own and submit it. You can also provide me a sample so I can write the driver.