UDOO
UDOO is a single-board computer with an integrated Arduino Due 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.
"The product line involves three single board computers – UDOO QUAD/DUAL, UDOO NEO, UDOO X86 – that differ over various aspects, plus the UDOO BLU and the set of UDOO BRICKS."
UDOO is a development platform that merges a Dual or Quad Core ARM Freescale Cortex-A9 i.MX 6 CPU, that can run Linux or Android operating systems, and an Arduino Due compatible board with a dedicated ARM Atmel SAM3X8E CPU.
UDOO is a joint effort of AIDILAB srl and SECO USA Inc, from an idea of Antonio Rizzo, Maurizio Caporali and Daniele Conti, born in collaboration with a multidisciplinary team of researchers with expertise in interaction design, embedded systems, sensor networks and cognitive science.
History
;Kickstarter campaignThe UDOO project was launched on Kickstarter on April 9, 2013 by AidiLab — a Siena University startup — and SECO - an embedded computing firm - and reached the goal of $27,000 in about 40 hours. The goal was well exceeded as 4,172 backers pledged $641,614.
Hardware
The UDOO board is equipped with two CPUs. 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
- a USB OTG Bus
- all the digital pins of the external Arduino pinout.
Processors
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 DRAM memory devices.
Freescale i.MX 6
The i.MX 6 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
- 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 Co-processor.
- General Interrupt Controller with 128 interrupt support
- Global Timer
- Snoop Control Unit
- 1 Megabyte unified L2 cache shared by all CPU cores
- Two Master AXI bus interfaces output of L2 cache
- NEON MPE coprocessor
The i.MX 6 Quad processor incorporates the following hardware accelerators:
- VPU Video Processing Unit
- Two IPUv3H — Image Processing Unit
- GPU3Dv4 — 3D/2D Graphics Processing Unit, version 4
- GPU2Dv2 — 2D Graphics Processing Unit.
- GPU VG — OpenVG 1.1 Graphics Processing Unit
- ASRC — Asynchronous Sample Rate Converter
- Three SSI that support I2S/AC97, up to 1.4 Mbit/s each
- Enhanced Serial Audio Interface, 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 while the other four support 4-wire.
- Five eCSPI.
- Three I2C, supports 400 kbit/s
- Gigabit Ethernet Controller, 1Gbit/s/10/100 Mbit/s
- Four Pulse Width Modulators
- System JTAG Controller
- GPIO with interrupt capabilities
- 8x8 Key Pad Port
- Sony Philips Digital Interface, Rx and Tx
- Two Controller Area Network, 1 Mbit/s each
- Two Watchdog timers
- Audio MUX
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.
;Processor 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 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
- On-Chip Memory
- Boot ROM, including HAB
- Internal multimedia / shared, fast access RAM
- Secure/non-secure RAM
Networking
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 Ethernet physical layer transceiver for transmission and reception of data on standard CAT-5 unshielded twisted pair cable. The KSZ9031RNX provides the Reduced Gigabit Media Independent Interface 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: MCS0-7, Support up to 72Mbit/s 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
- 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
- CSI Camera port
- eSATA port
- 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
- SD Reader
- SAM3X JTAG header
Multimedia
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
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 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
- RAM DDR3 1GB
- 76 fully available GPIO
- Arduino-compatible R3 1.0 pinout
- HDMI and LVDS + Touch
- Ethernet RJ45
- WiFi module
- Micro USB and Micro USB OTG
- USB type A plus a supplementary USB key and a supplementary USB connector
- I/O analog audio
- SATA
- CSI Camera connection
- Micro SD
- 6V to 18v power supply and external battery connector
Accessories
- 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
Software