Today, February 6, 2014, The RIoT Board was announced by element14. It is a sort of BeagleBoard Raspberry Pi, but from Freescale.
"The RIoTboard has been designed to run Android operating systems efficiently and features a high processing performance/low-power consumption processor with a broad range of peripherals and display capabilities, making it perfectly suited as a hub for the Internet of Things (IoT)."
I have one of the first boards here on my desk to try out.
This is what is on the board:
- Freescale i.MX 6Solo processor based on ARM Cortex-A9 at speeds up to 1 GHz
- Freescale Kinetis® K20 MCU
- 1GByte of 32-bit wide DDR3 @ 800MHz
- 4GB eMMC
- 10M/100M/Gb Ethernet port
- 1 USB 2.0 OTG High Speed
- 4 USB 2.0 High Speed 2.0 Hosts
- HDMI and Parallel RGB interfaces
- micro TF and SD card interfaces
- analog headphone/microphone jacks
- camera interface
- serial ports
- JTAG and boot configuration interfaces
The photo below is what I saw on my TV when I first powered on the board. It took a while before I saw something, but just when I thought it was not working this picture appeared. I seem to have some synchronisation issues.
Connect your charger it says. I thought I did.
Note that there are no SD-cards involved, this runs from on-board memory.
Update April 3, 2014
I finally found some time to have another look at the RIoT board. After investigation I discovered that my display problems were due to either my HDMI cable or the monitor input. After adding a HDMI-DVI adapter the display became normal.
Hooking up an FTDI serial-to-USB cable allowed me to log the Android boot sequence and compare it to one found on the Internet. It appeared to be pretty much the same, so I concluded that my board was doing fine. Then I did some experiments to set the screen resolution using the U-boot shell. Hit any key as soon as the terminal asks you to ("Hit any key to stop autoboot").
The resolution defaults to 1280x720, 60 Hz. With the "printenv" command you can find the environment variable that sets it. In my case it was a very long line. Copy it to a text editor, change it, add "setenv" to the beginning, remove the first '=' character, copy it back into the terminal and press enter. Redo a "printenv" to see if the resolution was changed. If it did, store it by issuing a "saveenv" command. Reboot.
Once booted in Android I connected a USB mouse and nosed around. The board responds very well, it seems to be pretty fast. Inserting a USB memory stick gave me extra storage space. Now it is finally time for some serious experimenting, but I have to move my board to a wired Ethernet socket first, because I do not have a Wi-Fi stick handy.
P.S. If somebody knows how to get rid of the connect-your-charger warning in Android, please let me know. I am not sure if I can connect a battery to the board somewhere.
Update April 8, 2014
I installed the Media Center XBMC for Android on my board as this seems to be something most people do with a Raspberry Pi. XBMC is a manual install that I did the hard way because I hadn't connected the board to the Internet. Download the APK file from http://xbmc.org/download/ and copy it to the RIoT board's sdcard. In the shell issue the command:
pm install /sdcard/download/xbmc-12.3-Frodo-armeabi-v7a.apk
where you should of course replace the apk's filename by the name of your file.
Instalation went fine and XBMC was up and running in no time. However, I was a bit disappointed by the video playing capabilities or the board. Two MP4 files that I had available did not play very smoothly. I know the problem is not in the files because they play fine on my not-so-fast laptop but they were rather large for such short videos. I have to try again with some downloaded movie (that I do not have of course, I only buy DVDs) .
Update Mai 7, 2014
I finally found some time to continue with this board. I now have it connected to my Internet router with an Ethernet cable and surfing goes well and smooth. I played some YouTube videos but unfortunately there was no sound. In the Android settings all volumes are on max but to no avail. Strangely enough I can hear the notification sound when changing it in the settings, but that's all. According to the element14 website there is a problem with the Android distribution for the RIoT board that disables sound. Actually, when you look at the boot log that you can capture on the serial port, you will see a line saying
asoc: can't open platform imx-hdmi-soc-audio.0
I would not be surprised if that has something to do with the problem :-).
You must install Ubuntu to make audio work. I guess I will do that now following this guide.
The first steps all went smoothly and Windows started uploading Ubuntu to the board, but after some 7 minutes an error occured and it stopped at the file "usr/share/icons/Humanity/icon-theme.cache". I clicked Stop and the Start again but the same error happened:
"Push" error, file="C:\Linux\tools\Mfgtools-Rel-4.1.0_130816_MX6DL_UPDATER\Profiles\MX6DL Linux Update\OS Firmware\files\oneiric.tgz"
This is not very precise because the file oneiric.tgz is an archive of some 800 MB... Oh well, let's try again. I have attached the serial port log file and the screenshot of the MfgTool.
The cause of my problems turned out to be my USB port that had switched off in the middle of the install :-(. After connecting the RIoT board to another USB port the whole process went well. About 20 minutes it was done. Restarting the board with DIP switch 1 to ON it booted nicely into Ubuntu.
Attached are the successful instalation log and the Ubuntu boot log.
But do I have sound now?
Update Mai 9, 2014
My RIoT board now boots into Ubuntu (Linaro) without problems, almost. In the attached boot log you can see that there is a problem with modprob and it seems that this makes mounting USB thumb drives impossible. Now I cannot play the MP3 files that I put on it :-(. So I still cannot check the sound. I don't hear a welcome sound either. Linaro knows of two different sound output options, but the test sound cannot be heard no matter which output I choose.
When trying to configure Linaro I discovered that Linaro does not know my display, and so it defaults to a 640x480 resolution. That in itself would not be a problem if only Linaro adapted its windows properly to this resolution. Unfortunately it doesn't, rendering setup completely impossible because all (and I mean all) the buttons are outside the screen! Argh! I have no clue on how to move the windows to bring the buttons in view. God, how I hate this dumb problem that occurs way too often. Impossible to choose another display resolution, impossible to confirm a driver selection, everything is impossible. Impossible to set up the clock so when surfing I get an expired certificate warnig for almost every page I visit on the Internet.
I guess I'll have to edit some configuration file from the command line, but I don't know which file, where it is nor how to do it.
It is a shame, really. The RIoT board seems like a nice board that works well, but the software that comes with it just isn't good enough to use it. I am not a Linux guru, I have absolutely no ambition to become one, so I give up now. I will put the board back in its box and probably offer it as a gift to someone with more Linux willpower than me.