FOSDEM 2025 will take place on February 1-2 with over 8000 developers meeting in Brussels to discuss open-source software & hardware projects. The free-to-attend (and participate) “Free and Open Source Software Developers’ European Meeting” grows every year, and in 2025 there will be 968 speakers, 930 events, and 74 tracks.
Like every year since FOSDEM 2015 which had (only) 551 events, I’ll create a virtual schedule with sessions most relevant to the topics covered on CNX Software from the “Embedded, Mobile and Automotive” and “Open Hardware and CAD/CAM” devrooms, but also other devrooms including “RISC-V”, “FOSS Mobile Devices”, “Low-level AI Engineering and Hacking”, among others.
FOSDEM 2025 Day 1 – Saturday 1
- 10:30 – 11:10 – RISC-V Hardware – Where are we? by Emil Renner Berthing
I’ll talk about the current landscape of available RISC-V hardware powerful enough to run Linux and hopefully give a better overview of what to buy if you want to get into developing software for RISC-V. I’ll talk about the difference between cores, SoCs, and boards, who makes them, their performance, and how well they’re supported under Linux.
- 11:30 – 11:55 – Exploring Open Source Dual A/B Update Solutions for Embedded Linux by Leon Anavi
Open source options based on the dual A/B redundant update scheme have become widely adopted in the industry. This session will focus on three such solutions: Mender, RAUC, and swupdate. We will analyze their strengths and weaknesses, offering guidance on selecting the best solution for different use cases and industries. Additionally, we will explore advanced features such as HTTP streaming, which allows direct installation of updates without the need to download and store the update file locally. We will also discuss the potential of adaptive and delta updates, which are additional features built on top of A/B update schemes. These features minimize data transfer by sending only the changes, rather than the full update files.
The hands-on examples will demonstrate the integration of three different open-source solutions: Mender, RAUC, and swupdate – on two different devices: Raspberry Pi 5 and the open-source hardware Olimex I.MX8MP SoM, using the Yocto Project and OpenEmbedded. The demonstrations will highlight the differences in setup, configuration, and update management for each solution. Additionally, we will explore support for other build systems such as Buildroot, PTX dist, and distributions like Debian, Ubuntu, ArchLinux, and NixOS, emphasizing how each solution integrates with these environments.
This talk is suitable for engineers and developers looking to implement an open-source update solution for embedded Linux devices. It will provide a deeper understanding of the technical challenges and available open-source solutions, empowering attendees to address these challenges more effectively and focus on enhancing the unique features of their products.
- 12:00 – 12:40 – Add RISC-V support to your favorite Operating System by Adrian Vladu
This presentation focuses on the perspective of an Operating System maintainer – how easy it is to add RISC-V support to a Linux-based operating system nowadays.
The case study is done on a FOSS Operating System – Flatcar Container Linux. Flatcar Container Linux is a Container-optimized Linux distribution, CNCF incubated project, which has Gentoo as an upstream distribution.
We will go through the steps required to add RISC-V support, from the Linux Kernel quirks, the bootloader paradigms, and to the generic software support from the wider community: systemd, Docker, Kubernetes.
An important part that will be thoroughly presented is the current state-of-the-art hardware availability combined with virtualization support, very much needed for testing and faster iteration.
- 13:00 – 13:25 – usb9pfs: network booting without the network by Ahmad Fatoum and Michael Grzeschik
Linux v6.12 adds usb9pfs as a new USB gadget function, which can be used to mount a filesystem provided over USB.
Booting from an external rootfs in the form of NFS is already a staple in embedded systems development, but multiple issues complicate its usage:
- network interface required, which may not always be available
- Interference with normal network setup, especially in existence of switches
- Requires setup of multiple services: DHCP, TFTP, NFS…
- By using usb9pfs for the rootfs, these limitations can be avoided on all devices that feature a USB gadget port.
This talk will discuss the design of 9p and usb9pfs and showcase how streamlined development on a Yocto root file system can be with both barebox and Linux making use of usb9pfs.
- 13:30 – 13:55 – Adopting BlueZ in production: challenges and caveats by George Kiagiadakis
In 2024, I worked with a small team to bring up BlueZ as the Bluetooth stack of a real-world automotive In-Vehicle Infotainment (IVI) system. In this talk, I am going to discuss the steps that we went through, the challenges that we faced, the caveats of BlueZ in contrast with closed-source alternatives, and also present the contributions that we made to BlueZ and PipeWire as part of this process.
- 14:00 – 14:25 – All Open Source Toolchain for ZYNQ 7000 SoCs by Yimin Gu
Zynq 7000 SoCs are popular devices widely used in embedded scenarios when both CPU power and flexible logic are required. However, the ARM (processing system, PS) + FPGA (programmable logic, PL) combo makes developments rely on an even heavier set of propriety toolchains.
In this talk, I’ll introduce the recently developed GenZ, a free software BSP generator for the Zynq 7000 PS register configuration. Together with OpenXC7, the free and open-source FPGA toolchain for Xilinx 7-series chips, and an enlarging amount of open-source IP cores, development on Zynq 7000 SoCs can be done without a single piece of propriety tool.
The speed and ease of GenZ + OpenXC7 will be demonstrated on-site with an ARM laptop and Zynq boards.
- 14:30 – 14:55 – Getting more juice out of your Raspberry Pi GPU by José María Casanova Crespo andMaíra Canal
Unleashing the power of 3D graphics on the Raspberry Pi is an ongoing effort at Igalia. We are constantly exploring new opportunities to maximize the GPU’s potential. The process of identifying applications that can be optimized is highly rewarding. Every so often, we uncover a breakthrough, enabling us to boost application performance up to ~70%.
The graphics stack for the Raspberry Pi 4 and 5 is built on the Mesa user-space drivers (V3D/V3DV) and the Linux kernel driver V3D. These drivers are fully mature, with the upstream Mesa Vulkan driver V3DV having already achieved Vulkan 1.3 conformance, and the OpenGL/ES driver V3D exposing desktop OpenGL 3.1.
However, just having working, conformant drivers isn’t enough for us. In this talk, we will demonstrate how we go the extra mile to extract the maximum performance from the Raspberry Pi’s GPU, proving that a more performant embedded GPU is possible. In addition to explaining where we currently stand, we will showcase several cases where optimizations in the Mesa user-space drivers led to significant performance improvements. We will also review recent developments in the kernel driver, including support for Huge Pages in the GPU kernel driver and our experience using Transparent Huge Pages (THP) on an embedded device.
By the end of this talk, we hope the audience will have a better understanding of the graphics stack for embedded GPUs and how to start getting more juice out of an embedded board.
- 15:00 – 15:25 – The status of removing /sys/class/gpio and the global GPIO numberspace from the kernel by Bartosz Golaszewski
The GPIO sysfs interface for user space has been deprecated for many years. Its alternative, the GPIO character device and the associated libgpiod project, has been available since 2017. The library, along with its numerous bindings, has become the de facto standard tool for interacting with GPIOs from user space. Recently, it was supplemented by a D-Bus API and a reference implementation, addressing the long-standing issue of maintaining GPIO state persistence across different processes.
The sysfs interface is the primary user of the global GPIO number space in the kernel. Unlike other legacy components of the GPIO codebase, we cannot remove it without user space agreeing to stop using it. However, there remains a group of users who, for various reasons, refuse to migrate to the new uAPI. It has become evident that, without providing them with a 100% compatible experience, we will be stuck with the old interface indefinitely.
To address this, the latest addition to the family of user-space GPIO utilities is gpiod-sysfs-proxy – a libfuse-based user-space compatibility layer for the GPIO sysfs interface under /sys/class/gpio, using libgpiod to talk to the kernel.
This talk will cover why we aim to remove /sys/class/gpio (along with the in-kernel legacy APIs), the progress made so far, an introduction to gpiod-sysfs-proxy and the libgpiod D-Bus API, and a discussion of future plans.
- 15:30 – 15:55 – Reverse engineering CAN communication and building ECUs using Elixir and the BEAM by Thibault Poncelet
When tinkering with cars or other vehicles, being confronted with CAN communication or a similar bus is unavoidable. Throughout the past year, Thibault has been using CAN communication to build an Open Vehicle Control System and using it on a real car. In this talk, Thibault will explain how to get started with CAN reverse engineering, how he made different car parts from different brands talk together, and why Elixir and the Erlang Virtual Machine (the BEAM) are good candidates for them to quickly prototype ECUs with cheap parts.
- 16:10 – 16:20 – Bringing Oniro to Mobile: Challenges in Hardware Enablement by Francesco Pham
The Oniro Project, an open-source operating system built upon OpenHarmony and tailored for European market needs, is expanding its ecosystem to include mobile devices. In this lightning talk, we will discuss the ongoing effort to bring Oniro to the Volla X23 smartphone, focusing on the technical challenges and solutions in adapting Android drivers to a musl libc-based platform.
We will explore the role of libhybris in enabling compatibility with proprietary Android drivers, a critical step in hardware enablement for Oniro on mobile devices. The presentation will highlight how libhybris bridges the gap between the Bionic and musl libc environments, allowing us to leverage GPU acceleration and other hardware features while maintaining an open-source user space. Key challenges, such as adapting Android’s graphics stack and addressing ABI compatibility issues, will be outlined, along with our current progress in running Oniro in an LXC container for rapid testing.
This talk will provide insights into the broader implications of this work for the FOSS on Mobile ecosystem, offering a pathway to more accessible open-source mobile platforms. Join us to learn how Oniro aims to contribute to the vision of a truly open mobile ecosystem.
- 16:30 – 17:10 – How good is RISC-V: Comparing benchmark results by Jeremy Bennett
As RISC-V reaches maturity, we look at how RISC-V designs are performing. We look at how performance has improved over the years and how performance compares to other cores, particularly those from Arm. We’ll explore the impact of different extensions and compilers on the performance of compiled code. We’ll also look at how useful measuring performance using models is for predicting the performance of real silicon.
Throughout we will use mostly the Embench benchmark suites, with some use of SPEC CPU for application class cores. We will present the first results from the new Embench IoT version 2.0 test suite.
Finally, we will show how combining accurate benchmarking with simple machine learning can yield additional performance of compiled software. This will be illustrated with the OpenHW CV32E40Pv2, where we were able to improve benchmarked code density by 7% in just 24 hours.
- 17:30 – 17:55 – Developing BLE Host Applications with Zephyr by Florian Limberger
Bluetooth Low Energy, commonly abbreviated as BLE, is a well-known wireless communication technology aimed at low-power applications. It divides devices into two categories: low-cost, potentially high volume, battery-constrained peripheral devices such as headphones or heart rate monitors, and comparatively more powerful and less constrained central devices, such as smartphones and notebooks.
The Zephyr Project has supported developing BLE peripheral applications for a long time. But it may not be well known that it also supports BLE host applications, or central devices as the standard calls them. In his talk, Florian will take a look at how we can develop BLE host applications using Zephyr. After a (very) short introduction to the BLE protocol stack, he will delve into Zephyr’s Bluetooth API and more importantly, talk about the pitfalls he encountered while getting his feet wet with Zephyr. On the practical side, this talk will look into how BLE applications remain portable between boards by different vendors, and how the many BLE-enabled emulators and simulators provided by Zephyr can be used for quicker development and testing.
In this talk you will learn about:
- The basics of the BLE protocols
- The Zephyr Bluetooth API and its pitfalls
- How portable Zephyr applications using BLE are
- How you can utilize the Zephyr emulators and simulators for BLE development
- 18:00 – 18:40 – Upstream Embedded Linux on RISC-V: The Good, the Bad and the Ugly by Marcel Ziswiler
This talk looks at the state of upstream U-Boot, Linux kernel, FreedesktopSDK, and Yocto Project for the powerful SpacemiT K1-based Banana Pi BPI-F3. Nothing has been merged yet, but I took the various pieces posted on mailing lists or available as merge requests and gave them a spin. As a reference for comparison, I also looked at the vendor downstream stuff available from Banana Pi Team/SpacemiT.
- 18:40 – 19:00 – postmarketOS: what is it and what’s new? by Oliver Smith
A quick introduction to postmarketOS (Linux Mobile distro based on Alpine that has been ported to lots of devices by now!), as well as an overview of cool things we did throughout the last year or so. Also what we are up to :>
Source code: https://postmarketos.org/source-code/
FOSDEM 2025 Day 2 – Sunday 2
- 09:00 – 09:20 – f8 – an 8-bit architecture designed for C and memory efficiency by Philipp K. Krause
Even in modern devices, 8-bit processors are found, but the architectures used are often not well-suited to programming in high-level languages, such as C. e.g. MCS-51 (8051, 8052) based microcontrollers in the Realtek WiFi chipsets. The f8 is an architecture based on the experience and lessons learned from maintaining Small Device C Compiler (SDCC) and the many 8-bit architectures it supports. It is designed to find its niche as an 8-bit architecture in places where the power of RISC-V is not needed, and no byte of code or data memory should be wasted.
- 09:30 – 09:45 – Tux-EVSE, an open-source EV charger by Hugo Mercier
We introduce Tux-EVSE, an open-source suite of embedded software components for building a complete Electric Vehicle (EV) charging system using readily available hardware on Linux. Tux-EVSE is designed with a strong focus on security and ease of integration, utilizing a lightweight microservice framework (AFB) that isolates components for flexible development and testing. This modular structure allows developers to efficiently test and refine each component on a local machine before deploying to the final embedded hardware. The framework also embeds a security layer so that fine-grained permissions can be requested and granted to the application and/or services.
Written primarily in Rust, Tux-EVSE supports modern EV charging protocols, including ISO 15118-2x, DIN SPEC 70121, SLAC, and OCPP. We will detail the different components of the charger: which kind of hardware components it can use, how the charging logic is implemented, and how the modular architecture could allow one to adapt the charger to one’s needs.
- 09:50 – 10:20 – Gruessaugust the functional test harness by Mark Meyer
We’ll present the current state of Gruessaugust the open functional test hardness we developed for testing a custom tape plotter/labelling machine at the Welcome Werkstatt community workshop.
This test hardness “mocks” a GRBL CNC Controller, an I2C display, and a keyboard. All of these devices are then connected to the device under test. This allows us to push a change to the application code, rebuild the entire Raspberry Pi operating system image, and deploy and test to multiple different hardware versions. All test results, including a video that visualizes keyboard input and display output are then forwarded to the CI system.
Gruessaugust is the German version of the ruler, whose only duty is waving her hand at her people.
- 10:30 – 10:55 – Cyber-Physical WebAssembly: Interfacing with USB and I2C Hardware by Merlijn Sebrechts and Michiel Van Kenhove
Did you know you can use WebAssembly on IoT devices and microcontrollers? In this talk, we explain why anyone would do such a thing, and how to connect WebAssembly applications to hardware using USB and I2C interfaces.
WebAssembly allows embedded developers to use modern toolchains, diverse programming languages, and sandboxing technology on truly tiny devices like ESP32 microcontrollers. Support for these use cases is improving with the newly formed Embedded SIG and new interfaces for connecting WebAssembly applications to underlying hardware via USB and I2C.
We will cover the WASI-USB and WASI-I2C proposals and explain how to embed a device driver in WebAssembly. The session also takes a look at the overhead of these interfaces and embedded WebAssembly in general. The session closes with a demo of a USB device driver running inside of WebAssembly.
- 11:00 – 11:30 – Waste-Free Per-CPU Userspace Memory Allocation by Mathieu Desnoyers
Introduce the librseq per-CPU user-space memory allocator. It implements concepts similar to the Linux kernel percpu allocator in userspace, and thus reduces waste of per-CPU data structures hot cache lines by eliminating padding usually required to eliminate false-sharing, and in addition tackles issues that arise from resident memory waste when restricting processes with scheduler affinity or cpusets.
It allows prototyping kernel algorithms within the safe limits of user-space.
- 11:50 – 11:55 – Bringing AI to Wearable Systems: Integrating Vision, Audio, and Sensors on Constrained Hardware by Kris Kersey
Integrating AI into wearable systems demands a careful balance between ambition and the realities of limited memory, processing power, and real-time requirements. This talk explores how the OASIS project incorporates AI to deliver logical, accurate, and responsive functionality in constrained environments. Topics include selecting appropriate inference engines, evaluating quantized models, and optimizing AI for edge processing. We’ll also discuss integrating vision, audio, and sensor inputs into a cohesive system that adapts to user needs. The OASIS project is an open-source initiative focused on developing advanced wearable systems inspired by Iron Man.
The OASIS Project’s Website: https://www.oasisproject.net The OASIS Project’s GitHub Repos: https://github.com/The-OASIS-Project
- 12:10 – 12:30 – Lessons From 10 Years of Certifying Open Source Hardware by Michael Weinberg
10 years ago, the Open Source Hardware Association (OSHWA) kicked off the process of creating an open-source hardware certification. In the decade since, OSHWA has certified thousands of pieces of hardware from over 50 countries on 6 continents as compliant with the community definition of open-source hardware.
This presentation will discuss why the certification program was created in the first place, how it is being used today, and what lessons other communities might be able to learn from its success.
- 13:50 – 14:10 – Sonata – Open source hardware and bitstream for evaluating CHERIoT by John Thomson
The Sunburst Project was created to get CHERIoT Hardware into the hands of embedded engineers. CHERI and CHERIoT extend conventional hardware ISAs with new architectural features for enabling fine-grained memory protection and highly scalable software compartmentalization. Sonata is an open-source hardware board (PCB), bitstream, and all the constituent parts to allow engineers to experiment with CHERIoT. The Sonata design is fully open-sourced under an Apache 2.0 license. The board design has also been ported to KiCad. CHERI has been developed by the University of Cambridge and SRI International. CHERIoT was created by Microsoft. Ibex is managed by lowRISC. Sonata has been prepared by lowRISC CIC and NewAE.
- 14:15 – 14:35 – MicroBlocks 2.0: a complete makeover by Bernat Romagosa and John Maloney
MicroBlocks is a free (MPLv2) VM-based programming language for microcontrollers, with a graphical programming environment inspired by the Scratch and Snap! educational languages, and a virtual machine inspired by the Squeak Smalltalk-80 virtual machine.
In this talk, we present the new 2.0 version of the language and its IDE, with a completely redesigned UI, a new virtual machine with a smaller instruction footprint, lots of bug fixes, a whole new set of libraries and functionalities, and a new community-friendly translation system.
- 14:50 – 15:20 – The IHP OpenPDK Initiative: Status and RoadMap by Wladek Grabinski
In the field of semiconductor technology, compact modeling, and IC designs, the OpenPDK Initiative provides an international platform for discussing advanced technologies and fostering collaboration among industry and academic leaders in electronic design automation (EDA).
We review selected R&D topics presented at a recent event by prominent academic researchers and industrial professionals who presented and discussed innovative approaches in CAD/EDA tools, techniques including compact/SPICE modeling, and IC design that address the demands of emerging semiconductor technology applications. However, the semiconductor industry also faces many challenges in maintaining the growth of its workforce with skilled technicians and engineers.
To address the increasing need for well-trained workers worldwide, we must find innovative ways to attract skilled talent and strengthen the local semiconductor workforce ecosystem. The FOSS CAD/EDA tools with the recently available open access PDKs provide a new platform to connect IC design beginners, enthusiasts, and experienced mentors to benefit from the collaboration opportunities enabled by the fast-growing open-source IC design movement. The collaborative development of open-source integrated circuit (IC) designs is becoming increasingly feasible due to the rapid expansion of OpenPDKs recently offered by SkyWater, GF, and IHP with an open schedule of MPW Runs for FMD-QNC project in 2024-25.
This paper demonstrates the FOSS CAD/EDA contribution to the SPICE/Verilog-A modeling/standardization, complete IC design flow (Xschem, Qucs-S, ngspice, Xyce, OpenVAF, OpenEMS, Magic, kLayout, OpenRoad), in addition, selected, open-source examples of analog/RF and digital IC designs will be presented.
- 15:20 – 15:50 – The OpenFlexure Microscope by Julian Stirling
The OpenFlexure Microscope is an open-source laboratory-grade digital robotic microscope. As a robotic microscope, it is able to automatically scan microscope slides creating, enormous multi-gigapixel digital representations of samples. The microscope is already undergoing evaluation for malaria and cancer diagnosis in Tanzania, Rwanda, and the Philippines. As an open project, our key goal is to support local manufacturing of microscopes in low-resource settings.
[..] high-quality consistent documentation has enabled thousands of microscopes to be built around the world, in over 50 countries. Microscopes have been used on all seven continents, from the Antarctic sea ice to the rainforest in Panama. They have been used for educational workshops in Sweden and Ghana, and even built by mobile makerspaces in wartime Ukraine. Hospitals already use the microscope for remote consultancy and training, however without certification, it cannot be used for diagnosis.
Combining good documentation with accessible calibration routines, gives manufacturers and users confidence that their locally-manufactured device performs as well as the thousands of other OpenFlexure Microscopes around the world. Building in robust calibration is crucial in our push towards medical certification.
This talk will involve live microscopy demonstrations, give an overview of the microscope and its applications, as well as diving into deeper questions of open source workflows for managing diagnostic device design.
- 16:15 – 16:40 – ArduPilot: Trusted, Versatile, and FOSS autopilot for all and everything by Pierre Kancir
ArduPilot is a trusted, versatile, and open-source autopilot system supporting many vehicle types: multi-copters, traditional helicopters, fixed-wing aircraft, boats, submarines, rovers, and more. The source code is developed by a large community of professionals and enthusiasts.
ArduPilot enables the creation and use of trusted, autonomous, unmanned vehicle systems for the peaceful benefit of all. ArduPilot provides a comprehensive suite of tools suitable for almost any vehicle and application. As an open-source project, it is constantly evolving based on rapid feedback from a large community of users. The Development Team works with the community and commercial partners to add functionality to ArduPilot that benefits everyone. Although ArduPilot does not manufacture any hardware, ArduPilot firmware works on a wide variety of different hardware to control unmanned vehicles of all types. Coupled with ground control software, unmanned vehicles running ArduPilot can have advanced functionality including real-time communication with operators. ArduPilot has a huge online community dedicated to helping users with questions, problems, and solutions.
This talk is an introduction to the ArduPilot project. It will emphasize what can be done from a software point of view, what hardware (we are far from Arduino) and robotic vectors can be used (we aren’t not restricted to UFO), and what are the testing and simulation capabilities (aka stop crashing your robots). It will also showcase its relationship to some other major projects like ROS2 and Gazebo or AI (added for better SEO).
This won’t be a tutorial or live demo session but a true introduction of the project.
- 16:40 – 17:00 – Milliwatt-sized Machine Learning on microcontrollers with emlearn by Jon Nordby
In recent years, generative AI models have come to dominate the discourse around artificial intelligence and machine learning. Both Large Language Models and other generative models for image/video/sound use huge deep-learning models, running on expensive and energy-intensive GPUs. However, there are several other application areas of machine learning operating under other constraints. One of these is the area of “TinyML“, where machine learning is used to analyze sensor data on microcontroller-grade systems. A typical TinyML system is under 1 watt, under 1 MB of RAM and FLASH, and under 10 USD bill-of-materials.
emlearn is an open-source project started in 2018, which provides machine learning inference implementations for microcontrollers. It is written in portable C99 code and supports models trained with scikit-learn and Tensorflow/Keras. Since 2023 the emlearn project also provides bindings for MicroPython, a Python for microcontrollers.
In this talk we will talk about machine learning on microcontrollers; the applications, developments in the field over the last years, and current trends – both on the software and hardware side. This niche of machine learning is extremely concerned with computational efficiency, and we believe that these perspectives may be useful also to developers working in different areas.
The full schedule for FOSDEM 2025 sorted by day, track, or devroom can be found on the FOSDEM website. The event is free to attend as usual, and all/most talks should eventually be uploaded your YouTube with links to videos and slides available online.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress