Archive

Posts Tagged ‘openwrt’

GnuBee Personal Cloud 1 Low Cost Linux NAS Supports Up to Six 2.5″ SATA Drives (Crowdfunding)

March 23rd, 2017 39 comments

Networked Access Storage (NAS) with a large number of SATA bays usually cost several hundreds dollars up to thousands of dollars depending on the features set and performance, but there’s a new a project called GnuBee Personal Cloud 1, or GB-PC1, that delivers a MIPS Linux system supporting up to six 2.5″ SATA drives for less than $200.

GB-PC1 NAS specifications:

  • ProcessorMediaTek MT7621A dual core, quad thread processor @ 880 MHz, overclockable to 1.2 GHz
  • System Memory512 MB DDR3
  • Storage – micro SD card slot tested up to 64 GB, 6x 2.5” SATA HDD or SSD
  • Connectivity – Dual Gigabit Ethernet
  • USB – 1x USB 3.0 port, 2x USB 2.0 ports
  • Serial port – 3-pin J1 connector or 3.5 mm audio-type jack
  • Power – 12 VDC @ 3 A via 5.5 mm x 2.1 mm, center-positive barrel jack
  • Dimensions –  21.6 cm (L) x 7 cm (W) x 14 cm (H)
  • Weight – ~210 g (without drives)

The case is comprised of two anodized aluminum side plates assembled with six threaded brackets and screws, and comes with 24 drive screws (four per drive).

The NAS supports Debian, OpenMediaVault, LEDE, as well as the lesser-known (at least to me) LibreCMC distribution. Source code including Linux 4.9 and U-boot, some documentations, as well as the BoM & schematics (PDF) can be found on Github.  Potential applications include network storage and backup, file server,home media server, download server, web server, or remotely accessible private cloud.

A comparison table has also been provided by the developer with GB-PC1, QNAP TS-431 ($294.22 on Amazon US) and Synology DS416slim ($289.99 on Amazon US).

Click to Enlarge

TS-431 might have an implicit price advantage with support for 3.5″ SATA drives, as you may need less 3.5″ drives to achieve the same amount of storage as with 2.5″ drives. One clear advantage of GB-PC1 is that you should have better control over the software than the two competing commercial solution. One clear disadvantage however is the mechanical design, as GB-PC1 has been designed to offer as low a cost as possible.

GB-PC1 launched on Crowdsupply a few days ago with the goal of raising at least $75,000. Rewards start at $168 for a diskless GB-PC1, but you may also want to add $19 to get a 12V/3A power supply, and potential $6 for a 2 GB micro SD card preloaded with Debian. Shipping is free to the US, and $12 to the rest of the world, with delivery planned for August 2017.

Via Orange Pi’s Facebook Group

Beelink SEA I Android TV Box, and HDMI Recorder Review – Part 1: Unboxing and Teardown

February 23rd, 2017 12 comments

Realtek RTD1295 SoC is so far found in devices running Android & OpenWrt, and equipped with an HDMI input port for recording, PiP, and UDP broadcasting. I have already reviewed Zidoo X9S with an external SATA port, and Eweat R9 Plus with a 3.5″ SATA bay, and I’ve now received Beelink SEA I offering another option thanks to 2.5″ SATA bay, and a lower price of $98.99 and up using coupon GBSEA16 with the 2GB/16GB version, or GBSEA32 with the 2GB/32GB version. As usual, I’ll start with some photos and a teardown in the first part of the review, before testing the firmware in more details.

Beelink SEA I Unboxing Photos

I’ve received the box in the retail package below showing some of the features like 4K video playback, picture-in-picture thanks to the HDMI input, and supports for games and apps.

Beelink SEA I comes with either 16GB or 32GB eMMC flash for storage, and I received the 16GB version.

The box ships with a 12V/1.5A (18 Watts) power supply, anHDMI cable, an IR remote control with IR learning function, and a short user’s manual.

Click to Enlarge

Contrary to its competitors which are all equipped with a metal case, SEA I comes in a plastic case, slightly wider than typical TV boxes to accommodate for the 2.5″ SATA bay.

Click to Enlarge

The front panel includes an LCD display, an IR window, and power LED, one of the side comes with a USB 3.0 port, a USB 2.0 host port, and an SD card slot, while the rear panel features one HDMI 2.0 output, one HDMI 2.0 input, a Gigabit Ethernet port, optical S/PDIF, and the power jack.

Click to Enlarge

If you want to insert an hard drive, you can do so by turning the box around, pushing out the cover, and inserting a 2.5″ hard drive up to 6TB in the slot.

It’s very easy to do, and does not require any tools.

Beelink SEA I Teardown

In order to open the device, we’ll need to remove the two rubber pads at the bottom of the case, loosen the two screws underneath, and use some ridig plastic tool to pop out the bottom cover.

Click to Enlarge

