aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlistofoptions <39714365+listofoptions@users.noreply.github.com>2018-09-23 21:46:53 -0400
committerDrashna Jaelre <drashna@live.com>2018-09-23 18:46:53 -0700
commitce057ea47448d0df2a05efa419f61563649a5821 (patch)
tree90b1fbbd6ec069b0a8cf939c1d68b9ba64b70208
parent58b9b22670c2c36e8502826349d8f752d8b3ab37 (diff)
downloadqmk_firmware-ce057ea47448d0df2a05efa419f61563649a5821.tar.gz
qmk_firmware-ce057ea47448d0df2a05efa419f61563649a5821.zip
Keyboard: HP 46010A converter (#3967)
* funged git history, restarting * tested and working (message typed on this) * updated documentation to include wiring directions * formatting * updated matrix and default layout a bit * getting ready for merge into main repo * getting ready for merge into main repo v2 * cleaning * cleaning repo of extranious files * updated documentation
-rw-r--r--keyboards/converter/hp_46010a/config.h35
-rw-r--r--keyboards/converter/hp_46010a/hp_46010a.c3
-rw-r--r--keyboards/converter/hp_46010a/hp_46010a.h62
-rw-r--r--keyboards/converter/hp_46010a/info.json6
-rw-r--r--keyboards/converter/hp_46010a/keymaps/default/keymap.c45
-rw-r--r--keyboards/converter/hp_46010a/matrix.c244
-rw-r--r--keyboards/converter/hp_46010a/readme.md52
-rw-r--r--keyboards/converter/hp_46010a/rules.mk72
8 files changed, 519 insertions, 0 deletions
diff --git a/keyboards/converter/hp_46010a/config.h b/keyboards/converter/hp_46010a/config.h
new file mode 100644
index 000000000..f77ed4115
--- /dev/null
+++ b/keyboards/converter/hp_46010a/config.h
@@ -0,0 +1,35 @@
1/*
2Copyright 2018 listofoptions <listofoptions@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#pragma once
19
20#include "config_common.h"
21
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x6060
24#define DEVICE_VER 1
25#define MANUFACTURER QMK
26#define PRODUCT 46010A keyboard converter
27#define DESCRIPTION 46010A keyboard converter
28
29#define MATRIX_ROWS 14
30#define MATRIX_COLS 8
31
32/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
33#define DEBOUNCING_DELAY 5
34
35
diff --git a/keyboards/converter/hp_46010a/hp_46010a.c b/keyboards/converter/hp_46010a/hp_46010a.c
new file mode 100644
index 000000000..915a220f9
--- /dev/null
+++ b/keyboards/converter/hp_46010a/hp_46010a.c
@@ -0,0 +1,3 @@
1#include "hp_46010a.h"
2#include <avr/io.h>
3#include "quantum.h" \ No newline at end of file
diff --git a/keyboards/converter/hp_46010a/hp_46010a.h b/keyboards/converter/hp_46010a/hp_46010a.h
new file mode 100644
index 000000000..db64ce24a
--- /dev/null
+++ b/keyboards/converter/hp_46010a/hp_46010a.h
@@ -0,0 +1,62 @@
1/*
2Copyright 2018 listofoptions <listofoptions@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#pragma once
19
20#include "quantum.h"
21
22/* ,---------. ,---------------------------------------------------------. ,---------. ,-------------------.
23 * | res|stop| | f1| f2| f3| f4|menu|user| f5| f6| f7| f8| |clrl|clrd| | | | | |
24 * `---------' `---------------------------------------------------------' `---------' `-------------------'
25 * ,------------------------------------------------------------------------..---------. ,-------------------.
26 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| +| back||insl|dell| | *| /| +| -|
27 * |------------------------------------------------------------------------||---------| |-------------------|
28 * | tab| q| w| e| r| t| y| u| i| o| p| [| ]| \||insc|delc| | 7| 8| 9|pade|
29 * |------------------------------------------------------------------------||---------| |-------------------|
30 * |caps|ctrl| a| s| d| f| g| h| j| k| l| ;| '| retr|| cur|prev| | 4| 5| 6| ,|
31 * |------------------------------------------------------------------------------------ |-------------------|
32 * |dele|lshf | z| x| c| v| b| n| m| ,| .| /|rshf |sel | up|next| | 1| 2| 3| tab|
33 * |-------------------------------------------------------------------------|---------| |--------------- |
34 * |prnt| |lalt| space |ralt| |left|down|rght| | 0| .| |
35 * `-----------------------------------------------------------------------------------' `-------------------'
36 */
37
38#define LAYOUT_HP_46010A( \
39 KEY_RES, KEY_STOP, KEY_F1, KEY_F2, KEY_F3, KEY_F4,KEY_MENU,KEY_USER, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_CLRL, KEY_CLRD, KEY_B1, KEY_B2, KEY_B3, KEY_B4, \
40 KEY_GRAV, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_MINU, KEY_PLUS, KEY_BACK, KEY_INSL, KEY_DELL, KEY_MULT, KEY_DIV, KEY_ADD, KEY_SUBT, \
41 KEY_TAB, KEY_Q,KEY_W, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I, KEY_O, KEY_P, KEY_LBRA, KEY_RBRA, KEY_PIPE, KEY_INSC, KEY_DELC, KEY_P7, KEY_P8, KEY_P9, KEY_PADE, \
42 KEY_CAPS, KEY_CTRL, KEY_A, KEY_S, KEY_D, KEY_F, KEY_G, KEY_H, KEY_J, KEY_K, KEY_L, KEY_SEMI, KEY_QUOT, KEY_RETR, KEY_CUR, KEY_PREV, KEY_P4, KEY_P5, KEY_P6, KEY_PCOM, \
43 KEY_DELE, KEY_LSHF, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, KEY_COMA, KEY_DOT, KEY_SLAS,KEY_RSHF, KEY_SEL, KEY_UP, KEY_NEXT, KEY_P1, KEY_P2, KEY_P3, KEY_PTAB, \
44 KEY_PRNT, KEY_LALT, KEY_SPACE , KEY_RALT, KEY_LEFT, KEY_DOWN, KEY_RGHT, KEY_P0, KEY_PDOT \
45) { \
46 {KEY_USER, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_CLRL, KEY_CLRD, KEY_MENU }, \
47 {KEY_9, KEY_0, KEY_MINU, KEY_PLUS, KEY_BACK, KEY_INSL, KEY_DELL, KEY_8 }, \
48 {KEY_O, KEY_P, KEY_LBRA, KEY_RBRA, KEY_PIPE, KEY_INSC, KEY_DELC, KEY_I }, \
49 {KEY_K, KEY_L, KEY_SEMI, KEY_QUOT, KEY_RETR, KEY_CUR, KEY_PREV, KEY_J }, \
50 {KEY_COMA, KEY_DOT, KEY_SLAS, KEY_1, KEY_SEL, KEY_UP, KEY_NEXT, KEY_M }, \
51 {KEY_SPACE, KEY_LALT, KEY_RALT, KC_NO, KEY_LEFT, KEY_DOWN, KEY_RGHT, KC_NO }, \
52 {KEY_F3, KEY_F2, KEY_F1, KEY_GRAV, KEY_CTRL, KEY_STOP, KEY_G, KEY_F4 }, \
53 {KEY_6, KEY_5, KEY_4, KEY_3, KEY_CAPS, KEY_RSHF, KEY_LSHF, KEY_7 }, \
54 {KEY_Y, KEY_T, KEY_R, KEY_E, KEY_W, KEY_Q, KEY_TAB, KEY_U }, \
55 {KEY_RES, KEY_F, KEY_D, KEY_S, KEY_A, KC_NO, KEY_2, KEY_H }, \
56 {KEY_P7, KEY_P4, KEY_P8, KEY_P5, KEY_P9, KEY_P6, KEY_PADE, KEY_PCOM }, \
57 {KEY_MULT, KEY_P1, KEY_DIV, KEY_P2, KEY_PLUS, KEY_P3, KEY_MINU, KEY_PTAB }, \
58 {KEY_B1, KEY_P0, KEY_B2, KC_NO, KEY_B3, KEY_PDOT, KEY_B4, KC_NO }, \
59 {KEY_B, KEY_V, KEY_C, KEY_X, KEY_Z, KEY_PRNT, KEY_DELE, KEY_N }, \
60}
61
62#define LAYOUT LAYOUT_HP_46010A
diff --git a/keyboards/converter/hp_46010a/info.json b/keyboards/converter/hp_46010a/info.json
new file mode 100644
index 000000000..de68a1228
--- /dev/null
+++ b/keyboards/converter/hp_46010a/info.json
@@ -0,0 +1,6 @@
1{
2 "keyboard_name": "HP_46010A",
3 "keyboard_folder": "converter/HP_46010A",
4 "url": "https://deskthority.net/wiki/HP_46010A",
5 "maintainer": "listofoptions",
6}
diff --git a/keyboards/converter/hp_46010a/keymaps/default/keymap.c b/keyboards/converter/hp_46010a/keymaps/default/keymap.c
new file mode 100644
index 000000000..cb65bd422
--- /dev/null
+++ b/keyboards/converter/hp_46010a/keymaps/default/keymap.c
@@ -0,0 +1,45 @@
1/*
2Copyright 2018 listofoptions <listofoptions@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 /* ,---------. ,---------------------------------------------------------. ,---------. ,-------------------.
22 * | esc|xxxx| | f1| f2| f3| f4|xxxx|xxxx| f5| f6| f7| f8| |xxxx|xxxx| | f9| f10| f11| f12|
23 * `---------' `---------------------------------------------------------' `---------' `-------------------'
24 * ,------------------------------------------------------------------------..---------. ,-------------------.
25 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| back||ins |home| | *| /| +| -|
26 * |------------------------------------------------------------------------||---------| |-------------------|
27 * | tab| q| w| e| r| t| y| u| i| o| p| [| ]| \||del | end| | 7| 8| 9|pade|
28 * |------------------------------------------------------------------------||---------| |-------------------|
29 * |caps|ctrl| a| s| d| f| g| h| j| k| l| ;| '| retr||xxxx|pgup| | 4| 5| 6| ,|
30 * |------------------------------------------------------------------------------------ |-------------------|
31 * |del |lsft | z| x| c| v| b| n| m| ,| .| /|rsft | app| up|pgdn| | 1| 2| 3| tab|
32 * |-------------------------------------------------------------------------|---------| |--------------- |
33 * | gui| |lalt| space |ralt| |left|down|rght| | 0| .| |
34 * `-----------------------------------------------------------------------------------' `-------------------'
35 */
36
37 [0] = LAYOUT(
38 KC_ESC, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4,KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, \
39 KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_INS, KC_HOME, KC_PAST, KC_PSLS, KC_PPLS, KC_PMNS, \
40 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, KC_DEL, KC_END, KC_P7, KC_P8, KC_P9, KC_PENT, \
41 KC_CAPS, 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_ENT, KC_NO, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PCMM, \
42 KC_DEL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,KC_RSFT, KC_APP, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_TAB, \
43 KC_LGUI, KC_LALT, KC_SPACE , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
44 )
45} ; \ No newline at end of file
diff --git a/keyboards/converter/hp_46010a/matrix.c b/keyboards/converter/hp_46010a/matrix.c
new file mode 100644
index 000000000..2ca7d0357
--- /dev/null
+++ b/keyboards/converter/hp_46010a/matrix.c
@@ -0,0 +1,244 @@
1/*
2Copyright 2018 listofoptions <listofoptions@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 <stdint.h>
19#include <stdbool.h>
20#include <string.h>
21#if defined(__AVR__)
22#include <avr/io.h>
23#endif
24#include <util/delay.h>
25
26#include "wait.h"
27#include "print.h"
28#include "debug.h"
29#include "util.h"
30#include "matrix.h"
31#include "timer.h"
32#include "LUFA/Drivers/Peripheral/SPI.h"
33
34#include "config.h"
35
36
37#ifndef DEBOUNCING_DELAY
38# define DEBOUNCING_DELAY 5
39#endif
40
41#if ( DEBOUNCING_DELAY > 0 )
42static uint16_t debouncing_time ;
43static bool debouncing = false ;
44#endif
45
46static uint8_t matrix [MATRIX_ROWS] = {0};
47
48#if ( DEBOUNCING_DELAY > 0 )
49static uint8_t matrix_debounce_old [MATRIX_ROWS] = {0};
50static uint8_t matrix_debounce_new [MATRIX_ROWS] = {0};
51#endif
52
53__attribute__ ((weak))
54void matrix_init_quantum(void) {
55 matrix_init_kb();
56}
57
58__attribute__ ((weak))
59void matrix_scan_quantum(void) {
60 matrix_scan_kb();
61}
62
63__attribute__ ((weak))
64void matrix_init_kb(void) {
65 matrix_init_user();
66}
67
68__attribute__ ((weak))
69void matrix_scan_kb(void) {
70 matrix_scan_user();
71}
72
73__attribute__ ((weak))
74void matrix_init_user(void) {
75}
76
77__attribute__ ((weak))
78void matrix_scan_user(void) {
79}
80
81// the keyboard's internal wiring is such that the inputs to the logic are
82// a clock signal, and a reset line.
83// the output is a single output pin. im bitbanging here, but the SPI controller
84// would work normally
85//
86// the device functions, by using the clock signal to count 128 bits, the lower
87// 3 bits of this 7 bit counter are tied to a 1-of-8 multiplexer, this forms
88// the columns.
89// the upper 4 bits form the rows, and are decoded using bcd to decimal
90// decoders, so that 14 out of 16 of the outputs are wired to the rows of the
91// matrix. each switch has a diode, such that the row signal feeds into the
92// switch, and then into the diode, then into one of the columns into the
93// matrix. the reset pin can be used to reset the entire counter.
94
95#define RESET _BV(PB0)
96#define SCLK _BV(PB1)
97#define SDATA _BV(PB3)
98#define LED _BV(PD6)
99
100inline
101static
102void SCLK_increment(void) {
103 PORTB &= ~SCLK ;
104 _delay_us( 4 ) ; // make sure the line is stable
105 PORTB |= SCLK ;
106 _delay_us( 4 ) ;
107
108 return ;
109}
110
111inline
112static
113void Matrix_Reset(void) {
114 PORTB |= RESET ;
115 _delay_us( 4 ) ; // make sure the line is stable
116 PORTB &= ~RESET ;
117
118 return ;
119}
120
121inline
122static
123uint8_t Matrix_ReceiveByte (void) {
124 uint8_t received = 0 ;
125 uint8_t temp = 0 ;
126 for ( uint8_t bit = 0; bit < MATRIX_COLS; ++bit ) {
127 // toggle the clock
128 SCLK_increment();
129 temp = (PINB & SDATA) << 4 ;
130 received |= temp >> bit ;
131 }
132
133 return received ;
134}
135
136inline
137static
138void Matrix_ThrowByte(void) {
139 // we use MATRIX_COLS - 1 here because that would put us at 7 clocks
140 for ( uint8_t bit = 0; bit < MATRIX_COLS - 1; ++bit ) {
141 // toggle the clock
142 SCLK_increment();
143 }
144
145 return ;
146}
147
148void matrix_init () {
149 // debug_matrix = 1;
150 // PB0 (SS) and PB1 (SCLK) set to outputs
151 DDRB |= RESET | SCLK ;
152 // PB2, is unused, and PB3 is our serial input
153 DDRB &= ~SDATA ;
154
155 // SS is reset for this board, and is active High
156 // SCLK is the serial clock and is active High
157 PORTB &= ~RESET ;
158 PORTB |= SCLK ;
159
160 // led pin
161 DDRD |= LED ;
162 PORTD &= ~LED ;
163
164 matrix_init_quantum();
165
166 //toggle reset, to put the keyboard logic into a known state
167 Matrix_Reset() ;
168}
169
170uint8_t matrix_scan(void) {
171
172 // the first byte of the keyboard's output data can be ignored
173 Matrix_ThrowByte();
174
175#if ( DEBOUNCING_DELAY > 0 )
176
177 for ( uint8_t row = 0 ; row < MATRIX_ROWS ; ++row ) {
178 //transfer old debouncing values
179 matrix_debounce_old[row] = matrix_debounce_new[row] ;
180 // read new key-states in
181 matrix_debounce_new[row] = Matrix_ReceiveByte() ;
182
183 if ( matrix_debounce_new[row] != matrix_debounce_old[row] ) {
184 debouncing = true ;
185 debouncing_time = timer_read() ;
186 }
187 }
188
189#else
190 // without debouncing we simply just read in the raw matrix
191 for ( uint8_t row = 0 ; row < MATRIX_ROWS ; ++row ) {
192 matrix[row] = Matrix_ReceiveByte ;
193 }
194#endif
195
196
197#if ( DEBOUNCING_DELAY > 0 )
198 if ( debouncing && ( timer_elapsed( debouncing_time ) > DEBOUNCING_DELAY ) ) {
199
200 for ( uint8_t row = 0 ; row < MATRIX_ROWS ; ++row ) {
201 matrix[row] = matrix_debounce_new[row] ;
202 }
203
204 debouncing = false ;
205 }
206#endif
207 Matrix_Reset() ;
208
209 matrix_scan_quantum() ;
210 return 1;
211}
212
213inline
214uint8_t matrix_get_row( uint8_t row ) {
215 return matrix[row];
216}
217
218void matrix_print(void)
219{
220 print("\nr/c 01234567\n");
221
222 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
223 phex(row); print(": ");
224 print_bin_reverse8(matrix_get_row(row));
225 print("\n");
226 }
227}
228
229inline
230uint8_t matrix_rows(void) {
231 return MATRIX_ROWS;
232}
233
234inline
235uint8_t matrix_cols(void) {
236 return MATRIX_COLS;
237}
238
239// as an aside, I used the M0110 converter:
240// tmk_core/common/keyboard.c, quantum/matrix.c, and the project layout of the planck
241// the online ducmentation starting from :
242// https://docs.qmk.fm/#/config_options
243// https://docs.qmk.fm/#/understanding_qmk
244// and probably a few i forgot.... \ No newline at end of file
diff --git a/keyboards/converter/hp_46010a/readme.md b/keyboards/converter/hp_46010a/readme.md
new file mode 100644
index 000000000..2321faa6e
--- /dev/null
+++ b/keyboards/converter/hp_46010a/readme.md
@@ -0,0 +1,52 @@
1# HP 46010A
2
3![46010A](https://deskthority.net/w/images/a/a5/HP_46010A_--_top.jpg)
4
5A converter for the eponymous keyboard.
6
7Keyboard Maintainer: [Listofoptions](https://github.com/listofoptions)
8Hardware Supported: HP 46010A, Teensy 2.0
9
10Make example for this keyboard (after setting up your build environment):
11
12 make converter/HP_46010A:default
13
14See 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).
15
16to get a matrix created if your board uses a different one (i used the US layout) please see the following gists:
17for the matrix itself: https://gist.github.com/listofoptions/cdf70d94767e9c6c027741850a24c568
18for the program to generate the matrix: https://gist.github.com/listofoptions/d245e370678024edbe5bed8c8ab17999
19
20to build the actual converter, you are going to need to either splice into the a connector or, use a multi-meter to buzz/ohm out which wires go where.
21from the bottom of the pcb the pins are arraged as follows:
22
23
24 4 5 6
25 3 2 1
26
27
28connect a six pin modular connector of the 6p6c variaty.
29then lop off the other end of the cable, striping the wires inside.
30use the ohm-meter to find the corresponding wire for each pin on the bottom of the pcb
31
32the pin meanings are as follows:
331 reset
342 no connection
353 vcc
364 data out
375 clock
386 ground
39
40wire the ground and power pins to ground and 5v power on the teensy (or other avr device of your choice)
41connect
42on the teensy the connection is as follows
43
44
45teensy | HP 46010A
46----|-----
47gnd | gnd (6)
48vcc | vcc (3)
49PB0 | reset (1)
50PB1 | clock (5)
51PB3 | data out (4)
52gnd | no connection (2) -- optional
diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk
new file mode 100644
index 000000000..ddd2d593b
--- /dev/null
+++ b/keyboards/converter/hp_46010a/rules.mk
@@ -0,0 +1,72 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Interrupt driven control endpoint task(+60)
38OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
39
40# Bootloader
41# This definition is optional, and if your keyboard supports multiple bootloaders of
42# different sizes, comment this out, and the correct address will be loaded
43# automatically (+60). See bootloader.mk for all options.
44BOOTLOADER = halfkay
45
46# Build Options
47# change to "no" to disable the options, or define them in the Makefile in
48# the appropriate keymap folder that will get included automatically
49#
50BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
51MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
52EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
53CONSOLE_ENABLE = yes # Console for debug(+400)
54COMMAND_ENABLE = no # Commands for debug and configuration
55NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
57MIDI_ENABLE = no # MIDI controls
58AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
62API_SYSEX_ENABLE = no
63SPLIT_KEYBOARD = no
64WAIT_FOR_USB = yes
65
66# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
67SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
68
69LAYOUTS_HAS_RGB = NO
70
71CUSTOM_MATRIX = yes
72SRC = matrix.c \ No newline at end of file