0
\$\begingroup\$

Hello good day I been trying to build split keyboard using 2 pro micro.

I'd been following let's split keyboard using qmk firmware.

And the connection diagram of the i2c is this enter image description here

When doing it on the breadboard everything is OK, until I finish writing the firmware and decide to test the connections. then soldered all the socket to use, when tried to use it, it didn't work now after 3 days of troubleshooting, I found that the coiled wire used in the pin 2 and 3 is the culprit.

When it is connected, it will work properly until I touch the coiled wire, I am suspecting that there is interference if I touch it, but I don't know how to prevent it, and the wire I'm using is YAESU MH-48A6 cable cord.

But I can reproduce the issue using a single strand of UTP wire around 1 meter in length, when it is connected and running I will slow wrap my hand to the wire, then slowly tightening my fist. Then the i2c connection on the pro-micro's gone.

BTW all the testing still done in the breadboard.

I will appreciate any advice/suggestion you give. Thanks.

\$\endgroup\$
4
  • \$\begingroup\$ Have you calculated the added delay that that cable brings to the party? Have you got a data sheet for the cable and if so what characteristic impedance does it have? Are you coiling all four wires (as per seen in your diagram)? \$\endgroup\$
    – Andy aka
    Commented Mar 17, 2018 at 10:04
  • \$\begingroup\$ propagation delay and characteristic impedance are not factors for I2C - it is far too slow (1us=200m). Only capacitance and cross talk are issues \$\endgroup\$
    – Henry Crun
    Commented Mar 17, 2018 at 10:38
  • \$\begingroup\$ @Andyaka yes I am, but on the testing I just hook-up the single wire of it, I also tried to connect all four wires and the TXLED1 of the promicro fully lt up and the connection automatically broken even without touching. \$\endgroup\$
    – zer09
    Commented Mar 17, 2018 at 12:24
  • \$\begingroup\$ @HenryCrun yeah that is on top my head the cross talks, btw on the testing only the VCC, GND, pin 1 and 2, and the two resistor then the power source from the usb. \$\endgroup\$
    – zer09
    Commented Mar 17, 2018 at 12:43

1 Answer 1

2
\$\begingroup\$

With 4k7 pullups, it will not take a huge amount of bus C to slow it down. Try reducing I2C speed or increasing bus current (1k5 pullups) that hints at too much C. (but 1m of cable is not a lot if you have a 100kHz clock)

If you have SDA twisted with SCL, then you will have problems. If there are twisted / shielded pairs, then you should pair SDA+VCC and SCL+GND

I2C cable crosstalk

Make sure that your wires really are hooked up properly. Make sure you have 100nF bypass across VCC/GND at each end, so these wires are both effective gnd

\$\endgroup\$
2
  • \$\begingroup\$ On the pro micro pin out, pin 2 and 3 are SDA, SCL respectively, but the cable above is twisted but they are not shield pair, so does it means that I can't use that cable? Or are there other way around on that? Thanks \$\endgroup\$
    – zer09
    Commented Mar 17, 2018 at 12:39
  • \$\begingroup\$ by twisted pair, I mean like UTP pairs, within the cable \$\endgroup\$
    – Henry Crun
    Commented Mar 18, 2018 at 4:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.