Edit: My solution is described in post #30.
This is not something I really need to do, but it turns out to be interesting. Four years ago I bought a Magic Chef microwave oven, model HNN1110W. And it has the most obnoxious "feature". When cooking ends, it produces five loud beeps at about 1Hz, and it insists on producing all five beeps even after you've opened the door. It also won't allow you to enter anything new on the keypad until after it has finished beeping. I don't see how anyone could have thought this was a good idea, but there it is.
I've been thinking how I might stop the beeping, and of course the simplest approach is to just cut the lead going to the beeper. But that's not really the ideal solution because it's useful to have some beeps. And it turns out that at any point during the cooking countdown you can hit Stop, and it will pause. Then if you hit Stop again, it cancels everything and returns to idle - but without the five beeps.
So I'm thinking I can install a microcontroller (an Arduino board or maybe an MSP430) that would tap into the display and the keypad. The display is seven segment, four digits, and it connects with 11 pins, which is right for multiplexing seven segments and four digits. See Display.jpg below showing where I could make the connections. The keypad has 24 pads on it, and the flex cable connecting to it has 6 + 4 traces, which I assume is some variation of rows and columns. See Keypad.jpg below.
Assuming just for example that it's a common cathode display, then my MCU could be interrupted when a digit cathode line goes low, then in the ISR I would read the state of the segment lines, convert that to a number, and store it as the value currently being displayed on that digit. Then back in Main, the code would continually check for "blank, zero, zero, three" as the state of the display. When that occurs, it then checks to be sure that "blank, zero, zero, two" occurs very close to one second later, followed by "blank, zero, zero, one" one second after that. At that point, it shorts the appropriate row and column pins twice, which simulates two Stop keypad presses, which stops the cooking and clears everything, but with only two quick beeps. It's necessary to react only to a countdown, otherwise it would trigger as the clock counts up.
Right now I need to do more investigating to find out what voltage the system runs on, and whether it's CA or CC. But beyond that I'm wondering about how to detect high and low on the display pins. If it's CC, a segment line will not go to 0V when the cathode goes low. It will only go down to the Vf of the LED (green), which will be about 2V. Well that's not exactly low. Also, I don't know yet if these segment and CC lines are push/pull. I know a lit segment line will be about 2V, but I don't know what a dark segment line looks like. It could be 0V or it could be tristate. Same issue with the CC pins. So I may need pullups or pulldowns.
I've been looking at the 74HCT14 if it's a 5V system, or the 74LVT14 if it's 3.3V, as a way of level-shifting the inputs so the MCU can recognize them properly as high or low. Are there better ways to do that?
Since there is some risk involved in taking the controller board out, if anyone thinks this just isn't going to work at all, please tell me your thinking. Or if you have any other comments or suggestions, please post.