8
\$\begingroup\$

I was replacing switches on my Logitech mouse to resolve the infamous double-click issue.

While I had my mouse apart for repairs, I decided to hook up an oscilloscope to witness the double-clicks myself. Of course, as is the case with all intermittent issues... it disappeared as soon as I took a deeper look.

I did notice something else that I have not seen before and would appreciate if anyone could explain why they might be doing this.

The +2VDC voltage supplied to the input side of the switch for the left-mouse button is supplied by a pin coming out of the microprocessor.

Mouse button NOT clicked

When the left-mouse button is pressed, the input side of the switch is connected to the output side of the switch, which essentially connects one pin of the microprocessor to another pin.

What's odd is that when the switch is closed, the signal supplied to the switch begins... pulsing...?

enter image description here

enter image description here

This same thing occurs with all other switches on the board.

From what I can tell, this is the circuit for the left-mouse button switch:

enter image description here

Does anyone know why the signal would be pulsing? What benefit would that offer?

enter image description here

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Try observing the pulses on multiple switches - they almost certainly won't line up, because the switches are being scanned (as answered below) \$\endgroup\$ Commented Jun 27, 2024 at 22:35
  • \$\begingroup\$ @Attie You were correct. I accepted the answer. I mapped out more of the circuit. In case you're curious, here are the results I captured: imgur.com/a/logitech-g604-mouse-M6jZB9v \$\endgroup\$ Commented Jun 29, 2024 at 3:16

1 Answer 1

11
\$\begingroup\$

The buttons are likely connected in a matrix, i.e. multiplexed.

When nothing is pressed, there is no need to scan the matrix to determine which switch is closed.

The mouse needs to send status packet over USB every 1 milliseconds anyway typically, so when a switch is closed, it must keep scanning which switches still make contact and it is enough to do it every 1ms.

Even if the buttons are not in a matrix, it is possible that buttons are only occasionally powered up to see if they are pushed or not.

Update OP marked this as the correct answer and posted these images to validate the theory: https://imgur.com/a/logitech-g604-mouse-M6jZB9v

\$\endgroup\$
5
  • \$\begingroup\$ Why would the switches connected in a matrix require pulsing? \$\endgroup\$ Commented Jun 27, 2024 at 19:07
  • 5
    \$\begingroup\$ @HunterS The matrix can only have one row or one column activated at a time. The pulsing is only a partial picture. The period between pulses is when other parts of the matrix are scanned. \$\endgroup\$ Commented Jun 27, 2024 at 19:48
  • 2
    \$\begingroup\$ Alternatively to matrix connection, it may be avoiding power drain through the pull-up resistor by only enabling the ground connection for a short time to read the switch state. \$\endgroup\$ Commented Jun 28, 2024 at 5:39
  • 4
    \$\begingroup\$ Assuming from the connected battery that this is a wireless mouse, then the pulses will also reduce the amount of current drawn from the battery (probably not by much, but some). \$\endgroup\$ Commented Jun 28, 2024 at 5:41
  • \$\begingroup\$ Thank you for the suggestion. I took so long to reply because I wanted to verify this was correct; it is. @Kubahasn'tforgottenMonica It is actually pulsing all the time.. the pulsing signal just wasn't visible on any of the switch pins because a diode was blocking the signal. For anyone curious, here is the full circuit, as well as signals captured with an oscilloscope: imgur.com/a/logitech-g604-mouse-M6jZB9v \$\endgroup\$ Commented Jun 29, 2024 at 3:16

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.