-
-
Notifications
You must be signed in to change notification settings - Fork 42.6k
Open
Labels
Description
Describe the Bug
If using a right half of a split keyboard that does not have I2C pullup resistors on that half and doing #define USE_I2C, the performance on that half is slow. This is because the TIMEOUT value of 100ms gets hit during transport_master() in split_common/transport.c. Adding external pullups makes performance normal again.
Also, adding the following to keyboard_master_setup() in split_util.c to set the internal pullups seems to work as well:
setPinInputHigh(D0);
setPinInputHigh(D1);Initial proposed solution, to prevent any impact on I2C rise time issues:
- Add flag indicating if right half has no external I2C pullups (
NO_I2C_PULLUPS_RIGHT_HALF) - Update
keyboard_master_setup()to set internal pullups on I2C pins if right half &NO_I2C_PULLUPS_RIGHT_HALFis defined
System Information
- Keyboard:
- Iris
- Levinson
- Others (w/no I2C pullups on right half)
Additional Context
TODO:
- Test with ARM split to verify if I2C pullups should be set for that
maricn