By Brody Radford
DealExtreme sells a USB GPRS modem for $25.35… good value. I bought one for my UAV project. It uses the BenQ M32 GPRS module (pdf) and Prolific PL-2303 USB-TTL UART bridge (pdf).
Too bad the device’s PL-2303 USB<->UART bridge has a custom PID (0609, instead of the factory-default 2303; the VID 067B is unchanged), and the supplied software and documentation that work with it aren’t much use. To be useful I need direct access to the device.
I tried modifying the driver, but Windows (7, x86) returned an error to the effect that it wasn’t going to work on my system. But there’s always another way, so… out with the toolkit. The device has an EEPROM which stores custom settings for the PL-2303, so disconnecting it would solve my problem, with the added benefit that if I reinstall Windows or plug the device into another machine it will work with standard drivers.
4) De-solder pin 5, shown below. I added a little solder for heat transfer, and pulled the leg up with tweezers.
DealExtreme sells a USB GPRS modem for $25.35… good value. I bought one for my UAV project. It uses the BenQ M32 GPRS module (pdf) and Prolific PL-2303 USB-TTL UART bridge (pdf).
Too bad the device’s PL-2303 USB<->UART bridge has a custom PID (0609, instead of the factory-default 2303; the VID 067B is unchanged), and the supplied software and documentation that work with it aren’t much use. To be useful I need direct access to the device.
I tried modifying the driver, but Windows (7, x86) returned an error to the effect that it wasn’t going to work on my system. But there’s always another way, so… out with the toolkit. The device has an EEPROM which stores custom settings for the PL-2303, so disconnecting it would solve my problem, with the added benefit that if I reinstall Windows or plug the device into another machine it will work with standard drivers.
Hacking the GPRS modem
Time: 5 minutes
Tools:
Tools:
- Small Philips screwdriver
- Soldering iron
- Solder
- A sharp pick or tweezers
- Optional: solder wick to remove any stubborn solder
1) Toss out the supplied user guide and CD.
2) Open the case (three small Philips screws).
3) Locate the PL-2303′s external 24C02 EEPROM:
2) Open the case (three small Philips screws).
3) Locate the PL-2303′s external 24C02 EEPROM:
4) De-solder pin 5, shown below. I added a little solder for heat transfer, and pulled the leg up with tweezers.
5) Download and install the PL-2303 driver from Prolific.
6) Plug in the device, wait for drivers to install.
7) Open a terminal program with the new COM port (check device manager if your terminal doesn’t detect it) at 115200bps (Update: supposedly the module has autobaud rate detection from 1200 — 115200bps, so others may also work… I can’t remember a specific reason for using 115200, so just try what suits) with other settings left to their defaults.]
8) Start typing AT commands to send SMS messages etc. Look here (PDF) for the command set.
7) Open a terminal program with the new COM port (check device manager if your terminal doesn’t detect it) at 115200bps (Update: supposedly the module has autobaud rate detection from 1200 — 115200bps, so others may also work… I can’t remember a specific reason for using 115200, so just try what suits) with other settings left to their defaults.]
8) Start typing AT commands to send SMS messages etc. Look here (PDF) for the command set.
Connecting to a microcontroller
To do this you’ll need to isolate/disable the PL-2303. Here are some ideas:
- Remove the chip and solder to the TX and RX pads. Careful not to tear up the pads (flood each side with solder and lift, mop up with wick). This is the easiest in terms of soldering, but you can’t go back to USB so easily.
- Lift the TXD pin (1) and solder wire to the pad. Solder directly to the RX pin.
- Solder to the TX and RX pins and tie RESET_N to GND to tri-state the TX pin.
Tips
- Don’t forget to connect GND between the two systems!
- The M32 module TX & RX pins appear to be 3.3V logic, and may or may not be 5V tolerant… Be careful! If your microcontroller has 5V I/O, you’ll need to run it at 3.3V or convert logic levels.