Posted on

GPIO Headers Reference for AML-S905X-CC

GPIOs (General Purpose Input/Output) are single-bit pins capable of digital input or output typically used for controlling LEDs or signaling. There is a total of 35 GPIO pins operating at 3.3V logic level on Le Potato which is 7 more than what is found on the Raspberry Pi series of boards. GPIOs are half duplex which means they can only be in either input or output mode but not both simultaneously.

When setup for input, applying 3.3V or 0V to the pin will correspond to 1 or 0 respectively when read in software. When setup for output, the pins will be either 3.3V or 0V depending on whether it is set as 1 or 0 in software. GPIOs typically provide only a few milli-amps of current so they should only directly drive low power things like LEDs. They cannot drive power hungry things like DC motors, which need power transistors to deliver adequate current.

Some of the GPIO pins have secondary functionality for signaling SPDIF, I2S, I2C, SPI, SDIO, UART, PCM, clock-generation, and more. They still operate at the same 3.3V logic level but these pins are usually connected to internal specialized hardware that can generate precisely timed signals without using the CPU to bit bang. This frees up the CPU to do other things like running your operating system and software.

There are two interfaces in the Linux kernel for controlling and reading from GPIO pins. Since the interfaces are standardized, you do not need to use libraries to read from and write to GPIOs. We have put together a simple guide for utilizing these interfaces. As an addition, we also mapped out the functionality and software pin numbers on Le Potato for easy access.

Screenshot from 2018-05-21 11-48-00

On the picture at the top of the page, GPIOs on the Le Potato are highlighted in green. 5V pins are red, 3.3V pins are orange, ADC pins are blue. Other un-highlighted pins are ground with the exception of the pins on the top right header.

Posted on

Comprehensive Documentation for ROC-RK3328-CC by Firefly Team

ROC-RK3328-CC (Renegade) is a powerful SBC platform powered by the Rockchip RK3328 SoC and equipped with high bandwidth DDR4. It features high performance IO like Gigabit Ethernet and USB 3.0 operating near native speeds. It is perfect for media center and IO intensive applications.

The Firefly Team, who designed this board with us, has accumulated and digested various guides into coherent documentation and put them here: http://roc-rk3328-cc.readthedocs.io/en/latest/intro.html

Since the board has only been out for two months, there is only sparse documentation available on the web so this is a great central resource for getting started with the Renegade. Did we mention that it is backed by GitHub it can be improved upon?

The documentation covers images for Android, Ubuntu, and LibreELEC by the Firefly team based on Rockchip’s SDK (Linux 4.4 LTS). We will also be rolling out Ubuntu 16.04 Xenial and Ubuntu 18.04 Bionic images for Renegade based on the latest upstream Linux LTS as soon as we are able to digest and test patches that are needed. We have no concrete timeline yet but will provide updates when we are close.

Posted on

Ubuntu 18.04 (Bionic Beaver) LTS for AML-S905X-CC (Le Potato) Preview Image 1 with Wayland

We are happy to announce our first preview image for Ubuntu 18.04 Bionic Beaver. It features the latest Linux tools and utilities along with Gnome 3 as the replacement for Unity. They back tracked on defaulting to Wayland from 17.10 due to maturity issues but we are excited to bring some GBM groundwork in the Linux kernel for you to play with Wayland.

We recommend testing new LTS releases to get a feel for the changes and upgrading only after its first point release since new software is often different, unstable, and bug ridden. For stability, stay with Ubuntu 16.04 which is on its fourth point release (denoted by 16.04.4) and on well on its way to a fifth point release.

This Bionic PI1 image release is for people to play with Wayland/Weston on top of Gnome 3’s Mutter window manager on Le Potato. This image takes around 5 minutes for first boot because it has to re-partition and create swap files so be patient and don’t interrupt it. When you get to the login screen and select the Libre Computer user, make sure to click the little settings icon (looks like a gear) and select “Ubuntu on Wayland”. From there, you can download es2gears_wayland (sudo apt-get install mesa-utils-extra) and glmark2-es2-wayland (sudo apt-get install glmark2-es2-wayland). Le Potato should be about 50% faster than the Raspberry Pi 3 Model B+ in glmark2. Please note that the 3D acceleration feature is neither stable or fully featured at this point and a lot of work remains. Having an open-source Mali driver like lima would help greatly. The hardware is OpenGL ES 2.0 only so needs something like gl4es shim for applications that rely on OpenGL.

The other big change in Bionic is the move away from /etc/network/interfaces and to netplan which renders configurations to other backends like interfaces and NetworkManager. We have included the appropriate yaml files for the headless and desktop images. Ubuntu also removed ifconfig so you have to use the ip command instead.

