Zachary.Beesley
New member
Hello,
I'm trying to connect the features of a laptop LCD to my computer. It's got a microphone, USB camera, accelerometer, and a touchscreen. I have the display working on a custom PCB and the camera can connect straight into a USB port. Individually, I can run the microphone using the audio USB type, the touchscreen using a touchscreen USB type, and the accelerometer using RawHID (Will do something with this later). Naturally, I tried to make a custom USB type for the teensy to grab on to. I came up with the code below. It does not work (mostly). A touchscreen touch becomes a single, long press. No movement is transmitted. Can someone look over what I have?
I'm trying to connect the features of a laptop LCD to my computer. It's got a microphone, USB camera, accelerometer, and a touchscreen. I have the display working on a custom PCB and the camera can connect straight into a USB port. Individually, I can run the microphone using the audio USB type, the touchscreen using a touchscreen USB type, and the accelerometer using RawHID (Will do something with this later). Naturally, I tried to make a custom USB type for the teensy to grab on to. I came up with the code below. It does not work (mostly). A touchscreen touch becomes a single, long press. No movement is transmitted. Can someone look over what I have?
Code:
#elif defined(USB_LCD)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x04D3
#define RAWHID_USAGE_PAGE 0xFFAB // recommended: 0xFF00 to 0xFFFF
#define RAWHID_USAGE 0x0200 // recommended: 0x0100 to 0xFFFF
#define MANUFACTURER_NAME {'L','A','P','T','O ','P',' ','L','C','D'}
#define MANUFACTURER_NAME_LEN 10
#define PRODUCT_NAME {'L','C','D'}
#define PRODUCT_NAME_LEN 3
#define EP0_SIZE 64
#define NUM_ENDPOINTS 7 //5
#define NUM_INTERFACE 6 //5
#define RAWHID_INTERFACE 0 // RawHID
#define RAWHID_TX_ENDPOINT 3
#define RAWHID_TX_SIZE 64
#define RAWHID_TX_INTERVAL 1 // TODO: is this ok for 480 Mbit speed
#define RAWHID_RX_ENDPOINT 4
#define RAWHID_RX_SIZE 64
#define RAWHID_RX_INTERVAL 1 // TODO: is this ok for 480 Mbit speed
#define SEREMU_INTERFACE 1 // Serial emulation
#define SEREMU_TX_ENDPOINT 2
#define SEREMU_TX_SIZE 64
#define SEREMU_TX_INTERVAL 1 // TODO: is this ok for 480 Mbit speed
#define SEREMU_RX_ENDPOINT 2
#define SEREMU_RX_SIZE 32
#define SEREMU_RX_INTERVAL 2 // TODO: is this ok for 480 Mbit speed
#define AUDIO_INTERFACE 2 // Audio (uses 3 consecutive interfaces)
#define AUDIO_TX_ENDPOINT 5
#define AUDIO_TX_SIZE 180
#define AUDIO_RX_ENDPOINT 5
#define AUDIO_RX_SIZE 180
#define AUDIO_SYNC_ENDPOINT 6
#define MULTITOUCH_INTERFACE 5 // Touchscreen
#define MULTITOUCH_ENDPOINT 7
#define MULTITOUCH_SIZE 9
#define MULTITOUCH_FINGERS 10
#define ENDPOINT2_CONFIG ENDPOINT_RECEIVE_INTERRUPT + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT3_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT4_CONFIG ENDPOINT_RECEIVE_INTERRUPT + ENDPOINT_TRANSMIT_UNUSED
#define ENDPOINT5_CONFIG ENDPOINT_RECEIVE_ISOCHRONOUS + ENDPOINT_TRANSMIT_ISOCHRONOUS
#define ENDPOINT6_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_ISOCHRONOUS
#define ENDPOINT7_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT