Microvisor Quick Start

Danger

This is historical documentation and will no longer work. Trying anyway will waste your time.

This Quick Start is intended to help experienced embedded developers get up and running as fast as possible. If you are new to embedded development, we strongly recommend you start with Get Started with the Microvisor Nucleo Development Board rather than this guide.

The following instructions assume you have a Twilio account and a Microvisor Nucleo Development board (NDB) that is powered up and connected to the Internet using the supplied Super SIM, WiFi, or Ethernet. It also assumes familiarity with Ubuntu and/or Docker on Widows and macOS. You must be familiar with Git on your preferred platform and have it installed.

The primary Microvisor development platform is Ubuntu 20.0.4.

'The Microvisor Microvisor Nucleo Development Board'

Nucleo Development Board

Windows

The recommended solution for working with Microvisor on Windows 10 and 11 is via Windows Subsystem for Linux 2 (WSL). You will need Administrator privileges to install WSL.

  1. Open an Administrator-level Powershell or Command Prompt instance.

  2. Run wsl --install -d Ubuntu-20.04.

  3. Exit from Ubuntu and quit Powershell.

  4. Open the Ubuntu 20.04 LTS shell from your Start menu.

  5. Follow the command line instructions.

Alternatively, you can use Docker. You can also try native tools, but this is unsupported at this time.

macOS

The recommended solution for working with Microvisor on Mac is Docker, as outlined below. However, if you’re happy not to be supported, you can use native tools on macOS.

Command Line (Ubuntu/WSL)

1. Install the Prerequisites

sudo bash -c 'apt update && apt install -y gcc-arm-none-eabi binutils-arm-none-eabi \
  build-essential libsecret-1-dev cmake curl git jq wget gdb-multiarch'

2. Install the Twilio CLI

curl -sL https://twilio-cli-prod.s3.amazonaws.com/twilio_pub.asc | sudo apt-key add -
sudo touch /etc/apt/sources.list.d/twilio.list
echo 'deb https://twilio-cli-prod.s3.amazonaws.com/apt/ /' | sudo tee /etc/apt/sources.list.d/twilio.list
sudo apt update
sudo apt install -y twilio

3. Install the Twilio CLI Microvisor Plugin

Close your terminal window or tab, and open a new one. Now run:

twilio plugins:install @twilio/plugin-microvisor

4. Set up the Twilio CLI

twilio login

Enter your account SID and your account Auth Token, and provide a name (“shorthand identifier”) for your profile when asked to do so.

twilio profiles:use PROFILE_ID

5. Set Environment Variables

Enter the following command to get your target device’s SID:

twilio api:microvisor:v1\:devices:list

Then set your device’s SID as an environment variable. It should be added to your shell profile:

export MV_DEVICE_SID=UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Note

The QR code on the back of your board and on the anti-static bag in which it shipped also contains your NDB’s SID. Scan the code with your mobile phone and a suitable app, and the board’s SID is the third /-separated field.

6. Clone the Microvisor FreeRTOS Demo

git clone --recurse-submodules https://github.com/korewireless/Microvisor-Demo-CMSIS-Freertos.git && cd Microvisor-Demo-CMSIS-Freertos

7. Build and Deploy the Demo

twilio microvisor:deploy . --devicesid ${MV_DEVICE_SID} --genkeys --log

You have now completed the set-up and build process using the Linux command line.

Docker

This flow assumes you have Docker installed on your system and that you have started its daemon. It also assumes you have Git installed on your system.

1. Set Environment Variables

Set your Twilio credentials as environment variables. You can get the first two from your Twilio Console account dashboard. The QR code on the back of your board and on the anti-static bag in which it shipped also contains your NDB’s SID. Scan the code with your mobile phone and a suitable app, and the board’s SID is the third /-separated field.

They should be added to your shell profile.

macOS

export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export TWILIO_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export MV_DEVICE_SID=UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Windows Powershell

$env:TWILIO_ACCOUNT_SID="ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$env:TWILIO_AUTH_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$env:MV_DEVICE_SID="UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Windows Command Prompt

set TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
set TWILIO_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
set MV_DEVICE_SID=UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. Clone the Repo

macOS/Windows

git clone --recurse-submodules https://github.com/korewireless/Microvisor-Demo-CMSIS-Freertos.git && cd Microvisor-Demo-CMSIS-Freertos

3. Build the Image

macOS

docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t microvisor-freertos-image .

Windows

docker build -t microvisor-freertos-image .

4. Run the Build

macOS/Windows

docker run -it --rm -v .:/home/mvisor/project/ --env-file env.list --name microvisor-freertos microvisor-freertos-image

Under Docker, the demo is compiled, uploaded and deployed to your development board. It also initiates logging — hit Ctrl-c to break out to the command prompt.

You have now completed the set-up and build process using Docker.