There’s no much to see on the back side of the PCB, so we can loosen 6 screws, then pull out the board around the LCD area in order to take it out from the plastic enclosure. We can see cooling is achieved with a thermal pad placed on top of RTD1295DD SoC and stuck on a metal shield, which is then in contact with another thermal pad placed on top of a thick metal plate. We’ll have to see how effective it is during testing…

Click to Enlarge

The company used a 16GB Samsung KLMAG1JENB-B041 eMMC 5.1 flash for storage with 285/40 MB/s read/write sequential performance, and 8K/10K random R/W IOPS, so they did not cut costs on that part, since the theoretical numbers are pretty good. The board also comes with two Samsung K4A8G165WB-BCRC DDR4 SDRAM  chips (2GB RAM). Networking is implemented with an 802.11ac and Bluetooth 4.0 LE module based on Realtek RTL8821AU, and H2403N transformer for Gigabit Ethernet connectivity. There’s also a chip marked S342 2227, but I’m unclear what it is for, maybe some sort of PMIC. Beelink SEA I is also one of the rare TV boxes with an RTC battery, and if you’re interested in working on the board, for example for RTD1295 mainline Linux kernel, the serial console is clearly marked on an unpopulated header on the right of “Beelink” silkscreen.

The front panel display is controlled via “AIP1618E0” display controller, but I could not find any references online.

I’d like to thank Beelink for sending the review sample. If you are interested in the device, you could purchase it on GearBest as mentioned in the introduction, while if you plan to purchase in quantities, you may want to contact Beelink directly instead.

Dragino OLG01 Outdoor Single Channel LoRa Gateway Runs OpenWrt, Supports Passive PoE

February 14th, 2017 9 comments

Dragino Technology, a Shenzhen based startup focusing on the Internet of Things, had already designed LoRa shields & Hats for Arduino & Raspberry Pi boards which can be useful for LoRa nodes, but the company has now launched Dragino OLG01 LoRa gateway running OpenWrt that communicates with nodes over LoRa, and to the cloud using WiFi, Ethernet, or 3G/4G.

Dragino OLG01 specifications:

  • WiSoC – Atheros AR9331 MIPS processor @ 400MHz
  • System Memory – 64MB RAM
  • Storage – 16MB flash
  • MCU – Atmel ATMega328P AVR MCU with 32KB flash, 2KB SRAM
  • Connectivity
    • 802.11 b/g/n WiFi with antenna
    • 2x 10/100M Ethernet with support for passive PoE
    • Optional 3G/4G module connected to internal USB socket (TBC)
    • Semtech SX1276/78 LoRa wireless module + SMA connector (antenna not provided) up to 5~10 km range
  • USB – 1x USB 2.0 host port
  • Power Supply – 12V DC power jack or PoE

Three models are offered with 433, 868, or 915 MHz frequencies: OLG01 433, OLG01 868, and OLG01 915. The weatherproof gateway is designed to be wall mounted, and ships with a 12V power supply, and a PoE injector. OLG01 runs OpenWrt, and documentation can be found on Dragino Wiki, source code on Dragino Github account. The gateways supports auto-provisioning, network firmware update, includes a web server and management UI. The Atmel MCU can be programmed using the Arduino IDE. Note that most of the documentation refers to LG01 instead of OLG01, but both gateways appears to be based upon the same hardware, except OLG01 is weather-proof, and suitable for outdoor use.

Potential application include wireless alarm and security systems, home and building automation, automated meter reading, industrial monitoring and control, long range irrigation systems, GPS tracker,etc… some of which are described in Dragino video below.

You’ll also find some more information on the product page, including a datasheet and a detailed user manual. Dragino OLG01 can be purchased for $70 on Tindie. If you don’t need PoE, nor a weatherproof case, LG01 gateway will be cheaper at $56.

Thanks to Elia for the tip

Baikal T1 BFK 1.6 MIPS Development Board Tested with OpenWrt

February 10th, 2017 4 comments

Baikal Electronics is a Russian fabless semiconductor company specializing in ARM and MIPS-based SoC, and we’ve already covered their Baikal T1 MIPS SoC announcement, as well as Tavolga Terminal TP-T22BT Debian 8 All-in-One Computer based on the processor. The company also have Baikal T1 BFK 1.6 development board, which does not appear to be publicly available yet, but one member of Habrahabr.ru forums got hold of one sample, and tested the OpenWrt SDK in Debian 8 host computer.

First, we’ll have a look at the hardware they received.

I don’t have the full specs of the board, but we’ll learn a little more below, in the meantime we can see two USB ports, Gigabit Ethernet ports, a 10GbE SFP cage, an mPCIe slot (I think), and two DB9 connector, as well as a bunch of other headers and connectors with SATA, GPIO, UART, I2C, SPI…

I’ve then downloaded Baikal T1 BSP for Linux, and installed it in Ubuntu 16.04:

The good part is that everything appears to be in English, as the output from the installer shows:

