Archive

Posts Tagged ‘sdk’

RDA Micro RDA8810 Android SDK with Linux & U-boot Source Code for Orange Pi 2G IoT Board Released

April 18th, 2017 22 comments

Orange Pi 2G IoT board was released a couple of weeks ago, shortly followed by Android and Ubuntu images, but since it was not based on Allwinner, but an RDA Micro  8810PL processor, we did not have any source code so far, which can be a real problem for a development board… Shenzhen Xunlong has now managed to upload a 6.7GB Android SDK to MEGA, with the link published via Orange Pi Resources page.

MEGA has a download limit which depends on how much traffic they get at the time, and after 5.3 GB download,  I was asked to register for a PRO account, or wait for four hours before resuming the download. If you want to avoid this limit for any large MEGA download, you can run megadl instead. That’s what I did in Ubuntu 16.04 (remember to escape any special characters with \):

Once the download is done, none of the files have extension, but the first file is a gzip compressed files, while others are just raw data, so I concatenated all 6 files into a gzip file before uncompressing it, at which point I realized it was a tar file too:

The company has made it unnecessary difficult for that part, but I was finally successful, and that’s what the content of the SDK looks like.

Click to Enlarge

The Android SDK  relies on Linux 3.10.62, and I’ve been told while the Android part is quite poor, the Linux part looks better, even though the version is not quite the latest. U-boot source code is also included, and part of the 2G modem code can be found in the modem directory.

I got the news through ParrotGeek1 who plans to rebase the code to Linux 3.10.105, and release a Debian image. He has setup a RDA8810 github account with the Linux kernel. So you’ll have to be patient, or join the fun to get a better Linux image. There’s no clear roadmap for Orange Pi 3G-IoT or 4G-IoT based on other RDA Micro processors, but that would certainly help motivating a few more people if such boards were planned.

Khadas Vim Amlogic S905X Development Board Gets Android 7.1 Firmware and SDK

March 22nd, 2017 1 comment

Khadas Vim is a development board powered by Amlogic S905X quad core processor that officially supports Ubuntu 16.04, OpenELEC and Android 6.0. Shenzhen Wesion Technology , the maker of the board, has now released Android 7.1 firmware image and SDK for the board.

Click to Enlarge

As we’ve seen before Amlogic Android 7.1 SDK still relies on Linux 3.14.29, but Linux 4.4 is also in the works.

If you want to give it a try on your board, download Vim_Nougat_170321.7z directly, or from the firmware download page. The current image installs to the eMMC flash via USB or a bootable micro SD card (Windows methods only), so it will wipe whatever OS you have already on the board.

The firmware is based on the features of their Android 6.0.1 image, but upgraded to Android 7.1.1 with Chrome and Gapps (for Google Play Store support).

Source code for the Android 7.1 SDK can be found via several repositories on Khadas Github account. Once the manifest file is updated, you should be able to follow the instructions to build Android for Khadas Vim board in order to build your own Android 7.1 image from source.

Google Releases Android O Developer Preview with UI & Audio Improvements, Better Performance, etc…

March 22nd, 2017 No comments

Nearly exactly one year after Android N developer preview release, Google has now announced the release of Android O developer preview in order to get feedback from the developer community before the official release of Android 8.0? Oreo? in Q3 2017.

So what’s new so far in Android O? Here are some of the changes:

  • Background activity limits –  Automatic limits on what apps can do in the background for implicit broadcasts, background services, and location updates.
  • Notification channels –  New app-defined categories for notification content for better control from the use, as user may only block or change the behavior from one channel, instead of applying the same behavior to all notifications from a given app. For example, a News app may have notifications for Technology, Sports, Politics, International, etc…
  • Autofill APIs – Platform support for autofill, where users can select an autofill app, similar to the way they select a keyboard app, with the app securely storing  addresses, user names, and even passwords.
  • PIP for handsets and new windowing features – Picture in Picture (PIP) display is now working on phones and tablets, so users can continue watching a video while they’re answering a chat or hailing a car. Other window features include overlay window and multi-display support.
  • Font resources in XML – Apps can now use fonts in XML layouts as well as define font families in XML — declaring the font style and weight along with the font files.
  • Adaptive icons  Icons that can be displayed in different shapes, e.g. round or rounded square based on a mask selected by the device. Animated interactions with the icons are also supported.
  • Wide-gamut color for apps – Android developers of imaging apps can now take advantage of new devices that have a wide-gamut color capable display.
  • Connectivity 
    • Support for high-quality Bluetooth audio codecs such as LDAC codec.
    • Wi-Fi Aware support, aka Neighbor Awareness Networking (NAN), allowing to discover and communicate over WiFi without an Internet access point
    • Extension of ConnectionService APIs to enable third party calling apps integrate with System UI and operate seamlessly with other audio apps.
  • Keyboard navigation –  Better use of “arrow” and “tab” navigation key for systems connected to keyboard such as Chrome OS with Google Play.
  • AAudio API for Pro Audio –  Native API designed for high-performance, low-latency audio.
  • WebView enhancements –  Multiprocess mode enabled by default, and new API for errors and crashes handling.
  • Java 8 Language APIs and runtime optimizations  – New Java Language APIs, such as java.time API. Android Runtime is up to 2x faster on some application benchmarks. 

