Skip to content
View madhawapolkotuwa's full-sized avatar

Block or report madhawapolkotuwa

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.

Content in all repositories owned by your account will be closed.
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
madhawapolkotuwa/README.md

Hi there, I'm Madhawa Polkotuwa πŸ‘‹

I am a Software Developer passionate about low-level programming, embedded systems, and Linux device driver development. I love breaking down complex hardware and kernel-level concepts into practical, easy-to-follow tutorials for the developer community.


Top Langs

πŸ“Ί Featured YouTube Tutorials

I run MP Coding, a YouTube channel dedicated to bare-metal programming, Linux device drivers, and advanced software engineering concepts.

Check my projects & tutorials list below: Projects and Tutorials

▢️ Subscribe to MP Coding on YouTube to stay updated with my weekly coding guides!


✍️ Technical Writing on Medium

When I'm not writing code or filming tutorials, I write comprehensive, step-by-step articles to help developers master core engineering principles.

πŸ“š Read my latest deep-dives on Medium


πŸ› οΈ Tech Stack & Focus Areas

  • Languages Low-Level: C, Assembly
  • Languages High-Level: C++, C#, Python, Rust, TypeScript
  • Embedded Ecosystems: STM32, dsPIC, Renesas, NXP, AVR, Arduino, ESP32, Raspberry Pi, Radxa, ..
  • Kernel Development: Linux Device Drivers, Device Trees, Subsystems (SPI/I2C), Synchronization (Spinlocks, Mutexes, Completions), ..
  • Web Tech (Fun Side Projects): SignalR, React
  • Data Base: SQL, SQLite, LDAP

🀝 Connect With Me

Feel free to explore my repositories, open an issue, or reach out if you want to collaborate on embedded software or Linux kernel projects!


Projects and Tutorials

