Hi,

I am still stuck with my proplem, therefore, I modified the cdc_demo.bas to be able to change the outbuffer contents:
Code:
' USB sample program for PIC18F4550 CDC serial port emulation
'  Requires PBP 2.60 or later

'  Compilation of this program requires that specific support files be
'  available in the source directory.  For detailed information, see
'  the file PBP\USB18\USB.TXT.

	Include	"cdc_desc.bas"	' Include the HID descriptors

Define  OSC     48

inbuffer	Var	Byte[15]
outbuffer	Var	Byte[15]
icnt	Var	Byte
ocnt	Var	Byte

	OSCTUNE.6 = 1		' Enable PLL for 18F87J50 family
	Pause 10

	USBInit			' Get USB going

' Wait for USB input
idleloop:

	icnt = 6		' Specify input buffer size
	USBService		' Must service USB regularly
	USBIn 3, inbuffer, icnt, idleloop

' Message received
	outbuffer[0] = inbuffer[0]
	outbuffer[1] = inbuffer[1]
	outbuffer[2] = inbuffer[2]
	outbuffer[3] = inbuffer[3] 
	outbuffer[4] = 0
	outbuffer[5] = icnt
	outbuffer[6] = 0
	outbuffer[7] = $AA
	outbuffer[8] = $BB
	outbuffer[9] = $CC
	outbuffer[10] = $DD
	outbuffer[11] = 0
	outbuffer[12] = inbuffer[0]
	outbuffer[13] = inbuffer[1]
	outbuffer[14] = inbuffer[2]

outloop:
	USBService		' Must service USB regularly
	ocnt = 14
	USBOut 3, outbuffer, ocnt, outloop

	Goto idleloop		' Wait for next buffer
I continued testing and found out:

With ocnt = 14

The first USBOut after com port open in PC test program is actually

outbuffer[0]....outbuffer[12] -> in total 13 bytes

from the second output it is always the same

outbuffer[13], outbuffer[0], outbuffer[1]...., outbuffer[12] ->in total 14 bytes


I suspect in the appended .inc and .asm files might be a definition mistake, but since I do not understand the code written there, I really need the help of an USB specialist in this Forum to overcome this problem.

To all the USB experts in this Forum, please Help.