All of this began when I started researching attaching external directional MIMO antennas to my IFWA-40 (which my cellular provider says “you are not allowed to do” even though it’s got external SMA ports, they are f’ing nuts). So I recall a few months ago logging in to my IFWA-40 and having an “advanced” option in the webGUI administration panel, which allowed you to see detailed information on your cellular connection (Such as bands, signal strength, SNR, etc...) which I want so I can accurately point the MIMO antennas...
My cellular provider must have pushed an OTA firmware update (without my permission) because when I logged in this week, the “Advanced” option was gone. (Though I’m starting to think I’m crazy, because I can’t find any images of the advanced pane as I remember it)
Anyways. My conversation with “advanced tech support” where a tier 2 manager literally threatened me, got me fired up.
I was determined to “own” this device. I proceeded to disassemble the device to get a look at the main PCB. I had vaguely recalled it running Linux, so I thought it might be worthwhile to take a look. Turns out this is a NetComm device, rebranded to ZTE, rebranded to my cellular carrier.
I started by using the built in Backup/ Restore feature to download a copy of the config files, which I soon realized was just an archive of the /etc/config folder, confirming that it was already running OpenWRT.
I tried SSHing to the devices IP and was surprised to get a login prompt. I tried all manner of passwords nothing worked.
After opening the device there were a few notable things, multiple unpopulated headers, and an unpopulated USB port. I made an educated guess, as to which of the unpopulated headers was the serial port by following the PCB traces back to where I knew the SOC was. I hooked up a logic analyzer to be sure, and was elated to see text being spit out at 9600 baud!
I got root through the serial port. Got the SSH keys and was in.
Unfortunately this is where my frustrations began... I wanted to replace the heavily modified Luci gui with the standard one. I SCP'd in and tried replacing all the Luci files with ones from a OpenWRT VM (stupid x86 vs ARM...) Well I broke lua. Luckily a factory reset from the gui (once I fixed my mess up) restored things.
I wanted to see if I could boot this thing from a USB stick, which I now know is more complicated then it sounds. I am not versed in embedded systems. I got the multimeter out and tested the unpopulated USB port. To my dismay the port was not only missing the port itself, but all the supporting circuitry as well. (Possibly a common mode choke on the RX/TX lines, a capacitor on the ground, and most annoyingly the 5V regulator) I bypassed all these ESD suppressing components, and got 5V from an external source. I am happy to report the USB port works (even with my horrendous hack). I can see the thumb drive in lsusb, but have not been able to successfully mount it yet.
Here is all the FCC info on the device, which is really helpful because it shows detailed photos of the internals, with the RF shielding cans removed....
This device is running a Qualcomm IPQ4018, winbond 25Q64JVSIQ 64M-bit flash memory, winbond W632GU6MB-12 DRAM, and ESMT M15T2G16128A secondary DRAM.
I feel like this device is pretty similar in construction to others running OpenWRT, I would love to get "vanilla" OpenWRT running on it. I don't have much experience with embedded systems, Uboot, flashing memory and the other things required to get regular OpenWRT on this device. I know there is a firmware builder but have no idea how to configure it for this specific device with it's specific hardware. I really want to be able to install "normal" software such as umbim and other tools so I can get the detailed information I need from the cellular modem in this thing.
I have also entertained the idea of removing the mPCIe modem card which is a netComm brand running a Qualcomm MDM9250 similar to the Sierra Wireless EM7511 and putting it in another "friendlier" router, though I don't know the feasibility of this idea.
Let me know what y'all think...