Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make quantum/split_common/serial.[ch] configurable #4419

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
fa97715
add temporary compile test shell script
mtei Nov 12, 2018
ad7aa7e
add 'CONFIG_H += serial_backward_compatibility.h' into common_feature…
mtei Nov 12, 2018
a7af2ad
add quantum/split_common/serial_backward_compatibility.h
mtei Nov 12, 2018
e5eeb93
quantum/split_common/serial.c change to helix-serial.c style serial c…
mtei Nov 12, 2018
3cb3cd5
add temporary file quantum/split_common/split-keyboards-list.txt
mtei Nov 13, 2018
8da7fce
add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h
mtei Nov 13, 2018
9c9cc5e
add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h
mtei Nov 13, 2018
6d46519
add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h
mtei Nov 13, 2018
33ed22b
add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h
mtei Nov 13, 2018
f644ed6
add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manufo…
mtei Nov 13, 2018
58a0c9f
add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h
mtei Nov 13, 2018
2a53ff6
add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/con…
mtei Nov 13, 2018
9d6e92c
add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h
mtei Nov 13, 2018
78d3368
add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h
mtei Nov 13, 2018
6e93aee
add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h
mtei Nov 13, 2018
f97e68e
add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h
mtei Nov 13, 2018
b26a4b4
add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h
mtei Nov 13, 2018
4d79a94
add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h
mtei Nov 13, 2018
0f30eea
add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,key…
mtei Nov 13, 2018
ab0373b
add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h
mtei Nov 13, 2018
28fc69a
add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h
mtei Nov 13, 2018
02e9405
remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_…
mtei Nov 13, 2018
dfdeca5
remove temporary file quantum/split_common/split-keyboards-list.txt
mtei Nov 13, 2018
15b0021
remove temporary compile test shell script
mtei Nov 13, 2018
ca802b5
Merge branch 'master' into make-quantum_split_common_serial-h-configu…
mtei Nov 13, 2018
6dd4bfd
Revert "remove temporary compile test shell script"
mtei Nov 14, 2018
9d3473a
update quantum/split_common/compile_split_test.sh for new keyboard test
mtei Nov 14, 2018
67c84cb
add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h
mtei Nov 14, 2018
18ebae1
add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h
mtei Nov 14, 2018
7667492
remove temporary compile test shell script
mtei Nov 14, 2018
eef1060
update docs/config_options.md, quantum/template/avr/config.h
mtei Nov 17, 2018
4870de3
fix quantum/template/avr/config.h
mtei Nov 17, 2018
d3888f2
fix typo docs/config_options.md
mtei Nov 17, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions common_features.mk
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,11 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
endif

ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
SERIAL_BACKWARD_COMPAT := $(wildcard $(QUANTUM_DIR)/split_common/serial_backward_compatibility.h)
ifneq ($(SERIAL_BACKWARD_COMPAT),)
CONFIG_H += $(SERIAL_BACKWARD_COMPAT)
# $(info CONFIG_H=$(CONFIG_H))
endif
OPT_DEFS += -DSPLIT_KEYBOARD
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
$(QUANTUM_DIR)/split_common/split_util.c \
Expand Down
3 changes: 3 additions & 0 deletions docs/config_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,9 @@ Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in yo
* `#define USE_I2C`
* For using I2C instead of Serial (defaults to serial)

* `#define SOFT_SERIAL_PIN D0`
* When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.

# The `rules.mk` File

This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
Expand Down
2 changes: 2 additions & 0 deletions keyboards/40percentclub/25/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
#define DESCRIPTION A split 50 key keyboard

#define USE_SERIAL
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Select hand configuration */
#define MASTER_LEFT
Expand Down
3 changes: 3 additions & 0 deletions keyboards/40percentclub/6lit/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@

#define USE_SERIAL

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Select hand configuration */
#define MASTER_LEFT
//#define MASTER_RIGHT
Expand Down
3 changes: 3 additions & 0 deletions keyboards/40percentclub/foobar/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@

#define USE_SERIAL

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Select hand configuration */
#define MASTER_LEFT
//#define MASTER_RIGHT
Expand Down
3 changes: 3 additions & 0 deletions keyboards/diverge3/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST

Expand Down
3 changes: 3 additions & 0 deletions keyboards/divergetm2/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/*
* Magic Key Options
*
Expand Down
3 changes: 3 additions & 0 deletions keyboards/ergotravel/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

#define BACKLIGHT_PIN B5
#define BACKLIGHT_LEVELS 5

Expand Down
3 changes: 3 additions & 0 deletions keyboards/handwired/dactyl_manuform/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/handwired/qc60/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
Expand Down
5 changes: 4 additions & 1 deletion keyboards/handwired/xealous/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

/* Use I2C or Serial, not both */

// #define USE_SERIAL
#define USE_I2C
#define SCL_CLOCK 400000UL

// #define USE_SERIAL
/* serial.c configuration for split keyboard */
// #define SOFT_SERIAL_PIN D0

/* Select hand configuration */

#define MASTER_LEFT
Expand Down
3 changes: 3 additions & 0 deletions keyboards/iris/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/iris/rev1_led/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/iris/rev2/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/iris/rev3/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/lets_split_eh/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
//#define SOFT_SERIAL_PIN D0

/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
Expand Down
3 changes: 3 additions & 0 deletions keyboards/levinson/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/levinson/rev2/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/miniaxe/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

/* Serial settings */
#define USE_SERIAL
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

