Building a Mikrotik LTE router


#1

I’ve managed to build a Mikrotik LTE router as the Hauwei B315 just wasn’t reliable and I desired more control over my internet connection.

Hardware:

1x Mikrotik Basebox5 https://routerboard.com/RB912UAG-5HPnD-OUT
2x Antenna Pigtails. (UFL-SMA(f) if you have a mini-pci module or MHF4-SMA(f) if you have a mini-pcie module)

1x LTE mini-PCI module
OR
1x mPCI to mPCI-e Adaptor & 1x LTE Mini-PCI-e LTE Module.

The Basebox disassembled. Roubterboard RB912 with Simcom 7100e LTE module and pigtails.

The different LTE modules with adaptor that can be used. Note: in my testing the fibocom didn’t work as it lacks driver support in RouterOS, the Sierra worked great but lacked LTE FDD 2300mhz (Telkom’s primary band)

The different pigtails, black is the MHF4 and the silver being the UFL.

Current driver support in RouterOS: https://wiki.mikrotik.com/wiki/Supported_Hardware#4G_LTE_cards_and_modems

Plugging in and setting everything up was fairly simple.

Note: with the RB912, the mini-pcie and the USB port are shared, meaning you can only use one at a time. Out of the box the board is configured to use USB.

Changing the mode: Within winbox Open system -> Routerboard -> USB -> select Mini PCIe from the drop down and click ok.

Once that’s done, lets check if RouterOS now detects the card: ( System -> Resources -> USB) Note: As stated in the Mikrotik Wiki full LTE support will be available for this Simcom 7100 with RoS v7. For now it’s detected as a usb Interface. Otherwise it will be listed under the PCI section. - Okay now if the dev’s could hurry up and give me full driver support in RoS v7, that would be great!

For now It’s just a case of adding a ppp client and selecting the port as “usb2” and you’re away.

Once full driver support is released you’ll get a new interface ‘LTE’ which will contain everything you need to fine tune it. Then I’d be able to set frequencies and setup the LED’s on the board to show signal strength. I managed to do this with the Sierra wireless card, which I created a script which would hop over to other frequencies when one when down.

Telkom’s LTE is on 2300mhz and they have some spectrum in the 1800mhz band. The 2300mhz will give you the fastest download speeds, while the 1800mhz band will give you the fastest upload and lowest latency but only around half the download speed. The reason for them having both bands is that some older devices only support the 1800mhz band.

For more info on the LTE interface please see: https://wiki.mikrotik.com/wiki/Manual:Interface/LTE

(Stay tuned more updates coming - when I get full driver support)


#2

I’m going to flash openWRT onto the device replacing RouterOS to check out the advanced LTE. OpenWRT has full support for the simcom 7100 LTE module. I’ll consider going back to RouterOS when version 7 finally arrives.

https://wiki.openwrt.org/toh/mikrotik/rb91xg_5hpnd


#3

Just a quick update, I’m running on openWRT on this RB-912 and it’s rock solid stable. I couldn’t be bothered waiting for full RouterOS support for the LTE module. So happy to kick the hauwei B315 to the curb, POS.


#4

Some nice stats for you: (this was done in JHB CBD with stock antenna’s)

Hardware counts!

RB912 with Simcom 7100e:

Last Result:
Download Speed: 33835 kbps (4229.4 KB/sec transfer rate)
Upload Speed: 6661 kbps (832.6 KB/sec transfer rate)
Latency: 19 ms
Jitter: 6 ms
4/21/2017, 6:42:00 AM

Huawei B315:

Last Result:
Download Speed: 19814 kbps (2476.8 KB/sec transfer rate)
Upload Speed: 7269 kbps (908.6 KB/sec transfer rate)
Latency: 31 ms
Jitter: Cannot be tested
4/21/2017, 6:46:55 AM


#5

Here’s a little tutorial on how i flashed my routerboard to openwrt.

I used another mikrotik’s functions as it was easier than building a linux vm with all the options I needed.

NB: backup your routerboard license in case you wish to revert back to routerOS!!

Here’s how I did it:

Flashing openWRT on the RB912 using the ftp and bootp from the RB433:

Download the required files and place them on the RB433’s via winbox (easiest method) (or copy them to ftp directory on your windows/linux server)

Setup tftp (so we can netboot our RB912):

RB433: /ip tftp set ip-addresses=192.168.88.0/24 real-filename=openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf allow=yes readonly=yes

Login to the RB912 via winbox, go to system -> routerboard -> settings. Change boot device to try-ethernet-once-then-nand. Click apply then reboot.

Once rebooted the RB912 should now be running on openwrt (in ram), default ip is : 192.168.1.1

Add an ip address the the RB433 so we can see the openwrt RB912 /ip address add address=192.168.1.10/24 interface=ether2

Enable ftp server on RB433: /ip service ftp enable

Using the RB433’s tools, lets telnet to the openwrt device /system telnet 192.168.1.1
Login using admin, no password

Flash the device:

Copying across the files

Note: admin and password is the login credentials you use on the rb433

cd /tmp
wget ftp://admin:password@192.168.1.10/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf
wget ftp://admin:password@192.168.1.10/openwrt-ar71xx-mikrotik-DefaultNoWifi-rootfs.tar.gz

Erase the RouterOS kernel and the root filesystem. (Ignore any bad blocks)

cat /proc/mtd
mtd erase /dev/mtd5
mtd erase /dev/mtd6

Setup the new kernel and root filesystem

mkdir /mnt/kernel
mkdir /mnt/rootfs
mount /dev/mtdblock5 /mnt/kernel
mount /dev/mtdblock6 /mnt/rootfs
mv /tmp/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf /mnt/kernel/kernel
chmod +x /mnt/kernel/kernel
umount /mnt/kernel
tar -C /mnt/rootfs -xvzf /tmp/openwrt-ar71xx-mikrotik-DefaultNoWifi-rootfs.tar.gz
umount /mnt/rootfs

Enable ssh
passwd

Reboot the router and we’re done!
reboot


#8

Lo and behold, mikrotik now have drivers for the simcom LTE card. On RouterOS 6.42 they added “initial support” so don’t upgrade. It’s doesnt work yet. (It only took a year for “initial support” :face_with_raised_eyebrow:)


#9

So, how is the router running? Based on your article, I have bought the same router/AP and an OpenWRT supported LTE+ card that will hopefully give me an upgrade from my NetGear LB1120. I had started with a modem from 4GAntenna shop; it worked and I liked it however, having the ATT account in my name gave me discounts not available using 4GAntenna shop service so I switched. The one feature the LB1120 doesn’t have is a way to lock on to one band. On occasion, the LB1120 will switch to a band with less throughput and I have to reboot it until it switches back. I’m hoping with LTE+ and CA, I won’t have to worry about this and I’ll get more throughout via multiple bands.


#10

It’s running flawlessly, I’m back onto RouterOS for now though. The constant updates on openWRT drove me crazy.


#11

I’m soon to install OpenWRT as I chose a 4G LTE card that RouterOS does not support but OpenWRT does. How do I backup the license for the upgrade?


#12

I never backed up the license. When I restored the board back to ROS I used the netinstall utility from mikrotik, which restored the license. I suspect the license is tied to the hardware.

https://wiki.mikrotik.com/wiki/Manual:Netinstall


#13

Thank you for the responses. I have the same Mikrotik but I bought a Sierra MC7455 (I found it in a drivers file there it is supported in OpenWRT but I’m having difficulty finding that link now). I don’t quite understand the change from OpenWRT to LEDE but I have the LEDE 17.01.4 installed and running:

lede-17.01.4-ar71xx-mikrotik-nand-large-squashfs-sysupgrade.bin
lede-17.01.4-ar71xx-mikrotik-vmlinux-initramfs.elf
lede-17.01.4-ar71xx-mikrotik-vmlinux-lzma.elf

I am unable to find the LTE mode in the GUI and I can’t find it via CLI. I was wondering if you could tell me how you got yours working when you were running OpenWRT. Thank you!! If you want to chat directly, I have Hangouts, Wire, direct email, etc. Again, Thank you!!

oot@LEDE:/dev# dmesg | grep usb
[ 4.019693] usbcore: registered new interface driver usbfs
[ 4.025357] usbcore: registered new interface driver hub
[ 4.030931] usbcore: registered new device driver usb
[ 10.727496] usbcore: registered new interface driver cdc_wdm
[ 10.873640] usbcore: registered new interface driver usbserial
[ 10.879752] usbcore: registered new interface driver usbserial_generic
[ 10.886481] usbserial: USB Serial support registered for generic
[ 10.962841] usbcore: registered new interface driver cdc_ncm
[ 11.115515] usbcore: registered new interface driver qmi_wwan
[ 11.123880] usbcore: registered new interface driver sierra
[ 11.129736] usbserial: USB Serial support registered for Sierra USB modem
[ 11.139485] usbcore: registered new interface driver sierra_net
[ 11.174805] usbcore: registered new interface driver cdc_mbim
[ 11.187634] usbcore: registered new interface driver option
[ 11.193487] usbserial: USB Serial support registered for GSM modem (1-port)
[ 11.206390] usbcore: registered new interface driver qcserial
[ 11.212422] usbserial: USB Serial support registered for Qualcomm USB modem

====================

