Meet the Odroid U3

Last Monday a new ARM based SBC mini computer arrived; the Odroid U3 (Community Edition). Some highlights:

  • 1.7 GHz Quad-Core Cortex-A9 Samsung Exynos4412 processor
  • 2 GByte RAM
  • 3D Accelerator Mali-400 Quad Core 440 MHz
  • 10/100 Mbps Ethernet
  • Storage: MicroSD Card Slot, eMMC socket
  • HDMI
  • Power: 5V/2A
  • 3 x High speed USB 2.0 Host ports
  • PCB Size 83 x 48 mm
  • XUbuntu or Android OS

And that’s not all – the rest of the details can be found here.

I ordered the following set, a week before they arrived:

  • Odroid U3 Community Edition;
  • 5V/2A power supply;
  • 8GB eMMC module with Linux on it;
  • Case.

Odroid U3The total amount, including shipping, was $ 118.50 (~ EUR 85). I just couldn’t resist buying one to give it a try 😉 I read a comparison between a Raspberry Pi and the Odroid U3 and if the Odroid really outperforms the Raspberry that much, I’d be better off with an Odroid.

However, that (performance) is not the primary reason to ‘broaden my horizon’; the real reason is that I’ve had 3 SD card crashes since June last year with an average of 2 Raspberry’s running 24/7. That’s too much for me – I just can’t handle that. I have 4 RPi’s running now and this hardware overkill makes it very easy to just move some tasks to the remaining 3 RPi’s when 1 of them breaks down, but I don’t want that to happen… apparently the SD card is the weak point of the RPi concept (yes, all my RPi’s are up to date), so looking for alternatives was my primary reason for buying this Odroid U3.

While unpacking the Odroid shipment, the first 2 remarkable things were the PCB size (smallerOdroid U3 then a RPi and also smaller then half a Cubietruck) and the huge heatsink – which is there for a reason, but more on that later. Normally, the first thing I do while preparing for the 1st boot is connecting a HDMI screen and a keyboard – but I totally forgot to buy a micro-HDMI adapter, so all my HDMI cables were useless. Oops… well, lets just boot the thing and hope that ssh is installed and working properly out of the box.. and it did. So I could use the Odroid headless right away, like I do with all my mini computers.

After doing the usual stuff like expanding the file system, disabling the graphical interface and so on (“sudo odroid-config“) I shut it down and hooked up my Power Monitor to get some information about the power usage. During boot, the power usage is around 3~4 W with peaks of 5 W but after that it settles down to a measly 1.9~2.0 W. That’s comparable to the power usage of the Cubietruck which uses 2.3 W (including an SSD).

Odroid U3Another thing I noticed was that the Odroid boots very fast – push the power button, start Putty and the first login attempt is successful! Try that with a RPi…wow..

As I mentioned earlier, I was very curious why the Odroid had such a big heatsink, so I tried to find a way to get some more information about CPU temperature, cause even while running idle I could feel that the heatsink was already a bit warmer then the ambient temperature. Not much, but noticeable. ‘cat /sys/devices/virtual/thermal/thermal_zone0/temp‘ gave me the information I needed: 51 degrees C, idle.

So, what’s going to happen when the Odroid gets really busy?? On the Odroid forum I found a way to stress the CPU to the max: ‘sudo openssl speed -multi 4‘ – that made the CPU usage go through the roof and the temperature as well – I saw the temperature reach 102 degrees Celsius!! And power usage went up to 7.5-8 W… oh my! Fortunately some thermal protection kicked in, because I saw the temperature and power usage dropping automatically and increasing, dropping, increasing.. some throttling mechanism must be doing that. While stressing the CPU to the max, the heatsink became unpleasantly warm – after 10 seconds or so I really wanted to remove my finger from the heatsink. Now I know why it’s there – for a very good reason 😉 Now I’m wondering, how much CPU power can be used constantly before throttling kicks in? Don’t know yet. I did see that while compiling Node.JS the temperature went up considerably as well (in the 70’s, with just one core busy? didn’t check that though)