//#define EE_HANDS
#define I2C_MASTER_LEFT
//#define I2C_MASTER_RIGHT
Expand Down
3 changes: 3 additions & 0 deletions keyboards/nyquist/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/nyquist/rev2/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/nyquist/rev3/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/quefrency/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/qwertyydox/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/qwertyydox/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/redox/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
3 changes: 3 additions & 0 deletions keyboards/rorschach/rev1/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
Expand Down
53 changes: 53 additions & 0 deletions quantum/split_common/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,59 @@

#ifndef USE_I2C
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be changed to something like

Suggested change
#ifndef USE_I2C
#if defined(USE_SERIAL) || (!defined(USE_I2C) && !defined(USE_SERIAL) )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The USE_I2C,USE_SERIAL problem can be discussed by me or someone else in the next next phase. I will not change it now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I posted #4522. This is the solution to this problem I thought.


#ifndef SOFT_SERIAL_PIN
#error quantum/split_common/serial.c need SOFT_SERIAL_PIN define
#endif

#ifdef __AVR_ATmega32U4__
// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
#ifdef USE_I2C
#if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
#error Using ATmega32U4 I2C, so can not use PD0, PD1
#endif
#endif

#if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3
#define SERIAL_PIN_DDR DDRD
#define SERIAL_PIN_PORT PORTD
#define SERIAL_PIN_INPUT PIND
#if SOFT_SERIAL_PIN == D0
#define SERIAL_PIN_MASK _BV(PD0)
#define EIMSK_BIT _BV(INT0)
#define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
#define SERIAL_PIN_INTERRUPT INT0_vect
#elif SOFT_SERIAL_PIN == D1
#define SERIAL_PIN_MASK _BV(PD1)
#define EIMSK_BIT _BV(INT1)
#define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
#define SERIAL_PIN_INTERRUPT INT1_vect
#elif SOFT_SERIAL_PIN == D2
#define SERIAL_PIN_MASK _BV(PD2)
#define EIMSK_BIT _BV(INT2)
#define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
#define SERIAL_PIN_INTERRUPT INT2_vect
#elif SOFT_SERIAL_PIN == D3
#define SERIAL_PIN_MASK _BV(PD3)
#define EIMSK_BIT _BV(INT3)
#define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
#define SERIAL_PIN_INTERRUPT INT3_vect
#endif
#elif SOFT_SERIAL_PIN == E6
#define SERIAL_PIN_DDR DDRE
#define SERIAL_PIN_PORT PORTE
#define SERIAL_PIN_INPUT PINE
#define SERIAL_PIN_MASK _BV(PE6)
#define EIMSK_BIT _BV(INT6)
#define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
#define SERIAL_PIN_INTERRUPT INT6_vect
#else
#error invalid SOFT_SERIAL_PIN value
#endif

#else
#error serial.c now support ATmega32U4 only
#endif

// Serial pulse period in microseconds. Its probably a bad idea to lower this
// value.
#define SERIAL_DELAY 24
Expand Down
23 changes: 10 additions & 13 deletions quantum/split_common/serial.h
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
#ifndef MY_SERIAL_H
#define MY_SERIAL_H

#include "config.h"
#include <stdbool.h>

/* TODO: some defines for interrupt setup */
#define SERIAL_PIN_DDR DDRD
#define SERIAL_PIN_PORT PORTD
#define SERIAL_PIN_INPUT PIND
#define SERIAL_PIN_MASK _BV(PD0)
#define SERIAL_PIN_INTERRUPT INT0_vect

#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
#define SERIAL_MASTER_BUFFER_LENGTH 1

// Address location defines
#define SERIAL_BACKLIT_START 0x00
// /////////////////////////////////////////////////////////////////
// Need Soft Serial defines in config.h
// /////////////////////////////////////////////////////////////////
// ex.
// /* Configuration of lower interface with the lower layer(hardware) of serial.c */
// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could define the default here:

Suggested change
// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6
#ifndef SOFT_SERIAL_PIN
#define SOFT_SERIAL_PIN D0 // D0,D1,D2,D3,E6, etc
#endif

This way, there is no reason to define it elsewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

//
// /* Configuration of upper interface with the upper layer of serial.c */
// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
#ifndef SERIAL_SLAVE_BUFFER_LENGTH
#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
#define SERIAL_MASTER_BUFFER_LENGTH 1
#endif

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// #define SERIAL_MASTER_BUFFER_LENGTH 1

// Buffers for master - slave communication
extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
Expand Down
11 changes: 11 additions & 0 deletions quantum/split_common/serial_backward_compatibility.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/* serial.h backward compatibility */

// #ifndef SOFT_SERIAL_PIN
// #define SOFT_SERIAL_PIN D0
// #endif

#ifndef SERIAL_SLAVE_BUFFER_LENGTH
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't this be added to serial.h, rather than using a separate file?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not worry, this serial_backward_compatibility.h will be deleted in the next phase.

#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
#define SERIAL_MASTER_BUFFER_LENGTH 1
#endif

3 changes: 3 additions & 0 deletions quantum/split_common/split_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
#include <stdlib.h>
#include "eeconfig.h"

// backlight level store index in serial_master_buffer[] for slave to read
#define SERIAL_BACKLIT_START 0x00
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be left in serial.h?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


#define SLAVE_I2C_ADDRESS 0x32

extern volatile bool isLeftHand;
Expand Down
Loading