Deutsch

FAQ | Low Power Wireless 802.15.4 | Software

Development-Kit

ZigBee Stack

Wireless UART

Memory footprint

EEPROM recovery

Eclipse

Performance Test

Fuses

Linux

Development-Kit

Is a downloadable kit CD available on dresden elektronik’s website?

No, the kit CD is only available in connection with the Development Kits

Are open source program applications available on the CD?

Yes, open source example applications can be found on the kit CD.

ZigBee Stack

Is a ZigBee stack on the Kit CD? e.g. Bitcloud?

No. BitCloud can only be downloaded from Atmels website at www.atmel.com/bitcloud. On our Kit-CD you can find an add-on which gives full hardware support for the deRFnode.

Do the RFdevelopmentKit respectively the Sensor Terminal Board Starter Kit support the ZigBee Pro Stack?

Yes, BitCloud supports Radio Controller Boards (RCB) as well as the deRFmega128 radio modules and thus also the hardware which is included in the kits.

Wireless UART

The boards of the Development Kits feature a Wireless UART. How can I reset the original firmware in case of overwriting?

As a first step unpack the examples which are on the kit CD (self-extracting exe). The Wireless-UART can be found in folder '..\Applications\TINY_TAL_Examples\Wireless_UART\[YOUR_HARDWARE_PLATFORM]\gcc\Wireless_UART.hex' and has to be flashed into the radio module with a suitable programmer.

Memory footprint

What is the size of the memory footprint of Atmel’s IEE 802.15.4 MAC Stack on the microcontroller of a radio module?

Because of the MAC’s modular design it is possible to embed only the parts actually used in the project. Further dependencies arise as a result of stack configuration (RFD/FFD, Beacon support). In case of full use of the stack with maximum functionality the memory requirement is approx. 40 kB flash memory.

EEPROM recovery

I accidentally deleted the EEPROM of the ATMega128RFA1. Which data was stored in it and how can I restore those?

The MAC address of the radio module is stored on the internal EEPROM of the ATmega128RFA1.
The start address is 0×00; the end address is 0×07
The MAC address has to be in compliance with the following format:
MAC-ID: 00-11-22-FF-FF-33-44-55
EEPROM [0×00] = 55 (MSB MAC)
EEPROM [0×07] = 00 (LSB MAC)

Eclipse

I want to develop and compile my applications with Eclipse. Which steps are necessary?

Instruction for AVR:

For AVR-specific firmware development with the help of the Eclipse IDE WinAVR will be needed. It provides the compiler to generate the binary files. It has to be ensured that WinAVR is added to the Windows environment variable (this is queried during the installation process).
Additionally theAVR Eclipse Plugin can be installed. However this is not mandatory for development purposes.

In Eclipse a new blank project can now be created. The following illustrates how the Atmel MAC Stack is imported as an Eclipse project.

In Eclipse go to 'File -> New -> C Project' and create a new project. Having selected 'project type' choose 'Makefile project' and then 'Empty project'. Uncheck 'Use default location' and choose the unzipped MAC folder. After the selection has been confirmed and the project name was chosen the project is generated with the 'Finish' button.

For every MAC-Stack Example (i.e. Applications\PAL_Examples\Simple_Remote_LED_Control) inside of the platform directory (i.e.: ATMEGA128RFA1_deRFmega128_22X00_deRFtoRCB) the necessary makefile can be found. To start the build with the help of the makefile the following steps are necessary:
  • open 'Windows -> Show View -> Make Targets'
  • open the GCC folder of the project that you want to build
  • select the GCC folder and add new target with right click and choosing 'New'
  • add the targets 'all' and 'clean'
To build the project double click the new created target 'all'. The binary files generated during the build process can be deleted by double clicking the 'clean' target.

Instruction for ARM processors

I would like to reconstruct the calling sequence of functions in Eclipse. Some functions could not be found or were found faulty, some requests silt up without returning.

