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 · 13 min · Ivan Eduardo Guerra

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”1....

April 27, 2023 · 17 min · Ivan Eduardo Guerra

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)1 came up at work. The minimal latency requirement drove the decision to run the BBB with a PREEMPT_RT2 patched kernel. Luckily, Robert C. Nelson, one of the Beaglebone Black maintainers, maintains a set of scripts for building a kernel specifically for the BBB3. Among the many kernel versions offered are variants that have had the PREEMPT_RT patches already applied!...

April 22, 2023 · 4 min · Ivan Eduardo Guerra