Udoo is a really exciting development that should carry a great appeal for hobbyists and professionals alike. In a nutshell you can think of it as of a single board computer with an Arduino Due put on the same printed circuit board and made to interact with each other nicely. Udoo can run both - a special flavor of Linux and Android as well.
This means that this particular board can be more suitable for robotics and other applications that interact with the physical world if compared to other single board computers out there. Sure, Arduino might not be the first choice for electronics savvy people, however, the platform is very appealing to people without strong electronics background. Apart from that, Arduino can also be successfully used as a prototyping platform.
Make no mistake though. It is not just about Arduino as it is not just about another single board computer. The marriage of both as realized in Udoo opens up possibilities that can exceed those of each separate constituent. Let me explain what this concept implies as I see it.
Dual Basic board. All rights reserved udoo.org
So, as mentioned previously, the board is a combination of an SBC and an Arduino board. I would refrain from saying that this is an entirely unique concept as there are previous instances of an Arduino capable microprocessor being hooked up with an SBC. Most notably Raspberry Pi and its expansion board Gertboard. Nevertheless, this has taken the idea to the next level. First, by taking a powerful system on a chip as the board's main processor and second, by ensuring full Arduino compatibility and capability of the auxiliary microprocessor.
Full Arduino compatibility and capability means that not only the microprocessor is one that is used in an Arduino board but also that the pin outs available on the board are compatible. Meaning that there's basically an Arduino Due on the board. This implies that existing hardware and tutorials for Due are compatible with Udoo's Arduino part as well.
So far so good. But how is this different from just using a Raspberry Pi with Gertboard? Apart from obvious differences such as a more powerful processing unit and pin outs that support existing Arduino Due shields there's another point to consider. This board is meant to be a combination of both worlds and to enable them to act in unison. The tight integration of both processors ensures a variety of usage patterns that would not be available otherwise.
So, the main processor can communicate with the auxiliary processor via a UART serial connection. This would be the preferred way of flashing the auxiliary processor, although the serial connection can be configured to make it accessible from outside making a regular "Arduino" flashing procedure possible as well. There is also a separate serial interface for communication from outside to the Udoo main processor.
Apart from serial interfaces, there's also a USB on the go connection that can be switched between two modes. One mode would be to ensure a USB connection between the main and auxiliary processors, while the other mode would be to establish an outside USB OTG connection to Udoo. This might be especially useful when Udoo runs Android. I will elaborate on that a bit later. But first, let me guide you through a quick overview of available models.
There are three iterations announced. Namely - Dual Basic, Dual and Quad, ranging from the cheaper, less feature rich Dual Basic to the more expensive Quad. While these can be thought of as incremental upgrades over one another, I like to view them more as tailored for different purposes.
So, the Udoo Dual Basic is based on the Freescale i.MX 6 DualLite system on a chip which in itself is based on an ARM Cortex 9 dual core processor. The given system on a chip includes two GPUs, one for 2D, the other for 3D processing. These are Vivante GC880 and Vivante GC320.
The auxiliary processor is the Atmel SAM3X8E ARM Cortex-M3 CPU, the same as in Arduino Due. As said previously, this is combined with Arduino compatible GPIOs, 76 of them. On top of that, there is a CSI camera interface and other essential interfacing capabilities such as USB connections, HDMI, LVDS, audio in/out, power connections and a Micro SD card reader for the boot device.
The Dual comes with all the same capabilities as the Basic model except it has networking capabilities included - an Ethernet interface and a WiFi module. The Udoo Quad as the name implies is based on a different system of a chip that features a quad core Cortex A9 processor.
So, it is based on the Freescale i.Mx 6 Quad system on a chip that includes a Vivante GC320 GPU for 2D processing, a Vivante GC335 for Vector graphics processing and a Vivante GC2000 for 3D processing. Udoo Quad also has a SATA interface on-board which is a really welcome thing if anything akin a security application is considered. Apart from that, other features remain as in both above mentioned models.
Now, the main system on a chip of this board deserves a few words to be spent just on it. Freescale i.MX series including its sixth iteration are really serious systems used in all kinds of multimedia applications ranging from automotive industry (Ford, BMW) to consumer electronics (Amazon, Sony, and others). The Freescale i.MX 6 Quad found in Udoo Quad is also found in some tablet computers.
It's really nice to know that such a powerful platform is being used in a project like this. In case you would like to have a board based on the mentioned SOCs but you really don't need the bells and whistles of Arduino then there's the Wandboard which also has three models based on the same chips. You can think of it as Raspberry on steroids. But that is a bit off topic.
The different possible communication modes between both on-board processors open up quite interesting and flexible possible usage patterns. These could fall anywhere on a continuum between devices that are just a little more than what can be achieved purely by using Arduino to devices that are basically SBC applications with a few added real world interaction capabilities.
For example, from a control application that can be accessed from a web interface to a surveillance camera solution using Udoo as a network access server that starts recording on movement. Both solutions are nothing more than fruits of my imagination but I believe they show what I mean and should be quite doable too.
In these examples one would probably want to use Linux and the method of flashing the auxiliary processor is quite trivial. However, there's more to it than that. I mentioned that Udoo can be used with Android. This is not merely just a choice of operating system to tinker with.
It is useful to remind yourself that the Android ADK is based on Arduino hardware. In case you wonder - ADK stands for accessory development kit. Basically it is a reference for hardware Android accessories. Think devices that you can connect to and control from your Android device. Switch on a microwave oven from the comfort of your bed or anything else people will come up with.
So, the auxiliary processor with its Arduino compatible pin outs begs to become an Android accessory and the main processor can run Android and they happen to be connected together through a USB OTG connection. See where this is going? The opportunities are limited by ones imagination.
So what could be done with this board? Let's see - a networked (wifi or Ethernet) Linux and Android ready board capable of interacting with a plethora of open hardware sensors and actuators. A telepresence robot that can be run from an Android app or a web interface, a semi-autonomous sentry robot that patrols along a pre-defined route recording video and storing it on a SATA HDD, internet of things ready devices and much much more can come to one's mind.
Not that this could not be done before. It could, but probably not as easily. A system like Udoo really opens up web enabled robotics projects (and not only) to the general public. Now it is more than ever more about creativity and less about hard to attain technical prowess. This should result in very interesting one of a kind DIY projects as well as shorter development times of smart, web-enabled devices and Android accessories.