Raspberry Pi and the MK802 a Side-by-Side Comparison

All information and links presented were considered accurate as of 02-August-2012.
All links to external sites were deemed safe and relevant at the time this article was written.
If they cease being valid or safe, please let me know.

The Raspberry Pi and MK802 are sub US$100 computers.

Raspberry Pi

This was the first sub US$100 computer I heard about. There are two models (A and B). The A model is priced at US$25 and the B model at US$35.
I have the B model (the A model is still not available). In terms of hardware, the A and B model are identical except that the A model has only 1 USB connector (instead of 2) and no Ethernet port.
It is developed by the Raspberry Pi Foundation, a not for profit organization.
The Raspberry Pi site is here.
I ordered my Raspberry Pi from here.

MK802

This was the second sub US$100 computer I heard about. There are two models – one with 1GB of RAM, the other with 512MB of RAM.
I have the 1GB version. The 512MB version is about US$10 cheaper.
The MK802 is developed and manufactured by Rikomagic.
The Rikomagic site (Chinese, though there is an English language option) is here.
There is UK Rikomagic forum here. As far as I can tell, it has no connection with the Chinese Rikomagic site – it was registered by Cloudsto Electronics on 23-May-2012. Note: This site no longer exists.
I ordered my MK802 from here. NOTE: AliExpress is a bazaar of suppliers. I had no problem with the supplier I used, however, I make no claims about the reliability of other suppliers – always check the comments and feedback for each supplier.
The same supplier (which, I believe, claims to be the manufacturer) also sells just the 1GB unit for U$57 (price on 10-Aug-2012). If you order 100 or more units, they can add your logo / branding to the individual units.
I ordered mine with the Lenovo N5901 wireless keyboard / mouse. Personally, I found the keyboard too small for my hands.

First Impressions

Some images may be clicked for full sized versions.

Both the Raspberry Pi and MK802 come in similarly sized packages:

With the Raspberry Pi you get:

  1. the box
  2. some foam padding (not shown)
  3. the Raspberry Pi
  4. an anti-static bag (in which the Pi was sealed)
  5. a single page compliance and safety sheet
  6. a single page quick start guide


With the MK802 you get:

  1. the box
  2. a plastic tray (not shown)
  3. the MK802
  4. a power adapter
  5. an HDMI cable
  6. a USB to micro USB cable
  7. a micro USB to USB adapter
  8. an 40 page (English and Chinese) user’s manual


Side by side, they look like this (the MK802 comes in either black or white):

The Specs

Raspberry Pi MK802 Comment
CPU Broadcom BCM2835 running at 700Mhz Allwinner A10 running at 1GHz The MK802 is often incorrectly described as having a 1.5GHz CPU. It has a 1GHz CPU and a 500MHz GPU. Actually, the CPU is underclocked at 912MHz.

Update 31-Oct-2012: The Raspberry Pi can now be safely overclocked to 1GHz, thus negating much of the benefit of the faster A10.
GPU Videocore 4 Mali 400 The MK802 is often incorrectly stated as having an AMD Z430 GPU.
RAM 256MB DDR2 1GB DDR3 The MK802 comes in two versions one with 512MB, the other with 1GB.

Update 31-Oct-2012: the model B Raspberry Pi now comes with 512MB of RAM (as far as I know, the model A is still not shipping)
Flash Memory None 4GB The Raspberry Pi comes with no flash memory or storage. You are required to provide an SD card.
The MK802 comes with 4GB of flash memory installed. While the MK802 manual states it can come with up to 16GB of flash, I have not seen any models with anything other than 4GB. The MK802 does have a micro-SDHC slot where you can add more flash memory.
L1 Cache 32kB instruction and data 32kB instruction + 32kB data For the Broadcom BCM2835, it is not clear if the 32k cache is shared between the instruction and data or each has 32k. My best guess is that it is 32k + 32k.
L2 Cache 128kB 256kB On the Broadcom BCM2835, the L2 cache is reserved for use by the GPU. Unless explicitly enabled, the CPU bypasses the L2 cache.
It is not specified if the Allwinner A10 uses a similar strategy.
USB Ports 2 full size
1 micro-USB for power only
1 full size
1 micro-USB
Model A of the Raspberry Pi has only 1 USB port and 1 micro-USB port for power.
Video Connector HDMI
RCA composite (PAL and NTSC)
HDMI
SD / SDHC Connector Yes No
Micro-SDHC Connector No Yes
Power 5V @ 700mA via micro-USB connector 5V @ 2A via a 0.7mm plug The power adapter provided with the MK802 is a 5V, 2A power adapter. I don’t know the spec’d power requirements for the MK802.
Raspberry Pi Model A is spec’d at 5V @ 300mA
Ethernet ports 1 full sized None Model A of the Raspberry Pi does NOT have an Ethernet port.
Wi-Fi None 802.11b/g
Weight 38g 28g The Raspberry Pi is spec’d at 45g, but on my scale it weighed 38g.

