We're on a mission. 

A mission to create a tool that is going to help embedded software developers deliver code in **less time** and with **less bugs** on the way. 

Our approach is based on two simple observations:
  - That mature code is a stable and reliable code.
  - That in embedded software code is hardly reused because of the apparent hardware incompatibilities.

In embedded systems the code cannot mature because it needs to be constantly changed in order do follow hardware changes. And the hardware changes a lot these days.

Our tool should make things easier by introducing an easy way to deliver **portable embedded software components**. The idea is to **DEFINE** a unified interface to the common functionalities found in today's microcontrollers and then to **REALIZE** this interface for as many microcontrollers available on the market as possible. 

At the end we should deliver something called **Hardware Abstraction Layer** that:
  * hides details of the underlying hardware to the portable software components,
  * does not limit the software developer in what he or she can do with the hardware,
  * is well architectured using efficient OO aproach,
  * is well designed in a pay-only-for-what-you-use fashion,
  * is well implemented using C++11, including new available semantics,
  * offers extensive out-of-the-box support for mainstream microcontrollers,
  * can be built using industry's standard toolchains,
  * follows reasonable standards,
  * is consistent across all it's parts
  * is cool and sexy

See this presentation for more info about motivation: [[http://home.agh.edu.pl/~lkrzak/hal/hal_idea.pdf|PDF]] (6MB).