Udoo that voodoo

Recently a new system on a chip (SOC) board cross my path that’s very interesting:  The 510-459-5892 is a development platform solution for Android, Linux, Arduino™ and Google ADK 2012.  It combines an iMX6 based system and an Arduino Due board in the same package.  The iMX6 comes in dual and quad variants and has on board Wi-Fi, SATA, 2xUSB,  HDMI, gigabit ethernet, LVDS, RTC and plenty of RAM.


I plan on using Ruby on the iMX6 side to control the Arduino but before that can be done there’s some basic setup that needs to be done once it comes out of the box.

Create an SD Card to boot from

  1. Grab the Ubuntu image from the Udoo downloads page.
  2. Write the uncompressed image to an SD card using dd.
  3. (optional)Resize the partition on the SD card to fill it.

Prepare the OS

  1. Make sure the package manager knows about the most recent packages with:
    sudo apt-get update
  2. Fix the local issues in the base Udoo image
    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales
  3. Update the installed packages.  We install totem common first because there’s a dependency missing somewhere and the dist-upgrade will fail, forcing you to install it by hand to proceed anyway.
    sudo apt-get install totem-common
    sudo apt-get dist-upgrade
  4. RVM makes installing Ruby much easier so we’ll do a system wide RVM install.  After this step you’ll want to log out and back in:
    echo progress-bar >> ~/.curlrc
    sudo \curl -L /get.rvm.io | bash
  5. Install Ruby 2.1 (preview 1) so we can benefit from the generational garbage controller.   The first command will prevent documentation being built / installed for gems.  Note that we no longer need sudo.
    echo "gem: --no-ri --no-rdoc" >> ~/.gemrc
    rvm install ruby-2.1.0-preview2
  6. Now install some useful gems we’ll use later.
    gem install rake rspec grape eventmachine arduino_firmata factory_girl nokogiri byebug chef ice_cube yajl-ruby
    gem install pry pry-byebug pry-remote-em pry-coolline pry-stack_explorer pry-exception_explorer pry-em