[BPI-R3] information

Loaded banana with two 2.5gbe gbics, one 2tb nvme drive and one EC25-e 4g module. Also the first attempt at a case for the thing. It still needs a lot of tweaking until it fits ok.

photo_2022-10-25_13-37-25 photo_2022-10-25_13-37-33 photo_2022-10-25_13-37-43

It helped alot. it’s what I am using on my attempt to make a case. Thanks! If it ends up acceptable I will release it for everyone.

Having said that, I think this thing needs a metal case that can act as a heatsink for the nvme and cpu.

nice, it this already printed?

if you do not make a metal case, you have walls ~3mm thick which may prevent sfp and rj45 to be pluggin in. in my old case i made a smaller thickness there for ~2mm around these jacks

note that the holes for sd/sim and the bootswitches must be larger than the slot itself to get on it with fingers

yes, I printed it yesterday. right now I’m printing just the front part to make adjustments.

But if I make something usable it will be only temporary. This thing really needs a metal case.

Screenshot%20from%202022-10-25%2015-04-51

currently looks like this: Screenshot%20from%202022-10-25%2015-09-58

It’s basically a remix of a case I found on thingyverse.

1 Like

Hi everyone.

I’m a bit outdated on R3 news. Is the board already released an available on the market?

yes, I bought mine from an amazon seller in Europe

1 Like

I suggest to wait for next hw-revision when reset-bug is fixed.

1 Like

it’s not fixed in 1.3?

what is that reset bug about?

Can you please share the STL file?

Afaik there is only v1.1

Reset-bug: [BPI-R3] information

Should be fixed in upcoming 1.2

@azsenca it is not yet a complete case

Is there a heatsink matchin the 43mm holes on the board? Or are these holes for anything else?

Hi,

R3 seems really nice but I need two radio on 5Ghz, can someone confirm me that I can use this module : https://www.asiarf.com/shop/wifi-wlan/wifi-m-2-card/wifi6-2t2r-dual-bands-dual-concurrents-dbdc-m-2-card-bm-key-1800-ieee802-11ax-2-4g-5ghz-mt7915-aw7915-bmd/ on the M2 slot or not ?

Thanks

I’m curious what is expected performance of BPI-R3 vs my current Turris Omnia.

This is not super scientific method, but does give a rough estimate of what to expect. Could some one run Geekbench 5 for ARM64 and share results? For ex. Turris Omnia gets ~100 SC, ~180 MC (on arm32).

wget https://cdn.geekbench.com/Geekbench-5.4.4-LinuxARMPreview.tar.gz
tar zxf Geekbench-5.4.4-LinuxARMPreview.tar.gz
cd Geekbench-5.4.4-LinuxARMPreview/
./geekbench_aarch64

Unfortunately the geekbench binaries are dynamically linked against uClibc.

If I find more time for that I’ll try running it inside a uClibc container (as Debian uses glibc, OpenWrt uses musl the binary doesn’t run out-of-the-box on neither of them).

How did you actually run this on the Turris Omnia?

I originally run this via lxc container.

However, this should also work (at least it is working right now on my Turris Omnia [just arm64 replaced with armhf, and aarch64 with armv7]):

mkdir /tmp/ubuntu
cd /tmp/ubuntu

wget https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-arm64.tar.gz
tar zxf ubuntu-base-22.04-base-arm64.tar.gz
wget https://cdn.geekbench.com/Geekbench-5.4.4-LinuxARMPreview.tar.gz
tar zxf Geekbench-5.4.4-LinuxARMPreview.tar.gz

mount --bind /proc proc
mount --bind /sys sys

chroot . /bin/bash

echo nameserver 1.1.1.1 > /etc/resolv.conf
./Geekbench-5.4.4-LinuxARMPreview/geekbench_arm64

Geekbench has some detection issues (frequency and core-count) so maybe results are not right:

System Information                                                                                                                                                      
  Operating System              Debian GNU/Linux 11 (bullseye)                                                                                                          
  Kernel                        Linux 6.1.0-rc1-bpi-r3-r3 aarch64                                                                                                       
  Model                         Bananapi BPI-R3 (sdmmc)                                                                                                                 
  Motherboard                   N/A                                                                                                                                     
                                                                                                                                                                        
