diff options
author | Balz Guenat <balz.guenat@gmail.com> | 2017-11-08 17:11:44 +0100 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-11-08 11:11:44 -0500 |
commit | 3b5381d6893b02b48b9abd4845220cd68d02979f (patch) | |
tree | 79ea380d96b82f3651b6d5bbfabdff296fd886da /keyboards/converter/usb_usb | |
parent | aee67854769feee7e94edd90686178d89946a7ee (diff) | |
download | firmware-3b5381d6893b02b48b9abd4845220cd68d02979f.tar.gz firmware-3b5381d6893b02b48b9abd4845220cd68d02979f.tar.bz2 firmware-3b5381d6893b02b48b9abd4845220cd68d02979f.zip |
restructure converters (#1825)
* restructure converters
each converter is its own keyboard and different hardware variants are different subprojects.
remove (seemingly) old method of loading layouts from main Makefile
* call led_set_kb() from overridden led_set()
* put converter back into one folder
* revert some structure changes to bring in line with #1784.
Also attempt to get the BLE thing more properly integrated.
Also also fix led_set() to call led_set_kb().
Diffstat (limited to 'keyboards/converter/usb_usb')
18 files changed, 82 insertions, 36 deletions
diff --git a/keyboards/converter/usb_usb/README.md b/keyboards/converter/usb_usb/README.md index 2ed702695..b529fbd28 100644 --- a/keyboards/converter/usb_usb/README.md +++ b/keyboards/converter/usb_usb/README.md @@ -13,13 +13,18 @@ Make example for this keyboard (after setting up your build environment): See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. +Note that you have to choose the right hardware variant as your subproject, otherwise you will probably have issues. + Troubleshooting & Known Issues ------------------------------ -The Pro Micro variant runs at 8MHz, hence the following line in `usb_usb/rules.mk`: -`F_CPU ?= 8000000` -If the firmware doesn't work, try changing that line to -`F_CPU ?= 16000000` -or override the `F_CPU` variable in the `rules.mk` of your keymap. +If something doesn't work, it's probably because of the CPU clock. +Be sure to select the correct subproject (the middle part of the `make` argument) according to your hardware. +If you are sure you have this correct, try changeing the default in `usb_usb/rules.mk` or overriding the value in the `rules.mk` of your keymap. + +The Pro Micro variant uses a 3.3V Pro Micro and thus runs at 8MHz, hence the following line in `usb_usb/pro_micro/rules.mk`: +`F_CPU = 8000000` +The converter sold by Hasu runs at 16MHz and so the corresponding line in `usb_usb/hasu/rules.mk` is: +`F_CPU = 16000000` Getting the Hardware -------------------- diff --git a/keyboards/converter/usb_usb/keymaps/ble/README.md b/keyboards/converter/usb_usb/ble/README.md index 0ee7223fd..0ee7223fd 100644 --- a/keyboards/converter/usb_usb/keymaps/ble/README.md +++ b/keyboards/converter/usb_usb/ble/README.md diff --git a/keyboards/converter/usb_usb/ble/ble.c b/keyboards/converter/usb_usb/ble/ble.c new file mode 100644 index 000000000..387eb8166 --- /dev/null +++ b/keyboards/converter/usb_usb/ble/ble.c @@ -0,0 +1 @@ +#include "ble.h" diff --git a/keyboards/converter/usb_usb/ble/ble.h b/keyboards/converter/usb_usb/ble/ble.h new file mode 100644 index 000000000..d28629643 --- /dev/null +++ b/keyboards/converter/usb_usb/ble/ble.h @@ -0,0 +1,6 @@ +#ifndef BLE_H +#define BLE_H + +#include QMK_KEYBOARD_H + +#endif diff --git a/keyboards/converter/usb_usb/ble/config.h b/keyboards/converter/usb_usb/ble/config.h new file mode 100644 index 000000000..45aa778d5 --- /dev/null +++ b/keyboards/converter/usb_usb/ble/config.h @@ -0,0 +1,13 @@ +#ifndef CONFIG_BLE_H +#define CONFIG_BLE_H + +#undef PRODUCT +#define PRODUCT QMK BLE Adapter +#undef DESCRIPTION +#define DESCRIPTION + +// Turn off the mode leds on the BLE module +#define ADAFRUIT_BLE_ENABLE_MODE_LEDS 0 +#define ADAFRUIT_BLE_ENABLE_POWER_LED 0 + +#endif diff --git a/keyboards/converter/usb_usb/ble/rules.mk b/keyboards/converter/usb_usb/ble/rules.mk new file mode 100644 index 000000000..c951780e2 --- /dev/null +++ b/keyboards/converter/usb_usb/ble/rules.mk @@ -0,0 +1,4 @@ +BLUETOOTH = AdafruitBLE +ADAFRUIT_BLE_ENABLE = yes +OPT_DEFS += -DCATERINA_BOOTLOADER +F_CPU = 8000000 diff --git a/keyboards/converter/usb_usb/config.h b/keyboards/converter/usb_usb/config.h index 591d80f32..deee35948 100644 --- a/keyboards/converter/usb_usb/config.h +++ b/keyboards/converter/usb_usb/config.h @@ -21,6 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. // do not #include "config_common.h" because the pin names conflict with the USB HID code. // CUSTOM_MATRIX is defined it that file, though, and we need it, so we define it ourselves. // It's a hack, yeah... + #define CUSTOM_MATRIX 2 /* USB Device descriptor parameter */ diff --git a/keyboards/converter/usb_usb/custom_matrix.cpp b/keyboards/converter/usb_usb/custom_matrix.cpp index 93d13edf0..fba107c7c 100644 --- a/keyboards/converter/usb_usb/custom_matrix.cpp +++ b/keyboards/converter/usb_usb/custom_matrix.cpp @@ -35,6 +35,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "host.h" #include "keyboard.h" +extern "C" { +#include "quantum.h" +} /* KEY CODE to Matrix * @@ -62,7 +65,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. // Integrated key state of all keyboards -static report_keyboard_t keyboard_report; +static report_keyboard_t local_keyboard_report; static bool matrix_is_mod = false; @@ -98,13 +101,13 @@ extern "C" } static void or_report(report_keyboard_t report) { - // integrate reports into keyboard_report - keyboard_report.mods |= report.mods; + // integrate reports into local_keyboard_report + local_keyboard_report.mods |= report.mods; for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { if (IS_ANY(report.keys[i])) { for (uint8_t j = 0; j < KEYBOARD_REPORT_KEYS; j++) { - if (! keyboard_report.keys[j]) { - keyboard_report.keys[j] = report.keys[i]; + if (! local_keyboard_report.keys[j]) { + local_keyboard_report.keys[j] = report.keys[i]; break; } } @@ -130,7 +133,7 @@ extern "C" last_time_stamp4 = kbd_parser4.time_stamp; // clear and integrate all reports - keyboard_report = {}; + local_keyboard_report = {}; or_report(kbd_parser1.report); or_report(kbd_parser2.report); or_report(kbd_parser3.report); @@ -138,9 +141,9 @@ extern "C" matrix_is_mod = true; - dprintf("state: %02X %02X", keyboard_report.mods, keyboard_report.reserved); + dprintf("state: %02X %02X", local_keyboard_report.mods, local_keyboard_report.reserved); for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - dprintf(" %02X", keyboard_report.keys[i]); + dprintf(" %02X", local_keyboard_report.keys[i]); } dprint("\r\n"); } else { @@ -177,12 +180,12 @@ extern "C" uint8_t code = CODE(row, col); if (IS_MOD(code)) { - if (keyboard_report.mods & ROW_BITS(code)) { + if (local_keyboard_report.mods & ROW_BITS(code)) { return true; } } for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (keyboard_report.keys[i] == code) { + if (local_keyboard_report.keys[i] == code) { return true; } } @@ -192,14 +195,14 @@ extern "C" matrix_row_t matrix_get_row(uint8_t row) { uint16_t row_bits = 0; - if (IS_MOD(CODE(row, 0)) && keyboard_report.mods) { - row_bits |= keyboard_report.mods; + if (IS_MOD(CODE(row, 0)) && local_keyboard_report.mods) { + row_bits |= local_keyboard_report.mods; } for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (IS_ANY(keyboard_report.keys[i])) { - if (row == ROW(keyboard_report.keys[i])) { - row_bits |= ROW_BITS(keyboard_report.keys[i]); + if (IS_ANY(local_keyboard_report.keys[i])) { + if (row == ROW(local_keyboard_report.keys[i])) { + row_bits |= ROW_BITS(local_keyboard_report.keys[i]); } } } @@ -209,9 +212,9 @@ extern "C" uint8_t matrix_key_count(void) { uint8_t count = 0; - count += bitpop(keyboard_report.mods); + count += bitpop(local_keyboard_report.mods); for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - if (IS_ANY(keyboard_report.keys[i])) { + if (IS_ANY(local_keyboard_report.keys[i])) { count++; } } @@ -233,6 +236,7 @@ extern "C" kbd2.SetReport(0, 0, 2, 0, 1, &usb_led); kbd3.SetReport(0, 0, 2, 0, 1, &usb_led); kbd4.SetReport(0, 0, 2, 0, 1, &usb_led); + led_set_kb(usb_led); } }; diff --git a/keyboards/converter/usb_usb/hasu/hasu.c b/keyboards/converter/usb_usb/hasu/hasu.c new file mode 100644 index 000000000..3357735ff --- /dev/null +++ b/keyboards/converter/usb_usb/hasu/hasu.c @@ -0,0 +1 @@ +#include "hasu.h" diff --git a/keyboards/converter/usb_usb/hasu/hasu.h b/keyboards/converter/usb_usb/hasu/hasu.h new file mode 100644 index 000000000..d5e785586 --- /dev/null +++ b/keyboards/converter/usb_usb/hasu/hasu.h @@ -0,0 +1,6 @@ +#ifndef HASU_H +#define HASU_H + +#include QMK_KEYBOARD_H + +#endif diff --git a/keyboards/converter/usb_usb/hasu/rules.mk b/keyboards/converter/usb_usb/hasu/rules.mk new file mode 100644 index 000000000..27d8af768 --- /dev/null +++ b/keyboards/converter/usb_usb/hasu/rules.mk @@ -0,0 +1 @@ +F_CPU = 16000000 diff --git a/keyboards/converter/usb_usb/keymaps/ble/config.h b/keyboards/converter/usb_usb/keymaps/ble/config.h index c1859b7f1..7fa3bf328 100644 --- a/keyboards/converter/usb_usb/keymaps/ble/config.h +++ b/keyboards/converter/usb_usb/keymaps/ble/config.h @@ -3,13 +3,4 @@ #include "../../config.h" -#undef PRODUCT -#define PRODUCT QMK BLE Adapter -#undef DESCRIPTION -#define DESCRIPTION - -// Turn off the mode leds on the BLE module -#define ADAFRUIT_BLE_ENABLE_MODE_LEDS 0 -#define ADAFRUIT_BLE_ENABLE_POWER_LED 0 - #endif diff --git a/keyboards/converter/usb_usb/keymaps/ble/rules.mk b/keyboards/converter/usb_usb/keymaps/ble/rules.mk deleted file mode 100644 index 3beda3f44..000000000 --- a/keyboards/converter/usb_usb/keymaps/ble/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -BLUETOOTH = AdafruitBLE -ADAFRUIT_BLE_ENABLE = yes -OPT_DEFS += -DCATERINA_BOOTLOADER
\ No newline at end of file diff --git a/keyboards/converter/usb_usb/pro_micro/pro_micro.c b/keyboards/converter/usb_usb/pro_micro/pro_micro.c new file mode 100644 index 000000000..f10142f81 --- /dev/null +++ b/keyboards/converter/usb_usb/pro_micro/pro_micro.c @@ -0,0 +1 @@ +#include "pro_micro.h" diff --git a/keyboards/converter/usb_usb/pro_micro/pro_micro.h b/keyboards/converter/usb_usb/pro_micro/pro_micro.h new file mode 100644 index 000000000..566df9f20 --- /dev/null +++ b/keyboards/converter/usb_usb/pro_micro/pro_micro.h @@ -0,0 +1,6 @@ +#ifndef PRO_MICRO_H +#define PRO_MICRO_H + +#include QMK_KEYBOARD_H + +#endif diff --git a/keyboards/converter/usb_usb/pro_micro/rules.mk b/keyboards/converter/usb_usb/pro_micro/rules.mk new file mode 100644 index 000000000..7c04fa34f --- /dev/null +++ b/keyboards/converter/usb_usb/pro_micro/rules.mk @@ -0,0 +1 @@ +F_CPU = 8000000 diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk index 81a393e8a..b0e07c764 100644 --- a/keyboards/converter/usb_usb/rules.mk +++ b/keyboards/converter/usb_usb/rules.mk @@ -13,7 +13,15 @@ MCU = atmega32u4 # 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 = 8000000 + +# Since there are different hardware variations of these adapters and since these +# have different CPU clocks, the clock speed should be set in the rules.mk file of the +# respective hardware variantion (i.e. subproject). For example, in /pro_micro/rules.mk +# this is set to 8000000. +# The value here is only a fallback and is ignored if it is defined in the subproject. +F_CPU ?= 16000000 + +DEFAULT_FOLDER = converter/usb_usb/hasu # diff --git a/keyboards/converter/usb_usb/usb_usb.c b/keyboards/converter/usb_usb/usb_usb.c index e7657938d..e8f224ad4 100644 --- a/keyboards/converter/usb_usb/usb_usb.c +++ b/keyboards/converter/usb_usb/usb_usb.c @@ -1 +1 @@ -#include "usb_usb.h"
\ No newline at end of file +#include "usb_usb.h" |