Berries, Bananas, Oranges and C.H.I.P.s

I’m in the midst of finding a low-cost embedded linux platform to standardize on for IoT/network device experiments. I’ve been using Debian on Marvel Kirkwood ARM devices as inexpensive, low power servers and network appliances for a number of years now. I’ve also used OpenWRT for my home network and other network appliances.

A few years ago though, I grew tired with the difficulty of maintaining/upgrading Debian on my ARM devices and replaced them with a small AMD based x86 box for my main home server. There have still been upgrade hassles, but overall, I think it reduced the fussyness and frustration enough to be worthwhile.

At about the same time, I started growing interested in using OpenWRT more widely, and I was encouraged when the LEDE Project forked off for reasons that included a desire to fix some of the things that frustrated me about OpenWRT. I liked the simplicity vs a full linux distribution. And the minimal system requirements meant OpenWRT could run on small, inexpensive, relatively low-power devices. Last year, I started work on trying to get OpenWRT running on some cheap linux-based network music servers. Before going further, I paused to think about what’s really important.

I realized that, for my purposes the fact that OpenWRT/LEDE runs on a wide variety of compact, inexpensive devices was as much a liability as an asset. It meant more of the communities effort was invested in supporting the hardware, which meant that a lot of the supported hardware and some of the higher-level software wasn’t well supported, or supported at all. Furthermore, the constrained resources on the various hardware made it harder to compile, package, and deploy software packages that were well supported on full linux distributions. These tradeoffs between cost and ease of development/deployment might be acceptable if I was working on a high-volume device, but I’m not. I’m working on one-offs for my own projects. At most, I might make/deploy a dozen similar devices. How much hassle was I inflicting on myself in exchange for saving $20, or $200 vs an easier to use alternative?

As for the alternative, figuring that out is really the point of this post. As I see it, there are three major options.

  • RaspberryPi
  • Chinese ARM (Allwinner, Rockchip, Amlogic, etc)
  • NextThing

And my current impressions on each option:

RaspberryPi

Anyone who has read this far is probably well aware of the success of the RaspberryPi and its offspring, like the RPi Zero and RaspberryPi v3. Community support is surely the strongest out of any of the inexpensive ARM boards. Unfortunately, I don’t find the boards a great fit for most of my projects.

The Raspberry Pi v3 is quite capable in terms of processing and video. Of those the processing power is probably the most relevant to me, but the projects that call for that also call for better network and disk IO, rather than the shared USB2 on the v3. Also, at $35-40 it’s more expensive than I’d like. It’s a bit on the large size too, and power consumption can be a bit high.

The RPi Zero is cheap ~$5 but availability has been poor, and it still seems hard to get. It’s small, and power consumption is better than the v3. Unfortunately, the Zero seems targeted at people who want to do more hardware hacking than I do. IO is minimal. There is no network, and no included support for USB peripherals (it can be a USB peripheral though).

It’s been almost a year since these two devices were released, so there is a good chance we’ll be seeing upgrades soon. Still, I’m not holding my breath.

Chinese ARM Boards ( with SoCs from Allwinner, Rockchip, etc ).

If I remember right, ARM SoCs from Allwinner and Rockchip first appeared at about the same time as the first RaspberryPi, in android TV boxes and sticks. The first developer board I remember was the Allwinner-based Cubieboard. Since then, there have been many variants from a half-dozen board designers like FriendlyARM, (SinoVOIP) Bannana Pi, (Xunlong) Orange Pi.

Unfortunately Allwinner, and most/all of the other SoC makers aren’t great about providing documentation or source code for their linux variants, and the board makers don’t/can’t exert much leverage. Allwinner chips seem to have a decent community around them, but there are so many SoC variants and board variants that a lot of effort is burned trying to keep up with them. The linux-sunixi (Allwinner) community is making a concerted effort at getting support into the mainline linux kernel, which should both make ongoing support easier and broaden the base of potential contributors.

Next Thing C.H.I.P.

