BarkBark.zone


electric escapades of an internet dog


Automatic RP2350 Overclocking

Oct 28, 2024

The front of the board, assembled

Silicon is my main interest. I need tha hardware. GIMME HARDWARE. Firmware is fine and good, but hardware hacking is the most fun. Gotta push the chip to the limits and make it do stuff it wasn’t supposed to do. Make use of every gate on that chip! Why else are they there?

I’ve done a fair amount of overclocking with the Raspberry Pi RP2040. It’s actually super easy to overclock, and one of my designs (the Rick Roll SAO) relies on it to function. It’s pretty widely known in the community that you can push the clock speed chip pretty far without a whole lot of consequences.

This docments my endeavors to not only overclock the newer, more powerful RP2350, but to characterize the silicon and develop an algorithm that automatically overclocks for you. I hope I don’t cause a run on chips with high RO values.

Not go to all mommy blogger on you, but there’s a bit of backstory here

DEF CON 32

I attended DEF CON 32 this year, where the RP2350 powered the main admission badge that was handed out to con-goers. Here’s mine hooked up to a JTAG debugger in my hotel room

Debugging the badge

Halted the CPU!

Raspberry Pi actually had a prescence at the convention, and principle engineer Luke Wren was there at their booth. I spoke with them a lot about silicon, overall they seemed super cool. After a long conversation, they gave me some samples of the RP2350 microcontroller to take home! I was super stoked. I promised I would make something worthwhile with the chips.

Early Samples of the 2350

The second day of the con they brought some even more cool stuff.

A test board for the RP2350

This is their internal test jig they used for the RP2350 (I think, this might have been for the 2040). I thought I was just allowed to look but they let me touch it and get a couple photos. Usually stuff like this requires an NDA.

RP2040 Test Board

The chips themselves are on these daughterboards that snap into the jig with a couple of high pin count connectors. Really cool design.

Early Pico

They also had a super early version of the Pico. Originally, this was supposed to be known as the Picoboard, as you can see on the silkscreen. There’s a little space invader on it too, Luke told me they wrote a space invader demo for the board.

Early Pico Back

Anyway.

The Idea

I had ten RP2350 chips in hand that I promised I would do something with, and I intended to make good on that.

That night I was reading the datasheet for inspiration when I came across this line.

Datasheet Automatic Overclocking

Ok, there’s a lot there. Basically this is saying that every chip has something called the RO value (more on what this actually is later). The higher that value, the faster the chip can go. How fast? We don’t know. Gotta collect more data.

Lets collect that data!

I am going to collect the RO values of a bunch of chips, see how fast they will overclock until they die, and then correlate the RO values with how fast the chip will go.

What’s an RO?

RO stands for Ring Oscillator. Ring oscillators are basically just a really simple, really innaccurate clock that lives inside your chip. They’re usually the clock source the system uses while it bootstraps itself, until it is alive enough to use a real crystal as its main clock. Depending on your application, you can sometimes continue using the RO as your main clock. This means you don’t need a crystal on your PCB, which can lower your cost. I do this all the time with the little ATMega328p boards I make.

The RO and Overclocking

The correlation between the RO and how fast you can overclock your chip is pretty simple. The faster your RO, the more you can overclock your chip. Not every chip is created equal. Transistors these days can be atoms wide, and a couple of atoms in the right place will mean your chip will perform better. Silicon Fabrication Engineers control for this as much as they can, but there is always some degree of variance on your final chips. Some will be fast, some slow, some won’t work at all.

Making a Board

In order to test chips, I need a board. I whipped this one up in KiCad.

3D Rendering of the Board

Schematic

It has a couple important things for my experiments

  1. Ability to use an onboard clock or feed in an external one
  2. On and off board power rails for powering the chip
  3. A 12V rail to control a fan (yes I want to try actively cooling these)
  4. Shunt resistors for measuring power consumption
  5. A spot to solder in a regular old RPi Pico 1. This will monitor the health of the 2350 and administer the test.

I ordered the boards with PCBWay (got a bunch of credit there because of Open Sauce. Thanks guys!) and they showed up a bit later

Front of the Board

Obviously, I had to add silkscreen memes

Me. Bark

He Pog

I also had to hand assemble and reflow these, since I wasn’t about to send my extremely rare chips in to PCBWay

Reflowing the board

Upon testing the thing I quickly realized that I swizzled my USB D+ and D- pins. Fuck!

Fix the fuckig USB

Bit of hackery solved this though.

The Experiment

I intend to break my experiments up into a couple categories:

First, I was going to test the chip using the recommended board design from Raspberry Pi. This will mimic the average user who just wants to know how fast they can clock the chip on their regular old Pico 2 board. I suspect the data from this will be the most useful.

After that though, I want to test the chip under completely ideal conditions. I’m talking external clocks, externally power rails with VSense, heatsinks and fans, and sanding down the chip’s epoxy for better themal conductivity. How far can this chip go!?

That’s where I am now. Writing the code. Will update more later

:wq



webring

dcpunks / PawprintPrototyping / notgood.link / pinball! / elf / kebo / dcpunks / stinky / alex lynd /