[LibreQoS] Fwd: [PATCH] ath79: Add support for Ubiquiti NanoBeam AC Gen2 XC

dan dandenson at gmail.com
Wed Mar 15 11:22:08 EDT 2023


Yes, but you can't connect an openwrt flashed unit to a stock airmax AP and
if you wanted to convert the AP to openwrt the performance tanks
unbelievably for outdoor PtMP.  easily a 30%+ loss.  However, if you're
wanting to get into 'wifi' at range this does work but you can't get very
far because most wifi APs timings are too tight.

On Wed, Mar 15, 2023 at 9:18 AM Dave Taht via LibreQoS <
libreqos at lists.bufferbloat.net> wrote:

> anybody still using these?
>
> ---------- Forwarded message ---------
> From: Daniel González Cabanelas <dgcbueu at gmail.com>
> Date: Wed, Mar 15, 2023 at 8:13 AM
> Subject: [PATCH] ath79: Add support for Ubiquiti NanoBeam AC Gen2 XC
> To: <openwrt-devel at lists.openwrt.org>
>
>
> The Ubiquiti NanoBeam AC Gen2 XC (NBE-5AC-Gen2) is an outdoor 802.11ac CPE
> with a waterproof casing (ultrasonically welded) and bulb shaped.
>
> It's the same board as Gen1 but with a small antenna routed out of the SoC
> and calibration data for this management radio in the "art" partition.
>
> Hardware:
>    SoC:                Qualcomm Atheros QCA9558
>    CPU:                MIPS 74Kc V5.0 720 MHz, 1 core
>    RAM:                128 MB DDR2
>    Flash:              16 MB SPI-NOR, MX25L12805D
>    Ethernet:           1x GbE
>    WiFi 5 GHz:         Qualcomm Atheros QCA988X
>    WiFi 2.4 GHz:       SoC (management radio)
>    Internal antenna 1: 19 dBi planar (5 GHz)
>    Internal antenna 2: 2 dBi PCB, connected via UFL (SoC)
>    Buttons:            1x reset
>    LEDs:               1x power, 1x Ethernet, 4x RSSI, all blue
>    PSU:                24 Vdc passive PoE
>
> Installation from stock airOS firmware:
>  - Follow instructions for XC-type Ubiquiti devices on OpenWrt wiki at
>    https://openwrt.org/toh/ubiquiti/common
>
> Back to stock firmware:
>  - Follow instructions for Ubiquiti recovery via TFTP at OpenWrt wiki.
>
> Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
> ---
>  .../dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts  |  17 +++
>  .../ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts | 105 +----------------
>  .../dts/qca9558_ubnt_nanobeam-ac-xc.dtsi      | 107 ++++++++++++++++++
>  .../generic/base-files/etc/board.d/01_leds    |   1 +
>  .../generic/base-files/etc/board.d/02_network |   2 +
>  .../etc/hotplug.d/firmware/11-ath10k-caldata  |   1 +
>  target/linux/ath79/image/generic-ubnt.mk      |  10 ++
>  7 files changed, 141 insertions(+), 102 deletions(-)
>  create mode 100644
> target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts
>  create mode 100644 target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi
>
> diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts
> b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts
> new file mode 100644
> index 0000000000..629b5bfe0a
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts
> @@ -0,0 +1,17 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Device Tree file for Ubiquiti Nanobeam NBE-5AC-Gen2 (XC)
> + */
> +
> +#include "qca9558_ubnt_nanobeam-ac-xc.dtsi"
> +
> +/ {
> +       compatible = "ubnt,nanobeam-ac-gen2-xc", "ubnt,xc", "qca,qca9558";
> +       model = "Ubiquiti NanoBeam AC Gen2 (XC)";
> +};
> +
> +&wmac {
> +       status = "okay";
> +
> +       mtd-cal-data = <&art 0x1000>;
> +};
> diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
> b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
> index 91675ff615..898c249154 100644
> --- a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
> +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
> @@ -1,110 +1,11 @@
> -// SPDX-License-Identifier: GPL-2.0-only
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
>  /*
>   * Device Tree file for Ubiquiti Nanobeam NBE-5AC-19 (XC)
> - *
> - * Copyright (C) 2022 Daniel González Cabanelas <dgcbueu at gmail.com>
> - * based on device tree from qca9558_ubnt_powerbeam-5ac-500.dts
>   */
> -
> -#include "qca955x_ubnt_xc.dtsi"
> +
> +#include "qca9558_ubnt_nanobeam-ac-xc.dtsi"
>
>  / {
>         compatible = "ubnt,nanobeam-ac-xc", "ubnt,xc", "qca,qca9558";
>         model = "Ubiquiti NanoBeam AC Gen1 (XC)";
> -
> -       aliases {
> -               led-boot = &led_power;
> -               led-failsafe = &led_power;
> -               led-running = &led_power;
> -               led-upgrade = &led_power;
> -       };
> -
> -       keys {
> -               compatible = "gpio-keys";
> -
> -               reset {
> -                       label = "Reset button";
> -                       linux,code = <KEY_RESTART>;
> -                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
> -                       debounce-interval = <60>;
> -               };
> -       };
> -
> -       led_spi {
> -               compatible = "spi-gpio";
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -
> -               sck-gpios  = <&gpio 0 GPIO_ACTIVE_HIGH>;
> -               mosi-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
> -               cs-gpios   = <&gpio 3 GPIO_ACTIVE_HIGH>;
> -               num-chipselects = <1>;
> -
> -               led_gpio: led_gpio at 0 {
> -                       compatible = "fairchild,74hc595";
> -                       reg = <0>;
> -                       gpio-controller;
> -                       #gpio-cells = <2>;
> -                       registers-number = <1>;
> -                       spi-max-frequency = <10000000>;
> -                       enable-gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
> -               };
> -       };
> -
> -       leds {
> -               compatible = "gpio-leds";
> -
> -               rssi0 {
> -                       label = "blue:rssi0";
> -                       gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>;
> -               };
> -               rssi1 {
> -                       label = "blue:rssi1";
> -                       gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>;
> -               };
> -               rssi2 {
> -                       label = "blue:rssi2";
> -                       gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>;
> -               };
> -               rssi3 {
> -                       label = "blue:rssi3";
> -                       gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>;
> -               };
> -               led_power: power {
> -                       label = "blue:power";
> -                       gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>;
> -                       default-state = "on";
> -               };
> -       };
> -};
> -
> -&mdio0 {
> -       status = "okay";
> -
> -       phy4: ethernet-phy at 4 {
> -               phy-mode = "sgmii";
> -               reg = <4>;
> -               at803x-override-sgmii-link-check;
> -       };
> -};
> -
> -&eth0 {
> -       status = "okay";
> -
> -       pll-reg = <0 0x48 0>;
> -       pll-data = <0x03000000 0x00000101 0x00001313>;
> -       nvmem-cells = <&macaddr_art_0>;
> -       nvmem-cell-names = "mac-address";
> -       phy-mode = "sgmii";
> -       phy-handle = <&phy4>;
> -};
> -
> -&art {
> -       compatible = "nvmem-cells";
> -       #address-cells = <1>;
> -       #size-cells = <1>;
> -
> -       macaddr_art_0: macaddr at 0 {
> -               reg = <0x0 0x6>;
> -       };
>  };
> diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi
> b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi
> new file mode 100644
> index 0000000000..e68ceb7f5c
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi
> @@ -0,0 +1,107 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Device Tree file for Ubiquiti Nanobeam XC
> + *
> + * Copyright (C) 2022 Daniel González Cabanelas <dgcbueu at gmail.com>
> + * based on device tree from qca9558_ubnt_powerbeam-5ac-500.dts
> + */
> +
> +#include "qca955x_ubnt_xc.dtsi"
> +
> +/ {
> +       aliases {
> +               led-boot = &led_power;
> +               led-failsafe = &led_power;
> +               led-running = &led_power;
> +               led-upgrade = &led_power;
> +       };
> +
> +       keys {
> +               compatible = "gpio-keys";
> +
> +               reset {
> +                       label = "Reset button";
> +                       linux,code = <KEY_RESTART>;
> +                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
> +                       debounce-interval = <60>;
> +               };
> +       };
> +
> +       led_spi {
> +               compatible = "spi-gpio";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               sck-gpios  = <&gpio 0 GPIO_ACTIVE_HIGH>;
> +               mosi-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
> +               cs-gpios   = <&gpio 3 GPIO_ACTIVE_LOW>;
> +               num-chipselects = <1>;
> +
> +               led_gpio: led_gpio at 0 {
> +                       compatible = "fairchild,74hc595";
> +                       reg = <0>;
> +                       gpio-controller;
> +                       #gpio-cells = <2>;
> +                       registers-number = <1>;
> +                       spi-max-frequency = <10000000>;
> +                       enable-gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
> +               };
> +       };
> +
> +       leds {
> +               compatible = "gpio-leds";
> +
> +               rssi0 {
> +                       label = "blue:rssi0";
> +                       gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>;
> +               };
> +               rssi1 {
> +                       label = "blue:rssi1";
> +                       gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>;
> +               };
> +               rssi2 {
> +                       label = "blue:rssi2";
> +                       gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>;
> +               };
> +               rssi3 {
> +                       label = "blue:rssi3";
> +                       gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>;
> +               };
> +               led_power: power {
> +                       label = "blue:power";
> +                       gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>;
> +                       default-state = "on";
> +               };
> +       };
> +};
> +
> +&mdio0 {
> +       status = "okay";
> +
> +       phy4: ethernet-phy at 4 {
> +               phy-mode = "sgmii";
> +               reg = <4>;
> +               at803x-override-sgmii-link-check;
> +       };
> +};
> +
> +&eth0 {
> +       status = "okay";
> +
> +       pll-reg = <0 0x48 0>;
> +       pll-data = <0x03000000 0x00000101 0x00001313>;
> +       nvmem-cells = <&macaddr_art_0>;
> +       nvmem-cell-names = "mac-address";
> +       phy-mode = "sgmii";
> +       phy-handle = <&phy4>;
> +};
> +
> +&art {
> +       compatible = "nvmem-cells";
> +       #address-cells = <1>;
> +       #size-cells = <1>;
> +
> +       macaddr_art_0: macaddr at 0 {
> +               reg = <0x0 0x6>;
> +       };
> +};
> diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
> b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
> index 5855d2a928..a91e82f5e6 100644
> --- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
> +++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
> @@ -464,6 +464,7 @@ ubnt,bullet-ac|\
>  ubnt,nanobeam-ac|\
>  ubnt,nanobeam-ac-gen2|\
>  ubnt,nanobeam-ac-xc|\
> +ubnt,nanobeam-ac-gen2-xc|\
>  ubnt,nanostation-ac|\
>  ubnt,powerbeam-5ac-gen2)
>         ucidef_set_rssimon "wlan0" "200000" "1"
> diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network
> b/target/linux/ath79/generic/base-files/etc/board.d/02_network
> index b20a3c13f8..f5137385c2 100644
> --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
> +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
> @@ -101,6 +101,7 @@ ath79_setup_interfaces()
>         ubnt,litebeam-ac-gen2|\
>         ubnt,nanobeam-ac|\
>         ubnt,nanobeam-ac-xc|\
> +       ubnt,nanobeam-ac-gen2-xc|\
>         ubnt,nanostation-ac-loco|\
>         ubnt,nanostation-loco-m-xw|\
>         ubnt,powerbeam-5ac-500|\
> @@ -774,6 +775,7 @@ ath79_setup_macs()
>         ubnt,litebeam-ac-gen2|\
>         ubnt,nanobeam-ac-gen2|\
>         ubnt,nanobeam-ac-xc|\
> +       ubnt,nanobeam-ac-gen2-xc|\
>         ubnt,powerbeam-5ac-500|\
>         ubnt,powerbeam-5ac-gen2)
>                 label_mac=$(mtd_get_mac_binary art 0x5006)
> diff --git
> a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
>
> b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> index 4db311fde0..a79781237b 100644
> ---
> a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> +++
> b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> @@ -45,6 +45,7 @@ case "$FIRMWARE" in
>         ubnt,nanobeam-ac|\
>         ubnt,nanobeam-ac-gen2|\
>         ubnt,nanobeam-ac-xc|\
> +       ubnt,nanobeam-ac-gen2-xc|\
>         ubnt,nanostation-ac|\
>         ubnt,nanostation-ac-loco|\
>         ubnt,powerbeam-5ac-500|\
> diff --git a/target/linux/ath79/image/generic-ubnt.mk
> b/target/linux/ath79/image/generic-ubnt.mk
> index 0f70649d03..a78ccaef82 100644
> --- a/target/linux/ath79/image/generic-ubnt.mk
> +++ b/target/linux/ath79/image/generic-ubnt.mk
> @@ -87,6 +87,16 @@ define Device/ubnt_nanobeam-ac-xc
>  endef
>  TARGET_DEVICES += ubnt_nanobeam-ac-xc
>
> +define Device/ubnt_nanobeam-ac-gen2-xc
> +  $(Device/ubnt-xc)
> +  SOC := qca9558
> +  DEVICE_MODEL := NanoBeam AC
> +  DEVICE_VARIANT := Gen2 (XC)
> +  SUPPORTED_DEVICES += ubnt,nanobeam-ac-xc
> +  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct rssileds
> +endef
> +TARGET_DEVICES += ubnt_nanobeam-ac-gen2-xc
> +
>  define Device/ubnt_nanobeam-m5-xw
>    $(Device/ubnt-xw)
>    DEVICE_MODEL := NanoBeam M5
> --
> 2.39.2
>
>
>
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
>
> --
> Come Heckle Mar 6-9 at: https://www.understandinglatency.com/
> Dave Täht CEO, TekLibre, LLC
> _______________________________________________
> LibreQoS mailing list
> LibreQoS at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/libreqos
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/libreqos/attachments/20230315/dae644e1/attachment-0001.html>


More information about the LibreQoS mailing list