forked from forks/qmk_firmware
USB-USB converter cleanup (#16618)
This commit is contained in:
parent
8fe3864fe7
commit
df3770551a
|
@ -1,3 +1,3 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include "usb_usb.h"
|
||||||
|
|
|
@ -3,11 +3,4 @@
|
||||||
#undef PRODUCT
|
#undef PRODUCT
|
||||||
#define PRODUCT QMK BLE Adapter
|
#define PRODUCT QMK BLE Adapter
|
||||||
|
|
||||||
// Turn off the mode leds on the BLE module
|
|
||||||
#define BLUEFRUIT_LE_ENABLE_MODE_LEDS 0
|
|
||||||
#define BLUEFRUIT_LE_ENABLE_POWER_LED 0
|
|
||||||
|
|
||||||
#define NO_ACTION_MACRO
|
|
||||||
#define NO_ACTION_FUNCTION
|
|
||||||
#define NO_ACTION_ONESHOT
|
#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
|
|
|
@ -17,14 +17,3 @@ Part list:
|
||||||
* [Pololu 5V Step-Up Voltage Regulator U3V12F5](https://www.pololu.com/product/2115)
|
* [Pololu 5V Step-Up Voltage Regulator U3V12F5](https://www.pololu.com/product/2115)
|
||||||
* [Lithium Ion Battery - 3.7v 2000mAh](https://www.adafruit.com/product/2011)
|
* [Lithium Ion Battery - 3.7v 2000mAh](https://www.adafruit.com/product/2011)
|
||||||
* Some sort of switch to be able to turn it off
|
* Some sort of switch to be able to turn it off
|
||||||
|
|
||||||
Building and Flashing
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
```
|
|
||||||
make converter-usb_usb-ble
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
make converter-usb_usb-ble-avrdude
|
|
||||||
```
|
|
|
@ -1,17 +1,7 @@
|
||||||
# Processor frequency
|
# Processor frequency
|
||||||
F_CPU = 8000000
|
F_CPU = 8000000
|
||||||
|
|
||||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
EXTRAKEY_ENABLE = no
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
|
|
||||||
BLUETOOTH_ENABLE = yes
|
BLUETOOTH_ENABLE = yes
|
||||||
BLUETOOTH_DRIVER = BluefruitLE
|
BLUETOOTH_DRIVER = BluefruitLE
|
||||||
|
|
||||||
LTO_ENABLE = yes
|
LTO_ENABLE = yes
|
||||||
|
|
|
@ -17,6 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x005B
|
#define PRODUCT_ID 0x005B
|
||||||
|
@ -43,5 +45,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
|
||||||
//#define NO_ACTION_FUNCTION
|
|
||||||
|
|
|
@ -63,17 +63,16 @@ extern "C" {
|
||||||
#define COL(code) ((code) & COL_MASK)
|
#define COL(code) ((code) & COL_MASK)
|
||||||
#define ROW_BITS(code) (1 << COL(code))
|
#define ROW_BITS(code) (1 << COL(code))
|
||||||
|
|
||||||
|
|
||||||
// Integrated key state of all keyboards
|
// Integrated key state of all keyboards
|
||||||
static report_keyboard_t local_keyboard_report;
|
static report_keyboard_t local_keyboard_report;
|
||||||
|
|
||||||
static bool matrix_is_mod = false;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB Host Shield HID keyboards
|
* USB Host Shield HID keyboards
|
||||||
* This supports two cascaded hubs and four keyboards
|
* This supports two cascaded hubs and four keyboards
|
||||||
*/
|
*/
|
||||||
USB usb_host;
|
USB usb_host;
|
||||||
|
USBHub hub1(&usb_host);
|
||||||
|
USBHub hub2(&usb_host);
|
||||||
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd1(&usb_host);
|
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd1(&usb_host);
|
||||||
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd2(&usb_host);
|
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd2(&usb_host);
|
||||||
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd3(&usb_host);
|
HIDBoot<HID_PROTOCOL_KEYBOARD> kbd3(&usb_host);
|
||||||
|
@ -82,12 +81,8 @@ KBDReportParser kbd_parser1;
|
||||||
KBDReportParser kbd_parser2;
|
KBDReportParser kbd_parser2;
|
||||||
KBDReportParser kbd_parser3;
|
KBDReportParser kbd_parser3;
|
||||||
KBDReportParser kbd_parser4;
|
KBDReportParser kbd_parser4;
|
||||||
USBHub hub1(&usb_host);
|
|
||||||
USBHub hub2(&usb_host);
|
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
uint8_t matrix_rows(void) { return MATRIX_ROWS; }
|
uint8_t matrix_rows(void) { return MATRIX_ROWS; }
|
||||||
uint8_t matrix_cols(void) { return MATRIX_COLS; }
|
uint8_t matrix_cols(void) { return MATRIX_COLS; }
|
||||||
bool matrix_has_ghost(void) { return false; }
|
bool matrix_has_ghost(void) { return false; }
|
||||||
|
@ -135,6 +130,7 @@ extern "C"
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t matrix_scan(void) {
|
uint8_t matrix_scan(void) {
|
||||||
|
bool changed = false;
|
||||||
static uint16_t last_time_stamp1 = 0;
|
static uint16_t last_time_stamp1 = 0;
|
||||||
static uint16_t last_time_stamp2 = 0;
|
static uint16_t last_time_stamp2 = 0;
|
||||||
static uint16_t last_time_stamp3 = 0;
|
static uint16_t last_time_stamp3 = 0;
|
||||||
|
@ -158,15 +154,13 @@ extern "C"
|
||||||
or_report(kbd_parser3.report);
|
or_report(kbd_parser3.report);
|
||||||
or_report(kbd_parser4.report);
|
or_report(kbd_parser4.report);
|
||||||
|
|
||||||
matrix_is_mod = true;
|
changed = true;
|
||||||
|
|
||||||
dprintf("state: %02X %02X", local_keyboard_report.mods, local_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++) {
|
for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
|
||||||
dprintf(" %02X", local_keyboard_report.keys[i]);
|
dprintf(" %02X", local_keyboard_report.keys[i]);
|
||||||
}
|
}
|
||||||
dprint("\r\n");
|
dprint("\r\n");
|
||||||
} else {
|
|
||||||
matrix_is_mod = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t timer;
|
uint16_t timer;
|
||||||
|
@ -189,7 +183,7 @@ extern "C"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
matrix_scan_quantum();
|
matrix_scan_quantum();
|
||||||
return 1;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool matrix_is_on(uint8_t row, uint8_t col) {
|
bool matrix_is_on(uint8_t row, uint8_t col) {
|
||||||
|
@ -234,13 +228,11 @@ extern "C"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set(uint8_t usb_led)
|
void led_set(uint8_t usb_led) {
|
||||||
{
|
|
||||||
if (kbd1.isReady()) kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
|
if (kbd1.isReady()) kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
|
||||||
if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
|
if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
|
||||||
if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
|
if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
|
||||||
if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
|
if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
|
||||||
led_set_kb(usb_led);
|
led_set_kb(usb_led);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include "usb_usb.h"
|
||||||
|
|
|
@ -1,102 +0,0 @@
|
||||||
#include <avr/io.h>
|
|
||||||
#include <avr/wdt.h>
|
|
||||||
#include <avr/power.h>
|
|
||||||
#include <util/delay.h>
|
|
||||||
|
|
||||||
// LUFA
|
|
||||||
#include "lufa.h"
|
|
||||||
|
|
||||||
#include "sendchar.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "keyboard.h"
|
|
||||||
#include "led.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* LED ping configuration */
|
|
||||||
#define TMK_LED
|
|
||||||
//#define LEONARDO_LED
|
|
||||||
#if defined(TMK_LED)
|
|
||||||
// For TMK converter and Teensy
|
|
||||||
#define LED_TX_INIT (DDRD |= (1<<6))
|
|
||||||
#define LED_TX_ON (PORTD |= (1<<6))
|
|
||||||
#define LED_TX_OFF (PORTD &= ~(1<<6))
|
|
||||||
#define LED_TX_TOGGLE (PORTD ^= (1<<6))
|
|
||||||
#elif defined(LEONARDO_LED)
|
|
||||||
// For Leonardo(TX LED)
|
|
||||||
#define LED_TX_INIT (DDRD |= (1<<5))
|
|
||||||
#define LED_TX_ON (PORTD &= ~(1<<5))
|
|
||||||
#define LED_TX_OFF (PORTD |= (1<<5))
|
|
||||||
#define LED_TX_TOGGLE (PORTD ^= (1<<5))
|
|
||||||
#else
|
|
||||||
#define LED_TX_INIT
|
|
||||||
#define LED_TX_ON
|
|
||||||
#define LED_TX_OFF
|
|
||||||
#define LED_TX_TOGGLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void LUFA_setup(void)
|
|
||||||
{
|
|
||||||
/* Disable watchdog if enabled by bootloader/fuses */
|
|
||||||
MCUSR &= ~(1 << WDRF);
|
|
||||||
wdt_disable();
|
|
||||||
|
|
||||||
/* Disable clock division */
|
|
||||||
#if (F_CPU == 8000000)
|
|
||||||
clock_prescale_set(clock_div_2); // 16MHz crystal divided by 2
|
|
||||||
#else
|
|
||||||
clock_prescale_set(clock_div_1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Leonardo needs. Without this USB device is not recognized.
|
|
||||||
USB_Disable();
|
|
||||||
|
|
||||||
USB_Init();
|
|
||||||
|
|
||||||
// for Console_Task
|
|
||||||
USB_Device_EnableSOFEvents();
|
|
||||||
print_set_sendchar(sendchar);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
// LED for debug
|
|
||||||
LED_TX_INIT;
|
|
||||||
LED_TX_ON;
|
|
||||||
|
|
||||||
debug_enable = true;
|
|
||||||
debug_keyboard = true;
|
|
||||||
|
|
||||||
host_set_driver(&lufa_driver);
|
|
||||||
keyboard_init();
|
|
||||||
|
|
||||||
LUFA_setup();
|
|
||||||
|
|
||||||
/* NOTE: Don't insert time consuming job here.
|
|
||||||
* It'll cause unclear initialization failure when DFU reset(worm start).
|
|
||||||
*/
|
|
||||||
sei();
|
|
||||||
|
|
||||||
/* Some keyboards bootup quickly and cannot be initialized with this startup wait.
|
|
||||||
// wait for startup of sendchar routine
|
|
||||||
while (USB_DeviceState != DEVICE_STATE_Configured) ;
|
|
||||||
if (debug_enable) {
|
|
||||||
_delay_ms(1000);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
debug("init: done\n");
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
keyboard_task();
|
|
||||||
|
|
||||||
#if !defined(INTERRUPT_CONTROL_ENDPOINT)
|
|
||||||
// LUFA Task for control request
|
|
||||||
USB_USBTask();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,3 +1,3 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include "usb_usb.h"
|
||||||
|
|
|
@ -8,15 +8,17 @@ BOOTLOADER = caterina
|
||||||
# change yes to no to disable
|
# change yes to no to disable
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||||
#MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
#CONSOLE_ENABLE = yes # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
#COMMAND_ENABLE = yes # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||||
#BACKLIGHT_ENABLE = yes
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
USB_HID_ENABLE = yes
|
USB_HID_ENABLE = yes
|
||||||
CUSTOM_MATRIX = yes
|
CUSTOM_MATRIX = yes
|
||||||
|
|
||||||
SRC = custom_matrix.cpp
|
SRC += custom_matrix.cpp
|
||||||
|
|
||||||
DEFAULT_FOLDER = converter/usb_usb/hasu
|
DEFAULT_FOLDER = converter/usb_usb/hasu
|
||||||
|
|
|
@ -19,6 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#if defined(KEYBOARD_converter_usb_usb_ble)
|
||||||
|
# include "ble.h"
|
||||||
|
#elif defined(KEYBOARD_converter_usb_usb_hasu)
|
||||||
|
# include "hasu.h"
|
||||||
|
#elif defined(KEYBOARD_converter_usb_usb_pro_micro)
|
||||||
|
# include "pro_micro.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define XXX KC_NO
|
#define XXX KC_NO
|
||||||
|
|
||||||
#define ______ KC_TRNS
|
#define ______ KC_TRNS
|
||||||
|
|
Loading…
Reference in a new issue