Creating directory baikal
Verifying archive integrity… All good.
Uncompressing BAIKAL-T SoC BSP Pack. Version 4.08 build 84 (Fri Nov 11 14:50:17 MSK 2016)  100%

BAIKAL ELECTRONICS BAIKAL-T1 BFK BOARD BSP PACK
———————————————–
This package contains Board Support Package for Baikal Electronics BFK board including Software Development Kit (SDK) for Baikal-T series SoCs.
It provide our customers with a comprehensive starting point for their Linux development efforts on MIPS32 platform. These packages are developed and tested to support 34K, 74K and P5600 MIPS processors. This SDK is tested for use with a given processor and its supporting development system, ensuring an operational toolchain, kernel and specific peripherals that are ready to use together within a fixed configuration for specific hardware reference platforms.

Baikal Linux SDK typically include Linux kernel, device drivers, libraries, simulator, and GNU Tools like compilers, linkers, etc. The documentation will provide detailed information on the version of the kernel, glibc, gcc, etc., as well as information about simulator is included within a specific SDK.

For more information about BSP and Quick Start Guide please read README file.
For detailed information please read document “Software Development Kit for Baikal-T platform”.

That’s the directory structure of the BSP:

I don’t have the board, so I’m not going to go through all steps, but instead summarize what the user in the forum did after that.

  1. Create image to be flash with the board using build-boot-img.sh script
  2. Flash the image with dfu-util after having connected the board to your computer via USB.
  3. The board should now boot to a serial console, but you’ll want to get OpenWrt 15.05 source code, patch it, build the rootfs, and flash it again with dfu-util.
  4. Your Baikal T1 board should now be running OpenWrt

We can also get a few more details about the MIPS P5600 processor.

The reviewer also tested Gigabit performance using iperf, and data could be transferred at 830 Mbps. A Quick look at the source in the BSP reveals the Linux 4.4.24 is used on the board, together with Uboot 2014.10.

I could not find ways to buy the board online easily even in Russian. But if you represent a company interested in the solution, you might be able to get more information, and/or purchase the board by contacting the company via Baikal T1 product page.

Thanks to Leon for the tip.

Barionet 1000 DIN Rail Programmable I/O Controller Runs OpenWrt

February 9th, 2017 1 comment

Barix, a Swiss company specializing IP- based communications and control technology, has introduced a new Barionet programmable I/O controller with Barionet 1000, the first model of the company to run Linux, and in this case OpenWrt, and to offer WiFi and USB connectivity.

Barionet 1000 specifications:

  • Processor – Undisclosed
  • System Memory – 64MB RAM
  • Storage – 16MB flash
  • Connectivity – 10/100M Ethernet, Wi-Fi 802.11 b/g/n; IPv4 & IPv6 support.
  • USB – 2x USB Host Ports
  • Serial – 1x DB9 RS-232 serial port
  • User programmable I/Os
    • 2x relay outputs (30 VDC max, 5 A)
    • 4x open collector digital outputs (4 x 24 VDC, 0.3 A)
    • 8x contact closure inputs (0 – 15 V), including 4x 12-bit analog inputs (0 – 15 V)
    • 1-wire interface for 18DS20 temperature sensor
  • Misc – 11 LED status indicators
  • Power Supply – 9 to 30V DC (2.5 Watts max)
  • Dimensions –  103mm x 85mm x 31mm; plastic DIN Rail Case
  • Temperature Range – Operating: 0 to +50°C; Storage: 0 to +70°C
  • Certifications – CE (A&B), RTT&E, FCC (A&B), RoHS

They also have another similar model, named Barionet 1100, which adds RS-485, an RTC clock, Wiegand capability, and “future optional internal interface” for LoRa. Hardware & software documentation appears to be missing for now, but they’ll certainly update their Wiki, like they did for their previous models.Typical applications for the system include access/door control, environmental monitoring, photovoltaic power management, temperature monitoring & logging, and HVAC control.

Pricing and availability of Barionet 1000 have not been announced, but for reference, the older Barionet 50 is currently selling for $189, so the new model should cost more with the extra features. Barionet is currently showcasing their products at ISE 2017 (Integrated Systems Europe) in Amsterdam, Stand 8-N270. Further details may be found on the product page.

Via LinuxGizmos

Embedded Linux Conference & OpenIoT Summit 2017 Schedule

February 4th, 2017 1 comment

The Embedded Linux Conference 2017 and the OpenIoT Summit 2017 will take place earlier than last year, on February  20 – 23, 2017 in Portland, Oregon, USA. This will be the 12th year for ELC, where kernel & system developers, userspace developers, and product vendors meet and collaborate. The schedule has been posted on the Linux Foundation website, and whether you’re going to attend or not, it’s always informative to check out the topics.

So as usual, I’ll make a virtual schedule for all 5 days.

Monday, February 20

For the first day, the selection is easy, as choices are limited, and the official first day it actually on Tuesday. You can either attend a full-day paid training sessions entitled “Building A Low Powered Smart Appliance Workshop“, and the only session that day:

  • 14:30 – 15:20 – Over-the-air (OTA) Software Updates without Downtime or Service Disruption, by Alfred Bratterud, IncludeOS

Millions of consumers are at risk from security vulnerabilities caused by out-of-date software. In theory all devices should update automatically, but in practice, updating is often complicated, time-consuming and requires manual intervention from users. IncludeOS is a unikernel operating system that enables over-the-air (OTA) software updates of connected devices without downtime or service disruption.

The talk starts with a brief introduction to unikernels, their capabilities and how they can be very beneficial for IoT products from security, performance and operational perspectives. Then we give an overview of the IncludeOS Live Update functionality, which we use to demonstrate an atomic update of a device using Mender.io.

Tuesday, February 21

  • 10:30 – 11:20 – Bluetooth 5 is here, by Marcel Holtmann, Open Source Technology Center, Intel

The next version of Bluetooth has been released just a few month ago. This presentation gives an introduction to Bluetooth 5 and its impacts on the ecosystem. It shows new and exciting use cases for low energy devices and IoT with the focus on Linux and Zephyr operating systems.

With Bluetooth 5, the wireless technology continues to evolve to meet the needs of the industry as the global wireless standard for simple and secure connectivity. With 4x range, 2x speed and 8x broadcasting message capacity, the enhancements of Bluetooth 5 focus on increasing the functionality of Bluetooth for the IoT. These features, along with improved interoperability and coexistence with other wireless technologies, continue to advance the IoT experience by enabling simple and effortless interactions across the vast range of connected devices.

  • 11:30 – 12:20 – Embedded Linux Size Reduction Techniques, by Michael Opdenacker, Free Electrons

Are you interested in running Linux in a system with very small RAM and storage resources? Or are you just trying to make the Linux kernel and its filesystem as small as possible, typically to boot faster?

This talk will detail approaches for reducing the size of the kernel, of individual applications and of the whole filesystem. Benchmarks will you show how much you can expect to save with each approach.

  • 14:00 – 14:50 – Moving from IoT to IIoT with Maker Boards, Linux, and Open-Source Software Tools, by Matt Newton, Opto 22

In this session, developers will learn how to use the open-source tools, maker boards, and technology they’re already familiar with to develop applications that have the potential to deliver a massive positive impact on society. There are billions of devices–sensors, I/O, control systems, motors, pumps, drives–siloed behind proprietary control and information systems, waiting to be tapped into. This workshop is geared towards teaching the developer community how to use the tools they’re already familiar with to access, monitor, and manage these assets to create a potentially huge positive impact on our way of life.

  • 15:00 – 15:50 – Debugging Usually Slightly Broken (USB) Devices and Drivers, by Krzysztof Opasiak, Samsung R&D Institute Poland

USB is definitely the most common external interface. Millions of people are using it every day and thousands of them have problems with it. Driver not found, incorrect driver bound, kernel oops are just examples of common problems which we are all facing. How to solve them or at least debug? If you’d like to find out, then this talk is exactly for you!

We will start with a gentle introduction to the USB protocol itself. Then standard Linux host side infrastructure will be discussed. How drivers are chosen? How can we modify matching rules of a particular driver? That’s only couple of questions which will be answered in this part. Final part will be an introduction to USB communication sniffing. Krzysztof will show how to monitor and analyze USB traffic without expensive USB analyzers.

  • 16:20 – 17:10 – SDK in the Browser for Zephyr Project, by Sakari Poussa, Intel

Starting a development for embedded IoT system can be a tedious task, starting with the tools and SDK installations. You also need to have proper operating system, cables and environment variables set up correctly in order to do anything. This can take hours if not days. In this tutorial, we present an alternative, fast and easy way to start IoT development. All you need is your Zephyr board, USB cable and Web Browser. The Zephyr will be running JavaScript Runtime for Zephyr including a “shell” developer mode and Web USB. The Browser has the IDE where you can edit and download code to your board. No compiling, flashing or rebooting is required. During the tutorial, we have few boards available and participants can start developing applications for zephyr in 5 minutes.

  • 17:20 – 18:10 – Fun with Zephyr Project and BBC micro:bit, by Marcel Holtmann, Open Source Technology Center, Intel

This presentation shows how Zephyr empowers the BBC micro:bit devices and its Bluetooth chip to do fun things.

  • 18:15 – 19:00 – Yocto Project & OpenEmbedded BoF, by Sean Hudson, Mentor

Got a comment, question, gripe, praise, or other communication for the Yocto Project and/or OpenEmbedded technical leaders? Or maybe you just want to learn more about these projects and their influence on the world of embedded Linux? Feel free to join us for an informal BoF.

Wednesday, February 22

  • 10:40 – 11:30 – Journey to an Intelligent Industrial IOT Network, by Giuseppe (Pino) de Candia, Midokura

There are 66 million networked cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? With the use of open systems, open networking, open IOT platforms of course!

Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud while non-essential data is recycled. The system captures all flow information, current and historical.

