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

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

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

Analog

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

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

Digital

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

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

Sensors

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

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

Expansion Boards

https://files.trouch.com/icon/net.png Product page https://files.trouch.com/icon/pdf.gif Datasheet https://files.trouch.com/icon/python.png Python library https://files.trouch.com/icon/rest.png REST API https://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.