Onhub TP-LINK TGR1900 future support?

For anyone thinking their USB's are not working and are getting red/orange glow after the purple beeps when trying to boot up into the drive: Press the developer mode button immediately after hearing the beeps! If you press it any later, it won't boot into the USB

1 Like

The process is really tricky and even with a lot of experience, things can still be screwed up. If you do screw it up, remember you have to go through the process of zeroing out the eMMC as explained in the Wiki before you try again. No way around this. If you want to start over, zero the eMMC then start from scratch. Once you do get it to work, it's pretty solid and versatile. It CAN be updated using advanced system update and auc just fine - but if you update firmware you'll go back down to 4GB of storage space where the initial install automatically expands the storage to 8 GB and this can't be expanded by any method I know of.

Took my old google onhub from the closet will try with the latest firmware !!
qq is the 23.05.3 mesh enabled ??

No, those packages have to be added, and configured.

thanks sir, by any chance will you be kind enough to point me, which packages need to be installed ?

depends on your definition of "mesh", start at https://openwrt.org/docs/guide-user/network/wifi/mesh/80211s

Has anyone tried upgrading to 25.05.3 on their OnHub router yet? I had some issues upgrading my Raspberry Pi4 router and I'm holding off since everything is very stable on the OnHub with 25.05.2.

Please reply if you have upgraded already.

As a public service (since no one has replied), I decided to give it a whirl. I can report that attended sysupgrade worked, and my OnHub router is running 25.05.3.

I'm giving the all clear.


...and I misread that as 23.05.snapshot.
Ignore me! :slight_smile:

Hello all,

What internet speeds are you able get on OnHub.

I have a 1 Gbps internet connection. Am using a Google Nest Wifi, on cable it give me 820 Mbps and on WiFi 414 Mbps

For testing I connected OnHub with OpenWrt on downstream of Nest Wifi (double NAT)
On OnHub wired it only get a maximum of 500 Mbps (on its WAN port input its 800 Mbps) around 300 Mbps is lost with in OnHub. On Wifi maximum of 250 Mbps.

Any pointers to improve this speed ?

Flash nss build? Generic image is useless for this hw.

I'm using two OnHubs. Can you point me to where I can get an "NSS" build or how to make one?

Use the NSS image I built.
My github repository also contains the image and the work you can build your own.

1 Like


First of all, I want to express my gratitude to everyone involved in this topic.

Based on @ryjelsum 's post (> ryjelsum), I managed to successfully enable Bluetooth audio support for OnHub. Below is a minimal setup example.

First, install the following packages:

opkg install kmod-bluetooth kmod-input-uinput kmod-sound-core kmod-sound-soc-ipq8064-storm kmod-ath3k alsa-utils bluez-utils bluez-daemon dbus pulseaudio-daemon-avahi pulseaudio-profiles pulseaudio-tools

Next, add the following lines to the file /etc/dbus-1/system.d/pulseaudio-system.conf (in diff format) as described in https://openwrt.org/docs/guide-user/hardware/bluetooth/bluetooth.audio:

--- old.conf
+++ /etc/dbus-1/system.d/pulseaudio-system.conf
@@ -26,6 +26,8 @@
   <policy user="pulse">
     <allow own="org.pulseaudio.Server"/>
+    <allow send_type="method_call"/>
+    <allow send_type="method_return"/>

Also, make changes to the file /etc/dbus-1/system.d/bluetooth.conf:

--- old.conf
+++ /etc/dbus-1/system.d/bluetooth.conf
@@ -25,6 +25,8 @@
   <policy context="default">
     <allow send_destination="org.bluez"/>
+    <allow send_type="method_call"/>
+    <allow send_type="method_return"/>

Then, add the following line to the file /etc/pulse/system.pa (not default.pa):

--- old.pa
+++ /etc/pulse/system.pa
@@ -41,6 +41,10 @@
 ### that look up the default sink/source get the right value
 load-module module-default-device-restore
+### Bluetooth
+load-module module-bluetooth-discover
+load-module module-bluetooth-policy
 ### Make sure we always have a sink around, even if it is a null sink.
 load-module module-always-sink