Google has provided system images for Nexus 5X, Nexus 6P, Nexus Player, Pixel, Pixel C, and Pixel XL devices. You’ll find more details about the preview on Android Developer website.

Categories: Android, Chrome OS Tags: Android, audio, battery, google, oreo, sdk

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)

$79 Digilent OpenScope Open Source Multi-function Programmable Instrument Works over USB and WiFi (Crowdfunding)

February 1st, 2017 7 comments

Digilent OpenScope is an open source, portable, multi-function programmable instrument used for capturing, visualizing, and controlling analog and digital signals, that works with your smartphone or computer over USB or WiFi, and it can also be used in standalone mode as a development board, like you would use an Arduino or Raspberry Pi board.

OpenScope MZ key features and specifications:

  • MCU – Microchip PIC32 MZ (MZ2048EFG124) MIPS Warrior M-class micro-controller @ up to 200 MHz with 2048KB flash, 512 KB RAM
  • External Storage – micro SD slot
  • Wireless Connectivity – WiFi module
  • USB – 1x micro USB for power and programming over FTDI
  • Programming / Debugging – micro USB port, programming header
  • Expansion – 30-pin Fly Wire connector with:
    • 2x scope channels with 12 bits @ 2 MHz bandwidth and up to 6.25MS/s sampling rate
    • 1x function generator output with 1 MHz bandwidth and up to 10MS/s update rate
    • 10x user programmable DIO pins up to 25 MHz update rate
  • Misc – 4x user LEDs, programming and reset buttons
  • Power Supply – via micro USB or ext pin; programmable power supplies up to 50 mA and +/- 4V

The platform can be used with (soon-to-be) open source, web based Waveforms Live multi-instrument software written in JavaScript and allowing you to  use OpenScope as an oscilloscope, a function generator, a logic analyzer, a power supply, or a data logger.

Since the software runs in a web browser it will work with most operating systems including Linux, Windows, Mac OS X, Android or iOS. As mentioned in the introduction, OpenScope is also a development board, and can be programmed using the Arduino IDE or Microchip MPLAB-X IDE. The company will provide  a programmer’s guide, and make PIC32MZ firmware, the agent source code, the browser app for Android & IOS, the communication protocol, and the JavaScript API available on Github

Digilent launched OpenScope on Kickstarter, where the board can be backed together with a 3D printed enclosure for $79. An “OpenScope Learning Edition” is also offered for $150 with a “parts kit with workbook example”, but no details have been provided for the latter. Delivery is planned for June or August 2017 depending on selected reward, and shipping is free to the US, but adds $20 to the rest of the world.

RTL8710 Ameba Arduino Development Board and Ameba Arduino v2.0.0 SDK Released

January 20th, 2017 1 comment

We’ve already seen a NodeMCU lookalike board called RTLDuino based on Realtek RTL8710AF ARM Cortex M3 WiSoC earlier this month, that can be programmed with a community supported Arduino port also called rtlduino via a JLink SWD debugger, but now Realtek has just launched Ameba RTL8710 Arduino board, and released Ameba Arduino v2.0.0 SDK which brings official Arduino support to RTL8710AF platforms.

Click to Enlarge

There appears to be two versions of the development kit: RTLDUINO_PRO_V1.0 and REALTEK-AMEBA_RTL8710_V2.0, but based on the user manual they seem to be identical, and as you can see from the above picture, it includes a baseboard and the aforementioned RTLDuino board.

