Skip to main content

Siemens IoT2020 provides a Gateway to Future Industrial Applications

Powerful new Arduino-enabled platform bridges maker and industrial worlds.

The Siemens IoT2020  (124-4037) is one of the latest additions to the SIMATIC product family for automation, which encompasses everything from programmable logic controllers (PLC) and industrial PCs with support for PROFIBUS and PROFINET, to human machine interfaces (HMI) and sophisticated, distributed systems for automating manufacturing operations.

The IoT2020 industrial IoT platform came about via a collaboration between RS Components and Siemens and was recently launched with Arduino co-founder, Massimo Banzi, at Rome Maker Faire. In this post we take a first look at the hardware and development options.

Hardware

Having previously had to come up with solutions for mounting “maker class” boards into equipment cabinets, a capable Arduino-compatible board in an industrial DIN rail enclosure was a welcome sight. Furthermore, with the Siemens name and SIMATIC heritage, you can be confident that it’s going to be at home in a typically more demanding industrial environment.

To the right-hand side of the enclosure there is a hinged panel which provides access to a Micro-SD card slot and a 6-pin “FTDI header” (3v3 UART port). To the left of this there is a panel which can be easily removed to provide access to Arduino Uno-compatible headers for use with shields.

Along the bottom of the enclosure there are USB host (Type A) and device (Type Micro-B) ports, reset and user buttons, and an Ethernet jack. Along the top there are LED indicators for power, SD, USB, over-current and user.

An Intel Quark X100 SoC is at the heart of the IoT2020 and can be seen pictured above, adjacent to the Arduino headers. This is clocked at 400MHz and has 512MB RAM available, with 8MB SPI flash for the BIOS and support for up to 32GB of main storage via Micro-SD card.

Image source: SIMATIC IoT2000 Forum

Details of the GPIO assignment can be seen above and note that digital I/O can be configured via a jumper for either 5V or 3v3 logic levels, sourcing or sinking up to 16mA at 5V and 8mA at 3v3.

On the underside of the board there is a Mini PCIe slot, enabling expansion via all manner of 30 x 50.59 mm or 30 x 26.8 mm (via adapter) cards to provide WLAN or additional Ethernet ports etc.

The IoT2020 can be powered via a supply ranging from 9-36VDC and it was reassuring to see a healthy sized electrolytic capacitor adjacent to the power supply terminals.

Official documentation

As you might expect, Siemens provide plenty of documentation for the IoT2020 and this includes:

  • Operating instructions
  • Setting up guide
  • Getting started guide
  • DC motor control via Arduino shield example
  • I2C controlled LED example

With no shortage of detail for system builders on all the various environmental and power considerations etc.

For links to the documents see Product Support and the Forums.

Poky Linux

Just some of the source packages that go into the O/S image.

An example O/S image is supplied by Siemens that provides a GNU/Linux system based on the Poky reference distribution from the Yocto Project, a workgroup of the Linux Foundation. What this means is that a standard, vendor-neutral set of tools and software metadata has been used to create a Linux distribution that is tailored to the IoT2020, making it easier for others to pick up where Siemens left off and to further customise the operating system and installed applications.

Along with the pre-built image a much larger archive of the source code is available to download.

Writing out the SD card

The official documentation is aimed at Windows users and this makes perfect sense when you consider that many (most?) electronic engineers and in particular those working with PLCs, are almost certainly going to be using Windows computers in their day-to-day work.

The provided O/S image has a “.wic” extension and while the Setting up guide suggests using Win32 Disk Imager to write this out to a Micro-SD card, “dd” can just as easily be used if you’re running Linux. For example (note that the “of” argument may vary!) :

$ sudo dd if=iot2000-example-image-iot2000.wic of=/dev/mmcblk0 bs=4M

Once this has completed the Micro SD card can be inserted into the IoT2020, or alternatively it can be mounted on a desktop machine to explore the boot and root filesystems.

Intel System Studio for IoT

The Eclipse-based Intel System Studio for IoT provides the official development environment for IoT2020 applications. This is available for Windows, OS X and Linux, enabling applications to be developed in C/C++, with a number of examples being provided to get you started. Accessing GPIO and sensors is simplified courtesy of Intel’s UPM and MRAA libraries, which also enable application portability across other platforms that make use of them in providing device access.

The IDE is also tightly integrated with the Poky system and makes it much easier to more complex applications with many packaged dependencies.

Programming via the Arduino IDE

Currently available documentation doesn’t mention the Arduino IDE at all, but being very close to the Intel Galileo in hardware and software architecture, I was keen to see if the IoT2020 could be programmed using this.

First, the latest version of the Arduino IDE was downloaded from arduino.cc. This was then started and Tools → Board → Boards Manager selected, before then searching for Intel board support packages and installing the one for Intel i586 boards such as the Galileo. This process did fail near the end of installation, but fortunately a solution was found on askubuntu.com. In short:

$ cd ~/.arduino15/packages/Intel/tohttp://www.rs-components.com/designspark/index.html?mpn=ols/i586-poky-linux-uclibc/1.6.2+1.0/i586

$ vi install_script.sh

Find the lines starting “executable_files” and change the "+111" characters for "/111".

$ ./install_script.sh

Note that this failure has nothing to do with IoT2020 and is an Arduino and/or Ubuntu bug.

Following which the Intel Galileo Gen2 board could be selected in the IDE, along with with port /dev/ttyACM0 after having connected up to the IoT2020 Micro-B USB. Next the trusty blink example was compiled and successfully uploaded, upon which the user LED started to flash.

User LED is the one on the furthest right, next to the UART header.

First impressions

With plenty of documentation — including detailed specifications and guidelines for system builders — features such as a DIN rail enclosure, 9-36VDC supply range and over-current indication, plus the build quality you’d expect of Siemens hardware, the SIMATIC IoT2020 really does feel like it would be at home in industrial applications.

The IoT2020 will probably appeal to those who use PLCs and other more traditional automation technologies in their day-to-day work, both as a more flexible platform for prototyping new solutions and as a means of providing a bridge between existing solutions and online services. While also appealing to those who come from more of a maker background, with applications that they would like to take from the desktop to an industrial environment.

As the first solution in the IoT2000 range, I’m really looking forward to seeing how this develops, along with the supporting software ecosystem and applications.

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.