Преглед на файлове

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().
Balz Guenat преди 7 години
родител
ревизия
3b5381d689

+ 4 - 4
keyboards/converter/ibm_terminal/README → 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

+ 0 - 5
keyboards/converter/ibm_terminal/ibm_terminal.c

@@ -1,6 +1 @@
 #include "ibm_terminal.h"
-
-// void matrix_init_kb(void) {
-
-//     matrix_init_user();
-// }

+ 10 - 5
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
 --------------------

+ 0 - 0
keyboards/converter/usb_usb/keymaps/ble/README.md → keyboards/converter/usb_usb/ble/README.md


+ 1 - 0
keyboards/converter/usb_usb/ble/ble.c

@@ -0,0 +1 @@
+#include "ble.h"

+ 6 - 0
keyboards/converter/usb_usb/ble/ble.h

@@ -0,0 +1,6 @@
+#ifndef BLE_H
+#define BLE_H
+
+#include QMK_KEYBOARD_H
+
+#endif

+ 13 - 0
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

+ 4 - 0
keyboards/converter/usb_usb/ble/rules.mk

@@ -0,0 +1,4 @@
+BLUETOOTH = AdafruitBLE
+ADAFRUIT_BLE_ENABLE = yes
+OPT_DEFS +=  -DCATERINA_BOOTLOADER
+F_CPU = 8000000

+ 1 - 0
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 */

+ 21 - 17
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);
     }
 
 };

+ 1 - 0
keyboards/converter/usb_usb/hasu/hasu.c

@@ -0,0 +1 @@
+#include "hasu.h"

+ 6 - 0
keyboards/converter/usb_usb/hasu/hasu.h

@@ -0,0 +1,6 @@
+#ifndef HASU_H
+#define HASU_H
+
+#include QMK_KEYBOARD_H
+
+#endif

+ 1 - 0
keyboards/converter/usb_usb/hasu/rules.mk

@@ -0,0 +1 @@
+F_CPU = 16000000

+ 0 - 9
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

+ 0 - 3
keyboards/converter/usb_usb/keymaps/ble/rules.mk

@@ -1,3 +0,0 @@
-BLUETOOTH = AdafruitBLE
-ADAFRUIT_BLE_ENABLE = yes
-OPT_DEFS +=  -DCATERINA_BOOTLOADER

+ 1 - 0
keyboards/converter/usb_usb/pro_micro/pro_micro.c

@@ -0,0 +1 @@
+#include "pro_micro.h"

+ 6 - 0
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

+ 1 - 0
keyboards/converter/usb_usb/pro_micro/rules.mk

@@ -0,0 +1 @@
+F_CPU = 8000000

+ 9 - 1
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
 
 
 #

+ 1 - 1
keyboards/converter/usb_usb/usb_usb.c

@@ -1 +1 @@
-#include "usb_usb.h"
+#include "usb_usb.h"