Experiences

Both devices work and (at least for me) are wonderfully amazing at how much power they pack for such small, low cost devices.
The MK802 has an advantage over the Raspberry Pi because it comes with Android 4.0.3 preinstalled. Simply add a mouse, a display (my TV) and you are good to go. With the Raspberry Pi, you have to get an SD card and burn a Linux image to it.
OS development for both devices has been good with (I think) a slight advantage to the Raspberry Pi.
The preferred Linux for both seems to be Debian / Ubuntu.
While neither machine can be called a speed demon (well, at least not compared to a desktop or laptop), they both performed well.
The only issues I had were related to the OS (or maybe desktop or network stack) occasionally locking up. It has been a few weeks since I played with them (I moved house), so I am expecting the OSes to have stabilized even further.
One serious limitation has been lack of hardware acceleration support from the GPU. This causes things like video playback (from, say, YouTube) to be very jerky.
Having said that, running Android on the MK802 shows none of these limitations. High definition videos play smoothly at 1920×1080. This makes me wonder why more effort is not spent on customizing Android instead of creating an ARM port of an existing Linux distribution (Android is a stripped down version of Linux customized for running on embedded hardware like phones and tablets. Most applications running on Android run in a Java virtual machine rather than natively).
On 01-August-2012, the Raspberry Pi was shown running Android 4.0.

Update 31-Oct-2012: a major frustration I have with the MK802 (and UG802) is the extremely poor network performance they exhibit. I am not sure if this is a hardware issue or driver issue.

Update 08-Nov-2012 : it appears this is an Android / Chrome problem. This review of the Google Nexus 7 (11-Aug-2012), seems to have the same (or similar) issue:

…during page loading, the browser still often becomes unresponsive, and the loading itself will often take longer than it should – especially considering the quad-core processor and 120Mbit/s connection I’m on. …
Furthermore, typing in the address bar is an exercise in frustration, as it will often take seconds for the device to catch up with your typing…

And a follow up rant (07-Nov-2012) doesn’t indicate any improvement:

The entire Android experience … is pretty awesome and has few issues, but Chrome ruins everything. The browser is a crucial aspect of a tablet …

Performance

I have not had a chance to benchmark both devices, so this commentary is “theoretical”.
To run meaningful benchmarks it is necessary that both systems are running reasonably identical OSes. While I found the early OS versions to be usable, they were still far from being “production” level OSes. I expect OSes for both devices to achieve “maturity” sometime in the early Fall (September / October).

Update 31-Oct-2012: Raspberry Pi development continues at a incredible pace, unfortunately, this is not the case for the MK802 – as far as I know, there has not been much advancement on the OS end of things, as well, video driver development is stalled because Allwinner is not cooperating.

The Raspberry Pi runs an ARM 1176 based CPU. This is a 32-bit CPU with hardware floating point and 32 bit SIMD processing. It is rated at 1.25 Dhrystones / Mhz (see the Specifications tab).
The MK802 runs an ARM Cortex A8 based CPU. This is a dual-issue, 32-bit CPU with hardware floating point and 128 bit SIMD processing. It is rated at 2.0 Dhrystones / MHz (see the Specifications tab).
The MK802 is clocked 30% higher than the Raspberry Pi (912MHz vs 700MHz). Based on the Dhrystone rating and clock frequency, we would expect the MK802 to be about 2.08 times faster than the Raspberry Pi. For small, tight loops this is probably true. In practice, the performance bottleneck is going to be the system memory.

Update 31-Oct-2012: Now that the Raspberry Pi can be overclocked to 1GHz, the raw clock performance is reduced to the MK802 being about 55% faster (or 1.55 times faster)