Pino will draw from real IIOT use cases and discuss the variety of operations and maintenance tool to support proactive policy-based flow analysis for edge computing or fog nodes enabling IT and OT end to end visibility from a network perspective.

  • 11:40 – 12:30 – SecurityPI: IronClad your Raspberry Pi, by Rabimba Karanjai

Raspberry Pi has garnered huge interest in last few years and is now one of the most popular Linux boards out there sparking all kinds of DIY projects. But most of these function with the default settings and connect to the Internet. How secure is your Pi? How easy is it for someone to take over and make it part of a botnet or sneak peek on your privacy?

In this talk Rabimba Karanjai will show how to harden the security of a Raspberry Pi 3. He will showcase different techniques with code examples along with a toolkit made specifically to do that. This cookbook will harden the device and also provide a way to audit and analyze the behavior of the device constantly. After all, protecting the device finally protects us all, by preventing another dyndns DDOS attack.

  • 14:00 – 14:50 – IoTivity-Constrained: IoT for Tiny Devices, by Kishen Maloor, Intel Corporation

The IoT will be connected by tiny edge devices with resource constraints. The IoTivity-Constrained project is a small-footprint implementation of the Open Connectivity Foundation’s (OCF) IoT standards with a design that caters to resource-constrained environments. It is lightweight, maintainable and quickly customizable to run on any hardware-software deployment.

This talk will present IoTivity-Constrained’s architecture, features, APIs, and its current integration with a few popular real-time operating systems. It will end with a discussion of IoTivity-Constrained’s adaptation for the Zephyr RTOS.

  • 15:00 – 15:50 – RIOT: The Friendly Operating System for the IoT (If Linux Won’t Work, Try RIOT), by Thomas Eichinger, RIOT-OS

This presentation will start with RIOT’s perspective on the IoT, focusing on CPU- and memory-constrained hardware communicating with low-power radios. In this context, similarly to the rest of the Internet, a community-driven, free and open source operating system such as RIOT is key to software evolution, scalability and robustness. After giving an overview to RIOT’s overall architecture and its modular building blocks, the speaker will describe in more detail selected design decisions concerning RIOT’s kernel, hardware abstraction and network stack. Furthermore, the talk will overview the development and organizational processes put in place to help streamline the efforts of RIOT’s heterogeneous community. The presentation will end with an outlook on upcoming features in RIOT’s next releases and longer-term vision.

  • 16:20 – 17:10 – Graphs + Sensors = The Internet of Connected Things, by William Lyon, Neo4j

There is no question that the proliferation of connected devices has increased the volume, velocity, and variety of data available. Deriving value and business insight from this data is an ever evolving challenge for the enterprise. Moving beyond analyzing just discrete data points is when the real value of streaming sensor data begins to emerge. Graph databases allow for working with data in the context of the overall network, not just a stream of values from a sensor. This talk with cover an architecture for working with streaming data and graph databases, use-cases that make sense for graphs and IoT data, and how graphs can enable better real-time decisions from sensor data. Use cases covered will include data from oil and gas pipelines and the transportation industry.

Thursday, February 23

  • 9:00 – 9:50 – Android Things: High Level Introduction, by Anisha Dattatraya & Geeta Krishna, Intel Corporation

An overview of the basic concepts behind Android things and its structure and components is presented. Upon completion of this session, you should have a good overview of how Android Things brings simplicity to IoT software and hardware development by providing a simple and secure deployment and update model. This presentation provides the context needed for the Android Things Tutorial and other deep dive sessions for Android Things.

  • 10:00 – 10:50 – 2017 is the Year of the Linux Video Codec Drivers, by Laurent Pinchart, Ideas on Board

Codecs have long been the poor relation of embedded video devices in the Linux kernel. With the embedded world moving from stateful to stateless codecs, Linux developers were left without any standard solution, forcing vendors and users to resort to proprietary APIs such as OpenMAX.

Despair no more! Very recent additions to V4L2 make it possible to support video codecs with standard Linux kernel APIs. The ChromeOS team has proved that viable solutions exist for codecs without resorting to the proprietary options. This presentation will explain why video codecs took so long to properly support, and how the can be implemented and used with free software and open APIs.

  • 11:10 – 12:00 – Embedded Linux – Then and Now at iRobot, by Patrick Doyle, iRobot

Mr. Doyle will review the history of the use of embedded Linux at a commercial company (iRobot) and discuss the challenges faced (and overcome) then and now. While home routers and WiFi Access Point developers have enjoyed the benefits (and risks) of deploying Linux based products, that has not always been the case for other products. With the advent of low cost cell phone processors and vendor support for Linux, it is now possible to embed a Linux based solution in a consumer retail product such as a vacuum cleaner, minimizing risk and development time in the process.

  • 12:10 – 13:00 – Mainline Linux on AmLogic SoCs, by Neil Armstrong, BayLibre

