From bdc0880ca5ead73a4a66355ade85b005507764c1 Mon Sep 17 00:00:00 2001 From: Joe Wasson Date: Sat, 19 Aug 2017 20:35:41 -0700 Subject: [PATCH] Add compile error if too many endpoints are defined for the ATmega32U4. --- docs/stenography.md | 2 +- tmk_core/protocol/lufa/descriptor.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/stenography.md b/docs/stenography.md index 8c779032b9..5b457a2a6c 100644 --- a/docs/stenography.md +++ b/docs/stenography.md @@ -30,7 +30,7 @@ GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything ## Configuring QMK for Steno -Firstly, enable steno in your keymap's Makefile. You should also diable mousekeys to prevent conflicts. +Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them. ```Makefile STENO_ENABLE = yes diff --git a/tmk_core/protocol/lufa/descriptor.h b/tmk_core/protocol/lufa/descriptor.h index cde44abc9b..43001c9778 100644 --- a/tmk_core/protocol/lufa/descriptor.h +++ b/tmk_core/protocol/lufa/descriptor.h @@ -238,7 +238,8 @@ typedef struct # define CDC_OUT_EPNUM MIDI_STREAM_OUT_EPNUM #endif -#if defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4 +#if (defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4) || \ + (defined(__AVR_ATmega32U4__) && CDC_OUT_EPNUM > 6) # error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, SERIAL)" #endif