Announcement
Collapse
No announcement yet.
Duet Controller back button not working
Collapse
X
-
So the domed click button is attached to the front side of the circuit board. I can't see any oxidisation and there is nothing to spray with contact cleaner.
I powered it on and tried pressing the back dome with a plastic spudger but it still didn't work.
It made the click sound though.Last edited by MrTeroo; 2023-01-18, 13:19.
Comment
-
Originally posted by MrTeroo View PostSo the domed click button is attached to the front side of the circuit board. I can't see any oxidisation and there is nothing to spray with contact cleaner.
I powered it on and tried pressing the back dome with a plastic spudger but it still didn't work.
It made the click sound though.
If you are still hesitant to do the surgery, one thing that might help is to get the part numbers off as many of the IC's, possible, especially and ones that are near the white area that holds down the clickits.
<Disclaimer - I wrote this (below) and thought about just deleting it, thinking I really got carried away, and probably did, but what the heck, decided to publish>
My thought is this, and it's probably going down a real rabbit hole, and might not be worth it, but hey, why not. All of the buttons, and the rotary switch ("zippy") are probably matrixed. That is, they are connected via rows and columns. Best described with an example. 16 switch points (click or rotary) -> 4 rows, 4 columns. It only uses 8 I/O for the uprocessor. Each of the, say columns is turned on in sequence, and each row is read (or visa versa). If a button is pressed at, say column 3, row 2, when column 3 is turned on, if row 2 reads "on" then we know that switch is pressed.
This scanning might be done by the main processor, in which case we are dead in the water, but if one of the IC is actually a scanning IC, like those used in IR remotes, then we would know (from the IC data sheet) which pins (at the IC) are the rows, and which pins are the columns. Then, we can determine the row and column for each of the switch points. Example (C,R) 3,2 is pin x and y. https://pcbheaven.com/wikipages/How_Key_Matrices_Works/
You could then use a multimeter on continuity (Ohm) and a steady hand, battery removed, place them on the IC pins, verify no continuity, press the switch point, verify continuity/or not. If you see this working for, say the home switch, but not for the back switch, then your clickit is bad.
It's allot of work for a hope and a prayer. It's quite possible that the main controller does the matrix work, however, quite often the I/O needed for the matrix is more than the designer can assign to the microcontroller, so a cheap matrix IC is added. The other benefit is the matrix IC does some switch debounce as well. As an example (what, another example?) 32 switch points can be encoded into 5 place binary number (25), The processor would then communicate using these 5 I/O lines (or one line and communicate serially) with the matrix controller that would use, say 6 rows and 6 columns (6x6 = 36) to detect switch presses to report back to the microcontroller. Example, switches 0-31, say 00101 - switch 5 is pressed. So either 5 lines is used, or the number 00101 is communicated serially on one line. Here is an example of this kind of device https://www.ti.com/lit/ds/symlink/lm...oogle.com%252F
So the first step would be to get some IC numbers, then look up the datasheets. If we can find a matrix controller, you may be able to test your back button's health.
Or you could just look for another controller on ebay
Jim
Comment
-
Originally posted by MrTeroo View PostThanks Jim,
I do have another controller. I only use them to set up the receivers initially.
The back button not working is only a minor inconvenience, but I enjoy fiddling with things.
Where would I buy some click it domes? It's 3.5mm dia
I have no idea on sourcing the domes. Problem is there would probably be a pretty high minimum quantity. Maybe you could pull the back one off to see what you have, and maybe swap it with another that you never use? It's quite possible that if you pull it off cleaning might help?
If you do manage to get some IC numbers, let me know.
Jim
Comment
-
Some points, somewhat from memory, so e&oe:
The keys are, indeed, “matrixed”, the matrix being driven by some of the SOC’s GPIO pins. The CPU does the scanning, interrupt driven.
Here’s to be found (some of) the relevant kernel code: https://github.com/ralph-irving/sque...vers/char/jive
The relevant Linux input device is /dev/input/event2.
A cat /dev/input/event2 will react “nicely” to the pressing of keys. This might give a backstop confirm that “yes, indeed, the hardware is not responding to this particular key”.
Comment
-
Originally posted by MrTeroo View PostI once started washing my Triumph Herald 13/60 convertible and decided to deal with some rust around the heater box.
Well, one thing led to another and two months later the whole car was completely dismantled ready for restoration
Comment
-
Originally posted by mrw View PostSome points, somewhat from memory, so e&oe:
The keys are, indeed, “matrixed”, the matrix being driven by some of the SOC’s GPIO pins. The CPU does the scanning, interrupt driven.
Here’s to be found (some of) the relevant kernel code: https://github.com/ralph-irving/sque...vers/char/jive
The relevant Linux input device is /dev/input/event2.
A cat /dev/input/event2 will react “nicely” to the pressing of keys. This might give a backstop confirm that “yes, indeed, the hardware is not responding to this particular key”.Of course when you have $ to spend a SOC or uP can do everything.
I really have no idea how to even start your suggestion, but then again, all my back buttons work!
Jim
Comment
-
Originally posted by MrTeroo View Post
If I take it off, how would I reattach it?. It looks like (in the video) it is held in place by that overlay that is adhesive back. It looks similar in your pictures. Maybe you could do the same with some sort of thin tape, but please don't quote me.
One way you could look at it. It's not working anyhow....
Comment
-
I had a thought about this... mrw let me know if you agree. - If all of the other buttons work and the scroll wheel turned slowly works smoothly (i.e. it looks like each discrete position of the rotary switch works), then it has to be the mechanical click it. My reasoning - If the buttons are matrixed, and any port on the SOC, or any discrete device in line, like a buffer, is faulty, then either a row or a column would be missing, causing more than the one button to be bad. Even if it was a trace on the pcb this would be true.
So, it is most likely, especially given the mechanical nature of the clickit, that the problem must be in that area
Jim
Comment
Comment