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
Next revision Both sides next revision
gsoc:2018-gsoc-iio-driver [2018/01/29 09:32]
dbaluta [Previous proposals]
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. 
 +  * 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:​ 
 +  * 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 the sensor. 
 + 
 +Hints: 
 +  * The sensors communicates over SPI/I2C. 
 +  * SBC or USB to I2C/SPI bridge.
  
-The goal of this project is to write a driver for a 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: 
-  * **first phase**: get familiar with the hardware, the IIO subsystem then implement raw readings from the device. 
-  * **second phase**: add support for buffered readings, triggers and power management. 
  
-For an application to be taken in consideration,​ a student must:+Code licenseGPL 
  
-  * send at least 5 cleanup patches for ''​drivers/​staging/''​ directory of the Linux kernel. See [[https://​kernelnewbies.org/​FirstKernelPatch | First kernel patch tutorial]] +The project is considered successful if the code is accepted into Linux kernel ​IIO maintainer's tree
-  * 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]]+===== Where to start? ​=====
-===== Previous proposals ​=====+
  
-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