USB Driver problems with Weeder Tech ModCom software

I've got an Uno connected via USB. It shows up as COM3.

The Arduino IDE (version 22) is perfectly happy talking to it. If I close the Arduino IDE and open HyperTerminal that also works without any problem.

I've programmed the Arduino to emulate a Weeder Tech thermocouple board, but Weeder Tech's software (ModCom) refuses to connect to COM3. I don't think it's a problem with my code, because the error I get from ModCom is "COM3 can not be openned" which happens before any attempts are made to talk to any devices. On a PC with a physical, non-USB COM1 I can select COM1 even though no Weeder Tech boards are connected to it. Also, I can select a serial port from a USB-Serial converter. Just not the Arduino port.

I've tried several different PCs: laptop and desktop, XP, Vista, and Win7. Same thing on all of them. I've also tried manually forcing the Arduino to COM1 on a laptop with no physical COM1 but that didn't change any symptoms. Again, if I use HyperTerminal or the Arduino IDE Serial Monitor I can talk to the board and it responds as I expect it to. It's just the ModCom software that won't see the port.

It seems pretty clear that the problem is with ModCom, but I'm asking here in case anybody else has seen this and maybe has a fix? I'm also contacting Weeder Tech, but I suspect they'll tell me it's not their problem because it's not their hardware.


Do you have a real WeederTech board? The ModCom software may be using a specific USB driver rather than the generic USB driver that the Arduino causes to be loaded. The generic driver sees the Arduino as a generic device. The specific driver may be expecting a specific vendor ID or product ID in the response package. The Arduino driver is not going to be able to respond appropriately, since it has a different vendor ID and product ID programmed into the USB chip.

Do you have a real WeederTech board? The ModCom software may be using a specific USB driver...

Weeder Tech IO boards use an RS232 serial interface, not USB. The ModCom software allows you to select a port from COM1 through COM9. We have equipment here using Weeder Tech boards on the COM1 port on the motherboard, and USB-Serial adapters on COM3 and up -- they all work.

In addition, you can select any valid COM port in ModCom, regardless of whether there are are any Weeder Tech boards connected. Even if there's nothing connected to the COM port, you can still select that COM port as long as it exists. Except the Arduino COM port; that one gives a "can not be openned" error.

I found that ModCom has no problem using the COM port of a Duemilanove so I'm pretty sure this is an Uno-specific USB issue and has nothing to do with any Arduino code. Unfortunately, in swapping the Atmega328 processor IC between the one Uno I have and a Duemilanove with no processor I've managed to brick the chip so this issue is on hold until I get the lower level stuff worked out.

I did get a reply from Weeder Tech: Maybe it doesn't support the options that ModCom uses such as: type = RS232 baud rate = 9600 bit length = 8 stop bit = 1 binary = true flow control = off DTR = disabled RTS = disabled If any of these settings are not supported, ModCom will respond with "The port can not be openned".

These port settings don't look particularly esoteric to me, so my only thought here is that perhaps one of those options is just not supported by the generic Windows USB-serial driver used by the Uno. But that stuff is waaaaaay down at the OS driver level.

I've gotten it working now. I switched over to a Duemilanove and ModCom is happy to talk to that serial port. The emulation code is doing its thing; ModCom thinks it's talking to a Weeder Tech thermocouple board but it's actually an Arduino with the McLeng thermocouple shield.

Now I've got to add some DIO emulating a second Weeder Tech board and I can slot the Arduino into our existing equipment without having to rewrite the ModCom stuff that is already in place.

I'd still like to figure out how to get an Uno to talk to ModCom! Any suggestions on tweaking the usbser driver/inf would be appreciated.