The Raspberry Pi is at a disadvantage against the MK802 because its L2 cache is smaller and is dedicated to the GPU (unless the MK802 also dedicates part or all of the L2 cache to its GPU). But this only matters for code and data of a certain size – anything smaller than 32kB will fit in the L1 caches and the MK802 should be about twice as fast as the Raspberry Pi.
When the data and instructions spill into the L2 cache, the MK802 will show a significant advantage over the Raspberry Pi (unless, the Raspberry Pi enables L2 caching for the CPU).
Beyond 128kB (Raspberry Pi) and 256kB (MK802) data and code, the limitation will be system memory. There are two factors here: (1) memory speed and (2) available memory.
The real world performance difference between DDR2 and DDR3 memory is quite small (usually, less than 1%). If you are processing some large chunk of data (say sharpening an 8 Mpixel image), the processing is going to be bound by memory speed not CPU or cache. In this case, the performance difference between the Raspberry Pi and MK802 should be much smaller (I would expect the MK802 to be faster but not twice as fast).
The amount of available memory is another significant factor. Both the Raspberry Pi and MK802 share their memory with the GPU, meaning that the available memory is less than the specified 256MB and 1GB.
When a lot of memory is being used, the OS will swap memory to the disk (in this case, flash memory). Because it has less memory, the Raspberry Pi is more likely to swap to disk than the MK802. Of course, if you run only one task at a time, or have only one web page open at a time, this is less likely to occur. If you like to open dozens of web pages simultaneously, play music in the background, or have several applications open at the same time, then you are more likely to run into performance dominated by available memory and swapping.
Although the “disk” is flash memory, not all flash memory is created equal and performance varies widely (it is little known that flash performs poorly at small read / write sizes. Even if you have the fastest rated card, it could still be a horrible performer at reading / writing 4kB data blocks – for example, my cheap Emtec (class 4) 8GB micro-SDHC card is 25x faster than my SanDisk Ultra II Compact Flash) at 4kB writes. To be fair, the SanDisk is more than twice as fast at 1MB writes. You can see a table of 4kB random writes to various flash media here. In general, performance is very poor – sometimes as low as 10kB/s).
From what I gather, the Mali 400 GPU (MK802) is more powerful than the Videocore 4 GPU (Raspberry Pi) – not that this is useful at the moment since no Linux distro offers hardware support for the GPU (aside from Android). Even if full hardware support was available, it is not something the average user would notice (as long as video playback is smooth).

Update 31-Oct-2012: Broadcom has open sourced the video drivers for the Raspberry Pi, this gives the Pi a significant advantage over the MK802 and other ultra-mini computers. I believe Broadcom is the only company to have open sourced its drivers.

A collection of GPU benchmarks can be found here. I have to complain that the benchmarks are not very accessible which means doing comparisons is a pain, but here are some selected results (mostly, that means I couldn’t be bothered to pull out more) and there is little explanation of what the benchmarks are doing:

Test Raspberry Pi (Videocore 4) MK802 (Mali 400)
Rendering a video called Egypt Standard at 1280×720. I presume the result is the number of frames rendered within a given test interval: 694 4207
Fill test: warm-up. I presume this is just filling the video display with a constant pattern. The results are in kTexels/s ~50 000 ~200 000
Triangle test: warm-up. I presume this was drawing triangles to the video display. Resolution was HVGA (half-VGA, but it is not clear what the exact resolution was because there are several HVGA resolutions). The results are in kTriangles/s ~4000 ~9000

The results show the Mali 400 easily outpaces the Videocore 4 GPU, but, aside from bragging rights, this is not likely to affect the average user. The only time this would be an issue is if the GPU is used for accelerating some computations CUDA style.

NOTE: there is no information about the OS these tests were run under, nor the speed of the GPU, nor which CPU was used, so there is a possibility of some fairly wide variance in the results.
The GPU on the Raspberry Pi has a claimed fill rate of 1.5GTexels/s (or 1 500 000kTexels) – 30 times faster than achieved on the benchmark.

Conclusions?

If I had to recommend one over the other, it would be the MK802.
Having said that, I need to say the answer is not necessarily quite so straightforward and depends what you are looking for and looking to do.
As well, both bring back a lot of the excitement that has been missing in hobby computing these past many years.

