Hi!
I have a Weller WHP-3000 preheater. It has an d-sub 9-pin serial port on it. I tore the preheater apart and the d-sub is connected to a TTL-to-RS232 MAX232 chip. I've verified the voltages coming out are equivalent to RS232, not TTL.
These pre-heaters are meant to be hooked up and controlled via a rework station. However, I don't have the rework station (like the WHA-3000). I'd like to figure out how to control it directly via my PC. I have a USB to serial adapter (Prolific). I noticed Weller sells an adapter that lets you control these preheaters by some of their soldering stations (the WX1 or WX2). Here's an adapter:
http://media-weller.de/weller/data/images/big/3655800558764712Adapter_WHP_WFE.jpgThe adapter shows me only pins 1, 2, 3, 4, 6 and 7 are being used. I hooked the preheater up to my Prolific USB-to-RS232 serial adapter. I set a terminal program to 9600 baud, 8n1 for the settings. There's a program that Weller provides to control the preheater but it seems to only work if you have the rework station as well. I opened it with a hex editor and I can see various things, for example, 9600 baud. I can also see what I think are commands that get sent to the preheater. For example, I see stuff like: HP-Infos vollständig
If I type this into the terminal program, with a 0x0A at the end, I get responses. I added the -'s to make it easier to read. They're all hex (minus the stuff in the parenthesis.)
Sent: 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 00 00 00 00 80 00 00
Sent: 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 00 00 80 80 80 00 00 80 00
Sent: 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 00 00 80 80 00 00 00
Sent: 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 80 00 00 00 00 00 00 00
Sent: 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 00 00 80 80 00 00 00
Sent three times, 48 50 2D 49 6E 66 6F 73 - 20 76 6F 6C 6C 73 74 E4 - 6E 64 69 67 0A (HP-Infos vollständig)
Recv: 80 00 80 00 00 00 80 00 - 80 00 00 00 00 00 00 80 00
There's other things I found in the exe with the hex editor, like @!.WHP3000-Temp-1 or @!.WHP3000-Temp-2, @!.WHP3000-Temp-3 (there's three IR heating elements). There's also @!.WHP3000-Set. I tried sending them, the only way I get any response is if I send the first three bytes before the @! stuff as well, like this
Sent: 0x00 0x00 0x14 0x40 0x21 0x0E 0x57 0x48 0x50 0x33 0x30 0x30 0x30 0x2D 0x54 0x65 0x6D 0x70 0x2D 0x33 (...@!.WHP3000-Temp-3)
Recv: 80 00 80 00 00 00 00 00 - 00 00 00 80 00
Sent: (again)
Recv: 80 80 00 80 00 00 00 00 - 00 00 00 00 80 80 00
Sent: (again)
Recv: 80 00 80 00 00 00 00 00 - 00 00 00 80 00
Sent: (again)
Recv: 80 00 80 00 00 00 00 00 - 00 00 00 80 00
I've tried sending the Set command but I can't get anything to change on the preheater. From reading the manual, when the preheater is being controlled by the computer program or the actual rework station, the manual controls are locked. I was thinking maybe a couple things could be going on here....
Maybe the reason I'm getting different responses from sending the same command is because my serial wire isn't right. It's about 10 feet long. I have pin 1 going to 1, pin 2 to 2, 3 to 3, etc. I was thinking maybe there's some interference or something on the line. Also, maybe I need to have some pins switched? Like 2 and 3 switched around? Another thought was maybe there's a command I need to send to put this into "remote operation" mode and until I do that, the unit is sending back commands that are essentally saying, hey, you're not in remote mode. It's weird though, EVERY response includes either a 0x00 or an 0x80. Does anyone have any suggestions on how I can proceed in order to figure out how to communicate with this preheater via a terminal program? I would REALLY appreciate any help. I'm willing to provide any information you request.
BTW - The circuit board has a PIC that I think controls the serial "language" or "protocol". It's a PIC16F876. I don't think I can safely extract the code from it without ruining the chip.
Thanks.