GPIO Driven Synchronization

Have you ever heard of the Kuramoto Model? The Kuramoto Model Wikipedia page has an impressive video showing out of phase metronomes synchronizing: Could two or more computers synchronize in a similar fashion? What would be the common “fabric” between the machines? In the clip with the metronomes, the base board is crucial in bringing the metronomes into phase. Perhaps you could use GPIO signals to achieve a similar link between two computers. ...

May 29, 2023 · 12 min

Real-time Linux App Development

If you’re an embedded systems programmer, you have likely touched on the topic of real-time operating systems (RTOS). There are plenty of commercial RTOSes available on the market: VxWorks, Integrity, DeOS, Helix, the list goes on. As a hobbyist, you may not have thousands of dollars to spend paying for commercial licenses. Real-time Linux can fill the void by providing a path to a soft real-time system. This post takes a tour through the advice given in John Ogness’s 2020 presentation: “A Checklist for Writing Linux Real-Time Applications”. You’ll explore how to optimize a Linux system and application for real-time execution using John’s real-time Linux development checklist. ...

April 27, 2023 · 15 min

Building and Deploying a Real-time Kernel to the Beaglebone Black

Not long ago, a project that involved a low latency app running on a Beaglebone Black (BBB) came up at work. The minimal latency requirement drove the decision to run the BBB with a PREEMPT_RT patched kernel. Luckily, Robert C. Nelson, one of the Beaglebone Black maintainers, maintains a set of scripts for building a kernel specifically for the BBB. Among the many kernel versions offered are variants that have had the PREEMPT_RT patches already applied! The goal is simple: flash the BBB with the latest console image rootfs and Linux kernel (RT patches included). ...

April 22, 2023 · 3 min