= Amit MDG100 and MGD200 MDG100 and MGD200 are designed as a socket modem using a mini-PCIe form factor via USB 2.0 interface, perfect for use with Gateworks SBC's. This product has cellular capability with WCDMA and LTE Cat4 and also support GNSS receiver for location information. The device offers an OS-ready NIC interface (Option1 driver in Linux) and a friendly web-based GUI for parameter setting and status checking. Best of all it's PTCRB certified as an end device so no additional testing is required by ATT/Verizon! Please consult sales for specific certifications and part SKUs. The MDG100 and MDG200 are the same systems with the following differences: * The MDG100 has only Verizon certification. It's available in mPCIe and PCIe form factor. * ***Recommended*** The MDG200 has AT&T, Verizon, PTCRB certification. It's available in mPCIe, M.2, and PCIe form factor. * Gateworks sells the MDG200 as a GW17050 ([https://shop.gateworks.com/index.php?route=product/product&product_id=241 Purchase Here]) * [http://www.amitwireless.com/productDetail.php?cate=996&product_id=1280 MDG200 Amit Manufacturer Page] - Datasheet and more [[Image(amitmodem.jpg, width=400)]] = Certification * AT&T [https://marketplace.att.com/certified-devices Visit URL Here] * Verizon [https://opendevelopment.verizonwireless.com/device-showcase?imagesUrl=%2Fshowcase%2Fapi%2Fimages%2Fget%2F&countUrl=%2Fshowcase%2Fapi%2Fcount%2Fget&count=0&searchBox=mdg200&page=0&pageSize=12&loading=false&moreToShow=true&sms=&operatingsystem=&simType=&eUICC=&voiceCapable=&wiFi=ðernetPort=&uSBPort=&wea=&securityLevel= Visit URL Here] = Materials To follow this wiki you will need the following materials: * [http://www.amitwireless.com/productDetail.php?cate=964 AMIT MDG100 Modem], or the [http://www.amitwireless.com/product.php?cate=1280&product_id=1261&pid=1260&pid1=124 AMIT MGD200 Modem] * A SIM card (a Hologram SIM is used in the examples) [https://www.hologram.io/ Hologram Page] * At least 1 antenna (In the example Pulse W3907XXXX was used) [https://productfinder.pulseeng.com/product/W3907B0100 Pulse Page] * A Gateworks single board computer (SBC) = Hardware setup == MDG100 Installation Install the SIM on the backside of the modem, the bracket slides then opens like a book. Pads on the SIM face contacts on the carrier, close then slide to lock in place. Attach your antennas, the modem PCB is labeled next to the U.FL connectors, look for the box labeled "CON1" (a jewelers loop may be required to read). Connect the board to your Gateworks SBC, preferably in a modem designated slot. Configure your SBC with the latest Ubuntu image (in the example Newport-Focal was used). == MDG200 Installation This Modem consists of two pieces, a mPCI-e adapter board, and the modem module. To install see the following instructions: 1. Insert your nanoSIM into the nanoSIM socket on the bottom side of the modem module. 2. Attach the adapter board to the SBC with the two hex male/female standoffs as shown below. [[Image(amitbaseboard.png, width=400)]] 3. Plug the modem module into the connector on the adapter and then using the two screws secure it to the adapter board as shown below. [[Image(amitmounted.png, width=400)]] 4. Attach your antennas. Two I-PEX connectors are used for external LTE antenna and one I-PEX connector is used for an external GPS antenna. == Antennas * QTY 2 I-PEX connector for external LTE antenna * QTY 1 I-PEX connector for external GPS antenna Gateworks sells the [https://shop.gateworks.com/index.php?route=product/product&product_id=89 GW16065] cellular antenna and the [https://shop.gateworks.com/index.php?route=product/product&product_id=42 GW10036] pigtail. = Software configuration The Gateworks board is incapable of displaying when used in a headless configuration. The Amit modem requires some configuration using it's webUI, in order to do this from the board port forwarding is required. == Gain Access to the Amit webUI Install nftables: {{{#!bash apt-get update apt install nftables -y }}} Enable port forwarding: {{{#!bash systemctl enable nftables.service systemctl start nftables.service sysctl net.ipv4.ip_forward sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf }}} Verify port forwarding is now enabled: {{{#!bash sysctl -p }}} Configure nftables to pass traffic from modem webUI to Gateworks SBC port so it can be interfaced with on a desktop: {{{#!bash nft flush ruleset nft add table nat nft 'add chain nat postrouting { type nat hook postrouting priority 100 ; }' nft 'add chain nat prerouting { type nat hook prerouting priority -100; }' nft 'add rule nat prerouting iif eth0 tcp dport { 0-9000 } dnat 172.16.0.1' nft add rule nat postrouting masquerade }}} Bring the modem interface up: {{{#!bash ifconfig usb0 up dhclient usb0 }}} == Configure the modem using the WebUI Acquire the ip address of eth0 (not the modem). Using a workstation on the same subnet, open a browser then enter the ip address of eth0 on the Gateworks SBC. Login using username "admin", password "admin". To enable AT/NEMA select administrator>manager, "at/nema", tick the enable box then save. [[Image(atnema.png, width=700)]] Set mode to NAT, setup>network>device-mode use the drop-down then select NAT then save. http://trac.gateworks.com/attachment/wiki/wireless/modem/AMITMDG100/amitbaseboard.png Configure cellular options (setup>network>cellular): * sim select - internal * apn - manual * manual apn - "hologram" (or your apn) * authentication - auto * ip type - ipv4 * ip modem - dynamic ip [[Image(cellular.png, width=700)]] Save. Verify ethernet settings: [[Image(ethernet.png, width=700)]] Save and logout. = Get a connection Back on the Gateworks SBC... Configure the driver: {{{#!bash modprobe option echo 0x5c6 0x90b3 > /sys/bus/usb-serial/drivers/option1/new_id }}} Use modem manager to establish a connection: {{{#!bash mmcli -m 0 --enable }}} This should return "successfully enabled the modem" {{{#!bash mmcli -m 0 --simple-connect="apn=hologram" }}} This should return "successfully connected the modem" If these steps are not working check that your SIM card is activated and your antennas are connected. A scan can be used to verify that your desired network is aviable {{{#!bash mmcli --modem 0 --3gpp-scan --timeout=300 }}} For example this will return: {{{ --------------------- 3GPP scan | networks: 310410 - AT&T (umts, available) | 311490 - 311 490 (lte, forbidden) | 310260 - T-Mobile (lte, available) | 313100 - FirstNet (lte, forbidden) | 310410 - AT&T (lte, current) | 311480 - Verizon (lte, available) | 310260 - T-Mobile (umts, available) }}} Configure the nameserver to use 8.8.8.8 {{{#!bash echo "nameserver 8.8.8.8" > /etc/resolv.conf }}} Make your default gateway the modem: {{{#!bash route add default gw 172.16.0.1 dev usb0 }}} Verify the connection is established: {{{ root@focal-newport:~# ping -I usb0 www.google.com PING www.google.com (216.58.201.228) from 172.16.0.6 usb0: 56(84) bytes of data. 64 bytes from par10s33-in-f4.1e100.net (216.58.201.228): icmp_seq=1 ttl=110 time=639 ms 64 bytes from par10s33-in-f4.1e100.net (216.58.201.228): icmp_seq=2 ttl=110 time=641 ms }}} = AT Commands [http://trac.gateworks.com/attachment/wiki/wireless/modem/AMITMDG/MDG100%20work%20on%20Linux.pdf This] document explains how to use the AMIT modem with AT commands if you prefer to avoid the WebUI.