Commit graph

5 commits

Author SHA1 Message Date
James Churchill 28929ad017 Simplify split_common Code significantly (#4772)
* Eliminate separate slave loop

Both master and slave run the standard keyboard_task main loop now.

* Refactor i2c/serial specific code

Simplify some of the preprocessor mess by using common function names.

* Fix missing #endif

* Move direct pin mapping support from miniaxe to split_common

For boards with more pins than sense--sorry, switches.

* Reordering and reformatting only

* Don't run matrix_scan_quantum on slave side

* Clean up the offset/slaveOffset calculations

* Cut undebounced matrix size in half

* Refactor debouncing

* Minor fixups

* Split split_common transport and debounce code into their own files

Can now be replaced with custom versions per keyboard using
CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes

* Refactor debounce for non-split keyboards too

* Update handwired/xealous to build using new split_common

* Fix debounce breaking basic test

* Dodgy method to allow a split kb to only include one of i2c/serial

SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only
that driver code in the binary.

SPLIT_TRANSPORT = custom (or anything else) will include neither, the
keyboard must supply it's own code

if SPLIT_TRANSPORT is not defined then the original behaviour (include
both avr i2c and serial code) is maintained.

This could be better but it would require explicitly updating all the
existing split keyboards.

* Enable LTO to get lets_split/sockets under the line

* Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE

* Remove avr-specific sei() from split matrix_setup

Not needed now that slave doesn't have a separate main loop.
Both sides (on avr) call sei() in lufa's main() after exiting
keyboard_setup().

* Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT.

* Add comments and fix formatting.
2019-01-17 10:08:14 -08:00
zvecr 306f23dc51 Document the correct path to the split keyboard EEPROM files (#4585)
* Document the correct path to the split keyboard EEPROM files

* Document the correct path to the split keyboard EEPROM files
2018-12-14 12:49:33 -08:00
Takeshi ISHII 155e9310ff Make quantum/split_common/serial.[ch] configurable (#4419)
* add temporary compile test shell script

* add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block

* add quantum/split_common/serial_backward_compatibility.h

SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h
SERIAL_BACKLIT_START move to split_util.h

* quantum/split_common/serial.c change to helix-serial.c style serial configuration

* add temporary file quantum/split_common/split-keyboards-list.txt

* add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h

* remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h

* remove temporary file quantum/split_common/split-keyboards-list.txt

* remove temporary compile test shell script

* Revert "remove temporary compile test shell script"

This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4.

* update quantum/split_common/compile_split_test.sh for new keyboard test

* add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h

* remove temporary compile test shell script

* update docs/config_options.md, quantum/template/avr/config.h

* fix quantum/template/avr/config.h

* fix typo  docs/config_options.md
2018-12-14 11:00:10 -08:00
Drashna Jaelre 00b6f14821 Replace outdated RGB/Audio information 2018-10-22 14:55:05 -04:00
Alex Ong 9bd6d6112d Keyboard: xealous (#3731)
* Keyboard: HandWired/XeaL60

* Updated rules.mk

* Mapping for layout was flipped

* Figured out how to re-map bad pins.

* Updated Keymap

* Enabled audio, Forced NKRO

* Added QMK_KEYS_PER_SCAN

* Removed more unnecessary files, since split_keyboards are in main QMK branch already.

* Simplified rules.mk in rev1

* Removed i2c from matrix.c

* Re-formatted to 4 spaces per tab,

* Changed note for NUMPAD

* Added I2C support back!

* Fixed keyboard mappings. Both sides work

* Moved i2c configuration from keymaps/default/config.h to config.h

* Changed SCL_CLOCK to 400000L

* Added DEBUG_MATRIX_SCAN_RATE for future optimization efforts

* Removed row2col code to clean up matrix.c

* Scan rate from 2100 -> 4200 by using Nop instead of waiting 30us between columns.

* Further optimized column reading via optimized_col_reader.

* Immediate key-recognition

* Switched back to own implementation of SPLIT_KEYBOARD. Will optimize so that slave interrupts master.

* Moved scanrate debug messages to another file.

* Made matrix_scanrate.c compile if CONSOLE_ENABLE is off. Updated to latest i2c.c

* Latest i2c uses a few bytes for lighting information

* Optimizations in i2c.h to determine buffer size.

* Disabled a whole bunch of features. TODO: Test that keyboard still works fine.

* Minimum #define NO_ACTION's with still working keyboard

* Fixed matrix not working due to offsets not being respected

* Added numlock button for keymap.

* Use I2C_KEYMAP_START offset

* Removed serial, Backlight and RGB support

* Removed need for split_flags.

* Added audio on and off for numlock.

* Renamed from xeal60 to xealous, simplified build system.

* Used more shared split_common code.

* Updated audio code.

* moved tone_qwerty and tone_numpad to config.h. Removed keymaps/default/config.h

* Added more shortcut keys in _FN layer. Increased debounce to 6ms due to fencepost error.

* DF used with incorrect argument. Custom_keycodes no longer required.

* Fixed bug in update_debounce_counters which was resulting in no debouncing!

* Removed unnecessary #include
2018-08-28 17:08:07 -07:00