UDOO
UDOO is a single-board computer with an integrated Arduino 2 compatible microcontroller, designed for computer science education, the world of Makers and the Internet of Things.
The product was launched on Kickstarter in April 2013 reaching wide consensus. UDOO is available in three models: UDOO Dual Basic, UDOO Dual, UDOO Quad, respectively at the price of $99, $115, $135.
UDOO is a development platform that merges a Dual or Quad Core ARM Freescale Cortex-A9 i.MX 6 CPU, providing optimal performance when running both Linux or Android operating systems, and an Arduino 2 compatible board with a dedicated ARM Atmel SAM3X8E CPU.
UDOO is a joint effort of Aidilab srl and SECO USA Inc, in collaboration with a multidisciplinary team of researchers with expertise in interaction design, embedded systems, sensor networks and cognitive science.
History
Kickstarter campaign
The UDOO project was launched on Kickstarter on April 9, 2013 and reached the goal of $27,000 in about 40 hours.[1][2] The goal was well exceeded as 4,172 backers pledged $641,614.[3]
The marketing strategy was based on 12 sponsorship packages ranging from $1 (where exclusive updates were promised) through to a $318 pledge (which offered dual core and quad core boards, both with WiFi, Ethernet, accessories and pre-loaded software). This meant there were choices to suit every budget and level of interest, as reflected in the extraordinary level of take-up.[4]
Hardware
UDOO board is equipped with two CPU. The Freescale i.MX 6 is an ARM Cortex A9 processor based on ARM v7 instruction set. Next generation graphics and high-definition video are central in the i.MX 6 series. The i.MX 6 series supports up to 1080p60 video playback, enabling exceptional high-quality videos with low power consumption for devices playing high-definition content. The 3D graphics engine in the top of the line i.MX 6 Quad and i.MX 6 Dual processors are capable of providing up to 200 Mt/s, which enables ultra-vivid, realistic graphics critical for multimedia. These applications combine the power of the main cores with the until-now-untapped potential of the 3D engine to perform computational tasks.
Otherwise Atmel SAM3X implements real-time computing and allows full compatibility with Arduino Due prototyping board. With this solution UDOO can be used like an Arduino Due microcontroller and programmed in the same way.
They are both stand-alone with different clocks and no shared memory. They both process their tasks asynchronously without any kind of emulation.
They do however share some communication channels:
- a UART Serial (used with Linux)
- a USB OTG Bus (used with Android)
- all the digital pins of the external Arduino pinout.
Processors
The i.MX 6 Dual/6 Quad application processors are the latest additions of Freescale Semiconductor to a growing family of multimedia-focused products offering high performance processing optimized for lowest power consumption. The i.MX 6 Dual/6 Quad processors feature Freescale's advanced implementation of the ARM Cortex™-A9 core, which can be interfaced with DDR3-1066, LV-DDR3-1066 and LPDDR2-1066 (single and dual channel) DRAM memory devices.
Freescale i.MX 6
The i.MX 6[5] Dual/6 Quad Processor is based on the ARM Cortex A9 MPCore™ Platform, which has the following features:
- ARM Cortex A9 MPCore™ Dual or Quad core CPU configurations (with TrustZone)
- Symmetric CPU configuration where each CPU includes:
- 32 Kbyte L1 Instruction Cache
- 32 Kbyte L1 Data Cache
- Private Timer and Watchdog
- Cortex-A9 NEON MPE (Media Processing Engine) Co-processor.
The ARM Cortex A9 MPCore™ complex includes:
- General Interrupt Controller (GIC) with 128 interrupt support
- Global Timer
- Snoop Control Unit (SCU)
- 1 Megabyte unified L2 cache shared by all CPU cores (Dual or Quad)
- Two Master AXI (64-bit) bus interfaces output of L2 cache
- NEON MPE coprocessor
The i.MX 6 Quad processor makes use of dedicated Hardware accelerators in order to meet the targeted multimedia performance. The use of HW accelerators is a key factor inobtaining high performance at low power consumption numbers, while keeping the CPU core relatively free to perform other tasks.
The i.MX 6 Quad processor incorporates the following hardware accelerators:
- VPU Video Processing Unit
- Two IPUv3H - Image Processing Unit (version 3H)
- GPU3Dv4 - 3D/2D Graphics Processing Unit (OpenGL ES 2.0), version 4
- GPU2Dv2 - 2D Graphics Processing Unit (BitBlt).
- GPU VG - OpenVG 1.1 Graphics Processing Unit
- ASRC - Asynchronous Sample Rate Converter
Miscellaneous IPs and interfaces:
- Three SSI that support I2S/AC97, up to 1.4 Mbit/s each
- Enhanced Serial Audio Interface (ESAI), up to 1.4 Mbit/s each channel
- Five UART, up to 4.0 Mbit/s each
- RS232 interface
- 9-bit RS485 multidrop mode
- One of the five supports 8-wire (uart1) while the other four support 4-wire.
- Five eCSPI (Enhanced CSPI).
- Three I2C, supports 400 kbit/s
- Gigabit Ethernet Controller (IEEE1588 compliant), 1Gbit/s/10/100 Mbit/s
- Four Pulse Width Modulators (PWM)
- System JTAG Controller (SJC)
- GPIO with interrupt capabilities
- 8x8 Key Pad Port (KPP)
- Sony Philips Digital Interface (SPDIF), Rx and Tx
- Two Controller Area Network (FlexCAN), 1 Mbit/s each
- Two Watchdog timers (WDOG)
- Audio MUX (AUDMUX)
Atmel SAM3X
Atmel’s SAM3X/A series is a member of a family of Flash microcontrollers based on the high performance 32-bit ARM Cortex-M3 RISC processor. It operates at a maximum speed of 84 MHz and features up to 512 Kbytes of Flash and up to 100 Kbytes of SRAM. The peripheral set includes a High Speed USB Host and Device port with embedded transceiver, an Ethernet MAC, 2x CANs, a High Speed MCI for SDIO/SD/MMC, an External Bus Interface with NAND Flash controller, 5x UARTs, 2x TWIs, 4x SPIs, as well as 1 PWM timer, 9x general-purpose 32- bit timers, an RTC, a 12-bit ADC and a 12-bit DAC. The SAM3X/A series is ready for capacitive touch thanks to the QTouch library, offering an easyway to implement buttons, wheels and sliders. The SAM3X/A architecture is specifically designed to sustain high speed data transfers. It includes a multi-layer bus matrix as well as multiple SRAM banks, PDC and DMA channels that enable it to run tasks in parallel and maximize data throughput. It operates from 1.62V to 3.6V and is available in 100- and 144-pin QFP and LFBGA packages. The SAM3X/A devices are particularly well suited for networking applications: industrial and home/building automation, gateways.
Processors Connectivity
The Freescale i.MX 6 and the Atmel SAM3X are connected through a UART Serial Port embedded on the board. It works exactly like an Arduino connected to an external computer with a USB cable. The SAM3X and Linux communicate on a two way channel, exchanging messages with a tested baudrate of 115200.
This serial connection is also accessible from the external pins 0 and 1 of the Arduino compatible pinout. The SAM3X programming port is accessible in the same way as Arduino Due: via a USB-to-serial converter or directly on the external pinout. The serial UART is connected to the iMX 6 pins KEYROW0 and KEYCOL0. On the SAM3X side it is connected to pins URXD and UTXD. The shared serial is also available through the micro-USB plug CN6. By removing the J18 jumper, you can communicate on the same channel, which now becomes shared.
Memory
UDOO uses 4 Micron MT41J256M16RE-15E RAM modules (2Gbit for each module) for a total of 1GByte. The clock frequency is 400mhz for UDOO Dual and 528mhz for UDOO Quad.
The memory system consists of the following levels:
- Level 1 Cache - 32KB Instruction, 32KB Data cache per each core.
- Level 2 Cache - Unified instruction and data (1MByte)
- On-Chip Memory
- Boot ROM, including HAB (96 KB)
- Internal multimedia / shared, fast access RAM (256KByte)
- Secure/non-secure RAM (16 KB)
Networking
Ethernet
The MAC-NET core, in conjunction with a 10/100/1000 MAC, implements layer 3 network acceleration functions. These functions are designed to accelerate the processing of various common networking protocols, such as IP, TCP, UDP, and ICMP, providing wire speed services to client applications. UDOO uses KSZ9031RNX Ethernet transceiver. It is a completely integrated triple-speed (10BASE-T/100BASE-TX/1000BASE-T) Ethernet physical layer transceiver for transmission and reception of data on standard CAT-5 unshielded twisted pair (UTP) cable. The KSZ9031RNX provides the Reduced Gigabit Media Independent Interface (RGMII) for direct connection to RGMII MACs in Gigabit Ethernet processors and switches for data transfer at 10/100/1000 Mbit/s. The KSZ9031RNX reduces board costs and simplifies board layout by using on-chip termination resistors for the four differential pairs and by integrating an LDO controller to drive a low-cost MOSFET to supply the 1.2V core.
Wi-Fi Module
GWF-3M08 is a WLAN module supporting IEEE 802. 11 b/g/n standards with 6-pin connector supporting USB 2.0 /1.1 interface. This is a small form factor and low cost compact WLAN module designed for the wireless connectivity of products with embedded system. This module operates in 2.4 GHz ISM frequency band, it applies a highly integrated MAC/BBP and RF single chip RT5370 with 150Mbit/s PHY rate supporting. This module can be built-in other embedded applications such as IP Camera, IP set top box, GPS, Internet radio apparatus, it can be directly soldered on a main PCB.
Features:
- 802.11b: 1, 2, 5.5, 11Mbit/s; 802.11g: 6, 9, 12, 24, 36, 48, 54Mbit/s
- 802.11n: (20 MHz) MCS0-7, Support up to 72Mbit/s (40 MHz) MCS0-7, support up to 150Mbit/s
- OFDM, Peak rate 150Mbit/s, Peak throughput 90Mbit/s.
- Security support for 64/128 WEP, WPA, WPA2, TKIP, AES
- Operates in 2.4 GHz frequency bands. Power Management
- WPS and TX external control, WiFi direct supported
Peripherials and connectors
Front Connectors and Ports:
- Speakers jack 3.5mm
- Mic jack 3.5mm
- USB 2.0 Host x2 type A
- 10/100/Gigabit Ethernet RJ-45 connector
- HDMI connector
- USB Client microUSBconnector
- i.MX 6 / SAM3X serial microUSB connector
- RESET button
- WAKE-UP button
Up-side Connectors and Ports:
- CSI Camera port
- eSATA port (UDOO quad only)
- LVDS connector
- Power-on LED
- Alternative DC-IN connector
- SAM3X SPI pins
- USB WiFi module connector
- Extra USB 2.0 Host port
- Real Time Clock External Battery (3 Volts)
- SD Reader
- SAM3X JTAG header
Multimedia
GPU
Summary of features in the GPU3D includes:
- OpenGL ES 2.0 compliance, including extensions; OpenGL ES 1.1; OpenVG 1.1
- IEEE 32-bit floating-point pipeline
- Ultra-threaded, unified vertex and fragment shaders
- Low bandwidth at both high and low data rates
- Low CPU loading
- Up to 12 programmable elements per vertex
- Dependent texture operation with high-performance
- Alpha blending
- Depth and stencil compare
- Support for 8 fragment shader simultaneous textures
- Support for 4 vertex shader simultaneous textures
- Point sampling, bi-linear sampling, tri-linear filtering, and cubic textures
- Resolve and fast clear
- 8k x 8k texture size and 8k x 8k rendering target
- GPU2D has the following features:
- Bit BLT & stretch BLT
- Rectangle fill and clear
- Line drawing
- High performance stretch and shrink
- Mono expansion for text rendering
- ROP2, ROP3, and ROP4
- Alpha blending including Java 2 Porter-Duff compositing blending rules
- Support rendering size of 32Kx32K
- 90/180/270 degree rotation
- Transparency by monochrome mask, chroma key, or pattern mask
- Color space conversion between YUV and RGB
- High quality image scaling, using up to 9x9 separable filter
LVDS panels
UDOO provides one of the two i.MX 6 LVDS outputs to the external pinout. This input is used to communicate RGB data and controls to external LCD displays with LVDS interface, or through LVDS receivers.
The LVDS port may be used as one single-channel output.
USB OTG - Android Accessory Mode
When you boot Android, the OTG BUS is switched to connect to the SAM3X; therefore, the connection is between the two processors. If you plug a USB cable to CN3 it doesn’t work since it is disconnected.
With this setup, the i.MX 6 can communicate with the SAM3X using the Android ADK protocol. To do this you must program the SAM3X with a sketch which includes specific libraries and installs an app on Android configured to use the ADK protocol.
Specifications
Summary
UDOO is based on a Dual or Quad core ARM cortex-A9 CPU delivering great performance on both Android and Linux OS, and a dedicated ARM processor for the GPIO. The specifications [6] are:
- Freescale i.MX 6 ARM Cortex-A9 CPU Dual/Quad core at 1 GHz
- Integrated GPU: each processor provides three separate accelerators for 2D, OpenGL® ES2.0 3D and OpenVG™
- Atmel SAM3X8E ARM Cortex-M3 CPU (same as Arduino Due)
- RAM DDR3 1GB
- 76 fully available GPIO
- Arduino-compatible R3 1.0 pinout
- HDMI and LVDS + Touch (7'' and 15'')
- Ethernet RJ45 (10/100/1000 MBit)
- WiFi module
- Micro USB and Micro USB OTG
- USB type A (x2) plus a supplementary USB key and a supplementary USB connector (requires a specific wire)
- I/O analog audio
- SATA (Quad-Core version only)
- CSI Camera connection
- Micro SD (boot device)
- 6V to 18v power supply and external battery connector
Accessories
The available accessories[7] are:
- MIPI 5 MP Camera module
- MIPI 5 MP IR Camera module
- Kit LCD 7" Touch
- Kit LCD 15.6" Touch
- Kit LCD 15.6"
- Starter Kit (Cables Kit + Power Supply + Micro SD)
- Cables Kit
- Power Supply
Software
The Udoo board comes with 2 micro SD card (optional) with inside Android and Ubuntu Linux
See also
References
- ↑ "Update 2: 27k goal! · UDOO: Android Linux Arduino in a tiny single-board computer". Retrieved 12 July 2016.
- ↑ "UDOO, il micro-pc italiano che rivoluziona la prototipazione raggiunge il goal su Kickstarter in 40 ore". Retrieved 12 July 2016.
- ↑ "UDOO: Android Linux Arduino in a tiny single-board computer". Retrieved 12 July 2016.
- ↑ "UDOO: Android Linux Arduino in a tiny single-board computer". Kickstarter Inc. Retrieved 22 Sep 2013.
- ↑ "i.MX6Q-i.MX 6Quad Processors-Quad Core-NXP". Retrieved 12 July 2016.
- ↑ "Linux-Android-Arduino Development Board with ARM CPU - UDOO". Retrieved 12 July 2016.
- ↑ "Accessories - Shop – Udoo". Retrieved 12 July 2016.