Using M14A2A Celluar Shield Without Microcontoller

Solved
mnazaroff's picture
mnazaroff
Junior(0)

I have the ATT Cellular IoT Starter Kit, which includes the  M14A2A celluar shield and the FRDM-K64F microcontroller board.  There was success with regards to using the celluar modem with the microcontroller.  However, I wish to M14A2A celluar shield without the microcontroller.  The goal is to directly send data through the modem by connecting it by USB to a Raspberry Pi.

My USB and power connections on the celluar shield are correct, however neither Linux nor Windows are successully recognizing the celluar shield.  Windows will just detect the shield in Device Manager as WNC M14A2A with a message showing that "the drivers are not installed".  For Linux, the modem just shows up as TTYACM0 and am unable to communicate with it using "cu". 

How can I use the celluar shield directly by a PC through a USB connection?  Are there drivers for linux or Windows?  I had scoured the official documents for the hardware included with the ATT Cellular IoT Starter Kit, but there is pretty much zero information in how to use the celluar shield directly without the FRDM-K64F microcontroller board.

LightCollector's picture
LightCollector
Moderator(20)

You are really asking 2 quesitons here.

 

Officially the kit was not intended to connect to a Window's PC however if you follow the instructions to upgrade the firmware you will find that it installs some drivers that I believe will do what you want, again this is unsupported ;-)  The upgrade instructions were posted a bit ago but basically you will want to login to the starterkit.att.com website and under developer you will find the new firmware, drivers and the upgrade instructions.

 

Regarding the Pi, we just released a new kit intended for just that purpose: for use with a Pi 3, it is called the LTE IoT Add On Kit.  The 14A2A Shield board and SIM are identical between the 2 kits.  You should have access to the Getting Started Guide for that with your existing Avnet login.  Officially this new kit only supports a Pi 3 and the Jessie Raspbian release.  It might work with older Pi's and other OS's but again those are unsupported.  I will be creating a new topic for questions for that kit.  In a couple places the section numbers in the getting started guide for the Pi 3 are wrong, it is sort of obvious to decipher, I will correct those in the next revision of the manual.

 

Best Regards

mnazaroff's picture
mnazaroff
Junior(0)

Thanks for your assistance. I had followed the directions for updtating the firmware and am now able to have the 12A2A shield work on both a Windows 8  computer and a Raspberry Pi 3 running Raspian Jessie.  However, the issue that remains is having the 12A2A work within an Ubuntu environment.   I can attach the 12A2A to an Ubuntu machine(either a PC or a Pi running LUbuntu) and it does show up /dev/ttyACM0.  I am able to connect to the modem shield via putty or minicom, but all I get is a session into what appears to be the embedded Linux OS running on the modem shield.  I cannot issue any AT commands.  There are moments when Ubuntu displays a message that an Ethernet device is present as soon as I attach the modem via USB, but this is quickly followed by an Ethernet disconnect message.

 

If I understand the specifications correctly, the modem firmware is not supported for Ubuntu, no? Does this mean that it is simply IMPOSSIBLE to have the 14A2A shield run within an Ubuntu environment?  Or, is there still some hope with the requirement of heavy duty workarounds with drivers, U-BOOT, etc?  Below is a dmesg log of what happens after I plug in the 14A2A via USB:

[  751.262433] usb 3-11: new high-speed USB device number 7 using xhci_hcd
[  751.390798] usb 3-11: New USB device found, idVendor=216f, idProduct=0051
[  751.390800] usb 3-11: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  751.390802] usb 3-11: Product: U-Boot 2012.10
[  751.390802] usb 3-11: Manufacturer: Das U-Boot
[  751.390803] usb 3-11: SerialNumber: 0000000
[  751.390887] usb 3-11: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
[  751.390889] usb 3-11: ep 0x83 - rounding interval to 128 microframes, ep desc says 255 microframes
[  751.391257] cdc_acm 3-11:1.0: ttyACM0: USB ACM device

 

 

