Skip to content
View ryantra's full-sized avatar
  • 15:00 (UTC -12:00)

Block or report ryantra

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ryantra/README.md

Rupesh Majhi

Embedded systems and firmware engineer. I work close to the hardware — writing peripheral drivers by hand from the reference manual, building real-time firmware on microcontrollers, and developing device drivers inside the Linux kernel.

Email

About my work

Most of my projects start from a datasheet rather than a library. I enjoy understanding exactly what the silicon is doing — which register bit flips, when an interrupt fires, how a task gets scheduled — and building up from there. Lately I've also been putting more effort into testing and CI, because firmware that isn't verified isn't finished.

A few things I'm comfortable with:

  • Bare-metal driver development for GPIO, SPI, I2C, and USART, written without a vendor HAL
  • Real-time firmware on FreeRTOS — tasks, priorities, queues, semaphores, and ISR-safe design
  • Zephyr RTOS — sensor-driver work with an upstream bug fix merged to mainline, plus devicetree and Kconfig
  • Linux internals — character device drivers, kernel modules, and upstream contributions (an IIO sensor-driver bug fix + staging cleanups merged to mainline)
  • IoT systems end to end, from an ESP8266 collecting sensor data to an MQTT dashboard
  • Unit testing, coverage, and continuous integration

Selected projects

Project What it shows
Nucleof411xx_drivers STM32F411 GPIO, SPI, I2C, and USART drivers written from scratch — no vendor libraries
FreeRTOS Nine progressive RTOS labs: tasks, priorities, queues, timers, semaphores, notifications
IoT-Soilless-Hydroponic-System A smart-farm prototype: ESP8266 to MQTT to Raspberry Pi to a Node-RED dashboard
linux_device_driver Linux kernel modules and a character device driver with dynamic major/minor allocation
Parallel-Computing Parallelizing a physics simulation with OpenMP and OpenCL — about 7.8x on the GPU stage over the optimized CPU version

Open source

Linux kernel

Bug fix — IIO (pressure sensors): iio: pressure: dps310: fix NULL pointer dereference on ACPI probe — fixed a kernel crash during probe when the DPS310 is enumerated via its ACPI HID (the i2c device-id lookup returned NULL and was dereferenced). Reviewed by the IIO maintainers, applied to the IIO subsystem tree, and marked for stable backport. Patch on lore.kernel.org

drivers/staging cleanups: three checkpatch-style patches merged to the Linux staging tree — a CamelCase rename in sm750 (d5c28c0) and shortGIrate to short_gi_rate in rtl8723bs (e6900ce, d9c2a00). My first upstream kernel contributions.

Zephyr RTOS

Driver bug fix — BMI270 IMU: drivers: sensor: bmi270: guard any-motion against missing feature set — the driver silently failed to configure any-motion interrupts when the default (max_fifo) feature set left the any-motion register pointers NULL. On Cortex-M, address 0 is writable, so the write landed on an unintended feature page and returned false success, leaving the trigger a no-op. The fix validates the feature set up front and returns -ENOTSUP with a clear log message. Reviewed by Zephyr maintainers and merged to mainline. PR #114134 (fixes #112938)

Credential: Zephyr Technical Contributor — official badge issued by The Linux Foundation (July 2026) for code and documentation contributors to the Zephyr Project.

  • Earlier: PR #114097 — documentation fix in the Getting Started guide.

Tools I reach for

C C++ ARM STM32 Linux FreeRTOS Zephyr ESP8266 MQTT Node-RED Git

Domains: embedded firmware, RTOS, Linux kernel and drivers, sensor and signal I/O, IoT, and test automation.

Pinned Loading

  1. IoT-Soilless-Hydroponic-System IoT-Soilless-Hydroponic-System Public

    Smart-farm prototype: ESP8266 → MQTT → Raspberry Pi → Node-RED dashboard

    C++

  2. linux_device_driver linux_device_driver Public

    Linux kernel modules and a character device driver with dynamic major/minor allocation

    C

  3. Nucleof411xx_drivers Nucleof411xx_drivers Public

    STM32F411 GPIO/SPI/I2C/USART drivers written from scratch, no vendor HAL — with a CMake build and CI

    C

  4. Parallel-Computing Parallel-Computing Public

    Physics-engine optimization with OpenMP and OpenCL — up to 34x speedup

    C

  5. stm32-bootloader stm32-bootloader Public

    Custom STM32F411 bootloader with a UART firmware updater — protocol, Python host tool, CMake build, and CI

    Assembly

  6. zephyr-moving-average zephyr-moving-average Public

    Zephyr v3.7 LTS app: reusable filter library with Ztest unit tests and Twister CI (native_sim + nucleo_f411re)

    C