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 :ref:`target_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: .. code-block:: text ~/ 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.