soletta technical introduction
play

Soletta Technical Introduction Otavio Pontes OTC - Intel Soletta - PowerPoint PPT Presentation

Soletta Technical Introduction Otavio Pontes OTC - Intel Soletta overview Features and Architecture Soletta Overview IoT Questions and Problems Explosion of libraries Subsets: I/O, comms Specific targets Too big for small


  1. Soletta Technical Introduction Otavio Pontes OTC - Intel

  2. Soletta overview Features and Architecture

  3. Soletta Overview IoT Questions and Problems Explosion of libraries ■ Subsets: I/O, comms ○ Specific targets ○ Too big for small devices ○ Hard to reuse knowledge ○ Nothing is integrated ■ Lack of documentation ■

  4. Bringing intelligence to IoT devices What is Soletta? IoT Framework ■ Open Source ■ Easy access: ■ Sensors ○ Actuators ○ Communication ○ Portable code ■ Different platforms, including small OSs ■

  5. Architecture Application Soletta Machine Learning Flow OIC MQTT HTTP Event Services Network Update Crypto Persistence dispatching GPIO SPI UART I2C PWM Timers Hardware and Operating System Abstraction Layer System Libs Comms Kernel Hardware

  6. Soletta overview Flow layer Domain-specific language (DSL) ■ Interface ■ Easy - target audience ■ Code safety ■ Visual ■ OOBE ■

  7. How to remotely toggle a light bulb? Simple and canonical example

  8. How to remotely toggle a light bulb? VCC light Server relay network switch resource network protocol Client light feedback sensor network led resource VCC

  9. How to remotely toggle a light bulb? light relay Server network switch resource (gpio/writer) network protocol Client light feedback Sensor network Led (gpio/reader) resource (gpio/writer)

  10. How to remotely toggle a light bulb? #Server fbp file light(oic/server-light) led(LED) light STATE -> IN led #Client fbp file button(Button) network protocol #Update device_id with server device id light(oic/client-light:device_id=””) feedback_led(LED) button OUT -> STATE light light STATE -> IN feedback_led

  11. How to remotely toggle a light bulb? #Server config file #Client config file { { "name": "LED", "name": "LED", "options": { "options": { "pin": "7" "pin": "3" }, }, "type": "gpio/writer" "type": "gpio/writer" } }, { "name": "Button", "options": { "pin": "5" }, "type": "gpio/reader" }

  12. How to remotely toggle a light bulb? Running on the target board, supports multiple users and allows fetching git repositories

  13. How to remotely toggle a light bulb?

  14. How to remotely toggle a light bulb? source.c source.c source.c compiler linker source.c source.fbp source.c source.fbp source.fbp sol-fbp-generator generated.c + source.c this is a regular application, that source.c board.conf sol-fbp-runner application can be installed alongside other applications and frameworks users can run their FBP without image generator the need to compile. Soletta Development Application uses this image generator packs the application and the operating firmware/image system into a single image to be flashed on the IoT device.

  15. How to remotely toggle a light bulb? #Client config file to be used in a desktop { "name": "LED", "type": "gtk/led" }, { "name": "Button", "type": "gtk/button" }

  16. Another example: Custom node

  17. Soletta Support

  18. Soletta Support Operating Systems support Linux ■ Zephyr ■ RIOT ■ Contiki ■

  19. Soletta Support Boards tested so far Intel Edison (Linux) ■ Intel Galileo Gen 2 (Linux) ■ Intel Minnowboard Max (Linux) ■ Quark SE Dev Board (Zephyr) ■ Atmel SAMR21 Xplained Pro (RIOT) ■ Raspberry Pi (Linux) ■

  20. Soletta Support Small OSes measurements Zephyr on Quark SE Dev Board ■ Generated C Code from Application FBP Files Image size: 107k ■ Peak used RAM: around 32k ■ Soletta Library Zephyr Hardware

  21. How to get involved

  22. Roadmap 2016 v1.0 v2.0 v3.0 v4.0 Go Stable (Embedded World) v2.0 v3.0 v4.0 • Initial Public announcement • Zephyr : full I/O, persistence • Zephyr : BLE, HTTP, MQTT, • Zephyr: Small JS on 80Kb • Stable API (1.0) and 6loWPAN OTA updates and FBP on 8Kb • 100% API documentation • FBP: community packages • Comms: BLE, Bluetooth, • OS: Linux, Zephyr (initial)... (similar to npm) Management (ConnMan) • Languages: C/C++, FBP, JS • Node.js : full bindings • Comms: OIC, CoAP, MQTT, HTTP • Real-world usage samples

  23. How to get involved Cool stuff we want to do Language bindings ■ Visual Editor ■ Plugins for other IDEs ■ Communication protocols ■

  24. How to get involved Community GSoC ■ Workshops / Talks ■ Partnerships ■ #soletta @ freenode ■ Wiki - https://github.com/solettaproject/soletta/wiki ■ Mail lists - https://lists.solettaproject.org/ ■ Site - https://solettaproject.org/ ■ Repos - https://github.com/solettaproject ■

  25. Q&A Thanks Otavio Pontes - otavio.pontes@intel.com

Recommend


More recommend