LightCollector's picture
LightCollector
Moderator(20)

Yes that is correct, all non Jessie Raspbian Linux's not officially supported at this time, windows works but is also not officially supported, sorry.  Keep in mind the intention of the cellular shield is to provide a cellular data link for IoT devices sending small amounts of data.  That is not to say it can't work as a data pipe for a whole PC, it does actually do that, just that we don't have any intention to try to take on the support for all those additional variants.

 

If the cellular shield will work with the other OS's, that indicates it is probably not the cellular shield.  It is the other OS's not handling the USB device type or triggering something bad in the 14A2A or it could even be your PC's specific usb hardware in combination with the OS drivers.

 

Another thing to keep in mind is that Linux of any variant is a constantly moving target.  I wonder if 2 or more users even of the same Linux flavor ever have the exact same software behaving exactly the same way.  Not only the kernel but the packages are constantly changing with complex dependancies and there are so many computer hardware variations.   To solve the problem you're going to have to dig deep into the details of USB devices and Ethernet over USB.  Certainly if I hear of a solution, will pass it along.  Again we're (AT&T, Avnet) not looking into this at this time but if that changes will also pass it along.

 

Best Regards
 

mnazaroff's picture
mnazaroff
Junior(0)

Thanks for the response.  I figured that it would not be officially supported on the other OS's.  Although, I was actually able to get the modem working on a desktop and browse the web with it.  Unfortunately, after I had rebooted the computer I was no longer able to do so.

I figure that there may be others who would like to be able to use the 14A2A celluar shield on other OS's and would like to share some of the steps and what I had encountered to assist others.

I had attached the modem USB connection and opened a serial connection to it using Putty at 155200, 1, N.  Once connected to the U-BOOT intereface within the serial sesssion, I had typed boot so that U-BOOT would reboot the modem.  This results in the serial session automatically being terminated and Ubuntu now recognizing the modem as a Wired Connection.  Typing 'ifconfig' had showed the modem having a valid IP address during the brief window when the modem was actually working properly.

Below is a dmesg log during the momment after I had plugged in the modem and before I had executed the 'boot' command using the Putty session.

[  142.077333] usb 3-12: new high-speed USB device number 4 using xhci_hcd
[  142.335906] usb 3-12: New USB device found, idVendor=216f, idProduct=0051
[  142.335911] usb 3-12: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  142.335914] usb 3-12: Product: U-Boot 2012.10
[  142.335917] usb 3-12: Manufacturer: Das U-Boot
[  142.335919] usb 3-12: SerialNumber: 0000000
[  142.336068] usb 3-12: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
[  142.336073] usb 3-12: ep 0x83 - rounding interval to 128 microframes, ep desc says 255 microframes
[  142.386130] cdc_acm 3-12:1.0: ttyACM0: USB ACM device
[  142.395976] usbcore: registered new interface driver cdc_acm
[  142.395978] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Below is the dmesg log after executing the U-BOOT boot command.

[  232.016568] usb 3-12: USB disconnect, device number 4
[  236.286977] usb 3-12: new high-speed USB device number 5 using xhci_hcd
[  236.415632] usb 3-12: New USB device found, idVendor=1435, idProduct=3142
[  236.415635] usb 3-12: New USB device strings: Mfr=13, Product=14, SerialNumber=15
[  236.415637] usb 3-12: Product: 'WNC M14A2A devboard'
[  236.415638] usb 3-12: Manufacturer: 'WNC'
[  236.415640] usb 3-12: SerialNumber: usb_serial_num_0
[  236.416658] cdc_acm 3-12:1.2: ttyACM0: USB ACM device
[  236.417019] cdc_acm 3-12:1.4: ttyACM1: USB ACM device
[  236.417410] cdc_acm 3-12:1.6: ttyACM2: USB ACM device
[  236.434844] cdc_ether 3-12:1.0 eth0: register 'cdc_ether' at usb-0000:00:14.0-12, CDC Ethernet Device, 00:11:22:33:44:56
[  236.434869] usbcore: registered new interface driver cdc_ether
[  236.439081] cdc_ether 3-12:1.0 enx001122334456: renamed from eth0
[  236.473366] IPv6: ADDRCONF(NETDEV_UP): enx001122334456: link is not ready
[  236.473528] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  236.473534] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  236.476521] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  236.480872] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  239.746831] do_trap: 36 callbacks suppressed
[  239.746834] traps: pool[2212] trap int3 ip:7f047aaf0a6b sp:7f0457bf25b0 error:0
[  243.324892] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  243.324899] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  253.689900] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped
[  253.689904] cdc_ether 3-12:1.0 enx001122334456: kevent 12 may have been dropped

