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.

HDMI CEC in Android

Consumer electronic control (CEC) is a feature of the HDMI interface 1.3 standard (high definition multimedia interface), which is used to transmit audio/video data for multimedia consumer products such as HDTV, DVDs, satellite receivers etc. For example, One Touch Play lets a media source device turn on the TV and switch its input port automatically, so you don’t have to search for the TV remote to switch from your Chromecast to Blu-ray player or using the remote control of a CEC enabled TV, you can control the set-top box or DVD player, controlling the TV from HDMI-CEC enabled android device via HDMI CEC application. The most commonly used CEC commands are : One Touch Play,System Standby, One Touch Record, System Information,Tuner Control,Routing Control, OSD Display, System Audio Control etc. This article explains the basic of HDMI CEC protocols and how this can be implemented in android framework.

Consumer electronic control (CEC) is a feature of the HDMI interface 1.3 standard (high definition multimedia interface), which is used to transmit audio/video data for multimedia consumer products such as HDTV, DVDs, satellite receivers etc. For example, One Touch Play lets a media source device turn on the TV and switch its input port automatically, so you don’t have to search for the TV remote to switch from your Chromecast to Blu-ray player or using the remote control of a CEC enabled TV, you can control the set-top box or DVD player, controlling the TV from HDMI-CEC enabled android device via HDMI CEC application. The most commonly used CEC commands are : One Touch Play,System Standby, One Touch Record, System Information,Tuner Control,Routing Control, OSD Display, System Audio Control etc. This article explains the basic of HDMI CEC protocols and how this can be implemented in android framework.

[Read More]

Serial UART Basics

Comparsion in Windows,Linux and Android platform

Introduction A serial port is a serial communication interface through which information transfers in or out one bit at a time. This article explains implementation serial port communication application in different platforms android, Linux and Windows. Serial UART test application The below section explains basic steps in writing serial port applications in Linux, Windows and android (command line application). Linux and Android Like all devices, UNIX provides access to serial ports via device files. Introduction A serial port is a serial communication interface through which information transfers in or out one bit at a time. This article explains implementation serial port communication application in different platforms android, Linux and Windows. Serial UART test application The below section explains basic steps in writing serial port applications in Linux, Windows and android (command line application). Linux and Android Like all devices, UNIX provides access to serial ports via device files. [Read More]

Bluetooth SCO in Android

Introduction The Bluetooth architecture transfer data in two different ways. They are Asynchronous Connectionless (ACL) Synchronous Connection-Oriented (SCO) Asynchronous Connectionless (ACL) ACL packets are the basis of communication in Bluetooth. In this method, packets are transmitted without worrying about time slot; This means, two Bluetooth devices, connected as master and slave, can send packets to each other, but neither side expects a packet in any particular time frame. ACL packets are retransmitted automatically if unacknowledged, allowing for correction of a radio link that is subject to interference. Introduction The Bluetooth architecture transfer data in two different ways. They are Asynchronous Connectionless (ACL) Synchronous Connection-Oriented (SCO) Asynchronous Connectionless (ACL) ACL packets are the basis of communication in Bluetooth. In this method, packets are transmitted without worrying about time slot; This means, two Bluetooth devices, connected as master and slave, can send packets to each other, but neither side expects a packet in any particular time frame. ACL packets are retransmitted automatically if unacknowledged, allowing for correction of a radio link that is subject to interference. [Read More]

How to add custom hardware codec to Android Framework?

This article explains about media architecture in Android platform and thereby explains the steps to add your own vendor specific hardware encoder/decoder to the Android framework as OpenMAX components.

What is a codec?

A codec is hardware device or a computer program which process input data into output data. A codec that encodes a data stream or a signal for transmission and storage, possibly in encrypted form is called encoder, and the decoder function reverses the encoding for playback or editing. Codecs are widely used in applications such as video conferencing, streaming media, and video editing applications. Following are the few different types of video codec : H.264 Encoder and Decoder, MPEG Encoder and Decoder, MJPEG Encoder and Decoder.

This article explains about media architecture in Android platform and thereby explains the steps to add your own vendor specific hardware encoder/decoder to the Android framework as OpenMAX components.

What is a codec?

A codec is hardware device or a computer program which process input data into output data. A codec that encodes a data stream or a signal for transmission and storage, possibly in encrypted form is called encoder, and the decoder function reverses the encoding for playback or editing. Codecs are widely used in applications such as video conferencing, streaming media, and video editing applications. Following are the few different types of video codec : H.264 Encoder and Decoder, MPEG Encoder and Decoder, MJPEG Encoder and Decoder.

[Read More]

Acoustic Echo Cancellation in Android using webRTC

Echo cancellation is method in telephony/VOIP to improve voice quality by preventing echo from being created or removing it after it is already present.

