underclocking raspberry pi 3 B+ to conserve power

pi lightning

While loading all the packages and software I need for my battery capacity tester / analyzer on my new pi 3 B+,  I would get the undervoltage lightning bolt, and the pi would reboot.  Half the time, it would crash again before getting to the desktop.  If I was lucky enough to get that far,  it would crash again while trying to install packages like apache2 and php7.

I have been using a simple power supply circuit for a long time based on an LM7805  voltage regulator chip in a TO-220 package plus a good heat sink, and with a couple of reservoir capacitors to power my pi projects.

LM7805 5VDC power supply circuit
LM7805 5VDC power supply circuit

It has worked great for me with no issues using a pi 2B and the pi 3B.  On the new pi 3B+, however it simply is not enough.  The new pi 3B+ has an aluminum heat sink to improve  thermal management issues due to the 1400MHz clock rate of the CPU and requires a 2.5 amp power supply.  The particular LM7805 chip I use can supply 2 amps;  enough to power on, but cannot supply power under a significant load.

I am looking into using an LM2576, however it requires several external components that I did not have on hand like a 100uH inductor,  and I wanted to get this dude up and running right now.

I decided to try and see if underclocking the CPU would get me by.   I added the following to /boot/config.txt to throttle the clock speed to 900MHz:


arm_freq=900

After rebooting,  I still got the occasional lightning bolt, but it never shutdown.  I then put the pi 3 B+ under a prolonged stress test that maxed out one core of the CPU for over 10 minutes and browsed heavily on chromium during the test.  I would reach 100% capacity on the CPU, but it never shut down.  I will pursue a better LM2576-based  power supply circuit, but this is a good temporary fix.

raspberry pi 3 B+ based battery capacity test analyzer
raspberry pi 3 B+ based battery capacity test analyzer
raspberry pi 3 B+ based battery capacity test analyzer
battery load test analyzer internals. Uses 3ea MCP3208 ADC’s, pi 3B+, adafruit pi cobbler, BPS POW-3U prototype board.

raspberry pi 3 B+ requires latest raspbian stretch

I just received a raspberry pi 3 B+ this week that I ordered from Newark.  I am using it to build another battery capacity test  data acquisition + analyzer.  I love the pi’s SD card copier accessory.  I used it to burn an exact copy of the image I have on a working analyzer to a fresh 8GB SD card.  This is particularly useful on this project because I have so many special packages, file systems, daemons, and configuration options set up on this pi, and wanted an exact copy.  The one I copied it from was running on a pi 3.  I put the SD card into my new pi 3 B+ and fired it up.

Raspberry pi 3 B+
Raspberry pi 3 B+

The power LED had a regular blinking pattern; three short, four long – if I remember correctly.  At first I thought I had a bad pi out of the box.  I then began to suspect the SD card.  It was the cheapest class 10 SD card I could find on Newark.  I put it into a pi 2 and it booted up just fine, so that wasn’t it.  Lo, and behold the pi 3 B+ will not run on raspbian jessie;  it must be stretch running linux kernel 4.1.

I downloaded the latest version of raspbian stretch, reformatted my SD card to a FAT file system, and used etcher to burn the image to the card.  Put it in, fired it up, and bam!  It started up just fine.  Bad thing is I will have to manually configure everything from scratch.