As you can see, towards the end are some issues regarding the cdc_ether driver and the modem. 

Below are the ifconfig results.  For some reason the modem is being renamed as enx001122334456. 

ubuntu-station@ubuntustation-All-Series:~$ ifconfig
 

enx001122334456 Link encap:Ethernet  HWaddr 00:11:22:33:44:56  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4864 (4.8 KB)  TX bytes:14849 (14.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1422 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1422 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:104244 (104.2 KB)  TX bytes:104244 (104.2 KB)

One interesting thing is that sometimes the modem will show up with a valid IP address, but I cannot ping through it using the ping -I <modem IP> <destination IP> command.
 

For comparison are dmesg results that result after plugging the modem shield into a Raspberry Pi.  It seems like some of the steps taken are in reversed order than what occurs on the Ubuntu machine.

[   62.708858] usb 1-1.4: new high-speed USB device number 6 using dwc_otg
[   62.810089] usb 1-1.4: New USB device found, idVendor=1435, idProduct=3142
[   62.810114] usb 1-1.4: New USB device strings: Mfr=13, Product=14, SerialNumber=15
[   62.810127] usb 1-1.4: Product: 'WNC M14A2A devboard'
[   62.810140] usb 1-1.4: Manufacturer: 'WNC'
[   62.810153] usb 1-1.4: SerialNumber: usb_serial_num_0
[   62.849819] cdc_ether 1-1.4:1.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.4, CDC Ethernet Device, 00:11:22:33:44:56
[   62.850193] usbcore: registered new interface driver cdc_ether
[   62.868679] cdc_acm 1-1.4:1.2: ttyACM0: USB ACM device
[   62.871113] cdc_acm 1-1.4:1.4: ttyACM1: USB ACM device
[   62.873404] cdc_acm 1-1.4:1.6: ttyACM2: USB ACM device
[   62.875418] usbcore: registered new interface driver cdc_acm
[   62.875435] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

wcarmo200's picture
wcarmo200
Junior(0)

Hey Nmazaroff,

I see that you were able to use the avnet M14A2A cell shield as a network your computer could use to browse the internet. It seems like you know more than me on this subject, so I'm asking for your help. I upgraded the drivers and firmware for the cell shield, but my laptop (windows 7) is not able to use the M14A2A as a network. I have activiated the sim card and switched it to "Activated" on the AT&T site. The device does show up on the device manager, so it seems I have it connected correctly and I have it connected to AC power. When the board is plugged in, I checked the Ipconfig on the windows terminal and I can see it there, but I just can't get my laptop to correctly use it for internet capabilities. Any help would be greatly appreciated! Thanks 

LightCollector's picture
LightCollector
Moderator(20)

Hi wcarmo200,

 

Did you set the APN to m2m.com.attz ?  You didn't mention that in your post, it is critical to do that.  You can use the firmware upgrade tool (WNC Connection Manager) to set the APN or if you ran the out of the box demo with the K64F it should set the APN.

 

After setting the APN, then use the WNC connection manager to connect, this should take over the Laptops networking connection.  There is only 300MB with the starter kit, you can purchase more through your SIM account from ATT.

 

Best regards