RTL8710 Ameba Arduino HDK key features:

  • SoC – Realtek RTL8710AF ARM Cortex-M3 MCU @ 83 MHz with 802.11 b/g/n WiFi, hardware SSL engine connected to the baseboard via:
    1. RTLDuino board through female header
    2. B&T RTL-00 module soldered on module footprint
  • USB – 2x micro USB ports, CON2 used for power and Arduino programming, CON1 used for DAP programming (TBC)
  • Expansion – Arduino UNO headers with GPIOs, power signals, 2x UART, SPI, I2C, and 4x PWM
  • Debug Headers – 4-pin Mbed connector, 10-pin Jlink connector, 4-pin for serial console
  • Misc – T/R & n/R buttons maybe to select programming mode?, reset and test buttons

Pinout Diagram – Click to Enlarge

The documentation in English is still work in progress, but Realtek already released a getting started guide to program the board with Arduino IDE 1.6.5 or later. The guide only mentions Windows, so it’s unclear whether Linux is supported for now, but the steps are pretty simple:

  1. Install mbed serial drivers
  2. Install Ameba board packages in Arduino IDE
  3. Connect the board via USB to your computer, and select Ameba RTL8710 board in Arduino IDE
  4. Use Blink program to blink an LED connected to GPIO 13.
  5. Profit!

Ameba RTL8710 & Arduino IDE – Click to Enlarge

I understand you may not even need to use RTL8710 Ameba Arduino SDK for this if you have a board with the latest firmware. If not, you may need to update the firmware, but there’s no documentation about this, and it’s unclear whether this can be done via the RTLDUINO / AMEBA_RTL8710 baseboard, or a separate JLINK SWD debugger is needed.

The SDK has been released on Ameba IoT China website, and will soon be on Ameba IoT (English) website. The hardware development kit can be purchased for NT$ 630.0 in Taiwan, and 150 CNY (~$22) on Taobao. If you live outside of China, you could use a Taobao agent to ship to your country, or probably better, wait until Realtek gets a worldwide distributor. [Update: The board (pre-order) sells on Seeed Studio for $19.90]

Mediatek MT2533D is a Bluetooth 4.2 SiP for Smart Headphones & Hands-Free Systems

January 9th, 2017 3 comments

There used to be a time when most products were based on a general purpose MCU or processor that you would interface to over chips like audio codecs, memory chips, flash storage, etc…, but in order to cut costs, application specific SoCs have become quite common over the year, so we’ve had mobile application processors for several years already, but more recently we got “wearables” SoCs and “Smart Home” SoCs, and Mediatek has launched MT2533D “headphone” SiP (System-in-Package) combining a Cortex-M4 MCU, 4MB PSRAM, an audio codec, and a dual mode Bluetooth subsystem.

mt2533-block-diagramMediatek MT2533D specifications:

  • MCU –  ARM Cortex-M4 @ up to 208MHz with 32KB L1 cache, FPU, MPU, AES 128/192/256 crypto engine and TRNG
  • Memory – 160kB SRAMs, 4MB pseudo SRAM
  • Storage – 4MB flash
  • Wireless Connectivity – Bluetooth 4.2 dual mode (classic and low energy)
  • Audio
    • AAC/SBC for Bluetooth audio
    • CVSD/mSBC for Bluetooth speech
    • PCM playback: 8-48kHz sample rate
    • PCM record: 8kHz and 16kHz sample rate
    • Dual-mic noise suppression and acoustic echo cancellation
  • Display
    • Hardware 2D accelerator
    • DBI serial interface up to 320×320 @ 30 fps
    • 1-lane MIPI DSI interface up to 480×320 @ 30 fps
  • Camera – Mediatek camera serial interface up to VGA resolution @ 30 fps with YUV422 or RGB565
  • Other Peripherals
    • USB 2.0
    • 3x UARTs, 3x I2Cs
    • 6x PWMs, 4x SPI masters, SPI slave
    • I2S
    • SDIO v2.0
    • 5-channel ADC
    • Up to 38 GPIOs
  • Package – 172-ball TFBGA with 0.4mm pitch
  • Dimensions – 6.2 x 5.8 x 1.05 mm
  • Ambient temperature – -40°C to 85°C

