Difference between revisions of "Setting up Development Environment"

From ATI public wiki
Jump to: navigation, search
(Getting the preprepared version from ATI's server (recommended))
Line 96: Line 96:
  
 
<span style="color:red"> '''Note 2: </span> Not all examples provided with the stack work out of the box or have support for all platforms''' Only App_3_Beacon_Payload and App_4_Beacon_Broadcast_Data under MAC_Examples are guaranteed to work out of the box if the system is configured properly and the version downloaded from ATI's server is used. For all other examples and own projects, please use makefiles from these examples as a basis for proper configuration.
 
<span style="color:red"> '''Note 2: </span> Not all examples provided with the stack work out of the box or have support for all platforms''' Only App_3_Beacon_Payload and App_4_Beacon_Broadcast_Data under MAC_Examples are guaranteed to work out of the box if the system is configured properly and the version downloaded from ATI's server is used. For all other examples and own projects, please use makefiles from these examples as a basis for proper configuration.
 
===Getting the preprepared version from ATI's server (recommended)===
 
A pre-prepared version of the stack has been made available on ATI's server (currently based on Atmel MAC v2.6.1). All that is needed is to download it from [https://strudel.pld.ttu.ee/owncloud/public.php?service=files&t=e903693f1b17b2ba57e38ff0a4641354 here] and unpack it.
 
 
This version also includes some additions to the stack that the Dresden Elektronik version lacks:
 
* MAC-level support for deRFmega256. '''Note:''' 6LoWPAN connections on deRFmega256 are currently not supported.
 
* Updated AT91Lib. Adds support for PWM on ARM devices.
 
  
 
===Downloading the stack from Dresden Elektronik===
 
===Downloading the stack from Dresden Elektronik===

Revision as of 19:22, 23 November 2015

Dresden Elektronik radio modules are designed to work with a special software stack developed by Dresden Elektronik and Atmel. In order to use this stack, first the working environment and the toolchain need to be configured properly.

This section tries to provide some information on how to set up the environment in order to work with the modules.

Setting up Toolchain

The Dresden Elektronik software stack uses makefile based approach for compilation of the source code. Makefiles, originating from Unix based systems, use modified Bash like syntax. Thus it is necessary for the operating system to be able to run some Unix commands. While this is not a problem in GNU/Linux, Windows needs some additional tools to be installed in order to be able to execute the commands found in the makefiles.

The software stack expects the GNU C cross-compiler (GCC) to be used for compilation. Since two different platforms are used (AVR and ARM), also two different cross-compiler toolchains, on for each platform, are needed to be installed on the development system.

Last, but not least, some software for uploading the code to the microcontrollers is also needed.

The following subsections try to give some information about installing the tools necessary for working with the Dresden Elektronik radio/MCU modules.

Microsoft Windows

In order to work with the modules in Windows, some additional tools need to be installed. Usually, the path where they are installed, does not matter, but needs to be specified in the system path variable. Table below describes the tools, gives download links and shows the correct path that is needed to be added to the system path variable. [inst_root] means the root installation directory for the software.

Tool Link Latest version
at the time of writing
System path variable Description Notes
Yagarto tools Download 20121018 [isnt_root]\bin Make command + tools for minimal Unix-like environment Run the installer, then manually add the path
AVR toolchain Download 3.4.5 [isnt_root]\bin AVR compiler toolchain (avr-gcc) Run the installer, then manually add the path
Yagarto Download 4.7.2 [isnt_root]\bin ARM compiler toolchain (arm-gcc) Run the installer, then manually add the path
libusb-win32 Download 1.2.6.0 Not needed libusb USB library implementation for Windows Download the .exe file and run it. When asked, do not run the filter installer wizard.
avrdude Download 6.1 [isnt_root] AVR programming software Download the avrdude-#.#-mingw32.zip file. (# = 0...9) Unpack it. Modify the system path according to the unpacking directory.
AVRDragon driver Download N/A Not needed Windows driver for AVR Dragon AVR programmer Download the driver. Unpack it. Plug in AVR Dragon. Use Device Manager to install the driver.
J-link Download 5.00h [isnt_root] Windows driver for Atmel SAM-ICE ARM programmer, J-link programming software Download Software and documentation pack from the webpage. Unpack. Install. Make modifications to the system path.
deRFnode/deRFgateway USB serial driver Download 1.05 Not needed Driver for deRFnode/deRFgateway USB serial port Download the file deRFusb V#_## (# = 0...9). Unpack it. Connect the board. Use Device Manager to install the driver.
Note: As of July 2015, there was no official Windows 8.1 support for this driver.
Sniffer Download 1.0.1 Not needed Bitcatcher driver and PC sniffing software Download by clicking on the bitcatcher link. Unpack. Install driver usingdevice manager from driver/deRFusb folder. Install PC software from pc folder.

GNU/Linux

See GNU/Linux related material (under construction).

Getting the Software Stack

The software stack is based on Atmel's IEEE 802.15.4 MAC stack, with some additions from Dresden Elektronik. There are currently two ways for obtaining the stack: either by using the official stack from Dresden Elektronik or downloading the pre-prepared and modified version from ATI's server (recommended).

Note: When installing the stack, it is recommended to install it directly into a folder that is located in the root of a drive. Otherwise, as the stack's directory structure is quite complex, OS's maximal path length can be hit while compiling. This will result in failure of the compilation process. (Default location (C:\Atmel) is OK)

Note 2: Not all examples provided with the stack work out of the box or have support for all platforms Only App_3_Beacon_Payload and App_4_Beacon_Broadcast_Data under MAC_Examples are guaranteed to work out of the box if the system is configured properly and the version downloaded from ATI's server is used. For all other examples and own projects, please use makefiles from these examples as a basis for proper configuration.

Downloading the stack from Dresden Elektronik

If the stack from Dresden Elektronik is desired for some reason, it can be downloaded from their website. The downloading / installation is a 3 step process:

  1. The Atmel MAC stack needs to be downloaded and installed from here
  2. Dresden Elektronik MAC additions need to be downloaded from here. After download, the Dresden Elektronik additions need to be installed on top of the Atmel MAC stack, into the same folder, overwriting files when asked.
  3. The Dresden Elektronik 6LoWPAN addition needs to be installed on top of the stack in similar fashion as the MAC addition. It can be downloaded from here.

Note: When using this method, there will not be any support for deRFmega256 chip and PWM in ARM controllers.

Setting up IDE

The recommended IDE for usage with the Dresden Elektronik software stack is Eclipse for C/C++ Developers. It can be downloaded for free from here.

After installing Eclipse, a new project containing the Dresden Elektronik communication stack can be created by following the next steps:

  1. File -> New -> Makefile Project with Existing Code
  2. For Existing Code Location, select the path to the toplevel folder of the stack, leave other settings to default and click Finish.


Compiling and flashing the code is done using makefiles. More information on using the stack can be found on Using the MAC / 6LoWPAN stack page.