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 (). Copyright (C) 2016 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). The development of this software was supported by the Excellence Cluster EXC 227 Cognitive Interaction Technology. The Excellence Cluster EXC 227 is a grant of the Deutsche Forschungsgemeinschaft (DFG) in the context of the German Excellence Initiative. Authors: - Thomas Schöpping - Stefan Herbechtsmeier - 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. ##################################################################### # # # 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. ===================================================================== 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 --------------------- The only third party software required are stm32flash and GCC for ARM embedded devices. 1.1 - stm32flash 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. 1.2 - gcc-arm-none-eabi Various versions of the GCC for ARM embedded devices can be found at . 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. 2 - 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//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: >$ 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 >$ 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? WARNING: never flash a bootloader to another module! Doing so might cause severe errors and damage the robot. 2.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. =====================================================================