Qmk_firmware: Bad Lag sometimes happens with I2C on split boards

Created on 7 Apr 2019  路  6Comments  路  Source: qmk/qmk_firmware

On some of my builds, if USE_I2C is used, that half and the whole board lags a bunch in registering keypresses.

Describe the Bug

I鈥檝e tried to trace things down a bit, like erasing EEPROM, compiling with and without EE_HANDS and RGB, but no luck so far. Some of my halves work fine.

I鈥檝e heard someone else report a similar issue on Discord as well.

System Information

  • Keyboard: Levinson Rev 2 & 3

    • Revision (if applicable):

  • Operating system: Mac
  • AVR GCC version: 8.3
  • ARM GCC version:
  • QMK Firmware version: Latest
  • Any keyboard related software installed?

    • [ ] AutoHotKey

    • [ ] Karabiner

    • [ ] Other:

Additional Context

bug core discussion help wanted needs testing

Most helpful comment

TODO For self (or anyone trying to fix): Connect I2C lines to oscilloscope and check signal to see if things like rise times look alright.

All 6 comments

I've actually seen this myself.
Usually make clean and recompiling fixes the issue. Heck, even just recompiling will fix it. So it's an intermitting issue.

It is indeed happening on my Iris 2.8 slave side only and recompiling doesn't seem to fix it.

TODO For self (or anyone trying to fix): Connect I2C lines to oscilloscope and check signal to see if things like rise times look alright.

Traced issue down to the default I2C clock rate being changed to 400kHz from 100kHz for split_common boards on refactor of split_common to use main I2C driver when this change was done: https://github.com/qmk/qmk_firmware/pull/4974

I found this myself as well. I'm building a handwired, and I didn't yet wire the I2C on the left side (no pull ups) and the typing speed was terrible. Read this, and it all made sense. I put the pullup resistors on I2C and now it's perfectly fine.

Was this page helpful?
0 / 5 - 0 ratings