High-end, cost-optimized Android devices using Qualcomm Snapdragon
Topics: Open OS, Open cloud systems, Edge AI
We are often approached by customers who want to build a high-performance, user-facing industrial device (like a smart kiosk, machine control screen or vehicle dashboard), and their obvious reference is the Android smartphone in their pocket. Using Android is a natural thought, as it provides a familiar user interface in otherwise complex and data-heavy environments.
At Antmicro, we have been building Android-based devices for our customers in many industrial applications. We often help in selecting the right hardware platform, and until recently “high performance at a low price point” was a somewhat contradictory requirement in the low-volume embedded market. With some of the recent Snapdragon platforms from Qualcomm this is now more realistic - and Antmicro can help you build a complete solution which doesn’t stray too far away from the performance you’re used to without pushing the unit cost.
Snapdragon: mobile dominance transferred to the industrial market
The Qualcomm Snapdragon SoC series powers a significant chunk of the modern smartphone market, and some of the previous gen SoCs in the 8XX and 6XX families are now trickling down to the industrial market. The frustrating gap between the price/performance ratio you can expect from a USD 500 smartphone and an embedded device built from similar (albeit typically pricier and older) components is slowly closing. At Antmicro, we’ve been successfully using Snapdragon SoMs based on chipsets like SD845 and SD660 to build industrial applications with an ever growing demand for computing at the edge. The applications vary from handling control screens in complex multi-node industrial setups, to standalone kiosk-like devices that will run entirely on a Snapdragon chip.
The SD845 is an especially interesting choice, with very high performance capable of driving 4K displays and serious NN compute in machine learning accelerators (which stems from the race to pack modern smartphones with AI-assisted features). With the right skillset, the Qualcomm’s ISP can be used to solve common problems known in edge devices, e.g. SLAM in robotics, 60 fps HD video capture, efficient graphics rendering, allowing us to build customer solutions involving things like voice recognition, image classification and detection algorithms, mixed reality, etc.
The SD845 features a Cortex-A class octa-core Qualcomm Kryo 385 CPU and LPDDR4x RAM. Bluetooth 5.0 and 802.11ad, 802.11ac Wave 2 WiFi connectivity is available. An optional X20 LTE modem allows up to 1.2 Gbps/150 Mbps download/upload speed, and there is a USB 3.1 with DisplayPort mode for compact display solutions. All this makes for an available, versatile and AI-enabled platform that can, at the same time, be operated from the comfort of a familiar operating system like Android which can be customized to the needs of your application.
Android 10 and the all the benefits of a modern OS
Using Android in industrial applications has many advantages. Snapdragon 845 comes with Android 10 onboard, giving the users and developers all the benefits of using a modern operating system that has solved many of the UI/UX problems that are shared between embedded and mobile applications (especially given the more diverse range of mobile device form factors and offshoots such as Android Auto).
In most cases there’s no need to learn vendor-specific libraries when dealing with Android - APIs are standardized and known to a regular Android application developer. Common visual components are available together with device management APIs allowing for e.g. the target app to use WiFi.
Board Software Packages (BSPs) distributed by SoM vendors provide features like wireless connectivity and external storage, and Android applications can be developed and installed on a development board from day 1. Of course, to enable custom features of your product, secure it against improper/unauthorized use, integrate with an external device and tailor the user experience to the target group and use case, development work at the OS level will be needed.
BSP customization for industrial use cases
Industrial Android solutions often work as standalone “kiosk” devices, which means that Android features known from everyday smartphones are deliberately limited down to fulfill just the purpose of the device.
Kiosk mode in Android also involves limiting the number of applications available for users to a predefined subset. This will commonly include a custom launcher/home application which replaces the standard Android launcher in the BSP. The same applies to the Android logo that appears on the boot screen - both the static image displayed by the bootloader program before the actual Android starts and the later full-blown animated logo can be customized to suit the target device.
Building Android from source
Android BSPs typically include hundreds of repositories. While open source parts can be obtained from Android Open Source Project (AOSP), vendor-specific modifications to Android are often added under proprietary license and many vendors host the code themselves.
Snapdragon is no different. The necessity to combine open source components with proprietary additions and handling massive codebases is a common problem that we help customers solve, e.g. by setting up complete development environments in a designated, private cloud instance. This approach allows us to automate some of the typical tasks during a BSP’s lifecycle and produce traceable artifacts that can be handed over to the customer for field deployment with confidence.
To control which apps are allowed to run on an Android device, and therefore enable kiosk mode, one of the applications (preferably a launcher) needs to be registered as the device manager. Device manager is an application with additional privileges, which can be specified in the BSP in build-time.
In industrial Android we often disable device buttons completely, to avoid e.g. power-off by the user. Also the screen dimming functionality can be controlled by the device manager, even removed completely from the system, if needed.
Over The Air (OTA) updates
In the first stages of development it’s not a problem to use USB or WiFi to upload updated BSP versions to the device while it’s still on the developer’s desk. Later on in the device’s lifecycle, as hundreds or perhaps thousands of devices get deployed in the field, remote Over The Air (OTA) updates become a critical functionality.
For hybrid edge/cloud solutions, the best way to update a fleet of Android devices (probably distributed to end-users) is to create an OTA update system. We typically use cloud builds to prepare OTA update packages that are smaller than a standard BSP image since they contain only the changes from the last revision. These update packages will then be uploaded to the customer’s server informing the device network of available system updates.
The update process can be optimized for speed and size of the update packages by utilizing incremental update packages and streaming packages to the device. Both features are an Android standard.
Cloud build system
Having a build system in the cloud means a stable environment with easily reproducible builds. Thanks to the collaboration between Antmicro and Google Cloud (GCP), we have a well-established methodology and successfully provide our customers with an efficient cloud machine, complete with a dedicated GitLab instance onboard for easy handover.
We employ the Continuous Integration features of GitLab to create automated BSP builds. The output of such a build is a system image, ready for upload to the target hardware. The same method is used for OTA update package generation.
Build your Android edge device the smart way
Using Snapdragon 845 with Android 10 opens up a path to high performance but inexpensive solutions, and other options such as Snapdragon 660 also exist for even better cost optimization if you’re looking to build modern kiosk applications, GUIs for vehicles, or smart training solutions on a wider scale. With access to and experience with high-performance yet cost-optimized platforms from the Snapdragon family, Antmicro is able to deliver a complete end-to-end solution including customized Android BSPs and industrially-proven hardware platforms.
Antmicro’s broad spectrum of services including software, hardware as well as hybrid cloud/edge and AI development will help you decide what’s best in your use case, while keeping scalability and transparency of open source in mind. Write to us at firstname.lastname@example.org to find out how.