What is Acoustic echo?

Echo is a sound or sounds caused by the reflection of sound waves from a surface back to the listener. This happens in telephony/VOIP application, when a speaker phone/loud speaker is used, the microphone receives the voice signal from speaker. This results in acoustic echo for the person speaking in the far end.

Echo cancellation is method in telephony/VOIP to improve voice quality by preventing echo from being created or removing it after it is already present.

What is Acoustic echo?

Echo is a sound or sounds caused by the reflection of sound waves from a surface back to the listener. This happens in telephony/VOIP application, when a speaker phone/loud speaker is used, the microphone receives the voice signal from speaker. This results in acoustic echo for the person speaking in the far end.

[Read More]

Monitoring GPU and CPU utilisation on Tegra Processor

In Tegra(TK1 and TX1) processor, there is one command command called “tegrastats” which is used to monitor the CPU and GPU utilisation of the android devices like Shield Tablet K1. To use this command, connect the device via ADB shell. Now use the below command to log the details to logcat. $ tegrastats [delay in ms] The above command outputs a line per second to adb logcat with below information. In Tegra(TK1 and TX1) processor, there is one command command called “tegrastats” which is used to monitor the CPU and GPU utilisation of the android devices like Shield Tablet K1. To use this command, connect the device via ADB shell. Now use the below command to log the details to logcat. $ tegrastats [delay in ms] The above command outputs a line per second to adb logcat with below information. [Read More]
tegra 

Android Audio Framework Architecture

An overview of Audio HAL

This article highlights Android audio architecture, audio frameworks, role of audioflinger, audio HAL and its implementation details.

What is Android Audio Architecture?

In general, it is Audio signal processing which involves lot of operations and provide various functionalities such as playing music, recording microphone audio,real-time voice communication, adding audio effects such as echo cancellation, noise suppression etc. The audio architecture in android has to take care of many aspects such as supporting more hardware such as HDMI, earpiece, headset, speaker, mic, Bluetooth SCO, A2DP ectc, relat-time requirements and supporting different software like media player/recoder, VIOP application, SIP application and phone calls.

This article highlights Android audio architecture, audio frameworks, role of audioflinger, audio HAL and its implementation details.

What is Android Audio Architecture?

In general, it is Audio signal processing which involves lot of operations and provide various functionalities such as playing music, recording microphone audio,real-time voice communication, adding audio effects such as echo cancellation, noise suppression etc. The audio architecture in android has to take care of many aspects such as supporting more hardware such as HDMI, earpiece, headset, speaker, mic, Bluetooth SCO, A2DP ectc, relat-time requirements and supporting different software like media player/recoder, VIOP application, SIP application and phone calls.

[Read More]

Applications of Quantum entanglement

In this mysterious universe, lot of things are to be relived. Unless we understand the science behind this Quantum entanglement, all its applications seems to be magic by quotes “Magic’s just science that we don’t understand yet.”

In this mysterious universe, lot of things are to be relived. Unless we understand the science behind this Quantum entanglement, all its applications seems to be magic by quotes “Magic’s just science that we don’t understand yet.”

[Read More]

Position Independent Executable feature from Android Lollipop and later

PIE is a useful security feature, which randomize the address space hence it significantly more difficult for an attacker to exploit bugs in a program.Android 5.0 now requires all dynamically linked executable to support PIE (position-independent executable). This enhances Android’s address space layout randomization (ASLR) implementation. So if command line application complied with out PIE support will through the following error when we try to run them. Error: only position independent executables (PIE) are supported. PIE is a useful security feature, which randomize the address space hence it significantly more difficult for an attacker to exploit bugs in a program.Android 5.0 now requires all dynamically linked executable to support PIE (position-independent executable). This enhances Android’s address space layout randomization (ASLR) implementation. So if command line application complied with out PIE support will through the following error when we try to run them. Error: only position independent executables (PIE) are supported. [Read More]

Understanding BLE Connection

This post looks at Bluetooth Low Energy (BLE) link layer states. There are two forms of Bluetooth wireless technology systems. They are Basic Rate(BR) and Low Energy (LE) communication. This article summaries the connection procedure and its corresponding states . Basically BLE is a star topology network in which master device manages the connection, and can be connected to multiple slaves and slave device can only be connected to one master. Based on the different states, link layer in BLE stack is classified into below sates.

This post looks at Bluetooth Low Energy (BLE) link layer states. There are two forms of Bluetooth wireless technology systems. They are Basic Rate(BR) and Low Energy (LE) communication. This article summaries the connection procedure and its corresponding states . Basically BLE is a star topology network in which master device manages the connection, and can be connected to multiple slaves and slave device can only be connected to one master. Based on the different states, link layer in BLE stack is classified into below sates.

[Read More]