keyboard translator

I recently inherited a Tandy 1000 TX It uses a propriatary keyboard If I use a Arduino to translate from a 104 keyboard what are the gotchas to look out for What do I need between the Tandy and the Arduino

Richard

You need a schematic of the Tandy keyboard, then you need write a sketch to wiggle the lines to make it think it is connected to a Tandy computer.

Grumpy_Mike: You need a schematic of the Tandy keyboard, then you need write a sketch to wiggle the lines to make it think it is connected to a Tandy computer.

Can I mount servos to do the line wiggling or do I have to do it manually

No wiggling the lines means writing HIGH and LOW logic levels from the output pins of the arduino, connected directly to the keyboard. The schematic of the keyboard should tell you what you need to do.

I have the full manual I can send you if you care take a look and offer suggestions I would appreciate it It is 16M I think I can not attach it here

No can you just scan or photograph the schematic, it is just one page and that should tell us enough.

I think this is the relavant part

keyboard.pdf (955 KB)

That looks pretty doable seems like communication will be the least of your problems,

It looks quite straightforward. Basically it will work like the shift in examples:- http://www.arduino.cc/en/Tutorial/ShiftIn Figure 24 shows you what you need to do. You wire up arduino pins to the data & clock and set them as inputs. Then wire up arduino pins to the reset & busy and set them as outputs. Also wire up the +5V and ground to the arduino's +5V and ground.

Then in the software you hold the busy low. When you want to read the keyboard you put this line high. When you do this you will get pulses out of the clock line. You read these pulses and when they go from a low to a high, you read the value of the data line and shift that bit into a variable. You will then shift 8 bits into the variable and when you have done this you set the busy line low.

The only thing it doesn't mention is the polarity of the reset line, so you will have to try it both way rounds. In setup() put it high, delay for 20mS and then put it low, or the other way round (put low, delay then leave high).