Next Thing grabbed a lot of attention in late 2015 for their promise of a $9 computer called the C.H.I.P. After some challenges, they delivered on their Kickstarter and went on to produce more of the boards, as well as the PocketCHIP and upcoming CHIP Pro.

The C.H.I.P. includes 4GB of fast onboard flash, 2.4GHz 802.11n WiFi, Bluetooth 4.0,  512MB RAM and multi-format video out (built-in composite, or VGA & HDMI with adapters).

NextThing used yet another Allwinner ARM SoC (R8), and by that criteria, belong in the previous category. What sets them apart from other people spinning boards with cheap ARM SoCs is that they have invested time and money into software and documentation — including a full datasheet for the GR8 (R8 + 256MG RAM in package) used on their C.H.I.P. Pro.

They are currently out of stock on the CHIP and all they can say about backorders is that they are expected to ship in Q1 2017.

Conclusions

I already have an RPi v3, which I’ll find some semi-permenant use for. the C.H.I.P. is attractive because of it’s manufacturer support, despite being out of stock, and having an older Cortex-A8 CPU core. I’m not in a huge hurry, so I think I’ll order a couple now and hope they arrive before I wish they were here sooner.

I’m also tempted to buy an Orange Pi Zero, or one of the FriendlyARM NanoPi variants, for comparison.

Ubuntu Linux on the Rockchip RK3066 SoC

Those interested in running Linux on a cheap Chinese “MiniPC” with an ARM SoC have had much reason for hope, and just as much reason for disappointment.

The hope springs from the low cost and rapid pace of development of these devices. Earlier this year, the state of the art were devices based on the Allwinner A10 SoC, which had a single ARM Cortex-A8 Core and a dual-core Mali400 GPU, which went for ~$100, now there are products well under $100 with single- or dual-core Cortex-A9 CPUs and a up to a quad core GPU.

The disappointment comes from the fact that these SoCs are targeted at Android, with terrible documentation, and that most of the manufacturers are terrible about complying with the GPL. Add to this the fact that important parts of the chip, like the GPU and the video compression accelerator are under NDA from the original holders of the IP.

Still, there is reason for continued hope. Over on the SlateDroid forums, “AndrewDB” has posted about his progress with getting Ubuntu running on the UG802, which has a RK3066 SoC.

Current status, to the best of my knowledge:

  • Boots with Linux Kernel in Flash and RootFS on an SD card.
  • Framebuffer video out over HDMI
  • WiFi networking
What’s more, Andrew Kirby from Rikomagic, which sells a device based on this chip has been providing recent Kernel source. In addition, there is a working binary-blob based Linux driver for the video processing unit on an earlier Rockchip SoC that may be easily ported to this one.
Update: It looks like the most of the action is actually in the ARM TV tech forum.

via CNX-Software

 

The ZyXEL NSA320 in Context

I recently purchased a ZyXEL NSA320 to use in upgrading my home server infrastructure. I plan to replace the capable, easy to use, stock firmware with Debian linux.

The NSA320 is a small, low power server based on an “Kirkwood” ARM SoC from Marvell, paired with 512MB of RAM and gigabit ethernet in a small case that accepts two 3.5″ hard disks. It runs a linux-based firmware that provides file sharing, media streaming, and a variety of other features. The NSA320 is one of many low- and mid-priced products based on the Kirkwood family of chips, which first gained attention in the SheevaPlug.

The NSA320’s SheevaPlug pedigree is significant, because when the SheevaPlug debuted 4 years ago, it offered a unique combination of price, performance, capability, compactness, and openness. Up to that point, if you wanted an open platform, your options were x86 PC derivatives, which were larger, more expensive and consumed more power. If you wanted compact and low-power in x86, you had options, but they were 2x the price of the Sheevaplug.

ARM, MIPS and other RISC based options were available, but pricing was aimed at professional developers of embedded devices and wasn’t attractive for hobbyists. The embedded platforms had other issues as well. The dev-envronments took time and/or money to get working, and the platforms were often encumbered by NDAs. They also tended to be less capable than the Sheevaplug, with limited RAM and Flash, slower processors and less capable networking. Interestingly, these platforms ended up generating a lot of interest from hobbyists, but their attention was focused on the products, rather than the development tools; they hacked routers to run custom firmwares, like Tomato and OpenWRT.