root@LEDE:/dev# ls
bus mtdblock0 ttyS13
console mtdblock1 ttyS14
cpu_dma_latency mtdblock2 ttyS15
full mtdblock3 ttyS2
hwrng mtdblock4 ttyS3
kmsg mtdblock5 ttyS4
log mtdblock6 ttyS5
memory_bandwidth network_latency ttyS6
mtd0 network_throughput ttyS7
mtd0ro null ttyS8
mtd1 port ttyS9
mtd1ro ppp ubi0
mtd2 ptmx ubi0_0
mtd2ro pts ubi0_1
mtd3 random ubi0_2
mtd3ro shm ubi_ctrl
mtd4 tty ubiblock0_1
mtd4ro ttyS0 urandom
mtd5 ttyS1 watchdog
mtd5ro ttyS10 zero
mtd6 ttyS11
mtd6ro ttyS12

root@LEDE:~# cat /sys/kernel/debug/usb/devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 4.04
S: Manufacturer=Linux 4.4.92 ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=ehci-platform
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms


#14

Install the package luci-proto-qmi and you will find it under network - interfaces or under cli use uqmi.

This might help:

https://wiki.openwrt.org/doc/recipes/ltedongle


#15

I had been reading that page. I don’t see anything under Network and Sierra isn’t listed in devices::

root@LEDE:~# cat /sys/kernel/debug/usb/devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 4.04
S: Manufacturer=Linux 4.4.92 ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=ehci-platform
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

I see it in dmesg but does that mean a driver loaded because it sees related hardware or did it just load regardless. I can see if I need to reseat the LTE card. I’m just don’t know what else to do.

There is another firmware I found called ROOter that supports both Mikrotik and Sierra. I may try it. If that fails, I am also wondering if a Rasphberry Pi would do the trick if I can’t get this working.

-------------------UPDATE (I can’t reply more than 3 times being a new user)

ROOter didn’t see the card. I’ve going to try the dev LEDE next.

I’ve searched high and low for that page on OpenWRT that I KNOW said it supported the Sierra Wireless MC7455. I checked and re-checked to make sure I was buying the correct card and searched all over for the best price and shipping. Do you know where I can find that drivers page I found earlier for OpenWRT?

What card did you use? What wireless carrier? I may have to buy a MC7354 to get this working until I found a solution for the MC7455.


#16

Driver issue. The device is not active. When it is active with the correct drivers it will be listed under /dev/

If dmesg sees it, means the hardware is present, but if there’s no driver it wont load under devices.

run

usbmode -l

or

usbmode -s

to see if it activates your LTE modem.

Then

uqmi -d /dev/cdc-wdm0 --start-network your_apn_name --autoconnect 

Check connection:

uqmi -d /dev/cdc-wdm0 --get-current-settings

In LuCI UI: Create new interface and point it to wwan0, set DHCP.


#17

Of things that may be of interest to both @Chris_Hallman and @InsanityFlea, I’ve been playing around with the EM7455 for the past week and today in particular.

Some of my observations:
I have not had much luck getting it working under:

  • pfSense
  • stock OpenWRT (RT-AC68U)

It works well under:

  • Windows (MBIM or QMI)
  • Fedora 28 (MBIM or QMI)
  • ROOter GoldenOrb 2017-12-15 - RT-AC68U - (MBIM only, QMI was detected, but failed to connect)

My QMI mode was done with USBCOMP=6 and MBIM was done with USBCOMP=8 following Zukota’s instructions.

I’m doing all of this using a USB to M.2 adapter (since I have the em series). In my reading on this topic, there has been mention of the USB3 pins causing problems, specifically in relation to the MC7455. That may be something to try if switching to USBCOMP=8 doesnt make it work under ROOter.

I’ll be following this as I am interested in seeing this working as I would like to build a low-cost all-in-one with ROOter/RBM11G/em7455.

I can report that speeds are excellent with the em7455 and the RT-AC68U. Even at over 130Mbps, there is very little CPU load.

Speed Test


#18

Well, that was a fun rabbit hole I dove down.

Here is just about everything you (n)ever wanted to know about the EM/MC 74XX series and the EM7565, including how to flash and set them up:

Included is my script which should auto-configure the modem with a Ubuntu Live USB.

Also, @InsanityFlea, where did you get the Mini PCIe to M.2 B Key adapter from? Thus far I have only found mSATA versions (which dont work with my mini PCIe USB adapter) and ones that have their own SIM card Slot (which I’m not sure if they will block the SIM tray on the motherboard).


#19

That is an awesome resource! I got the adapters off eBay, all from China. https://m.ebay.com/itm/M-2-NGFF-B-Key-to-Mini-PCI-E-Converter-Interface-Adapter-Card-with-SIM-Card-Slot-/362192180283?nav=SEARCH