Friday, 12 February 2016

Embedded Android

                              Having plans to create a device that would change this world ? Are you an embedded programmer skilled in doing some stuffs with micro-controller kits. Time to move on to next level. Next generation arm  based embedded processor kits have arrived. These have already been introduced to run on operating systems like Windows CE, linux, android and more on.

Features of using micro-processors over micro-controllers:

* Connectivity: 

Today, each and every embedded device present before us are connected with each other to form an network. This would be a norm in future which your device must imply with. Connectivity might be either through Wifi, Bluetooth or Ethernet. To add this support to a standalone microcontroller kit would be tiresome. This is the main feature where embedded processors come into play, where the SoC Chip manufacturer handles this for you. These processors are placed on the development board that contains on board Wifi/BT combo chips and come with an Ethernet port. On the Software side, many source operating systems like embedded linux, embedded android are available which provide us with a reliable stack on top of which our applications need to developed. Hence most of our board-bringup and assembling is done by SoC vendors itself. With considerable efforts reduced, our role would be narrowed in developing the application.

* Display :

It would be weird these days if your product comes with a LED/LCD Display to display some text. User Interface [UI] has already been influential because at the end of the day, the user's decision is going to decide the fate of the product. High Resolution Display panels with Resistive/Capacitive Touch Screen would absolutely overthrow its LCD/LED counterparts in this era. These embedded development kits have provisions for connecting several kind of displays ranging from 3" inch to 10" inch. To be noted, they have HDMI ports too which provides rich color resolutions.

* Multimedia :

Have you ever tried to add Audio support for your controller kit?. With these embedded development kits, It is much easier to play audio and video files. Moreover, each kit comes with its own graphical processing unit[GPU] which provides immense gaming performance. To believe it, you need to experience it by playing gaming apps on a development kit running on Android. We prefer Ashphalt !!!!!!

* Storage :

Each embedded processor has its own internal storage in the form of flash[eMMC], whose size from 1GB to 16GB. Hence Data Storage must not be a problem.

* Hardware Interfaces:

Today, Embedded processors come with different interfaces which are not available in conventional microcontroller kits. They include
# USB
# PCI
# SATA

Each of the above interface has its own use case and in turn can provide varied functionalities.

* Camera :

Do you want your device to be bit more realistic manipulating some real time data. Then your device needs to have a camera. These kits have provision for those too.

Myths:

* Power Consumption:

Obviously, microcontrollers outplay these kits in terms of power consumption. But recent technological developments have shed some light onto that area. This might range from advanced suspend/resume operations to low power consuming ARM Cores.Soon this gap would be narrowed down. In the future, you can expect devices that consume almost little amount of energy.

* Complexity of Operating Systems:

Real Time Operating systems tend to be more complex from a developer point of view. But in reality, you have got more advantages than disadvantages. Nowadays, several Developer communities are available which openly offer support to any kind of problems faced while developing a device.

* Cost :

Embedded Development kits actually tend to be cost-effective because they provide end-to-end solution for making device. It is really good to see low cost development kits to hit the market. Front runners among them are Raspberry Pi and Snapdragon Board.

The continuation of these posts mainly target embedded developers who are aspiring to bring out some new innovation to this world like us. To begin with, we recommend you with the following kits.


  •  Freescale imx6 based processors.
  •  Wandboard Solo,Dual or Quad.
  •  Nitrogen 6x Kits
  •  UDOO imx6 kits.
  •  Ankaa Development Kit 
  •  Raspberry Pi
  •  Qualcomm Snapdragon


Regarding the Operating system, we prefer "Embedded Android". To know why, wait for the next post..

Thursday, 4 February 2016

Internet Of Things - Beginners Learning - Part 2 - The MQTT

Hey Guys, In the previous post I just gave an overview about IoT and its Development Tools. Let us narrow down the discussion to a simple MQTT Sub-Pub mechanism.

An MQTT protocol is similar to a Google Alerts mechanism where you go to google alerts page and you subscribe for a topic and the message is delivered whenever there is any information on the topic you have subscribed.

Fine !! sound and clear I hope. 

First of all to work with MQTT you need three hardware components in the MQTT verbose it is 

  1. Broker
  2. Publisher
  3. Subscriber
Let us take facebook as an example and understand this concept.
  1. Broker - Facebook server
  2. Publisher - Is your Crush in facebook. 
  3. Subscriber - Is you
Still creepy !!? Lemme explain Let us say you want to know all the activities of your crush in facebook like their like, post, tags etc. what you will do? you just visit their profile and mark them as your favorites. Ultimately the facebook server sends you the notification on your phone whenever your crush do any post or likes some one photos.

Here you have subscribed for your crush activities and the facebook server, the broker is sending the data whenever your  crush does any activities . Simple right ? that is MQTT

Who can be the publisher, the broker ,the subscriber?
Well anyone who is capable of holding huge number of requests can be a broker 
Apart from this any device which can be both subscriber and publisher of data.

The image below will clearly explain 



  1. The shoe will tell you how much kilometers you have covered by foot.
  2. The light may tell you how much electricity it has consumed.
  3. The Temperature sensor might tell you when to switch of the AC or it might take control of the AC or whatever.
  4. Your delivery truck may send you timely updates on its position.
  5. Your wrist band may tell you how fast your hear beats. or you can set alarm in a wristband so when the correct time ticks in your phone it sends the message to wrist band to vibrate. 

Cool to hear Right !!!??  

I will explain you how to start programming these devices from my next post.... 

Think Iot!!!!!!!!!!!!!


Wednesday, 3 February 2016

Machine Vision - The Beginning


"A picture is worth a thousand words" is not just an idiom, any complex idea can be easily conveyed with just a single still image. Machine vision is the current trending area towards which many companies are focussing today. So from now on, embeddedunderoneroof is going to post a series of posts under Image Processing. Get ready to go into the digital image world :)
First things first, inorder to do some complex image processing tasks starting everything from scratch is a dream which may come true. Lets stick onto practical, there are several libraries dedicatedly focussing on image processing is available. Here comes a few in the list

Image processing libraries:
  • Matlab
  • OpenCV
  • AForge
  • Magick++
  • CImg

Each library has its own pros and cons. In the upcoming series of posts, we are going to use OpenCV library since it is being available open source for both commercial and non-commercial use. So now we have got a library to do the image processing tasks.. Where are we going to run all this?? A PC with sufficient memory and processing power is enough. The OS is users choice, our choice would be the Windows. Dont worry OpenCV has supports in major OS's choose whichever OS you are comfortable with.

OpenCV supported OS:
  • Windows
  • Linux
  • Mac
  • iOS
  • Android

Once you have chosen an OS use the download link mentioned above and download the latest OpenCV version for your OS and wait for our next post in this series.