Saturday, July 19, 2008

1Wire Serial Adapter Hates EdgePort

Since I've had the 1Wire network running, I've encountered a few fatal system errors that caused an immediate reboot of my HA server. Digging in the Event Viewer, I found messages like this:

Error code 00000044, parameter1 89422548, parameter2 00000d63, parameter3 00000000, parameter4 00000000.

I Googled a bit and found that error code corresponds to a memory problem or a driver issue. I stumbled upon a thread that told about how to read minidump files created by crashes. The dump file pointed to the EdgePort and the most likely culprit was a Java application. That points to the 1Wire stuff since its OWAPI is based on Java and the DS9097U adapter is plugged into the EdgePort.

Rather than take the easy way and move the 1Wire to the motherboard's built in serial port, I decided to write a VB.net app to talk to 1Wire adapter using the TMEX API. This way, I could avoid using all of the convoluted Java/J# crap. The problem with this path is there wasn't a VB example to get the temps, but there was a Delphi example. Ugh. Finally, I managed to cobble the Delphi and VB sample code into one VB.net program to connect to the 1Wire network and read the temperatures. About 7 hours after deploying that, I got another fatal pointing to the EdgePort. Guess it's not the Java part of the 1Wire after all.

So I connected the DS9097U to the onboard serial port and moved the TC+ to the EdgePort. It's been 12 hours without a fatal reboot. Hopefully, this solves the problem.

Update: It's been over 3 days since I moved the DS9097U and there have been no crashes since. Yay!

No comments:

Post a Comment