This page collects some talks I gave at various events.

The source code for the slides is available on my GitHub repository.

Basics of I²C on Linux


This talk is an introduction to using I²C on embedded Linux devices. I²C (or I2C) is a simple but flexible electronic bus to allow low-speed communication between the CPU and all sorts of chips: PMICs, ADC/DACs, GPIO expanders, video sensors, audio codecs, EEPROMS, RTCs and many more. It is so popular that knowing it is a must for any embedded system engineer.

Luca will first give an introduction to what I2C is at the electrical level. He will then describe how I2C is implemented in the Linux kernel driver model and how that appears in sysfs, how to describe I2C devices using device tree and how to write a driver for an I2C device. Finally he will present the tools to communicate with the chips from userspace and share some debugging techniques, including inspection of the physical bus and software-level debugging.

I gave this talk during Embedded Linux Conference Europe 2022 (talk page, slides, video).

License compliance for embedded Linux devices with Buildroot


Producing a Linux-based electronic device requires to put together lots of open source software packages, which is a complex task.

Complying to the licensing obligations for each of them is also complex, especially if you are not a lawyer. Not complying is immoral, illegal and risky.

Discover how your build system can help you!

With live demos, Luca will introduce you to:

  • how Buildroot builds all the needed software components in a simple way;
  • which are the obligations for the most common licenses;
  • what Buildroot can (and what it cannot) do to help you in being compliant.

I gave this talk during FOSDEM 2020 (talk page, slides).

Supporting Video (de)serializers in Linux: Challenges and Works in Progress


Video serializer and deserializer chipsets are more and more used in embedded Linux systems to transmit raw video at several meters distance. Yet the kernel still lacks support for them, despite the attempts seen so far.

Luca will give an overview of the existing chips and the current mainlining attempts. He will then introduce the peculiar requirements of his application and the idea behind his implementation effort.

Special attention will be given to the current limitations of V4L2 and Device Tree that prevent to fully exploit the hotplug features of the chips, and how they influenced his implementation.

The I2C address translation available in some chips, and how to model it in the kernel, will also be covered.

I gave this talk at Embedded Linux Conference Europe 2019 (talk page, wiki, slides).

Buildroot vs Yocto: Differences for Your Daily Job


Buildroot and Yocto, the two leading embedded Linux buildsystems, have largely overlapping goals but vastly different implementations.

Perhaps you’re familiar with either, and wonder how your daily job would change if you used the other.

Luca will share insights he gained while managing projects with both tools, spending a lot of time in learning how to achieve the same goals in a different way.

He will give a sort of “translation table” to ease the transition between the two, covering: bootstrapping a project, what happens under the hood, invoking the build, customizing the rootfs and tweaking recipes.

I gave this talk at:

Buildroot — Making Embedded Linux Easy


Buildroot generates all the software needed for an Embedded Linux system.

In this practical lab we will explore how it works, we ‘ll use it to set up an embedded system from scratch and customize it adding components.

I gave this talk during Linux Day 2018 (slides, italian).

ARM64 + FPGA and more: Linux on the Xilinx ZynqMP


The Xilinx Zynq UltraScale+ MPSoC (aka ZynqMP) is a powerful and complex chip featuring 64-bit cores, 32-bit realtime cores, a large FPGA, a GPU, video codecs and dedicated power management and security units.

Luca will first give a brief overview of the hardware architecture and how it differs from other SoCs.

Then he will explain with technical details how Linux can fully leverage the SoC resources. FPGA and booting issues will be covered in detail, but using the hardware accelerators and software support will also be discussed.

I gave this talk during FOSDEM 2018 (talk page, slides).

Build Automation: an introduction to Make, Autotools and CMake


Translating source code (e.g. C or C++) into an executable involves several steps: looking for libraries, compiling, linking… How can I automate them? Which are the best tools for an open source software? Let’s discover the most widely used: Make, Autotools and CMake.

I gave this talk during Linux Day 2017 (slides, italian).

How I survived to a SoC with a terrible Linux BSP


System-on-Chip vendors typically provide a Board Support Package (BSP) which should be a good starting point to develop the software for an embedded Linux system. However they often seem to misunderstand what the software designers want, and deliver something that makes their life harder without any apparent benefit.

In this talk Luca will share some of his experiences with such vendor BSPs, featuring jurassic kernels, non-working drivers, non-existing bootloaders, code of appallingly bad quality, ineffective customer support and Windows-only tools.

You will discover why he spent weeks in understanding, fixing and working around BSPs instead of just using them. The effects on the final product quality will be described as well.

Luca will also discuss what the options are when you face such a BSP, and what both hackers and vendors can do to improve the situation for everybody’s benefit.

I gave this talk at:

Object-oriented programming in C in the Linux kernel


Object-oriented programming is necessary in any complex software. Even though it is written in C, the Linux kernel is no exception. Let’s see into its source files how it can be object-oriented without the support of its programming language. We’ll discover how a C++ compiler works.

I gave this talk during Linux Day 2016.

You can download the the slides (PDF, italian).

Data processing on the command line


The command line gives a access to a collection of tools that can be combined in infinite ways. Let’s use them together to filter and process large amounts of data on the fly.

I gave this talk during Linux Day 2016.

You can download the the slides (PDF, italian).

Linux and electronics with Scratch and Raspberry Pi

This is a lecture made to teach to secondary school students how computer programs can manage electronic circuits. In an hour I showed how to automate a smart traffic lights system using Scratch on a Rasbperry Pi.

I gave this lecture to three classes in Albino, Italy in October 2016.

You can download the slides (PDF, italian).

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.