User Tools

Site Tools


gsoc:2024-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:2024-gsoc-iio-driver [2024/02/07 21:50]
till
gsoc:2024-gsoc-iio-driver [2024/03/20 04:52]
marcelosc Add FAQ
Line 11: Line 11:
 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). 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).
  
-==== Links ====+==== More about IIO ====
  
-https://​wiki.analog.com/​software/​linux/​docs/​iio/​iio+  * [[https://​wiki.analog.com/​software/​linux/​docs/​iio/​iio|ADI's Linux Industrial I/O Subsystem wiki page]] 
 +  * [[https://​www.youtube.com/​watch?​v=644oH1FXdtE|10 Years of the Industrial I/O Kernel Subsystem]] 
 +  * [[https://​www.youtube.com/​watch?​v=yBjaI1uyXGY|Using Raspberry Pi With Connected Analog as Lab Instrumentation]] 
 +  * [[https://​www.youtube.com/​watch?​v=p_VntEwUe24|LibIIO - A Library for Interfacing with Linux IIO Devices]] 
 +  * [[https://​www.youtube.com/​watch?​v=ct6Y5GBwVSQ|Software Defined Radio - Sdr]]
  
-https://​www.youtube.com/​watch?​v=644oH1FXdtE&​t=846s 
  
 ===== Project Proposal ===== ===== Project Proposal =====
  
-==== Create a Linux IIO driver for Analog Devices, Inc.'s AD7294-2 12-bit control system with ADC, DACs, temperature ​synsor, and current sense ====+==== Create a Linux IIO driver for Analog Devices, Inc.'s AD7294-2 12-bit control system with ADC, DACs, temperature ​sensor, and current sense ====
  
 **Project Size:** 1 contributor medium (175 hours), **Level of difficulty:​** Intermediate **Project Size:** 1 contributor medium (175 hours), **Level of difficulty:​** Intermediate
Line 30: Line 33:
  
 We are also open for suggestions for different ADI's component. If there won’t be suggestions,​ or they don’t make sense, we will choose one component for the accepted student. We are also open for suggestions for different ADI's component. If there won’t be suggestions,​ or they don’t make sense, we will choose one component for the accepted student.
 +
 +Code repository: [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​jic23/​iio.git/​]]
 +
 +Code License: GPLv2
 +
 +==== Tips for writing a good proposal ====
 +
 +  * Start with a section telling a bit about you with basic info such as name, summary of skills, email address, etc.
 +  * Then provide a short bio and coding skills subsections.
 +  * Next, add a section about your motivations for participating in the IIO driver GSoC project. This is a good opportunity to tell your experiences with the IIO subsystem if you have been involved with it before.
 +  * If you made any contribution to the Linux kernel or any other open source project, you might list them in a section too.
 +  * If you are very excited about participating GSoC and want to do more than the Linux driver you may add more sections describing additional ideas or plans.
 +  * Finally, add a section about the project and the planned work schedule. Previous IIO driver GSoC project proposals have presented work schedules divided into weeks. For easy visualization of deadlines, we kindly ask participants to also display GSoC evaluation dates in their work schedules.
 +  * Feel free to share your draft before submitting the final version.
 +
 +=== Drivers developed in previous GSoC projects ===
 +
 +  * [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​drivers/​iio/​accel/​adxl355_core.c|drivers/​iio/​accel/​adxl355*]]
 +  * [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​drivers/​iio/​accel/​adxl313_core.c|drivers/​iio/​accel/​adxl313*]]
 +  * [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​drivers/​iio/​adc/​ad7292.c|drivers/​iio/​adc/​ad7292.c]]
 +
 +
 +===== Frequently Asked Questions (FAQ) =====
 +
 +**Question:​** Will I have to buy the hardware (Raspberry Pi, evaluation board) for this project?
 +
 +**Answer**: No, the hardware will be provided by Analog Devices. You don’t have to worry about this aspect.
 +
 +**Question:​** Are there any prerequisites for this project?
 +
 +**Answer:** No, there are no hard prerequisites for participating in this project. However, it is expected that applicants be familiar with
 +the C programming language, know how to use Linux shell command line interfaces, and understand elementary concepts of operating systems such as
 +files, processes, and system call interface. Previous experience with Linux kernel development is not required although it is a plus for
 +applicants who have it.
 +
 +**Question:​** I don`t know much about IIO. Where can I learn more about IIO? How can I get started with Linux kernel development for the IIO subsystem?
 +
 +**Answer:** Aside from the presentations about IIO, you can follow the ADI instructions on the 
 +[[https://​wiki.analog.com/​resources/​tools-software/​linux-build/​generic/​raspberrypi|Building for Raspberry PI]] page or the [[https://​www.raspberrypi.com/​documentation/​computers/​linux_kernel.html#​cross-compiling-the-kernel|official Raspberry Pi]] ones (using ADI repository and defconfig file).
 +
 +The Linux Foundation offers a free introductory course for kernel development:​
 +[[https://​training.linuxfoundation.org/​training/​a-beginners-guide-to-linux-kernel-development-lfd103/​|A Beginner’s Guide to Linux Kernel Development (LFD103)]]
 +
 +The [[https://​kernelnewbies.org/​Linux_Kernel_Newbies|Kernel Newbies]] website contains extensive material about Linux kernel development,​ including an 
 +[[https://​kernelnewbies.org/​IIO_tasks|IIO task]] page.
 +
 +One can also find many kernel development tutorials on the Internet.
 +For IIO development,​ I suggest some of FLUSP'​s tutorials [[https://​flusp.ime.usp.br/​kernel/​qemu-libvirt-setup/​|1]],​ [[https://​flusp.ime.usp.br/​kernel/​build-linux-for-arm/​|2]],​ [[https://​flusp.ime.usp.br/​kernel/​modules-intro/​|3]],​ [[https://​flusp.ime.usp.br/​iio/​iio-dummy-anatomy/​|4]],​ [[https://​flusp.ime.usp.br/​iio/​experiment-one-iio-dummy/​|5]].
 +
 +**Question:​** Is there any specific Linux distribution or patch to use for Linux kernel IIO development?​
 +
 +**Answer:** No, there is no specific distro or kernel version required for IIO development. Any distro should work.
 +However, for testing on Raspberry Pi, one often uses a kernel that includes patches for the Raspberry Pi platform
 +(such as the ADI kernel or the Raspberry Pi kernel). Kernels that don`t include those patches might not
 +run on a Raspberry Pi board although may be used for testing in emulated environments.
 +
 +
 +**Question:​** Is previous contributing to the Linux kernel a requirement for accepting a candidate?
 +
 +**Answer:** No, although having a history of contribution often provides more visibility to a candidate.
  
 ===== Contact ===== ===== Contact =====
Line 36: Line 99:
  
 IRC: #linux-iio on OFTC IRC: #linux-iio on OFTC
- 
-Code repository: [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​jic23/​iio.git/​]] 
- 
-Code License: GPLv2 
  
 Mentors: Mentors:
  
-Ciprian Hegbeli ciprian.hegbeli@analog.com +  * Ciprian Hegbeli ​(ciprian ​dot hegbeli ​at analog.com) 
- +  ​* ​Marcelo Schmitt ​(marcelo ​dot schmitt ​at analog.com) 
-Marcelo Schmitt marcelo.schmitt@analog.com+  * Dragos Bogdan (dragos dot bogdan at analog.com)
  
-Dragos Bogdan dragos.bogdan@analog.com+Note: Email addresses are displayed in a non-strict format to protect recipients from spam botsPlease replace all occurrences of “ at ” and “ dot ” by “@” and “.” respectively
  
gsoc/2024-gsoc-iio-driver.txt · Last modified: 2024/03/20 04:52 by marcelosc