ALFA Network Tube2H, Tube2HP, Tube2HP-F

Under Construction!
This page is currently under construction. You can edit the article to help completing it.

An outdoor 2.4 GHz router with an N connector on the top, meant to thread directly onto your antenna, and a water-tight gland for 100-base-T Ethernet on the bottom. Tube2HP has 16/64 MB FLASH/RAM and a male N connector, Tube2HP-F is the same except it has a female N connector. Tube2H has a male N connector and 8/32 FLASH/RAM, which is too small to be recommended for modern OpenWrt implementations, so go with the larger one if you're purchasing new. There is a female 1/4-20 UNC nut in the router body, permitting the router to be mounted to a tripod and to support light antennas. The power output is said to be 500 mw. Power is from POE and the device comes with an injector, but not the two required ethernet cables. This device does not come with an antenna, you'll have to provide your own.


Working with OpenWrt is an advertised feature! There is a uboot web interface which loads a sysupgrade (not factory) image from your browser, and runs it correctly. We don't currently have a working factory image for Tube2HP and Tube2HP-F, so installation requires getting into uboot rather than use of the factory firmware's upgrade page.

The u-boot version shipped from the factory includes a tiny recovery web server, which can be used for installation or recovery. It can install sysupgrade, not factory, images. This u-boot version is documented at

  1. To run the uboot console, connect the device to your ethernet port, and configure your ethernet port to IPV4 address . Run netcat this way:
    nc -u -p 6666 6666

    If your version of netcat doesn't like those flags, drop the “-p”.

  2. There is a hole for a reset button next to the ethernet socket. You can access this with a bent paper clip. Something non-conductive would be optimal, as it's easy to pass the reset button and touch components on the device's printed circuit board.
  3. Hold down the reset button while power-clearing the device. Keep holding down reset while you watch the WiFi LEDs flash 10 times, then let go. You should now see the uboot console prompt on the netcat output.
  4. Once running the uboot console, type

    into the netcat input, to go into uboot's own little web server.

  5. Open in your browser, and upload an OpenWrt sysupgrade (not factory) image.

FIXME Find out flash layout for tube2h, then add the flash layout table here (copy, paste, modify the example).

Please check out the article Flash layout. It contains examples and explanations that describe how to document the flash layout.

Flash Layout of Tube2HP

dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00f90000 00010000 "firmware"
mtd3: 00190000 00010000 "kernel"
mtd4: 00e00000 00010000 "rootfs"
mtd5: 00ba0000 00010000 "rootfs_data"
mtd6: 00010000 00010000 "nvram"
mtd7: 00010000 00010000 "art"
5 cmdlinepart partitions found on MTD device spi0.0
Creating 5 MTD partitions on "spi0.0":
0x000000000000-0x000000040000 : "u-boot"
0x000000040000-0x000000050000 : "u-boot-env"
0x000000050000-0x000000fe0000 : "firmware"
2 uimage-fw partitions found on MTD device firmware
0x000000050000-0x0000001e0000 : "kernel"
0x0000001e0000-0x000000fe0000 : "rootfs"
mtd: device 4 (rootfs) set to be root filesystem
1 squashfs-split partitions found on MTD device rootfs
0x000000440000-0x000000fe0000 : "rootfs_data"
0x000000fe0000-0x000000ff0000 : "nvram"
0x000000ff0000-0x000001000000 : "art"

The Tube2HP and Tube2HP-F did not properly load the manufacturer-provided OEM firmware image from the uboot web interface.

FIXME These are generic instructions. Update with your router's specifics.

  • Browse to LuCI Upgrade URL
  • Upload image file for sysupgrade to LuCI
  • Wait for reboot

If you don't have a GUI (LuCI) available, you can alternatively upgrade via the command line. There are two command line methods for upgrading:

  • sysupgrade
  • mtd

Note: It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.


  • Login as root via SSH on, then enter the following commands:
cd /tmp
sysupgrade /tmp/


If sysupgrade does not support this router, use mtd.

  • Login as root via SSH on, then enter the following commands:
cd /tmp
mtd write /tmp/ linux && reboot

See the instructions for getting into uboot in the installation method.

See the instructions for getting into uboot in the installation method.

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

The default network configuration in OpenWrt 19.07 is:

Interface Name Description Default configuration
br-lan LAN & WiFi
eth0 LAN Port None
wl0 Wifi Disabled

FIXME Please fill in real values for this device, then remove the EXAMPLEs

Numbers 0-3 are Ports 1-4 as labeled on the unit, number 4 is the Internet (WAN) on the unit, 5 is the internal connection to the router itself. Don't be fooled: Port 1 on the unit is number 3 when configuring VLANs. vlan0 = eth0.0, vlan1 = eth0.1 and so on.

Port Switch port
Internet (WAN) EXAMPLE 4

hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.

FIXME Please fill in real values for this device, then remove the EXAMPLEs

The ALFA Network Tube2HP has the following buttons:

EXAMPLE Reset reset
EXAMPLE Secure Easy Setup ses
EXAMPLE No buttons at all. -




Insert photo of front of the casing

Insert photo of back of the casing

Backside label:
Insert photo of backside label

Note: This will void your warranty!

  1. Remove the bottom-cap from the device
  2. Gently unscrew the lock-ring on top op the device, next to the antenna connector.
  3. Slowly push down the antenna-connector into the case
  4. Pull the pcb out of the tube

Main PCB:

Tube 2H

Note UART interface similar to 2HP below, but without pin-headers

Tube 2HP

PCB of a Tube2HP v4.12GB device, bought in May 2020. PCB-Design is labeled as Rev:0C, Tube2H_PoE, 2017-11-08
Side A
 Side A
Side A, detail of possible UART and light-ducts for the LEDs
 Side A, detail of UART and light-ducts for the LEDs
Side B
 Side B
Side B, detail of possible powersupply
 Side B, detail of possible powersupply

port.serial general information about the serial port, serial port cable, etc.

Tube 2HP UART Pin Header

ALFA refers to Pin 4 as GND- and Pin 1 as VCC+. In the image below, Pin 4 (labeled J1) is on the left and Pin 1 (above triangle) on the right.

UART functions with 3.3V to VCC. Higher voltage tolerance to the pin header not yet confirmed. Unlike some other ALFA products, header pins on the Tube 2HP are spaced closer together than standard breadboard jumper wires.

Serial connection parameters
for ALFA Network Tube2HP
115200, 8N1

port.jtag general information about the JTAG port, JTAG cable, etc.

How to connect to the JTAG Port of this specific device:
Photo of PCB with markings for JTAG port.

Alpha TUBE 2H.

To flash you must use sysupgrade.

To connect you must use 3.3Vcc and this schema:

TX (ALPHA) ---→ RX (USB)


U-Boot env

root@OpenWrt:~# fw_printenv
alfa_boot=bootm $kernel_addr || bootm $firmware_addr
uboot_upg=if ping $serverip; then tftp $loadaddr $uboot_name && if itest.l $filesize == $uboot_size; then erase $uboot_addr +$filesize && cp.b $loadaddr $uboot_addr $filesize && echo OK!; else echo ERROR! Wrong file size!; fi; else ERROR! Server not reachable!; fi
firmware_upg=if ping $serverip; then tftp $loadaddr $firmware_name && erase $firmware_addr +$filesize && cp.b $loadaddr $firmware_addr $filesize && echo OK!; else ERROR! Server not reachable!; fi
bootargs=console=ttyS0,115200 root=31:02 init=/sbin/init mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),14336k(rootfs),1600k(uImage),64k(NVRAM),64k(ART)
bootcmd=run alfa_boot

None so far.


