Blog

  • Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    Orange Pi R1 Plus/ R1 Plus LTS OpenWrt Firmware (English & Minimal Packages)

    This is the Orange Pi R1 Plus/ R1 Plus LTS OpenWrt firmware with minimal packages. The default language is English. You can write the ext4-sysupgrade.img.gz to the microSD card with Rufus or balenaEtcher, the root file system will be automatically expanded during first boot, which allow you to use all the space of the microSD card.

    You can also build the firmware for the Orange Pi R1 Plus / R1 Plus LTS from my source code. It is a fork of the Orange Pi OpenWrt, with some adjustments on the defconfig file. Please use the openwrt-21.02 branch when building the firmware.

    Firmware Detail

    OpenWrt 21.02.2 r16495-bf0c965af0

    LuCI openwrt-21.02 branch git-22.046.85957-59c3392

    Kernel 5.4.179

    Orange Pi R1 Plus Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR4 (2x 512DDR4)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by Realtek RTL8111F
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    Orange Pi R1 Plus LTS Specification

    CPU: Rockchip RK3328. Quad-Core ARM Cortex-A53 64-Bit. Up To 1.5GHz

    GPU: Mali-450MP2, Supports OpenGL ES 1.0/2.0

    Memory: 1GB LPDDR3 (Not Shared With GPU)

    Storage: 16MB SPI NOR Flash

    Network:

    • 10M/100M/1000M Integrated Ethernet by MotorComm YT8531C
    • 10M/100M/1000M USB Converted Ethernet by Realtek RTL8153B

    R1 Plus LTS Overview and OpenWRT Installation

    Screenshot

    Status page

    Network Interfaces page
    Software page – I am using a 2GB microSD card

    List of packages with opkg list-installed

    base-files - 1444-r16495-bf0c965af0
    bash - 5.1-2
    block-mount - 2021-01-04-c53b1882-1
    busybox - 1.33.2-2
    ca-bundle - 20210119-1
    cgi-io - 2021-09-08-98cef9dd-20
    dnsmasq - 2.85-3
    dropbear - 2020.81-2
    e2fsprogs - 1.45.6-2
    f2fs-tools - 1.14.0-1
    f2fsck - 1.14.0-1
    fdisk - 2.36.1-2
    firewall - 2021-03-23-61db17ed-1
    fstools - 2021-01-04-c53b1882-1
    fwtool - 2019-11-12-8f7fe925-1
    getrandom - 2020-10-25-9ef88681-2
    htop - 3.1.2-1
    ifstat - 1.1-3
    iftop - 2018-10-03-77901c8c-2
    ip6tables - 1.8.7-1
    ipset - 7.6-1
    iptables - 1.8.7-1
    iptables-mod-conntrack-extra - 1.8.7-1
    iptables-mod-ipopt - 1.8.7-1
    iptables-mod-tproxy - 1.8.7-1
    jshn - 2021-05-16-b14c4688-2
    jsonfilter - 2018-02-04-c7e938d6-1
    kernel - 5.4.179-1-0668302a4d3e5f16962d6a1f596f7c01
    kmod-asn1-decoder - 5.4.179-1
    kmod-gpio-button-hotplug - 5.4.179-3
    kmod-ip6tables - 5.4.179-1
    kmod-ipt-conntrack - 5.4.179-1
    kmod-ipt-conntrack-extra - 5.4.179-1
    kmod-ipt-core - 5.4.179-1
    kmod-ipt-ipopt - 5.4.179-1
    kmod-ipt-ipset - 5.4.179-1
    kmod-ipt-nat - 5.4.179-1
    kmod-ipt-nat6 - 5.4.179-1
    kmod-ipt-offload - 5.4.179-1
    kmod-ipt-raw - 5.4.179-1
    kmod-ipt-tproxy - 5.4.179-1
    kmod-lib-crc-ccitt - 5.4.179-1
    kmod-lib-textsearch - 5.4.179-1
    kmod-mii - 5.4.179-1
    kmod-nf-conntrack - 5.4.179-1
    kmod-nf-conntrack6 - 5.4.179-1
    kmod-nf-flow - 5.4.179-1
    kmod-nf-ipt - 5.4.179-1
    kmod-nf-ipt6 - 5.4.179-1
    kmod-nf-nat - 5.4.179-1
    kmod-nf-nat6 - 5.4.179-1
    kmod-nf-nathelper - 5.4.179-1
    kmod-nf-nathelper-extra - 5.4.179-1
    kmod-nf-reject - 5.4.179-1
    kmod-nf-reject6 - 5.4.179-1
    kmod-nfnetlink - 5.4.179-1
    kmod-nls-base - 5.4.179-1
    kmod-ppp - 5.4.179-1
    kmod-pppoe - 5.4.179-1
    kmod-pppox - 5.4.179-1
    kmod-slhc - 5.4.179-1
    kmod-usb-core - 5.4.179-1
    kmod-usb-net - 5.4.179-1
    kmod-usb-net-rtl8152 - 5.4.179-1
    kmod-usb-serial - 5.4.179-1
    kmod-usb-serial-option - 5.4.179-1
    kmod-usb-serial-wwan - 5.4.179-1
    libblkid1 - 2.36.1-2
    libblobmsg-json20210516 - 2021-05-16-b14c4688-2
    libc - 1.1.24-3
    libcomerr0 - 1.45.6-2
    libext2fs2 - 1.45.6-2
    libf2fs6 - 1.14.0-1
    libfdisk1 - 2.36.1-2
    libgcc1 - 8.4.0-3
    libip4tc2 - 1.8.7-1
    libip6tc2 - 1.8.7-1
    libipset13 - 7.6-1
    libiwinfo-data - 2021-04-30-c45f0b58-2.1
    libiwinfo-lua - 2021-04-30-c45f0b58-2.1
    libiwinfo20210430 - 2021-04-30-c45f0b58-2.1
    libjson-c5 - 0.15-2
    libjson-script20210516 - 2021-05-16-b14c4688-2
    liblua5.1.5 - 5.1.5-9
    liblucihttp-lua - 2021-06-11-3dc89af4-1
    liblucihttp0 - 2021-06-11-3dc89af4-1
    libmnl0 - 1.0.4-2
    libmount1 - 2.36.1-2
    libncurses6 - 6.2-3
    libnetsnmp - 5.8-2
    libnl-tiny1 - 2020-08-05-c291088f-2
    libpcap1 - 1.9.1-3.1
    libpci - 3.7.0-2
    libpthread - 1.1.24-3
    libreadline8 - 8.1-1
    librt - 1.1.24-3
    libsmartcols1 - 2.36.1-2
    libss2 - 1.45.6-2
    libubox20210516 - 2021-05-16-b14c4688-2
    libubus-lua - 2021-06-30-4fc532c8-2
    libubus20210630 - 2021-06-30-4fc532c8-2
    libuci20130104 - 2021-04-14-4b3db117-5
    libuclient20201210 - 2021-05-14-6a6011df-1
    libusb-1.0-0 - 1.0.24-3
    libustream-wolfssl20201210 - 2022-01-16-868fd881-1
    libuuid1 - 2.36.1-2
    libwolfssl5.1.1.99a5b54a - 5.1.1-stable-1
    libxtables12 - 1.8.7-1
    logd - 2020-10-25-9ef88681-2
    losetup - 2.36.1-2
    lua - 5.1.5-9
    luci - git-20.074.84698-ead5e81
    luci-app-firewall - git-22.046.85957-59c3392
    luci-app-opkg - git-21.312.69848-4745991
    luci-base - git-22.046.85957-59c3392
    luci-compat - git-22.046.85744-f08a0f6
    luci-lib-base - git-20.232.39649-1f6dc29
    luci-lib-ip - git-20.250.76529-62505bd
    luci-lib-ipkg - git-18.318.71164-4bbe325
    luci-lib-jsonc - git-19.317.29469-8da8f38
    luci-lib-nixio - git-20.234.06894-c4a4e43
    luci-mod-admin-full - git-19.253.48496-3f93650
    luci-mod-network - git-22.046.85061-dd54dce
    luci-mod-status - git-22.046.85784-0ac2542
    luci-mod-system - git-22.019.40321-7a37d02
    luci-proto-ipv6 - git-21.148.49484-14511e5
    luci-proto-ppp - git-21.163.64918-6c6559a
    luci-theme-bootstrap - git-22.047.35373-cc582eb
    mkf2fs - 1.14.0-1
    mount-utils - 2.36.1-2
    mtd - 26
    netifd - 2021-10-30-8f82742c-1
    odhcp6c - 2021-01-09-53f07e90-16
    odhcpd-ipv6only - 2021-07-18-bc9d317f-3
    openwrt-keyring - 2021-02-20-49283916-2
    opkg - 2021-06-13-1bf042dd-1
    partx-utils - 2.36.1-2
    ppp - 2.4.8.git-2020-10-03-3
    ppp-mod-pppoe - 2.4.8.git-2020-10-03-3
    procd - 2021-03-08-2cfc26f8-1
    resize2fs - 1.45.6-2
    rpcd - 2021-03-11-ccb75178-1
    rpcd-mod-file - 2021-03-11-ccb75178-1
    rpcd-mod-iwinfo - 2021-03-11-ccb75178-1
    rpcd-mod-luci - 20210614
    rpcd-mod-rrdns - 20170710
    terminfo - 6.2-3
    uboot-envtools - 2021.01-3
    ubox - 2020-10-25-9ef88681-2
    ubus - 2021-06-30-4fc532c8-2
    ubusd - 2021-06-30-4fc532c8-2
    uci - 2021-04-14-4b3db117-5
    uclient-fetch - 2021-05-14-6a6011df-1
    uhttpd - 2021-03-21-15346de8-2
    uhttpd-mod-ubus - 2021-03-21-15346de8-2
    urandom-seed - 3
    urngd - 2020-01-21-c7f7b6b6-1
    usign - 2020-05-23-f1f65026-1
    

    Build the firmware with Github Action

    You can also build the firmware with Github action. Here is the .config file

    # Devices
    CONFIG_TARGET_rockchip=y
    CONFIG_TARGET_rockchip_armv8=y
    CONFIG_TARGET_rockchip_armv8_DEVICE_xunlong_orangepi-r1-plus-lts=y
    CONFIG_TARGET_ROOTFS_PARTSIZE=512
    
    # iptables
    
    CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
    CONFIG_PACKAGE_iptables-mod-ipopt=y
    CONFIG_PACKAGE_iptables-mod-tproxy=y
    
    # Luci
    
    CONFIG_PACKAGE_luci=y
    CONFIG_PACKAGE_luci-base=y
    CONFIG_PACKAGE_liblucihttp=y
    CONFIG_PACKAGE_liblucihttp-lua=y
    CONFIG_PACKAGE_uhttpd=y
    CONFIG_PACKAGE_uhttpd-mod-ubus=y
    CONFIG_PACKAGE_luci-mod-admin-full=y
    CONFIG_PACKAGE_luci-mod-network=y
    CONFIG_PACKAGE_luci-mod-status=y
    CONFIG_PACKAGE_luci-mod-system=y
    CONFIG_PACKAGE_luci-app-firewall=y
    CONFIG_PACKAGE_luci-app-opkg=y
    CONFIG_PACKAGE_luci-theme-bootstrap=y
    CONFIG_PACKAGE_luci-proto-ipv6=y
    CONFIG_PACKAGE_luci-proto-ppp=y
    CONFIG_PACKAGE_luci-lib-base=y
    CONFIG_PACKAGE_luci-lib-ip=y
    CONFIG_PACKAGE_luci-lib-jsonc=y
    CONFIG_PACKAGE_luci-lib-nixio=y
    
    # Packages
    
    CONFIG_PACKAGE_ifstat=y
    CONFIG_PACKAGE_iftop=y
    CONFIG_PACKAGE_ipset=y
    CONFIG_PACKAGE_htop=y
    CONFIG_PACKAGE_libusb-1.0=y
    
    # Kmod
    
    CONFIG_PACKAGE_kmod-ipt-nat6=y
    CONFIG_PACKAGE_kmod-nf-nat6=y
    CONFIG_PACKAGE_kmod-usb-serial-option=y

    don’t forget to change the repo URL on the the build-openwrt.yml:

    #
    # Copyright (c) 2019-2020 P3TERX <https://p3terx.com>
    #
    # This is free software, licensed under the MIT License.
    # See /LICENSE for more information.
    #
    # https://github.com/P3TERX/Actions-OpenWrt
    # Description: Build OpenWrt using GitHub Actions
    #
    
    name: Build OpenWrt
    
    on:
      repository_dispatch:
      workflow_dispatch:
        inputs:
          ssh:
            description: 'SSH connection to Actions'
            required: false
            default: 'false'
    
    env:
      REPO_URL: https://github.com/vantechcorner/openwrt-orangepi
      REPO_BRANCH: openwrt-21.02
      FEEDS_CONF: feeds.conf.default
      CONFIG_FILE: .config
      DIY_P1_SH: diy-part1.sh
      DIY_P2_SH: diy-part2.sh
      UPLOAD_BIN_DIR: false
      UPLOAD_FIRMWARE: true
      UPLOAD_COWTRANSFER: false
      UPLOAD_WETRANSFER: false
      UPLOAD_RELEASE: false
      TZ: Asia/Shanghai
    
    jobs:
      build:
        runs-on: ubuntu-20.04

    Good luck!

  • NanoPi R5S OpenWRT Performance

    NanoPi R5S OpenWRT Performance

    Right now, the NanoPi R5S performance information is widely available in Chinese. Therefore, I decided to make this post, hope it will be useful if you are looking for this piece of information.

    If you have yet to watch the NanoPi R5S detailed overview in English, you can find it here.

    In the video, I am using the latest FriendlyWRT released on August 3, 2022. It is a fold of OpenWRT developed by Friendlyelec.

    Testing Network Diagram

    I setup a 2.5 Gigiabit network connection in order to test out the potential of the NanoPi R5S. The NanoPi R5S and the test server is connected to the FastRhino R68s LAN ports.

    NanoPi R5S FriendlyWRT Performance

    I run the WAN to LAN test a few times and the result is different from one to another. It looks like there are stability problem that FriendlyElec team need to fix.

    For Wireguard VPN and OpenVPN, the result is stable. The OpenVPN throughput is at 150Mbps and Wireguard VPN is around 610 Mbps.

    Data Rate Unit: MbpsOpenSpeedTest DownloadOpenSpeedTest Uploadiperf3
    WAN to LAN1168883607
    WAN to LAN (SW Offloading)18531338641
    OpenVPN160148150
    Wireguard VPN637610480

    Testing Video

    You can watch the full video to see how I upgrade the FriendlyWRT to the latest version as well as configuring the LAN1 port as a WAN port (2.5GbE).

    Feeel free to let me know what is the test you want me to do next with the NanoPi R5S!

  • Install OpenWRT on Xiaomi CR6608 Router

    Install OpenWRT on Xiaomi CR6608 Router

    Xiaomi CR6608 is a Wi-Fi6 AX1800 Router with 4 Gigabit Ethernet Ports. The router was manufacured for local Chinese ISP: CR6606 (China Unicom), CR6608 (China Mobile), CR6609 (China Telecom).

    OpenWRT support for this device was migrated into OpenWRT master on Feb 7, 2022. Special thanks to InfWang for his effort on the PR ramips: add support for Xiaomi Mi Router CR660x series

    Specifications:

    • SoC: MediaTek MT7621AT
    • RAM: 256MB DDR3 (ESMT M15T2G16128A)
    • Flash: 128MB NAND (ESMT F59L1G81MB)
    • Ethernet: 1000Base-T x4 (MT7530 SoC)
    • WLAN: 2×2 2.4GHz 574Mbps + 2×2 5GHz 1201Mbps (MT7905DAN + MT7975DN)
    • LEDs: System (Blue, Yellow), Internet (Blue, Yellow)
    • Buttons: Reset, WPS
    • UART: through-hole on PCB ((VCC 3.3v)(RX)(GND)(TX) 115200, 8n1)
    • Power: 12VDC, 1A

    The way to install OpenWRT on the Xiaomi CR6608 is simple and doesn’t required hardware modification. However, you will need a router running OpenWRT to proceed. It is a long video, but there are only 2 main steps:

    • Get SSH access to the router
    • Write OpenWRT firmware with mtd

    Get SSH access to Xiaomi CR6608

    First thing, connect the PC to the OpenWRT router. After that, create the xqsystem.lua file in /usr/lib/lua/luci/controller/admin/ with the below lines. Alternatively, you can create this file on your PC and upload it to the router with WinSCP.

    module("luci.controller.admin.xqsystem", package.seeall)
    
    function index()
          local page   = node("api")
          page.target  = firstchild()
          page.title   = ("")
          page.order   = 100
          page.index = true
          page   = node("api","xqsystem")
          page.target  = firstchild()
          page.title   = ("")
          page.order   = 100
          page.index = true
          entry({"api", "xqsystem", "token"}, call("getToken"), (""), 103, 0x08)
    end
    
    local LuciHttp = require("luci.http")
    
    function getToken()
          local result = {}
          result["code"] = 0
          result["token"] = "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
          LuciHttp.write_json(result)
    end

    To verify, you can browse

    http://{OpenWRT-Router-IP}/cgi-bin/luci/api/xqsystem/token

    It should give you a respond like this:

    {"code":0,"token":"; nvram set ssh_en=1; nvram commit; …"}

    Now, setup the wireless interface on the OpenWRT router. To make it simple, I setup the SSID on 2.4GHz radio, SSID openwrt and the password is 12345678

    After that, change the IP address of the LAN (br-lan) interface to 169.254.31.1 and turn off DHCP server for this interface. Please note that, if you are changing the IP address using LuCI, you will need to set a static IP adddress for the PC to 169.254.31.3 and vist the OpenWRT router at 169.254.31.1 to confirm the changes (else, the router will revert the IP to default after 1 – 2 minutes).

    Now, switch to the Xiaomi CR6608 Router

    Connect to it via WiFi or Ethernet cable. After login to the Web UI, pay attention to the STOK ID which can be found on the URL

     http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/web/home#router

    We are going to use the STOK for the next 2 query.

    http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/api/misystem/extendwifi_connect?ssid={WiFi-SSID}&password={WiFi-Password}
    
    Here is how it looks like and the response if the connection is succes.

    Now, run the second command to get SSH access

    http://Xiaomi-CR6608-IP/cgi-bin/luci/;stok={STOK}/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx

    At this step, you should be able to connect SSH to the router. The username is root and the password is the default password at the back of the router. (默认登录密码)

    Since UART access is locked ootb, you should get UART access by modify uboot env. Otherwise, your router may become bricked.
    Excute these in stock firmware shell:

    nvram set boot_wait=on
    nvram set bootdelay=3
    nvram commit

    If you don’t want to install OpenWRT now, you can safely shutdown the router and the SSH connection will be avalable. However, if you can’t wait to install OpenWRT (I think this is the reason you are reading this post, please proceed)

    Install OpenWRT on Xiaomi CR6608 with mtd

    We are going to need the openwrt-ramips-mt7621-xiaomi_mi-router-cr660x-squashfs-firmware.bin for the installation. Click here to download the firmware for the Xiaomi CR660x series.

    If the Xiaomi CR6608 is having internet connection, you can use wget or curl command to download the firmware directly to the /tmp directory. Or, you can download it to the computer and upload it to your router with WinSCP.

    After that, run these commands

    nvram set flag_try_sys1_failed=0
    nvram set flag_try_sys2_failed=1
    nvram commit

    Finnaly, executive this command to flash OpenWRT on the Xiaomi CR6608

    mtd -r write /tmp/openwrt-squashfs-firmware.bin firmware

    After this, the router will reboot itself and you can establish the SSH connection to it at 192.168.1.1. to install LuCI. Connect the WAN port of the CR6608 to the upstream router for internet connection and the below commands to install LuCI

    opkg update
    opkg install luci

    Now, you should be able to reach LuCI at 192.168.1.1

    Good luck and enjoy your CR660x OpenWRT router!

  • Install OpenWRT on Mikrotik RB2011

    Install OpenWRT on Mikrotik RB2011

    The RB2011 is a low cost multi port device series. It has 10 Ethernet ports: 5 Gigabit Ethernet and 5 Fast Ethernet ports. With the 600MHz AR9344 CPU, the router is only suitable for home or very-small-office where you are connecting to the Internet with PPPoE or DHCP.

    In this video, I will show you how to install OpenWRT 19.07 on this Mikrotik Routerboard 2011. After that, we will have some tests to check out the device performance: WAN to LAN iperf test, OpenSpeedTest and PPPoE with VLAN speedtest. Of course software & hardware offloading tests will be conducted as well.

    Due to the switch configuration bug in LuCI (for the RB2011), you won’t be able to configure VLAN with LuCI. But no worry, I will also show you how to configure VLAN tagging using the Command Line.

    Resources that you will need:

    Mikrotik RB20211 Firmware Download & Guide

    Common Procedures for MikroTik RouterBoard

    TinyPXE Application

    Good luck!

  • Install OpenWRT 21.02 on Ubiquiti UniFi AC Lite

    Install OpenWRT 21.02 on Ubiquiti UniFi AC Lite

    In this video, we will install OpenWRT on the Ubiquiti UniFi AC Lite. This tutorial can be applied on other Unfi AC models, such as the UniFi AC Pro or the UniFi AC LR. After that, we will check out the WiFi throughput & CPU usage of the UniFi AC Lite running OpenWRT with speedtest, OpenSpeedTest & iperf3.

    For this installation, I will use the non-invasive method using mtd from UniFi (via ssh). If you are looking for tftp installation method with serial console, you can check out the installation tutorial for UniFi AP LR – https://youtu.be/9Z1F8CAweHs

    Resources:

    UniFi AC guide from OpenWRT

    OpenWRT tftp Installation with Serial Console on UniFi AP LR

  • Install OpenWRT on Mikrotik RB750Gr3

    Install OpenWRT on Mikrotik RB750Gr3

    In this video, we are going to install OpenWRT 21.02 on the Mikrotik RouterBoard 750Gr3 (Hex).

    Most of the routers from Mikrotik use netboot via tftp to install/recovery the firmware and we will do the same for OpenWRT. This video will also show you how to downgrade your RouterOS version to 6.49.2 and backup your RouterOS license key, before proceeding with the OpenWRT installation with TinyPXE. Besides that, we will do a quick speedtest to see the CPU usage. At the end, we will also enable hardware & software flow offloading to see if there is any improvement in the performance.

    Check out the video at https://youtu.be/2k1uji4el7c

    Resources:

    Installation Guide & Firmware

    Common Procedures for MikroTik RouterBoard

    RouterOS Download

    TinyPXE

  • WiFi Fast Roaming on OpenWRT (Fast Transition)

    WiFi Fast Roaming on OpenWRT (Fast Transition)

    Fast roaming, also known as IEEE 802.11r or Fast BSS Transition (FT), allows a client device to roam quickly in environments implementing WPA2 Enterprise security, by ensuring that the client device does not need to re-authenticate to the RADIUS server every time it roams from one access point to another.

    We can easily configure Wifi fast roaming with LuCi. The required package is wpad (the full package, not wpad-mini nor wpad-basic).

    ESSID, encryption, key (password) and the Mobility Domain should be the same between each of the AP (node) while the operating frequency is advised to be different.

    Check out the new video at: https://www.youtube.com/watch?v=1yaodn1BpSw

  • Aluminium Case with Dual Fans for Raspberry Pi 4

    Aluminium Case with Dual Fans for Raspberry Pi 4

    In this video, we are going to unbox the aluminium case with dual fans made for the Raspberry Pi 4 B. After that, we will set it up and perform a temperature test to see if the case really work or it is just for fun.

    The case is very popular and you can find it on Shopee, Lazada, eBay and other online commercial platforms. The case is made of Aluminum Alloy with CNC machining manufacturing technology.

    Come from the box, we have the case, 2 fans, thermal tapes and screws. The case will also fit well on Raspberry Pi 3 B and Raspberry Pi 3 B+ model. Tests had been done and we could see that the temperature is reduced by 10°C.

    Check out the full unbox, installation and test video on Youtube: