This code is a good start for writing your own code for communicating with any Excitron controller. Remember that the Excitron controller does not need any software, other than a dumb terminal program, unless you wish to automate some features and controls. You are on your own concerning how and if you write your own serial program, please review the Controller Manual for help. This code issues a serial command, then waits for ">", which is the command completion character sent by the Excitron controller. This came from a customer who quickly and successfully created his own serial port program for automation. You should delete or ignore coded that checks for any handshaking from the Excitron controller, since the Excitron Controller ignores handshaking. 'Specifying COM1 settings, that is my port to the stepper, can be any other port: MSComm2.Settings = "57600,N,8,1" MSComm2.CommPort = 1 MSComm2.InputLen = 2 MSComm2.DTREnable = True MSComm2.Handshaking = 0 MSComm2.RThreshold = 1 MSComm2.SThreshold = 1 MSComm2.RTSEnable = True Echo2 = False MSComm2.PortOpen = True 'Commands C, G, W, can be send by any event, in my case it is by button click: Private Sub Command4_Click() Do '------------------------------- MSComm2.Output = "C" '------------------------------- 'Buffer checking routine '------------------------------- Dim Check, Counter Check = False Do Do While Check = False Counter = Text6.Text If Counter = 2 Then Check = True Exit Do End If '-------------------------------- DELAY = DateAdd("s", 0.001, Now) Do Until Now > DELAY DoEvents Loop '------------------------------- Loop '------------------------------- Loop Until Check = True '------------------------------- MSComm2.Output = "G" '------------------------------- 'Buffer checking routine '------------------------------- Dim Check, Counter Check = False Do Do While Check = False Counter = Text6.Text If Counter = 2 Then Check = True Exit Do End If '-------------------------------- DELAY = DateAdd("s", 0.001, Now) Do Until Now > DELAY DoEvents Loop '------------------------------- Loop '------------------------------- Loop Until Check = True '------------------------------- MSComm2.Output = "W" '------------------------------- End Sub Sub MSComm2_OnComm() ' Select Case MSComm2.CommEvent ' Handle each event or error by placing ' code below each case statement. ' Errors ' Case comEventBreak ' A Break was received. ' Case comEventCDTO ' CD (RLSD) Timeout. ' Case comEventCTSTO ' CTS Timeout. ' Case comEventDSRTO ' DSR Timeout. ' Case comEventFrame ' Framing Error. ' Case comEventOverrun ' Data Lost. ' Case comEventRxOver ' Receive buffer overflow. ' Case comEventRxParity ' Parity Error. ' Case comEventTxFull ' Transmit buffer full. ' Case comEventDCB ' Unexpected error retrieving DCB] ' Events ' Case comEvCD ' Change in the CD line. ' Case comEvCTS ' Change in the CTS line. ' Case comEvDSR ' Change in the DSR line. ' Case comEvRing ' Change in the Ring Indicator. ' Case comEvReceive ' Received RThreshold # of chars. '******************************************************************* Dim buffer2 As String buffer2 = buffer2 & MSComm2.Input ' Call HandleInput2(buffer2) SearchString = buffer2 SearchChar = ">" ' Search for ">". MyPos = InStr(1, SearchString, SearchChar, 0) '************************************************************ ' Case comEvSend ' There are SThreshold number of ' characters in the transmit buffer. ' Case comEvEOF ' An EOF character was found in the ' input stream. ' End Select 'End Sub ------------------------------------------------------------------------------------------------------