mattdibi / redox-keyboard

Ergonomic split mechanical keyboard
MIT License
1.75k stars 163 forks source link

I2C communication is not working #168

Open paradogk opened 1 year ago

paradogk commented 1 year ago

Hello, there.

Thanks for matt, I really hope overcoming my stiff shoulders.

However, I faced some issue on my keyboard. I set EE_HANDS (config.h) as describing github.

first, I flashed eeprom to each side. left side flashed left-eeprom and right side flashed right-eeprom bin

and then, I connected both side with TRRS cable(4 pole) and pluged USB cable from left side to PC.

PC recognized keyboard and left side button was working nomally, but PC could recognized right side button.

I already tested each side button working by connecting USB on each side.

I Think I2C communication is not working . therefore Is anybody who can help me to overcome my stiff shoulders.

Thanks

paradogk commented 1 year ago

To help someone and leave the history.

I found someone's issue like me on this github issue tab and I could get old version of qmk from this branch(I think latest version of qmk has i2c issue).

https://github.com/mattdibi/redox-keyboard/issues/98

and I set USE_I2C and EE_HANDS(because I already handedness by flashing eeprom. )

/ Use I2C or Serial, not both / //#define USE_SERIAL

define USE_I2C

/ Select hand configuration / //#define MASTER_LEFT //#define MASTER_RIGHT

define EE_HANDS

But only above setting didn't help to my headache, so I read how to use I2C on qmk guide carefully. https://docs.qmk.fm/#/feature_split_keyboard?id=split-keyboard And I found this option "#define SPLIT_USB_DETECT" I changed the define option like below:( keyboards/redox/keymaps/default/config.h)

/ Use I2C or Serial, not both / //#define USE_SERIAL

define USE_I2C

/ Select hand configuration / //#define MASTER_LEFT //#define MASTER_RIGHT

define EE_HANDS

define SPLIT_USB_DETECT

and build and flash to MCU both side(using this command make redox/rev1:default:avrdude). DONE. split keyboard work well.

PRDeltoid commented 9 months ago

Took me a while of searching before finding this #define SPLIT_USB_DETECT solution (via the QMK discord). I am curious what downsides or tradeoffs there are for using SPLIT_USB_DETECT versus the default detection method. And what caused this #define to start being needed? Was it a QMK change?