To enable dynamic module loading for PulseAudio (at your own risk due to security concerns), modify /etc/init.d/pulseaudio:

--- old
+++ /etc/init.d/pulseaudio
@@ -23,7 +23,7 @@
        chmod 664 /dev/snd/* /dev/mixer /dev/dsp
-       procd_set_param command $PROG --system --disallow-exit --disallow-module-loading --disable-shm --exit-idle-time=-1 --realtime=false
+       procd_set_param command $PROG --system --disallow-exit --disable-shm --exit-idle-time=-1 --realtime=false

Additionally, modify /etc/init.d/bluetoothd to allow volume control from clients (refer to https://github.com/balena-io-experimental/balena-sound/issues/300#issuecomment-722444790):

-- old
+++ /etc/init.d/bluetoothd
@@ -9,6 +9,6 @@
 start_service() {
        ln -snf /etc/bluetooth/keys/ /var/lib/bluetooth
-       procd_set_param command "$PROG" -n
+       procd_set_param command "$PROG" -n --plugin=a2dp

Optionally, make changes to /etc/bluetooth/main.conf as needed:

--- old.conf
+++ /etc/bluetooth/main.conf
@ -1,8 +1,8 @@
 # Default adapter name
-# Defaults to 'BlueZ X.YZ'
-#Name = BlueZ
+# Defaults to 'BlueZ X.YZ' # Choose your favorite name
+Name = OnHub
 # Default device class. Only the major and minor device class bits are
 # considered. Defaults to '0x000000'.
@@ -11,7 +11,7 @@
 # How long to stay in discoverable mode before going back to non-discoverable
 # The value is in seconds. Default is 180, i.e. 3 minutes.
 # 0 = disable timer, i.e. stay discoverable forever
-#DiscoverableTimeout = 0
+DiscoverableTimeout = 0
 # Always allow pairing even if there are no agent registered
 # Possible values: true, false
@@ -282,7 +282,7 @@
 # AutoEnable defines option to enable all controllers when they are found.
 # This includes adapters present on start as well as adapters that are plugged
 # in later on. Defaults to 'true'.
 # Audio devices that were disconnected due to suspend will be reconnected on
 # resume. ResumeDelay determines the delay between when the controller

Restart the services:

service dbus restart
service pulseaudio restart
service bluetoothd restart

Then, pair the client with OnHub using bluetoothctl, hciconfig, or btmgmt (see https://wiki.archlinux.org/title/Bluetooth or https://openwrt.org/docs/guide-user/hardware/bluetooth/bluetooth.audio).

Known issues:

After restarting OnHub (or the bluetoothd service), clients may fail to connect. To resolve this, manually execute

hciconfig -a hci0 up


bluetoothctl power on

after starting the bluetoothd service, or automate this after service startup (e.g., write it in /etc/init.d/bluetoothd or use rc.local).

PulseAudio may require additional modules to support audio output from USB ports (untested). Furthermore, some practical modules are not loaded by default. Please refer to the following link to load them manually. Please refer to https://openwrt.org/docs/guide-user/hardware/bluetooth/bluetooth.audio#sound_debugging and https://openwrt.org/docs/guide-user/hardware/audio/usb.audio.

It's not possible to connect multiple clients simultaneously (you need to disconnect current-device before connecting new-device to OnHub).

Simultaneous startup of Shairplay and PulseAudio is not supported (Because Shairplay communicates directly with Alsa). Consider using Shairport-sync instead.

I hope this information proves helpful to everyone.


I'm also getting about 1/2 to 1/3 my normal internet speeds through the OnHub. Curious if you've found anything.

Someone tried using this as home assisstant? Is this possible? I have asus and now is hard to find for it use case and not to sell it.

is there someone willing to try and build NSS onhub with kernel 6.6 snapshot?

  • using firmware 11.4
  • still using swconfig not DSA
  • skb_recycler (testing)

if so, my repo is here
any feedback would be much appreciated


Check out this thread where I learned to do it myself with cheap crap old computers.

Compiling your own NSS image...

The OnHub has an 802.15.4 chip. Does OpenWrt have any kind of driver supporting this protocol?

Do You mean zigbee module?