I am using the exact setup you are using. Don’t tape up any pins. The mc7455 has to be in mbim mode. Also only use generic firmware, not sprint firmware. Sprint doesn’t not provision this device so it must be in generic firmware.
Setting up Router with mc7455 instructions
Proven routers are linksys wrt1900acs/ netgear wndr3700 v4/ TP-LINK 4300 these i have personally done. The zbt can be done also but it’s a different setup. There are more routers that might work
You will need a usb wwan pci-e adapter with a sim slot. Search amazon and several will pop up. There are some with cases and some are just the board. If you get the one in the case make sure to note the antenna conections. Some are SMA and some are RP-SMA connections. If you buy the board only you will need to get the antenna whips seperate.
Leave the mc7455 in generic firmware, do not use the sprint firmware. It will not work. Sprint does not provision this device for us so it must remain in generic mode.
Download the mc7455 windows drivers from sierra wireless website.
source.sierrawireless.com/device … es/mc7455/
-
Download huawei terminal 3ginfo.ru/downloads95.html
Connect mc7455 to computer. Conect to the modem port and type. ati then hit enter. If it gives out modem info your good, if not repeat on a different port.
-
Run on mc7455. (make sure your apn is r.ispsn, if not change it below)
AT!entercnd=“A710”
AT!USBCOMP=1,1,1009
AT+cgdcont=1,“IP”,“r.ispsn”
That will put it in mbim mode and add the apn to the mc7455
-
See if your router is in any of the v8 or v9 folders. drive.google.com/drive/folders/ … VNveWx1bDQ If so flash the firmware and go to step 6. If not download the latest lede, preferably or openwrt if you have too (it must be at least a 4.4 kernal) for your router and flash it and proceed to step 4. (You will need an active internet conection to the router in order to install the packages manually)
-
Install these packages.
“opkg update” first
opkg install umbim kmod-usb-net-cdc-mbim kmod-usb-net-sierrawireless kmod-usb-serial-wwan kmod-usb-serial-sierrawireless kmod-usb-serial-qualcomm luci comgt screen luci-app-commands watchcat
- Download winscp. winscp.net/eng/docs/installation
Connect to your router using SCP and replace the mbim.sh file with the one in the link.
dropbox.com/s/p244h2iqg2y47dg/mbim.sh?dl=0
or just copy and paste from here
#!/bin/sh
mask="0"
[ -n "$INCLUDE_ONLY" ] || {
. /lib/functions.sh
. ../netifd-proto.sh
init_proto "$@"
}
#DBG=-v
proto_mbim_init_config() {
available=1
no_device=1
proto_config_add_string "device:device"
proto_config_add_string apn
proto_config_add_string pincode
proto_config_add_string delay
proto_config_add_string auth
proto_config_add_string username
proto_config_add_string password
}
# https://stackoverflow.com/questions/20762575
cdr2mask ()
{
# Number of args to shift, 255..255, first non-255 byte, zeroes
set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
[ $1 -gt 1 ] && shift $1 || shift
echo ${1-0}.${2-0}.${3-0}.${4-0}
mask=${1-0}.${2-0}.${3-0}.${4-0}
}
_proto_mbim_setup() {
local interface="$1"
local tid=2
local ret
local device apn pincode delay
json_get_vars device apn pincode delay auth username password
[ -n "$ctl_device" ] && device=$ctl_device
[ -n "$device" ] || {
echo "mbim[$$]" "No control device specified"
proto_notify_error "$interface" NO_DEVICE
proto_set_available "$interface" 0
return 1
}
[ -c "$device" ] || {
echo "mbim[$$]" "The specified control device does not exist"
proto_notify_error "$interface" NO_DEVICE
proto_set_available "$interface" 0
return 1
}
devname="$(basename "$device")"
devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
ifname="$( ls "$devpath"/net )"
[ -n "$ifname" ] || {
echo "mbim[$$]" "Failed to find matching interface"
proto_notify_error "$interface" NO_IFNAME
proto_set_available "$interface" 0
return 1
}
[ -n "$apn" ] || {
echo "mbim[$$]" "No APN specified"
proto_notify_error "$interface" NO_APN
return 1
}
[ -n "$delay" ] && sleep "$delay"
echo "mbim[$$]" "Reading capabilities"
umbim $DBG -n -d $device caps || {
echo "mbim[$$]" "Failed to read modem caps"
proto_notify_error "$interface" PIN_FAILED
return 1
}
tid=$((tid + 1))
echo "mbim[$$]" "Checking subscriber"
umbim $DBG -n -t $tid -d $device subscriber || {
echo "mbim[$$]" "Subscriber init failed"
proto_notify_error "$interface" NO_SUBSCRIBER
return 1
}
tid=$((tid + 1))
echo "mbim[$$]" "Register with network"
umbim $DBG -n -t $tid -d $device registration || {
echo "mbim[$$]" "Subscriber registration failed"
proto_notify_error "$interface" NO_REGISTRATION
return 1
}
tid=$((tid + 1))
echo "mbim[$$]" "Attach to network"
umbim $DBG -n -t $tid -d $device attach || {
echo "mbim[$$]" "Failed to attach to network"
proto_notify_error "$interface" ATTACH_FAILED
return 1
}
tid=$((tid + 1))
echo "mbim[$$]" "Connect to network"
while ! umbim $DBG -n -t $tid -d $device connect "$apn" "$auth" "$username" "$password"; do
tid=$((tid + 1))
sleep 1;
done
tid=$((tid + 1))
echo "mbim[$$]" "Get IP config"
CONFIG=$(umbim $DBG -n -t $tid -d $device config) || {
echo "mbim[$$]" "config failed"
return 1
}
tid=$((tid + 1))
echo "$CONFIG" > /tmp/ip
IP=$(cat /tmp/ip |grep ipv4address |grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
NM=$(cat /tmp/ip |grep ipv4address |grep -o '.\{2\}$')
GW=$(cat /tmp/ip |grep ipv4gateway |grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
DNS=$(cat /tmp/ip |grep ipv4dnsserver |grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" |head -1)
cdr2mask $NM
echo "IP: $IP $mask"
echo "GW: $GW"
echo "DNS: $DNS"
uci_set_state network $interface tid "$tid"
echo "mbim[$$]" "Connected, setting IP"
proto_init_update "$ifname" 1
proto_send_update "$interface"
json_init
json_add_string name "${interface}_4"
json_add_string ifname "@$interface"
json_add_string proto "static"
ifconfig wwan0 $IP netmask $mask
route add default gw $GW dev wwan0
ifup wwan0
echo "nameserver $DNS" >> /tmp/resolv.conf.auto
echo "nameserver $DNS" >> /etc/resolv.conf
echo "$mask"
return 0
}
proto_mbim_setup() {
local ret
_proto_mbim_setup $@
ret=$?
[ "$ret" = 0 ] || {
logger "mbim bringup failed, retry in 15s"
sleep 15
}
return $rt
}
proto_mbim_teardown() {
local interface="$1"
local device
json_get_vars device
local tid=$(uci_get_state network $interface tid)
[ -n "$ctl_device" ] && device=$ctl_device
echo "mbim[$$]" "Stopping network"
[ -n "$tid" ] && {
umbim $DBG -t$tid -d "$device" disconnect
uci_revert_state network $interface tid
}
proto_init_update "*" 0
proto_send_update "$interface"
}
[ -n "$INCLUDE_ONLY" ] || add_protocol mbim
Right click and check the file after you swap it to make sure it’s executable. It should show an x next to x for executable. If not, click the boxes to put the x’s in there.
- Once done with the firmware and packages use putty terminal and connect to your router.
chiark.greenend.org.uk/~sgta … nload.html
Root is the user name and password is what you chose as the password.
Run the following commands. (r.ispsn is the apn for unlimitedville sprint devices. You guys using 4gcommunity or something else will need to confirm its the same apn. If not just change it below.
uci del network.wan
uci set network.wan=interface
uci set network.wan.proto=mbim
uci set network.wan.device=/dev/cdc-wdm0
uci set network.wan.apn=r.ispsn
uci set network.wan.username=
uci set network.wan.password=
uci commit network
reboot
That will put you online.
Plug the modem into the 2.0 usb port. Not the 3.0 port.
If you want to lock bands do this.
This is to set up band 41 25 and 26 locking.
You need to ssh into your router, after you enter the user name and password enter this without quotes
“screen /dev/ttyUSB1”. If usb1 doesn’t work try USB2
OK, what you’re going to need to do is define band 41 25 and 26 in the band list.
To do that, run the following commands with the quotes and all:
at!entercnd=“A710”
at!band=0d,“Sprint (All)”,0,10003000000
at!band=0a,“B41”,0,10000000000
at!band=0b,“B25”,0,00001000000
at!band=0c,“B26”,0,00002000000
To lock to band 41, run:
at!band=0a
to lock 25 run:
at!band=0b
and so on
Custom commands can be used to switch bands and show status directly from the router. You will need the luci app commands package installed.
Place the attached files into /etc/gcom in winscp
dropbox.com/sh/y39e18ferj5a … iDlYa?dl=0
in luci under system /custom commands/ configure put in a description such as “Lock Band 41” then use this command
gcom -d /dev/ttyUSB1 -s /etc/gcom/Band41
“Lock Band 25” then
gcom -d /dev/ttyUSB1 -s /etc/gcom/Band25
and so on for each file using the correct capitalization.
again im not sure which usb your modem is on so you may need to change it.
I set up watchcat for disconects. I set it up for 45 sec. It pings google every 15 sec and reboots if there is no internet for 45 sec.
New method for reconnection**
This works faster and wifi stays up all the time. No need for the local network stop.
Turn off watchcat if you have it running.
Download the files and in winscp put them in the proper folders. Make a “home” folder. Your going to swap your mbim.sh again also.
dropbox.com/s/ce1qm8ep2fssx … 9.zip?dl=0
/etc/init.d/sessionhold.sh
/home/reconn.sh
/home/loopback.sh
/lib/netifd/proto/mbim.sh
Right click and put x’s to make it executable 775 or 777
In the loopback file you can add a static ip for a server. Just change it to what you need it to be.
In the reconn.sh file you can do a trace route in a command prompt and find the first pingable hop. Use that ip instead of 8.8.8.8 in the file.
Just type Tracert 8.8.8.8 in the command prompt
When your done, reboot