Accelerate IoT Development with Arm Virtual Hardware on AWS
Tags: arm, iot, aws, devops
Published: 2022-10-13 17:20:20

For more than a decade, the Internet of Things, or IoT, has been growing in both magnitude and complexity. The complexity derives from the requirements of an IoT device including connectivity, security, cloud service clients, over-the-air update and, increasingly, machine learning. Embedded developers building IoT devices face challenges with developing and testing these applications at scale. DevOps teams, now responsible for managing these device and service integrations at scale, face challenges with incorporating IoT devices into cloud-native flows like Continuous Integration and Continuous Delivery (CI/CD) and Infrastructure as Code (IaC). 

![Board Farm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yjbkwgefmour1r15vgsr.jpg)

The use of “board farms” can address some of these issues. However, they cause significant setup and maintenance costs. Testability can also be compromised due to limited access to peripherals and public cloud services. A new paradigm for IoT software development and testing is needed, and Arm Virtual Hardware is the solution. 

## What is Arm Virtual Hardware? 

Arm Virtual Hardware (AVH) is a family of functionally accurate representations of Arm-based processors, systems, and third-party hardware. AVH enables embedded and IoT developers to build and test software using modern agile software practices without the need for hardware. 

There are three main classes of AVH: 

- **AVH for Cortex-M Processors**: Software models of individual Cortex processors provided in containers, along with relevant development tools, which run in the cloud. An Amazon Machine Image (AMI) is available on AWS Marketplace and can be run on various Elastic Compute Cloud (EC2) instances. You can find it [here]( https://aws.amazon.com/marketplace/pp/prodview-urbpq7yo5va7g).
- **AVH for Corstone**: Software models of Corstone subsystems which are available in the same AMI as listed above.
- **AVH for 3rd Party Hardwar**: Partial or complete reference platforms, including CPUs, sensors and connectivity modules. They are available as a Software as a Service (SaaS) solution from Arm. Under the hood, they leverage the Arm instruction set architecture of EC2 instances powered by Graviton. You can sign up for the private beta program [here]( https://www.arm.com/resources/contact-us/virtual-hardware-boards). 

## Use Cases 

One valuable scenario for AVH is developing software before silicon is available. For example, the [Corstone-310]( https://developer.arm.com/Processors/Corstone-310) combines the latest Cortex-M85 microcontroller with the Ethos-U55 neural processing unit. You can develop and test tinyML applications with this AVH while waiting for the first silicon to land. 

![Cloud-native software development](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/blj3q41by7pn3w09332o.png)

Another use case for AVH is CI/CD. A great example of this is AVH integration with GitHub Actions. You can set up your repository to build and run your test suite on AVH after every merge. Here’s a video that shows how to get started: 

{% embed https://www.youtube.com/watch?v=BZRGb0GHRjg %} 

You can find the example [here](https://github.com/ARM-software/AVH-GetStarted). There are integrations available for other leading CI/CD solutions such as [CircleCI](https://github.com/james-crowley/AVH-TFLmicrospeech/tree/circleci), [GitLab](https://bit.ly/AVH-On-GitLab) and [Jenkins](https://github.com/ARM-software/AVH-GetStarted). For MLOps, have a look at [this guide from Qeexo](https://docs.qeexo.com/guides/userguides/arm-virtual-hardware). 

## Arm Virtual Hardware and AWS IoT 

As noted, all classes of Arm Virtual Hardware are available in the AWS cloud. However, the real value of AVH comes to light when developing with AWS software and services. 

For Cortex-M based systems, you can develop software leveraging FreeRTOS and AWS IoT services. The AVH Corstone-300 is qualified for AWS IoT Core and is listed in the [AWS Partner Device Catalog]( https://devices.amazonaws.com/detail/a3G8a000000U8RbEAK/Arm-Virtual-Hardware-Corstone-300). For an in-depth workshop from AWS, check out [Develop AWS IoT projects on Arm Virtual Hardware with FreeRTOS and CMSIS packs](https://catalog.us-east-1.prod.workshops.aws/workshops/30043722-0362-4859-bc6f-c28836a2d7ac/en-US). This workshop explores more advanced AWS IoT concepts like Device Shadows and Device Jobs. 

![AWS IoT workshop for AVH](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gswll89jzmhazkt9r0xy.png)

For Cortex-A based systems running Linux, try one of the AVH 3rd Party Hardware platforms in the private beta. You can easily get AWS IoT Greengrass running on the virtual Raspberry Pi 4. If you are working with machine learning, check out the [Machine Learning Operations with AWS IoT Greengrass v2 and Amazon SageMaker Edge Manager]( https://catalog.us-east-1.prod.workshops.aws/workshops/8d1c3528-8abb-4674-a2b9-d15fa593c392/en-US). You can run much of this workshop on the AVH i.MX8M Arm Cortex Complex. 

## Call to Action 

Join the upcoming AVH workshops and masterclasses at [Arm DevSummit](https://devsummit.arm.com/flow/arm/devsummit22/home/page/lp/?utm_source=dev_to_publication&utm_medium=referral&utm_campaign=2210_armdevsummit_mk17_publication_blog_na_ondemand&utm_content=blog) and ask experts your questions: 

- [Accelerated Development of Cloud Applications for AWS IoT Connected Devices]( https://devsummit.arm.com/flow/arm/devsummit22/sessions-catalog/page/sessions/session/16540936519630014eiA?utm_source=dev_to_publication&utm_medium=referral&utm_campaign=2210_armdevsummit_mk17_publication_blog_na_ondemand&utm_content=blog) 
- [Simplify embedded software development and Continuous Integration (CI) at scale]( https://devsummit.arm.com/flow/arm/devsummit22/sessions-catalog/page/sessions/session/1655822846744001CDON?utm_source=dev_to_publication&utm_medium=referral&utm_campaign=2210_armdevsummit_mk17_publication_blog_na_ondemand&utm_content=blog)
- [Build, Train, Test, and Deploy your Machine Learning Applications on Virtual Hardware](https://devsummit.arm.com/flow/arm/devsummit22/sessions-catalog/page/sessions/session/1664974508601001eqcQ?utm_source=dev_to_publication&utm_medium=referral&utm_campaign=2210_armdevsummit_mk17_publication_blog_na_ondemand&utm_content=blog)

Register for a free pass [here](https://devsummit.arm.com/flow/arm/devsummit22/home/page/lp/?utm_source=dev_to_publication&utm_medium=referral&utm_campaign=2210_armdevsummit_mk17_publication_blog_na_ondemand&utm_content=blog). 

For further information and resources on Arm Virtual Hardware, visit (https://www.arm.com/products/development-tools/simulation/virtual-hardware).