Next thing I did was downloading, compiling and installing some additional software I’ll be playing with in the next couple of weeks: Node.JS with a lot of modules and nginx (Engine-X, for the static content, reverse proxy and stuff like that). And since I like comparing things (especially apples and oranges), I compared how Odroid/nginx compared to a (virtualized) W2k3/IIS6.

I changed the standard nginx.conf and added the following:

worker_processes  4;
worker_cpu_affinity 1000 0100 0010 0001;

This will create 4 worker processes, each running on a dedicated core. I copied a 2KB html file to the Odroid and to the IIS server and used Openwebload to see what numbers both would produce (results after 20 seconds, IIS first):

URL: http://domoticaserver.hekkers.lan:80/smart.html
Clients: 5
MaTps 20.68, Tps 24.85, Resp Time 0.229, Err 0%, Count 438

URL: http://odroid1.hekkers.lan:80/smart.html
Clients: 5
MaTps 1136.02, Tps 1078.00, Resp Time 0.005, Err 0%, Count 23347

Eehh.. this can’t be true? Testing this while logged in on the IIS server gave these numbers:

URL: http://localhost:80/smart.html
Clients: 5
MaTps 144.42, Tps 137.72, Resp Time 0.036, Err 0%, Count 2953

A lot better, but still about 7 times slower than Odroid… I’ll have to do some more testing to find out what’s causing this, because I don’t believe this… maybe I’m just running too much VM’s on a modest CPU (Intel Core i3 530) ?

Again the CPU temperature of the Odroid went up to 74 degrees Celsius (board in closed case, ambient temperature 24.8 degrees)  during this test, with a system load of about 0.40 and power usage between 3 and 3.5 W.

Now, almost a week later, the Odroid is still running fine, running a test website based on Node.JS, Primus and AngularJS, without any throttling; I think I like the Odroid U3, but time will tell whether I really do …

Bookmark the permalink.

