Modify PL2303 PID & VID

Following an article on hackaday I ordered this cheap USB GSM modem. Inside is a pre-assembled GSM module from BenQ (BenQ M32, command manual) with some support electronics for the SIM card holder and a PL2303 USB to serial converter chip. Unfortunately, the Chinese manufacturer decided that you should really use his "value-added software" with the modem. This software is such a piece of crap and I just wanted to have a serial port with a modem on it.

However, to make matters even more annoying, the PL2303 chip, which typically identifies itself as VID 067B and PID 2303, reports PID 0609 in this device, making it impossible to recognize this as a standard serial to usb converter.The easiest solution for this is to modify the drivers so that they identify also with that PID. In Linux this is pretty easy and as I write this PID 0609 is already associated with the pl2303 driver by default.In Windows some inf modding does the trick. Download the drivers from the Prolific website, install them and use search for the file ser2pl.inf. This will typically reside in a folder containg 4 or 5 files. You can copy this folder as one if you want to keep it as a single "driver package". Inside the inf, replace all occurences of of PID_2303 with PID_0609 and use the Device Manager to assign the driver to the modem.For me, this worked in Windows XP but not in Windows 7 64 bit. After some searching around, it seems that the PL2303 can be connected to an EEPROM chip for some customisation (just like the FTDI converter chips). Any non-standard USB PID is written in there. If you want to change it back, you need to rewrite this EEPROM. This can be done from within Windows using a tool I found on edaboard but the only prerequisite is that the device is already recognized as a PL2303 USB to Serial converter. So in my case I had to rewrite the EEPROM from within Windows XP with a modified .inf driver.

Below is a screenshot of the EEPROM writer after pressing the read button on the non-modified usb modem. Just change PID to 2303 and write everything back. You can find a copy of the tool in the attachment section under this post.