Go Down

Topic: Arduino Typewriter Interface - some basic questions (Read 3 times) previous topic - next topic


Hello arduino community!

I just received my Uno in the mail and have decided making communication with my old electric typewriter my first project.  I have seen this done (with arduino), but have a couple of questions to make sure I get things started out correctly. 

One of the recent projects I have seen actually uses solenoids to actuate the keys.  I don't want to go this route.  I just want to interface with the keyboard matrix.  Here is my plan:

I have some 595 series shift registers.  I have read the arduino tutorial on these and its very straightforward for me.  The typewriter I'm interfacing with is powered by an Intel 8052.  The ribbon cable has 17 inputs on it.  I haven't traced them out, but it appears to be an 8x9 matrix.  If I short out a couple points from the rows/columns a get a character.

My plan is to have 3 shift registers.  The first two will cover the rows and the output pins of the third will go to the columns.  So if I send three bits, this should send power to one input of a row and one input of a column.  I will be sure to ground any unused output pins on the registers. 

Will that have the same result as my initial test of physically connecting the two points?

Also, if this is correct, the plan is to write some code to map the matrix.  If I can figure out the 0 and 1 key, I could have it print the received bit and the letter that resulted.
e.g.  000100000000000000001000 A , etc.

Linux is my OS of choice and I can write some pretty mean scripts with bash and perl.. but I often think line by line and not necessarily pragmatically.  So.. final question is:
Once I have the matrix mapped out, do I then end up with a really long table that just defines each letter?  It seems obvious that I would, but I know I have written 70 lines of code in the past that has been condensed to about 4 by various folks on the net..

Once again, I am basically just looking for some "you're on the right paths" or "this won't work" kind of feedback.  I'm not trying to be lazy.. just don't want to go have to buy a new arduino, typewriter and shift registers because I've fried them :)

BTW, I know the 8052 has serial input capabilities, but for what I want to learn (I learn via projects), I would like to go this route for now.  (Besides, the 8052 datasheet isn't nearly as fun as reading up on arduino stuff).. I suppose I would be a little sad to learn that my project could have been done with two wires and 20 minutes, but like I said..its a learning experience)

Thanks for any guidance anyone can offer.  I chose Arduino because I am very passionate about Open Source and look forward to someday being able to share some info with the community (once I get smart) ;)


First thing to do is to confirm the typewriter works with 0 and +5V otherwise you might kill you arduino.

Can you tell more about the typewriter? Type model picture manual datasheet etc?
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)


Thank you for your reply.  I have been googling for an answer on the 8052's voltage, but I seem to be search deficient at the moment.  I can't seem to find a proper data sheet for a chip that was used for over a decade...I'll keep looking.

The typewriter is a  Smith Corona SL 470.  It is powered by an Intel 8052.


As for pictures, someone made a blog entry about starting this project (2 years with no updates) and they included some decent pics of the inside. You can see it here:


Suggest you start by measuring the voltage on both terminals of each of those switches in the matrix. This will tell you what logic level they're using and also give you a chance to figure out how the matrix is read. One way to read that sort of matrix is to pulse each column output and see which row input(s) receive the pulse. In that case, you will need to be much smarter about how you replace those switches.
I only provide help via the forum - please do not contact me for private consultancy.

Go Up