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

Half Without I2C Pull-up Resistors Is Unusable by Itself #98

Open
yterhorst opened this issue Mar 31, 2021 · 3 comments
Open

Half Without I2C Pull-up Resistors Is Unusable by Itself #98

yterhorst opened this issue Mar 31, 2021 · 3 comments
Labels
question Further information is requested

Comments

@yterhorst
Copy link

Hi,

I have built the wired version of the Redox and so far it's really fun to type on. I have found a small quirk however and was able to fix it. It doesn't seem to be referenced anywhere in the documentation. Maybe it would be helpful to add it :)

If I configure I2C and EE_HANDS (other than that I am using the default configuration) in the latest QMK firmware and connect the half without the pull-up resistors to USB without connecting it to the other half, it locks up and barely outputs anything or if it does, multiple key presses.

The culprit seems to be the floating I2C bus. Either spreading the resistance over both halves (using 10k resistors in all 4 footprints) or activating the internal pull-ups on PD0 and PD1 fixed the issue for me.

@schrodinger-s-cat
Copy link

I actually have the same problem when configuring the keyboard with I2C and EE_hands, can you elaborate how did you activate the internal pull-ups on PD0 and PD1? Thanks!

@mattdibi
Copy link
Owner

mattdibi commented Apr 2, 2021

If I configure I2C and EE_HANDS (other than that I am using the default configuration) in the latest QMK firmware and connect the half without the pull-up resistors to USB without connecting it to the other half, it locks up and barely outputs anything or if it does, multiple key presses.
The culprit seems to be the floating I2C bus. Either spreading the resistance over both halves (using 10k resistors in all 4 footprints) or activating the internal pull-ups on PD0 and PD1 fixed the issue for me.

I didn't encountered this behaviour before. Maybe they changed something in the latest version of QMK and internal pull-ups are not activated by default?

I'll try and take a look into it. Thank you for pointing this out.

@mattdibi mattdibi added the question Further information is requested label Apr 2, 2021
@yterhorst
Copy link
Author

I actually have the same problem when configuring the keyboard with I2C and EE_hands, can you elaborate how did you activate the internal pull-ups on PD0 and PD1? Thanks!

Sorry for the late reply. I did it this way: yterhorst/qmk_firmware@c92da2d
It worked for me but I have little experience with programming and git and don't understand how the Makefiles in QMK work at all. So if you encounter any weirdness, it's probably because I don't know what I'm doing.

I didn't encountered this behaviour before. Maybe they changed something in the latest version of QMK and internal pull-ups are not activated by default?

I looked at the latest version and also previous commits and couldn't find anything that looked like it enabled the internal pull-ups.
For example here it is specifically enabled for the ATmega32A but not the 32U4.

Keep in mind this issue only surfaces in a scenario where both halves are used together over I2C and also (without reflashing) shall be used independently (for example as game controllers on another layer).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants