Well,

after burning my eyes out until now trying to get this thing working i'm just about to give up !!!!

I made some small changes to my main code and tryed many descriptors and configurations.
All descriptors in this forum, or dont compile, or are not accepted by the PC, etc.

I was able to modify some so that they would compile and accept by the PC as keyboard but i got strange results...

With the same main code, some descriptors jam my PC keyboard inputs like one of the keys got stucked ( mostly control key or Alt Gr ). Disconnecting the circuit dos not solve...only a restart.
I also noticed that if i changed the value from "usage minimum" retlw 0x19/retlw 0xE0 to retlw 0x19/retlw 0x04 i stopped getting the key stucked simptom.
Weird is that most keyboard descriptor examples use E0 value

Anyway...

With the 04 value, when turning the circuit on i get a group of characters non stop "cdefh".
A second descriptor with also the 04 value sends out "CDEH37W*" non stop.

They both send characters even without any button being pressed...and with button pressed the output has the same characters.

Again, here are both main code and descriptor

Code:
'****************************************************************
'*  Name    : HID_USB_Keypad.BAS                                *
'*  Author  : Peter MacLeod                                     *
'*  Date    : 01/30/2011                                        *
'*  Version : 1.01                                              *
'*  Notes   :                                                   *
'****************************************************************

'@ CONFIG PLLDIV = 12		;1=4MHz, 2=8MHz, 3=12MHz, 4=16MHz, 5=20MHz, 6=24MHz, 10=40MHz, 12=48MHz
'@ CONFIG FOSC = ECIO_EC		;XT_XT, XTPLL_XT, HS, HSPLL_HS, ECIO_EC

@   __CONFIG   _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
@   __CONFIG   _CONFIG1H, _FOSC_HSPLL_HS_1H
'@ __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H
'@ __CONFIG    _CONFIG3H, _PBADEN_OFF_3H & _MCLRE_OFF_3H 

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

DEFINE OSC 48

INCLUDE "KYPD_DESC.pbp"
'include "KBDDESC.pbp"
'include "DESCUSBProject.bas"
'include "KBDDESCMOJA.bas"
   
'DEFINE LOADER_USED 1
'DEFINE RESET_ORG        1100h
'DEFINE INTERRUPT_ORG    1108h
 
'ASM
'INT_LIST  macro		; IntSource,       Label,       Type,  ResetFlag?
'        INT_Handler   USB_INT,  _SERVICE_USB,       ASM,  yes
'        ;INT_Handler   RBC_INT,  _SERVICE_KYPD,      PBP,  yes
'    endm
'    INT_CREATE		; Creates the interrupt processor
'ENDASM

'-------------------------------------------------------------------------------
' System Settings
'-------------------------------------------------------------------------------
i						VAR BYTE
BufferOut				Var Byte[8] 

ADCON1 = 15				' Set all I/Os to Digital
INTCON2.7 = 1			' Disable PortB Pullups         
CMCON = 7				' Disable Comparators
'-------------------------------------------------------------------------------
' Keypad Settings
'-------------------------------------------------------------------------------
TRISB = %01111111       'Set PORTB as inputs for keypad

Keypad_Debounce			CON 60
KeyPress                   VAR BYTE
KeyPress_Old            VAR BYTE

Keypad_Prev             VAR PORTB.0
Keypad_Next             VAR PORTB.1
Keypad_Play             VAR PORTB.2
Keypad_Stop             VAR PORTB.3
Keypad_Eject            VAR PORTB.4

Keypad_Mute             VAR PORTB.5
Keypad_VolUp            VAR PORTB.6
led                             VAR PORTB.7

Keypress = 0
'KeyPress_Old = 0
'-------------------------------------------------------------------------------
'START USB AND INTERRUPTS
'-------------------------------------------------------------------------------
PAUSE 500              'TIME TO SETTLE
USBINIT                'INITIALIZE USB
USBSERVICE             'SERVICE USB
'UIE = $7F              'ENABLE USB INTERRUPTS
'UEIE = $9F             'ENABLE USB ERROR INTERRUPTS
'@ INT_ENABLE  USB_INT
;@ INT_ENABLE  RBC_INT
'-------------------------------------------------------------------------------

	BufferOut[0] = 0
	BufferOut[1] = 0
	BufferOut[2] = 0
        BufferOut[3] = 0
        BufferOut[4] = 0
	BufferOut[5] = 0
	BufferOut[6] = 0
        BufferOut[7] = 0
    
    low led
    pause 100
    high led
    pause 2500
    low led
    pause 100

'-------------------------------------------------------------------------------
' Main Subroutine
'-------------------------------------------------------------------------------
Main: 

if Keypad_Prev=1 then

	BufferOut[0] = 0
	BufferOut[1] = 0
	BufferOut[2] = $15
    BufferOut[3] = 0
    
else

	BufferOut[0] = 0
	BufferOut[1] = 0
	BufferOut[2] = 0
    BufferOut[3] = 0

endif

gosub SERVICE_USB
GOSUB DoUSBOut

