VWSoft
Volker Werth - Software -
weighing - communication - application - development
bsd.vwsoft.com

card specific info

Novatel Merlin U740

The Merlin U740 is a cardbus-card. Unlike the U630 it is providing USB-over pcmcia. So the operating system is just seeing an additional USB hub on insertion of the card. On address 2 of it's USB interface the card is providing the neccessary interfaces for communicating with the card for UMTS/GPRS mode.

The card is providing HSDPA (High Speed Downlink Packet access) on it's air interface. The maximum downlink speed is 1.8 MBit/s and the uplink is specified as maximum 384 kBit/s. This card also supports EDGE or EGPRS.

on it's two USB interfaces it provides the communication channels. Interface 0 is everything you need for basic functionality of that card whereas interface 1 is acting as a diagnostic interface. This interface might be used for status control of a connection while it's connected to the 3G network. Unfortunately Novatel does not document anything and does not answer support requests so this diagnostic link is of no use, currently. It's interface is propietary like the one of the U630 card.

On interface 0 you'll have two bulk endpoints for basic communication and datalink. These two form something what is really looking like a Hayes compatible modem.

Now back to the technical details.

Currently no driver exist for supporting this device. But it's not that hard to get the card working, because the ubsa driver might be used. If you want to get it to work, just hack that driver for vendor-ID 0x1410 and product-ID 0x1400. At least using ubsa will give you basic functionality of this card to be used by ppp, pppd or mpd.

 

On insertion of the card, FreeBSD gives the following message:

cardbus0: CIS pointer is 0!
cardbus0: Resource not specified in CIS: id=10, size=1000
ohci1: <NEC uPD 9210 USB controller> mem 0x88000000-0x88000fff irq 9 at device 0.0 on cardbus0
ohci1: [GIANT-LOCKED]
usb1: OHCI version 1.0
usb1: <NEC uPD 9210 USB controller> on ohci1
usb1: USB revision 1.0
uhub1: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
cardbus0: CIS pointer is 0!
cardbus0: Resource not specified in CIS: id=10, size=1000
ohci2: <NEC uPD 9210 USB controller> mem 0x88001000-0x88001fff irq 9 at device 0.1 on cardbus0
ohci2: [GIANT-LOCKED]
usb2: OHCI version 1.0
usb2: <NEC uPD 9210 USB controller> on ohci2
usb2: USB revision 1.0
uhub2: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhub1: device problem (SET_ADDR_FAILED), disabling port 1
ugen0: Novatel Wireless Novatel Wireless HSDPA Modem, rev 1.10/0.00, addr 2

 

The usb interface looks like this:

usb1:

%usbctl -f /dev/usb1
USB device 1: 9
USB device 2: 0
2 USB devices found
DEVICE addr 1
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=1.00 bDeviceClass=9 bDeviceSubClass=0
bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x0000 idProduct=0x0000 bcdDevice=100
iManufacturer=1(NEC) iProduct=2(OHCI root hub) iSerialNumber=0() bNumConfigurations=1

CONFIGURATION descriptor 0:
bLength=9 bDescriptorType=config(2) wTotalLength=25 bNumInterface=1
bConfigurationValue=1 iConfiguration=0() bmAttributes=40 bMaxPower=0 mA

INTERFACE descriptor 0:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=0
bNumEndpoints=1 bInterfaceClass=9 bInterfaceSubClass=0
bInterfaceProtocol=0 iInterface=0()

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-in
bmAttributes=interrupt wMaxPacketSize=8 bInterval=255

current configuration 1

HUB descriptor:
bDescLength=11 bDescriptorType=41 bNbrPorts=3 wHubCharacteristics=00
bPwrOn2PwrGood=15 bHubContrCurrent=0 DeviceRemovable=0

Hub status 0000 0000

Port 1 status=0103 change=0000

Port 2 status=0100 change=0000

Port 3 status=0100 change=0000

----------
DEVICE addr 2
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=1.10 bDeviceClass=0 bDeviceSubClass=0
bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x1410 idProduct=0x1400 bcdDevice=0
iManufacturer=1(\uc3b6\u59d8\uc3b6\u59d8\uc3b6\u2168\uc429\u2438\uc429\u2360\uc429\ueca8\uc424\udbd0\uc425\u3048\uc429\u2ca8\uc429\uadc8\uc428\u21b0\uc429\uaea0\uc428\u3288\uc429\u3750\uc429\u3870\uc429\udca8\uc425\u2e10\uc429) iProduct=2() iSerialNumber=0() bNumConfigurations=1

CONFIGURATION descriptor 0:
bLength=9 bDescriptorType=config(2) wTotalLength=62 bNumInterface=2
bConfigurationValue=1 iConfiguration=0() bmAttributes=a0 bMaxPower=500 mA

INTERFACE descriptor 0:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=0
bNumEndpoints=3 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=3(\uc43e\u19d8\uc43e\u59d8\uc3b6\u17e0\uc43e\u15e8\uc43e)

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-in
bmAttributes=interrupt wMaxPacketSize=16 bInterval=128

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-in
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-out
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

INTERFACE descriptor 1:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=1 bAlternateSetting=0
bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255
bInterfaceProtocol=255 iInterface=3(\ud449)

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-in
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-out
bmAttributes=bulk wMaxPacketSize=64 bInterval=0

current configuration 1

...and usb2:

%usbctl -f /dev/usb2
USB device 1: 9
1 USB devices found
DEVICE addr 1
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=1.00 bDeviceClass=9 bDeviceSubClass=0
bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x0000 idProduct=0x0000 bcdDevice=100
iManufacturer=1(NEC) iProduct=2(OHCI root hub) iSerialNumber=0() bNumConfigurations=1

CONFIGURATION descriptor 0:
bLength=9 bDescriptorType=config(2) wTotalLength=25 bNumInterface=1
bConfigurationValue=1 iConfiguration=0() bmAttributes=40 bMaxPower=0 mA

INTERFACE descriptor 0:
bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=0
bNumEndpoints=1 bInterfaceClass=9 bInterfaceSubClass=0
bInterfaceProtocol=0 iInterface=0()

ENDPOINT descriptor:
bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-in
bmAttributes=interrupt wMaxPacketSize=8 bInterval=255

current configuration 1

HUB descriptor:
bDescLength=11 bDescriptorType=41 bNbrPorts=2 wHubCharacteristics=00
bPwrOn2PwrGood=15 bHubContrCurrent=0 DeviceRemovable=0

Hub status 0000 0000

Port 1 status=0100 change=0000

Port 2 status=0100 change=0000

For commands special to the U740 card, please have a look at the Merlin U630 page as the command set and LED meaning is nearly the same for both card models.

There's a command for turning HSDPA support on and off but I don't have it by my hand currently. As soon as I've found the command again, I'll document it here.

The datasheet for this card can be found at Novatel's site

I've committed a patchset to GNATS. GNATS pr-entry including a patchset.

After applying the patchset, when inserting this card you'll get:

[snip]
ucom0: Novatel Wireless Novatel Wireless HSDPA Modem, rev 1.10/0.00, addr 2

Using port /dev/cuaU? and issuing an ATI command, this card identifies as:

Manufacturer: Novatel Wireless Incorporated                                  
Model: Merlin U740 (HW REV [0:33])                                           
Revision: 15.4-15.4-00  [2006-01-06 14:54:22]                                
IMEI: 358661000148780                                         
+GCAP: +CGSM,+DS,+ES