U-Boot 1.1.5-g0ad4dedd-dirty (May 18 2012 - 14:18:30) AP121-8MB (ar9331) U-boot DRAM: 32 MB Top of RAM usable for U-Boot at: 82000000 Reserving 248k for U-Boot at: 81fc0000 Reserving 192k for malloc() at: 81f90000 Reserving 44 Bytes for Board Info at: 81f8ffd4 Reserving 36 Bytes for Global Data at: 81f8ffb0 Reserving 128k for boot params() at: 81f6ffb0 Stack Pointer at: 81f6ff98 Now running in RAM - U-Boot at: 81fc0000 id read 0x100000ff flash size 8388608, sector count = 128 Flash: 8 MB In: serial Out: serial Err: serial Net: ag7240_enet_initialize... Fetching MAC Address from 0x81feb688 Fetching MAC Address from 0x81feb688 : cfg1 0x5 cfg2 0x7114 eth0: 00:c0:ca:8d:5c:45 eth0 up : cfg1 0xf cfg2 0x7214 eth1: 00:c0:ca:8d:5c:44 athrs26_reg_init_lan ATHRS26: resetting s26 ATHRS26: s26 reset done eth1 up eth0, eth1 Please choose the operation: 1: Entr boot command line interface. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 3 2 1 0 System Boot system code via Flash. ## Booting image at 9f650000 ... Image Name: MIPS OpenWrt Linux-3.18.44 Created: 2016-12-19 6:45:46 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 1282903 Bytes = 1.2 MB Load Address: 80060000 Entry Point: 80060000 Verifying Checksum at 0x9f650040 ...OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 80060000) ... ## Giving linux memsize in bytes, 33554432 Starting kernel ... [ 0.000000] Linux version 3.18.44 (pbriesch@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49389) ) #1 Mon Dec 19 07:09:19 CET 2016 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc) [ 0.000000] SoC: Atheros AR9330 rev 1 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 02000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x00000000-0x01ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x01ffffff] [ 0.000000] Initmem setup node 0 [mem 0x00000000-0x01ffffff] [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: board=TUBE2H console=ttyATH0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1600k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware) rootfstype=squashfs,jffs2 noinitrd [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] Memory: 27996K/32768K available (2855K kernel code, 151K rwdata, 576K rodata, 248K init, 200K bss, 4772K reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:51 [ 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz [ 0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) [ 0.080000] pid_max: default: 32768 minimum: 301 [ 0.080000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.090000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.100000] NET: Registered protocol family 16 [ 0.100000] MIPS: machine is ALFA NETWORK Tube2H [ 0.340000] Switched to clocksource MIPS [ 0.350000] NET: Registered protocol family 2 [ 0.350000] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.350000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.350000] TCP: Hash tables configured (established 1024 bind 1024) [ 0.360000] TCP: reno registered [ 0.360000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.370000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.380000] NET: Registered protocol family 1 [ 0.390000] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.400000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.410000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.430000] msgmni has been set to 54 [ 0.430000] io scheduler noop registered [ 0.430000] io scheduler deadline registered (default) [ 0.440000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 0.450000] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a AR933X UART [ 0.460000] console [ttyATH0] enabled [ 0.460000] console [ttyATH0] enabled [ 0.460000] bootconsole [early0] disabled [ 0.460000] bootconsole [early0] disabled [ 0.470000] m25p80 spi0.0: found mx25l6405d, expected m25p80 [ 0.480000] m25p80 spi0.0: mx25l6405d (8192 Kbytes) [ 0.480000] 7 cmdlinepart partitions found on MTD device spi0.0 [ 0.490000] Creating 7 MTD partitions on "spi0.0": [ 0.490000] 0x000000000000-0x000000040000 : "u-boot" [ 0.500000] 0x000000040000-0x000000050000 : "u-boot-env" [ 0.500000] 0x000000050000-0x000000650000 : "rootfs" [ 0.510000] mtd: device 2 (rootfs) set to be root filesystem [ 0.510000] 1 squashfs-split partitions found on MTD device rootfs [ 0.520000] 0x000000280000-0x000000650000 : "rootfs_data" [ 0.530000] 0x000000650000-0x0000007e0000 : "kernel" [ 0.530000] 0x0000007e0000-0x0000007f0000 : "nvram" [ 0.540000] 0x0000007f0000-0x000000800000 : "art" [ 0.540000] 0x000000050000-0x0000007e0000 : "firmware" [ 0.570000] libphy: ag71xx_mdio: probed [ 1.160000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY] [ 1.170000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII [ 1.170000] TCP: cubic registered [ 1.180000] NET: Registered protocol family 10 [ 1.180000] NET: Registered protocol family 17 [ 1.180000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 1.200000] Bridge firewalling registered [ 1.200000] 8021q: 802.1Q VLAN Support v1.8 [ 1.210000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2. [ 1.220000] Freeing unused kernel memory: 248K (803e2000 - 80420000) [ 2.640000] init: Console is alive [ 2.640000] init: - watchdog - [ 4.740000] init: - preinit - [ 5.420000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 5.450000] random: procd urandom read with 8 bits of entropy available Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 8.290000] eth0: link up (100Mbps/Full duplex) [ 8.290000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 8.850000] mount_root: jffs2 not ready yet, using temporary tmpfs overlay [ 9.240000] eth0: link down [ 9.260000] procd: - early - [ 9.260000] procd: - watchdog - [ 9.960000] procd: - ubus - [ 10.970000] procd: - init - Please press Enter to activate this console. [ 12.300000] tun: Universal TUN/TAP device driver, 1.6 [ 12.300000] tun: (C) 1999-2004 Max Krasnyansky <> [ 12.330000] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 12.360000] Loading modules backported from Linux version wt-2016-06-20-0-gbc17424 [ 12.360000] Backport generated by backports.git backports-20160216-7-g5735958 [ 12.440000] batman_adv: B.A.T.M.A.N. advanced 2016.2 (compatibility version 15) loaded [ 12.470000] u32 classifier [ 12.470000] input device check on [ 12.480000] Actions configured [ 12.480000] Mirror/redirect action on [ 12.650000] Ebtables v2.0 registered [ 12.650000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 12.750000] nf_conntrack version 0.5.0 (441 buckets, 1764 max) [ 12.860000] xt_time: kernel timezone is -0000 [ 12.950000] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2 BusyBox v1.23.2 (2016-12-19 07:13:45 CET) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (Chaos Calmer, r49389) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup -----------------------------------------------------

Space for additional notes, links to forum threads or other resources.

  • “Normal” 8P8C-jacks with bend protection do not fit into the Tube-2HP and you cannot close the bottom-cap once such a jack is connected, because the jack is too long. If you want to close the cap, you need to choose a cable without bend protection and a very short jack, as the cap is way to short. In addition jacks with a plastic enclosure do not fit into the cap as the opening lacks 2mm in diameter.
  • When screwing tight the bottom cap, you squeeze out the rubber-ring, which leads to a lack of water protection.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 11:13
  • by