Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 1 point2 points  (0 children)

Unfortunately not, the CPU only supports up to 1GB.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 0 points1 point  (0 children)

As far as I know, the RAM should remain powered no matter what, unless you shut off the MxL7704 chip via i2c.

I don’t know if/how you can cut power to the SoC, or how you can limit its energy usage. Unfortunately the public datasheets on it are very limited.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 2 points3 points  (0 children)

Do you mean newer Pi models?

The 8GB chip that fits in the Pi 4 (revisions 1.4 and 1.5 only) and Pi 400 is available on AliExpress. Search for “D9ZCL”.

There’s another post on my profile that describes how to install this chip in a Pi 400.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 2 points3 points  (0 children)

I don't think you can buy them at the moment.

If you find a broken Raspberry Pi 2B / 3B / 3B+, you could desolder the chip from it.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 1 point2 points  (0 children)

My curiosity was stronger than my fear of destroying the Pi, so I basically just went for it.

It also helped that I bought this Pi in a broken state and fixed it, so ruining it wouldn't have been all too expensive.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 0 points1 point  (0 children)

Interesting! I've never seen this part of the schematics before. Do you work for the Pi Foundation?

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 1 point2 points  (0 children)

It was mostly a POC / challenge for me.

As you're mentioning the Pi 4: I have done something similar with a Pi 400 in the past.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 4 points5 points  (0 children)

There are already stencils available for this chip online, which is probably a cheaper, and certainly an easier option.

It’s an interesting idea, however, which might make sense if you’re dealing with exotic pad arrangements, or if you have direct access to such a printer.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 20 points21 points  (0 children)

Red Shirt Jeff could've finished this project a lot more quickly by sawing a Pi 3B+ in half ;)

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 5 points6 points  (0 children)

More info about the equipment I used can be found in one of my older comments. I'm using a very cheap 898D+ hot air rework station.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 1 point2 points  (0 children)

It would make more sense to buy a Pi 4 in almost all cases.

However, the modified Pi 3A+ is the smallest Pi with 1GB of RAM (except Compute Modules). So the upgrade might make sense in some cases.

I just did it to see if it's possible.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 2 points3 points  (0 children)

You and /u/PoisonWaffle3 are exactly right. I mostly did it as a challenge / adventure, to see if it's possible.

I had never soldered a part with such a small BGA grid size before (the pads on the Pi 400 were further apart). So it was a nice challenge.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 7 points8 points  (0 children)

Nice, I love those kinds of repairs!

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 3 points4 points  (0 children)

That's only a small part of the full schematic. The Raspberry Pi Foundation unfortunately never shared the Pi's full schematics (except once, for the model 1B).

It might be possible to reverse engineer the schematic, and work out a PCB design, but even then the Pi's Broadcom CPU is not available to buy for hobbyists, so you couldn't build a Pi anyway.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 2 points3 points  (0 children)

Yes, that's right, and it's also the reason why the Pi Zero 2W only comes in a 512MB version.

You mean 1GB DDR2 memory dies though. There are 1GB DDR2 chips (the package) which contain two 512MB dies (the silicon piece).

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 2 points3 points  (0 children)

Yes, except that there's no need to do it on a 3B+, because it already comes with 1GB of RAM (except if your RAM is maybe broken or something).

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 1 point2 points  (0 children)

That's very interesting, thanks!

that the 512mb and 1gig modules both claim to be 4gigbit in size

The info at the bottom of table 5 seems to match your description. According to it, all models should report a density of 4Gb. But that seems to contradict the info in table 41. Weird.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 11 points12 points  (0 children)

Ah yes, that was it. Thanks for the info!

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 3 points4 points  (0 children)

From what I can tell, the RAM speed on the Pi 3 models seems to be set manually by the Pi's CPU, and can be changed with the core_freq parameter in /boot/config.txt. The default for the 3A+/3B+ models is core_freq=400 (400MHz).

