\begin {iio_driver_for_adxrs290}

GSoC 2020 [ 0x00 ]

GSoC2020 under The Linux Foundation

The Industrial I/O subsystem (IIO) of the Linux kernel, born out of Jonathon Cameron’s SESAME (SEnsing for Sport And Managed Exercise) project to support sensors for athelets, accomodates device drivers in the form of kernel modules to support the various sensors, ADCs, DACs, clock generators, etc. Its primary purpose is to extend over the deficiencies of the hwmon & input subsystems.

I initiated contributing to IIO with trivial patches - fixing checkpatch.pl warnings, converting device-tree bindings to YAML, employing appropriate format specifiers, enabling probing from ACPI using PRP0001 - with which I learnt how the community works, the issues with drivers which are moved into staging, how drivers evolve for new kernel releases, etc. The amount of learning and the sense of community fired up my enthusiasm to apply for The Linux Foundation’s (TLF) project on developing an IIO driver for one of the Analog Devices, Inc.’s (ADI) parts during GSoC 2020; enter ADI’s ADXRS290. I chose ADXRS290 (an Ultra-low Noise, Dual-Axis (Pitch and Roll) MEMS Gyroscope) because:

This proposal for an ‘IIO Driver for ADXRS290 Gyroscope’ got accepted for GSoC 2020 and here I am, paying my gratitude to Dragos Bogdan & Darius Berghe (my mentors), Marcelo Schmitt (GSoC’19 @ TLF), Google Open Source and TLF.

My basis to work on the IIO project in the coming months is two-fold; learn to build production-level software (in this case, an IIO driver) by incorporating collaborative measures with the community, and an attempt to give back to the society by taking them through my experience and providing them with resources, in the form of tutorials, to get started on kernel development. Ergo, (udevadm) monitor this space for more such posts and pathetic puns.

Meanwhile, checkout the resources below and a chucklesome comic-strip by XKCD:

XKCD comics

Resources: