Blog

A Glitch in the Matrix

This post is the third in a series looking at the design and implementation of my Glitch demo and the m4vgalib code that powers it.

In part two, I showed a fast way to push pixels out of an STM32F407 by getting the DMA controller to run at top speed. I described the mode as follows:

It just runs full-tilt, restricted only by the speed of the "memory" [or memory-mapped peripheral] at either side...

But there's a weakness in this approach, which can introduce jitter and hurt your video quality. I hinted at it in a footnote:

...and traffic on the AHB matrix, which is very important — I’ll come back to this.

Quite a bit of m4vgalib's design is dedicated to coordinating matrix traffic, while imposing few restrictions on the application. In this article, with a minimum of movie puns, I'll explain what that that means and how I achieved it.

Pushing Pixels

This post is the second in a series looking at the design and implementation of my Glitch demo and the m4vgalib code that powers it.

Updated 2015-06-10: clarifications from reader feedback.

For the first technical part in the series, I'd like to start from the very end: getting the finished pixels out of the microprocessor and off to a display.

Why start from the end? Because it's where I started in my initial experiments, and because my decisions here had significant effects on the shape of the rest of the system.

Introducing Glitch

Hey, look! I made a little graphics demo!

Switching this site from Jekyll to Hakyll

Update from four years later: I've switched away from Hakyll. These notes are here for their historical value only.

I used to manage this site with Jekyll. I've now switched to Hakyll. Here's my reasoning and some notes on how it went.

Project Loon

While I've been blogging about my personal projects off and on, I've been awfully quiet about my day job. Now I can tell you why.