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 | |
parent | aee67854769feee7e94edd90686178d89946a7ee (diff) | |
download | qmk_firmware-3b5381d6893b02b48b9abd4845220cd68d02979f.tar.gz qmk_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().
20 files changed, 86 insertions, 45 deletions
diff --git a/keyboards/converter/ibm_terminal/README b/keyboards/converter/ibm_terminal/README.md index 6b7aff2c84..dff26e0594 100644 --- a/keyboards/converter/ibm_terminal/README +++ b/keyboards/converter/ibm_terminal/README.md @@ -6,7 +6,7 @@ This is a port of TMK's converter/terminal_usb to QMK. It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy. I tested the converter on ATMega32U4 with 1392595(102keys) and 6110345(122keys). -Source code: https://github.com/tmk/tmk_keyboard +Source code: https://github.com/qmk/qmk_firmware.git Article: http://geekhack.org/index.php?topic=27272.0 @@ -22,9 +22,9 @@ And VCC and GND, of course. See RESOURCE for keyboard connector pin assign. BUILD ----- -$ git clone https://github.com/tmk/tmk_keyboard.git -$ cd converter/terminal_usb -$ make +$ git clone https://github.com/qmk/qmk_firmware.git +$ cd qmk_firmware +$ make converter/ibm_terminal:default RESOURCE diff --git a/keyboards/converter/ibm_terminal/ibm_terminal.c b/keyboards/converter/ibm_terminal/ibm_terminal.c index 17296864a3..fd64a21ace 100644 --- a/keyboards/converter/ibm_terminal/ibm_terminal.c +++ b/keyboards/converter/ibm_terminal/ibm_terminal.c @@ -1,6 +1 @@ #include "ibm_terminal.h" - -// void matrix_init_kb(void) { - -// matrix_init_user(); -// }
\ No newline at end of file diff --git a/keyboards/converter/usb_usb/README.md b/keyboards/converter/usb_usb/README.md index 2ed702695b..b529fbd28d 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 0ee7223fd4..0ee7223fd4 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 0000000000..387eb8166c --- /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 0000000000..d28629643a --- /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 0000000000..45aa778d57 --- /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 0000000000..c951780e20 --- /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 591d80f32d..deee35948b 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 93d13edf0b..fba107c7cb 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 0000000000..3357735ffd --- /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 0000000000..d5e7855860 --- /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 0000000000..27d8af7683 --- /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 c1859b7f1a..7fa3bf328e 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 3beda3f445..0000000000 --- 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 0000000000..f10142f81a --- /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 0000000000..566df9f20f --- /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 0000000000..7c04fa34fd --- /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 81a393e8ab..b0e07c7649 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 e7657938d2..e8f224ad46 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" |