Inexpensive set-top boxes are everywhere and many of them are powered by AmLogic SoCs. These chips provide 4K H.265/VP9 video decoding and have fully open source Linux kernel and U-boot releases. Unfortunately most of the products based on these devices are running an ancient 3.10 Android kernel. Thankfully AmLogic has put a priority on supporting their chips in the mainline Linux kernel.

Neil will present the challenges and benefits to pushing support for these SoCs upstream, as well as the overall hardware architecture in order to understand the Linux upstreaming decisions and constraints. He will also detail the future development plans aiming to offer a complete experience running an Upstream Linux kernel.

  • 14:30 – 15:20 – OpenWrt/LEDE: When Two become One, by Florian Fainelli, Broadcom Ltd

OpenWrt is a popular Linux distribution and build system primarily targeting the Wi-Fi router/gateway space. The project has been around for more than 12 years, but has recently experienced a schism amongst the developers over various issues.  This resulted in the formation of the LEDE project.  This split has caused confusion among the community and users. This presentation will cover what OpenWrt/LEDE projects are, what problems they are solving in the embedded Linux space, and how they do it differently than the competition. We will specifically focus on key features and strengths: build system, package management, ubus/ubox based user space and web interface (LuCI). We will demonstrate a few typical use cases for the audience. Finally, the conclusion will focus on the anticipated reunification of the two projects into one and what this means for the community and the user base.

  • 15:30 – 16:20 – Unifying Android and Mainline Kernel Graphics Stack, by Gustavo Padovan, Collabora Ltd.

The Android ecosystem has tons of out-of-tree patches and a good part of them are to support Graphics drivers. This happened because the Upstream Kernel didn’t support everything that is needed by Android. However the Mainline Graphics Stack has evolved in the last few years and features like Atomic Modesetting and Explicit Fencing support are making the dream of running Android on top of it possible. In other words, we will have Android and Mainline Kernels sharing the same Graphics stack!

This talk will cover what has been happening both on Android and Mainline Graphics Stacks in order to get Android to use the Upstream Kernel by default, going from what Android have developed to workaround the lack of upstream support to the latest improvements on the Mainline Graphics Stack and how they will fit together.

  • 16:30 – 17:20 – Developing Audio Products with Cortex-M3/NuttX/C++11, by Masayuki Ishikawa, Sony

Sony released audio products with Cortex-M3 in late 2015. Considering development efficiency, code reusability, feature enhancements and training costs, we decided to port POSIX-based open source RTOS named NuttX to ON Semiconductor’s LC823450 by ourselves, modified the NuttX for fast ELF loading, implemented minimum adb (Android debug bridge) protocols for testing purpose, DVFS in autonomous mode with a simple CPU idle calculation, wake_lock and stack trace which are popular in Linux/Android worlds. Middleware and Applications were developed in C++11 with LLVM’s libc++ which are also popular for large software systems. To debug the software, we implemented NuttX support for OpenOCD so that we can debug multi threaded applications with gdb. In addition, we used QEMU with the NuttX to port bluetooth stack and in-house GUI toolkit and finally got them work before we received LC823450 FPGA.


That’s all. I had to make choice, and did not include some sessions I found interested due to scheduling conflicts such as “Comparing Messaging Techniques for the IoT” by Michael E Anderson, The PTR Group, inc, and “Improving the Bootup Speed of AOSP” by Bernhard Rosenkränzer, Linaro.

You’ll need to register and pay an entry fee if you want to attend the Embedded Linux Conference & OpenIoT Summit:

  • Early Registration Fee: US$550 (through January 15, 2017)
  • Standard Registration Fee: US$700 (January 16, 2017 – February 5, 2017)
  • Late Registration Fee: US$850 (February 6, 2017 – Event)
  • Academic Registration Fee: US$175 (Student/Faculty attendees will be required to show a valid student/faculty ID at registration.)
  • Hobbyist Registration Fee: US$175 (only if you are paying for yourself to attend this event and are currently active in the community)

Beelink SEA TV Box with Realtek RTD1295, HDMI Input and Internal SATA Bay Sells for $105 and Up

January 24th, 2017 12 comments

I’ve already reviewed two Android TV boxes powered by Realtek RTD1295 processor, namely Zidoo X9S and EWEAT R9 Plus. They are quite interesting devices as beside supporting video & audio playback nicely (minus 4K H.264 @ 30fps), they also serve as a personal NAS thanks to their SATA interface and OpenWrt operating system running alongside Android, as well as a HDMI recorder and streamer thanks to the HDMI input. Zidoo firmware is a little better, but it only comes with external SATA, while EWEAT R9 Plus comes with a neat internal 3.5″ SATA bay inside a metal case. The downside is that it’s quite expensive at $200 shipped. If you’d like a Realtek RTD1295 solution with a SATA bay, but would like something more cost effective, Beelink SEA TV box with might be for you.