There are interfaces for small displays and low resolution cameras, as well as a fair amount of I/Os, so it could certainly be use for audio applications outside of simple headphones, not matter how “smart” they may be.

One interesting part is that I did not get the news from MediaTek, but instead MediaTek Labs, Mediatek’s Internet of Things (IoT) developer program, and MT2533 is supported by the MediaTek LinkIt Development Platform for RTOS based on FreeRTOS. That means the SiP will be available to makers, and not only large companies, and development and debugging can be done in ARM Keil μVision, IAR Embedded Workbench and GCC like other LinkIt platforms. A development board or, like Mediatek calls it, an HDK (Hardware Development Kit), based on MT2533D could also be launched in the near future.

However Mediatek Labs only mentioned that MT2533D will be available to device makers in Q1 2017, and the developer documentation and tools will be released in Q3 2017, so we will have to wait for a while before being able to play with the platform. More details can be found on MT2533D product page.

JeVois-A33 is a Small Quad Core Linux Camera Designed for Computer Vision Applications (Crowdfunding)

December 27th, 2016 8 comments

JeVois Neuromorphic Embedded Vision Toolkit – developed at iLab at the University of Southern California – is an open source software framework to capture and process images through a machine vision algorithm, primarily designed to run on embedded camera hardware, but also supporting Linux board such as the Raspberry Pi. A compact Allwinner A33 has now been design to run the software and use on robotics and other projects requiring a lightweight and/or battery powered camera with computer vision capabilities.

allwinner-a33-computer-vision-cameraJeVois-A33 camera:

  • SoC – Allwinner A33  quad core ARM Cortex A7 processor @ 1.35GHz with  VFPv4 and NEON, and a dual core Mali-400 GPU supporting OpenGL-ES 2.0.
  • System Memory – 256MB DDR3 SDRAM
  • Storage – micro SD slot for firmware and data
  • 1.3MP camera capable of video capture at
    • SXGA (1280 x 1024) up to 15 fps (frames/second)
    • VGA (640 x 480) up to 30 fps
    • CIF (352 x 288) up to 60 fps
    • QVGA (320 x 240) up to 60 fps
    • QCIF (176 x 144)  up to 120 fps
    • QQVGA (160 x 120) up to 60 fps
    • QQCIF (88 x 72) up to 120 fps
  • USB – 1x mini USB port for power and act as a UVC webcam
  • Serial – 5V or 3.3V (selected through VCC-IO pin) micro serial port connector to communicate with Arduino or other MCU boards.
  • Power – 5V (3.5 Watts) via USB port requires USB 3.0 port or Y-cable to two USB 2.0 ports
  • Misc
    • Integrated cooling fan
    • 1x two-color LED: Green: power is good. Orange: power is good and camera is streaming video frames.
  • Dimensions –  28 cc or 1.7 cubic inches (plastic case included with 4 holes for secure mounting)

jevois-camera-hardwareThe camera runs Linux with the drivers for the camera, JeVois C++17 video capture, processing & streaming framework, OpenCV 3.1, and toolchains. You can either connect it to a host computer’s USB port to check out the camera output (actual image + processed image), or to an MCU board such as Arduino via the serial interface to use machine vision to control robots, drones, or others. Currently three modes of operation are available:

  • Demo/development mode – the camera outputs a demo display over USB that shows the results of its analysis, potentially along with simple data over serial port.
  • Text-only mode – the camera provides no USB output, but only text strings, for example, commands for a pan/tilt controller.
  • Pre-processing mode – The smart camera outputs video that is intended for machine consumption, and potentially processed by a more powerful system.

The smart camera can detect motion, track faces and eyes, detect & decode ArUco makers & QR codes, detect & follow lines for autonomous cars, and more. Since the framework is open source, you’ll also be able to add your own algorithms and modify the firmware. Some documentation has already been posted on the project’s website. The best is to watch the demo video below to see the capacities of the camera and software.

The project launched in Kickstarter a few days ago with the goal of raising $50,000 for the project. A $45 “early backer” pledge should get you a JeVois camera with a micro serial connector with 15cm pigtail leads, while a $55 pledge will add an 8GB micro SD card pre-load with JeVois software, and a 24/28 AWG mini USB Y cable. Shipping is free to the US, but adds $10 to Canada, and $15 to the rest of the work. Delivery is planned for February and March 2017.