Processor Information                                                                                                                                                   
  Name                          ARM ARMv8                                                                                                                               
  Topology                      1 Processor, 1 Core, 4 Threads                                                                                                          
  Identifier                    ARM implementer 65 architecture 8 variant 0 part 3331 revision 4                                                                        
  Base Frequency                0.00 Hz                                                                                                                                 
                                                                                                                                                                        
Memory Information                                                                                                                                                      
  Size                          1.94 GB

https://browser.geekbench.com/v5/cpu/18391168

SoC had only ~43°C maximum without heatsink

Thank you @frank-w.

The detection on ARM is not perfect, but I think results should still be valid.

The comparison to:

I’m actually surprised as those results are pretty good. Slower than RPI4, but still pretty good.

What pakages required by mpcie slot lte module if I build from official openwrt code?

Unfortunately there is not just one way to interface LTE modems with Linux (in terms of drivers), and there are at least three ways to control them from OpenWrt’s user space. Which of them is best depends on the modem and the use-case.

Let’s start with the most common contemporary modem USB driver interfaces:

  • simple serial interface: there are a couple of different standard and non-standard drivers used to interface cellular modems using the classic Hayes/AT command set as defined in the ETSI GSM standard. Install kmod-usb-acm, kmod-usb-serial-option, kmod-usb-serial-sierrawireless, kmod-usb-serial-qualcomm to cover most of them.

  • USB Mobile Broadband Interface Model (MBIM): A standard interface to mobile broadband modems defined by joint group of industry players including Ericsson, Microsoft and Nokia. Most modern modems intended for use in the Microsoft universe come with support for this interface. Install kmod-usb-net-cdc-mbim to make use of this interface with OpenWrt.

  • USB Communication Device Class (CDC) using the sub-class Network Control Model (NCM): A generic way to control modems exposing an USB-Ethernet adapter. Install kmod-usb-net-cdc-ncm.

  • Huawei CDC/NCM: The way Huawei interpreted and amended the above standard. Install kmod-usb-net-huawei-cdc-ncm

  • Qualcomm’s QMI protocol: Install usb-net-qmi-wwan

  • Samsung Kalmia based LTE USB modems: Install kmod-usb-net-kalmia

Now if you thought that every modem supports exactly one of those interfaces, well, it’s not that simple. Most modems support a subset of the above list, many allow switching between different interface modes or even allow (and sometimes require…) simultaneous use a combination of them (Qualcomm-based modems typically expose GPS and management interfaces as serial ports, plus either QMI or MBIM for mobile broadband, for example).

Note that some recent Qualcomm 5G modems are connected via PCIe rather than USB and use yet another proprietary protocol called Modem Host Interface (MHI). They are not compatible with the R3 as the mPCIe slot with SIM card connected only exposes USB 2.0 pins (and not PCIe).

Also note that there are some historic vendor-specific USB modem driver interfaces which I won’t even mention as nobody should be using them in new designs.

Anyway. Now with all those kernel modules installed you will still need a way to setup the modem to connect to the Internet (never mind voice calls, SMS, … for now. But it’s all possible as well). And also for this there are several ways:

  • simply use Hayes/AT interface to dial and connect like if it was an analog modem from the 1990s and use PPP protocol, like in the good old days. This works with most modems and require little to no extra software support compared to classic telephone-line connected analog modems, but performance is not great. In OpenWrt this mode can be used by installing the wwan and comgt packages.

  • use protocol-specific minimal OpenWrt tools:

    • umbim to setup MBIM compatible modems
    • use comgt-ncm for CDC/NCM compatible modems
    • use uqmi to setup QMI compatible modems

For all of the above there are also LuCI packages (luci-proto-3g, luci-proto-ncm, luci-proto-qmi, …)

  • Instead of using any of the above ways to manage the modem you may also use ModemManager which is the common way to use cellular modems in the systemd/dbus world. Also for this there is a LuCI frontend called luci-proto-modemmanager. Be sure to build ModemManager with the protocol options needed for your modem (by default those options are not enabled, ie. you need to build from source and e.g. select MODEMMANAGER_WITH_QMI and/or MODEMMANAGER_WITH_MBIM to have them). Using ModemManager has the advantage of there being a dedicated persistent process watching and managing the modem state. This is particularly important for modems in mobile setups which do not auto-reconnect in case of network loss.
3 Likes