Emul8 - path to continuous integration for IoT systems


Michael Gielda

Antmicro Ltd

../img/antmicro-logo.png

@antmicro

Why? - history

img/put.jpg

Problems

  • physical aspect

  • limited output, very little memory (especially small 'Things')

  • debug one device - OK

img/jtag.png

Problems^2

  • debug more devices - how to observe the entire system

  • even simple protocols are hard to debug

  • physical hardware debugging changes execution, not reproductible

img/jtags.png

Current situation

img/kevin.png

Is IoT secure? Is IoT ready?

img/nope.jpg

So, how do we make it ready?

Simulation/emulation

img/cooja.png
  • not a new concept

  • Contiki regression testing suite using COOJA+MSPSim

COOJA/MSPSim - problems

  • old fashioned, GUI-driven

  • no support for modern platforms

COOJA

img/bread.jpg
  • still, second best thing after sliced bread

QEMU

img/qemu.png
  • standard for Linux development

  • that's where we started ourselves!

QEMU - problems

  • designed for single platforms

  • main aim is to run Linux - what if you want to run something else as a 'primary citizen'

  • use C for everything:

    • a lot of copy pasting code

    • lack of modern language features

Emul8

../img/emul8-logo.png

Emul8 - features

Unmodified software

img/icon_software.png

Automation

img/icon_automation.png

Observability

img/icon_observability.png

State saving / loading

img/icon_state.png

API-based

img/icon_api.png

Plugins

img/icon_plugins.png

Blockers

Bar the blockers, why NOT use emulation

  • you just like challenges

  • you secretly think this whole IoT thing is just not possible

NOT possible

img/iot.png

NOT possible

img/iot-not.png

Instruction Set Simulation

Fast is important!

img/time.png

Simple takeaways

More advanced perks

How it changes workflow

img/clones.jpg

Continuous integration

img/jenkins.pngimg/robot.png

Status - launch

img/ecs.jpg

Status - try it

But... we're missing a piece

img/cooja.png

Back in 2012

img/emulink.png

Current work

System description - Emul8

  • device model

  • board definition

  • emulation script

System description - on top of that

  • network setup description

  • robot scripts

  • continuous integration setup

Platforms

../img/ti-logo.png../img/st-logo.png
../img/nxp-logo.png../img/silabs-logo.png

Challenges

How we can help?

Future plans

Thank you for your attention

Questions?

mgielda@antmicro.com

../img/antmicro-logo.png