   Sub DetermineFimwareVersions(ByRef Port As SerialPort,
                                         ByRef bw As System.ComponentModel.BackgroundWorker,
                                       ByRef MSP_FW_Version As UInt32,
                                       ByRef MSP_HW_Version As UInt32,
                                       ByRef DSP_FW_Version As UInt32)
        ' determine DSP and MSP versions
        Thread.Sleep(100)
        Debug.Print("DetermineFimwareVersions: enter fun 9")
        sendByteWithEcho(Port, 0, bw)
        sendByteWithEcho(Port, 9, bw)    ' DSP version
        DSP_FW_Version = GetWord(Port, bw)

        Debug.Print("DetermineFimwareVersions: received DSP_FW_Version " + CStr(DSP_FW_Version) + "  - enter fun 34")

        Thread.Sleep(100)

        sendByteWithEcho(Port, 0, bw)
        sendByteWithEcho(Port, 34, bw) ' MSP version
        MSP_HW_Version = ReadNextByte(Port, bw)
        Debug.Print("DetermineFimwareVersions: received MSP_HW_Version " + CStr(MSP_HW_Version))

        MSP_FW_Version = GetWord(Port, bw)
        Debug.Print("DetermineFimwareVersions: received MSP_FW_Version " + CStr(MSP_FW_Version))
    End Sub
