aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--converter/sun_usb/Makefile1
-rw-r--r--converter/sun_usb/README20
-rw-r--r--converter/sun_usb/command_extra.c28
-rw-r--r--converter/sun_usb/matrix.c16
4 files changed, 53 insertions, 12 deletions
diff --git a/converter/sun_usb/Makefile b/converter/sun_usb/Makefile
index 35c4bb123..b32497cd9 100644
--- a/converter/sun_usb/Makefile
+++ b/converter/sun_usb/Makefile
@@ -63,6 +63,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
63MOUSEKEY_ENABLE = yes # Mouse keys 63MOUSEKEY_ENABLE = yes # Mouse keys
64EXTRAKEY_ENABLE = yes # Audio control and System control 64EXTRAKEY_ENABLE = yes # Audio control and System control
65CONSOLE_ENABLE = yes # Console for debug 65CONSOLE_ENABLE = yes # Console for debug
66COMMAND_ENABLE = yes # Commands for debug and configuration
66#NKRO_ENABLE = yes # USB Nkey Rollover 67#NKRO_ENABLE = yes # USB Nkey Rollover
67 68
68 69
diff --git a/converter/sun_usb/README b/converter/sun_usb/README
index ee59fc757..276f6bfff 100644
--- a/converter/sun_usb/README
+++ b/converter/sun_usb/README
@@ -77,3 +77,23 @@ Just use 'make'
77 $ cd sun_usb 77 $ cd sun_usb
78 $ make 78 $ make
79Then, load the binary to MCU with your favorite programmer. 79Then, load the binary to MCU with your favorite programmer.
80
81
82Sun commands
83------------
84You can send Sun protocol commands with TMK `Magic` key combo. By default `Magic` key is `LShift` + `RShift`, `LAlt` + `RAlt' or `LMeta` + `RMeta`.
85https://github.com/tmk/tmk_keyboard#magic-commands
86
87Following Sun specific commands are available. For example, to send 'Bell On' you can press `LShift` + `RShift` + `Up` keys simultaneously.
88
89```
90----- Sun converter Help -----
91Up: Bell On
92Down: Bell Off
93Left: Click On
94Right: Click Off
95PgUp: LED all On
96PgDown: LED all On
97Insert: Layout
98Delete: Reset
99```
diff --git a/converter/sun_usb/command_extra.c b/converter/sun_usb/command_extra.c
index 50389467e..aba3fe6da 100644
--- a/converter/sun_usb/command_extra.c
+++ b/converter/sun_usb/command_extra.c
@@ -11,11 +11,19 @@ bool command_extra(uint8_t code)
11 case KC_H: 11 case KC_H:
12 case KC_SLASH: /* ? */ 12 case KC_SLASH: /* ? */
13 print("\n\n----- Sun converter Help -----\n"); 13 print("\n\n----- Sun converter Help -----\n");
14 print("UP: Bell On\n"); 14 print("Up: Bell On\n");
15 print("DOWN: Bell Off\n"); 15 print("Down: Bell Off\n");
16 print("LEFT: Click On\n"); 16 print("Left: Click On\n");
17 print("RIGHT: Click Off\n"); 17 print("Right: Click Off\n");
18 print("PgUp: LED all On\n");
19 print("PgDown: LED all On\n");
20 print("Insert: Layout\n");
21 print("Delete: Reset\n");
18 return false; 22 return false;
23 case KC_DEL:
24 print("Reset\n");
25 serial_send(0x01);
26 break;
19 case KC_UP: 27 case KC_UP:
20 print("Bell On\n"); 28 print("Bell On\n");
21 serial_send(0x02); 29 serial_send(0x02);
@@ -32,7 +40,17 @@ bool command_extra(uint8_t code)
32 print("Click Off\n"); 40 print("Click Off\n");
33 serial_send(0x0B); 41 serial_send(0x0B);
34 break; 42 break;
35 case KC_NUMLOCK: 43 case KC_PGUP:
44 print("LED all on\n");
45 serial_send(0x0E);
46 serial_send(0xFF);
47 break;
48 case KC_PGDOWN:
49 print("LED all off\n");
50 serial_send(0x0E);
51 serial_send(0x00);
52 break;
53 case KC_INSERT:
36 print("layout\n"); 54 print("layout\n");
37 serial_send(0x0F); 55 serial_send(0x0F);
38 break; 56 break;
diff --git a/converter/sun_usb/matrix.c b/converter/sun_usb/matrix.c
index 988622bc3..f333f542b 100644
--- a/converter/sun_usb/matrix.c
+++ b/converter/sun_usb/matrix.c
@@ -65,7 +65,7 @@ void matrix_init(void)
65{ 65{
66 DDRD |= (1<<6); 66 DDRD |= (1<<6);
67 PORTD |= (1<<6); 67 PORTD |= (1<<6);
68 debug_enable = true; 68 //debug_enable = true;
69 69
70 serial_init(); 70 serial_init();
71 71
@@ -86,14 +86,16 @@ uint8_t matrix_scan(void)
86 debug_hex(code); debug(" "); 86 debug_hex(code); debug(" ");
87 87
88 switch (code) { 88 switch (code) {
89 case 0x7E: // reset fail
90 case 0xFE: // layout
91 case 0xFF: // reset success 89 case 0xFF: // reset success
90 case 0xFE: // layout
91 case 0x7E: // reset fail
92 if (code == 0xFF) print("reset: 0xFF ");
93 if (code == 0x7E) print("reset fail: 0x7E ");
94 if (code == 0xFE) print("layout: 0xFE ");
95 // response byte
92 _delay_ms(500); 96 _delay_ms(500);
93 // ignore response byte 97 if (code = serial_recv()) print_hex8(code);
94 debug("(response ignored:"); 98 print("\n");
95 while ((code = serial_recv())) { debug(" "); debug_hex(code); }
96 debug(") ");
97 // FALL THROUGH 99 // FALL THROUGH
98 case 0x7F: 100 case 0x7F:
99 // all keys up 101 // all keys up