Vijay Kumar Bagavath Singh

Vijay Kumar Bagavath Singh

Chennai, Tamil Nadu, India
2K followers 500+ connections

About

Embedded software developer by profession. An open source and free software…

Articles by Vijay Kumar

  • Building Git From Scratch

    There are several articles and tutorials on the internet that explain Git’s content model and branching model. This is…

    4 Comments
  • Linux Kernel Porting, Jargon Buster

    This article is about Linux kernel porting, and other related terms like flashing and bring-up. The terms are generally…

    15 Comments
  • Chennai Python User Group - Feb Meetup

    Join us at the Chennaipy Feb Meetup! Talks include Extended Window Manager Hints Experimental Mathematics with Python…

    2 Comments

Activity

Join now to see all activity

Experience

  • Zilogic Systems Graphic
  • -

    Chennai Area, India

  • -

    Chennai

  • -

    Chennai Area, India

  • -

    Chennai Area, India

Education

Licenses & Certifications

Volunteer Experience

  • PyCon India 2019 Graphic

    Event Organizer

    PyCon India 2019

    - Present 6 years 9 months

    Science and Technology

    PyCon India 2019, is happening in Chennai, and I am part of the effort.

  • PySangamam Graphic

    Co Organizer

    PySangamam

    - 1 year 1 month

    Science and Technology

    I was one of the organizers of PySangamam 2018, dubbed TN's first Python Conference.

  • Coordinator

    Chennaipy

    - Present 14 years 3 months

    Science and Technology

    I help organize meetups and workshops at the Chennaipy - the Chennai Python User Group. I have been regularly doing talks on various Python related topics since 2011.

  • Coordinator

    GNU/Linux User Group, Trichy

    - 3 years

    Science and Technology

    I helped co-found the GNU/Linux User Group of Trichy. We used to organize meetups, conduct workshop. We also did T-Shirts and printed books by RMS.

Publications

  • Embedded Programming with the GNU Toolchain

    Self Published on the Internet

    This is a tutorial on using the GNU Toolchain for writing bare metal code for ARM processors. The tutorial has been well received and is used as an official study material in several institutions, for learning bare metal programming.

    See publication
  • GTK Multiline Text Editing Widget

    Self Published on the Internet

    This is a tutorial on using the GTK+ TextView and associated TextBuffer objects. The tutorial through a series of examples unfolds the intricate features of GTK+' Multiline Text editing widget.

    See publication

