Well, it's throwing an exception, as that's pretty clearly what the 'freaks out' is about. That exception is also being swallowed, or else the whole program would exit, but that's also kind of useless, as you don't know what the error is.

What do you mean when you say that VB won't let you call the code? That doesn't make much sense. I can understand why a device would want to be set up prior to...well, pretty much everything else, based on where you have it, but code is just code. What did you try in that sub?