The Sheevaplug was $99, which put it in the same price range as many of the commercial devices people were hacking. It also had a 1.2GHz CPU and 512MB RAM and it ran mainstream linux distributions like Debian, which mean that people could easily compile their code right on the device.

Of course, the Sheevaplug spawned its own family of inexpensive commercial products based on the Kirkwood SoC, like the PogoPlug family, and, perhaps more importantly, the PogoPlug based Seagate Dockstar. The Dockstar is significant because Seagate seems to have overestimated demand and then was left with a vast amount of inventory that ended up selling at a deep discount, with some going for less than $25.

The availability of cheap, capable Kirkwood devices, and the relative openness of the platform, has spawned multiple communities of people adapting software to enhance the capability of the devices, which is why I ended up buying the ZyXEL NSA320. The NSA320 stood out for me because its compact case can accommodate two SATA hard disks which offers a tidier, better performing solution than the external hard disks hooked to my Debian-running Dockstar. There are a number of other Kirkwood based dual-SATA NAS boxes, but the tend to be both more expensive (The NSA320 sells for $110, and is often available on sale for less than $90) with less capable hardware (the NSA320 has 512MB RAM, most of the other options have 128MB) or 256MB.

So, that’s a little context on why I found the NSA320 interesting. Next, I’ll be sharing links to the resources I’ve found on customizing the NSA320, and I’ll try to distill down some of what I’ve learned to make it easier for those who come after me.

Wandboard, More ARM Options

Another ARM dev board, the Wandboard. This one with a Freescale SOC. There is a $69 single core model with 512MB for $69, and a dual core, 1 GB model with 802.11n WiFi for $89. Both of them have HDMI out, USB ports, among others. Unlike a some of the other ARM devices I’ve posted, this one has gigabit Ethernet, rather than 10/100.

ODROID-X

There are so many interesting options for hackable ARM devices, I don’t really know where to start, so I’ll start with the ODROID-X.

The ODROID-X is a development board based on the Samsung Exynos4412 quad core ARM Cortex-A9 SoC with a Mali-400 quad-core GPU. The board adds 1GB of RAM along with 6 USB 2 ports, a 10/100 ethernet port, micro HDMI and analog audio audio in and out. It sells for $129.

This makes it one of the faster options available, but also one of the more expensive when compared to many of the Chinese options. It also has the advantage of already supporting a full Linux distro (ubuntu), whereas many of the cheaper options currently only have support for Android.

A brief history of hackable ARM devices

Once upon a time, there was the SheevaPlug, a $99 computer with a 1.2GHz ARM CPU, 512mb RAM, 512mb of flash storage, USB2 and an SDHC card reader that ran Linux. The SheevaPlug gave birth to inexpensive commercial products, like the PogoPlug, and it’s cousin, the heavily discounted Seagate Dockstar.

Since then, there has been an explosion of ARM-based development platforms. The SheevaPlug was based on the Kirkwood system-on-a-chip from Marvel, who partnered with GlobalScale Technologies to create development and reference designs that could easily be customized for various applications. Similarly, Texas Instruments, which has its own ARM based SOC families, created the Pandaboard, BeagleBoard and BeagleBone to encourage people to develop applications for their chips. Globalscale and Marvel haven’t rested on their laurels, either, they’ve created a number of additional variants on Sheeva platform, some with video output, others with SATA interfaces, additional GigE, WiFi, and other differentiators.

This is really just scratching the surface. Samsung, Qualcomm, Nvidia and Broadcom all make their own ARM SOCs, and there is an explosion of devices based on Chinese chips, like the Allwinner A10 (single core ARM Cortex A8 + dual Core Mali GPU), Rockchip 3066 (dua core ARM Cortex A9 + quad core Mali GPU) and AMLogic 8726-M3.