Project or repo Video Description Technologies
πŸ”— Linux Driver Development with Raspberry Pi Youtube Video Linux Device Driver Development with Raspberry Pi - Full Tutorial Series Linux Device Driver, C
πŸ”— STM32F7 QSPI Flash Setup & Test - QSPI-Flash configuration on the STM32F7 & Tests STM32, QSPI-Flash , C
πŸ”— STM32F7 SDRAM: FMC Setup, Timing Calculations & Live Memory Test Youtube Video Build, from a bare MCU, a working FMC/SDRAM read-write tests STM32, SDRAM , C
πŸ”— Arduino Bare-Metal Programming with C - No IDE Youtube Video programming the Arduino Uno (ATmega328P) directly at the register level. no Arduino IDE, no Arduino core library Arduino, AVR , C, Assembly
πŸ”— dsPIC33 PWM
πŸ”— dsPIC33 RGB LED With PWM
πŸ”— dsPIC33 RGB LED with HSPWM
Youtube Video dsPIC33 PWM, Examples dsPIC, PWM, C
πŸ”— Synchronization Primitives in FreeRTOS Youtube Video Synchronization Primitives in FreeRTOS (YouTube video series). FreeRTOS, C, STM32
πŸ”— Qt App Drink Bar(Qt for MCU) Youtube Video Qt for MCU with STM32 (Drink Bar). Qt(QUL), Qml, C/C++, STM32
πŸ”— Qt App Drink Bar Youtube Video Qt Qml Application (Drink Bar). Qt, Qml, C++
πŸ”— LVGL STM32F4 UI Template Youtube Video A starter UI project for STM32F4 MCUs using LVGL and SquareLine Studio. Great for embedded UI prototyping. C, LVGL, STM32CubeIDE, SquareLineStudio
πŸ”— External SDRAM on STM32 Youtube Video how to correctly configure and use external SDRAM with STM32, using the STM32F429 Discovery board and the IS42S16400J-7 SDRAM chip. C, STM32CubeIDE
πŸ”— Getting Started with MicroPython on STM32 Youtube Video how to setting up MicroPython on the STM32F4 Discovery (STM32F429I-DISCO) board. MicroPython
πŸ”— TouchGFX STM32 Youtube Video how to create a simple GUI application using TouchGFX on the STM32F429 Discovery board. C/C++, TouchGFX, STM32CubeIDE
πŸ”— LVGL Custom UI on Raspberry Pi Youtube Video building a custom E-Bike GUI on a Raspberry Pi, using LVGL and SquareLine Studio. C, LVGL, SquareLineStudio
πŸ”— Chromium Embedded Framework (CEF) Project on Windows 11 Youtube Video example project for the Chromium Embedded Framework (CEF) on a Windows 11 PC. CEF
πŸ”— Build a Qt Application Using Visual Studio Code Youtube Video process of setting up and building a Qt application using VS Code. C++, Qt , Vs Code
πŸ”— 2048 Game with SDL3 Youtube Video A fun clone of the 2048 game built using SDL3 and C++. Cross-platform support included. C++, SDL3
πŸ”— Real-Time Oscilloscope with SDL and ImGui Youtube Video simple efficient real-time oscilloscope using SDL3 for rendering and Dear ImGui for the GUI controls. C++, SDL3 , ImGui
πŸ”— Tic Tac Toe Game with Dear ImGui Youtube Video Tic Tac Toe game interface using the powerful Dear ImGui library. C++, ImGui
πŸ”— WPF Router Navigation System Youtube Video A lightweight, MVVM-friendly router-based navigation framework for WPF applications. C#, WPF, MVVM
πŸ”— WPF Notification Service Library Nuget Youtube Video powerful library to enhance WPF applications with customizable notifications. C#, WPF, MVVM , NuGet
πŸ”— WPF Loading Animation Nuget Youtube Video Loading Animations Nuget package for WPF applications. C#, WPF, MVVM , NuGet
πŸ”— WPF Virtual Keyboard and Keypad Nuget Youtube Video Virtual Keyboard and Keypad Nuget package for WPF applications. C#, WPF, MVVM , NuGet
πŸ”— Online TicTacToe Game with SignalR and React Youtube Video online TicTacToe game from scratch using SignalR for real-time communication and React for the frontend interface. C#, ASP.Net API , React , Typescript , SQL DB
πŸ”— LDAP User Control Program with Asp net API & Angular Youtube Video LDAP user management with our comprehensive tutorial on building a sophisticated LDAP User Control Program. C#, ASP.Net API , Angular , LDAP DB
πŸ”— PLC Real-Time Control & Monitor using Web Application (SLMP) (Mitsubishi PLC) Youtube Video system to control Mitsubishi PLC using a web application and achieved real-time monitoring of the PLC data. C#, ASP.Net API , Angular , SLMP

Popular repositories Loading

  1. linux_driver_development_with_raspberrypi linux_driver_development_with_raspberrypi Public

    This series is designed to build a strong, practical foundation in Linux kernel driver development for Embedded Systems, step by step, from basics to real implementation. Using Raspberry PI.

    C 41 17

  2. QtWithVSCode_LoginForm QtWithVSCode_LoginForm Public

    Build a Qt Application Using Visual Studio Code

    C++ 12 1

  3. WPFPaginationDemo WPFPaginationDemo Public

    A custom pagination control for WPF applications (MainApp is Demo App, PaginationControl is the Custom Control)

    C# 10 1

  4. Oscilloscope_Demo_with_SDL3 Oscilloscope_Demo_with_SDL3 Public

    Real-Time Oscilloscope with SDL and ImGui in C++

    C++ 9

  5. 2048_with_SDL_Cpp 2048_with_SDL_Cpp Public

    Building 2048 with SDL3 (C++)

    C++ 8

  6. stm32f429_disco_lvgl stm32f429_disco_lvgl Public

    Custom LVGL UI on STM32F429 with SquareLine Studio

    C 8 3