commit 4cce70a84c566c1722a2fb2d55fa4feb61e1fafb
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Thu Apr 20 16:15:11 2017 +0200

    README.txt overhauled.
    A setup script is now available.
    Overhault of the QuCreator IDE setup scrip.
    SerialBoot startup prompt was updated and enhanced.

diff --git a/README.txt b/README.txt
index 25d86b2..372f6d6 100644
--- a/README.txt
+++ b/README.txt
@@ -1,12 +1,22 @@
-AMiRo-BLT is the bootloader and flashing toolchain for the base
-version of the Autonomous Mini Robot (AMiRo) [1,2,3]. It is based on
-OpenBLT developed by Feaser (<http://feaser.com/en/openblt.php>).
+AMiRo-BLT is the bootloader and flashing toolchain for the base version of the
+Autonomous Mini Robot (AMiRo) [1,2]. It is based on OpenBLT developed by Feaser
+(see <http://feaser.com/en/openblt.php>).
 
-Copyright (C) 2016  Thomas Schöpping et al.
+Copyright (C) 2016..2017  Thomas Schöpping et al.
 (a complete list of all authors is given below)
 
-For details about the license of this software, please refer to the
-provided file (./Doc/license.html).
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 This research/work was supported by the Cluster of Excellence
 Cognitive Interaction Technology 'CITEC' (EXC 277) at Bielefeld
@@ -18,117 +28,159 @@ Authors:
  - Marvin Barther
 
 References:
- [1] Herbrechtsmeier S., Rückert U., & Sitte J. (2012). "AMiRo -
-     Autonomous Mini Robot for Research and Education". In Advances in
-     Autonomous Mini Robots (pp. 101-112). Springer Berlin Heidelberg.
- [2] Schöpping T., Korthals T., Herbrechtsmeier S., & Rückert U.
-     (2015). "AMiRo: A Mini Robot for Scientific Applications" In
-     Advances in Computational Intelligence (pp. 199-205). Springer
-     International Publishing.
+ [1] Herbrechtsmeier S., Rückert U., & Sitte J. (2012). "AMiRo - Autonomous Mini
+     Robot for Research and Education". In Advances in Autonomous Mini Robots
+     (pp. 101-112). Springer Berlin Heidelberg.
+ [2] Schöpping T., Korthals T., Herbrechtsmeier S., & Rückert U. (2015). "AMiRo:
+     A Mini Robot for Scientific Applications" In Advances in Computational
+     Intelligence (pp. 199-205). Springer International Publishing.
  
 
 
-#####################################################################
-#                                                                   #
-#     RRRRRRRR  EEEEEEEE    AAA    DDDDDDDD  MM     MM EEEEEEEE     #
-#     RR     RR EE         AA AA   DD     DD MMM   MMM EE           #
-#     RR     RR EE        AA   AA  DD     DD MMMM MMMM EE           #
-#     RRRRRRRR  EEEEEE   AA     AA DD     DD MM MMM MM EEEEEE       #
-#     RR   RR   EE       AAAAAAAAA DD     DD MM     MM EE           #
-#     RR    RR  EE       AA     AA DD     DD MM     MM EE           #
-#     RR     RR EEEEEEEE AA     AA DDDDDDDD  MM     MM EEEEEEEE     #
-#                                                                   #
-#####################################################################
+################################################################################
+#                                                                              #
+#        RRRRRRRR   EEEEEEEE     AAA     DDDDDDDD   MM     MM  EEEEEEEE        #
+#        RR     RR  EE          AA AA    DD     DD  MMM   MMM  EE              #
+#        RR     RR  EE         AA   AA   DD     DD  MMMM MMMM  EE              #
+#        RRRRRRRR   EEEEEE    AA     AA  DD     DD  MM MMM MM  EEEEEE          #
+#        RR   RR    EE        AAAAAAAAA  DD     DD  MM     MM  EE              #
+#        RR    RR   EE        AA     AA  DD     DD  MM     MM  EE              #
+#        RR     RR  EEEEEEEE  AA     AA  DDDDDDDD   MM     MM  EEEEEEEE        #
+#                                                                              #
+################################################################################
 
-This file will help you to setup all required software on your system,
-compile the source code, and use the tools and flash the bootloader
-software to the AMiRo modules.
+This file will help you to setup all required software on your system, compile
+the source code, and use the tools and flash the bootloader software to the
+AMiRo base modules.
 
-=====================================================================
+================================================================================
 
 CONTENTS:
- 1  Required software
-   1.1  stm32flash
-   1.2  gcc-arm-none-eabi
- 2  Compiling the source code
-   1.1  target software
-   1.2  host software
 
-=====================================================================
+  1  Required software
+    1.1  stm32flash
+    1.2  GCC ARM Embedded Toolchain
+    1.3  GNU Make
+    1.4  CMake
+  2  Recommended Software
+  3  Compiling the source code
+    3.1  target software
+    3.2  host software
+
+================================================================================
+
+
 
 1 - REQUIRED SOFTWARE
 ---------------------
 
-The only third party software required are stm32flash and GCC for ARM
-embedded devices.
+The only third party software required are stm32flash and GCC for ARM embedded
+devices. While the latter is a compiler to build binaries that are compatible
+with the microcontrollers (MCUs) of AMiRo, the former is used to write this data
+to the hardware.
+
+
 
 1.1 - stm32flash
+----------------
 
-To build the tool from source, clone the GIT repository to a local
-folder on your machine:
+To build the tool from source, clone the GIT repository to a local folder on
+your machine:
   >$ git clone git://git.code.sf.net/p/stm32flash/code
-Please make sure that you have version 0.4 or later of the tool. It is
-recommend to checkout the following commit:
-  >$ git checkout fb52b4d80613b19b28ab82ba9fa415378d00fb9a
-You can now build the tool by executing 'make'.
-Finally, you must make the resulting binary (stm32flash) globally
-available on your system. You can do so by either copying the file to
-an appropriate location (e.g. /usr/local/bin/) or creating an
-according link.
+Make sure that you have selected version 0.4 or later of the tool. You can now
+build the tool simply by executing 'make'. Finally, you must make the resulting
+binary (stm32flash) globally available in your environment. You can do so by
+either copying the file to an appropriate location (e.g. /usr/local/bin/) or
+creating an according link. The tool must be available as 'stm32flash' in every
+new shell.
 
-1.2 - gcc-arm-none-eabi
+
+1.2 - GCC ARM Embedded Toolchain
+--------------------------------
 
 Various versions of the GCC for ARM embedded devices can be found at
-<https://launchpad.net/gcc-arm-embedded>. It is highly recommended to
-use the version 4.8 with update 2014-q1 since some others will cause
-issues. For installation of the compiler toolchain, please follow the
-instructions that can be found on the web page.
+<https://launchpad.net/gcc-arm-embedded>. For installation of the compiler
+toolchain, please follow the instructions that can be found on the web page.
+If you have access to the AMiRo-OS project as well, it is highly recommended
+to use the setup application provided there.
+
+
+1.3 - GNU Make
+--------------
+
+GNU Make usually comes as preinstalled tool on Ubuntu based operating systems.
+If your system is missing GNU Make, it is recommended to install it from the
+standard repositories since no special requirements (e.g. features of a very
+recent version) are required.
+
+
+1.4 - CMake
+-----------
 
-2 - COMPILING THE SOURCE CODE
+In order to build the SerialBoot host application, CMake version 2.8 or later is
+required. If possible, it is recommended to instal it from the standard
+repositories of your operating system.
+
+
+
+2 - RECOMMENDED SOFTWARE
+------------------------
+
+AMiRo-BLT provides support for the QtCreator IDE. In order to setup according
+projects, use the ./setup.sh script and follow the instructions. It will
+automatically generate the required files and you can import the projects by
+opening the .creator files with Qtcreator IDE.
+
+
+
+3 - COMPILING THE SOURCE CODE
 -----------------------------
 
-The AMiRo-BLT project is separated into two major parts: target and
-host related software. The former comprises the bootloaders for the
-three base modules of the AMiRo. The latter is the SerialBoot tool,
-which can be used to flash further binaries (e.g. a complex operating
-system) to the microcontrollers without the need to connect to the
-module directly. Since the programming connector of the lowermost
-AMiRo module is the only one accessible when the robot is fully set
-up, this enables to update the firmware even for other modules.
-
-2.1 - target software
-
-In the ./Target/Demo/ directory there are three subfolders, one for
-each AMiRo base module. Within each of these is an additional Boot/
-folder (./Target/Demo/<device>/Boot/), which contains a makefile.
-Each bootloader can be compiled by executing 'make' in these
-directories.
-
-In order to flash the bootloader to the microcontroller, you first
-have to set full read and write permissions to the USB ports of your
-system. You can do so by executing the following command:
+The AMiRo-BLT project is separated into two major parts: target- and host-
+related software. The former comprises the bootloaders for the three base
+modules of the AMiRo. The latter is the SerialBoot tool, which can be used to
+flash further binaries (e.g. a complex operating system) to the microcontrollers
+without connecting to the module directly (data is passed through via CAN bus).
+Since the programming connector of the lowermost AMiRo module is the only one
+accessible when the robot is fully set up, this enables to update the firmware
+even for other modules.
+
+
+3.1 - target software
+---------------------
+
+In the ./Target/Demo/ directory there are three subfolders, one for each AMiRo
+base module. Within each of these is an additional Boot/ folder
+(./Target/Demo/<device>/Boot/), which contains a makefile. Each bootloader can
+be compiled by executing 'make' in these directories.
+
+In order to flash the bootloader to a microcontroller, you first have to set
+full read and write permissions to the USB ports of your system. You can do so
+by executing the following command:
   >$ sudo echo 'KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",MODE="0666"' > /etc/udev/rules.d/50-ttyusb.rules
-Now connect the module you want to flash directly to your system (note
-that indirect flashing is not possible for the bootloader itself) and
-run the command
+Now connect the module you want to flash directly to your system (note that
+indirect flashing is not possible for the bootloader itself) and run the command
   >$ make flash
 If the procedure was not successful, the following hints might help:
-  1) Could the makefile execute the stm32flash tool?
-  2) Are the permissions for USB ports set correctly?
-  3) Is the AMiRo module connected to your system?
+  - Could the makefile execute the stm32flash tool?
+  - Are the permissions for USB ports set correctly?
+  - Are there any other applications using the serial connection?
+  - Is the AMiRo module connected to your system?
+  - Is the AMiRo module powered up?
+
+ATTENTION:
+Never flash a bootloader to the wrong module! Doing so might cause severe errors
+and damage the robot.
 
-WARNING:
-never flash a bootloader to another module! Doing so might cause
-severe errors and damage the robot.
 
-2.2 - host software
+3.2 - host software
+-------------------
 
-The SerialBoot tool can be built by using cmake. The according
-CMakeLists.txt file can be found in the ./Host/Source/SerialBoot/
-directory. You can just run the command
-  >$ cmake . && make
-to generate the binary, though it is recommended to built the tool
-out-of-source.
+The SerialBoot tool can be built by using cmake. The according CMakeLists.txt
+file can be found in the ./Host/Source/SerialBoot/ directory. To ensure
+compatibility with other software (e.g. AMiRo-OS) it is higly recommended to use
+the provided ./setup.sh script to build SerialBoot. In the end the binary path
+should be ./Host/Sotware/SerialBoot/build/SerialBoot.
 
-=====================================================================
+================================================================================
 
