Novatel Status Port

From CLUG Wiki

Jump to: navigation, search

The Novatel Merlin U740 GPRS/EDGE/3G HSDPA cardbus adapter exposes two usbserial devices via a NEC ohci device.

The first port can be used as a standard modem port, with AT commands and PPP. The second port is used by the windows utility to for out-of-band communication with the card while the first port is occupied by the PPP link.

Linux users could benefit from a similar utility that can query signal strength, cell information, send/receive SMS'es etc.

The Problem

While one can use minicom or hyperterminal to access the first port without any problem, but not the second port, in either OS. The port is simply unresponsive to AT commands.

Using PortMon (from sysinternals.com) reveals that the utility opens the port with com settings (115200,N81).

Next, it then sends 6 binary bytes, then reads 6 *different* bytes back from the port, and immediately it is able to use regular AT commands. It always reads the same 6 bytes back from the port. I also noticed that it prepends [4B FA 03 00] before the AT commands, but I'm not sure if this is a PortMon artifact.

0       0.15137231      VMConnect.exe   IRP_MJ_CREATE   QCUSB_COM4_1    SUCCESS Options: Open
1       0.00000782      VMConnect.exe   IOCTL_SERIAL_GET_BAUD_RATE      QCUSB_COM4_1    SUCCESS
2       0.00000363      VMConnect.exe   IOCTL_SERIAL_GET_LINE_CONTROL   QCUSB_COM4_1    SUCCESS
3       0.00000363      VMConnect.exe   IOCTL_SERIAL_GET_CHARS  QCUSB_COM4_1    SUCCESS
4       0.00000363      VMConnect.exe   IOCTL_SERIAL_GET_HANDFLOW       QCUSB_COM4_1    SUCCESS
5       0.00000363      VMConnect.exe   IOCTL_SERIAL_GET_BAUD_RATE      QCUSB_COM4_1    SUCCESS
6       0.00000335      VMConnect.exe   IOCTL_SERIAL_GET_LINE_CONTROL   QCUSB_COM4_1    SUCCESS
7       0.00000335      VMConnect.exe   IOCTL_SERIAL_GET_CHARS  QCUSB_COM4_1    SUCCESS
8       0.00000307      VMConnect.exe   IOCTL_SERIAL_GET_HANDFLOW       QCUSB_COM4_1    SUCCESS
9       0.00000419      VMConnect.exe   IOCTL_SERIAL_SET_BAUD_RATE      QCUSB_COM4_1    SUCCESS Rate: 115200
10      0.00000475      VMConnect.exe   IOCTL_SERIAL_CLR_RTS    QCUSB_COM4_1    SUCCESS
11      0.00000419      VMConnect.exe   IOCTL_SERIAL_CLR_DTR    QCUSB_COM4_1    SUCCESS
12      0.00000363      VMConnect.exe   IOCTL_SERIAL_SET_LINE_CONTROL   QCUSB_COM4_1    SUCCESS StopBits: 1 Parity: NONE WordLength: 8
13      0.00000335      VMConnect.exe   IOCTL_SERIAL_SET_CHAR   QCUSB_COM4_1    SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0
14      0.00000363      VMConnect.exe   IOCTL_SERIAL_SET_HANDFLOW       QCUSB_COM4_1    SUCCESS Shake:0 Replace:0 XonLimit:0 XoffLimit:0 
15      0.00000447      VMConnect.exe   IOCTL_SERIAL_SET_TIMEOUTS       QCUSB_COM4_1    SUCCESS RI:0 RM:0 RC:10 WM:0 WC:5000
16      0.00000838      VMConnect.exe   IOCTL_SERIAL_PURGE      QCUSB_COM4_1    SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
17      0.00002235      VMConnect.exe   IOCTL_SERIAL_PURGE      QCUSB_COM4_1    SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
18      0.00090682      VMConnect.exe   IRP_MJ_WRITE    QCUSB_COM4_1    SUCCESS Length 6: 30 00 01 EB 51 7E
19      0.00000866      VMConnect.exe   IOCTL_SERIAL_GET_COMMSTATUS     QCUSB_COM4_1    SUCCESS
20      0.00001229      VMConnect.exe   IOCTL_SERIAL_GET_COMMSTATUS     QCUSB_COM4_1    SUCCESS
21      0.00993618      VMConnect.exe   IRP_MJ_READ     QCUSB_COM4_1    TIMEOUT Length 6: 30 00 00 62 40 7E
22      0.00001397      VMConnect.exe   IOCTL_SERIAL_PURGE      QCUSB_COM4_1    SUCCESS Purge: TXCLEAR RXCLEAR
23      0.00002794      VMConnect.exe   IOCTL_SERIAL_PURGE      QCUSB_COM4_1    SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
24      0.00208071      VMConnect.exe   IRP_MJ_WRITE    QCUSB_COM4_1    SUCCESS Length 651: 4B FA 03 00 41 54 49 0D 0A 00 00 00 00 00 00 00 00 00 00 00 00
25      0.00001564      VMConnect.exe   IOCTL_SERIAL_GET_COMMSTATUS     QCUSB_COM4_1    SUCCESS
26      0.01001077      VMConnect.exe   IRP_MJ_READ     QCUSB_COM4_1    TIMEOUT Length 651: 4B FA 03 00 0D 0A 4D 61 6E 75 66 61 63 74 75 72 65 72 3A 20 4E


Sending those same 6 bytes to the port using minicom/hyperterminal or gtkterm gets the card to respond with 6 bytes, but *not* the same 6 bytes as it responded with above. Also, each time I get a different set of 6 bytes back. After I do this, it still does not respond to AT commands, not even with the [4B FA 03 00] prepended.

Send : 30 00 01 EB 51 7E
Read : 30 00 1F 08 F8 65
Send : 30 00 01 EB 51 7E
Read : 30 00 11 08 A8 44

Clearly Novatel has a "binary mode" and a "AT command mode".

Novatel is not helpful

There is no documentation available on how to interface with the card. I logged a tech support question on their website (reference W002983-051706) on 05/17/2006 03:49 AM, which they still have not responded to. I also sent an email to their sales team requesting the SDK for the card, as advertised on their website, but still no response.

Novatel is listed at http://www.vendorwatch.org/index.php?title=Novatel as being an unfriendly vendor.

What now?

Some ideas on how to proceed:

  • The card uses a Qualcomm CDMA chipset, perhaps the datasheets could help, but they're probably subject to NDA's.
  • Someone could send Novatel a FAX or make a phone call?
  • Vodacom could help?
  • I've posted a forum message om Myadsl.co.za, apparently a (Vodacom) person there called vodacom3g has been helpful in the past: http://www.mybroadband.co.za/vb/showthread.php?p=661493#post661493