Motorola V325i and V323i
Contents
Manually dump phonebook
It is easy to connect to the phone 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)
download photos on Windows
The "Motorola V325i" is a pain in the ass -- at least with the San Francisco Bay Area carrier "Verizon Wireless". This is why Apple's iPhone is eating their lunch.
I had no luck with P2KCommander.
Install Motorola Phone Tools Version 5.13b
Install "Motorola Phone Tools" Version 5.13b. I had some old version. It may work with old versions. In fact some older ones may be better because I read that you can manually override the phone driver configuration. I used the internal update to get it to Version 5.13b before I realized that I might have been able to override the driver. With the newer versions you cannot manually override the driver.
Sometimes the Motorola will ask you when you purchased your phone so it can check if the phone is still in warranty. Just lie. I always gave it a recent date less than one year old. It does not seem to actually check. This really isn't their attempt to prevent you from using the software. I think they do this to avoid service calls. After all, what mobile phone company wants to actually hear from their customers?
Driver Update
This installs new USB Modem drivers for the phone. After you do this when you plug in your phone it will ask you if you want to automatically search for new drivers. Select that option. Just let it use the drivers it finds (the new drivers you just installed).
Install Motorola_Software_Update.exe (MSU)
Motorola's Software Update (MSU) by digging around in this site: Motorla Support Updte. You may also be able to use this direct link to the Motorola_Software_Update.exe; although, those fascist bastards might move it.
Run the setup program. Mine said that it was MSU version 01.11.36. You may already have MSU installed. It might say "Select whether you want to repair or remove Motorola Software Update". Select "Repair Motorola Software Update". Click Finish. Let it install or update the Update. After it finishes let it automatically start the updater. Go through the update process. Finish. Close the MSU. Unplug your phone. Turn it off for 20 seconds. Turn it back on. Plug the phone back into the USB cable.
Install SEEM editor: P2KSeem4V710
Don't run p2kseem.exe yet! Read the instructions below first. It's easy, but if you mess up the part about the MSU below then it can get confusing.
Install P2KSeem4V710.zip. It does not really have a setup or installer. You just open it into a folder. Do not run p2kseem.exe yet!
Run the MSU again. This is similar to what you did above, but you don't let it finish. When it starts it should identify your phone and under "phone is connected" it will fill in fields:
ESN Number: 1BE572D2 Model Number: V325i Operator: Verizon Wireless
Now stop and leave the MSU running. You don't need to update again, but you do need to have it running while you do the next steps. Basically all this does it send a signal to the phone to tell it that it's about to have it's brain reprogrammed so it should go into a special service mode. The P2KSeem4V470 does not seem to be able to put this particular model of phone into service mode by itself, so you need help from the MSU.
Hack the SEEM
Start P2KSeem4V710 and familiarize yourself with the fields. They are not well organized, but for now pay attention to these:
Bytes (h): 7A Seem: 41a Record: 1
Click "Load from phone" then use mouse or cursor to highlight the bytes you see in the hex dump at the left of the screen. You want "Selected byte details" to show "Offset: 006A". It's easy. It will make sense when you see it. Check the bot for "But 0 - Bluetooth or USB file transfer in MPT - on". Click "Save to phone".
Bytes (h): 22 Seem: 4ff Record: 1
Click "Load from phone". Notice that the hex dump says "V.3.2.5.i". We are going to change this to "V.3.2.3.M". Move the cursor in the hex dump to select the Offset bytes below and set the bits as indicated then click "Save to phone".
"Offset: 0006": check bits 0-1-4-5, uncheck bits 2-3-6-7 "Offset: 0008": check bits 0-2-3-6, uncheck bits 1-4-5-7
clean up
Exit from P2KSeem4V710 and MSU. Unplug phone. Turn it off. Wait 20 seconds. Turn it on. This is voodoo, but it's best to be safe and start clean.
Motorola Phone Tools (MPT)
Now start MPT. Create a new profile. It will ask you to plug in your phone. It is stupid. If the phone is already plugged in then UNPLUG it and PLUG it back in again. It will show "Phone Setup". If it shows a registration window for updates then click "Register later...".
The stupid MPT program will start and it will finally show a menu item for "TRANSFER FILES". Select Pictures and you're all set.
Summary
Motorola sucks and Verizon sucks. They combine unintentionally bad engineering with deliberately consumer unfriendly policies (AKA: greed) to create a user experience that is both unpleasant and expensive. Why do they have a camera when they don't even allow you to download the pictures?