I just turned on the such option strict and discovered issues I wasn't use to deal with such as late binding. Indeed the following lines create a late binding error
Dim available_ports As Array
available_ports = SerialPort.GetPortNames()
If available_ports(0).ToString <> "" Then...
Dim available_ports As String
This is because the method GetPortNames() returns a String Array. The class Array does not really match, and String is not an Array...
Dim available_ports As String()