- Had to add the iSerialNumber parameter to the AVR USB descriptor - Removed a faulty pack command for avr-gcc that is not requiredsimple
@@ -27,8 +27,8 @@ include( AddFileDependencies ) | |||
#| "avr" # Teensy++ 1.0 | |||
#| "avr" # Teensy++ 2.0 | |||
#| "arm" # Teensy 3.0 | |||
set( COMPILER_FAMILY "arm" ) | |||
#set( COMPILER_FAMILY "avr" ) | |||
#set( COMPILER_FAMILY "arm" ) | |||
set( COMPILER_FAMILY "avr" ) | |||
message( STATUS "Compiler Family:" ) | |||
message( "${COMPILER_FAMILY}" ) |
@@ -0,0 +1,45 @@ | |||
/* Copyright (C) 2013 by Jacob Alexander | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||
* of this software and associated documentation files (the "Software"), to deal | |||
* in the Software without restriction, including without limitation the rights | |||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
* copies of the Software, and to permit persons to whom the Software is | |||
* furnished to do so, subject to the following conditions: | |||
* | |||
* The above copyright notice and this permission notice shall be included in | |||
* all copies or substantial portions of the Software. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
* THE SOFTWARE. | |||
*/ | |||
#ifndef __buildvars_h | |||
#define __buildvars_h | |||
// ----- Includes ----- | |||
// ----- Defines ----- | |||
// You can change these to give your code its own name. | |||
#define STR_MANUFACTURER L"@MANUFACTURER@" | |||
#define STR_PRODUCT L"Keyboard - @ScanModule@ @MacroModule@ @USBModule@ @DebugModule@" | |||
#define STR_SERIAL L"@GitLastCommitDate@" | |||
// Mac OS-X and Linux automatically load the correct drivers. On | |||
// Windows, even though the driver is supplied by Microsoft, an | |||
// INF file is needed to load the driver. These numbers need to | |||
// match the INF file. | |||
#define VENDOR_ID @VENDOR_ID@ | |||
#define PRODUCT_ID @PRODUCT_ID@ | |||
#endif | |||
@@ -23,10 +23,6 @@ | |||
#define DEVICE_CLASS 0xEF | |||
#define DEVICE_SUBCLASS 0x02 | |||
#define DEVICE_PROTOCOL 0x01 | |||
#define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'} | |||
#define MANUFACTURER_NAME_LEN 11 | |||
#define PRODUCT_NAME {'S','e','r','i','a','l','/','K','e','y','b','o','a','r','d','/','M','o','u','s','e','/','J','o','y','s','t','i','c','k'} | |||
#define PRODUCT_NAME_LEN 30 | |||
#define EP0_SIZE 64 | |||
#define NUM_ENDPOINTS 15 | |||
#define NUM_INTERFACE 5 |
@@ -94,7 +94,7 @@ static const uint8_t PROGMEM device_descriptor[] = { | |||
0x00, 0x01, // bcdDevice | |||
1, // iManufacturer | |||
2, // iProduct | |||
0, // iSerialNumber | |||
3, // iSerialNumber | |||
1 // bNumConfigurations | |||
}; | |||
@@ -239,6 +239,11 @@ static const struct usb_string_descriptor_struct PROGMEM string2 = { | |||
3, | |||
STR_PRODUCT | |||
}; | |||
static const struct usb_string_descriptor_struct PROGMEM string3 = { | |||
sizeof(STR_SERIAL), | |||
3, | |||
STR_SERIAL | |||
}; | |||
// This table defines which descriptor data is sent for each specific | |||
// request from the host (in wValue and wIndex). | |||
@@ -256,7 +261,8 @@ static const struct descriptor_list_struct { | |||
{0x2100, DEBUG_INTERFACE, config1_descriptor+DEBUG_HID_DESC_OFFSET, 9}, | |||
{0x0300, 0x0000, (const uint8_t *)&string0, 4}, | |||
{0x0301, 0x0409, (const uint8_t *)&string1, sizeof(STR_MANUFACTURER)}, | |||
{0x0302, 0x0409, (const uint8_t *)&string2, sizeof(STR_PRODUCT)} | |||
{0x0302, 0x0409, (const uint8_t *)&string2, sizeof(STR_PRODUCT)}, | |||
{0x0303, 0x0409, (const uint8_t *)&string3, sizeof(STR_SERIAL)} | |||
}; | |||
#define NUM_DESC_LIST (sizeof(descriptor_list)/sizeof(struct descriptor_list_struct)) | |||
@@ -697,4 +703,3 @@ ISR(USB_COM_vect) | |||
UECONX = (1<<STALLRQ) | (1<<EPEN); // stall | |||
} | |||
@@ -87,3 +87,4 @@ void usb_debug_flush_output(void); // immediately transmit any buffered output | |||
#define CDC_SET_CONTROL_LINE_STATE 0x22 | |||
#endif | |||
#endif | |||
@@ -72,7 +72,7 @@ set( WARN "-Wall -Wstrict-prototypes" ) | |||
#| Tuning Options | |||
#| -f...: tuning, see GCC manual and avr-libc documentation | |||
#| NOTE: -fshort-wchar is specified to allow USB strings be passed conveniently | |||
set( TUNING "-funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -fshort-wchar" ) | |||
set( TUNING "-funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums" ) | |||
#| Optimization level, can be [0, 1, 2, 3, s]. |
@@ -20,7 +20,7 @@ | |||
#| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones | |||
##| Deals with acquiring the keypress information and turning it into a key index | |||
set( ScanModule "MBC-55X" ) | |||
set( ScanModule "FACOM6684" ) | |||
##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code | |||
set( MacroModule "buffer" ) |