Welcome, my name is Gopinath. I am an embedded software engineer from India. I love to write software to make great products in the embedded technology. I have been working professionally in software development since 2012 in the electronics and embedded domain with experience across the Linux, Android, Windows Embedded and RTOS platforms. Please vist About Me page for more information.

Installing a pre-built module into the Yocto kernel Image

While it is always preferable to build a module driver from source and install it into the Yocto image, in somecases you may need a kernel module driver to be installed from pre-built .ko module. This is needed when you want build your proprietary images without releasing your source code. Below is the template recipe for installing a pre-built module into the Yocto kernel Image. Sample recipe file DESCRIPTION = "Install any module driver from pre-built . While it is always preferable to build a module driver from source and install it into the Yocto image, in somecases you may need a kernel module driver to be installed from pre-built .ko module. This is needed when you want build your proprietary images without releasing your source code. Below is the template recipe for installing a pre-built module into the Yocto kernel Image. Sample recipe file DESCRIPTION = "Install any module driver from pre-built . [Read More]
yocto 

Porting custom audio codec in Linux BSP

For ALSA based drivers

This article explains about porting custom ALSA based audio codec driver in Linux BSP. I have taken audio codec wm8960 and NXP’s IMX7 processor as an example. The source code for this linux BSP is available here under GNU General Public License. Advanced Linux Sound Architecture (ALSA) Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers. This article explains about porting custom ALSA based audio codec driver in Linux BSP. I have taken audio codec wm8960 and NXP’s IMX7 processor as an example. The source code for this linux BSP is available here under GNU General Public License. Advanced Linux Sound Architecture (ALSA) Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers. [Read More]
Linux  audio 

Life Lessons From A Baby

Does anyone remember your very first day in this world? I guess nobody does. Though you don’t remember yours, probably you know it very well. A baby’s first minutes start with a loud cry. Spend most of her first weeks in sleep and rest. Then slowly she starts to stare at mom, dad and other new faces. She often keeps them awake in nights with her cry to get attention for her troubles. Does anyone remember your very first day in this world? I guess nobody does. Though you don’t remember yours, probably you know it very well. A baby’s first minutes start with a loud cry. Spend most of her first weeks in sleep and rest. Then slowly she starts to stare at mom, dad and other new faces. She often keeps them awake in nights with her cry to get attention for her troubles. [Read More]

Detecting HDMI Port ID from EDID data

In HDMI protocol, Extended Display Identification Data (EDID) is a data structure provided by a digital display to describe its capabilities to a video source (e.g. graphics card or set-top box). The EDID includes manufacturer name and serial number, product type, phosphor or filter type, timings supported by the display, display size, luminance data and pixel mapping data. For applications like HDMI CEC, it is required to know port number of HDMI port number of the TV/monitor connected. In HDMI protocol, Extended Display Identification Data (EDID) is a data structure provided by a digital display to describe its capabilities to a video source (e.g. graphics card or set-top box). The EDID includes manufacturer name and serial number, product type, phosphor or filter type, timings supported by the display, display size, luminance data and pixel mapping data. For applications like HDMI CEC, it is required to know port number of HDMI port number of the TV/monitor connected. [Read More]
hdmi 

Encoding a raw YUV video file into H.264/MP4 file using ffmpeg

ffmpeg is basically a very fast video and audio converter. It can grab from a live audio/video source. It can also convert between arbitrary sample rates and resize video on the fly with a high quality polyphase filter. ffmpeg reads from an arbitrary number of input “files” and writes to an arbitrary number of output “files”, which are specified by a plain output url. How to install it in linux? To install it in Linux - ubuntu, open the /etc/apt/sources. ffmpeg is basically a very fast video and audio converter. It can grab from a live audio/video source. It can also convert between arbitrary sample rates and resize video on the fly with a high quality polyphase filter. ffmpeg reads from an arbitrary number of input “files” and writes to an arbitrary number of output “files”, which are specified by a plain output url. How to install it in linux? To install it in Linux - ubuntu, open the /etc/apt/sources. [Read More]

Competition - Is it healthy?

Competition is very old by nature. It has been here on earth since thousands years ago. What is competition? Wikipedia definition goes like this :Competition is a contest between organisms, animals, individuals, groups, etc., for territory, a niche, or a location of resources, for resources and goods, for prestige, recognition,awards, or group or social status, for leadership.But is it really healthy for us? This article shows my thoughts on this question.

