• Asynchronous Rust on Cortex-M Microcontrollers

    In this article, we explore the inner workings of Futures, cooperative scheduling, and Async Rust executors, highlighting their significance in optimizing resource utilization. Moreover, we introduce the Rust Embassy project, an innovative framework designed to unlock the power of asynchronous programming on microcontrollers.

  • Matter, Thread, and Memfault

    I’m Markus, software engineer @ Tridonic, where we are working on Internet-connected wireless lighting solutions based on the Matter standard. To be able to monitor the reliability of those devices we’ve been using Memfault and tied it into Matter/Thread and its UDP/IPv6 stack based on the Nordic Connect SDK. In the following, I’ll show you the modifications we’ve done to enable Memfault in an IPv6 solution.

  • What we've been reading in June

    Here are the articles, videos, and tools that we’ve been excited about this June.

  • Emulating a Raspberry Pi in QEMU

    This article dives into QEMU, a popular open-source emulator, and how to use it to emulate a Raspberry Pi on your desktop. At the end of the article, we will put the whole environment in Docker, so you will be able to emulate a Raspberry Pi by just using a Docker container.

  • Measuring Stack Usage the Hard Way

    This article is intended to shed some light on strategies for measuring stack memory usage on a small embedded system.

  • What we've been reading in May

    Here are the articles, videos, and tools that we’ve been excited about this May.

  • Bazel Build System for Embedded Projects

    Selecting a build system is an essential decision when creating a project. Changing is always painful, especially in a mature repository. Therefore the choice should be made carefully. With this article, I will try to describe a few advantages of what Bazel can provide in the context of an embedded repository and show how to set up a build environment with a cross compiler from scratch.

  • Zephyr Deep Dive: Ring Buffers

    This post covers Zephyr’s built-in ring buffer API, a component commonly used in producer-consumer scenarios. We will cover how ring buffers in Zephyr work, when to use them, and their strengths and weaknesses. This post will close with an example of augmenting ring buffers with waiting capabilities.