Overview
What this challenge is about.
Read the SPI sensor datasheet (provided) and the existing user-space hack (around 600 lines of C). Write a Linux kernel module (target kernel 6.6 LTS) that registers a hwmon device, implements SPI read/write, handles the chip's 8-byte calibration block at probe time, and exposes temperature in standard sysfs units (millidegrees). Add devicetree binding documentation. Write a userland test C program (around 200 lines) that reads via sysfs and through the legacy ioctl for compatibility. Get the driver loading + reading reliably on a Raspberry Pi 4 with the actual sensor board. Deliver: kernel module source, devicetree binding doc, test program, 5-page integration guide for the firmware team.
The Brief
What you'll do, and what you'll demonstrate.
Write a Linux kernel driver for a custom SPI sensor board that exposes a clean hwmon interface and ships with a userland test program.
Earning criteria — what you'll demonstrate
- Write a real Linux kernel module against the 6.x kernel API
- Use sysfs and devicetree to expose hardware to userland cleanly
- Handle SPI bus quirks (chip-select timing, byte ordering, calibration blocks)
- Bridge kernel + userland in C with a defensible test program
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.