Update 31-Oct-2012: I have changed my mind on the recommendation. It is clear that the Raspberry Pi has far more momentum and support behind it than the MK802. From a raw performance point of view, the MK802 is still superior to the Raspberry Pi, however, support and community is also very important – and this is something the Pi has far more of than the MK802.
The only way I see myself changing my recommendation is if Allwinner puts proper support behind its A10 chip. Enthusiasts and hobbyists want to support this chip, but it is very frustrating if we have to grope around in the dark, hoping to stumble on something to make it work better.
Allwinner and other SoC (System on a Chip) vendors (like Rockchip) need to release more information and work closer with enthusiasts if they hope to get any significant share of the hobbyist market. Maybe they don’t care about that market, maybe they are only interested in bunging out as many chips as they can and getting them stuffed into low cost tablets. That is probably a good short-term business plan, but a lousy long-term business plan.
Even if they get behind their chips now, it may be too late because the Raspberry Pi has a significant lead and mind share.

Cost

Price is what attracted me to these devices. The Raspberry Pi is US$35, the MK802 is ~US$70.
To get the Raspberry Pi up and running, I had to purchase an SD card, a power adapter, and an HDMI cable (ok, I had an SD card, but not a micro-USB power adapter or HDMI cable). As well, the Raspberry Pi does not have a case, so I need to be careful how I set it up so I don’t short anything out.
The MK802 comes with everything you need to plug the device into a display. All you need to supply is a keyboard and mouse (or just a mouse). You also need to provide a keyboard and mouse for the Raspberry Pi.
There is no question the MK802, once additional expenses to get the Raspberry Pi up and running are considered, is the better deal.
I don’t deny the allure of hacking together your own case for the Raspberry Pi – if you are buying the Raspberry Pi, it is because you want to DIY.

Performance and Value for Money

This easily goes to the MK802 – you get more computer and power for your money. It comes with Android 4.0.3 installed, just add a mouse, plug it into a display and you are good to go.
However, that is not necessarily important for everyone. In my case, I am interested in experimenting with these as nodes in cluster computing – so performance is one thing of interest to me. As well, the fact that the MK802 uses Wi-Fi instead of Ethernet is a big plus for me (reduces the number of cables lying around).
If you are looking at teaching computing, computing power is less important. If you are looking at instilling a DIY ethos into children, computing power is less important. What is more important is community and support. From what I can tell, the Raspberry Pi is the clear winner in this area.
According to the August 2012 MagPi (the Raspberry Pi users’ journal) over 200 000 Raspberry Pi have been sold. There is a very large Raspberry Pi community: they have their own magazine (MagPi), there is a Raspberry Pi book coming out. I don’t think there is that much momentum behind the MK802. There are certainly enthusiastic developers, but the community seems a lot smaller.

Update 17-Dec-2012: the Raspberry Pi now has its own app store / marketplace – again this puts it leaps and bounds ahead of any competition.

As well, the Raspberry Pi Foundation (not-for-profit) is (I believe) looking long term (and the success of the Pi is likely to encourage them) and is focussed on community development.
Rikomagic (a private company) is looking to make money, as long as the MK802 is profitable, they will continue to make it – if they can find something more profitable, I would expect them to jump at it. While there are MK802 enthusiasts, I am not convinced that Rikomagic itself is focussing energy on developing an MK802 community (I could be wrong).

Expandability / Hackability

This goes to the Raspberry Pi. It is an open circuit board. There are connectors that allow access to GPIO pins. The MK802 is enclosed. Nevertheless, there are USB GPIO modules available – whether or not they work with the MK802 is another matter.
Offhand, the Raspberry Pi is a better fit for robotics experimentation, or even doing something simple like turning an LED on and off – basic embedded electronics exposure.

Reliability

Neither has failed on me. I do worry about the MK802 because it does run warmer than the Raspberry Pi. On the other hand, I do worry about the Raspberry Pi because it is completely exposed. For now, overheating is more of a concern to me than shorting out.

Resources

Allwinner A10 datasheet
Broadcom BCM2835 datasheet
Raspberry Pi Users’ Magazine – a very good resource. It is claimed the August 2012 issue was completely created using Raspberry Pi computers.
Obviously, the Raspberry Pi site.
The Rikomagic site (Note: they no longer have any info on the original MK802)
Liliputing – just search the site for MK802 and you will get a bunch of articles related to it.
Miniand Tech forum for the MK802. They have forums for other Allwinner A10 based products as well, they seem to be a good resource for developers.