Single-board computers (SBCs) are perfect hybrid tools. Small form factor, and frequently exposed general-purpose input/output (GPIO) pins make them ideal for interacting with the physical world, while a full operating system makes them perfect mini-server devices.
Despite their advantages, SBCs don't perform simple, time-sensitive tasks as well as microcontroller-based boards. An ideal world would be a low-powered, single-board computer with a microcontroller built-in. Enter the UDOO Neo, an IoT maker board that runs Linux, has a built-in Arduino compatible microcontroller, and much more.
What is the UDOO Neo?
At its core, the UDOO Neo has an NXP i.MX 6SoloX processor, with two cores. One is an Arm Cortex A9 running at up to 1 GHz, and the other is a Cortex M4 reaching 200 MHz. While it shares many features of popular SBCs like the Raspberry Pi, it has a few stand-out attributes.
The two cores have separate I/O. The M4 core is dubbed the "Arduino" core, as it works natively with the Arduino IDE, can be programmed by the other core or an external computer, and has separate Arduino Uno form factor header pins compatible with 3.3v Arduino shields.
The A9 core is the main processor, running the operating system and sporting its own set of pins, following the M4 pin layout in a slightly wider stance. The two cores communicate via a dedicated virtual Serial port, which shares memory between both for data exchange. Alternatively, you can disable the M4 core altogether, allowing the A9 core to take over all I/O, giving over the 6 Analog input pins to the A9 core directly.
There are three versions of the UDOO Neo, and the two higher specced devices come with 9-axis motion sensors built-in too. Other than that there are most of the features you'd find on a regular low-power SBC, such as connectors for HDMI displays, USB ports, several connectivity options, and camera interfaces. As with all UDOO boards, there is a detailed wiki documenting each aspect of the board, and providing getting started and cookbook articles.
UDOO Neo Specs
The three versions on the Neo are similar, but have some important distinctions.
- CPU: NXP® i.MX 6SoloX applications processor with an embedded ARM Cortex-A9 core and a Cortex-M4 Core
- GPU: Integrated 2d/3d graphics controller
- Basic: 512MB
- Extended: 1GB
- Full: 1GB
- Basic: Fast Ethernet
- Extended: Wi-Fi, Bluetooth 4.0 Low Energy
- Full: Wi-Fi, Bluetooth 4.0 Low Energy,Fast Ethernet
- Built in sensors:
- Basic: None
- Extended: 9-Axis Motion Sensors
- Full: 9-Axis Motion Sensors
- Storage: MicroSD card slot, 8-bit SDIO interface
- Video: Micro HDMI interface - LVDS interface + touch (I2C signals) Analog camera connection supporting NTSC and PAL 8-bit parallel camera interface
- Audio: HDMI audio transmitter S/PIDF & I2S*
- Other I/O: 8x PWM signals, 3x I2C interface, 1x SPI interface, 6x multiplexable signals*
- Arduino: Arduino-Compatible through the standard Arduino Pins layout and compatible with 3.3v Arduino shields.
- GPIO: Digital I/O Pins, 32 extended GPIOs (A9 dedicated), 22 arduino GPIOs (M4 dedicated), 6 Analog pins
- OS: Ubuntu, Android, Yocto, OpenELEC
- Power: 5v MicroUSB, 6-15v DC Barrel Jack, RTX battery connector
- Size: 89 x 59 mm
UDOO Neo Basic vs Extended vs Full
There are three variations to the UDOO Neo: The Basic, The Extended, and The Full. All three share the same i.MX6 CPU and I/O, but there are some subtle differences between them too.
The Basic has 512MB RAM, but no Wi-Fi and Bluetooth connectivity, but misses the 9-axis motion sensor the Extended and Full have. The latter two also have 1 GB RAM, and wireless connectivity. Confusingly, the Extended version has wireless connectivity built in, but no ethernet, while the Full has both.
In short, the Full provides the most features, but if you can do without ethernet connectivity or a motion sensor, the Extended and Basic both are decent choices too - as long as you won't miss that extra ~500MB RAM in your project!
UDOO Neo OS Compatibility
UDOO provides its own version of Ubuntu Linux called UDOObuntu, available from the image download section of its site. The official image is for Ubuntu 14.04 LTS, but there is an unofficial 18.04 build hosted on the same page. The custom image is designed to work with the Neo's unusual hardware setup, with the Arduino IDE pre-installed and configured to work the onboard MCU.
There is also an official Android image for the UDOO Neo, making it an interesting choice for Android development. The documentation also shows how to get the OpenGApps project running under Android allowing the use of various Android apps and Play Store access. Unfortunately, there is no official support for using the M4 Arduino core in Android at the time, though UDOO claim to be working on it! Other unofficial images include a build of Yocto Linux targeting i.MX6 boards, and an unofficial Openelec 6.0 Kodi Media Centre image for turning the Neo into a media center.
What can You Build With a UDOO Neo?
The combination of Linux/Android-based operating systems with a variety of I/O options makes the UDOO Neo pretty open-ended in terms of potential. Used in combination with the UDOO clout IoT service, here it is being used as a web-enabled water level detector:
Perfect for Maker Projects
Maker Zapwizard outlines rendered and an intricate design for a highly functional Pip-Boy 3000 from Fallout 4, in a thread on TheRPF fandom forum.
It's still in the early stages, but the plan to use the Fallout companion app on an Android operating system, along with many mechanical elements and sensors all wired up to GPIO ports showcases many of the UDOO Neo's interesting features.
A team of makers called AutomatedToolTeam who work in the laboratory of Hematology at Siena, Italy, noticed that ordering samples takes up a lot of time when done by hand. The solution was to use a UDOO Neo in conjunction with a barcode scanner, stepper motors, and an old repurposed printer to create an automated test-tube re-ordering machine.
The machine is in its early stages, and there is a lot of tweaking and improvement still to be done, but it's a perfect example of how the unique features of the UDOO Neo can be used in a real-world scenario.
UDOO Neo Robotics
The dual-core, multifaceted nature of the board (along with the optional 9-axis motion sensor) makes the Neo a seemingly perfect choice for robotics. It certainly seems to do the job perfectly controlling a robotic arm:
This project by CarlosCasillas outlines again how useful the onboard M4 Arduino core can be for controlling external hardware without requiring a separate computer for programming.
A Mini PC
You can, of course, set the UDOO Neo up to be a simple low powered PC replacement too:
Should You Buy the UDOO Neo?
The UDOO Neo has some features that really make it stand aside, and while it lacks the same base computation power that similarly priced boards have, it isn't really a direct competitor to many. If you are looking for an unusual but innovative design combining many of the things that make both single-board computers and microcontrollers useful, you'll be happy with the Neo's potential.
That said, the Basic UDOO Neo does cost around the same price as a mid-range Raspberry Pi 4, and lacks wireless connectivity and a motion sensor. Spending a little more will get you the full package, and for all but the most computationally intensive tasks, the Neo is better kitted out for hardware hacking than most other SBCs at this price.
There are many similar SBCs masquerading as "A Raspberry Pi but…" The UDOO Neo is a little different, For something that fits the form factor, runs a full Linux or Android OS, and adds a bunch of extra features that you won't find on many other boards, the UDOO Neo is a great choice.