Competition is very old by nature. It has been here on earth since thousands years ago. What is competition? Wikipedia definition goes like this :Competition is a contest between organisms, animals, individuals, groups, etc., for territory, a niche, or a location of resources, for resources and goods, for prestige, recognition,awards, or group or social status, for leadership.But is it really healthy for us? This article shows my thoughts on this question.

[Read More]

Optimist's version of Murphy's law

Have you ever faced this kind of experience at-least once in your life ?

  1. If you change queues,the one you were in will always move faster than the one you are in now.
  2. If you drop any objects,it will roll to the most difficult corner to reach by you.
  3. As soon as you sit down to a cup of hot coffee, you will be called for meeting until the coffee is cold.
  4. The probability of meeting someone you know increases dramatically when you are with someone you don’t want to be seen with
  5. When you try to demonstrate a device/machine to someone, it suddenly stops working until he/she leaves that place.

If yes,then you are not alone! But why this is happening? Scientists claiming that there is a law,responsible for these things. You might have heard about the term “Murphy’s Law” from movies like Interstellar or from internet or somewhere else. Simply, Murphy’s law is epigram and it can be stated as, “Anything that can go wrong, will go wrong”. At first glance,this law seems to be pessimists version and encouraging pessimism. When you apply this law for some serious cases, you might even feel depressed. But this is law and it cannot be changed. After a while I came across this thought.

Have you ever faced this kind of experience at-least once in your life ?

  1. If you change queues,the one you were in will always move faster than the one you are in now.
  2. If you drop any objects,it will roll to the most difficult corner to reach by you.
  3. As soon as you sit down to a cup of hot coffee, you will be called for meeting until the coffee is cold.
  4. The probability of meeting someone you know increases dramatically when you are with someone you don’t want to be seen with
  5. When you try to demonstrate a device/machine to someone, it suddenly stops working until he/she leaves that place.

If yes,then you are not alone! But why this is happening? Scientists claiming that there is a law,responsible for these things. You might have heard about the term “Murphy’s Law” from movies like Interstellar or from internet or somewhere else. Simply, Murphy’s law is epigram and it can be stated as, “Anything that can go wrong, will go wrong”. At first glance,this law seems to be pessimists version and encouraging pessimism. When you apply this law for some serious cases, you might even feel depressed. But this is law and it cannot be changed. After a while I came across this thought.

[Read More]

Tidy Numbers

Solution in C++

This is second problem in Code jam Qualification Round 2017 . Here is the original problem. Tatiana likes to keep things tidy. Her toys are sorted from smallest to largest, her pencils are sorted from shortest to longest and her computers from oldest to newest. One day, when practicing her counting skills, she noticed that some integers, when written in base 10 with no leading zeroes, have their digits sorted in non-decreasing order. This is second problem in Code jam Qualification Round 2017 . Here is the original problem. Tatiana likes to keep things tidy. Her toys are sorted from smallest to largest, her pencils are sorted from shortest to longest and her computers from oldest to newest. One day, when practicing her counting skills, she noticed that some integers, when written in base 10 with no leading zeroes, have their digits sorted in non-decreasing order. [Read More]

Oversized Pancake Flipper

Solution in C++

Code jam Google Code Jam is an international programming competition hosted and administered by Google. The competition began in 2003 as a means to identify top engineering talent for potential employment at Google. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions. From 2003 to 2007, Google Code Jam was deployed on Topcoder’s platform and had quite different rule, since 2008 Google has developed their own dedicated infrastructure for the contest. Code jam Google Code Jam is an international programming competition hosted and administered by Google. The competition began in 2003 as a means to identify top engineering talent for potential employment at Google. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions. From 2003 to 2007, Google Code Jam was deployed on Topcoder’s platform and had quite different rule, since 2008 Google has developed their own dedicated infrastructure for the contest. [Read More]

Tips and Tricks in Yocto Build

A simpler way of using a local git repository in bitbake recipe file In some cases for instance when the download performance is not good, you may need to use local kernel git repository in your yocto build bb file. To do this, you can either use existing local git repository in your bb file or you can set-up and download git repository locally as below. Steps to set up local kernel repository A simpler way of using a local git repository in bitbake recipe file In some cases for instance when the download performance is not good, you may need to use local kernel git repository in your yocto build bb file. To do this, you can either use existing local git repository in your bb file or you can set-up and download git repository locally as below. Steps to set up local kernel repository [Read More]
yocto