Re: Special notice: Heavyweather / USB Serial adapters, Bad Combo!
- Just a couple observations.
1) Heavyweather is establishing the handshaking, baud rate, when the
port is opened. It seems to be communicating at 2400 baud. It is
placing a heavy demand on the drivers by continually placing a high
demand on the USB/serial driver architecture by calling Purge TX,
Purge TX, and Set comm. timeouts per every character sent. The only
other interesting observation I have made is that they are placing a
5 millisecond timeout on character writes. The low-timeout value
could be causing some type of internal write character cancel
operation that is faulting at some level. A 5 millisecond timeout is
just asking for trouble. If we could hack the binary of heavyweather
and change that one timeout, it might have an impact. I am not really
in to hacking .exes so that will have to wait. If you want to listen
in on the serial communications, download a free program
called "Portmon" from sys internals.
2) Although the Heavyweather program may be poorly written, and even
though some USB driver implementations may be poorly implemented, I
would suggest that there is probably some fundemental problem with
the entire USB/Serial implementation in the operating system. It is
my opinion that this flaw just happens to be exposed within a few
hours by Heavyweather. I have tested my particular USB/Serial adapter
working with other types of serial equipment and have been able to
run for days at a time without fault.
Another reason that I am suggesting that this is a Microsoft issue is
that we are using a mixture of operating systems, 2000, XP home and
Pro, and possibily others, and also a variety of adapters. What is
common? The USB/Serial driver architecture. We might have common
chipsets, that is yet to be determined.
Also, it seems obvious that in order for these "restarts" to occur,
the flawed code is most defintely running at the Kernel level. If
this were any type of application layer bug, it could not reboot the
machine. Since the errors are not occurring when using real serial
ports, the serial.sys driver is properly dealing with whatever the
It is possbile that the vendors of adapters that have a common chip
set are also running some common driver code (maybe from Microsoft)
but I am doubtful of this. Looking over the MS knowledgebase, there
have been other issues related to "restarts", the source of the
problems were tracked back to usbhub.sys.
Unless the theory of the type of chipset being used pans out, I
suggest this is really a Microsoft problem that happens to be exposed
quickly (within a day) by the Heavyweather application behavior.
If you look over litany of complaints at the following site, it is
surprising that the USB implementation works at all.
--- In firstname.lastname@example.org, "jjantti2"
> --- In email@example.com, "William Burns"
> <billb73@c...> wrote:
> > Interesting.
> > I have a 2310 and I am running with a Serial to USB converter from
> > IOConcepts.it has been operational since August and I have not
> > single problem with HeavyWeather causing the machine to reboot oris
> > lock up..any chance you down-loaded a virus with HeavyWeather or
> > it only a bad combination with certain weather stations ??that
> As far as file downloads are concerned, no virus is likely to exist,
> otherwise it would have affected a wider range of weather stations
> too, not just the 23xx.
> I have a theory about the problem, but I have no way of testing it.
> The theory is that 2 out of 3 USB to RS232 adapters use chipsets
> are in such a way restricted that they only operate without problemsbuffer
> when used with standard serial devices like modems and the FIFO
> implemented in all chipsets is used to speed up data transfers fromcommunication
> the attached device.
> Now, we all know that HW uses a non-standard methods of
> with the weather station. The possibilities of a crash is nowdivided
> into four primary possibilities:poorly
> 1) Communication with non-standard methods causes the chipset on the
> adapter go bananas, eventually locking up or BSODing the machine,
> causing a reboot.
> 2) The adapter driver is not written to bypass all commands, being
> they standard or not, to the serial interface. If the driver is
> written, it may try to do some kind of operations that can cause abuffer
> lockup or BSOD crash if doesn't know how to handle non-standard
> 3) The FIFO buffer is not filled to the point that an automatic
> flush would occur and since HeavyWeather is likely not to command aCOM
> buffer flush, it causes the data to become corrupt or causes a
> synchronization error with the weather station which causes an
> eventual lockup or BSOD.
> 4) The COM Port handshake setting may need adjusting. Try using
> Hardware (RTS/CTS) or software (Xon/Xoff) methods, or disable it (if
> not disabled already)
> By default, Windows 2000 and XP sets all COM port FIFO values, being
> them logical of physical COM ports, to full. Try lowering the FIFO
> value to a minimum (or better yet, disable it, if possible) on the
> port you use with HeavyWeather and see if that helps. You may eventry
> changing both FIFO and handshake settings to see if there's anychange
> in operation. Both settings are changed from the Device Manager onout
> Windows 2000 and XP.
> It is possible that William's adapter is so well built, that it can
> bypass any communication to the serial interface without crashing.
> There are many different makes and models of USB to RS232 adapters
> there. Not all of them are trash, as seen on William's case. Someone
> should make a list of the good and the bad adapters.
> Best regards,