GOTO Main  
'-------------------------------------------------------------------------------
' Transmit data on the USB bus
'-------------------------------------------------------------------------------
DoUSBOut:
    USBService                         
    USBOut 1, BufferOut, 8, DoUSBOut
    RETURN
'-------------------------------------------------------------------------------
SERVICE_USB:
    USBSERVICE
'@ INT_RETURN
return
Code:
'****************************************************************
'*  Name    : KYPD_DESC.BAS                                     *
'*  Author  : Peter MacLeod                                     *
'*  Date    : 25/07/2014                                        *
'*  Version : 1.01                                              *
'*  Notes   : USB HID CNC Keypad Descriptor                     *
'****************************************************************

'USBMEMORYADDRESS Con	$400	' USB RAM starts here (set in device header file)
USBMEMORYSIZE	Con	256	' USB RAM size in bytes
USBReservedMemory Var Byte[USBMEMORYSIZE] USBMEMORYADDRESS	' Reserve memory used by USB assembler code

    Goto	kypd_desc_end	' Skip over all of the USB assembler code
    Asm

#define USB_EP0_BUFF_SIZE	8	; 8, 16, 32, or 64
#define USB_MAX_NUM_INT		1
#define USB_MAX_EP_NUMBER	1
#define NUM_CONFIGURATIONS	1
#define NUM_INTERFACES		1

#define UCFG_VAL	USB_PULLUP_ENABLE|USB_INTERNAL_TRANSCEIVER|USB_FULL_SPEED|USB_PING_PONG__NO_PING_PONG

#define USB_POLLING
#define HID_INTF_ID		    0x00
#define HID_EP			    1
#define HID_INT_OUT_EP_SIZE	1
#define HID_INT_IN_EP_SIZE	1
#define HID_NUM_OF_DSC		1

    include	"usb_hid.asm"	; Include rest of USB files, starting with HID class code

DeviceDescriptor
	retlw	(EndDeviceDescriptor-DeviceDescriptor)/2     ; Length of this descriptor
	retlw	USB_DESCRIPTOR_DEVICE	           ; DEVICE descriptor type
	retlw	0x10	                           ; USB Spec Release Number (low)
	retlw	0x01		                       ; (high)
	retlw	0x00		                       ; Class Code
	retlw	0x00		                       ; Subclass code
	retlw	0x00		                       ; Protocol code
	retlw	USB_EP0_BUFF_SIZE                  ; Max packet size for EP0
	retlw	0x81		                       ; Vendor ID  (low byte)
	retlw	0x17		                       ;            (high byte)
	retlw	0xD1		                       ; Product ID (low byte)
	retlw	0x07		                       ;            (high byte)
	;retlw	0x6F		                       ; Product ID (low byte)
	;retlw	0x09		                       ;            (high byte)
	retlw	0x01		                       ; Device release number (low)
	retlw	0x00		                       ; (high)
	retlw	0x01		                       ; Manufacturer string index
	retlw	0x02		                       ; Product string index
	retlw	0x00		                       ; Device serial number string index
	retlw	NUM_CONFIGURATIONS                 ; Number of possible configurations
EndDeviceDescriptor

USB_CD_Ptr
Configs
	db	low Config1, high Config1
	db	upper Config1, 0

Config1
	retlw	(Interface1-Config1)/2               ; Size of this descriptor in bytes
	retlw	USB_DESCRIPTOR_CONFIGURATION         ; CONFIGURATION descriptor type
Config1Len
	retlw	low ((EndConfig1 - Config1)/2)       ; Length of this configuration (low)
	retlw	high ((EndConfig1 - Config1)/2)      ; (high)
	retlw	NUM_INTERFACES                       ; Number of interfaces in this cfg
	retlw	0x01                                 ; Index value of this configuration
	retlw	0x00                                 ; Configuration string index
	retlw	_DEFAULT|_SELF	                     ; Attributes - bus powered
	retlw	0x32                                 ; Max power consumption (2X mA)
Interface1
	retlw	(HIDDescriptor1-Interface1)/2        ; Size of this descriptor in bytes
	retlw	USB_DESCRIPTOR_INTERFACE             ; INTERFACE descriptor type
	retlw	0x00                                 ; Interface Number
	retlw	0x00                                 ; Alternate Setting Number
	retlw	0x01                                 ; Number of endpoints in this interface
	retlw	HID_INTF                             ; Class code
	retlw	BOOT_INTF_SUBCLASS                   ; Subclass code
	retlw	0x00                                 ; Protocol code
	retlw	0x00                                 ; Interface string index
HIDDescriptor1
	retlw	(Endpoint1In-HIDDescriptor1)/2       ; Size of this descriptor in bytes
	retlw	DSC_HID                              ; HID descriptor type
	retlw	0x11                                 ; HID Spec Release Number in BCD format - 1.11 (low byte)
	retlw	0x01                                 ; (high byte)
	retlw	0x00                                 ; Country Code (0x00 for Not supported)
	retlw	HID_NUM_OF_DSC                       ; Number of class descriptors
	retlw	DSC_RPT                              ; Report descriptor type (HID)
ReportDescriptor1Len
	retlw	low ((EndReportDescriptor1-ReportDescriptor1)/2)
	retlw	high ((EndReportDescriptor1-ReportDescriptor1)/2)
