OpenWrt on BT Openreach VG3503J Modem

May 21, 2024    Blog Post

OpenWrt is an open source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic.

But you already know this from my previous post OpenWrt on Plusnet Hub One ;-).

So let’s get straight to the point.

BT VG3503J Modem

This is BT Openreach VG3503J VDSL modem. I have mine sitting in my home COM cabinet for years and was given it by BT when I had my first FTC broadband connection. It was used until I changed my broadband provider, who provided me with a router with a built-in VDSL modem.

As far as I know, there are two versions of this device and the one I have is ECI-CPE-MODEMS TYPE 1B model B-FOCus V-2FUb/r Rev.B v1. The second version of this device was made by Huawei and model is called EchoLife HG612. More information about the differences between the two devices can be found on the KITZ website.

Flashing OpenWrt firmware

To open, connect and flash the firmware, I followed the official guide from the OpenWrt website as it contains all the required information. Personally, I did not drill holes in the modem housing. Instead, I used a bent, large paper clip with a phone opener to open the modem case:

Paperclip

Just remember that when connecting to a serial port on the motherboard, the connection should be “crossover”, which means that the Transmit (TXD) and Receive (RXD) pins on one of the serial connectors are swapped:

 PCB Pins   Serial Cable 
GND GND
RXD TXD
TXD RXD


To make the connection more flexible, I used the breadboard as an “intermediary” between the PCB pins and the USB to serial cable connected to my Linux workstation.

BT VG3503J Modem conencted via Serial port

After making all the required connections (serial and network), I started the TFTP service on my Linux workstation and ran all the necessary commands listed on the OpenWrt website to flash the new firmware to the modem:

VR9 # setenv serverip 192.168.2.1

VR9 # setenv preboot ping 1.1.1.1\;bootm 0xb001f000

VR9 # saveenv
Saving Environment to Flash...
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
Protected 1 sectors

VR9 # tftp 0x81000000  openwrt-22.03.6-lantiq-xrx200-arcadyan_vg3503j-squashfs-sysupgrade.bin
Using vr9 Switch device
TFTP from server 192.168.2.1; our IP address is 192.168.2.100
Filename 'openwrt-22.03.6-lantiq-xrx200-arcadyan_vg3503j-squashfs-sysupgrade.bin'.
Load address: 0x81000000
Loading: #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #########################################################
done
Bytes transferred = 6554209 (640261 hex)

VR9 # erase 0xb0020000 +$(filesize)

..................................................................................................... done
Erased 101 sectors

VR9 # cp.b 0x81000000 0xb0020000 $(filesize)
Copy to Flash... done

VR9 # reset

When device rebooted, I watched the boot process on a serial connection to see if the new kernel would start loading and booting:

ROM VER: 1.0.5
CFG 01
DDR autotuning Rev 0.3c
DDR size from 0xa0000000 - 0xa3ffffff
DDR check ok... start booting...



VG3503J 1-A-DC BootLoader v2.00.01 (May 25 2012 - 13:44:42)

CLOCK CPU 333M RAM 166M
DRAM:  32 MiB
Flash: 8 MiB
In:    serial
Out:   serial
Err:   serial
Net:   Internal phy(GE) firmware version: 0x8400
vr9 Switch
Using vr9 Switch device
ping failed; host 1.1.1.1 is not alive

## Booting image at b0020000 ...
## Booting kernel from Legacy Image at b0020000 ...
   Image Name:   MIPS OpenWrt Linux-5.10.201
   Created:      2023-11-25  18:18:57 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2715983 Bytes = 2.6 MiB
   Load Address: 80002000
   Entry Point:  80002000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

[    0.000000] Linux version 5.10.201 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r20265-f85a79bcb4) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Sat Nov 25 18:18:57 2023
< cut >

Once the boot process was complete, I established a first SSH connection to the modem to confirm that OpenWrt system was fully functional:

$ ssh root@192.168.1.1
BusyBox v1.35.0 (2023-11-25 18:18:57 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03.6, r20265-f85a79bcb4
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/#

The username is ‘root’ and the password is not been configured. Don’t forget to setup the root password !!!

Summary

I don’t use it yet because I’m using Plusnet Hub One with OpenWrt, but I will set it up and keep it as a backup in case there are any issues with the router I’m currently using.