User Tools

Site Tools


gsoc:2019-gsoc-iio-driver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc:2019-gsoc-iio-driver [2019/01/31 10:32]
dbogdan Update the Contact section
gsoc:2019-gsoc-iio-driver [2019/02/05 21:05] (current)
dbogdan 2019 Updates
Line 1: Line 1:
-====== ​GSoC 2019: IIO driver project ​======+====== ​Google Summer of Code 2019: IIO Driver ​======
  
 [[:​gsoc:​google-summer-code-2019|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] [[:​gsoc:​google-summer-code-2019|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]]
  
 +===== Industrial I/O subsystem (IIO) =====
  
-===== Proposal ===== +The main purpose of the Industrial I/O subsystem (IIO) is to provide support for devices that in some sense perform either analog-to-digital conversion (ADC) or digital-to-analog conversion (DAC) or both. The aim is to fill the gap between the somewhat similar hwmon and input subsystems. Hwmon is directed at low sample rate sensors ​used to monitor and control the system itselflike fan speed control or temperature measurement. Input isas its name suggestsfocused on human interaction input devices (keyboardmouse, touchscreen). In some cases there is considerable overlap between these and IIO.
-The main purpose of the Industrial I/O subsystem (IIO) is to provide support for devices that in some sense perform either analog-to-digital conversion (ADC) or digital-to-analog conversion (DAC) or both. +
-Devices that fall into this category include: ADCs, DACs, accelerometers,​ gyroscopes, color and light sensors, ​pressure sensorsmagnetometersVOC sensorsetc.+
  
-The goal of this project is to write a driver for [[https://​learn.adafruit.com/​adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas | Bosch BME680]] temperaturebarometricpressure ​and VOC gas sensor using the [[https://​www.kernel.org/​doc/​html/​v4.15/​driver-api/​iio/​index.html | IIO]] interface. The project is split in the following subtasks: +Devices that fall into this category include: analog ​to digital converters (ADCs)accelerometerscapacitance to digital converters (CDCs), digital to analog converters (DACs), gyroscopes, inertial measurement units (IMUs), color and light sensorsmagnetometers,​ pressure sensors, proximity sensors, temperature sensors, etc.
-  * get familiar with IIO subsystemI2C and SPI API. +
-  * create skeleton driver registering an IIO device +
-  * add IIO channel for humidity +
-  * add IIO channel for temperature +
-  * add IIO channel for pressure +
-  * add IIO channel for VOC +
-  * add support for buffer triggered readings for each of the supported channels in order to efficiently read samples +
-  * add support for power management+
  
-Desired knowledge:​ +Usually these sensors are connected via SPI or I2C. A common use case of the sensors devices is to have combined functionality ​(e.g. light plus proximity sensor).
-  * comfortable with C +
-  * basic low level programming concepts ​(files, memory, buses)+
  
-The accepted student will work on writing the driver for the proposed sensor. In the application form please let me know your plan on how to test your code.+===== Project Proposal =====
  
-Hints: +Create a Linux IIO driver for [[https://www.analog.com/en/​products/​ad7292.html | Analog Devices, Inc. AD7292]] 10-Bit Monitor & Control System with ADC, DACs, Temperature Sensor and GPIOs using the [[https://​www.kernel.org/​doc/​html/​v4.20/​driver-api/​iio/​index.html | IIO]] interface.
-  * sensor communicates over SPI/I2C. +
-  * SBC or USB to I2C/SPI bridge.+
  
 +The driver should be tested on the real hardware. The proposed setup is Raspberry Pi 3 Model B + EVAL-AD7292SDZ.
  
-Code license: GPL +The end goal of the project is to submit the code upstream.
  
-The project is considered successful if the code is accepted into Linux kernel IIO maintainer'​s tree. +Desired Knowledge: 
-===== Where to start? ===== +  * C programming language; 
- +  * Basic electronics knowledge.
-Have a look at the [[https://​kernelnewbies.org/​IIO_tasks]] page. The IIO tasks are part of your application process, try to solve as many as you can.+
  
 +License:
 +  * GPL-2.0
  
 ===== Contact ===== ===== Contact =====
gsoc/2019-gsoc-iio-driver.1548930762.txt.gz · Last modified: 2019/01/31 10:32 by dbogdan