diff --git a/keyboard/akb96/Makefile_lite b/keyboard/akb96/Makefile_lite
new file mode 100644
index 00000000..11c4a353
--- /dev/null
+++ b/keyboard/akb96/Makefile_lite
@@ -0,0 +1,160 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+# Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+# (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+# have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+# have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+# (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+# (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+# with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+# bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Target file name (without extension).
+TARGET = akb96_lite_lufa
+
+# Directory common source filess exist
+TOP_DIR = ../..
+
+# Directory keyboard dependent files exist
+TARGET_DIR = .
+
+# project specific files
+SRC = keymap_common.c \
+ matrix.c \
+ led.c \
+ backlight.c \
+ ledmap.c
+
+ifdef KEYMAP
+ SRC := keymap_$(KEYMAP).c $(SRC)
+else
+ SRC := keymap_default.c $(SRC)
+endif
+
+
+CONFIG_H = config.h
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# PCB Revision
+ifdef REV
+ OPT_DEFS += -DREV_$(REV)_LITE
+else
+ OPT_DEFS += -DREV_V3_LITE
+endif
+
+# Additional definitions from command line
+ifdef DEFS
+ OPT_DEFS += $(foreach DEF,$(DEFS),-D$(DEF))
+endif
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = yes # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
+USB_6KRO_ENABLE = yes # USB 6key Rollover
+#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
+#PS2_USE_BUSYWAIT = yes
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+KEYMAP_IN_EEPROM_ENABLE = yes # Read keymap from eeprom
+#KEYMAP_SECTION_ENABLE = yes # Fixed address keymap for keymap editor
+SOFTPWM_LED_ENABLE = yes # Enable SoftPWM to drive backlight
+FADING_LED_ENABLE = yes # Enable fading backlight
+BREATHING_LED_ENABLE = yes # Enable breathing backlight
+LEDMAP_ENABLE = yes # Enable LED mapping
+LEDMAP_IN_EEPROM_ENABLE = yes # Read LED mapping from eeprom
+
+# Optimize size but this may cause error "relocation truncated to fit"
+#EXTRALDFLAGS = -Wl,--relax
+
+# Search Path
+VPATH += $(TARGET_DIR)
+VPATH += $(TOP_DIR)
+
+include $(TOP_DIR)/protocol/lufa.mk
+include $(TOP_DIR)/protocol.mk
+include $(TOP_DIR)/common.mk
+include $(TOP_DIR)/rules.mk
diff --git a/keyboard/akb96/backlight.c b/keyboard/akb96/backlight.c
index 57521462..c837449d 100644
--- a/keyboard/akb96/backlight.c
+++ b/keyboard/akb96/backlight.c
@@ -39,7 +39,9 @@ static const uint8_t backlight_table[] PROGMEM = {
};
/* Backlight pin configuration
- * PWM: PB6 (D10)
+ * PWM: PB6 (D10) REV_V2
+ * PB7 REV_V3
+ * PB7 REV_V3_LITE
*/
void backlight_enable(void)
{
@@ -49,7 +51,7 @@ void backlight_enable(void)
// Turn on PWM
#if defined(REV_V2)
DDRB |= (1<.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x9696
-#define DEVICE_VER 0x0002
+#define DEVICE_VER 0x0003
#define MANUFACTURER Leon
#define PRODUCT Leon AKB96
#define DESCRIPTION t.m.k. keyboard firmware for AKB96
diff --git a/keyboard/akb96/led.c b/keyboard/akb96/led.c
index a84a23e6..a5134037 100644
--- a/keyboard/akb96/led.c
+++ b/keyboard/akb96/led.c
@@ -30,6 +30,9 @@ along with this program. If not, see .
* REV_V3
* CapsLock PC7
* NumLock PC6
+ * REV_V3_LITE
+ * CapsLock PC2
+ * NumLock PC4
*/
void led_set(uint8_t usb_led)
{
@@ -71,6 +74,25 @@ void led_set(uint8_t usb_led)
DDRC &= ~(1<> 4) & 0x0F) | (~(PINF) & (1<> 2) & 0b00111100);
+#elif defined(REV_V3_LITE)
+ return ~(PIND) >> 1;
#endif
}
@@ -193,6 +201,13 @@ static void unselect_rows(void)
// Select 0
DDRD |= (1<