Sunday, January 17

Pi Zero Video Card Via Bare Metal Programming

Rolling your own synthesizer is no small feat, which is what [Thomas] has taken on with his project “Nerdsynth”. [Thomas] has an impressive amount of data on his site covering the overall design and progress of the project, but that isn’t what piqued our interest. [Thomas] has an on-board TFT display to navigate the versatile Nerdsynth’s menu nerdsynth-sketchbut he wanted to add video output to  do some video sequencing. After some investigation and poking around the available options he decided to tackle yet another sub-project (textbook scope-creep).

[Thomas] chose to do to some bare metal programming on the Pi Zero to use it as a video card for video output. By following a tutorial  from Valvers and modifying an SPI driver from Microelecroniki he was able to clone the video on an external monitor. This is a step in the right direction and we’ll have to keep an eye on his site for updates about video sequencing on the external display.

You can check out a recent demo of the Nerdsynth in action after the break, sadly you’ll have to settle for a pic of the cloned screen (below) until [Thomas] posts another update.

nerdsynth_tv-942x707

If you aren’t familiar with the term “Bare Metal Programming”, it refers to writing code that runs directly on the hardware. In fact we have discussed bare metal assembly on the Pi before. So think of “bare metal” as code running without an underlying operating system, as close to the machine language as possible, short of writing the program in machine language. The next closest language (that’s more than 7 years old, sorry Rust) would be assembly language. Assembly is that code you’ve noticed in datasheets but they never really say: “These instructions are in assembly language”. Another popular alternative is C, which will allow inline assembly if you really need it.


Filed under: ARM, Raspberry Pi

No comments:

Post a Comment