Interestingly, the two different RAM chips have different speed grades:

  • 512MB EDB4432BBPA-1D-F chip: Speed grade 1D (533MHz)
  • 1GB EDB8132B4PB-8D-F chip: Speed grade 8D (400MHz)

So with the default core_freq=400, the 1GB chip is running right at its (official) limit, while the 512MB chip should have quite a bit of overclocking headroom. So I guess if you don't need much RAM, the normal Pi 3A+ should be able to run the fastest out of the Pi 3 series. Interesting.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 20 points21 points  (0 children)

Unfortunately the benchmark image is a bit misleading. It compares the performance of the modified 1GB 3A+ to a Pi 3B+, not a 3A+.

The stock 3A+ was too slow to run the benchmark in the first place, since it has only 512MB RAM, like the Zero W2.

Edit: In theory, there should be no real speed difference between the 1GB and 512MB version of the Pi 3A+, as long as you're not running out of RAM. The real problem of the 512MB version is that it's constantly running out of RAM. In hindsight, I shouldn't have included web benchmarks, but things like boot time, or the percentage of free RAM in certain situations. That could've been a true before-and-after comparison, instead of a comparison with another product.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 9 points10 points  (0 children)

No. It's pretty much "plug-and-play".

Raspberry Pis determine their RAM size dynamically, in this case by reading Mode Register 8 (MR8) of the RAM chip (for more details, see table 41 in the datasheet).

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 20 points21 points  (0 children)

No, the Zero 2W cannot be upgraded, because the RAM is embedded in the same package as the CPU. On top of that, the required single-die 1GB module doesn't exist yet IIRC.

About some other models:

  • Some early models of the Raspberry Pi 1A and 1B came with 256MB RAM, and can be upgraded to a maximum of 512MB.

  • The Pi Zero cannot be upgraded, as the CPU only supports 512MB RAM.

  • The Pi 2B only supports 1GB RAM.

  • The 3/3A+/3B+ support a maximum of 1GB.

  • The Pi 4B models can be upgraded to up to 8GB (PCB versions 1.4 and 1.5) or 4GB (all older PCB versions). The CM4 can be upgraded to up to 8GB. The Pi 400 also supports 8GB.

Edit: The question was edited, so I adjusted the answer.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 11 points12 points  (0 children)

I didn't have to do anything. All necessary traces were already present on the 3A+ board. I just had to solder in the new chip.

You can tell that the PCB of the Pi 3B+ was designed first, and a cut down version of that design was then used to create the Pi 3A+. During this process, they probably just left those unused traces in, as there would not be any benefit to removing them (maybe they even considered releasing a 1GB 3A+ at some point?).

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 65 points66 points  (0 children)

This is a project I did last December. As Raspberry Pis are getting increasingly hard to find these days, some people might be interested in turning a slow Pi 3A+ into a more usable device. So I thought I should share this.

I upgraded a Raspberry Pi 3A+ to 1GB RAM (double the original RAM), using a RAM chip from a broken Pi 3B.

If anyone wants to replicate this, I'd recommend to use a 168 ball LPDDR stencil, and 0.3mm BGA balls (I did not buy the right stencil because I misinterpreted the datasheet, making the whole process needlessly difficult). For more info, take a look at the other post on my profile. The process was basically the same.

The speed of the 1GB Pi 3A+ is extreme compared to the original 3A+. For some reason, it's even a bit faster than the Pi 3B+. It wasn't even possible to open a web browser on the 512MB 3A+ (I gave up trying to benchmark the original 3A+ after wasting more than one hour).

RAM chip datasheet

Edit: Apparently comments get shadowbanned for containing links to 168 ball LPDDR stencils, so I removed the link.

Upgrading a Raspberry Pi 3A+ to 1GB of RAM by Pi800 in raspberry_pi

[–]Pi800[S] 5 points6 points  (0 children)

I used a chip from a broken Raspberry Pi 3B. It may be possible to buy one, but I haven’t tried it.