Major Changes:

  • Unity -> Gnome 3 (Mutter WM)
  • /etc/network/interfaces -> netplan
  • Linux Kernel 4.14.38 with GBM for Mali
  • Virtualization and container accounting improvements
  • Default to disable UHS and CVBS for compatibility

You can still use the lc_distro_transfer tool for flashing eMMC from MicroSD card just like with the Ubuntu 16.04 Preview Image 8. The image can be downloaded here.

Known Issues:

  • Top left USB port (OTG USB) conflicts with Mali driver and will cause all USB ports to stop working if you plug in a USB device into that port, blacklist the mali module before using the port
  • Mutter packages are held back from upgrading automatically due to out-of-tree patches
  • ARM64 Linux kernel are not part of Ubuntu ports repository, a separate repository needs to be set up in order to enable automatic kernel updates
  • No video for monitors and TVs with 1366×768 and some other odd resolutions

Other Project Notes:

Tritium boards will be mailed out next week for Kickstarter backers and we will begin the engineering effort for unifying board support in software so you can switch between ALL-H3-CC H5, AML-S905X-CC, and ROC-RK3328-CC with one command. Hopefully by the end of 2018, the fruits of our software efforts will offer a seemless experience on all of our boards.

Posted on

The Sub-1-Watt 64-bit Ubuntu Linux ARM Server

Today, we follow up the release of our Ubuntu desktop image with our headless server image for AML-S905X-CC. The headless server image is based on the latest Linux LTS 4.14 along with some of our customizations. It utilizes the same infrastructure we’ve created for our desktop image while consuming considerably less power.

  • Linux 4.14 LTS
  • u-boot 2017.11
  • Custom Partition Layout
    • 256MB FAT EFI Partition
    • BTRFS Partition
      • Copy-on-Write for greater reliability
      • Facebook’s zstd compression
      • @ root subvolume and @lc-ubuntu-16-headless release snapshot
      • Self expands on startup to full disk size
    • Auto generated Swap
      • 1-2GB in side located at end of disk
      • offload pages from zswap

In testing, power consumption is around 180mA with network, eMMC, and microSD card connected for a total consumption of 0.91W! Did we mention this thing has quad 64-bit ARM Cortex-A53 processors? Just to give you an idea, your “energy efficient” 13W LED light bulb uses the same power as 15 of these servers.

We performed no optimization or other funny business in our images to achieve these results. You can get a Le Potato yourself and compile a mainline kernel to verify the results. If you have one already, you can download the latest images here. If you are serious about minimizing power consumption, more saving can probably be extracted.

Posted on

AML-S905X-CC Mainline Linux Preview Image 8 with eMMC Support

It has been over three months since our last preview image 7 for the AML-S905X-CC Le Potato platform and there has been a lot of working going into mainline Linux and u-boot by our partner BayLibre. Preview image 8 brings all of the work together into a flash-able image for our end-users.

PI8 Core feature upgrades:

  • Upgraded to mainline u-boot 2017.11
    • No longer using Amlogic’s u-boot
    • eMMC support
    • Saving u-boot environment
    • cvbs enablement through UART via “setenv enable-cvbs 1; env save”
  • Upgraded to mainline Linux LTS 4.14.29
    • New DMT Display Modes support
      • 640×480@60Hz
      • 800×600@60Hz
      • 1024×768@60Hz
      • 1152×864@75Hz
      • 1280×1024@60Hz
      • 1600×1200@60Hz
      • 1920×1080@60Hz
    • Fixed top USB Port by Ethernet causing USB subsystem to hang
    • Utilize kernel and kernel module deb package install
    • Power optimizations
  • Additional image work
    • eMMC support via lc_distro_transfer utility
      • Reworked fstab mount descriptors
      • Reworked partition resize utility
    • Preliminary EFI support
    • Headless and XFCE Desktop snapshots in one image

Some known issues with this release and additional improvement work:

  • shutdown/suspend/wakeup
  • MicroSD card may hang on reboot command
  • package u-boot and board specific utilities and binaries into deb files
  • add repository to apt for board support deb files
  • display pipeline improvements and rework for additional resolutions
  • wayland support
  • Ubuntu 18.04 LTS
  • video codec acceleration support
  • overlay auto-loading in u-boot
  • eMMC performance improvements
  • EFI support improvements

eMMC Support

eMMC modules are solid-state flash devices created for embedded systems. They offer higher reliability and additional performance compared to MicroSD cards. They are purchased separately and attached to the eMMC connector on the bottom side of the board.

We currently have eMMC 5.x modules and eMMC 4.x modules. You can attach an eMMC 5.x module on a board that supports eMMC 5.x only. If you attach an eMMC 5.x module on a board with only eMMC 4.x support like the ALL-H3-CC, it will not work. The reverse is also true. The performance differences between the two module types are small to negligible.

lc_distro_transfer utility