Beelink SEA specifications:

  • SoC – Realtek RTD1295 quad core ARM Cortex-A53 processor @ 1.4 GHz with ARM Mali-T820MP3
  • System Memory – 2 GB DDR4
  • Storage – 16 or 32 GB eMMC flash + SD slot up to 128GB + 2.5″ SATA bay supporting up to 6TB SATA III drives with either 7.5 or 9.5mm thickness
  • Video I/F –  HDMI 2.0a output with HDR, CEC, and HDCP 2.2 support, AV composite output, HDMI 2.0 input
  • Audio I/F – HDMI, optical S/PDIF, AV port (stereo audio)
  • Connectivity – Gigabit Ethernet, dual band 802.11 b/g/n/ac WiFi, Bluetooth 4.0
  • USB – 1x USB 2.0 port, 1x USB 3.0 port
  • Misc – Power LED, RTC + battery
  • Power Supply –  12V/1.5A
  • Dimensions – 188 x 119 x 20mm

Like its competitors, the device runs Android 6.0. There’s no mention of OpenWrt at all, but I’d be surprised if they removed it from the firmware. HDMI input allows video recording, video streaming, & PiP function from a separate video source. The device ships with an IR remote control, an HDMI Cable, a power adapter, and a user’s manual in English.

Beelink SEA is now listed for pre-order on GearBest for $104.99 with 2GB RAM/16GB storage, and $114.99 in 2GB/32GB configuration. Shipping is expected to start on March 1st… You may find a few more details on Beelink SEA product page.

Getting Started with Onion Omega2+ LEDE WiFi IoT Board and Expansion Dock

January 16th, 2017 53 comments

Onion Omega2 LEDE (OpenWrt fork) WiFi board is powered by Mediatek MT7688 MIPS SoC, targets IoT projects, and sells for as low as $5. There are actually two versions: Omega2 with 64MB RAM, 16MB flash, and Omega2+ with 128MB RAM, 32MB flash and a micro SD slot. Onion sent me the latter for review, together with an expansion dock that allows powering up the board though USB , and adds a USB host port, an RGB LED, buttons, and access to GPIO via a female header. In this quick start guide, I’ll start by taking some unboxing pictures, and then report my experience following the documentation to configure the board, blink the RGB LED, and control a LED on a breadboard using a GPIO from the header.

Onion Omega2+ Unboxing

I received the two boards in their respective package, and which are both stored in anti-static bags.

Click to Enlarge

Click to Enlarge

Let’s check Onion Omega2+ board first. The top includes a chip antenna and an u.FL connector for an external antenna, as well as the main components covered by a shield with some info like FCC ID, and the MAC address with the last four digits (hexits?) in bold since they are used to access the board. The bottom of the board are two rows of headers, and a micro SD card slot. There’s also a footprint for another header or connector, but I could not find out the details.

Click to Enlarge

Click to Enlarge

Next up is the dock. We have a 2x 15-pin female header with clear marking for the pins that include power signals, GPIOs, I2C, UART, and USB.

Click to Enlarge

Click to Enlarge

The button on the top is for power, the one at 45 angle is the reset button, and we also have a micro USB port for power, a USB port for storage, an RGB LED, and the header for Onion Omega2 board.

Click to Enlarge

Click to Enlarge

Plugging Omega2 into the dock is very easy, and the only thing you have to check is that it is inserted correctly.

Onion-Omega2-vs-LinkIt-Smart-7688Onion Omega2+ is not my first Mediatek MT7688 board, as I’ve reviewed LinkIt Smart 7688 too, and took side-by-side picture of both boards for comparison. Omega2+ is smaller, but LinkIt Smart board already include a micro USB port for power.

Initial Setup for Onion Omega2 and Expansion Dock

I normally test the documentation as much as I test the board, and after a web search, I ended up on that Getting Started page. However, it was for Onion Omega, the first version of the board introduced in 2015, and while the instructions are similar, they are not quite the same. Finally, I found the actual Omega2 Wiki, and could successful complete the setup with some efforts.

I’ll be using a computer running Ubuntu 16.04 to access the board, but it also works with Windows with Bonjour Service, and Mac OS X.

The Zeroconf services is needed to play with the board unless you access the board directly with its IP, but it’s normally already installed in Linux distriutions, so we are good to go. First we need to connect a micro USB to USB cable to a power source like the USB port of your computer, and turn on the board with the power switch.

Click to Enlarge

Click to Enlarge

At first both the RGB LED on the dock and Omega2+ LED will turn on for a short time, after which the RGB LED will turn off, and Omega2 LED will blink for a few seconds, and once the LED stops blinking and remains solid the boot is done.

Omega-Onion2-Access-Point

You should then see an new “Omega-XXXX” access point in your WiFi networks, where XXXX is the last digits of your MAC address shown on bold on the board. We now need to connect to the access point using password: 12345678

Omega2 Web Configuration

One it’s done, open a web browser and go ti http://192.168.3.1 or http://omega-XXXX.local/ to access Omega2 Setup Wizard.

