Skip to content
View ryantra's full-sized avatar
  • 16: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
  • 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 Optimizing a physics engine with OpenMP and OpenCL — up to a 34x speedup

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 — merged to mainline:

  • d5c28c0staging: sm750: rename CamelCase variable Bpp to bpp
  • e6900cestaging: rtl8723bs: rename shortGIrate to short_gi_rate (rtw_ap.c)
  • d9c2a00staging: rtl8723bs: rename shortGIrate to short_gi_rate (rtl8723b_hal_init.c)

Zephyr RTOS

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

Tools I reach for

C C++ ARM STM32 Linux FreeRTOS 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