aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-04-07 07:30:40 -0700
committerDrashna Jaelre <drashna@live.com>2019-04-07 07:30:40 -0700
commit0231caa25aa258a79a7fb73cc57723655055b928 (patch)
tree90624a1942962dcf78a50a5c13bc355c1f43a321 /keyboards
parent5c1ef2bddc0fa5d4753d33a5ec8fed5d9da736c8 (diff)
downloadqmk_firmware-0231caa25aa258a79a7fb73cc57723655055b928.tar.gz
qmk_firmware-0231caa25aa258a79a7fb73cc57723655055b928.zip
[Keyboard] Refactor FaceW for new BMC changes (#5575)
* use #pragma once for guards * update readme and fix pyusb install instructions * replace custom i2c code with QMK i2c_master * remove unneeded code from config.h * fix keyboard name * remove custom matrix and i2c driver * turn off bootmagic, turn on leds * remove keymap in favor of userspace/community layouts keymap * remove custom matrix * update readme
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/facew/config.h7
-rw-r--r--keyboards/facew/facew.c4
-rw-r--r--keyboards/facew/facew.h5
-rw-r--r--keyboards/facew/i2c.c106
-rw-r--r--keyboards/facew/i2c.h27
-rw-r--r--keyboards/facew/keymaps/mechmerlin/keymap.c51
-rw-r--r--keyboards/facew/keymaps/mechmerlin/readme.md18
-rw-r--r--keyboards/facew/matrix.c106
-rw-r--r--keyboards/facew/readme.md20
-rw-r--r--keyboards/facew/rules.mk9
-rw-r--r--keyboards/facew/usbconfig.h13
11 files changed, 20 insertions, 346 deletions
diff --git a/keyboards/facew/config.h b/keyboards/facew/config.h
index c952ca737..b4fb0d4cd 100644
--- a/keyboards/facew/config.h
+++ b/keyboards/facew/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef FACEW_CONFIG_H 18#pragma once
19#define FACEW_CONFIG_H
20 19
21#include "config_common.h" 20#include "config_common.h"
22 21
@@ -40,7 +39,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
40#define NO_BACKLIGHT_CLOCK 39#define NO_BACKLIGHT_CLOCK
41#define BACKLIGHT_LEVELS 1 40#define BACKLIGHT_LEVELS 1
42#define RGBLIGHT_ANIMATIONS 41#define RGBLIGHT_ANIMATIONS
43
44#define NO_UART 1
45
46#endif
diff --git a/keyboards/facew/facew.c b/keyboards/facew/facew.c
index 9c255c68f..7ec56548b 100644
--- a/keyboards/facew/facew.c
+++ b/keyboards/facew/facew.c
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#include <avr/pgmspace.h> 26#include <avr/pgmspace.h>
27 27
28#include "action_layer.h" 28#include "action_layer.h"
29#include "i2c.h" 29#include "i2c_master.h"
30#include "quantum.h" 30#include "quantum.h"
31 31
32#ifdef RGBLIGHT_ENABLE 32#ifdef RGBLIGHT_ENABLE
@@ -42,7 +42,7 @@ void rgblight_set(void) {
42 } 42 }
43 43
44 i2c_init(); 44 i2c_init();
45 i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM); 45 i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
46} 46}
47#endif 47#endif
48 48
diff --git a/keyboards/facew/facew.h b/keyboards/facew/facew.h
index 215e06090..b3356f262 100644
--- a/keyboards/facew/facew.h
+++ b/keyboards/facew/facew.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef FACEW_H 18#pragma once
19#define FACEW_H
20 19
21#include "quantum.h" 20#include "quantum.h"
22 21
@@ -53,5 +52,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
53 { KC_NO, K61, KC_NO, KC_NO, K64, K65, K66, KC_NO, K68, K69, K60}, \ 52 { KC_NO, K61, KC_NO, KC_NO, K64, K65, K66, KC_NO, K68, K69, K60}, \
54 { KC_NO, K71, K72, K73, K74, K75, K76, K77, K78, KC_NO, KC_NO}, \ 53 { KC_NO, K71, K72, K73, K74, K75, K76, K77, K78, KC_NO, KC_NO}, \
55} 54}
56
57#endif
diff --git a/keyboards/facew/i2c.c b/keyboards/facew/i2c.c
deleted file mode 100644
index a4f952135..000000000
--- a/keyboards/facew/i2c.c
+++ /dev/null
@@ -1,106 +0,0 @@
1/*
2Copyright 2016 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18// Please do not modify this file
19
20#include <avr/io.h>
21#include <util/twi.h>
22
23#include "i2c.h"
24
25void i2c_set_bitrate(uint16_t bitrate_khz) {
26 uint8_t bitrate_div = ((F_CPU / 1000l) / bitrate_khz);
27 if (bitrate_div >= 16) {
28 bitrate_div = (bitrate_div - 16) / 2;
29 }
30 TWBR = bitrate_div;
31}
32
33void i2c_init(void) {
34 // set pull-up resistors on I2C bus pins
35 PORTC |= 0b11;
36
37 i2c_set_bitrate(400);
38
39 // enable TWI (two-wire interface)
40 TWCR |= (1 << TWEN);
41
42 // enable TWI interrupt and slave address ACK
43 TWCR |= (1 << TWIE);
44 TWCR |= (1 << TWEA);
45}
46
47uint8_t i2c_start(uint8_t address) {
48 // reset TWI control register
49 TWCR = 0;
50
51 // begin transmission and wait for it to end
52 TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
53 while (!(TWCR & (1<<TWINT)));
54
55 // check if the start condition was successfully transmitted
56 if ((TWSR & 0xF8) != TW_START) {
57 return 1;
58 }
59
60 // transmit address and wait
61 TWDR = address;
62 TWCR = (1<<TWINT) | (1<<TWEN);
63 while (!(TWCR & (1<<TWINT)));
64
65 // check if the device has acknowledged the READ / WRITE mode
66 uint8_t twst = TW_STATUS & 0xF8;
67 if ((twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK)) {
68 return 1;
69 }
70
71 return 0;
72}
73
74void i2c_stop(void) {
75 TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
76}
77
78uint8_t i2c_write(uint8_t data) {
79 TWDR = data;
80
81 // transmit data and wait
82 TWCR = (1<<TWINT) | (1<<TWEN);
83 while (!(TWCR & (1<<TWINT)));
84
85 if ((TWSR & 0xF8) != TW_MT_DATA_ACK) {
86 return 1;
87 }
88
89 return 0;
90}
91
92uint8_t i2c_send(uint8_t address, uint8_t *data, uint16_t length) {
93 if (i2c_start(address)) {
94 return 1;
95 }
96
97 for (uint16_t i = 0; i < length; i++) {
98 if (i2c_write(data[i])) {
99 return 1;
100 }
101 }
102
103 i2c_stop();
104
105 return 0;
106}
diff --git a/keyboards/facew/i2c.h b/keyboards/facew/i2c.h
deleted file mode 100644
index 93a69c94d..000000000
--- a/keyboards/facew/i2c.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/*
2Copyright 2016 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18// Please do not modify this file
19
20#ifndef __I2C_H__
21#define __I2C_H__
22
23void i2c_init(void);
24void i2c_set_bitrate(uint16_t bitrate_khz);
25uint8_t i2c_send(uint8_t address, uint8_t *data, uint16_t length);
26
27#endif
diff --git a/keyboards/facew/keymaps/mechmerlin/keymap.c b/keyboards/facew/keymaps/mechmerlin/keymap.c
deleted file mode 100644
index d7fb7a7ae..000000000
--- a/keyboards/facew/keymaps/mechmerlin/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
1/*
2Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_all(
22 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
24 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
25 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2),
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL
27 ),
28 [1] = LAYOUT_all(
29 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_DEL,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
34 ),
35 [2] = LAYOUT_all(
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
41 ),
42
43 [3] = LAYOUT_all(
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 ),
50};
51
diff --git a/keyboards/facew/keymaps/mechmerlin/readme.md b/keyboards/facew/keymaps/mechmerlin/readme.md
deleted file mode 100644
index eeb83b0a1..000000000
--- a/keyboards/facew/keymaps/mechmerlin/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
1MechMerlin's FaceW Sprit Edition Layout
2======================
3
4This is the preferred 60% layout used by u/merlin36, host of the [MechMerlin YouTube channel](www.youtube.com/mechmerlin).
5
6## Keyboard Notes
7- The FaceW Sprit Edition can be purchased on [mechanicalkeyboards.com](www.mechanicalkeyboards.com)
8- Uses ps2avru instead of ps2avrgb
9- To put in reset mode hold `q` while inserting the USB cable
10- Use flashing instructions from ps2avrgb QMK port
11
12## Keymap Notes
13- Does not support any form of inswitch lighting as Merlin hates them.
14- Arrow toggle switch to the right of right shift
15- Reset is FN + Left Shift + R
16
17### Build
18To build this keymap, simply run `make facew:mechmerlin` from the qmk_firmware directory.
diff --git a/keyboards/facew/matrix.c b/keyboards/facew/matrix.c
deleted file mode 100644
index 57aa36b5f..000000000
--- a/keyboards/facew/matrix.c
+++ /dev/null
@@ -1,106 +0,0 @@
1/*
2Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include <avr/io.h>
19#include <util/delay.h>
20
21#include "matrix.h"
22
23#ifndef DEBOUNCE
24#define DEBOUNCE 5
25#endif
26
27static uint8_t debouncing = DEBOUNCE;
28
29static matrix_row_t matrix[MATRIX_ROWS];
30static matrix_row_t matrix_debouncing[MATRIX_ROWS];
31
32void matrix_init(void) {
33 // all outputs for rows high
34 DDRB = 0xFF;
35 PORTB = 0xFF;
36 // all inputs for columns
37 DDRA = 0x00;
38 DDRC &= ~(0x111111<<2);
39 DDRD &= ~(1<<PIND7);
40 // all columns are pulled-up
41 PORTA = 0xFF;
42 PORTC |= (0b111111<<2);
43 PORTD |= (1<<PIND7);
44
45 // initialize matrix state: all keys off
46 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
47 matrix[row] = 0x00;
48 matrix_debouncing[row] = 0x00;
49 }
50}
51
52void matrix_set_row_status(uint8_t row) {
53 DDRB = (1 << row);
54 PORTB = ~(1 << row);
55}
56
57uint8_t bit_reverse(uint8_t x) {
58 x = ((x >> 1) & 0x55) | ((x << 1) & 0xaa);
59 x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc);
60 x = ((x >> 4) & 0x0f) | ((x << 4) & 0xf0);
61 return x;
62}
63
64uint8_t matrix_scan(void) {
65 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
66 matrix_set_row_status(row);
67 _delay_us(5);
68
69 matrix_row_t cols = (
70 // cols 0..7, PORTA 0 -> 7
71 (~PINA) & 0xFF
72 ) | (
73 // cols 8..13, PORTC 7 -> 0
74 bit_reverse((~PINC) & 0xFF) << 8
75 ) | (
76 // col 14, PORTD 7
77 ((~PIND) & (1 << PIND7)) << 7
78 );
79
80 if (matrix_debouncing[row] != cols) {
81 matrix_debouncing[row] = cols;
82 debouncing = DEBOUNCE;
83 }
84 }
85
86 if (debouncing) {
87 if (--debouncing) {
88 _delay_ms(1);
89 } else {
90 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
91 matrix[i] = matrix_debouncing[i];
92 }
93 }
94 }
95
96 matrix_scan_user();
97
98 return 1;
99}
100
101inline matrix_row_t matrix_get_row(uint8_t row) {
102 return matrix[row];
103}
104
105void matrix_print(void) {
106}
diff --git a/keyboards/facew/readme.md b/keyboards/facew/readme.md
index 578dcf888..b749d18d2 100644
--- a/keyboards/facew/readme.md
+++ b/keyboards/facew/readme.md
@@ -2,20 +2,12 @@
2 2
3A 60% no frills keyboard. 3A 60% no frills keyboard.
4 4
5The FaceW is a special run of the WKL B.Face sourced from Sprit that doesn't have underglow RGB LEDs 5The FaceW is a special run of the WKL B.Face sourced from Sprit that doesn't have underglow RGB LEDs but does have in switch LEDs. Also unlike the B.Face, it is based on ps2avru instead of ps2avrGB. It is designed and manufactured in Korea.
6but does have in switch LEDs. Also unlike the B.Face, it is based on ps2avru instead of ps2avrGB. It
7is designed and manufactured in Korea. It originally uses BootMapperClient for programming but
8can now also use QMK.
9 6
10Keyboard Maintainer: [MechMerlin](www.github.com/mechmerlin) 7Keyboard Maintainer: [MechMerlin](www.github.com/mechmerlin)
11Hardware Supported: FaceW Sprit Edition PCB 8Hardware Supported: FaceW Sprit Edition PCB
12Hardware Availability: https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=1352 9Hardware Availability: https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=1352
13 10
14## Keyboard Notes
15- The FaceW Sprit Edition can be purchased on [mechanicalkeyboards.com](www.mechanicalkeyboards.com)
16- Uses ps2avru instead of ps2avrgb
17- To put in reset mode hold `q` while inserting the USB cable
18
19Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
20 12
21 make facew:default 13 make facew:default
@@ -24,6 +16,8 @@ Flashing
24 16
25ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. 17ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
26 18
19**Reset Key:** To put the FaceW into reset, hold `q` (`K01`) while plugging in.
20
27Windows: 21Windows:
281. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). 221. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
292. Place your keyboard into reset. 232. Place your keyboard into reset.
@@ -42,12 +36,12 @@ macOS:
42 ``` 36 ```
433. Install the following packages: 373. Install the following packages:
44 ``` 38 ```
45 brew install python 39 brew install python3
46 brew install pyusb 40 pip3 install pyusb
47 brew install --HEAD`https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb 41 brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
48 42
494. Place your keyboard into reset. 434. Place your keyboard into reset.
505. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. 445. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
51 45
52 46
53See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 47See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/facew/rules.mk b/keyboards/facew/rules.mk
index 77d29b332..b939b0fd2 100644
--- a/keyboards/facew/rules.mk
+++ b/keyboards/facew/rules.mk
@@ -31,20 +31,19 @@ F_CPU = 12000000
31BOOTLOADER = bootloadHID 31BOOTLOADER = bootloadHID
32 32
33# build options 33# build options
34BOOTMAGIC_ENABLE = yes 34BOOTMAGIC_ENABLE = no
35MOUSEKEY_ENABLE = yes 35MOUSEKEY_ENABLE = yes
36EXTRAKEY_ENABLE = yes 36EXTRAKEY_ENABLE = yes
37CONSOLE_ENABLE = yes 37CONSOLE_ENABLE = yes
38COMMAND_ENABLE = yes 38COMMAND_ENABLE = yes
39BACKLIGHT_ENABLE = no 39BACKLIGHT_ENABLE = yes
40RGBLIGHT_ENABLE = no 40RGBLIGHT_ENABLE = yes
41RGBLIGHT_CUSTOM_DRIVER = yes 41RGBLIGHT_CUSTOM_DRIVER = yes
42 42
43OPT_DEFS = -DDEBUG_LEVEL=0 43OPT_DEFS = -DDEBUG_LEVEL=0
44 44
45# custom matrix setup 45# custom matrix setup
46CUSTOM_MATRIX = yes 46SRC = i2c_master.c
47SRC = matrix.c i2c.c
48 47
49# programming options 48# programming options
50PROGRAM_CMD = ./util/atmega32a_program.py $(TARGET).hex 49PROGRAM_CMD = ./util/atmega32a_program.py $(TARGET).hex
diff --git a/keyboards/facew/usbconfig.h b/keyboards/facew/usbconfig.h
index d2d848fcd..f3d663f8a 100644
--- a/keyboards/facew/usbconfig.h
+++ b/keyboards/facew/usbconfig.h
@@ -8,8 +8,7 @@
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ 8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */ 9 */
10 10
11#ifndef __usbconfig_h_included__ 11#pragma once
12#define __usbconfig_h_included__
13 12
14#include "config.h" 13#include "config.h"
15 14
@@ -241,8 +240,8 @@ section at the end of this file).
241#define USB_CFG_DEVICE_VERSION 0x00, 0x02 240#define USB_CFG_DEVICE_VERSION 0x00, 0x02
242/* Version number of the device: Minor number first, then major number. 241/* Version number of the device: Minor number first, then major number.
243 */ 242 */
244#define USB_CFG_VENDOR_NAME 'w', 'i', 'n', 'k', 'e', 'y', 'l', 'e', 's', 's', '.', 'k', 'r' 243#define USB_CFG_VENDOR_NAME 'S', 'p', 'r', 'i', 't'
245#define USB_CFG_VENDOR_NAME_LEN 13 244#define USB_CFG_VENDOR_NAME_LEN 5
246/* These two values define the vendor name returned by the USB device. The name 245/* These two values define the vendor name returned by the USB device. The name
247 * must be given as a list of characters under single quotes. The characters 246 * must be given as a list of characters under single quotes. The characters
248 * are interpreted as Unicode (UTF-16) entities. 247 * are interpreted as Unicode (UTF-16) entities.
@@ -251,8 +250,8 @@ section at the end of this file).
251 * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for 250 * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for
252 * details. 251 * details.
253 */ 252 */
254#define USB_CFG_DEVICE_NAME 'p', 's', '2', 'a', 'v', 'r', 'G', 'B' 253#define USB_CFG_DEVICE_NAME 'F', 'a', 'c', 'e', 'W'
255#define USB_CFG_DEVICE_NAME_LEN 8 254#define USB_CFG_DEVICE_NAME_LEN 5
256/* Same as above for the device name. If you don't want a device name, undefine 255/* Same as above for the device name. If you don't want a device name, undefine
257 * the macros. See the file USB-IDs-for-free.txt before you assign a name if 256 * the macros. See the file USB-IDs-for-free.txt before you assign a name if
258 * you use a shared VID/PID. 257 * you use a shared VID/PID.
@@ -392,5 +391,3 @@ section at the end of this file).
392/* #define USB_INTR_PENDING EIFR */ 391/* #define USB_INTR_PENDING EIFR */
393#define USB_INTR_PENDING_BIT INTF1 392#define USB_INTR_PENDING_BIT INTF1
394#define USB_INTR_VECTOR INT1_vect 393#define USB_INTR_VECTOR INT1_vect
395
396#endif /* __usbconfig_h_included__ */