This image includes the release state of our distro as snapshots on top of the BTRFS filesystem. We added a new script called lc_distro_transfer that utilizes core design features of our image to transfer system snapshots created during image building to eMMC and back to MicroSD card.

sudo lc_distro_transfer –help
USAGE: lc_distro_transfer VENDOR/MODEL DEVICE DEVICE_TYPE DISTRO [FIRMWARE_TYPE]

For example, you can flash the headless or desktop image from a MicroSD card to eMMC after booting up. After login and boot-up, simply run the following command to flash the headless image to eMMC:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk0 emmc lc-ubuntu-16-headless

If you want to flash the desktop image to eMMC, run the following:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk0 emmc lc-ubuntu-16-xfce

Once the image is flashed to eMMC, you can shutdown and remove the MicroSD card. The devices will then boot to eMMC. If you want to flash a blank MicroSD card from eMMC, you can run the following:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk1 sd lc-ubuntu-16-xfce

Please note that you can only flash the image that you original flashed to the eMMC. You cannot flash the headless image back onto the MicroSD card if you originally flashed the xfce image onto the eMMC.

The image release can be downloaded here.

You can let us know your thoughts on issues for this image on the LoveRPi forum. Once Ubuntu 18.04 LTS is out, we will have a lot of additional work lined up such as Wayland and Mali 3D support.

Posted on

Raspberry Pi 3 Model B+ Benchmarks, Review, and Comparison

Raspberry Pi 3 Model B+ is the newest offering from the Raspberry Pi Foundation sharing much of the same features as the Raspberry Pi 3 Model B with small but significant improvements on many fronts while maintaining the same price. Below is some highlights.

  • Increased CPU clock speed from 1.2GHz to 1.4GHz
  • Increased memory throughput
  • Integrated Heat Spreader (IHS) for SoC
  • Integrated MxL7704 PMIC for power management and delivery
  • Modularized WiFi/BT Radio with 5GHz and improved performance
  • Gigabit Ethernet (albeit still over USB 2.0)
  • Ethernet headers for PoE addon

We ran a comprehensive set of benchmarks on the new model, old model, and our boards to compare performance and power consumption.

We begin with heavily optimized C applications like C-Ray and SciMark2. Raspberry Pi 3 Model B+ is still utilizing 32-bit kernel and userland like its predecessor. Raspbian, the official OS of Raspberry Pi, has not moved to 64-bit ARMv8 despite the ARM Cortex-A53 CPU cores supporting it. Legacy 32-bit can help performance for this specific benchmark since some data structures and pointers are smaller than in 64-bit ARMv8 mode. Performance increases around 20% from the Model B, which means that the Raspberry Pi 3 Model B+ matches the performance of similarly clocked ROC-RK3328-CC. It is still slightly behind the AML-S905X-CC since that is about 100MHz faster.

Now we move onto server based workloads. Redis is a good test of overall system performance as it stresses not just the CPU but also the interrupt and memory subsystems. We see the Raspberry Pi 3 Model B+ improving greatly in performance over the previous Model B but still not enough to catch up with modern 28nm SoCs with faster DDR3/4 running ARMv8 kernel and userland.

Java benefits heavily from having native 64-bit arithmetic and performs signficantly faster on the boards running true 64-bit OSes. Despite nearly a 30% increase in performance, the Raspberry Pi 3 Model B+ is left behind.

Sysbench results should be taken with a grain of salt when comparing different binaries but this demonstrates the necessity of true 64-bit ARMv8 kernel and userland. Even with the performance gains, Raspberry Pi products are still held back by 32-bit ARMv7 Raspbian OS. Both the Renegade and Le Potato boards deliver more than 10x the performance.

Raspberry Pi 3 Model B+ uses a newly revised BCM2837B0. There are four limiting features of this SoC just like the previous BCM2837 in the Model B. First, it is missing ARM ISA’s Crypto Extensions. For encryption and decryption workloads such as VPN, SSL, SSH, and HTTPS, it’s NEON accelerated implementation is roughly 15x slower. This is one of the critical missing features that make the Raspberry Pi 3 Model B+ a poor choice for server based workloads that depend on these security instructions.

The second limiting feature has to do with the GPU which is a 30-bit design limited to 512MB of RAM. It only supports DDR2 so we haven’t seen the Raspberry Pi move to faster memory like LP/DDR3 like on Le Potato or LP/DDR4 on Renegade. As a result, memory intensive workloads will be much slower although the Model B+ is marginally faster than the Model B.

Like the previous Model B, the Model B+ has not implemented UHS support for MicroSD cards. It is still limited to 25MB/s while other boards are more than twice as fast.

