Adventures in overclocking stock Norns

My stock Norns with the original 4GB compute module doesn’t quite manage to run pirate-radio smoothly. I’d swap the module for a CM3+ with 32GB but they are not available anywhere.

So, I did what any reasonable person would do and:

  • bought a heatsink for the compute module;
  • installed it in the Norns;
  • overclocked the compute module from 1.2GHz to 1.5GHz, equivalent to the RPi 4 Shield.

Does it work?

Not really.

I started with overclocking my Organelle M as it’s easier to disassemble than Norns and uses a compute module without eMMC still hard to get in case it fries but easier to source than the other versions. The Organelle hack worked very well so that was encouraging.

Not so fast though

The Balena heatsink comes with screws and washers, you’re supposed to add some thermal paste and you’re good to go. This is what I did with the Organelle.

However, the original CM3 without a “+” in the name sports a naked CPU, making it lower than what the washers let you do:

I hoped I’d just use smaller washers but turns out it’s impossible. You can’t see it clearly in the picture but one of the caps is also quite a bit taller than the CPU:

So instead, I got some thermal pads:

The 1.5mm is for the CPU while the 0.5mm for the cap so it doesn’t touch the copper directly:

This worked better:

Before installing it back, I had to add the 0.5mm pad to the Norns PCB below the compute module as it wouldn’t start otherwise or would randomly return “Jack fail.”:

There is little space inside the chassis so likely there was some short between the module and the components on the PCB. With the thermal pad the problem went away. Here’s the compute module with the heatsink:

I’m still a little concerned the the display connector now lies directly on the heatsink but there’s no space to do anything else here.

Results without overclocking

pirate-radio still xruns for me in this scenario but the temperature after 10 hours of constant runtime is 55℃ compared to 74℃ without the heatsink. That’s a 25% reduction in CPU temperature! This is on a patch that averages over 2.0 load with spikes up to 2.56.

So far so good!


Just like in my Organelle report, I won’t go into details on how to overclock your unit other than say that you do it by editing /boot/config.txt.

I started by setting what I did for Organelle, which should result in a 1.5GHz clock. The device didn’t boot up. I tried setting it to 1.4GHz which is what the RPi 3 Shields use. That failed too. I tried 1.33GHz, 1.3GHz, and only at 1.28GHz I achieved a stable result.

That’s a paltry 7% over the regular clock. Naturally, the temperature results are pretty much the same as without overclocking. There’s barely any increase. And of course, I still get pirate-radio xruns.

There are a few differences between the situation on Organelle vs Norns that may be the reason why overclocking failed on the latter while it works so well on the former:

  • the compute module the Organelle uses is CM3+ Lite. The “plus” contains its own heatsink but likely there’s more to it.
  • maybe the CM3+ handles power better, so maybe overclocking a CM3+ inside Norns would work too.
  • maybe the Lite compute module works because it doesn’t have to deal with eMMC?
  • maybe the Organelle’s 9V power adapter has more headroom for overclocking than Norns’ USB power?

In any case, I had high hopes for this hack but sadly, no dice.