For traceability of the internal requests/calls of the stack the indexer needs to be modified (Project/Properties/C/C++ General/Indexer -> Select Indexer: Full Indexer). Since some of the symbols will only be specified in the Makefile and thus will not be identified by the indexer. Therefore it might help to define these symbols in addition specific to your project (Project/Properties/C/C++ General/Paths and Symbols -> Symbols -> GNU C -> Add). Due to the module-overlapping communication by queue (see MAC documentation) boundaries are set.

Performance Test

How can I determine the maximum possible data rate with the help of the performance test?

Settings for RX and TX:

(C) : Channel = 20 (has to be identical on RX and TX side)
(P) : Channel page = 0 (has to be identical on RX and TX side)
(W) : Tx power = 3 dBm
(N) : Number of test frames = 100 (or more)
(L) : Frame length (PSDU) = 127
(A) : ACK request = no ACK requested
(F) : Frame retry enabled = false
(M) : CSMA enabled = false

TX specific setting:

(T/R/O/I) : Operating mode Tx/Rx/Off/PromIscuous = Tx

RX specific setting:

(T/R/O/I) : Operating mode Tx/Rx/Off/PromIscuous = Rx

Even with the help of the performance test I do not reach the maximum data transmission rate of 2000 kbit/s as described in the datasheet. Why is that?

2000 kbit/s is the gross data rate. It describes the quantity of data that can be transferred on the physical layer. However, a certain part of this data cannot be used to transmit user data. The appropriate net data rate amounts approximately 1400 kbit/s. This value can also be found in the datasheet of the ATmega128RFA1.

Fuses

Which fuse configuration is recommended for the deRFmega128?

Please refer to section 10.4 "Fuse Settings" in the User Manual.

Fuses

How can I use de products with USB functionality under Linux?

In order to use a the serial USB port of deRF products in linux following steps must be taken. The user is either required to have root privileges or use sudo.

1) Use the following commands to unload the relevant kernel modules:
rmmod usbserial
rmmod ftdi_sio

2) Create and open the file /etc/modprobe.d/dresden_elektronik.conf. If the directory /etc/modprobe.d/ doesn't exist edit the file /etc/modprobe.conf or /etc/modprobe.conf.local instead.

Add the following lines to the file:

# sensor terminal board
#options ftdi_sio vendor=0x1cf1 product=0x0001
# deRFnode / gateway
#options ftdi_sio vendor=0x1cf1 product=0x001d
# deUSB level shifter
#options ftdi_sio vendor=0x1cf1 product=0x0022

#deRFusb24E001
#options usbserial vendor=0x1cf1 product=0x0018
#deRFusb14E001
#options usbserial vendor=0x1cf1 product=0x0019
#deRFusb23E00
#options usbserial vendor=0x1cf1 product=0x001a
#deRFusb13E00
#options usbserial vendor=0x1cf1 product=0x001b
#deRFusb13E06
#options usbserial vendor=0x1cf1 product=0x0027
#deRFusb23E06
#options usbserial vendor=0x1cf1 product=0x0025
#deRFnode
#options usbserial vendor=0x1cf1 product=0x001c
#deRFusbSniffer 2.4 GHz
#options usbserial vendor=0x1cf1 product=0x0017
#deRFusbSniffer Sub-GHz
#options usbserial vendor=0x1cf1 product=0x0023

3) Uncomment the option line for the device you own. For a deRFnode e.g.:
# deRFnode / gateway
options ftdi_sio vendor=0x1cf1 product=0x001d

Currently it's not possible to have multible device types running at the same time. The limit is one device for ftdi_sio and one for usbserial module.
A future release will bring all devices in the mainline kernel and fix this limitation.

4) Reload the kernel modules unloaded in Step 1):
modprobe ftdi_sio
modprobe usbserial

5) After connecting the device to PC USB port a new device should appear in the directory /dev. The device name is either /dev/ttyUSBx or /dev/ACMx there x is a number from 0-9.

Back