The Linux Plumbers Conference, the premier event for developers working at all levels of the plumbing layer and beyond, takes place in Richmond, Virginia on November 13-15. The event will be in-person at the Omni Richmond Hotel and remotely, however most of the presenters will be in-person. Learn more about the conference on the main conference website.
Zephyr will be represented in several sessions and a microconference. All times below are in Eastern Standard Time and the room/timing can change depending on the conference.
November 14 at 4:30 – 5:15 pm: Putting Linux into Context – Towards a reproducible example system with Linux, Zephyr & Xen – Philipp Ahmann, Robert Bosch GmbH
Demos on embedded systems using Linux are plentiful, but when it comes to reproducing them, things get complicated. Additionally, on decent embedded systems Linux is only one part of the system and interacts with real-time operating systems and virtualization solutions. This makes reproduction even harder.
Within the Linux Foundation’s ELISA project, we started to create a reproducible example system consisting of Linux, Xen, and Zephyr on real hardware. This is the next step after we achieved a reproducible system with a pure Linux qemu image.
The idea is to have documentation, a continuous integration including testing, which can be picked up by developers to derive and add their own software pieces. In this way they should be able to concentrate on their use case rather than spending effort in creating such a system (unless they explicitly want this). We also show how to build everything from scratch. The assumption is that only in this way it is possible to get a system understanding to replace elements towards their specific use cases.
We had challenges finding good hardware, tools, freely available GPU drivers and more and we are still not at the end. A good system SBOM is also creating additional challenges, although leveraging the Yocto build system has provided some advantages here.
While we are setting up the first hardware with documentation from source to build to deployment and testing on embedded hardware, we aim to have at least two sets of all major system elements like Linux flavor, a choice of virtualization technique, real-time OS and hardware. Only when software elements and hardware can be exchanged, we identify clear interfaces and make a system reproducible and adoptable.
Open Questions are:
- What will be a good next hardware to extend this PoC scope?
- Where do open source, security, safety, and compliance come best together?
- Which alternative real-time operating systems and virtualization should be incorporated?
Wednesday, November 15: Internet of Things MC (2:30 – 6:15 pm)
The IoT Microconference is a forum for developers to discuss all things IoT. Topics include tools, telemetry, device drivers, and protocols in not only the Linux kernel but also Real-Time Operating Systems such as Zephyr. All sessions will be in the James River Salon A at the Omni Richmond Hotel and all times listed below.
2:30 – 3:05 pm: Linux-wpan updates – Stephen Schmidt
Topics we’ll discuss include:
- team maintainership
- recent and upcoming features: mlme, beacons, scanning, associations, peers
- basic parts for a pan coordinator userspace service
- wpanusb generic specification challenges (phy layers, channels, multi-band, hw
- link-Layer security and status and problems
3:10 – 3:45 pm: TSCH@Zephyr: IEEE 802.15.4 SubG IIoT in the Making – Florian Grandel, the Zephyr Project Community Member
Zephyr’s native IEEE 802.15.4 L2 is a hidden treasure: It supports a much larger variety of SoCs, vendors and PHYs than its more popular OpenThread counterpart. Native L2 not only runs the common 2.4G O-QPSK modulation but also has rich SubG support on all regional bands, from legacy BPSK all the way to SUN O-QPSK, FSK and OFDM and even initial support for HRP UWB. The latter is increasingly hot as mobile manufacturers converge around 802.15.4z/FiRa for precision UWB indoor localization. When I realized this huge potential I immediately wanted to leverage it for industrial use cases. That’s when the TSCH@Zephyr project was born in late 2022.
TSCH is IETF/IEEE’s open contender to the proprietary WirelessHART standard (and to some extent to ISA 100.11a): a reliable and available wireless (RAW), low-power, deterministic real time protocol, relevant to wireless industrial automation, TSN and distributed battery-driven IIoT sensor networks.
This BoF presents the current state of affairs wrt TSCH, SubG and distributed clocks @ Zephyr. We’ll run through solved and unsolved challenges on the way to support a precision TDMA protocol on Zephyr’s TI CC13/26xx driver, look at related driver API changes and at some of the underpinning conceptual work re precision distributed clocks. The latter are a cornerstone of an embedded RTOS that wants to provide re-usable primitives for all kinds of precision timing applications like ranging, PTP, 15.4 superframes/DSME/LE, TSN/DetNet, industrial ethernet/SERCOS/Profibus/… or the upcoming 5G/6G RAW extensions.
3:50 – 4 pm: Zephyr Retro-and-Prospective: Project Growth, Long Term Support, and Linux Interoperability – Christopher Friedt
Zephyr has been a part of the Linux Plumbers IoT Microconference since the first year in 2019. Needless to say, much has happened in that short period of time.
Increasingly more devices are shipping with Zephyr. More companies are becoming members. More devices and are compatible out-of-the-box with Linux (and macOS, and Windows). The Internet of Things is made of devices both big and small – from Edge devices to The Cloud. Zephyr usage has skyrocketed from personal BLE monitors, to Industrial IoT, all the way to the some of the highest-throughput datacenter accelerators that power The Internet.
This will be a Lightning-Talk style recap outlining the rapid growth that we have seen, major features added, standards supported, and problems solved, in large part due to you!
We’ll touch on what went great (and not-so-great), provide pointers for developers looking to transition from Zephyr LTSv2 to the up-coming LTSv3, and offer a glimpse into what is on the horizon for the Linux and Zephyr IoT Ecosystem.
4:30 – 5:05 pm: Shared FPU Support in Zephyr for ARM64 and RISC-V – Nicolas Pitre, Baylibre
Computers are good at doing computations, obviously. But this is not that simple when floating point numbers are involved. Many processors implement a dedicated floating point unit (FPU) to perform computations on such numbers much faster compared to using the regular arithmetic logic unit (ALU).
FPU usage is not free though, especially when an operating system is involved whose purpose is to arbitrate resource usage amongst competing computing tasks. The FPU context may be quite large and simply preserving and restoring it across task switches, just like with the ALU context, may represent a significant overhead we want to avoid when possible, especially on an RTOS such as Zephyr. But adding smartness to the FPU context switching does come with its share of challenges and surprises.
In this presentation we’ll quickly review the IEEE754 floating point standard in the context of ARM64’s and RISC-V’s FPU. Then we’ll look in greater details at Zephyr’s FPU sharing support for those architectures, design rationales, as well as some interesting snags the implementation had to deal with.
5:05 – 5:40 pm: Challenges in Device Tree Sync – kernel, Zephyr, U-boot, System DT – Nishanth Menon, Texas Instruments, Inc.
he description of hardware through Device Tree, which includes Firmware in some instances, has become an increasingly common practice in many software ecosystems. However, despite various efforts, the device tree description of hardware has yet to be standardized across different software ecosystems, creating challenges for users, automated tools, and ecosystems.
The objective of this session is to:
a) Share experiences of device tree challenges seen with U-Boot, Zephyr, and kernel in the recent attempts for support of Texas Instrument’s AM625, TDA4VM platforms
b) Rationale and challenges created by the diverse approaches
c) Propose a hybrid approach toward the Zephyr device tree support for TI platforms
5:40 – 6:15 pm: Breaking Barriers: Arduino Core API advancements in Zephyr, Linux and IoT Systems – Dhruva Gole, Texas Instruments, Inc.
This presentation will provide an overview of the Arduino Core API and Zephyr RTOS, and explain how their integration can simplify and streamline IoT development. We will cover the advantages of using the Arduino programming model with Zephyr, and how it can benefit developers by providing access to a wide range of pre-built functions and modules. The presentation will also cover the key features of the Arduino Core API for Zephyr RTOS, including digital and analog input/output, serial communication, and peripheral interfaces. We will discuss how these features can be used to create real-time applications with reduced development time and complexity.
There is still scope to achieve an even more seamless experience for beginners, by integrating it with Platform IO or Arduino IDE. However this approach of how we can tie zephyr, the Arduino core module and platform IO needs to be discussed further, as to what the ideal way to do this would be, and if there are other better platforms to target instead.
We will also explore possibilities as to how one can leverage a Linux Host machine as a CI tool to enable development and testing of an Arduino application code with the help of native_posix target. This can help Arduino Code projects to test and validate their codes faster and in a simpler fashion. No clear way to do this exists today and this too is a topic that could garner some attention.
There is also room for improving the Arduino Core API support to include the SPI, CAN and USB implementations. There’s also an opportunity to leverage the excellent BLE stack in zephyr in an Arduino friendly way using something like the ArduinoBLE compatible calls. The talk will cover a few approaches to tackling these challenges and hope to get better suggestions or reviews from the community.