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:
- 10/100/Gb ethernet port
- HDMI port
- analog audio in/out
- microSD and SD card interfaces
- 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 ?
In the box, you’ll find the following items:
- 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
By default, the RIoTboard boots from the onboard flash which has Android 4.3 pre-installed.
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.
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.
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
With the SD card inserted and the DIP switch settings adapted, all that remains is to power on the RIoTboard.
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.
Wireless connectivity works out-of-the-box using the Android 4.4 image (not with 4.3!).
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.
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.
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 firstname.lastname@example.org
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.
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 email@example.com
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.
Just like with SSH, there is no password configured by default. This can easily be changed.
root@riotboard:~# x11vnc -storepasswd
Enter VNC 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
This is a list of useful links to tutorials or additional information on the RIoTboard.
- Official website
- Element14 RIoTboard space
- Various video tutorials
- Circuits with Charlotte: RIoTboard introduction
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.