8 Responses to Meet the Odroid U3

  1. The speed difference is primarily because of NGINX. A 2KiB file is fully cached in memory and the answer for the same request is also fully prepared already and thus can very quickly be answered.

    This while IIS6 is not that sneaky and indeed you have likely a lot of cycles being spent shifting between VMs.
    Also keep in mind that you are sharing and thus software-layering the network interface there; while the Odroid is all native and mostly direct, which counts a lot too…

    • Thanks; I’ve never worked with nginx before so your info is very useful for me. I blamed my Hyper-V for the bad performance but it’s good to know that nginx also does some extra ‘tricks’ to speed things up. Right now (since a few hours) I’ve got nginx running as a reverse proxy (trigger: websockets) for my IIS site, weblog, webcam and a test site on a spare RPi. Looking good so far…

  2. Mike van Goor says:

    Beste Robert,

    Ik zie dat je veel nieuwe hardware in gebruik hebt genomen voor het draaien van je domotica.
    Ik zelf zit te kijken naar een simpele one-board linux server om mijn domotica server op te draaien. Ik lees wat drama verhalen over hoge temperaturen op de odroid. Persoonlijk vind ik een rpi te langzaam.

    Heb jij ervaring met java en rxtx op de odroid? en zo ja werkt dit vlekkeloos.

    Ik verneem het graag.

    Groet,
    Mike

    • Mike,
      Dat heb je goed gezien, ik heb relatief veel hardware in gebruik genomen de laatste tijd. Vorig jaar zo rond Juni, dacht ik dat ik precies wist wat ik nodig had: een paar Raspberry’s en misschien een wat krachtiger machientje voor de database en de MQTT broker, maar dat zou dan wel moeten voldoen. Het is ook wel zo uitgekomen als ik het had bedacht. De reden dat ik meer dan 1 RPi nodig heb is dat NodeJS nogal veel geheugen vereist, anders was het aantal RPi’s veel lager uitgevallen.
      Echter, inmiddels heb ik wat minder vertrouwen gekregen in de RPi (als basis voor mijn systeem) omdat ik in nog geen jaar tijd 4 keer een kapotte SD kaart heb meegemaakt. Ok, als je genoeg hardware thuis hebt liggen ben je in no-time weer in de lucht, maar toch – het is wat mij betreft daardoor geen basis voor een stabiel systeem. Daarom wil ik de functie van de RPi’s reduceren tot het koppelen van wat USB zaken (Plugwise, Opentherm, Slimme meter en LED strips trap) en de rest van mijn systeem gaan draaien op een Cubie, waar ik inmiddels toch wat meer vertrouwen in heb dan een RPi. Die Cuie moet mijn systeem met 2 vingers in de neus aankunnen. Ik heb straks dus een aantal RPi’s over; leuk voor mijn zoon om mee te oefenen 😉

      Overigens, voor Home Automation moet je een flink groot systeem hebben gebouwd wil je de RPi daarmee (qua snelheid) echt in de stress kunnen krijgen. Of je moet een systeem gebruiken die wat dat betreft onnodig veel resources vraagt… 😉

      Java en RXTX heb ik nog nooit wat mee gedaan (ook niet op de Odroid dus), dus daar kan ik je niks over vertellen.

  3. Liem says:

    Ik denk dat je ipv de sd kaarten in de rpi beter van usb stick kan draaien om crashes te voorkomen.

    • Klopt, dat heb ik ook even overwogen maar was toen eigenlijk al in de ban van de Cubietruck & Odroids 😉
      De Raspberry’s gebruik ik nu alleen nog maar voor testen en uitproberen zoals bv. momenteel Voice Control.
      Oftewel niks belangrijks…

  4. Philip Sannwald says:

    Hiyas Robert,

    a nice article about the U3.

    In regards of the temperature problem: Hardkernel are offering an active cooling solution as well. Idle temps are around 45ish °C, running “sudo openssl speed -multi 4” for 10 mins the temp never reached over 55°C. As for the fan control: the default threshold on the Ubuntu MMC is 50°C. Anything above and the fan becomes active with the speed determined by how much cooling is needed to cool down to <50°C.
    What might also interest you is the new UPS board that was released a few weeks ago. U3 + UPS + little GSM modem and you have a powerful monitoring solution.

    The only real downside of the U3: the NIC.

    And last but not least: I feel your pain with the SD cards and the RPIs. Had to learn the hard way to fork out a few extra € for a industrial grade SD card with SLC cells myself. Oh well, you learn from experience.

    Grüße,
    Philip

    • Hi Philip, thanks.
      I’ve seen the fan but I just don’t like ’em – fans are always the first piece of hardware that starts to give problems – noise, failing during a reboot etcetera; yeah I know, they’re only 6 Euro @ pollin.de, but.. hmmm I just don’t like ’em 😉 I always choose a fan-less graphics card for that same reason 🙂 (I don’t play games)

      Thanks for bringing the UPS board to my attention. I don’t know which way to go yet though; I’ve got 2 Cubietrucks and 2 Odroid U3s so maybe a single UPS for all of them would be a better choice; I have to do some “research” on that because holiday season is coming soon and I would like to have this covered before we’re on our way 😉 A bigger issue is that my U3’s won’t automatically boot after power has been restored.

      With the NIC being the downside of the U3 you probably mean its speed (10/100)? For me that’s not really an issue cause for Home Automation even 10 would (should!) probably suffice. It’s somewhat similar to looking at a HD or a 4K screen from 4 meters distance or more – you won’t really see the difference in terms of ‘performance’. So it depends a lot on what you’re using the U3 for I guess.

      Robert

Leave a Reply

Your email address will not be published. Required fields are marked *