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).
- Datasheet, mirror.
- Install Guide, mirror.
- Mac 10.5 Configuration, mirror.
- USR 56K USB Modem Voice Commands
- USR 56K USB Modem Data and General Commands
- 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
- 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
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).
AT command checks if the modem is alive and kicking.
- 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() 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 usb_dev = usb_dev_details[: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.
Make sure you compare the SHA-256 hashes to make sure the files were not tampered with.
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
32 Bit Driver for Windows XP, 2003, Vista, 2008, Win 7, and Win 8, and Win 10+
Windows 2000 Driver
Mac OS X: Mac 10.4-10.12+ Modem Script
Firmware Version 1.2.23, Windows flasher
Firmware Version 1.2.23, Linux flasher
Firmware Version 1.2.23, Mac flasher