Omega-Onion2-Setup-Wizard

Click Start to login with the default credentials (username: root ; password:onioneer), and the next page will let you connect the board to your WiFi router.Omega-Onion2-WiFi-Configuration

Selection you ESSID, input you WiFi password. and clikc on “Configure WiFi“. Omega-Onion2-Cloud

The wizard offers you to register your board to the cloud, but this is completely optional, and you could simply select Skip Step to go to the next step (firmware update). But I tried to registered the device to the cloud for this review.Onion-Cloud-RegistrationYou’ll need to provide your name, an email address and a password to register an account first.Onion-Omega2-Cloud-NameYou’ll then be asked for a device name and a description to confirm the registration.Onion-Cloud-Connection-failedSadly this step failed and I got the window above. Clicking on the red cross button did nothing. If I login to the cloud service, I can see the board listed, but detected as offline. I’m not the only one to have this issue, and Onion developers are looking into it.

Onion-Omega2+-Firmware-Update-ConsoleSo instead I went to the next step to upgrade the firmware and install Console web-based virtual desktop.Onion-Omega2-Firmware-Download-StuckThis also failed as the progress bar did not move at all, and I waited for around 20 minutes. I could also see my router’s DHCP server gave an IP address to the board, so it should have been able to connect to the Internet.

Omega2 Command Line Configuration

So I used to backup configuration method, using the command line as explained in the documentation. You just need to SSH the board as root with the same password as in the web configuration (onioneer):

Note Ω-ware firmware version is 0.1.5 b130.

wifisetup allows you to scan the network, and connect the board to your router:

Good. Firmware update failed in the web setup wizard, but we can retry it with oupgrade command line:

The firmware could be downloaded, and it looked like the system rebooted as I lost access to SSH terminal. The LED was still on for a while after it happened, then the LED went off (forever), at least longer than the 15 seconds listed in the documentation, and in that case they explain you need to power cycle the board. I used the power switch on the expansion dock to do so.

The board LED blinked for a pretty long time (maybe 2 minutes), but eventually it stopped and remained solid, and I could login to the board:

The firmware was updated to version 0.1.7 b139, so all good even though the whole setup did not go 100% smoothly. In case something goes really wrong and you can’t access the board at all, you could try to do a Factory Restore by pressing and holding the reset button for 10 seconds then releasing it.

Omega2 LEDE System Info

Since we’re done with the configuration, let’s quickly check some system info:

So we have a relatively recent kernel (Linux 4.4), 24.4MB space available to the user, 125664 KB total memory, and a MIPS 24KEc processor…

Controlling Omega2’s Dock RGB LED (via PWM)

We can start playing with the GPIO on the board starting with the RGB LED on the dock  that should be connected to pin 15, 16 and 17. The documentation explains expled sample can be used for this and we can see the R, G, B hexadecimal values. I want to show red color only, and I set blue and green to zero:

Oops, segfault. Let’s try something else like a pinkish color:

It runs, but the RGB LED remains off. It’s not an hardware problem since the RGB LED turns on at boot time. expled is actually a bash script that can be found in /usr/bin/expled and calls “fast-gpio“program which access GPIOs directly without using sysfs. Maybe it’s another firmware issue.

Controlling Omega2 GPIOs – LED example

In order to play with the expansion header, I connected a 5V LED to a breadboard together with two resistors and a transistor (for 3.3 to 5V conversion), and connected it to pin 1 on the header.

Click to Enlarge

We’ve already seen fast-gpio tools in expled script, but I used another GPIO tools for the LED, namely gpioctl that relies on sysfs.

We first need to set the GPIO pin as an output pin using the dirout command (dirin would set it as an input):

We can now turn the LED on by setting GPIO 1 to HIGH with dirout-high option:

The get command above will check the value of the pin. The LED did turn on as it should, and we can turn it off with dirout-low option:

Success.

If you want to use multiplexed pin with I2C, SPI, UART, PWM, I2S… you’ll need to check out omega2-ctrl program. I have not tried it for this guide to keep it short.

Onion Omega2 and BreadBoards

Many similar small IoT board are designed to fit on a breadboard, but Onion Omega2 board’s header pins are using 2 mm pitch, not 2.5 mm pitch, so they can’t be used with a breadboard directly. Instead, you’d have run wires from the board to the breadboard or purchase a BreadBoard Dock as pictured below.

If you do not have a dock, or breadboard expansion board, you can still power the Omega2 module/board using a 3.3V power source for example with a regulator such as LD1117, or something like YwRobot MB102 breadboard power supply.

If you are interested in getting a board, you may have to wait as while Omega Expansion Dock sells for $14.99 on Onion store, Omega2 boards are not listed yet. For reference, Omega2 board went for $5, and Omega2+ board for $9 on Kickstarter. [Update: While the Kickstarter campaign is now finished, you can still get on Indiegogo for the same price, and that includes shipping].