Projects

  • Improvements to PXA27x Emulation

    While developing the course material for the Linux Kernel Porting Workshop, we identified bugs in Qemu's emulation of the PXA27x processor. The issues have been fixed and upstreamed. The specific fixes are listed below.

    * mainstone: Fix incorrect key mapping for Enter key.
    * mainstone: Add mapping for dot, slash and backspace.
    * usb: Fix incorrect default DMA offset.
    * pxa2xx: Auto-assign name for i2c bus in i2c_init_bus.

    Other creators
    See project
  • Porting of Linux to SAM9L-9260

    Port of the Linux kernel to Olimex SAM9L-9260 board. All changes were upstreamed and merged into Linux mainline and available since 4.8 version of the Linux kernel.

    Other creators
    See project
  • Tiny Git

    A tiny model of Git, used for learning and demonstrating how Git works. A series of models is available, in increasing order of complexity, that incrementally explains Git's internals.

    See project
  • RFID Based Library Management System

    The key idea behind the project, was to protect the organization from loss of shared assets, especially SIM cards, SD-Cards, development kits, pen drives, etc.

    A RFID based library management system for tracking the resources was setup, using an Embedded Linux based system, with overall application logic written in Python + Twisted.

  • Development of BlackKite Vehicle Tracking System

    Design and development of a robust vehicle tracking system based on the Telit GSM platform. The code was developed in Python with 95% unit test coverage. From a software perspective the device supports fast GPS locking through AGPS, a wear-levelled log-based flash storage mechanism, network watchdog features to recover from network issues and remote software upgrade.

    An integration testing framework was also developed as part of the project, using the Robot Framework, to emulate various…

    Design and development of a robust vehicle tracking system based on the Telit GSM platform. The code was developed in Python with 95% unit test coverage. From a software perspective the device supports fast GPS locking through AGPS, a wear-levelled log-based flash storage mechanism, network watchdog features to recover from network issues and remote software upgrade.

    An integration testing framework was also developed as part of the project, using the Robot Framework, to emulate various interfaces of the device. Complete with GPS simulation, IO simulation and accelerometer simulation.

    A graphical UI was developed for configuring the device, before deploying on the vehicle.

    The open source Traccar was updated to support BlackKite and all changes were upstreamed.

    Other creators
    See project
  • Setup of Automated Build and Distribution Framework

    The basic idea was to enable automated builds of the master branch for CI. And generated releases of tagged code. The CI builds are to be available for verification and testing. The release builds are to be made available for distribution.

    Jenkins was chosen for automating the builds. The Jenkins jobs were automatically created from a database of projects, using a meta job. Autojenkins was used for templating and creating the jobs. In the process new features were upstreamed to…

    The basic idea was to enable automated builds of the master branch for CI. And generated releases of tagged code. The CI builds are to be available for verification and testing. The release builds are to be made available for distribution.

    Jenkins was chosen for automating the builds. The Jenkins jobs were automatically created from a database of projects, using a meta job. Autojenkins was used for templating and creating the jobs. In the process new features were upstreamed to autojenkins, making it more flexible for Jenkins job creation. Docker was used for isolating the jobs, and providing a clean environment for the build. A Debian base image, with some of the pre-requisites installed was used for the docker base image. WebDAV was used for distribution of the built artifacts and images.

  • Porting Linux and U-Boot to IPQ806x Platform

    Contributed to porting U-Boot and the Linux Kernel to the IPQ806x platform, a Qualcomm Snapdragon variant. Developed the U-Boot MTD NAND driver for IPQ806x platform.

    Other creators
  • ZDev, Open Source Microcontroller Library

    An event driven library for tiny microntrollers. Currently supports 8051, Cortex-M3 and Cortex-M0 based microcontrollers. Provides APIs for GPIO, ADC, DAC, PWM, UART, I2C, SPI, I2C slave and SPI slave.

    Other creators
    See project
  • move_pages and eventfd Test Cases for LTP

    Contributed test cases to the Linux Test Project. The test cases helped uncover bugs in the eventfd() documentation. And later on, it also identified issues in the Microblaze port of the Linux kernel. http://sourceforge.net/p/ltp/mailman/message/23035860/

    See project
  • Setup and Maintenance of Collaboration Tools

    Contributed to setting up and maintenance of the following services. All the services were centrally authenticated using LDAP.

    - Trac: for bug tracking and wiki
    - Subversion: for version control
    - Reviewboard: for code review
    - LDAP: for centralized authentication

    Other creators
  • Training Programmes, Design and Development

    - Present

    Developed the course material for the following training programmes / workshops:

    * Using Linux
    * Linux System Programming
    * Buidling Embedded Linux
    * Linux Device Drivers
    * Dive into Yocto
    * Git Basics
    * ARM Baremetal Programming, Workshop
    * Linux Kernel Porting Workshop

    Fine tuned the delivery of the courses by incorporating feedback. These courses now form a key part of Zilogic's corporate training offerings.

    Other creators
    See project
  • IoT Node Firmware and Mobile Application

    -

    Industrial equipments like welding machines and cutting machines, have various parameters that are to be monitored, to ensure their optimal utilization and performance. These parameters are generally available locally from the device user interface. The customer wanted the live data available in machine, to be made available on a mobile application. The machine and mobile phone could be on the same local network, or could be connected over the Internet. The mobile application should be…

    Industrial equipments like welding machines and cutting machines, have various parameters that are to be monitored, to ensure their optimal utilization and performance. These parameters are generally available locally from the device user interface. The customer wanted the live data available in machine, to be made available on a mobile application. The machine and mobile phone could be on the same local network, or could be connected over the Internet. The mobile application should be cross-platform and should be made available on iPhone / Android mobile.

    The hardware platform was based on an ESP32 board and firmware was implemented using the Arduino framework. The ESP32 board queries the existing system through a SPI base command interface, and makes the data available over JSON-RPC interface. The mobile application built using Kivy runing on iPhone / Android mobile, queries the data periodically over the JSON-RPC interface, and displays it on the mobile application interface, in a format that is convenient for the user.

    Other creators
  • HMI for Automatic Tube Labeler

    -

    The project involves the development of UI application for a phlebotomy tube labelling machine. At the heart of the system is a NVIDIA Tegra 2 based SoC, that runs Linux. The application interacts
    with LIS, gets the tests to be performed, displays the tube to be inserted, the user inserts the tube, and the system prints and pastes the label on the tube. The UI application is developed using Python, Kivy and Sismic. As part of this work, we also ported Kivy to the NVIDIA Tegra 2 SoC.

    Other creators
  • STM32F7 Board, Diagnostics and Bootloader

    -

    This project involved the design custom STM32F7 board, porting of STM32 CubeHAL, development of diagnostics, and development of bootloader for application upgrade.

    Other creators
  • Deskop Management Framework

    -

    Automated management of desktop machines at Zilogic Systems. The desktop infrastructure has evolved over time.

    * The first version, used a centralized NFS shared home directory, centralized authentication using LDAP, and root filesystem synced using radmind.

    * As the organization grew, NFS became a bottle-neck, and home directories were moved to local hardisks, root filesystem was updated using Ansible in pull-mode.

    All shared local software are packaged as Debian…

    Automated management of desktop machines at Zilogic Systems. The desktop infrastructure has evolved over time.

    * The first version, used a centralized NFS shared home directory, centralized authentication using LDAP, and root filesystem synced using radmind.

    * As the organization grew, NFS became a bottle-neck, and home directories were moved to local hardisks, root filesystem was updated using Ansible in pull-mode.

    All shared local software are packaged as Debian packages using FPM and deployed through Ansible.

    Other creators

Honors & Awards

  • Kenneth Gonsalves Award

    Python Software Society of India

    My work in building the Chennai Python community was recognized by the PSSI with the Kenneth Gonsalves Award.

  • Engineer of the Year Award

    GDA Technologies

    My work at GDA Technologies was recognized with the Engineer of the Year Award.

Languages

  • English

    Professional working proficiency

  • Tamil

    Limited working proficiency

  • Hindi

    Elementary proficiency

Organizations

  • Free Software Foundation

    Associate Member

    - Present

Recommendations received

More activity by Vijay Kumar

View Vijay Kumar’s full profile

  • See who you know in common
  • Get introduced
  • Contact Vijay Kumar directly
Join to view full profile

Explore collaborative articles

We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.

Explore More

Add new skills with these courses