RP2040 DMA Hack Makes Another ‘CPU Core’

[Bruce Land] of Cornell University will be a familiar name to many Hackaday readers, searching the site for ‘ECE4760′ will bring up many interesting topics around embedded programming. Every year [Bruce] releases yet more of the students’ work out into the wild to our great delight. This RP2040-based project is a bit more abstract than some previous work and shows yet another implementation of an older hack to utilise the DMA hardware of the RP2040 as another CPU core. While the primary focus of the RP2040 DMA subsystem is moving data between memory spaces, with minimal CPU intervention, the DMA control blocks have some fairly complex behaviour. This allows for a Turing-complete CPU to be implemented purely with the DMA hardware and a sprinkling of memory.

The method ties up three of the twelve DMA channels, and is estimated to have a similar performance to ‘an Arduino’ but [Bruce] doesn’t specify which one of the varied models that could be. But who cares anyway? Programming the CPU is a matter of leveraging the behaviour of the hardware, which is all memory mapped and targetable by the DMA. For example, the CPU can waggle GPIO pins by using the DMA to write values to the peripheral address space. The basic flow can be seen in the image above. DMA0 is used as the program counter, which points DMA1 to an array of DMA control blocks, a sequence of which codes for some of the ‘opcodes’ of the CPU model. DMA0 chains to (hands over control to) DMA1 which reads the control blocks and configures itself accordingly. DMA1 performs whatever data move is programmed, chains to DMA2, which in turn reprograms the DMA0 program counter to point to the next block in the list to be executed by DMA1.

Continue reading “RP2040 DMA Hack Makes Another ‘CPU Core’”

Virtual Eurorack Based CPU Computes To The Beat Of A Different Drum Module

In Arthur C. Clarke’s 1972 story “Dial F for Frankenstein”, the worlds first global network of phone exchanges was created by satellite link, and events happened that caused the characters in the story to wonder if the interconnected mesh of machinery had somehow become sentient. And that’s what we wondered when we saw this latest virtual CPU construction built by GitHub user [katef] and made from a virtual analog synthesizer software called VCV Rack.

Analogous to a Redstone computer in Minecraft, there’s no physical hardware involved. But instead of making crazy synth sounds for a music project, [katef] has built a functioning CPU complete with an Arithmetic Logic Unit, an adder, and other various things you’ll find in a real CPU such as registers and a clock.

While no mention is made of whether the construct is sentient, [katef] fully documented the build on their GitHub page, and so go check that out for animated pictures, links to more information, and more. It’s quite impressive, if not just a little bonkers. But most good hacks are, right?

We love unique CPU builds, and you might get a kick out of this one made from- that’s right- 555 timers. Thanks to [Myself] on the Hackaday Discord server for the tip, and be sure to send in your favorite outrageous projects to the Hackaday tip line!