pin connectionsSo I've found a basic composite video "synth" which I'm trying to manipulate with an arduino. The device was originally controlled by NO tact switches between pins on the CMOS MCU, a Signetics SC80C51B (datasheet below).

I've replaced some of the tact buttons with 2N7000G N-channel signal mosfets, which are driven directly from the pins of the arduino UNO (5v).

So far, I've had some success. The arduino can reliably emulate most of the buttons by sending a momentary (~10ms) HIGH to the gates of the fets. However, some of the buttons behave erratically, triggering other buttons, even those which have not been replaced by mosfets.

EDIT: removed confusing example, made unnecessary by schematic.

Now, this leads me to think that the buttons are multiplexed, which makes sense. However, I can't figure why some of them work completely fine and others don't. Logic leads me to think that if the multiplexing were the problem, all of the buttons would behave erratically.

Unfortunately, I don't have a digital scope to capture any of the pulses and investigate further. I suppose I'm just hoping that someone can explain to me how I can better interface with the Signetics chip, or how to better emulate the button presses.

If you need further informations (pin #s, etc), just ask, I'm just not sure what's relevant.


I've attatched a photo of the pins as they're hooked up. FETS A, B, C, and "OUT" all work correctly, "REV" and "WIPE" trigger other buttons as well as themselves. FET A's drain does not pass a continuity test between any of the pins on the MCU, but works correctly, don't know what to make of that.

Signetics Datasheet

  • 1
    \$\begingroup\$ It would help if you added a schematic of your connections from microcontroller to the SC80C51B. \$\endgroup\$ – Pål-Kristian Engstad Dec 5 '17 at 19:06
  • \$\begingroup\$ Are there any pull-up resistors or pull-down resistors on any of the lines (hopefully not internal if you don't have access to source-code)? Consider the shorting effects of the body-diodes if the sources are at 5V (and the drains have pull-down resistors). You might try one at a time and try swapping sources with drains, or possibly consider 5V rated analog switches as an alternative to the mosfets. \$\endgroup\$ – Tut Dec 5 '17 at 20:17
  • \$\begingroup\$ You have got a connection between ground of the synth and ground of the Arduino, right? Do you even have an analogue scope available to see which MCU pins are outputs and which way they switch? \$\endgroup\$ – Finbarr Dec 5 '17 at 20:21
  • \$\begingroup\$ @Tut There's a 10k pulldown on each gate, but as far as I know there aren't any external pull resistors for the CMOS MCU. When metered, there's a ~1v difference between source and drain, about 4v on source and 5v on drain, relative to system ground. I have considered using something like the 4066 IC, but these mosfets are what I have on hand so I'd prefer to make them work if at all possible. I'm just trying to discern what makes some of the FETs operate properly so I can apply those principles to the ones which don't work. \$\endgroup\$ – Andrew S. Dec 5 '17 at 20:24
  • \$\begingroup\$ @Finbarr Sorry for the incomplete schematic, yes, the arduino and the synth share ground, without that it doesn't work at all. I do have an analogue scope, however I'm not sure what to look for as far as output vs. input of the MCU. I'm already confused enough that most of its pins seem to be at almost the same potential relative to ground, between 4.5 and 5.5 volts. \$\endgroup\$ – Andrew S. Dec 5 '17 at 20:28

So the buttons were multiplexed. I identified the multiplexing outputs, and discovered that these signals went from -5v pulses to -1v pulses whenever the arduino was connected to the gates of the MOSFETs, even if it wasn't powered on. While I didn't discover why this was the case or why it caused "random" button presses, I managed to solve the problem by putting 1N4148 Schottkey diodes between the digital pins of the arduino and the gates of the MOSFETs. Now the mosfets behave as individual "buttons" and do not trigger unwanted events. Thanks for all the help.

edit: if anyone finds this as they're trying to olve a similar issue, feel free to message me and I can give you a full schematic of my solution.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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