Commit Graph

7 Commits

Author SHA1 Message Date
Carsten Rose 29fcd5418a
[Keyboard] Add support for idobao id80 iso layout (#11246)
* add support for idobao id80 iso layout

* This change is required as there is a logic bug on the board that C7
(capslock) is inverted thus lowercase is with light on. Mind the ! in
the write to the pin.

* Apply suggestions from code review

All fine for me, thanks for the additional information!

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* move device information to separate config.h for id80 iso and ansi

* commit via keymap similar to default. There is a problem with mapping compiling vor via, resulting in KC_ENT residing on KC_PGDN. Switching off via support in rules.mk makes the keyboard behave fine

* change KC_BSLS to KC_NUHS as this is an iso board

Co-authored-by: Carsten <modebm@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-01-10 22:22:44 -08:00
James Young c66df16644
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change                                                

* Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183)                                           

* Add support for soft serial to ATmega32U2 (#10204)                                               

* Change MIDI velocity implementation to allow direct control of velocity value (#9940)            

* Add ability to build a subset of all keyboards based on platform.                                

* Actually use eeprom_driver_init().                                                               

* Make bootloader_jump weak for ChibiOS. (#10417)                                                  

* Joystick 16-bit support (#10439)                                                                 

* Per-encoder resolutions (#10259)                                                                 

* Share button state from mousekey to pointing_device (#10179)                                     

* Add hotfix for chibios keyboards not wake (#10088)                                               

* Add advanced/efficient RGB Matrix Indicators (#8564)                                             

* Naming change.                                                                                   

* Support for STM32 GPIOF,G,H,I,J,K (#10206)                                                       

* Add milc as a dependency and remove the installed milc (#10563)                                  

* ChibiOS upgrade: early init conversions (#10214)                                                 

* ChibiOS upgrade: configuration file migrator (#9952)                                             

* Haptic and solenoid cleanup (#9700)                                                              

* XD75 cleanup (#10524)                                                                            

* OLED display update interval support (#10388)                                                    

* Add definition based on currently-selected serial driver. (#10716)                               

* New feature: Retro Tapping per key (#10622)                                                      

* Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638)             

* Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530)

* Rescale both ChibiOS and AVR backlighting.                                                       

* Reduce Helix keyboard build variation (#8669)                                                    

* Minor change to behavior allowing display updates to continue between task ticks (#10750)        

* Some GPIO manipulations in matrix.c change to atomic. (#10491)                                   

* qmk cformat (#10767)                                                                             

* [Keyboard] Update the Speedo firmware for v3.0 (#10657)                                          

* Maartenwut/Maarten namechange to evyd13/Evy (#10274)                                             

* [quantum] combine repeated lines of code (#10837)                                                

* Add step sequencer feature (#9703)                                                               

* aeboards/ext65 refactor (#10820)                                                                 

* Refactor xelus/dawn60 for Rev2 later (#10584)                                                    

* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824)                                 

* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)                                    

* update chibios os usb for the otg driver (#8893)                                                 

* Remove HD44780 References, Part 4 (#10735)                                                       

* [Keyboard] Add Valor FRL TKL (+refactor) (#10512)                                                

* Fix cursor position bug in oled_write_raw functions (#10800)                                     

* Fixup version.h writing when using SKIP_VERSION=yes (#10972)                                     

* Allow for certain code in the codebase assuming length of string. (#10974)                       

* Add AT90USB support for serial.c (#10706)                                                        

* Auto shift: support repeats and early registration (#9826)                                       

* Rename ledmatrix.h to match .c file (#7949)                                                      

* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231)                                        

* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840)                                        

* Merge point for 2020 Nov 28 Breaking Change
2020-11-28 12:02:18 -08:00
Drashna Jaelre 92385b3fb6 Better handle LTO_ENABLE (#9832)
* Better handle LTO_ENABLE

Especially when calling from command line

* Replace LINK_TIME_OPTIMIZATION_ENABLE with LTO_ENABLE

* Remove long for LTO from show_options.mk
2020-08-29 14:30:02 -07:00
zeriyoshi 0f0530c5a4
Fix IDOBAO ID80 board configurations. (#9796)
* Fix IDOBAO 80 disable console and LEDs.

* Re-enabling to IDOBAO80s underglow rgb light

* fix define legacy declarements
2020-08-22 01:12:19 -07:00
Sergey Vlasov 8fdb229b66
[Keyboard] id80: Transpose matrix to use faster COL2ROW routines (#8930)
* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
2020-04-29 03:52:15 -07:00
Sergey Vlasov e916ce5f3e
Add VIA support to ID80 (#8791) 2020-04-20 16:06:48 -07:00
Sergey Vlasov 17bda000f3
[Keyboard] Add IDOBAO ID80 (#8728)
* id80: New keyboard (IDOBAO ID80)

Add initial support for the IDOBAO ID80 keyboard.

Most source files were generated by the KBFirmware JSON to QMK Parser
(https://noroadsleft.github.io/kbf_qmk_converter/) based on the
ID80.json file provided by the keyboard vendor.  The only change to
rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware
fit into the available flash space.

* id80: Update default keymap to match stock

Update the Fn layer in the default keymap to match the stock firmware
which was actually flashed into the PCB.

* id80: Add Caps Lock indicator support

Although the KBFirmware JSON includes information about the MCU pins
used for keyboard indicator LEDs, the KBF to QMK converter does not
generate the required code automatically.  Implement the LED handling
code, and at the same time switch from the older `led_set_kb` API to the
newer `led_update_kb`.

* id80: Remove placeholder functions

The provided skeletons for `matrix_scan_kb` and `process_record_kb` did
not do anything useful, so remove them.

* id80: Use Esc as the Bootmagic Lite activation key

The Esc key is not at the (0, 0) position in the ID80 matrix, therefore
setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to
use the Esc key for Bootmagic Lite.

* id80: Update info.json

Replace info.json generated by the KBF to QMK converter with another
version generated using http://www.keyboard-layout-editor.com/ and the
KLE raw to QMK info.json converter (https://qmk.fm/converter/).  The
updated info.json has the correct physical layout (the distance between
the function key row and the main block is actually 0.25U, but the
vendor-provided ID80.json had 0.5U there) and correct key labels (using
the stock layout instead of raw matrix locations and pin names).

* id80: Enable NKRO

The default keymap is updated to have NK_TOGG at Fn+N, like most other
keyboards which have NKRO enabled.

* id80: Use unique USB vendor/product ID

Having an unique USB vendor/product ID is required for VIA support.
The vendor ID value is the same as for the `idobo` (ID75) keyboard.

* id80: Fix right modifiers in the default keymap

For some reason the default keymap converted from the vendor-supplied
JSON had the right Shift, Alt and Ctrl keys mapped to the left side
modifier keycodes.

* id80: Remove empty row 6 (F0) from matrix

The matrix layout which was defined in the vendor-supplied ID80.json
file had 12 rows which corresponded to the left and right parts of the
6 physical rows.  However, the row 6 of the matrix (connected to the F0
pin), which corresponded to the right part of the physical bottom row,
was completely empty (all 9 keys of the bottom row were placed in the
matrix row for the left part).  Keeping this row in the matrix just
wastes resources; in particular, when the VIA support is enabled, having
a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic
macros, which is less than the recommended minimum of 128 bytes.
Removing the unused row reduces the matrix size to 9×11, which leaves
194 bytes of EEPROM space for dynamic macros.

* id80: Update row numbers in the LAYOUT macro

Update row numbers in the names of the LAYOUT macro parameters after
removing a row in the middle.

* id80: Set RGBLED_NUM to 20 to match the actual PCB

The vendor-supplied ID80.json file specified that the PCB should have
28 RGB LEDs in the chain.  However, the actual PCB that was shipped
from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4
more LEDs on top of the PCB, to the right of the Enter key location).
Update RGBLED_NUM to match the actual PCB.
2020-04-12 23:55:01 +01:00