As mentioned by Eben Upton, the Raspberry Pi 3 Model B+ has a single USB 2.0 channel which is shared between the ethernet and four port USB hub. Despite having a physical gigabit ethernet, performance is limited to 320Mb/s (40MB/s) peak. If you are using a USB hard drive serving files over ethernet, the effective throughput is reduced to 160Mb/s (20MB/s). Intensive NAS based use-cases for the Pi continues to be ruled out. ROC-RK3328-CC (Renegade) has both dedicated Gigabit Ethernet and dedicated USB 3.0 so it can deliver an order of magnitude more throughput.

The most horrifying aspect of the Raspberry Pi 3 Model B+ is the power consumption. They’ve learned the wrong lesson from ASUS Tinker Board, Orange Pi, et al. While the new PMIC addressed the voltage drop issues, power consumption shot up 50% for marginal increases in performance. In our previous guess of the Raspberry Pi Foundation’s plans, we assumed Broadcom would help make a power efficient Cortex-A35 design. Instead, BCM2837B0 went in the exact opposite direction.

In our CPU burn tests, the board consumed nearly 1.8A without any peripheral or screen connected. This is at the borderline of the MicroUSB power spec and will un-doubted create new power related headaches for many end-users. Most cell phone power supplies simply will not work for this board.

It would be fair to say that the Raspberry Pi 3 Model B+ will not be winning any performance per watt benchmarks especially compared to the super fast and efficient Le Potato board. However, it is a significant step in the right direction compared to its predecessor. The hardware designers have addressed quite a few long-standing issues and we expect the next generation Raspberry Pi 4 to further amortize design issues.

  1. The new integrated heat spreader (IHS) will allow the Raspberry Pi 3 Model B+ to sustain performance for longer and perform more reliably than the previous Model B. It will help the temperature sensor adequately throttle performance when a specific area of the chip becomes too hot and extend the useful life of the board specially in industrial conditions.
  2. The new WiFi/Bluetooth module performs with excellence. It also uses a module design which saves companies from having to go through expensive radio certification process. In our tests, the WiFi performance on the 5GHz band exceeded performance of the Model B on the 2.4GHz band by five times.
  3. The power delivery and management IC has eliminated the voltage drop across the previous poorly-designed power delivery circuit that was causing power warnings with compliant power supplies. While the added power consumption exacerbates the problem, we still feel that this is a step in the right direction.

You can find all of the performance data that we aggregated on this Google Sheet.

Posted on

Libre Computer CC Boards Comparison

Ever want to compare features of our boards to know what the differences are? Want to compare our Tritium, Le Potato, and Renegade boards with newly released popular boards like the Raspberry Pi 3 Model B+ and ASUS Tinker Board S?

We have just made it super easy for you with our spreadsheet. This covers hardware features found on the boards. We will throw together another spreadsheet with software and performance numbers for each board in the future.

Posted on

First Preview Image for ROC-RK3328-CC (Renegade)

We are happy to announce the first preview image for the ROC-RK3328-CC (Renegade) board that was released on Indiegogo courtesy of the Firefly team.

You can find the latest downloads for ROC-RK3328-CC on the product page’s Downloads section.

The first image is based on Rockchip’s Linux 4.4 LTS kernel running Ubuntu 16.04 LTS. It currently does not offer Mali 3D acceleration or hardware codec support.

Android will be coming within the next two weeks.

Once Ubuntu 18.04 is released, we will begin work on a repository for bootloaders and kernels housed in deb files so that bootstrapping images will be easy for all of our boards. Once that infrastructure is in place, non-preview images for our boards will be released. Updating bootloaders and kernels will be as simple as an apt-get.

Posted on

Retro Gaming on AML-S905X-CC with Lakka!

One of the most popular uses for single board computers is playing retro games. AML-S905X-CC now has a Lakka image (Thanks kszaq for the tip and the Lakka team for their great work!) If you don’t know what Lakka is, it is basically one of two popular RetroArch distros, the other being RetroPie. Lakka is built on top of LibreELEC and has a very friendly UI that lets you dive into retro gaming very quickly. Hopefully we get formal support soon but we are very excited to have this feature.

AML-S905X-CC is one of our fastest low cost and low power platforms. It should run emulators significantly faster than the Raspberry Pi 3. Please try it out and let us know your thoughts!

Posted on

AML-S905X-CC Mainline Linux Preview Image 7

After much ado, the AML-S905X-CC ethernet issue has finally been resolved. This images has the following fixes/features:

  • Swap partition generation (1GB-2GB in size determined by SD card size)
  • Fixed ethernet EEE causing link drop
  • Updated to Linux kernel 4.14.11
  • Overlay support in the Linux kernel
  • Zswap for larger memory foot-print applications

Issues still outstanding for official image release:

  • shutdown/suspend/wakeup
  • add kernel, u-boot, and board specific binaries into deb files
  • add repository to apt for board support deb files
  • display pipeline support
  • wayland support
  • codec acceleration support
  • overlay auto-loading in u-boot
  • boot device detection and selection
  • eMMC support

The image release can be downloaded here.