USRobotics USR5637 USB modem

January 24, 2023    Article    973 words    5 mins read

Note

This article started as a section in the large Nokia Booklet 3G page but I decided to make a separate page just in case someone wants to play with this type of USB modem.

The USR 56K USB Modem, now with voice+, delivers the performance and reliability USR is known for, in a compact, flexible form factor. This controller-based modem integrates powerful communications processing functions into the modem itself, for assured performance without sapping your computer’s processing power. It is also broadly compatible across major operating systems including Linux, Windows and Macintosh (including Windows Server 2016, Windows 10+, Sierra, El Capitan, and Yosemite).

Documentation

Features

  • Data: V.92, V.90, V.34, V.32bis, V.32, V.22bis, V.22, V.23, and V.21
  • Data Error Control/Compression: V.44/V.42/V42bis and MNP2-4/5
  • Fax: EIA 578 (Class 1) with V.17, V.29, V.27ter, Group 3
  • ITU-T V.253 Command Set
  • V.80 video conferencing support
  • DTE interface: USB Version 2.0
  • USB powered
    • Typical current from USB supply = 240 mA (1.2W)
    • Maximum current from USB supply = 360 mA (1.8W)
  • Hayes Compatible
  • 2 LEDs: Power, Data
  • Phone line interface: One RJ-11 socket

Requirements

  • Windows Server 2019, Server 2016, Server 2012 R2/Win 10+/Win 10+ 64 bit/Server 2012/Win 8/Server 2011/Win 7/Server 2008/Vista/Server 2003/XP/2000 (Unimodem TSP/TAPI compliant), Mac 10.4-10.12, and Linux 2.4.20 kernel or higher
  • Intel Pentium III 600 MHz or equivalent, 128 MB RAM, 5 MB hard drive space
  • USB port
  • 2x or better CD-ROM drive
  • Analogue phone line

Installation

Considering the modem is an external USB device, you just need to plug it into an empty USB port on your Nokia Booklet (or netbook of choice).

[1312209.305745] usb 4-2: new high-speed USB device number 8 using ehci-pci
[1312209.464946] usb 4-2: New USB device found, idVendor=0baf, idProduct=0303, bcdDevice= 2.00
[1312209.464966] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=10
[1312209.464977] usb 4-2: Product: USB Modem
[1312209.464987] usb 4-2: Manufacturer: U.S.Robotics
[1312209.464996] usb 4-2: SerialNumber: [REDACTED]
[1312209.472281] cdc_acm 4-2:2.0: ttyACM0: USB ACM device

To check if the Linux actually detects it and has a driver for it, run the following command:

$ lsmod | grep cdc
cdc_acm                32768  0

To identify the COM port associated with the modem, some more digging around is required:

# start by listing all the USB devices (list will be longer depending on the actual devices)
$ lsusb
Bus 004 Device 006: ID 0baf:0303 U.S. Robotics USR5637 56K Faxmodem
# so it's device 6 on bus 4
$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
    |__ Port 2: Dev 6, If 0, Class=Communications, Driver=cdc_acm, 480M
    |__ Port 2: Dev 6, If 1, Class=CDC Data, Driver=cdc_acm, 480M
# the driver for the bus 4 device 6 is cdc_acm
$ sudo dmesg | grep tty
[1312209.472281] cdc_acm 4-2:2.0: ttyACM0: USB ACM device
# and the COM port for the cdc_acm driver is /dev/ttyACM0. BINGO!

Now you can use any application that can interact with the COM ports and test your modem connection, I will use minicom to test the connection with the USR5637 modem using the “AT” commands. Minicom is a text-based modem control and terminal emulation program for Unix-like operating systems.

# First, make sure minicom is installed
$ sudo apt install minicom
# configure it
$ sudo minicom -s
# run it
$ sudo minicom
Welcome to minicom 2.8

OPTIONS: I18n
Port /dev/ttyACM0, 19:10:25

Press CTRL-A Z for help on special keys

AT
OK

