diff --git a/README.md b/README.md
index b347596884ac92225f5e60628ee944f3cf68f34a..03fd6e38f8b3d02d99d2bd195f00f58d4e00ea37 100644
--- a/README.md
+++ b/README.md
@@ -1,50 +1,66 @@
 # Description
-This repository contains several libraries intended for the STM32 micro-
-processors. 
-
-This repository also includes implementations of several communication 
-peripherals compatible with the Comm library for several families of the STM32
-micro-processors.
-
-This libraries include:
+This repository contains several libraries intended for the STM32 microcontroller.
 
 ## Utils
-An implementation of a simple circular buffer and a placeholder to handle time
-functions using a hardware timer.
+An implementation of a simple circular buffer and a placeholder to handle time functions using a hardware timer.
 
 ## Memory
-A set of data structures that simplifies the managment of the memory space of a 
-Dynamixel slave. It allows to allocate a specific ammount of memory either in 
-RAM or EPPOM, and also at a pre-defined position or anywhere in the available 
-memory space.
+A set of data structures that simplifies the managment of the memory space of a Dynamixel slave. It allows to allocate a specific ammount of memory either in RAM or EPPOM, and also at a pre-defined position or anywhere in the available memory space.
 
-It also provides user defined read and write callback functions to further 
-simplify read and write operations started from the bus master.
+It also provides user defined read and write callback functions to further simplify read and write operations started from the bus master.
 
 ## Comm
-A generic communication device which allows working either in blocking mode, in
-interrupt mode or DMA mode with almost any communcation peripheral in the STM32. 
-
-It provides a set of user defined callback functions, both on the low level 
-peripheral side and also in the high level application side, which simplifies 
-handling the communciation channel. 
+A generic communication device which allows working either in blocking mode, in interrupt mode or DMA mode with almost any communcation peripheral in the STM32. It provides a set of user defined callback functions, both on the low level peripheral side and also in the high level application side, which simplifies handling the communciation channel.
 
 ## Dynamixel base
-This library implements the whole Dynamixel protocol, both version 1 and 2, and
-also as a master and as a slave. This implementation is idependant of the 
-communication channel because it uses the comm library.
+This library implements the whole Dynamixel protocol, both version 1 and 2, and also as a master and as a slave. This implementation is idependant of the communication channel because it uses the comm library.
 
 All the operations of both supported versions are available.
 
 ## Dynamixel manager
-An experimental library designed to simplify the bus access to the shared 
-Dynamixel bus by several heterogeneous modules. This library allows to configure 
-the necessary transactions (READ, WRITE, SYNC_READ, SYNC_WRITE, BULK_READ or
-BULK_WRITE) on several dynamixel buses. 
+A library designed to simplify the bus access to the shared Dynamixel bus by several heterogeneous modules. This library allows to configure the necessary transactions (READ, WRITE, SYNC_READ, SYNC_WRITE, BULK_READ or BULK_WRITE) on several dynamixel buses.
+
+It also provides a generic motion module that implements the action, walk, joints and head_tracking motion modules.
 
 Additionally, each transaction can be configured as periodic or one shot.
 
+## Scheduler
+A generic module to use the different channels of a timer to schedule the execution a set of callback functions. 
 
 # Dependencies
 
+This package requires of the following system libraries and packages
+
+* [git](https://git-scm.com/), opensource distributed version control system.
+* [gcc-arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads), ARM GCC crosscompiler.
+
+All this packages can be installed in Ubuntu using the apt-get install command.
+
+## Compilation and installation
+
+Download this repository.
+
+For each of the following folders, and with the same order:
+
+* utils
+* comm
+* memory
+* scheduler
+* dynamixel_base
+* dynamixel_manager
+
+execute the make comamnd inside each of them. This process will build 4 differetn versions of the library, each one for a different family of STM32 microcontrollers.
+
+## Disclaimer
+
+Copyright (C) 2009-2018 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
+Mantainer IRI labrobotics (labrobotica@iri.upc.edu)
+
+This package is distributed in the hope that it will be useful, but without any warranty. It is provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. should the program prove defective, the GMR group does not assume the cost of any necessary servicing, repair  or correction.
+
+In no event unless required by applicable law the author will be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if the author has been advised of the possibility of such damages.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>
+