Motorola V325i and V323i
Contents
Manually dump phonebook
It is easy to just connect manually using a terminal program. I used `screen`, but you could also use `minicom` or whatever you like. First, confirm that when you plug your phone into the USB port that it shows up as /dev/ttyACM0.
screen /dev/ttyACM0 19200,cs8,-parenb,-cstopb,-hupcl
Here is a sample session where I talk to the phone and cause it to dump all if its phonebook entries.
ATZ OK AT+MPIN ERROR AT+MODE? +MODE: 0 OK AT+MODE=2 OK +MBAN: Copyright 2000-2004 Motorola, Inc. AT+CPBS=? +CPBS: ("ME","SM","MT","ON","DC","MC","RC","AD","QD") OK AT+CPBS=AD OK AT+MPBR=? +MPBR: 1-500,32,24,10,0-21,48,(0,5-9,11-15,30,32-35,38-42,59-92,255),(0),(0-1),0 OK AT+MPBR=1 +MPBR: 1,"*86",129,"Voicemail",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" OK AT+MPBR=2 +MPBR: 2,"4155559533",129,"Tee Cell",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" OK AT+MPBR=3 +MPBR: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" OK AT+MPBF="D" +MPBF: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" +MPBF: 4,"4155555286",129,"Dad temp",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" OK AT+MPBR=1,500 +MPBR: 1,"*86",129,"Voicemail",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" +MPBR: 2,"4155559533",129,"Tee Cell",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" +MPBR: 3,"4155559541",129,"Dad",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" +MPBF: 4,"4155555286",129,"Dad temp",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" +MPBR: 5,"4155165991",129,"Matt",3,0,255,255,1,1,255,0,0,"",0,0,"","","","","","","","","" +MPBR: 498,"#225",129,"#BAL",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" +MPBR: 499,"#646",129,"#MIN",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" +MPBR: 500,"#768",129,"#PMT",3,0,255,0,1,1,255,255,0,"",0,0,"","","","","","","","","" OK AT+MODE=0 OK
External sites =
- Search Google for "Motorola AT commands".
- Hugh Sparks' AT Commands to Access the Motorola V-Series Phonebook
Stuff that didn't work
I managed to get KMobileTools to talk to a Motorola V323i/V325i mobile phone. It was not hard, but it was very flaky. Sometimes it would work. Sometimes it would not.
The V323i appears to use an ordinary USB-to-MiniUSB connector. This will also charge the phone from a USB port.
Verify that the following device appears when you plug in the phone:
## Without the phone plugged in: # ls -l /dev/ttyACM0 ls: /dev/ttyACM0: No such file or directory ## With the phone plugged in: root@alpha: /root 2 # ls -l /dev/ttyACM0 crw-rw---- 1 root dialout 166, 0 2008-11-02 12:39 /dev/ttyACM0
device drivers
You should not need to install any device drivers to support this mobile phone. For reference, this phone supports "USB Communication Device Class - Abstract Control Model" (USB CDC-ACM). The kernel module for this is pretty standard (see usb_core and cdc_acm). The CDC-ACM interface basically means that your USB device will look and act like an old-fashioned modem at support "AT" commands. Some phones show up as "CDC-ECM" which means that they look and act just like an Ethernet NIC. It's possible to switch the V323i into ECM mode.
You can verify that you have the ACM module by looking at `lsmod`:
$ lsmod | grep -i acm cdc_acm 17184 0 usbcore 138632 10 cdc_acm,hci_usb,usb_storage,libusual,usbhid,xpad,appleir,ehci_hcd,uhci_hcd
log files
Keep an eye on /var/log/messages. The same information may also appear separately in /var/log/ker.log. Watch whichever one seems to work. When you plug in the phone you should see something like this:
# tail -f /var/log/messages Nov 2 12:48:10 alpha kernel: [356011.220000] usb 5-6.2: new full speed USB device using ehci_hcd and address 48 Nov 2 12:48:10 alpha kernel: [356011.364000] usb 5-6.2: configuration #1 chosen from 2 choices Nov 2 12:48:10 alpha kernel: [356011.364000] cdc_acm 5-6.2:1.0: ttyACM0: USB ACM device
Similar, but different information may also appear in /var/log/syslog:
Nov 2 12:56:21 alpha kernel: [356501.536000] usb 5-6.2: new full speed USB device using ehci_hcd and address 50 Nov 2 12:56:21 alpha kernel: [356501.676000] usb 5-6.2: configuration #1 chosen from 2 choices Nov 2 12:56:21 alpha kernel: [356501.676000] cdc_acm 5-6.2:1.0: ttyACM0: USB ACM device Nov 2 12:56:21 alpha NetworkManager: <debug> [1225659381.236345] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_22b8_2ac2_noserial'). Nov 2 12:56:21 alpha NetworkManager: <debug> [1225659381.312379] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_ffffffff_ffffffff_noserial').
The `lsusb` command is also your friend:
# lsusb -d 22b8: Bus 005 Device 048: ID 22b8:2ac2 Motorola PCS
verbose USB information
This is a verbose dump of just the device with Motorola's vendor ID:
# lsusb -v -d 22b8: Bus 005 Device 048: ID 22b8:2ac2 Motorola PCS Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 16 idVendor 0x22b8 Motorola PCS idProduct 0x2ac2 bcdDevice 0.01 iManufacturer 1 Motorola, Inc. iProduct 2 Motorola A41x/V32x iSerial 0 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 4 Motorola Communication Interface CDC Header: bcdCDC 1.09 CDC Call Management: bmCapabilities 0x03 call management use DataInterface bDataInterface 1 CDC ACM: bmCapabilities 0x0f connection notifications sends break line coding and serial state get/set/clear comm features CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 4 Motorola Communication Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8a EP 10 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x0b EP 11 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 2 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 4 Motorola Communication Interface CDC Header: bcdCDC 1.09 CDC Call Management: bmCapabilities 0x03 call management use DataInterface bDataInterface 1 CDC ACM: bmCapabilities 0x0f connection notifications sends break line coding and serial state get/set/clear comm features CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 4 Motorola Communication Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8a EP 10 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x0b EP 11 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)