Boards like Raspberry Pi and BeagleBone Black are great for experimentation but often require significant additions to tackle network gateway applications. Finding low-cost alternatives can be challenging…or at least, it was.
Globalscale Technologies teamed up with Marvell Semiconductor to do the ESPRESSObin Kickstarter project. The $49 ESPRESSObin board (Fig. 1) is based on Marvell's ARMADA 88F3720, a 64-bit, dual-core ARMv8 platform with up to 1 Gbyte of DDR3 memory. It can handle challenging applications like streaming video and provides nice expansion options. The system uses under 1 W when running at 1 GHz.
The system has a spot for an SMT 4 Gbyte eMMC 5.1 flash memory chip, but this is more for a subsequent end product. A MicroSD socket is used for development and most applications are based on the current incarnation of the board.
The Marvell ARMADA 88F3720 (Fig. 2) is built around a pair of 64-bit ARMv8 cores that includes the latest ARM TrustZone with secure boot support. The chip has a Marvell, single-lane MoChi Interconnect (MCi) interface that is not exposed, but most of the other ports are accessible, including the eMMC interface that is available on one of the headers.
The ESPRESSObin (Fig. 3) exposes quite a bit in a compact package. The system has 2.5-Gbit Ethernet support, but it actually runs through a Marvell switch of which three interfaces are exposed. The board has USB 2.0 and 3.0 ports, along with a Micro-USB port for debugging. JTAG is available for more advanced debugging. Most will simply boot Linux or other operating systems from flash memory.
The Mini-PCIe socket provides access to a number of options from the Wi-Fi module I used to devices ranging from GPS to other wireless support, such as LoRa. This allows the system to bridge between Ethernet and other wireless protocols. The Realtek Mini-PCIe unit that adds $20 to the cost is a single-band, 2.5-GHz 802.11b/g/n device that will support up to 300 Mbit/s with a 40 GHz channel. Of course, it is possible to use other Mini-PCIe wireless modules, as well. Dual-band, 802.11ac units with Bluetooth support are readily available since they are also used in laptops.
The system can easily link to a single SATA drive and is compact enough to fit nicely with a 2.5-in SATA flash drive. The SATA data and power connectors make it easy to connect to a drive. I liked the fact that the kit ships with all the necessary cables, including those for connecting my Micron P300 SSD. A SATA port multiplier can be used if more drives are required, although a single drive is suitable for applications ranging from data logging to a multimedia streaming platform.
The two headers provide access to most of the low-speed interfaces, including SPI and eMMC. This is one way to add wireless support for low-speed interfaces like LoRa, ULE, 802.15.4, ZigBee, and Z-Wave.
At this point, the system is running Ubuntu on a MicroSD card, although it is not limited to that. There are many applications that can be easily downloaded and installed using apt-get, the standard Ubuntu package manager. It should run gateway applications like ipFire and OpenWRT, although I have not tried those yet. That is on my to-do list, though, since I run ipFire on an x86 platform for my own gateway.
The system demo application highlights the gateway orientation. It is a streaming media application for a PC using a USB camera attached to the ESPRESSObin. While not flashy, the demo highlights enough of the system to see what capabilities it has, as well as its performance. It can easily handle multiple streams.
The software support is just getting started. Services like Samba and SSHD are installed and running by default, but others will have to be downloaded, installed, and configured. Lighttd, a lightweight web server, is installed as well. About half the RAM is still available on a 512-Mbyte RAM version. The 1-Gbyte version is the one most developers will want to use. The Ubuntu disk image used about 2 Gbytes on an 8-Gbyte MicroSD pflash card.
The only issue I had with the ESPRESSObin is the lack of a built-in real time clock with battery backup. Of course, this can be easily added via a board attached to the headers, but I just installed the Linux network time protocol (NTP) application instead, so the system picks up the time when it boots. This is not suitable for all applications, but is more than sufficient for any application that is tied to the internet.
Overall, the ESPRESSObin has been a joy to work with. It is fast, and the Ubuntu software is well supported. It can easily run other operating systems, and others are in the works for the platform. The board could be easily used within a product as is with possible removal of the headers and the addition of the eMMC chip. The system can be readily secured, and supports a SATA drive in addition to the Mini-PCIe socket. I just wish they had a case to match; I guess I'll have to find a 3D printer.