Merge pull request #935 from priyadi/promethium
Promethium handwired keyboard firmware update
This commit is contained in:
commit
d15d1d3833
5 changed files with 204 additions and 86 deletions
|
@ -4,16 +4,17 @@
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
# the appropriate keymap folder that will get included automatically
|
# the appropriate keymap folder that will get included automatically
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
MIDI_ENABLE = no # MIDI controls
|
MIDI_ENABLE = no # MIDI controls
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
UNICODE_ENABLE = no # Unicode
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
UNICODEMAP_ENABLE = yes
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
PS2_MOUSE_ENABLE = yes
|
PS2_MOUSE_ENABLE = yes
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
sleep 10
|
||||||
avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex
|
avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
#include "process_unicode.h"
|
#include "process_unicode.h"
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "rgbsps.h"
|
#include "rgbsps.h"
|
||||||
|
#include "ps2_mouse.h"
|
||||||
|
#include "ps2.h"
|
||||||
#define COUNT(x) (sizeof (x) / sizeof (*(x)))
|
#define COUNT(x) (sizeof (x) / sizeof (*(x)))
|
||||||
|
|
||||||
// #define RGBLED_NUM 5
|
// #define RGBLED_NUM 5
|
||||||
|
@ -282,25 +284,25 @@ void led_layer_func(void) {
|
||||||
rgbsps_set(LED_K, 15, 0, 15);
|
rgbsps_set(LED_K, 15, 0, 15);
|
||||||
rgbsps_set(LED_L, 15, 0, 15);
|
rgbsps_set(LED_L, 15, 0, 15);
|
||||||
|
|
||||||
rgbsps_set(LED_U, 15, 0, 10);
|
rgbsps_set(LED_U, 15, 0, 0);
|
||||||
rgbsps_set(LED_O, 15, 0, 10);
|
rgbsps_set(LED_O, 15, 0, 0);
|
||||||
rgbsps_set(LED_COMM, 15, 0, 10);
|
rgbsps_set(LED_COMM, 15, 0, 0);
|
||||||
rgbsps_set(LED_DOT, 15, 0, 10);
|
rgbsps_set(LED_DOT, 15, 0, 0);
|
||||||
rgbsps_set(LED_SCLN, 15, 0, 10);
|
rgbsps_set(LED_SCLN, 15, 0, 0);
|
||||||
rgbsps_set(LED_P, 15, 0, 10);
|
rgbsps_set(LED_P, 15, 0, 0);
|
||||||
|
|
||||||
rgbsps_set(LED_Q, 10, 0, 15);
|
rgbsps_set(LED_Q, 0, 15, 0);
|
||||||
rgbsps_set(LED_W, 10, 0, 15);
|
rgbsps_set(LED_W, 0, 15, 0);
|
||||||
rgbsps_set(LED_E, 10, 0, 15);
|
rgbsps_set(LED_E, 0, 15, 0);
|
||||||
rgbsps_set(LED_R, 10, 0, 15);
|
rgbsps_set(LED_R, 0, 15, 0);
|
||||||
rgbsps_set(LED_A, 10, 0, 15);
|
rgbsps_set(LED_A, 0, 15, 0);
|
||||||
rgbsps_set(LED_S, 10, 0, 15);
|
rgbsps_set(LED_S, 0, 15, 0);
|
||||||
rgbsps_set(LED_D, 10, 0, 15);
|
rgbsps_set(LED_D, 0, 15, 0);
|
||||||
rgbsps_set(LED_F, 10, 0, 15);
|
rgbsps_set(LED_F, 0, 15, 0);
|
||||||
rgbsps_set(LED_Z, 10, 0, 15);
|
rgbsps_set(LED_Z, 0, 15, 0);
|
||||||
rgbsps_set(LED_X, 10, 0, 15);
|
rgbsps_set(LED_X, 0, 15, 0);
|
||||||
rgbsps_set(LED_C, 10, 0, 15);
|
rgbsps_set(LED_C, 0, 15, 0);
|
||||||
rgbsps_set(LED_V, 10, 0, 15);
|
rgbsps_set(LED_V, 0, 15, 0);
|
||||||
|
|
||||||
rgbsps_send();
|
rgbsps_send();
|
||||||
}
|
}
|
||||||
|
@ -361,7 +363,15 @@ void led_layer_num(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_layer_emoji(void) {
|
void led_layer_emoji(void) {
|
||||||
rgbsps_setall(15, 15, 0);
|
for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
|
||||||
|
rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 15, 15, 0);
|
||||||
|
}
|
||||||
|
for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
|
||||||
|
rgbsps_set(pgm_read_byte(&LED_MODS[i]), 15, 15, 0);
|
||||||
|
}
|
||||||
|
for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
|
||||||
|
rgbsps_set(pgm_read_byte(&LED_FN[i]), 15, 15, 0);
|
||||||
|
}
|
||||||
|
|
||||||
rgbsps_set(LED_IND_FUNC, 0, 0, 0);
|
rgbsps_set(LED_IND_FUNC, 0, 0, 0);
|
||||||
rgbsps_set(LED_IND_NUM, 0, 0, 0);
|
rgbsps_set(LED_IND_NUM, 0, 0, 0);
|
||||||
|
@ -723,3 +733,109 @@ void shutdown_user()
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void ps2_mouse_init_user() {
|
||||||
|
// set TrackPoint sensitivity
|
||||||
|
PS2_MOUSE_SEND(0xE2, "set trackpoint sensitivity: 0xE2");
|
||||||
|
PS2_MOUSE_SEND(0x81, "set trackpoint sensitivity: 0x81");
|
||||||
|
PS2_MOUSE_SEND(0x4A, "set trackpoint sensitivity: 0x4A");
|
||||||
|
PS2_MOUSE_SEND(0x60, "set trackpoint sensitivity: 0x60");
|
||||||
|
|
||||||
|
// set TrackPoint speed
|
||||||
|
// (transfer function upper plateau speed)
|
||||||
|
PS2_MOUSE_SEND(0xE2, "set trackpoint speed: 0xE2");
|
||||||
|
PS2_MOUSE_SEND(0x81, "set trackpoint speed: 0x81");
|
||||||
|
PS2_MOUSE_SEND(0x60, "set trackpoint speed: 0x60");
|
||||||
|
PS2_MOUSE_SEND(0x90, "set trackpoint speed: 0x90");
|
||||||
|
|
||||||
|
// set TrackPoint Negative Inertia factor
|
||||||
|
PS2_MOUSE_SEND(0xE2, "set negative inertia factor: 0xE2");
|
||||||
|
PS2_MOUSE_SEND(0x81, "set negative inertia factor: 0x81");
|
||||||
|
PS2_MOUSE_SEND(0x4D, "set negative inertia factor: 0x4D");
|
||||||
|
PS2_MOUSE_SEND(0x03, "set negative inertia factor: 0x03");
|
||||||
|
|
||||||
|
// disable up threshold (click)
|
||||||
|
PS2_MOUSE_SEND(0xE2, "set disable up threshold: 0xE2");
|
||||||
|
PS2_MOUSE_SEND(0x47, "set disable up threshold: 0x47");
|
||||||
|
PS2_MOUSE_SEND(0x2C, "set disable up threshold: 0x2C");
|
||||||
|
PS2_MOUSE_SEND(0x01, "set disable up threshold: 0x01");
|
||||||
|
|
||||||
|
// enable TrackPoint Press to Select (PtS)
|
||||||
|
// print("ps2_mouse_init: send 0xE2: ");
|
||||||
|
// rcv = ps2_host_send(0xE2);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x47: ");
|
||||||
|
// rcv = ps2_host_send(0x47);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x2C: ");
|
||||||
|
// rcv = ps2_host_send(0x2C);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x00: ");
|
||||||
|
// rcv = ps2_host_send(0x00);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
|
||||||
|
// set TrackPoint Press to Select threshold
|
||||||
|
// print("ps2_mouse_init: send 0xE2: ");
|
||||||
|
// rcv = ps2_host_send(0xE2);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x81: ");
|
||||||
|
// rcv = ps2_host_send(0x81);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x5C: ");
|
||||||
|
// rcv = ps2_host_send(0x5C);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// // default PtS threshold is 0x08
|
||||||
|
// print("ps2_mouse_init: send 0x04: ");
|
||||||
|
// rcv = ps2_host_send(0x04);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
|
||||||
|
// set TrackPoint Press to Select time constant (zTc)
|
||||||
|
// print("ps2_mouse_init: send 0xE2: ");
|
||||||
|
// rcv = ps2_host_send(0xE2);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x81: ");
|
||||||
|
// rcv = ps2_host_send(0x81);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// print("ps2_mouse_init: send 0x5E: ");
|
||||||
|
// rcv = ps2_host_send(0x5E);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// // default zTc is 0x26
|
||||||
|
// print("ps2_mouse_init: send 0x45: ");
|
||||||
|
// rcv = ps2_host_send(0x45);
|
||||||
|
// phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
|
||||||
|
/*
|
||||||
|
// set TrackPoint Press to Select Jenks Curvature (jkcur)
|
||||||
|
print("ps2_mouse_init: send 0xE2: ");
|
||||||
|
rcv = ps2_host_send(0xE2);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
print("ps2_mouse_init: send 0x81: ");
|
||||||
|
rcv = ps2_host_send(0x81);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
print("ps2_mouse_init: send 0x5D: ");
|
||||||
|
rcv = ps2_host_send(0x5D);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// default jkcur is 0x87
|
||||||
|
print("ps2_mouse_init: send 0x87: ");
|
||||||
|
rcv = ps2_host_send(0x87);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
// set TrackPoint Minimum Drag (mindrag)
|
||||||
|
print("ps2_mouse_init: send 0xE2: ");
|
||||||
|
rcv = ps2_host_send(0xE2);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
print("ps2_mouse_init: send 0x81: ");
|
||||||
|
rcv = ps2_host_send(0x81);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
print("ps2_mouse_init: send 0x59: ");
|
||||||
|
rcv = ps2_host_send(0x59);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
// default PtS mindrag is 0x14
|
||||||
|
print("ps2_mouse_init: send 0x14: ");
|
||||||
|
rcv = ps2_host_send(0x14);
|
||||||
|
phex(rcv); phex(ps2_error); print("\n");
|
||||||
|
*/
|
||||||
|
}
|
|
@ -23,77 +23,77 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
enum led_sequence {
|
enum led_sequence {
|
||||||
LED_IND_EMOJI,
|
|
||||||
LED_IND_NUM,
|
|
||||||
LED_IND_FUNC,
|
|
||||||
|
|
||||||
LED_IND_BATTERY,
|
|
||||||
LED_IND_USB,
|
|
||||||
LED_IND_BLUETOOTH,
|
LED_IND_BLUETOOTH,
|
||||||
|
LED_IND_USB,
|
||||||
|
LED_IND_BATTERY,
|
||||||
|
|
||||||
LED_TAB,
|
LED_IND_FUNC,
|
||||||
LED_ESC,
|
LED_IND_NUM,
|
||||||
LED_LSFT,
|
LED_IND_EMOJI,
|
||||||
LED_LCTL,
|
|
||||||
|
|
||||||
LED_LGUI,
|
LED_BKSP,
|
||||||
LED_Z,
|
LED_ENT,
|
||||||
LED_A,
|
LED_RSFT,
|
||||||
LED_Q,
|
LED_RCTL,
|
||||||
|
|
||||||
LED_W,
|
|
||||||
LED_S,
|
|
||||||
LED_X,
|
|
||||||
LED_LALT,
|
|
||||||
|
|
||||||
LED_PUNC,
|
|
||||||
LED_C,
|
|
||||||
LED_D,
|
|
||||||
LED_E,
|
|
||||||
|
|
||||||
LED_R,
|
|
||||||
LED_F,
|
|
||||||
LED_V,
|
|
||||||
LED_NUM,
|
|
||||||
|
|
||||||
LED_LSPC,
|
|
||||||
LED_B,
|
|
||||||
LED_G,
|
|
||||||
LED_T,
|
|
||||||
|
|
||||||
LED_TRACKPOINT1,
|
|
||||||
LED_TRACKPOINT2,
|
|
||||||
LED_TRACKPOINT3,
|
|
||||||
|
|
||||||
LED_RSPC,
|
|
||||||
LED_N,
|
|
||||||
LED_HH,
|
|
||||||
LED_Y,
|
|
||||||
|
|
||||||
LED_U,
|
|
||||||
LED_J,
|
|
||||||
LED_M,
|
|
||||||
LED_FUNC,
|
|
||||||
|
|
||||||
LED_EMOJI,
|
|
||||||
LED_COMM,
|
|
||||||
LED_K,
|
|
||||||
LED_I,
|
|
||||||
|
|
||||||
LED_O,
|
|
||||||
LED_L,
|
|
||||||
LED_DOT,
|
|
||||||
LED_RALT,
|
|
||||||
|
|
||||||
LED_RGUI,
|
LED_RGUI,
|
||||||
LED_SLSH,
|
LED_SLSH,
|
||||||
LED_SCLN,
|
LED_SCLN,
|
||||||
LED_P,
|
LED_P,
|
||||||
|
|
||||||
LED_BKSP,
|
LED_O,
|
||||||
LED_ENT,
|
LED_L,
|
||||||
LED_RSFT,
|
LED_DOT,
|
||||||
LED_RCTL
|
LED_RALT,
|
||||||
|
|
||||||
|
LED_EMOJI,
|
||||||
|
LED_COMM,
|
||||||
|
LED_K,
|
||||||
|
LED_I,
|
||||||
|
|
||||||
|
LED_U,
|
||||||
|
LED_J,
|
||||||
|
LED_M,
|
||||||
|
LED_FUNC,
|
||||||
|
|
||||||
|
LED_RSPC,
|
||||||
|
LED_N,
|
||||||
|
LED_HH,
|
||||||
|
LED_Y,
|
||||||
|
|
||||||
|
LED_TRACKPOINT3,
|
||||||
|
LED_TRACKPOINT2,
|
||||||
|
LED_TRACKPOINT1,
|
||||||
|
|
||||||
|
LED_LSPC,
|
||||||
|
LED_B,
|
||||||
|
LED_G,
|
||||||
|
LED_T,
|
||||||
|
|
||||||
|
LED_R,
|
||||||
|
LED_F,
|
||||||
|
LED_V,
|
||||||
|
LED_NUM,
|
||||||
|
|
||||||
|
LED_PUNC,
|
||||||
|
LED_C,
|
||||||
|
LED_D,
|
||||||
|
LED_E,
|
||||||
|
|
||||||
|
LED_W,
|
||||||
|
LED_S,
|
||||||
|
LED_X,
|
||||||
|
LED_LALT,
|
||||||
|
|
||||||
|
LED_LGUI,
|
||||||
|
LED_Z,
|
||||||
|
LED_A,
|
||||||
|
LED_Q,
|
||||||
|
|
||||||
|
LED_TAB,
|
||||||
|
LED_ESC,
|
||||||
|
LED_LSFT,
|
||||||
|
LED_LCTL,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -61,7 +61,7 @@ BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
UNICODEMAP_ENABLE = yes
|
UNICODEMAP_ENABLE ?= yes
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
PS2_MOUSE_ENABLE ?= yes
|
PS2_MOUSE_ENABLE ?= yes
|
||||||
|
|
Loading…
Reference in a new issue