Maker Pro
Maker Pro

Substitute a membrane keyboard

Hi,

I'm trying to substitute a faulty membrane keyboard with a mcu. So far, I have drawn the electric circuit of the keyboard ( a common matrix arrangement, with some independent buttons), I have also found out that the membrane keyboard is driven by one mcu soldered to the main board, with a interruption-based scanning routine. Although I can get a replacement for the membrane keyboard, I want to be able to forget about future failures by adding a serial port where I could send the keys I want to be pressed. The serial port would be connected to my MCU that I could program and have access to.

I managed to make my MCU scan the membrane keyboard and I have the serial communication running. The piece missing is how to communicate to the main board. My MCU should communicate with the main board by making it think that the membrane keyboard is plugged in. How can I build a circuit to achieve this? In other words, how can I make the two MCUs talk to each other through a "fake-membrane-keyboard-like" circuit?

I'm good at programming mcu's, but not so good at circuit design.

I'd appreciate your help,
Daniel
 
How would you accomplish sending serial data if your keyboard is pooched?
What has failed, the membrane or the MCU that controls the keyboard?
The 'Main Board' you are referring to; Is this the main board for the failed keyboard, or a main board for a connected device?

You may have some fun simulating a membrane with a micro controller.
If it scans the keyboard, you will need to monitor which pin(s) is being driven to determine what part of the board is being read. You will need your MCU to return a high/low to the appropriate input on the keyboard MCU so it 'thinks' that it is reading a keypress. You will need to do this quickly, or you will end up making the keyboard MCU think a different key is pressed than the one desired.
 
Hi,

Here's a litte diagram, to better explain my modification:

Faulty membrane Keyboard
|||||
My MCU (ATmega128) <=== Serial Port
|||||
Main Board of the device

Before my modification, the membrane keyboard was plugged directly to the main board of the device. Programming My MCU will allow me to scan the membrane keyboard and receive a key that I want to get pressed through the serial port; in other words I want to operate my device from either the membrane keyboard or the serial port. The last things described are working by now. The link missing is between My MCU and the main board.

I agree on your comments, my firmware should run fast and smoothly to cheat on the main board. The thing is, there are buttons in the membrane keyboard, like the on/off button, that are not plugged to the main matrix arrangement, they are independent. There's no scanning routine involved, they just close a circuit in the main board to trigger something. I'm looking for a switching circuit, controlled by My MCU, to close those circuits. Then I would be able to turn off and on my device.

Thanks for your comments,
Daniel
 
Hi,

Here's a litte diagram, to better explain my modification:

Faulty membrane Keyboard
|||||
My MCU (ATmega128) <=== Serial Port
|||||
Main Board of the device

Before my modification, the membrane keyboard was plugged directly to the main board of the device. Programming My MCU will allow me to scan the membrane keyboard and receive a key that I want to get pressed through the serial port; in other words I want to operate my device from either the membrane keyboard or the serial port. The last things described are working by now. The link missing is between My MCU and the main board.

I agree on your comments, my firmware should run fast and smoothly to cheat on the main board. The thing is, there are buttons in the membrane keyboard, like the on/off button, that are not plugged to the main matrix arrangement, they are independent. There's no scanning routine involved, they just close a circuit in the main board to trigger something. I'm looking for a switching circuit, controlled by My MCU, to close those circuits. Then I would be able to turn off and on my device.

Thanks for your comments,
Daniel

There are a couple options for you:
-If you know the logic levels being used, you can place you MCU between the membrane/buttons/switches and the main board. Your MCU will then read and forward what it reads.
-Alternatively, depending on the switch in use and what it is switching, you may need a transistor or relay to use as a switch.

Do you have any specs or info on the membrane keyboard or the device that you are working on?
 
Top