I met Gregory from Freescale at Maker Faire Paris beginning of May after some emails going back and forth regarding another Freescale board. After having exchanged some ideas and feedback, he was kind enough to send me a RIoTboard and some accessories for evaluation purposes and has also given me access to a preview version of the new RIoTboard website due to be launched this summer.

 

This is my first post about the RIoTboard, more specifically on getting everything set up and ready for some projects.

 

 

What is it ?

 

The RIoTboard is an open source community platform, supported by element14 and powered by a Freescale i.MX6 ARM Cortex-A9 processor. The board is meant to help evaluate the various peripherals and includes:

 

1.jpg0.jpg

  • 10/100/Gb ethernet port
  • HDMI port
  • LVDS
  • analog audio in/out
  • microSD and SD card interfaces
  • JTAG
  • two camera ports
  • four USB ports
  • two mini USB ports
  • serial debug port
  • expansion port with PWM, SPI, I2C, UART, ...
  • reset button


The Freescale i.MX6 ARM Cortex-A9 processor runs at 1GHz, there is 1GB of DDR memory and 4GB eMMC. Powering the board is done through a 5V DC barrel jack connector.


The name appears to be a clever wordplay as the tag line is "Revolutionising the Internet of Things":  revolution, IoT, riot, RIoTboard. The logo of a raised fist holding the board fits nicely in the theme.


The board is currently listed at 73EUR (before tax) on the Farnell website, which compared to a Raspberry Pi or Beaglebone Black may seem on the high side, especially since the launch of the quad core Raspberry Pi model 2 at 38EUR.

 

What's in the box ?

2.jpg


In the box, you'll find the following items:

  • RIoTboard
  • mini-USB cable
  • quick start guide

 

Additionally, you will need following items:

  • HDMI monitor
  • USB keyboard and mouse for input, even if only for initial configuration
  • 5V/4A power supply

 

And you may need:

  • wifi dongle for wireless connectivity instead of using the ethernet port
  • (micro)SD card (4GB minimum) to use/test an alternative operating system
  • USB UART cable for troubleshooting

 


3.jpg4.jpg

 

First boot


By default, the RIoTboard boots from the onboard flash which has Android 4.3 pre-installed.

 

Different OS


There are two ways to use a different operating system with the RIoTboard:

  • overwrite the pre-installed OS on the onboard flash
  • boot from a (micro)SD card containing a different OS


I personally prefer the second option (SD card), especially when starting out, for the following reason:

  • more simple procedure that can be executed on any operating system
  • preserves the onboard flash in its current state
  • is not limited to 4GB


Because of these reasons, I will only be covering the SD card approach to use a different operating system.

 

Operating systems


There are currently four flavours of available operating systems:

  • Android 4.3 (Jelly Bean)
  • Android 4.4 (Kit Kat)
  • Linux 3.10.17 (Yocto)
  • Linux  3.0.35 (Ubuntu)


All four come in two variants: eMMC or SD Card. Depending on where you wish to flash the OS on, you will need to download the correct image.Which flavour you pick depends on your preference, what you are familiar with and what you intend to do with the RIoTboard. For this getting started guide, I'll be proceeding with the Yocto Linux image.


If you want to know more about Android, check out this link to training material for developers: https://developer.android.com/training/index.html

 

Flashing the SD card


Flashing an image to the SD card is done in the same way as with the Raspberry Pi. So if you are familiar with that, there should be no problems.First, extract the downloaded zip file containing the image, then using "dd" (Linux/OS X) or "Win32DiskImager" (Windows), flash the image on the SD card. The time to flash the SD card may vary depending on its speed, but I've experienced times around 10 minutes using the latest image. It is recommended to use an SD card of at least 4GB, preferably 8GB.


5.png

 

DIP switch settings


Once the SD card is ready, power off the RIoTboard and insert the SD card. Before powering on the board, it is required to tell it to boot from the card rather than the onboard flash. This is done using the DIP switch in the middle of the board.


These are the settings:

  • boot from onboard flash: 10110111
  • boot from SD card: 10100101

 

Booting


With the SD card inserted and the DIP switch settings adapted, all that remains is to power on the RIoTboard.

 

Wireless connectivity


As far as I'm aware, there are currently two officially supported wifi dongles:

  • Wi-Pi wifi dongle
  • element14 wifi dongle (purple)

 

Both can be obtained from element14 and are compatible with other boards such as the Raspberry Pi or Beaglebone Black.

 

6.jpg

 

Android

 

Wireless connectivity works out-of-the-box using the Android 4.4 image (not with 4.3!).

 

Linux

 

Using the Yocto image, I was having trouble getting the wifi to work. The wifi dongle was listed using the "lsusb" command, but no "wlan0" interface was available.

 

7.png

 

After seeking help on the element14 forums in the RIoTboard area, I was given a newer Yocto image (riotboard_yocto_gui_SVN3000) with which wifi worked immediately, just like with the Android 4.4 image. I've been told this newer image will be officially released soon and the issue was related to kernel gadget support not being configured in the previous build.

 

The new image I received is also more lightweight (1.4GB vs 3.9GB) and boots straight to a graphical environment.

 

8.png9.png

10.png11.png

 

Connecting remotely

 

SSH

 

SSH is enabled by default. One thing to pay attention to though, is that no password is configured for the "root" user, making the system open for anyone.

A password is easily configured using the "passwd" command.

 

Fredericks-Mac-mini:~ frederickvandenbosch$ ssh root@192.168.0.136
root@riotboard:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
passwd: password changed.




 

Next time you try to log in via SSH, you will be prompted for the password.

 

Fredericks-Mac-mini:~ frederickvandenbosch$ ssh root@192.168.0.136
root@192.168.0.136's password:
root@riotboard:~#




 

VNC

 

Using VNC, it is possible to access the desktop remotely.

First the VNC server needs to be started. This can be done via SSH with the following command:

 

root@riotboard:~# x11vnc -bg -rfbport 5900 -skip_lockkeys -o /tmp/x11vnc.log




 

Once this is executed, connect to the desktop using a VNC client and IP address of the RIoTboard and port 5900.

 

12.png13.png

 

Just like with SSH, there is no password configured by default. This can easily be changed.

 

root@riotboard:~# x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /home/root/.vnc/passwd? [y]/n
Password written to: /home/root/.vnc/passwd




 

Running VNC with an additional "-usepw" flag will ensure the defined password is required when connecting.

 

root@riotboard:~# x11vnc -usepw -bg -rfbport 5900 -skip_lockkeys -o /tmp/x11vnc.log




 

14.png

 

Additional resources

 

This is a list of useful links to tutorials or additional information on the RIoTboard.

 

Conclusion

 

Aside from the issues with the wifi using the Linux image, setting up the RIoTboard is fairly easy. If you already have experience with other SBCs such as the Raspberry Pi or Beaglebone Black, there is not much new to know to get started.

 

In a next post, I'll be working on a first project using the RIoTboard, continuing with the Yocto Linux OS.