summaryrefslogtreecommitdiff
path: root/keyboards/converter/usb_usb
diff options
context:
space:
mode:
authorBalz Guenat <balz.guenat@gmail.com>2017-11-08 17:11:44 +0100
committerJack Humbert <jack.humb@gmail.com>2017-11-08 11:11:44 -0500
commit3b5381d6893b02b48b9abd4845220cd68d02979f (patch)
tree79ea380d96b82f3651b6d5bbfabdff296fd886da /keyboards/converter/usb_usb
parentaee67854769feee7e94edd90686178d89946a7ee (diff)
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')
-rw-r--r--keyboards/converter/usb_usb/README.md15
-rw-r--r--keyboards/converter/usb_usb/ble/README.md (renamed from keyboards/converter/usb_usb/keymaps/ble/README.md)0
-rw-r--r--keyboards/converter/usb_usb/ble/ble.c1
-rw-r--r--keyboards/converter/usb_usb/ble/ble.h6
-rw-r--r--keyboards/converter/usb_usb/ble/config.h13
-rw-r--r--keyboards/converter/usb_usb/ble/rules.mk4
-rw-r--r--keyboards/converter/usb_usb/config.h1
-rw-r--r--keyboards/converter/usb_usb/custom_matrix.cpp38
-rw-r--r--keyboards/converter/usb_usb/hasu/hasu.c1
-rw-r--r--keyboards/converter/usb_usb/hasu/hasu.h6
-rw-r--r--keyboards/converter/usb_usb/hasu/rules.mk1
-rw-r--r--keyboards/converter/usb_usb/keymaps/ble/config.h9
-rw-r--r--keyboards/converter/usb_usb/keymaps/ble/rules.mk3
-rw-r--r--keyboards/converter/usb_usb/pro_micro/pro_micro.c1
-rw-r--r--keyboards/converter/usb_usb/pro_micro/pro_micro.h6
-rw-r--r--keyboards/converter/usb_usb/pro_micro/rules.mk1
-rw-r--r--keyboards/converter/usb_usb/rules.mk10
-rw-r--r--keyboards/converter/usb_usb/usb_usb.c2
18 files changed, 82 insertions, 36 deletions
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"