In the configuration stage of minicom, make sure you select the Serial port setup menu and change Serial Device to your actual device COM port (the one we discovered above, /dev/ttyACM0 in this case), also change Bps/Par/Bits to 9600 8N1 (baud rate is 9600, 8 bits per bytes, no parity, 1 stop bit).

The AT command checks if the modem is alive and kicking.

Integrated circuits

  • Macronix MX29LV040CTC-70G : FLASH - NOR Memory IC 4Mbit Parallel 70 ns 32-TSOP, datasheet
  • LSI CV92-F100B : Complete Embedded Data Modem

Resetting the COM port

Sometimes, the modem becomes unresponsive, doesn’t respond anymore to the issued commands and most likely you have to reboot the OS to fix the problem. Or, you can use this small Python script to reset the COM port of the modem.

import subprocess
import os
import fcntl

def reset_device():
	usb_dev_path = ""
	proc = subprocess.Popen(['lsusb'], stdout = subprocess.PIPE)
	cmd_output = proc.communicate()[0]
	usb_device_list = cmd_output.split('\n')
	for device in usb_device_list:
		if 'U.S. Robotics' in device:
			print device
			usb_dev_details = device.split()
			usb_bus = usb_dev_details[1]
			usb_dev = usb_dev_details[3][:3]
			usb_dev_path = '/dev/bus/usb/%s/%s' % (usb_bus, usb_dev)
	try:
		if usb_dev_path != "":
			print "Trying to reset USB Device: " + usb_dev_path
			usb_dev_file = os.open(usb_dev_path, os.O_WRONLY)
			fcntl.ioctl(usb_dev_file, ord('U') << (4 * 2) | 20, 0)
			print "USB Device reset successfully."
		else:
			print "Device not found."
	except:
		print "Failed to reset the USB Device."
	finally:
		try:
			os.close(usb_dev_file)
		except:
			pass

reset_device()

Save the code to a reset_usb_device.py file and run it with sudo.

$ sudo python reset_usb_device.py
Bus 004 Device 005: ID 0baf:0303 U.S. Robotics USR5637 56K Faxmodem
Trying to reset USB Device: /dev/bus/usb/004/005
USB Device reset successfully.

Drivers

Make sure you compare the SHA-256 hashes to make sure the files were not tampered with.

Windows

  • USR5637Voice64bit.exe
    SHA-256: c8dde2e8df3905231e53e653c7b30464a9254b05b227b54d855ed6b033521f14
    Size: 433KB
    64 Bit Driver for Windows XP, 2003, Vista, 2008, Win 7, Win 8, Server 2011, Server 2012, Win 10+, Server 2012 R2, Server 2016, and Server 2019
  • USR5637Voice32bit.exe
    SHA-256: b4039df3e1e5c811a8b34e61b22fe3a3d87f09ac15544877b692f3376829532e
    Size: 429KB
    32 Bit Driver for Windows XP, 2003, Vista, 2008, Win 7, and Win 8, and Win 10+
  • USR5637_2K.zip
    SHA-256: 4ab423d5f36c819b1f82bf9cd882f5db5350256f9f68b53e4fcd39325ea7ec15
    Size: 9KB
    Windows 2000 Driver

Mac

  • USRobotics56KUSBModem.dmg
    SHA-256: 9e8e836269ed9bdb0cdbb6f8b5c00d9cdb42f730d6c49e79497c6929888b9179
    Size: 108KB
    Mac OS X: Mac 10.4-10.12+ Modem Script

Firmware

  • USRFlash_1.2.23.exe
    SHA-256: 8fce5d9b22a7a6b551e43187a71115c8dd07f1e1ddcaf9ca15eaeef3a6f70983
    Size: 427KB
    Firmware Version 1.2.23, Windows flasher
  • USRFlash_1.2.23.zip
    SHA-256: c8c7b3663015b089ffba20d85ed393610faa411675a903ef2d514f1b28a5d21e
    Size: 281KB
    Firmware Version 1.2.23, Linux flasher
  • USRFlash_1.2.23.dmg
    SHA-256: b49a201186f27514597f885c3d4ee9ae0eb776e25f259582fcce6d0722919469
    Size: 373KB
    Firmware Version 1.2.23, Mac flasher