Purdea Andrei [Mon, 19 Oct 2020 02:55:34 +0000 (05:55 +0300)]
util: added another note to monitor window
Purdea Andrei [Mon, 19 Oct 2020 02:51:02 +0000 (05:51 +0300)]
through_hole firmware variant renamed to universal
Purdea Andrei [Mon, 19 Oct 2020 02:03:37 +0000 (05:03 +0300)]
All model Fs: double the threshold offset used.
Purdea Andrei [Fri, 4 Sep 2020 04:20:22 +0000 (07:20 +0300)]
Changing default debounce type for all keyboards, to sym_pk
Purdea Andrei [Fri, 4 Sep 2020 03:59:47 +0000 (06:59 +0300)]
CAPSENSE_CAL_BINS bumped up to '5' for all model F keyboards
Purdea Andrei [Mon, 19 Oct 2020 01:44:33 +0000 (04:44 +0300)]
Added locklights support
Purdea Andrei [Sun, 18 Oct 2020 01:03:51 +0000 (04:03 +0300)]
keyboards/xwhatsit/sneakyrobb/beam104/through_hole: change default threshold offset
Purdea Andrei [Sun, 18 Oct 2020 01:03:18 +0000 (04:03 +0300)]
my keymap: add solenoid haptic keys
Purdea Andrei [Wed, 23 Sep 2020 00:53:56 +0000 (03:53 +0300)]
First attempt at implementing displaywriter support
Purdea Andrei [Sat, 11 Apr 2020 11:23:26 +0000 (14:23 +0300)]
quantum/debounce/sym_pk: code review: cleaner code
Co-Authored-By: Nick Brassel <nick@tzarc.org>
Purdea Andrei [Sat, 4 Apr 2020 20:13:48 +0000 (23:13 +0300)]
quantum/debounce/sym_pk: Modifications for code readability according to code review (2)
Purdea Andrei [Sat, 4 Apr 2020 19:31:43 +0000 (22:31 +0300)]
quantum/debounce/sym_pk: Modifications for code readability according to code review
Purdea Andrei [Wed, 1 Apr 2020 04:27:23 +0000 (07:27 +0300)]
quantum/debounce/sym_pk: delete comments and rename functions following code review
Purdea Andrei [Sun, 29 Mar 2020 09:52:04 +0000 (12:52 +0300)]
Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
Purdea Andrei [Sat, 28 Mar 2020 07:02:14 +0000 (09:02 +0200)]
quantum/debounce: Added sym_pk debounce algorithm
Purdea Andrei [Sat, 4 Apr 2020 20:12:41 +0000 (23:12 +0300)]
quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review. (2)
Purdea Andrei [Sat, 4 Apr 2020 19:28:42 +0000 (22:28 +0300)]
quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review.
Purdea Andrei [Sat, 28 Mar 2020 04:35:24 +0000 (06:35 +0200)]
quantum/debounce: Fix custom wrapping timers in eager_pr and eager_pk debounce algorithms
Please see the below simulated sequence of events:
Column A is the 16-bit value returned by read_timer();
Column B is the value returned by custom_wrap_timer_read();
Column C is the original code: (timer_read() % MAX_DEBOUNCE)
A, B, C
65530, 19, 30
65531, 20, 31
65532, 21, 32
65533, 22, 33
65534, 23, 34
65535, 24, 35
0 25, 0
1, 26, 1
2, 27, 2
3, 28, 3
4, 29, 4
5, 30, 5
read_timer() wraps about every 1.09 seconds, and so debouncing might
fail at these times without this commit.
Purdea Andrei [Sat, 28 Mar 2020 04:03:02 +0000 (06:03 +0200)]
tmk_core/common: Improve code generation for TIMER_DIFF* macros
Because of integer promotion the compiler is having a hard time generating
efficient code to calculate TIMER_DIFF* macros in some situations.
In the below example, the return value is "int", and this is causing the
trouble.
Example C code:
int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
return TIMER_DIFF_8(current_timer, start_timer);
}
BEFORE: (with -Os)
00004c40 <test>:
4c40: 28 2f mov r18, r24
4c42: 30 e0 ldi r19, 0x00 ; 0
4c44: 46 2f mov r20, r22
4c46: 50 e0 ldi r21, 0x00 ; 0
4c48: 86 17 cp r24, r22
4c4a: 20 f0 brcs .+8 ; 0x4c54 <test+0x14>
4c4c: c9 01 movw r24, r18
4c4e: 84 1b sub r24, r20
4c50: 95 0b sbc r25, r21
4c52: 08 95 ret
4c54: c9 01 movw r24, r18
4c56: 84 1b sub r24, r20
4c58: 95 0b sbc r25, r21
4c5a: 93 95 inc r25
4c5c: 08 95 ret
AFTER: (with -Os)
00004c40 <test>:
4c40: 86 1b sub r24, r22
4c42: 90 e0 ldi r25, 0x00 ; 0
4c44: 08 95 ret
Note: the example is showing -Os but improvements can be seen at all optimization levels,
including -O0. We never use -O0, but I tested it to make sure that no extra code is
generated in that case.OA
Purdea Andrei [Sat, 28 Mar 2020 03:34:11 +0000 (05:34 +0200)]
tmk_core/common: Fixing TIMER_DIFF macro to calculate difference correctly after the timer wraps.
Let's go through an example, using the following macro:
If the first timer read is 0xe4 and the second one is 0x32, the timer wrapped.
If the timer would have had more bits, it's new value would have been 0x132,
and the correct difference in time is 0x132 - 0xe4 = 0x4e
old code TIMER_DIFF_8(0x32, 0xe4) = 0xff - 0xe4 + 0x32 = 0x4d, which is wrong.
new code TIMER_DIFF_8(0x32, 0xe4) = 0xff + 1 - 0xe4 + 0x32 = 0x4e, which is correct.
This also gives a chance for a smart compiler to optimize the code using normal
integer overflow.
For example on AVR, the following C code:
uint8_t __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
return TIMER_DIFF_8(current_timer, start_timer);
}
With the original code, it gets translated to the following list of instructions:
00004c6e <test>:
4c6e: 98 2f mov r25, r24
4c70: 86 1b sub r24, r22
4c72: 96 17 cp r25, r22
4c74: 08 f4 brcc .+2 ; 0x4c78 <test+0xa>
4c76: 81 50 subi r24, 0x01 ; 1
4c78: 08 95 ret
But with this commit, it gets translated to a single instruction:
00004c40 <test>:
4c40: 86 1b sub r24, r22
4c42: 08 95 ret
This unfortunately doesn't always work so nicely, for example the following C code:
int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
return TIMER_DIFF_8(current_timer, start_timer);
}
(Note: return type changed to int)
With the original code it gets translated to:
00004c6e <test>:
4c6e: 28 2f mov r18, r24
4c70: 30 e0 ldi r19, 0x00 ; 0
4c72: 46 2f mov r20, r22
4c74: 50 e0 ldi r21, 0x00 ; 0
4c76: 86 17 cp r24, r22
4c78: 20 f0 brcs .+8 ; 0x4c82 <test+0x14>
4c7a: c9 01 movw r24, r18
4c7c: 84 1b sub r24, r20
4c7e: 95 0b sbc r25, r21
4c80: 08 95 ret
4c82: c9 01 movw r24, r18
4c84: 84 1b sub r24, r20
4c86: 95 0b sbc r25, r21
4c88: 81 50 subi r24, 0x01 ; 1
4c8a: 9f 4f sbci r25, 0xFF ; 255
4c8c: 08 95 ret
Wth this commit it gets translated to:
00004c40 <test>:
4c40: 28 2f mov r18, r24
4c42: 30 e0 ldi r19, 0x00 ; 0
4c44: 46 2f mov r20, r22
4c46: 50 e0 ldi r21, 0x00 ; 0
4c48: 86 17 cp r24, r22
4c4a: 20 f0 brcs .+8 ; 0x4c54 <test+0x14>
4c4c: c9 01 movw r24, r18
4c4e: 84 1b sub r24, r20
4c50: 95 0b sbc r25, r21
4c52: 08 95 ret
4c54: c9 01 movw r24, r18
4c56: 84 1b sub r24, r20
4c58: 95 0b sbc r25, r21
4c5a: 93 95 inc r25
4c5c: 08 95 ret
There is not much performance improvement in this case, however at least with this
commit it functions correctly.
Note: The following commit will improve compiler output for the latter example.
Purdea Andrei [Fri, 4 Sep 2020 03:11:07 +0000 (06:11 +0300)]
brand_new_model_f: fixing typo in product descriptor string
Purdea Andrei [Sat, 22 Aug 2020 18:59:22 +0000 (21:59 +0300)]
Added some (so far unused) code to initialise unused pins to a known value by enabling the pull-up resistors.
Purdea Andrei [Sat, 22 Aug 2020 18:18:19 +0000 (21:18 +0300)]
TH xwhatsit: enable internal pull-ups on rows. This will be necessary on some future versions of TH controller
Purdea Andrei [Sat, 22 Aug 2020 17:48:30 +0000 (20:48 +0300)]
Be explicit about the value of the OE pin. OE is active low.
Purdea Andrei [Thu, 6 Aug 2020 22:59:04 +0000 (01:59 +0300)]
bugfix to f122 iso layouts
Purdea Andrei [Sun, 26 Jul 2020 18:41:03 +0000 (21:41 +0300)]
util: added keyboard defs for at wcass and original xwhatsit controller variants
Purdea Andrei [Sun, 26 Jul 2020 18:39:30 +0000 (21:39 +0300)]
keyboards/xwhatsit/ibm/fat/wcass: added
Purdea Andrei [Sun, 26 Jul 2020 18:32:30 +0000 (21:32 +0300)]
added: keyboards/xwhatsit/ibm/fat/xwhatsit
Purdea Andrei [Sun, 26 Jul 2020 18:00:47 +0000 (21:00 +0300)]
xwhatsit ibm model F AT: fix up key positions
Purdea Andrei [Sun, 26 Jul 2020 17:49:54 +0000 (20:49 +0300)]
xwhatsit util: make it a little more resistant to garbage left from previous util run
Purdea Andrei [Sun, 26 Jul 2020 17:46:30 +0000 (20:46 +0300)]
xwhatsit util: bugfix for recently introduced bug
Purdea Andrei [Sun, 26 Jul 2020 17:21:38 +0000 (20:21 +0300)]
xwhatsit util: fix code that handles minimum window size
Purdea Andrei [Sun, 26 Jul 2020 13:55:07 +0000 (16:55 +0300)]
xwhatsit keyboards: fix >16cols 8rows support in keypress monitor
Purdea Andrei [Sun, 26 Jul 2020 14:31:59 +0000 (17:31 +0300)]
xwhatsit keyboards: bugfix of through hole with model F keyboards
Purdea Andrei [Sun, 26 Jul 2020 11:46:56 +0000 (14:46 +0300)]
xwhatsit model f keyboards with through hole controller: turn off promicro leds
Purdea Andrei [Sat, 25 Jul 2020 20:53:55 +0000 (23:53 +0300)]
xwhatsit ibm F AT: bugfixes
Purdea Andrei [Sat, 25 Jul 2020 18:11:43 +0000 (21:11 +0300)]
xwhatsit ibm fAT: renamed layout to LAYOUT_all, and tweaked sizes of ctrl keys
Purdea Andrei [Sat, 25 Jul 2020 17:56:11 +0000 (20:56 +0300)]
keyboards: xwhatsit: ibm: fAT: added
Purdea Andrei [Sat, 25 Jul 2020 08:19:56 +0000 (11:19 +0300)]
brand_new_model_f/f??: added readme
Purdea Andrei [Sat, 25 Jul 2020 08:06:07 +0000 (11:06 +0300)]
xwhatsit/brand_new_model_f/f??: make wcass the default controller
Purdea Andrei [Sat, 25 Jul 2020 05:17:45 +0000 (08:17 +0300)]
kbd defs added for ibm 4978
Purdea Andrei [Sat, 25 Jul 2020 05:04:40 +0000 (08:04 +0300)]
xwhatsit/ibm/4978/through_hole: added (untested)
Purdea Andrei [Sat, 25 Jul 2020 05:12:28 +0000 (08:12 +0300)]
xwhatsit util: improve monitor layouts
Purdea Andrei [Sat, 25 Jul 2020 05:11:47 +0000 (08:11 +0300)]
xwhatsit keyboards: add missing license headers to source files
Purdea Andrei [Sat, 25 Jul 2020 05:11:00 +0000 (08:11 +0300)]
xwhatsit keyboards: generate_layout.py: make generated file more reproducable
Purdea Andrei [Sat, 25 Jul 2020 05:10:30 +0000 (08:10 +0300)]
xwhatsit keyboards: implement row and dac tester
Purdea Andrei [Sat, 25 Jul 2020 05:09:14 +0000 (08:09 +0300)]
xwhatsit util: re-enable keyboard from column tester + refactor
Purdea Andrei [Sat, 25 Jul 2020 05:08:37 +0000 (08:08 +0300)]
xwhatsit keyboards: refactor macros from the top of matrix.c to make sure they are included in every .c file
Purdea Andrei [Sat, 25 Jul 2020 05:07:05 +0000 (08:07 +0300)]
xwhatsit keyboards: improve logic to detect > 16 physical cols
Purdea Andrei [Sat, 18 Jul 2020 19:04:33 +0000 (22:04 +0300)]
xwhatsit keyboards: implemented a form of anti-interference mechanism
Purdea Andrei [Sat, 18 Jul 2020 18:35:22 +0000 (21:35 +0300)]
xwhatsit keyboards: updated keyboard defs for util
Purdea Andrei [Sat, 18 Jul 2020 18:33:20 +0000 (21:33 +0300)]
keyboards/xwhatsit/ibm/f107: renamed LAYOUT to LAYOUT_102key_ansi, and added 107-key layout
Purdea Andrei [Sat, 18 Jul 2020 18:09:44 +0000 (21:09 +0300)]
xwhatsit keyboards: fix typo for macro to select through hole pcb
Purdea Andrei [Sat, 18 Jul 2020 18:05:03 +0000 (21:05 +0300)]
keyboards/xwhatsit/ibm/f122/wcass: added
Purdea Andrei [Sat, 18 Jul 2020 17:56:37 +0000 (20:56 +0300)]
keyboards/xwhatsit/ibm/f122/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 17:46:43 +0000 (20:46 +0300)]
keyboards/xwhatsit/ibm/f122/xwhatsit: added
Purdea Andrei [Sat, 18 Jul 2020 16:24:23 +0000 (19:24 +0300)]
f107: fix: typically long zero keys have the sense pad on the right side
Purdea Andrei [Sat, 18 Jul 2020 09:30:51 +0000 (12:30 +0300)]
xwhatsit keyboards: added some commented out options
Purdea Andrei [Sat, 18 Jul 2020 09:14:37 +0000 (12:14 +0300)]
keyboards/xwhatsit/brand_new_model_f/f62/through_hole and keyboards/xwhatsit/brand_new_model_f/f77/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 08:54:47 +0000 (11:54 +0300)]
keyboards/xwhatsit/brand_new_model_f/f62/xwhatsit and keyboards/xwhatsit/brand_new_model_f/f77/xwhatsit: added
Purdea Andrei [Sat, 18 Jul 2020 07:51:26 +0000 (10:51 +0300)]
keyboards/xwhatsit/ibm/f62/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 07:30:02 +0000 (10:30 +0300)]
keyboards/xwhatsit/ibm/f50/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 07:17:41 +0000 (10:17 +0300)]
keyboards/xwhatsit/ibm/f107/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 06:52:19 +0000 (09:52 +0300)]
keyboards/xwhatsit/ibm/3277_split_66key/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 06:44:49 +0000 (09:44 +0300)]
keyboards/xwhatsit/ibm/3277_78key/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 06:33:11 +0000 (09:33 +0300)]
keyboards/xwhatsit/ibm/3277_66key/through_hole: added
Purdea Andrei [Sat, 18 Jul 2020 05:25:04 +0000 (08:25 +0300)]
xwhatsit keyboards: moved info.json out of the controller folders
Purdea Andrei [Sat, 18 Jul 2020 04:59:45 +0000 (07:59 +0300)]
xwhatsit keyboards: move keymaps out of the controller folders
Purdea Andrei [Fri, 17 Jul 2020 18:19:04 +0000 (21:19 +0300)]
drivers/haptic: fix compilation issue, when haptic is enabled, but solenoid isn't
Purdea Andrei [Sat, 11 Jul 2020 03:04:43 +0000 (06:04 +0300)]
haptic: improve what happens if solenoid is enabled without erasing eeprom
Purdea Andrei [Fri, 10 Jul 2020 22:44:54 +0000 (01:44 +0300)]
Haptic and solenoid cleanup https://github.com/qmk/qmk_firmware/pull/9700
Purdea Andrei [Fri, 10 Jul 2020 16:36:03 +0000 (19:36 +0300)]
xwhatsit keyboards running non-through-hole controller: bugfix to the setup of solenoid pins
Purdea Andrei [Fri, 10 Jul 2020 14:25:24 +0000 (17:25 +0300)]
xwhatsit keyboards: attempt to enable solenoid. To be tested by people with solenoid.
Purdea Andrei [Fri, 10 Jul 2020 13:52:24 +0000 (16:52 +0300)]
xwhatsit keyboards: added comment on expansion header pinout
Purdea Andrei [Fri, 10 Jul 2020 01:11:40 +0000 (04:11 +0300)]
keyboards/xwhatsit/sneakyrobb/beam104/through_hole: minor fixes
Purdea Andrei [Fri, 10 Jul 2020 00:48:07 +0000 (03:48 +0300)]
xwhatsit: updated keyboard defs
Purdea Andrei [Fri, 10 Jul 2020 00:39:32 +0000 (03:39 +0300)]
first attempt at beam104 keyboard
Purdea Andrei [Thu, 9 Jul 2020 22:30:09 +0000 (01:30 +0300)]
xwhatsit: through hole: implement 8-rows
Purdea Andrei [Thu, 9 Jul 2020 21:50:19 +0000 (00:50 +0300)]
xwhatsit comm: report through hole correctly
Purdea Andrei [Wed, 8 Jul 2020 22:40:59 +0000 (01:40 +0300)]
xwhatsit keyboards: bugfix: correctly detect unassigned keys on layer 0
Purdea Andrei [Sat, 4 Jul 2020 09:08:39 +0000 (12:08 +0300)]
added my layout
Purdea Andrei [Sun, 28 Jun 2020 02:40:50 +0000 (05:40 +0300)]
updated util .gitignore
Purdea Andrei [Thu, 25 Jun 2020 00:08:13 +0000 (03:08 +0300)]
added xwhatsit/ibm/5251/through_hole
Purdea Andrei [Fri, 12 Jun 2020 21:23:54 +0000 (00:23 +0300)]
xwhatsit util: updated keyboard defs
Purdea Andrei [Fri, 12 Jun 2020 11:46:18 +0000 (14:46 +0300)]
added xwhatsit/ibm/3101_3727_3278_87key/through_hole
Purdea Andrei [Fri, 12 Jun 2020 11:46:00 +0000 (14:46 +0300)]
xwhatsit: fix some readme typos
Purdea Andrei [Thu, 11 Jun 2020 22:00:56 +0000 (01:00 +0300)]
xwhatsit util: make sure name translation works on signal level monitor too.
Purdea Andrei [Thu, 11 Jun 2020 21:56:40 +0000 (00:56 +0300)]
xwhatsit util: fix some colors, when it's used on a system with non-standard colors.
Purdea Andrei [Thu, 11 Jun 2020 21:53:58 +0000 (00:53 +0300)]
xwhatsit util: fix some scaling issues
Purdea Andrei [Thu, 11 Jun 2020 17:19:15 +0000 (20:19 +0300)]
xwhatsit: f77: bugfix to the right arrow key
Purdea Andrei [Tue, 9 Jun 2020 12:44:28 +0000 (15:44 +0300)]
xwhatsit gui: column tester: bugfix
Purdea Andrei [Tue, 9 Jun 2020 01:36:04 +0000 (04:36 +0300)]
xwhatsit gui: window title update for column tester
Purdea Andrei [Mon, 8 Jun 2020 23:44:15 +0000 (02:44 +0300)]
xwhatsit util: main window: when a subwindow is open correctly disable all of the main window (1)
Purdea Andrei [Mon, 8 Jun 2020 20:29:05 +0000 (23:29 +0300)]
xwhatsit: util: removed currently unused buttons
Purdea Andrei [Mon, 8 Jun 2020 20:11:40 +0000 (23:11 +0300)]
xwhatsit gui: added column tester
Purdea Andrei [Mon, 8 Jun 2020 23:00:12 +0000 (02:00 +0300)]
xwhatsit firmware: added column tester
Purdea Andrei [Mon, 8 Jun 2020 20:19:02 +0000 (23:19 +0300)]
xwhatsit util: main window: make it resizable
Purdea Andrei [Mon, 8 Jun 2020 19:32:27 +0000 (22:32 +0300)]
xwhatsit util: add matrix signal level monitor
Purdea Andrei [Sun, 7 Jun 2020 20:16:39 +0000 (23:16 +0300)]
xwhatsit: updated the image links for some keyboards
Purdea Andrei [Sun, 7 Jun 2020 19:13:00 +0000 (22:13 +0300)]
xwhatsit use 4 times the threshold offset for through_hole controller