Endpoint1In
	retlw	(EndConfig1-Endpoint1In)/2           ; length of descriptor
	retlw	USB_DESCRIPTOR_ENDPOINT              ; ENDPOINT descriptor type
	retlw	HID_EP|_EP_IN                        ; EP1, In
	retlw	_INT		                         ; Interrupt
	retlw	low (HID_INT_IN_EP_SIZE)             ; This should be the size of the endpoint buffer
	retlw	high (HID_INT_IN_EP_SIZE)
	retlw	0x0A                                 ; polling interval (10ms)
EndConfig1


    ENDASM
    ASM


ReportDescriptor1

    retlw   0x05
	retlw   0x01    ; usage page (generic desktop)
	retlw   0x09
	retlw   0x06    ; usage (keyboard)
	retlw   0xA1
	retlw   0x01    ; collection (application)
	retlw   0x05
	retlw   0x07    ;   usage (Key codes)
	retlw   0x19
	retlw   0x04    ;   usage minimum (224)   e0   04
	retlw   0x29
	retlw   0xE7    ;   usage minimum (231)
	retlw   0x15
	retlw   0x00    ;     logical minimum (0)
	retlw   0x25
	retlw   0x01    ;     logical maximum (1)
	retlw   0x75
	retlw   0x01    ;     report size (1)
	retlw   0x95
	retlw   0x08    ;     report count (8)
	retlw   0x81
	retlw   0x02    ;     Input (data,variable,absolute)
	retlw   0x95
	retlw   0x01    ;     report count (1)     
	retlw   0x75
	retlw   0x08    ;     report size (8)
	retlw   0x81
	retlw   0x01    ;     Input (constant)
	retlw   0x95
	retlw   0x05    ;     report count (5)
	retlw   0x75
	retlw   0x01    ;     report size (1)
	retlw   0x05
	retlw   0x08    ;     usage page (page# for leds)
	retlw   0x19
	retlw   0x01    ;     Usage minimum (1)
	retlw   0x29
	retlw   0x05    ;     Usage maximum (5)
	retlw   0x91
	retlw   0x02    ;     output (data,variable,absolute)
	retlw   0x95
	retlw   0x01    ;     report count (1)
	retlw   0x75
	retlw   0x03    ;     report size (3)
	retlw   0x91
	retlw   0x01    ;     output (constant)
	retlw   0x95
	retlw   0x06    ;     report count (6)
	retlw   0x75
	retlw   0x08    ;     report size (8)
	retlw   0x15
	retlw   0x00    ;     logical minimum (0)
	retlw   0x25
	retlw   0x65    ;     logical maximum (101)
	retlw   0x05
	retlw   0x07    ;     usage page (keycodes)
	retlw   0x19
	retlw   0x00    ;     usage minimum (0)
	retlw   0x29
	retlw   0x65    ;     usage maximum (101)
	retlw   0x81
	retlw   0x00    ;     input (data, array)	
	retlw   0xC0    ;   end collection


EndReportDescriptor1

USB_SD_Ptr
Strings
	db	low String0, high String0
	db	upper String0, 0
	db	low String1, high String1
	db	upper String1, 0
	db	low String2, high String2
	db	upper String2, 0

String0
	retlw   (String1-String0)/2	       ; Size of this descriptor in bytes
	retlw   USB_DESCRIPTOR_STRING      ; STRING descriptor type
	retlw   0x09                       ; Language ID as defined by MS - 0x0409 (low byte)
	retlw   0x04                       ; (high byte)

String1
	retlw	(String2-String1)/2
	retlw   USB_DESCRIPTOR_STRING
	retlw   'R'
	retlw   0x00
	retlw   'J'
	retlw   0x00
	retlw   'C'
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   'E'
	retlw   0x00
	retlw   'L'
	retlw   0x00
	retlw   'E'
	retlw   0x00
	retlw   'C'
	retlw   0x00
	retlw   'T'
	retlw   0x00
	retlw   'R'
	retlw   0x00
	retlw   'O'
	retlw   0x00
	retlw   'N'
	retlw   0x00
	retlw   'I'
	retlw   0x00
	retlw   'C'
	retlw   0x00

String2
	retlw	(EndStringDescriptors-String2)/2
	retlw	USB_DESCRIPTOR_STRING
	retlw   'H'
	retlw   0x00
	retlw   'I'
	retlw   0x00
	retlw   'D'
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   'K'
	retlw   0x00
	retlw   'E'
	retlw   0x00
	retlw   'Y'
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   'T'
	retlw   0x00
	retlw   'E'
	retlw   0x00
	retlw   'S'
	retlw   0x00
	retlw   'T'
	retlw   0x00
	retlw   'E'
	retlw   0x00
	retlw   'R'
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   ' '
	retlw   0x00
	retlw   '0'
	retlw   0x00
	retlw   '1'
	retlw   0x00
EndStringDescriptors

	Endasm

kypd_desc_end			' End of skipped over USB assembler code
Although these are original from Peter MacLeod, they have suffered many changes in an effort of getting things to start working.