Managing RIIM platforms

Platform versions

With the release of RIIM SDK rev. 4.0.0 new platforms are available as part of the SDK.

Note

This platform version is incompatible with previous platforms before RIIM SDK rev. 3.2.0. For TSCH 915 MHz, it is incompatible with any other platform.

The platforms come in several versions and combinations. If you want frequency hopping, choose the platform whose file ending is TSCH. If you want single channel, choose the platform whose file ending is SingleChannel. The difference is described more in detail in Medium Access Technologies .

Note

Note that when opening an development kit or sample modules these can have a platform image from SDK version earlier than the SDK downloaded from Radiocrafts.com. Therefore, we recommend to always update the platform on your kit when downloading an SDK.

4 different platforms are provided:

  • Border Router - Acts as network root and includes driver for Microchip ENC28j60 Ethernet controller. Supports direct IPv4 connection to Ethernet.

  • Border Router Standalone - As Border Router but without driver for Microchip ENC28j60 Ethernet controller. Typically used with SLIP or custom interface to the internet.

  • Meshrouter - Used as child node in the RIIM network. Capable of routing packets.

  • Leaf - Used as child node in the RIIM network, but is unable to route packets that’s not to/from itself.

150kbps platforms

The 150kbps platform images provide support for higher bitrate, lower slotframe times and lower power consumption. Using 150kbps platform the device parses the messages at 150kbps bitrate with timeslots of 20ms. This allows for faster transmission of higher amount of data. The platforms have been optimized for lower power consumption and add a new power setting for the devices TSCH_LOW_POWER_150kbps.

New platforms are compatible with TSCH_LOW_POWER setting, however for lowest possible current consumption users should default to using TSCH_LOW_POWER_150kbps setting.

The new setting results in longer slotframes and therefore will result in slightly longer join times.

Warning

Platforms with 150kbps bitrate are not compatible with 50kbps platforms. Attempting to mix the two will result in never-ending scanning for EBs on Meshrouters.

Upgrading or changing the Platform image using scripts

Changing and upgrading the Platform Image is also possible through automated scripts. The scripts for doing so are located in the folder Framework/Platform/ .

However, in the “Output” folder you will find .bin files ready made for each variant, which you can directly upload to a board by using the Bootloader Utility.

The scripts can be run from the command line or double-clicked on from the file explorer. They’re called Upload_BorderRouter_Platform_[TYPE], Upload_MeshRouter_Platform_[TYPE] and Upload_Leaf_Platform_[TYPE].[TYPE] refers to the network type and can be SingleChannel or TSCH. Executing the script will prompt for the name of the serial port, just like for ICI applications:

~/ RIIM_SDK/Framework/Platform$ ./Upload_Leaf_Platform_SingleChannel.sh

-----------------------------------------------------------------------
Output/RIIM_Platform_Leaf_0x020000-SingleChannel.bin is generated. Do you want to upload it to the module / board now?
Enter your SERIAL port name e.g. /dev/ttyUSB0 and hit ENTER
If you only hit ENTER, you will skip uploading

Enter serial port name:

When finished, you need to reset the boards you just uploaded the image to.

Upgrading or changing the Platform image using MAKE

Uploading a new platform image manually is done in the same way as for the user ICI application images. For instance, you could do it like this to upload the BorderRouter platform :

~/RIIM_SDK/ICI_Applications/My_App$ make uploadImage OUTPUT_FILENAME=../../Framework/Platform/Output/RIIM_Platform_BorderRouter_0x010100 PORT=/dev/ttyUSB0

You will need to change the PORT to your port (COM* on Windows, or /dev/ttyUSB* on Linux)

When finished, you need to reset the boards you just uploaded the image to. Factory programmed development kits come with this configuration:

  • The sensor board (SB) uses RIIM_Platform_Leaf_0xXXXXXX

  • The development board (DB) uses RIIM_Platform_MeshRouter_0xXXXXXX

  • The border router (BR) uses RIIM_Platform_BorderRouter_0xXXXXXX

where XXXXXX is the platform version number. To find the available platform versions, look into the Framework/Platform/Output directory.