We wrote about IoT devroom call for proposals for FOSDEM 2020 a little while ago, and as the free open-source developer meetup is getting closer, FOSDEM 2020 organizers released the schedule.
So I’ll look at some of the talks in the relevant devrooms such as the Internet of Things, hardware enablement, Embedded, Mobile and Automotive, as well as RISC-V and others to compose my own little virtual schedule for the 2-day event.
- 10:30 – 10:50 – How lowRISC made its Ibex RISC-V CPU core faster – Using open source tools to improve an open-source core – by Greg Chadwick
Ibex implements RISC-V 32-bit I/E MC M-Mode, U-Mode, and PMP. It uses an in-order 2 stage pipe and is best suited for area and power-sensitive rather than high-performance applications. However, there is scope for meaningful performance gains without major impact to power or area. This talk describes work done at lowRISC to analyze and improve the performance of Ibex. The RTL of an Ibex system is simulated using Verilator to run CoreMark and Embench and the traces analyzed to identify the major sources of stalls within them. This informs where improvements should be targeted. The open-source implementation tools Yosys and openSTA are used to assess potential timing and area impacts of these improvements. In this talk, you’ll learn about the pipeline of Ibex, methods to analyze the performance of CPU microarchitecture and how to use Yosys and openSTA to analyze what limits clock frequency in a design.
- 11:00 – 11:25 – Building Homebridge with the Yocto Project by Leon Anavi
Homebridge is a lightweight NodeJS server that emulates Apple HomeKit API. Combined with versatile plugins it allows you to make any device Homekit-compatible. In the presentation, you will understand how Homebridge works and how to integrate it into a custom embedded Linux distribution built with the Yocto Project and OpenEmbedded. We will go through the exact steps for leveraging the latest release of Poky, the reference system of the Yocto Project, with systemd, X11, Openbox, surf web browser, nodejs, npm, Homebridge and some of its most popular plugins. Only open-source software will be used, without any commercial licenses. Practical examples for home automation with Homebridge on Raspberry Pi and the new STM32MP1 development boards will be demonstrated. The end result is an embedded device mounted in a rack with a DIN rail that provides a simple and user-friendly way to manage and configure Homebridge out of the box. The talk is appropriate for beginners.
- 11:30 – 11:50 – Open ESP – The Heterogeneous Open-Source Platform for Developing RISC-V Systems – by Luca Carloni
ESP is an open-source research platform for RISC-V systems-on-chip that integrates many hardware accelerators.
ESP provides a vertically integrated design flow from software development and hardware integration to full-system prototyping on FPGA. For application developers, ESP offers domain-specific automated solutions to synthesize new accelerators for their software and map it onto the heterogeneous SoC architecture. For hardware engineers, ESP offers automated solutions to integrate their accelerator designs into the complete SoC.
The participants in this FOSDEM20 event will learn how to use ESP from the viewpoints of both application developers and hardware engineers by following a series of short hands-on tutorials embedded in the lecture. Conceived as a heterogeneous integration platform and tested through years of teaching at Columbia University, ESP is intrinsically suited to foster collaborative engineering of RISC-V based SoCs across the open-source community.
- 12:00 – 12:25 – ROS2: The evolution of Robot Operative System by Jose Luis Rivero
In FOSDEM 2013, Open Robotics introduced an overview of the Robot Operating System (ROS), an open software integration framework for robots created in 2007. After more than a decade of great success, powering from Robocup teams to NASA robots in space, ROS2 was born to break any limitation detected previously by roboticists all around the globe. It’s an exciting time.
This talk will explain the design changes and technical motivations that lead to the creation of ROS2 giving a quick overview of new features present on it: multi-platform, embedded devices, real-time, etc.
- 12:30 – 12:55 – Introduction to Eclipse iceoryx – Writing a safe IPC framework for autonomous robots and cars – by Simon Hoinkis
Bosch has open-sourced a true zero-copy middleware for inter-process communication on modern robotics and vehicle computers. The shared memory based solution is compatible with Linux/QNX and achieves data-independent communication in constant time without serializing data. We would like to present our recent development towards an open-source release and demonstrate our performance and timing benchmarks on a privately developed embedded robot.
- 13:10 – 13:30 – RISC-V Boot flow: What’s next? – by Atish Patra
RISC-V boot flow has come a long way since in recent times by leveraging the various opensource boot loaders/firmware projects. This also helped in achieving a well-supported and standard boot flow for RISC-V. As a result, developers can use the same boot loaders to boot Linux on RISC-V as they do in other architectures. Currently, U-Boot is used as the last stage boot loader and OpenSBI as the machine mode run time service provider, but there’s more work to be done. A few of such future works include U-boot SPL support, UEFI boot in RISC-V Linux and booting protocol improvements. This talk will focus on some of these ongoing works which are necessary to declare that RISC-V is truly ready for world domination.
- 13:30 – 13:55 – How to integrate secure elements – A visually annotated summary of Opensource compatible secure elements with instructions to integrate – by Michael Schloh von Bennewitz
In this half-hour, we study aspects of physically and cryptographically secure hardware (often termed secure element or SE) and the integration into existing circuits. We illustrate the utility of such integration by inspecting a cryptocurrency wallet design and explain the difficulty presented by nondisclosure agreements (NDA) common to industry closed adversaries. We examine several hardware devices, study their parts under a close-range circuit camera, and suggest instructions on their use.
We review common cryptography practices.
- Applied security paradigms
- Asymmetric public key exchange
- Encryption and signing algorithms
- Challenges of low power computing
- Noncomputational security features …for example mechanical UI constructs
- We propose new hardware supported techniques.
Open FPGA platforms
- NDA unencumbered SE
- Circumventing black boxes
- Benchmark measurements
- Hardened serial interfaces
We end by viewing several real device hardware circuits under a close-range microscope and possibly offer a device petting zoo to encourage exploration of hardware.
- 14:00 – 14:50 – Embedded systems, the road to Linux – Early boot, comparing and explaining different systems – by Angelo Dureghello
As soon as you are on Linux you are generally confident with the embedded system, whatever it is. But often the boot process may hide some misteries, and understanding the details may help to recover a bricked board or to upgrade or replace a bootloader. The explained path would start from comparing some different SoC’s, passing from the ROM boot loader, static RAM, SDRAM init, secondary bootloader, and so on, until the last “jump” to Linux. Most common non-volatile boot devices would be introduced. Basic knowledge would be ok for the audience.
- 15:00 – 15:55 – Back to the Linux Framebuffer! – Linux Framebuffer support in free software – by Nicolas Caramelli
Although KMS/DRM can replace the Linux Framebuffer, there are a number of programs and libraries that can be built on top of the Linux Framebuffer (without X11 or Wayland dependencies) and that might still be worth considering. The Linux Framebuffer allows direct access to pixels: we will illustrate it with various rendering tools (Fbpad, Fbi, NetSurf, MPlayer, …), but also with drawing libraries such as Cairo or Evas, and multimedia frameworks like FFmpeg or GStreamer. The Mesa 3D project makes OpenGL rendering possible using only the Linux Framebuffer with GLFBDev or EGL: mesa-demos and yagears programs will be shown. We will then cover graphics libraries (GLUT, SDL, EFL, GTK, Qt) that allow integrating high-level applications running directly on top of the Linux Framebuffer with no compositor. An example will be described using either WebKitGTK or QtWebKit for the rendering of an HTML5 media player and a WebGL sample, using the Linux Framebuffer port of those libraries and toolkits. This talk is inspired by the HiGFXback project which aims at preserving historical backends used for graphics on GNU/Linux systems.
- 16:00- 16:25 – WPE, The WebKit port for Embedded platforms by Philippe Normand
WPEWebKit is a WebKit flavor (also known as port) specially crafted for embedded platforms and use-cases. During this talk, Philippe would present WPEWebKit’s architecture with a special emphasis on its multimedia backend based on GStreamer, and also demonstrate various use-cases for WPE, spanning from Kiosk apps and Set-top-box user-interfaces to advanced scenarios such as Web overlays for live TV broadcasting.
WPEWebKit leverages GStreamer for its multiple multimedia backends, ensuring your WPEWebKit-based browser supports zero-copy hardware video decoding on the most common embedded platforms such as the Raspberry Pi, i.MX6 and i.MX8M SoCS.
WPEWebKit can also be used in pure GStreamer applications! Thanks to the GstWPE plugin, web-pages can be “injected” in GStreamer pipelines as audio and video streams. This new plugin thus enables use-cases such has HTML overlays.
WPEWebKit is an open-source project with a growing community, and it is developed within the ecosystem of the WebKit project, which powers many open source and proprietary web browsers.
- 16:30 – 17:20 – How Yocto extra tools help industrial project – Yocto is not (only) bitbake – by Pierre Ficheux
Yocto is the most famous “build system” for embedded Linux. During this conference, we’ll study how to use some Yocto features to help the development of a free industrial project. We will study the eSDK (extended cross-toolchain), Ptest and Testimage (CI), Devtool and Devshell (recipe modification). We will also learn how to comply with the GPLv3 / LGPLv3 licenses thanks to the “archiver” class (and more).
- 17:30 – 17:55 – The State of PTXdist by Roland Hieber
PTXdist has been around as a build tool for embedded systems for more than 16 years now, but many new features were added in the recent time. Most importantly this includes support for kconfig diffs and layered BSPs, infrastructure for code signing and license compliance, a homepage with online documentation and a cute logo, as well as several small improvements. This talk gives an overview of new and old users over the current feature set and the core concepts behind PTXdist.
- 18:00 – 18:25 – A Vulkan driver for the Raspberry Pi 4 by Andreas Bergmeier
For the Raspberry PI 4, I started implementing a Vulkan driver. This talk will give a guide on how to approach such a task, what my expectations are and what I learned so far.
With the release of Raspberry Pi 4, it becomes theoretically more viable to use it in GPU heavy scenarios. Even ordinary software like Gnome Shell, Chromium and games fall into that category. Sadly, neither Broadcom nor Raspberry PI Foundation currently provides a Vulkan driver. Since I want as much performance (and little overheating) as possible, I started writing a Vulkan driver. This entails learning kernel and mesa internals as well as trying to understand Gallium. All that I have learned so far, I will try to share in this talk.
- 18:30 – 18:55 – U:Kit: Open-source software and hardware smoke detector by Slavey Karadzhov
U:Kit is an open-source (software and hardware) smoke and motion detector with the help of open-source tools. U:Kit is easy to assemble, has a plastic case, and can be attached to the ceiling and used with minimum efforts also from non-technical savvy people. But that is just the tip of the iceberg. The presenter will share with the audience his experience in creating the devices and talk about some of the software and hardware challenges with which he and his team had to solve.
- 09:00 – 09:25 – BSP generator for 3000+ ARM microcontrollers by Fabien Chouteau
For embedded developers using alternative programming languages, but also for anyone using third party driver frameworks such as libopencm3, one of the main pain points to start using a microcontroller is to make a Board Support Package.
Things like linker script or startup code (crt0) not only require skills, but also information that is not always easily accessible.
In this talk, we will present a tool that generates linker script, startup code, and low-level hardware binding for 3000+ ARM microcontrollers using information extracted from archives provided as part of the ARM Cortex Microcontroller Software Interface Standard (CMSIS).
- 09:30 – 09:50 – Building composable IOT toolsets with Docker, Node-Red, and OpenOCD by ddmWe will demonstrate how to quickly develop simple tools to check for a GPIO state, communicate with an I2C OLED screen or gdb into a running firmware.
Thanks to multiarch/qemu-user-static, it is now trivially easy to build arm32 docker images from any workstation or server. These images can be shared on public repositories like any other x86 image.
Single board computers such as the Raspberry Pis have built-in Linux primitives for basic manipulations of GPIOs and ports (I2C, UART, SPI) such as /sys/class/gpio or /dev/i2c*.
Node-RED allows us to visually develop simple workflows that can leverage the kernel primitives but also other packages like OpenOCD.
Most of the presentation will be live with just a few stops on GitHub or the Docker Hub. No slides should be necessary.
- 10:00 – 10:25 – Continuous Integration for Open Hardware Projects by Mario Behling
While it is standard to deploy every single code commit using CI systems and deploy new code automatically we are only at the beginning of automation for designing hardware. In this talk, I will share the experience with continuous integration tools in FOSSASIA hardware projects, and specifically our Pocket Science Lab. I will outline opportunities and challenges for implementing CI processes for hardware.
With PSlab apart from the firmware, we have connected CI processes to our hardware repository. This means each design change can be automatically built into a digital prototype. Electronics materials are largely standardized and with KiCad we are even able to create package lists and Gerber files automatically. Furthermore, we deploy to Kitspace using a YAML file. Here, any user can order all components and the board through a one-click process. Every version could easily be built here.
- 10:30 – 10:55 – Open Source Firmware Testing at Facebook – If you don’t test your firmware, your firmware fails you – by Andrea Barberio
We talked extensively about LinuxBoot, a Linux-based environment intended to be integrated into the firmware on the boot ROM. This time we want to talk about how do we test LinuxBoot before it goes to production. We will talk about ConTest, an open-source continuous and on-demand system testing framework that we designed to be modular, validating, and infrastructure-agnostic, and how it is helping us validate open-source firmware on our datacenter platforms.
ConTest is aimed at anyone who needs to automate system-level testing. Various plugins are provided out of the box, with examples on how to use them. The users can combine them like building blocks using a simple job description format based on JSON, and test scenarios of variable complexity. When default plugins are not enough, for example in order to talk to a custom service, users can develop new plugins, and plug them just as if they were part of the core framework. Open-sourcing your own plugins is always appreciated!
- 11:10 – 11:30 – How to build Webthings? – Interact with Mozilla IoT gateway – by Christian Paul
Mozilla Webthings is a smart home platform built with Privacy by Design as an implementation of WoT concepts specified by W3C. The presentation explains how to create new things and interact with the gateway using addons adapters.
WebThing schemas specified by Mozilla are already specifying many IoT devices, but they are also flexible enough to describe any devices using generic types. Standalone devices can be interacted with using WebThings REST API or connected to Mozilla gateway for more advanced uses. The gateway is designed to be extensible using add-ons adapters, A couple of my contributions involving sensors or social media and even VR will be demonstrated. Recipes will be shared to build your own adapters using your favorite language (Js, Python, etc). Then plugins can be deployed on your full controlled Raspberry Pi that can rule your home and much more.
- 11:30 – 11:50 – Astarte: A Data-First approach to IoT by drf
Even though the IoT buzz has been around for years, ecosystems are still scattered and developers must usually patch together a number of solutions to achieve their goals. Astarte is a free software, opinionated “blackbox” solution which aims at empowering developers with a platform which puts Data as the first-class citizen rather than focusing on Device-to-Cloud communication and can scale to production-tier deployments easily.
Astarte enables developers to skip the details of all the plumbing in IoT data collection and skip straight to easy-to-use mechanisms for harnessing data produced by IoT devices through analytics, AI, or simply visualization. The talk will go over Astarte’s design and architecture, both from a plumbing perspective and from the daily developer usage. The live demo will show how to install Astarte in a Kubernetes Cluster, set up a Device (real or a simulator) to interact with Astarte, and build a minimal web application to interact with it – all in the timespan of the talk.
- 12:00 – 12:25 – A free toolchain for 0.01 € – computers – The free toolchain for the Padauk 8-bit microcontrollers – by Philipp Klaus Krause
The Taiwanese company Padauk makes small 8-bit microcontrollers, the smallest of which are available at 0.01 € even in small quantities. Even the larger ones are just a few cents; a particularly interesting feature is the hardware multithreading support available in larger devices. Until recently, the only available toolchain was Padauk’s non-free toolchain based around their “MINI-C” IDE (which despite, the name, ist just a bit of C-like syntactic sugar coating for assembler, and in no way a C implementation).
In 2019, an effort to provide a free alternative resulted in a full free toolchain. Documentation beyond that provided by Padauk was created by reverse-engineering. A free design for a programmer along with firmware was created. Assembler, simulator, and a Small Device C Compiler (SDCC) backend were written.
- 12:30 – 12:50 – IoT with CircuitPython – Look mum, no development environment – by David Glaude
Introduction to CircuitPython and how to make basic IoT without a development environment + a brief history of CircuitPython CircuitPython vs MicroPython
Hello World demos:
- Hello World in REPL
- Hello World in a Python script
- Blink (the electronic Hello World)
- Cheerlights (the internet connectivity Hello World)
- Hide and Seek (a BLE Hello World?)
Circuit Python supported hardware used for the IoT demo:
- nRF52840 (Nordic Semiconductor) with build-in BLE
- ATSAMD51 (Microchip) M4 with Airlift (ESP32 used as a Wifi Co-Processor)
- 13:00 – 13:55 – Open Source Hardware for Industrial use – OSHW model has benefits for SOC vendors, industrial manufacturers, and end-users – by Tsvetan Usunov
Olimex is designing Open Source Hardware Linux computers since 2012. They are adopted by hundreds of manufacturers all around the world and prove the Open Source business model is sustainable. The lecture is about the advantages which OSHW brings to the industrial vendors and what drives their decision to use our boards. We will explain the benefits for the SOC vendors to have OSHW designs with their ICs, the end-user benefits and how OSHW helps us to excel in our products and make them better and better.
- 14:00 – 14:55 – FOSDEM Video Box – A bespoke HDMI capture device for conferences – by Mark Van den Borre, Luc Verhaegen, and Gerry
A bespoke OSHW HDMI video capture solution is being developed for use at FOSDEM and other open-source conferences. This talk will explain the what, why, how and hopefully when.
Today, our capture boxes are an amalgamation of many different devices tied together, and while the whole is working surprisingly well, it is far from ideal. Some bits are non-free, some bits are hard or even impossible to control, and the result is bulky and, relatively speaking, expensive. Sourcing the exact same components again to expand the current array of boxes is nigh impossible, and the bulk of these boxes means that deployment is more of a hassle than it could be.
To solve almost all of our issues, we are creating a bespoke HDMI capture solution by tying a HDMI-to-parallel-RGB decoder chip to the camera input of the venerable Allwinner A20 SoC. The Allwinner A20 was chosen due to its feature set, large community (linux-sunxi), its advanced upstream support and the availability of OSHW board designs. We were lucky to find a suitable board in the Olimex Lime2 (which is OSHW), which exposes all the necessary IO pins on pinheaders.
Capturing 1280×[email protected], encoding it to h.264 for local storage and streaming over the network, while displaying the captured frames directly to HDMI or VGA (projector) and a status LCD, while also capturing (and passing through) audio is a challenge on this cheap, low power but open hardware. It forces us to make use of a wide array of SoC HW blocks, not all of which previously had driver support, and we are close to saturating the available memory and bus bandwidth.
So while a good part of this talk is about describing the bigger problem we are trying to solve, this project very much is an issue of hardware enablement.
- 15:00 – 15:55 – Using OSHW and OSS for building your custom hardware platform – Lessons learned from building a custom hardware platform – by Priit Laes
The lecture describes a journey (and bunch of bragging stories) of designing and implementing an extendable hardware platform utilizing OSHW and OSS.
We talk about:
- business requirements and how they affected the choice of hardware platform (Olimex Lime2)
- hardware bugs how they are related to tight deadlines
- what is actually needed to build a custom shield
- maintaining and administering the whole platform
- 16:00 – 16:55 – Extending the lifetime of smartphones with Replicant, a fully free Android distribution – by Denis ‘GNUtoo’ Carikli
After a very quick introduction to Replicant and the smartphones ecosystem, we will look at what affects smartphones’ and tablets’ lifetime and how to increase it by making Replicant more sustainable.
That’s all for my virtual schedule. You’ll find the full schedule with 660 speakers, 688 events, and 67 tracks on the official website.