User Tools

Site Tools


gsoc:2018-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
Last revision Both sides next revision
gsoc:2018-gsoc-iio-driver [2018/01/29 09:45]
dbaluta [Proposal]
gsoc:2018-gsoc-iio-driver [2018/02/21 07:11]
dbaluta [Proposal]
Line 1: Line 1:
 ====== GSoC 2018: IIO driver project ====== ====== GSoC 2018: IIO driver project ======
  
-===== Overview =====+[[:​gsoc:​google-summer-code-2018|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]]
  
 +
 +===== 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 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 sensors, magnetometers,​ VOC sensors, etc. Devices that fall into this category include: ADCs, DACs, accelerometers,​ gyroscopes, color and light sensors, pressure sensors, magnetometers,​ VOC sensors, etc.
  
-===== Proposal ===== +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]] temperature,​ barometric, pressure 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
- +  * get familiar with IIO subsystem, I2C and SPI API
-The goal of this project is to write a driver for sensor using the [[https://​www.kernel.org/​doc/​html/​v4.15/​driver-api/​iio/​index.html | Industrial I/O]] interface. The project is split in two phases+  * create skeleton driver registering an IIO device 
-  * **first phase**: ​get familiar with the hardware, the IIO subsystem ​then implement raw readings from the device+  ​add IIO channel for humidity 
-  * **second phase**add support ​for buffered readings, triggers and power management. +  ​add IIO channel for temperature 
- +  ​add IIO channel for pressure 
-For an application to be taken in consideration,​ a student must: +  ​* add IIO channel ​for VOC 
- +  * add support ​for buffer triggered readings for each of the supported channels in order to efficiently read samples 
-  * send at least 5 cleanup patches ​for ''​drivers/​staging/''​ directory ​of the Linux kernel. See [[https://​kernelnewbies.org/​FirstKernelPatch | First kernel patch tutorial]] +  * add support for power management
-  * do some research work and find a sensor which doesn'​t have a Linux kernel driver. You can start searching [[https://​www.adafruit.com/​ | here]] or [[https://​www.sparkfun.com/​ | here]].+
  
 Desired knowledge: Desired knowledge:
Line 21: Line 22:
   * basic low level programming concepts (files, memory, buses)   * basic low level programming concepts (files, memory, buses)
  
-===== Previous proposals ​=====+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. 
 + 
 +Hints: 
 +  * The sensors communicates over SPI/I2C. 
 +  * SBC or USB to I2C/SPI bridge. 
 + 
 + 
 +Code license: GPL  
 + 
 +The project is considered successful if the code is accepted into Linux kernel IIO maintainer'​s tree. 
 +===== Where to start? ​=====
  
-Just to have an idea on how this project works here is list of successful past projects:+Have 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.
  
-  * [[https://​narcisaam.github.io/​Setup/​ | CCS811 Air Quality Sensor]] 
-  * [[https://​amsfield22.wordpress.com/​2016/​08/​02/​ltc2485-analog-to-digital-converter/​|LTC2485 Analog to Digital Converter]] 
-  * [[https://​eraretuya.github.io/​2017/​02/​11/​driver-acceptance/​ | ADXL345 accelerometer]] 
-  * [[https://​iiobits.wordpress.com/​2015/​01/​26/​hardware-is-here/​| ISL29018 digital ambient light and proximity sensor]] 
-  * [[https://​kernelsense.wordpress.com/​2016/​05/​23/​maxim-success-for-maxim-potentiometer/​ | MAX5487 digital potentiometer]] 
  
-A project is considered successful if the code is accepted into Linux kernel IIO maintainer'​s tree. 
 ===== Contact ===== ===== Contact =====
  
gsoc/2018-gsoc-iio-driver.txt · Last modified: 2018/02/21 07:11 by dbaluta