A few days ago I finally went through the Raspberry Pi 5 kit I received last September going through the items and booting it with Raspberry Pi OS bookworm. I’ve now had time to perform more tests to check out the performance with benchmarks and test various features on the Raspberry Pi 5. So I’ll report my experience in the second part of the review and compare the Raspberry Pi 5 to the Raspberry Pi 4 and some other Arm Linux SBCs.
System information in Raspberry Pi OS Bookworm
Last time around, I installed the Raspberry Pi 5 in its official case, but for most of the testing, I decided to go back to the bare board fitted with its active cooler since it’s the best cooling option as we’ll see further in the review.
Let’s first check some of the system information:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
pi@raspberrypi:~ $ cat /etc/issue Debian GNU/Linux 12 \n \l pi@raspberrypi:~ $ uname -a Linux raspberrypi 6.1.0-rpi4-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux pi@raspberrypi:~ $ df -h Filesystem Size Used Avail Use% Mounted on udev 3.8G 0 3.8G 0% /dev tmpfs 806M 5.8M 800M 1% /run /dev/mmcblk0p2 29G 4.7G 23G 17% / tmpfs 4.0G 368K 4.0G 1% /dev/shm tmpfs 5.0M 48K 5.0M 1% /run/lock /dev/mmcblk0p1 510M 73M 438M 15% /boot/firmware tmpfs 806M 144K 806M 1% /run/user/1000 pi@raspberrypi:~ $ cat /proc/cpuinfo processor : 0 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 ... processor : 3 BogoMIPS : 108.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x4 CPU part : 0xd0b CPU revision : 1 Hardware : BCM2835 Revision : d04170 Serial : 77b8297ac79ffbf1 Model : Raspberry Pi 5 Model B Rev 1.0 |
The Raspberry Pi 5 runs Debian 12 with Linux 6.1 as expected and the Broadcom BCM2712 processor (still shown as BCM2835 as in all RPi boards) does come with four Cortex-A76 cores.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
pi@raspberrypi:~ $ inxi -Fc0 System: Host: raspberrypi Kernel: 6.1.0-rpi4-rpi-2712 arch: aarch64 bits: 64 Console: pty pts/0 Distro: Debian GNU/Linux 12 (bookworm) Machine: Type: ARM System: Raspberry Pi 5 Model B Rev 1.0 details: BCM2835 rev: d04170 serial: 77b8297ac79ffbf1 CPU: Info: quad core model: N/A variant: cortex-a76 bits: 64 type: MCP Speed (MHz): avg: 1000 min/max: 1000/2400 cores: 1: 1000 2: 1000 3: 1000 4: 1000 Graphics: Device-1: bcm2712-hdmi0 driver: vc4_hdmi v: N/A Device-2: bcm2712-hdmi1 driver: vc4_hdmi v: N/A Display: wayland server: X.org v: 1.21.1.7 with: Xwayland v: 22.1.9 compositor: wayfire v: 0.7.5 driver: gpu: vc4-drm,vc4_crtc,vc4_dpi,vc4_dsi,vc4_firmware_kms,vc4_hdmi,vc4_hvs,vc4_txp,vc4_v3d,vc4_vec tty: 80x24 resolution: 1280x800 API: EGL/GBM Message: No known Wayland EGL/GBM data sources. Audio: Device-1: bcm2712-hdmi0 driver: vc4_hdmi Device-2: bcm2712-hdmi1 driver: vc4_hdmi API: ALSA v: k6.1.0-rpi4-rpi-2712 status: kernel-api Server-1: PipeWire v: 0.3.65 status: active Network: Device-1: driver: rp1 IF: wlan0 state: up mac: d8:3a:dd:7b:e6:58 IF-ID-1: eth0 state: down mac: d8:3a:dd:7b:e6:56 Bluetooth: Device-1: bcm7271-uart driver: bcm7271_uart Report: hciconfig ID: hci0 state: up address: D8:3A:DD:7B:E6:59 bt-v: 3.0 Device-2: bcm7271-uart driver: N/A Drives: Local Storage: total: 29.72 GiB used: 4.69 GiB (15.8%) ID-1: /dev/mmcblk0 model: SL32G size: 29.72 GiB Partition: ID-1: / size: 28.7 GiB used: 4.62 GiB (16.1%) fs: ext4 dev: /dev/mmcblk0p2 Swap: ID-1: swap-1 type: file size: 100 MiB used: 0 KiB (0.0%) file: /var/swap Sensors: System Temperatures: cpu: 59.0 C mobo: N/A Fan Speeds (RPM): cpu: 2951 Info: Processes: 181 Uptime: 17h 24m Memory: 7.87 GiB used: 525.5 MiB (6.5%) gpu: 4 MiB Init: systemd target: graphical (5) Shell: Bash inxi: 3.3.26 |
inxi utility further confirms my board comes with 8GB RAM, the 2.4 GHz frequency advertised for the BCM2712 CPU, and lists the peripherals with two HDMI ports, Ethernet, WiFi, and Bluetooth, and we can also see Wayland and PipeWire as now used in Raspberry Pi OS as was announced during the release of the Bookworm version of the operating system. The microSD card capacity is reported correctly at around 32GB, and we can see 100MB of it is used for swap. There also appears to be a reference to the Raspberry Pi RP1 chip in the Network section, although it’s the same for the driver…
If anybody is interested I also saved the Raspberry Pi 5 Linux boot log.
Raspberry Pi 5 Benchmarks
Let’s start the Raspberry Pi 5 benchmarks with Thomas sbc-bench.sh script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
pi@raspberrypi:~ $ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.50 Installing needed tools: Done. Checking cpufreq OPP. Done. Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Throttling test: heating up the device, 5 more minutes to wait. Done. Checking cpufreq OPP again. Done (12 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * No throttling Full results uploaded to http://ix.io/4KDM # Raspberry Pi 5 Model B Rev 1.0 Tested with sbc-bench v0.9.50 on Sat, 04 Nov 2023 11:21:04 +0700. Full info: [http://ix.io/4KDM](http://ix.io/4KDM) ### General information: BCM2712, Kernel: aarch64, Userland: arm64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 1000 2400 Cortex-A76 / r4p1 1 0 0 1000 2400 Cortex-A76 / r4p1 2 0 0 1000 2400 Cortex-A76 / r4p1 3 0 0 1000 2400 Cortex-A76 / r4p1 8053 KB available RAM ### Governors/policies (performance vs. idle consumption): Original governor settings: cpufreq-policy0: ondemand / 1800 MHz (conservative ondemand userspace powersave performance schedutil / 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400) Tuned governor settings: cpufreq-policy0: performance / 2400 MHz Status of performance related policies found below /sys: /sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave ### Clockspeeds (idle vs. heated up): Before at 48.0°C: cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2398 After at 65.5°C: cpu0 (Cortex-A76): OPP: 2400, ThreadX: 2400, Measured: 2398 ### Performance baseline * memcpy: 5158.3 MB/s, memchr: 13463.2 MB/s, memset: 11671.4 MB/s * 16M latency: 122.3 122.6 127.0 120.9 121.5 131.2 142.4 155.4 * 128M latency: 141.0 151.6 141.3 140.0 140.9 140.6 140.8 142.7 * 7-zip MIPS (3 consecutive runs): 10840, 10973, 10980 (10930 avg), single-threaded: 3136 * `aes-256-cbc 589992.63k 1051401.64k 1273872.30k 1338653.35k 1365144.92k 1367588.86k` * `aes-256-cbc 590378.41k 1051301.08k 1273969.32k 1340480.17k 1365131.26k 1367736.32k` ### PCIe and storage devices: * Raspberry Pi Ltd. RP1: Speed 5GT/s, Width x4, driver in use: rp1 * 29.7GB "SanDisk SL32G" UHS SDR104 SD card as /dev/mmcblk0: date 02/2023, manfid/oemid: 0x000003/0x5344, hw/fw rev: 0x8/0x0 ### Swap configuration: * /var/swap on /dev/mmcblk0p2: 100.0M (0K used) on ultra slow SD card storage ### Software versions: * Debian GNU/Linux 12 (bookworm) * Build scripts: http://archive.raspberrypi.com/debian/ bookworm main * Compiler: /usr/bin/gcc (Debian 12.2.0-14) 12.2.0 / aarch64-linux-gnu * ThreadX: c2da2ae7 / 2023/10/18 18:30:17 ### Kernel info: * `/proc/cmdline: coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=D8:3A:DD:7B:E6:56 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=57655639-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=TH` * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl * Vulnerability Spectre v1: Mitigation; __user pointer sanitization * Vulnerability Spectre v2: Mitigation; CSV2, BHB * Kernel 6.1.0-rpi4-rpi-2712 / CONFIG_HZ=250 Kernel 6.1.0 is not latest 6.1.61 LTS that was released on 2023-11-02. See https://endoflife.date/linux for details. It is somewhat likely that a lot of exploitable vulnerabilities exist for this kernel as well as many unfixed bugs. All known settings adjusted for performance. Device now ready for benchmarking. Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap and too high background activity all potentially invalidating benchmark scores. All changes with storage and PCIe devices as well as suspicious dmesg contents will be reported too. Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V) 11:21:04: 2400/2400MHz 3.82 1% 0% 1% 0% 0% 0% 57.9°C 0.9100V 3.5W 5.14V 11:22:04: 2400/2400MHz 1.40 0% 0% 0% 0% 0% 0% 52.4°C 0.9100V 3.1W 5.15V 11:23:05: 2400/2400MHz 0.51 0% 0% 0% 0% 0% 0% 53.5°C 0.9100V 3.1W 5.15V |
First, the good news is that there was no CPU throttling and the temperature never exceeded 66.1°C when using the active cooler in a room with an ambient temperature of around 28°C.
Let’s compare the memory bandwidth and 7-zip results against the Raspberry Pi 4 and other SBCs such as Khadas VIM4 (Amlogic A311D2), ODROID-N2+ (Amlogic S922X), Radxa Rock 5B (Rockchip RK3588), and others.

The memory bandwidth of the Raspberry Pi 5 is much higher than the Raspberry Pi 4, but based on memcpy and memset results the Rockchip RK3588 platforms are still way ahead in that metric, and they also outperform the Raspberry Pi 5 in 7-zip benchmarks which benefit from a larger number of cores (Rockchip RK3588 comes with 4x Cortex-A76 cores, 4x Cortex-A55 cores). The Raspberry Pi 5’s 7-zip performance is about the same as the Khadas VIM4 and ODROID-N2+ SBCs, and about double the performance of the previous generation Raspberry Pi 4.
The Broadcom BCM2712 is the first processor used in a Raspberry Pi board that comes with Armv8 Crypto extension and that shows in AES-256 benchmarks with the new Raspberry Pi 5 over 21 times faster than the Raspberry Pi 4.
Time to have a look a web browsing performance, especially since the Raspberry Pi OS Bookworm introduced an optimized version of Firefox besides the usual Chromium browser.
We’ll first use Speedometer 2.0 to check the performance in Chromium…
… and in Firefox.
Firefox is often significantly slower than Chromium in benchmarks, so Raspberry Pi Ltd and Mozilla have done a relatively good job optimizing Firefox for the Raspberry Pi 5 with Chromium achieving 63.5 runs per minute against 56.6 on Firefox. The chart below compares that performance against the Amlogic A311D2-based Khadas VIM4 (35.6 points), the Amlogic A311D-powered Khadas VIM3 (against 25.6 points), the Rockchip RK3588S-based Khadas Edge2 Pro, and a Raspberry Pi 4 overclocked at 2.0 GHz (21 points).
Please note that web browsers are constantly evolving with performance optimizations (or bloat) getting added after each release, and we did not redo the tests on older platforms due to time constraints.
I also ran the glmark2 benchmark to test graphics performance on the Raspberry Pi 5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
pi@raspberrypi:~ $ DISPLAY=:0 glmark2 WARNING: v3d support for hw version 71 is neither a complete nor a conformant OpenGL implementation. Testing use only. ======================================================= glmark2 2023.01 ======================================================= OpenGL Information GL_VENDOR: Broadcom GL_RENDERER: V3D 7.1 GL_VERSION: 3.1 Mesa 23.2.1-0+rpt2 Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0 Surface Size: 800x600 windowed ======================================================= [build] use-vbo=false: FPS: 1074 FrameTime: 0.932 ms [build] use-vbo=true: FPS: 1220 FrameTime: 0.820 ms [texture] texture-filter=nearest: FPS: 1097 FrameTime: 0.912 ms [texture] texture-filter=linear: FPS: 1090 FrameTime: 0.918 ms [texture] texture-filter=mipmap: FPS: 1101 FrameTime: 0.909 ms [shading] shading=gouraud: FPS: 1121 FrameTime: 0.892 ms [shading] shading=blinn-phong-inf: FPS: 1117 FrameTime: 0.895 ms [shading] shading=phong: FPS: 1078 FrameTime: 0.928 ms [shading] shading=cel: FPS: 1068 FrameTime: 0.937 ms [bump] bump-render=high-poly: FPS: 793 FrameTime: 1.261 ms [bump] bump-render=normals: FPS: 1170 FrameTime: 0.855 ms [bump] bump-render=height: FPS: 1129 FrameTime: 0.886 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 704 FrameTime: 1.422 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 368 FrameTime: 2.723 ms [pulsar] light=false:quads=5:texture=false: FPS: 1260 FrameTime: 0.794 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 286 FrameTime: 3.500 ms [desktop] effect=shadow:windows=4: FPS: 1048 FrameTime: 0.955 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 457 FrameTime: 2.189 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 445 FrameTime: 2.248 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 542 FrameTime: 1.846 ms [ideas] speed=duration: FPS: 1123 FrameTime: 0.891 ms [jellyfish] <default>: FPS: 904 FrameTime: 1.107 ms [terrain] <default>: FPS: 67 FrameTime: 14.928 ms [shadow] <default>: FPS: 160 FrameTime: 6.280 ms [refract] <default>: FPS: 73 FrameTime: 13.854 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 1288 FrameTime: 0.777 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 1255 FrameTime: 0.797 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 1288 FrameTime: 0.777 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 1283 FrameTime: 0.780 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 1116 FrameTime: 0.896 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1282 FrameTime: 0.780 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1281 FrameTime: 0.781 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1118 FrameTime: 0.895 ms ======================================================= glmark2 Score: 920 ======================================================= |
920 points look to be on the low side, as a Rockchip RK3588 hardware such as the NanoPi R6S mini PC router achieved 4,525 points with glmark2-es2-wayland… [Update: I was unable to find glmark2-es2-wayland yesterday, but it’s just an apt install:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
pi@raspberrypi:~ $ glmark2-es2-wayland WARNING: v3d support for hw version 71 is neither a complete nor a conformant OpenGL implementation. Testing use only. ======================================================= glmark2 2023.01 ======================================================= OpenGL Information GL_VENDOR: Broadcom GL_RENDERER: V3D 7.1 GL_VERSION: OpenGL ES 3.1 Mesa 23.2.1-0+rpt2 Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0 Surface Size: 800x600 windowed ======================================================= [build] use-vbo=false: FPS: 2731 FrameTime: 0.366 ms [build] use-vbo=true: FPS: 3490 FrameTime: 0.287 ms [texture] texture-filter=nearest: FPS: 2725 FrameTime: 0.367 ms [texture] texture-filter=linear: FPS: 2677 FrameTime: 0.374 ms [texture] texture-filter=mipmap: FPS: 2786 FrameTime: 0.359 ms [shading] shading=gouraud: FPS: 2776 FrameTime: 0.360 ms [shading] shading=blinn-phong-inf: FPS: 2762 FrameTime: 0.362 ms [shading] shading=phong: FPS: 2414 FrameTime: 0.414 ms [shading] shading=cel: FPS: 2384 FrameTime: 0.420 ms [bump] bump-render=high-poly: FPS: 1479 FrameTime: 0.676 ms [bump] bump-render=normals: FPS: 3272 FrameTime: 0.306 ms [bump] bump-render=height: FPS: 3020 FrameTime: 0.331 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1245 FrameTime: 0.804 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 480 FrameTime: 2.085 ms [pulsar] light=false:quads=5:texture=false: FPS: 3070 FrameTime: 0.326 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 292 FrameTime: 3.427 ms [desktop] effect=shadow:windows=4: FPS: 1081 FrameTime: 0.926 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 487 FrameTime: 2.055 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 469 FrameTime: 2.135 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 574 FrameTime: 1.743 ms [ideas] speed=duration: FPS: 2244 FrameTime: 0.446 ms [jellyfish] <default>: FPS: 1393 FrameTime: 0.718 ms [terrain] <default>: FPS: 72 FrameTime: 13.990 ms [shadow] <default>: FPS: 178 FrameTime: 5.647 ms [refract] <default>: FPS: 76 FrameTime: 13.177 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 3487 FrameTime: 0.287 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 2687 FrameTime: 0.372 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 3384 FrameTime: 0.296 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 3073 FrameTime: 0.325 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 2308 FrameTime: 0.433 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2979 FrameTime: 0.336 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2987 FrameTime: 0.335 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2164 FrameTime: 0.462 ms ======================================================= glmark2 Score: 2036 ======================================================= |
The score is indeed different, and does not look as bad. But 2,036 points is still significantly lower than the 4,000-4,500 points achieved on Rockchip RK3588 hardware.
]
The WebGL Aquarium demo works fine with Chromium and Firefox, although the frame rate is significantly better with the Chromium browser.


For reference, in the NanoPi R6S review, I mentioned that “the demo renders smoothly with 1000 fish at 60 fps, and it’s still good with 5,000 fish at around 30 fps”, so the Raspberry Pi 5 is indeed not quite as performant as Rockchip RK3588/RK3588S system when it comes to graphics either.
So far, we can say the benchmarks show that Raspberry Pi 5 is a clear step up compared to the Raspberry Pi 4 with typically 2 to 3 times better performance, and even over 20 times for cryptographic workload (like AES, TLS, etc…), but it does not quite reach the performance of the popular Rockchip RK3588 CPU although it can get close for some specific workloads.
microSD storage and USB 3.0 benchmarks
I built iozone for the Raspberry Pi to run the storage benchmarks on both the provided 32GB Class A1 microSD card as part of the Raspberry Pi 5 kit and a USB 3.0 NVMe SSD drive.
Results for the microSD card:
1 2 3 4 5 6 7 8 9 10 11 12 |
pi@raspberrypi:~/$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.506 $ Compiled for 64 bit mode. Build: linux-arm random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 4434 4568 14278 14268 11953 2372 102400 16 6470 8731 35712 35647 28960 6648 102400 512 17973 19024 89484 89484 88337 18580 102400 1024 18912 21470 87139 89739 89001 17230 102400 16384 19198 18610 89380 89382 89369 19610 |
SD card performance is supposed to be improved thanks to the RP1 chipset, but it’s hard to see with that specific microSD card. Reads are up to about 89MB/s and writes max out at 19MB/s. Random read and write speed is also important, and it looks decent which is probably why I didn’t notice any massive slowdowns due to I/Os during use. But note that (more expensive) competing boards with built-in 32GB or 64GB eMMC flash are usually much faster and more responsive.
I also tested the USB 3.0 bandwidth (5 Gbps) with an ORICO enclosure fitted with an Apacer NVMe SSD formatted with EXT-4.
Top USB 3.0 port:
1 2 3 4 5 6 7 8 |
pi@raspberrypi:/media/pi/CNXSOFT-ORICO $ sudo iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 Iozone: Performance Test of File I/O Version $Revision: 3.506 $ Compiled for 64 bit mode. Build: linux-arm random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 411901 411707 388762 389020 |
Bottom USB 3.0 port:
1 2 3 4 5 |
pi@raspberrypi:/media/pi/CNXSOFT-ORICO $ sudo iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 411677 410461 388602 388934 |
In both cases, we got about 388MB/s sequential read speeds and 411MB/s write speeds, or about as expected for a 5 Gbps USB link. It’s unclear why writes are faster than reads as we disabled caching in the iozone command.
Gigabit Ethernet, WiFi, and Bluetooth
We’ll now use iperf3 to test gigabit Ethernet and WiFi 5 network performance. I’ll also test Bluetooth with my phone and a Bluetooth headset.
Here’s the Raspberry Pi 5’s gigabit Ethernet download speed using UP Xtreme 11 Edge mini PC‘s 2.5 GbE port on the other side of the connection.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
devkit@UPX-i11:~$ iperf3 -t 60 -c 192.168.31.209 -i 10 Connecting to host 192.168.31.209, port 5201 [ 5] local 192.168.31.12 port 42968 connected to 192.168.31.209 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 0 583 KBytes [ 5] 10.00-20.00 sec 1.10 GBytes 942 Mbits/sec 0 666 KBytes [ 5] 20.00-30.00 sec 1.10 GBytes 942 Mbits/sec 0 666 KBytes [ 5] 30.00-40.00 sec 1.10 GBytes 942 Mbits/sec 0 988 KBytes [ 5] 40.00-50.00 sec 1.10 GBytes 942 Mbits/sec 0 988 KBytes [ 5] 50.00-60.00 sec 1.10 GBytes 942 Mbits/sec 0 988 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.58 GBytes 942 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 6.58 GBytes 942 Mbits/sec receiver |
Now for upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
devkit@UPX-i11:~$ iperf3 -t 60 -c 192.168.31.209 -i 10 -R Connecting to host 192.168.31.209, port 5201 Reverse mode, remote host 192.168.31.209 is sending [ 5] local 192.168.31.12 port 56822 connected to 192.168.31.209 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec [ 5] 10.00-20.00 sec 1.09 GBytes 936 Mbits/sec [ 5] 20.00-30.00 sec 1.09 GBytes 936 Mbits/sec [ 5] 30.00-40.00 sec 1.09 GBytes 936 Mbits/sec [ 5] 40.00-50.00 sec 1.09 GBytes 936 Mbits/sec [ 5] 50.00-60.00 sec 1.09 GBytes 936 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.54 GBytes 937 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 6.54 GBytes 936 Mbits/sec receiver |
Both are great and around 940 is expected in either direction. Let’s now try a more demanding full-duplex (bi-directional) transfer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
devkit@UPX-i11:~$ iperf3 -t 60 -c 192.168.31.209 -i 10 --bidir Connecting to host 192.168.31.209, port 5201 [ 5] local 192.168.31.12 port 51906 connected to 192.168.31.209 port 5201 [ 7] local 192.168.31.12 port 51916 connected to 192.168.31.209 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec 0 831 KBytes [ 7][RX-C] 0.00-10.00 sec 1.08 GBytes 925 Mbits/sec [ 5][TX-C] 10.00-20.00 sec 1.09 GBytes 935 Mbits/sec 0 1.22 MBytes [ 7][RX-C] 10.00-20.00 sec 1.08 GBytes 925 Mbits/sec [ 5][TX-C] 20.00-30.00 sec 1.09 GBytes 935 Mbits/sec 0 1.22 MBytes [ 7][RX-C] 20.00-30.00 sec 1.08 GBytes 925 Mbits/sec [ 5][TX-C] 30.00-40.00 sec 1.09 GBytes 936 Mbits/sec 0 1.22 MBytes [ 7][RX-C] 30.00-40.00 sec 1.08 GBytes 925 Mbits/sec [ 5][TX-C] 40.00-50.00 sec 1.09 GBytes 936 Mbits/sec 0 1.22 MBytes [ 7][RX-C] 40.00-50.00 sec 1.08 GBytes 925 Mbits/sec [ 5][TX-C] 50.00-60.00 sec 1.09 GBytes 936 Mbits/sec 0 1.22 MBytes [ 7][RX-C] 50.00-60.00 sec 1.08 GBytes 925 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 6.54 GBytes 936 Mbits/sec 0 sender [ 5][TX-C] 0.00-60.00 sec 6.54 GBytes 936 Mbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 6.46 GBytes 925 Mbits/sec 199 sender [ 7][RX-C] 0.00-60.00 sec 6.46 GBytes 925 Mbits/sec receiver |
Again excellent.
Let’s now test WiFi 5 (at 5 GHz) connected with a 433 Mbps link to Xiaomi Mi AX6000 router.
1 2 3 4 5 6 7 8 9 |
pi@raspberrypi:~ $ iwconfig wlan0 wlan0 IEEE 802.11 ESSID:"CNX_Software_Xiaomi_5G" Mode:Managed Frequency:5.18 GHz Access Point: 3C:CD:57:F5:AF:91 Bit Rate=433.3 Mb/s Tx-Power=31 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=70/70 Signal level=-24 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 |
Download:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
devkit@UPX-i11:~$ iperf3 -t 60 -c 192.168.31.211 -i 10 Connecting to host 192.168.31.211, port 5201 [ 5] local 192.168.31.12 port 59618 connected to 192.168.31.211 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 257 MBytes 216 Mbits/sec 0 3.15 MBytes [ 5] 10.00-20.00 sec 261 MBytes 219 Mbits/sec 0 3.15 MBytes [ 5] 20.00-30.00 sec 284 MBytes 238 Mbits/sec 0 3.15 MBytes [ 5] 30.00-40.00 sec 279 MBytes 234 Mbits/sec 0 3.15 MBytes [ 5] 40.00-50.00 sec 269 MBytes 225 Mbits/sec 0 3.15 MBytes [ 5] 50.00-60.00 sec 254 MBytes 213 Mbits/sec 0 3.15 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 1.57 GBytes 224 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 1.57 GBytes 224 Mbits/sec receiver |
Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
devkit@UPX-i11:~$ iperf3 -t 60 -c 192.168.31.211 -i 10 -R Connecting to host 192.168.31.211, port 5201 Reverse mode, remote host 192.168.31.211 is sending [ 5] local 192.168.31.12 port 49566 connected to 192.168.31.211 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 306 MBytes 256 Mbits/sec [ 5] 10.00-20.00 sec 309 MBytes 259 Mbits/sec [ 5] 20.00-30.00 sec 309 MBytes 259 Mbits/sec [ 5] 30.00-40.00 sec 309 MBytes 259 Mbits/sec [ 5] 40.00-50.00 sec 308 MBytes 258 Mbits/sec [ 5] 50.00-60.00 sec 309 MBytes 259 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 1.81 GBytes 259 Mbits/sec 0 sender [ 5] 0.00-60.00 sec 1.81 GBytes 259 Mbits/sec receiver |
The performance is fairly good with 224 Mbps uploads and 259 Mbps downloads, but if you want better network performance Ethernet should be used when possible. As a side note, high-end platforms with WiFi 6 can deliver over 1 Gbps transfer rates with that testbed.
Finally, I tested Bluetooth with my Android smartphone. The good news is that pairing worked flawlessly. The bad news is that Raspberry Pi OS does not know what to do with my phone with the error message:
Pairing successful – this device has no services which can be used with Raspberry Pi
So I can’t transfer files or do anything else for that matter.
Let’s try with a Bluetooth audio headset…
It works! I could listen to the audio from a YouTube video, but the volume control is not working right. I can only mute the audio or turn it on at 100% at whatever position it is on the slider. However, if I use the volume buttons on my headset, then the volume slider is properly synchronized in Raspberry Pi OS… That means I can control the volume from my headset, but not from Raspberry Pi OS except for mute/unmute.
YouTube and 4K video playback
I then tested YouTube videos up to 1920×1080 resolution at 30 fps in both Chromium and Firefox. 4K (2160p) resolution was not an option despite selecting a 4K video.


The video played smoothly in both web browsers with only a few frames dropped according to the “Stats for Nerds” overlay window.
Let’s now try to play some local 4K H.265 videos as well since the Broadcom BCM2712 SoC is supposed to support H.265 video decoding. So I connected a hard drive with some 4K video samples and played them by clicking on the file which opened VLC video player:
- Beauty_3840x2160_120fps_420_8bit_HEVC_MP4.mp4 (H.265, no audio) – OK
- MHD_2013_2160p_ShowReel_R_9000f_24fps_RMN_QP23_10b.mkv (10-bit HEVC, 24 fps, no audio) – First frame only for the duration of the video
- Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 (4K, H.265, 60 fps) – Video and audio OK
While two of the video could play fine if I enter full-screen mode, I can see a thick black bar at the bottom of the video (but no such thing at the top), and changing the aspect ratio does not help.
CPU usage while playing a 4K H.265 video at 60 fps is rather low which should indicate hardware video decoding is indeed working. For comparison, If I switch to a 4K H.264 video at 30 fps, the CPU usage is higher as software video decoding is used instead.
It should be the same for other video codecs, as I understand Broadcom BCM2712 only supports H.265 hardware video decoding, and all other codecs must be handled by software.
Raspberry Pi camera
I still have a Raspberry Pi camera module 3, but I had to skip testing because the camera connectors on the Raspberry Pi 5 are now smaller… It’s not such a big issue, as I understand it’s simply a matter of getting a $1 cable and you should be good to go with the new Raspberry Pi SBC and existing official camera modules.
Note that Broadcom BCM2712 does not support hardware video encoding, and it is now handled by software as well.
Thermal considerations
We’ve already seen the Raspberry Pi 5 offers a significant boost in performance compared to the Raspberry Pi 4, but we did so with a large heatsink and a PWM fan part of the “active cooler”. The fan is not particularly noisy, but some people may prefer to have a fanless system. Would that work with just the heatsink? What happens when we use the official Raspberry Pi 5 case? Let’s find out.
Note that usually perform testing in a room with 28°C ambient temperature which may impact the performance of the system. Just to show how ambient temperature may impact the CPU temperature I left the system run idly overnight (19:00 to about 10:00) just running sbc-bench.sh -m monitor temperature and rpi-monitor to draw the temperature chart.
The CPU temperature dropped from about 55°C to 50°C following the ambient temperature delta from about 26°C at 19:00 down to 21°C at 6:00 and going up from there.
Let’s check out the temperature chart starting from idle and running sbc-bench.sh script using the active cooler.

The idle temperature was about 46-47°C and went up to around 66°C during CPUminer. No throttling occurred and we are far from the 85°C limit, so the active cooler perfectly did its job.
The heatsink is quite large covering most of the board, so let’s disconnect the fan and see what happens:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
pi@raspberrypi:~ $ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.50 Installing needed tools: Done. Checking cpufreq OPP. Done. Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Throttling test: heating up the device, 5 more minutes to wait. Done. Checking cpufreq OPP again. Done (12 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * Throttling / frequency capping occured Full results uploaded to http://ix.io/4KEa ### Performance baseline * memcpy: 5149.9 MB/s, memchr: 13453.4 MB/s, memset: 12362.2 MB/s * 16M latency: 123.9 119.8 126.3 121.6 121.7 126.2 150.7 155.6 * 128M latency: 141.3 143.7 146.4 140.2 141.1 140.8 140.9 142.6 * 7-zip MIPS (3 consecutive runs): 10890, 10818, 10293 (10670 avg), single-threaded: 3138 * `aes-256-cbc 590088.22k 1051428.71k 1273858.47k 1338664.62k 1365114.88k 1367490.56k` * `aes-256-cbc 590457.53k 1051552.92k 1274097.32k 1342024.36k 1365286.91k 1368244.22k` |
The idle temperature was quite higher at around 60°C, and we reached 85°C with both 7-zip and CPUminer, and throttling occurred with the CPU frequency dropping as low as 1,500 MHz from the usual 2,400 Mhz. That was only during short periods, so if your workload only requires bursts of performance, it should be possible to use the heatsink only. I’m also confident some will come with fanless cases for the Raspberry Pi 5.
Raspberry Pi also sent me the official case. So let’s remove the active cooler, stick the small heatsink from the kit on the Broadcom BCM2712 processor, and connect the fan…
before installing the cover and reconnecting everything.
Time to run sbc-bench.sh again:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
pi@raspberrypi:~ $ sudo ./sbc-bench.sh sbc-bench v0.9.50 Installing needed tools: Done. Checking cpufreq OPP. Done (results will be available in 7-10 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP again. Done (8 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * No throttling Memory performance memcpy: 5142.9 MB/s memset: 11781.0 MB/s 7-zip total scores (3 consecutive runs): 10676,10847,10657, single-threaded: 3108 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 636995.34k 1313348.50k 1720131.67k 1853066.24k 1907924.99k 1911674.20k aes-128-cbc 637428.34k 1312076.65k 1719778.99k 1853592.92k 1906480.47k 1913421.82k aes-192-cbc 599322.82k 1171677.76k 1465508.27k 1545036.80k 1591457.11k 1594949.63k aes-192-cbc 599599.38k 1171923.56k 1465062.66k 1543467.01k 1591375.19k 1595441.15k aes-256-cbc 590231.97k 1051307.07k 1273963.52k 1340034.73k 1365352.45k 1367468.71k aes-256-cbc 590235.99k 1051512.96k 1273754.28k 1338839.72k 1364970.15k 1368003.93k Full results uploaded to http://ix.io/4KJo pi@raspberrypi:~ $ |
The good news that is CPU throttling did not occur. But the idle temperature is a bit higher at 56°C, and under load, it peaked at about 75°C. That also means the official case performs its cooling duty just fine, but the fan may be activated more often than with the active cooler because of the much smaller heatsink.
Now let’s turn off the system, disconnect the fan, and run the script with the Raspberry Pi 5 in its case without any active cooling.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
pi@raspberrypi:~ $ sudo ./sbc-bench.sh sbc-bench v0.9.50 Installing needed tools: Done. Checking cpufreq OPP. Done (results will be available in 8-12 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP again. Done (9 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * Throttling / frequency capping occured Memory performance memcpy: 5168.5 MB/s memset: 11322.4 MB/s 7-zip total scores (3 consecutive runs): 7603,7477,7482, single-threaded: 2536 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 505376.33k 1044658.20k 1401074.43k 1479606.61k 1574813.70k 1534121.30k aes-128-cbc 446999.16k 993373.27k 1393114.97k 1466749.27k 1501372.42k 1534945.96k aes-192-cbc 462834.45k 920687.94k 1137528.15k 1235878.57k 1225586.01k 1249946.28k aes-192-cbc 437606.93k 888128.30k 1077913.00k 1187423.91k 1213527.38k 1208232.62k aes-256-cbc 458931.29k 806966.14k 977979.31k 1039390.38k 1054946.65k 1089536.00k aes-256-cbc 429332.22k 758800.09k 945642.75k 943875.41k 995794.94k 1006638.42k Full results uploaded to http://ix.io/4KJt |
It does not look good at all. I waited for about 20 minutes before starting the benchmark, and the idle temperature was already around 67-68°C, but when we ran sbc-bench.sh the temperature quickly shot up to 85°C and even peaked at about 88°C.
The benchmark ended about 15:30 and I first thought there must be some background process keeping it at an elevated (85°C) temperature. But htop did not show anything…
sbc-bench.sh monitor mode also reported the high temperature and virtually zero CPU load:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
pi@raspberrypi:~ $ ./sbc-bench.sh -m BCM2712, Kernel: aarch64, Userland: arm64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 1000 2400 Cortex-A76 / r4p1 1 0 0 1000 2400 Cortex-A76 / r4p1 2 0 0 1000 2400 Cortex-A76 / r4p1 3 0 0 1000 2400 Cortex-A76 / r4p1 Thermal source: /sys/devices/virtual/thermal/thermal_zone0/ (cpu-thermal) Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V) 16:05:49: 2400/1500MHz 0.00 6% 0% 6% 0% 0% 0% 84.2°C 0.9150V 3.6W 5.14V 16:05:54: 2400/1500MHz 0.00 0% 0% 0% 0% 0% 0% 84.8°C 0.7200V 2.7W 5.14V 16:05:59: 2400/2201MHz 0.00 0% 0% 0% 0% 0% 0% 83.7°C 0.7200V 2.7W 5.15V 16:06:04: 2400/2146MHz 0.00 0% 0% 0% 0% 0% 0% 83.2°C 0.7200V 2.6W 5.14V 16:06:09: 2400/2256MHz 0.00 1% 0% 0% 0% 0% 0% 84.8°C 0.9150V 2.7W 5.15V 16:06:15: 2400/1500MHz 0.00 0% 0% 0% 0% 0% 0% 83.2°C 0.7200V 2.6W 5.14V 16:06:20: 2400/1500MHz 0.08 0% 0% 0% 0% 0% 0% 84.2°C 0.7200V 2.7W 5.15V 16:06:25: 2400/2201MHz 0.07 0% 0% 0% 0% 0% 0% 83.7°C 0.7200V 2.7W 5.15V 16:06:30: 2400/2146MHz 0.07 0% 0% 0% 0% 0% 0% 83.2°C 0.7200V 2.7W 5.14V 16:06:35: 2400/1500MHz 0.06 0% 0% 0% 0% 0% 0% 85.9°C 0.7200V 2.7W 5.15V 16:06:41: 2400/2201MHz 0.14 1% 0% 0% 0% 0% 0% 83.2°C 0.7200V 2.7W 5.15V 16:06:46: 2400/2256MHz 0.13 0% 0% 0% 0% 0% 0% 84.8°C 0.7200V 2.7W 5.14V 16:06:51: 2400/2146MHz 0.12 1% 0% 0% 0% 0% 0% 84.8°C 0.9150V 2.7W 5.15V 16:06:56: 2400/2201MHz 0.17 0% 0% 0% 0% 0% 0% 84.8°C 0.7200V 3.6W 5.15V |
It’s like the temperature sensor was stuck at around 85°C… and it would not come back down…
So I opened the case and reconnected the fan while the board was still running (probably not recommended) and the temperature dropped immediately…
So if your plan was to use a tiny heatsink and put the Raspberry Pi 5 in an enclosure without a fan you can forget about it. That’s why Raspberry Pi provides an optional active cooler and the official case comes with an integrated fan, although it should perfectly be possible to create a fanless metal case for the board.
Power consumption
I measured Raspberry Pi 5’s power consumption with its active cooler using a wall power meter.
- Power off – 1.7 Watts
- Idle
- 3.0 Watts (headless, WiFi only)
- 3.6 Watts (Ethernet + WiFi, USB mouse & keyboard, HDMI connected)
- “4K” YouTube Video in Firefox (full screen @ Full HD – avc1 (H.264) codec) – 5.5 to 6.2 Watts
- “4K” YouTube Video in Chromium (full screen @ Full HD – avc1 (H.264) codec) – 5.7 to 6.8 Watts
- Stress test on all 4 cores (stress -c 4) – 8.8 Watts
My Raspberry Pi kit comes with a USB PD power supply that supports 5.1V/5V or a little over 25W. The maximum in my test above is 8.8 Watts so that’s a lot of legroom when it comes to the power draw. So I tried to increase that by playing a 4K H.265 from a USB hard drive and run iozone on an external SSD while running stress -c 4 at the same time.
It did manage to peak at 16.8 Watts (and stabilize at 15.9 Watts), and so for that use case, a 5V/3V USB power supply as used with the Raspberry Pi 4 would not have been sufficient. For what it’s worth sbc-bench.sh does not report any drop in voltage under this specific stress test:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
pi@raspberrypi:~ $ ./sbc-bench.sh -m BCM2712, Kernel: aarch64, Userland: arm64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 1000 2400 Cortex-A76 / r4p1 1 0 0 1000 2400 Cortex-A76 / r4p1 2 0 0 1000 2400 Cortex-A76 / r4p1 3 0 0 1000 2400 Cortex-A76 / r4p1 Thermal source: /sys/devices/virtual/thermal/thermal_zone0/ (cpu-thermal) Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore PMIC DC(V) 20:06:31: 2400/2400MHz 6.27 9% 0% 7% 0% 0% 0% 74.3°C 0.9150V 6.8W 5.16V 20:06:37: 2400/2400MHz 6.25 100% 9% 88% 0% 0% 1% 71.0°C 0.9150V 7.2W 5.14V 20:06:42: 2400/2400MHz 6.23 99% 9% 88% 0% 0% 1% 74.3°C 0.9150V 7.7W 5.13V 20:06:47: 2400/2400MHz 6.21 99% 9% 89% 0% 0% 1% 74.3°C 0.9150V 7.6W 5.14V |
That makes me believe it should be possible to use a 5V/3A power adapter with the Raspberry Pi 5 for many use cases unless you are connecting USB peripherals that draw a lot of current like mass storage devices. Raspberry Pi confirms that saying:
When using a standard 5V, 3A (15W) USB-C power adapter with Raspberry Pi 5, by default we must limit downstream USB current to 600mA to ensure that we have sufficient margin to support these workloads.
I’m running out of time to test this in detail, however.
Conclusion
The Raspberry Pi 5 SBC is a great upgrade to the Raspberry Pi 4 if you feel the earlier SBC is sluggish with two to three times the performance depending on the workload. The Broadcom BCM2721 is also the first “Raspberry Pi” processor with Armv8 crypto extension catching up with the competition and delivering a 20 times boost in performance for AES-256 against the Raspberry Pi. If you are familiar with the Raspberry Pi ecosystem and want something faster, the Raspberry Pi 5 is almost a no-brainer.
Having said that, there are some changes to the layout that make previous cases incompatible, the MIPI CSI and DSI connectors are smaller and users must purchase new flat cables, a new power adapter is potentially needed, there aren’t any official fanless solutions yet, and some features like H.264 hardware video decoding, or any sort of hardware video encoding are now missing since the BCM2712 can handle that in software. That’s more flexible but also consumes more power.
More advanced users that are mostly vendor-agnostic may be disappointed with the performance and features compared to platforms based on Rockchip RK3588 processor with a similar price point, support for 8K video output, 8K/4K AV1/VP9/H.264 hardware video decoding, hardware video encoding, an AI accelerator, and more. Raspberry Pi hardware still probably benefits from a larger community and possibly better software support although the current Raspberry Pi OS Bookworm has a bit more bugs than I expected such as Bluetooth audio volume issues or a thick black bar under full-screen videos in VLC.
I’d like to thank Raspberry Pi for sending a complete Raspberry Pi 5 kit for review and testing. You should be able to purchase the board and accessories from any local distributor for $80 (8GB RAM as reviewed here) and up.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress