About Ken Shirriff

I'm interested in computer history and reverse engineering old chips. I am currently restoring a Xerox Alto.

Some projects:
Wrote the Arduino IRremote library for infrared remotes.
Attempted Bitcoin mining on a 55 year old IBM 1401 punch card mainframe.
Got six symbols added to Unicode including the Bitcoin symbol (₿).
Wrote an article on the first microprocessors for IEEE Spectrum.
Gave a talk on reverse-engineering old integrated circuits at the Hackaday Superconference (YouTube).


Email me at [email protected] You can follow me on Twitter at kenshirriff to get blog updates. The RSS feed is here.


Richard said...

Great job you do.
It is of immeasurable value.
Very important his articles because it shows the evolution of electronics step by step, what ideas were formulated to overcome the obstacles encountered at the time.
This work will have more value in the future.

Maj Brazilian Army Richard Miranda
Brasilia - DF - Brazil

Excelente trabalho que você faz.
É de um valor imensurável.
Muito importante os seus artigos pois mostra a evolução da eletrônica passo a passo, quais idéias foram formuladas para contornar os obstáculos encontrados na época.
Este trabalho terá mais valor no futuro.

Maj Exército Brasileiro Richard Miranda
Brasília - DF - Brasil

Unknown said...

For people who like me feel a great passion for those we like, electronics, touring your site is a pleasure. Thank you very much for sharing your knowledge and experience. From Argentina, Rubén Oscar Iglesias.

dave said...

Great read ! Enjoyed reading your steps and though process very much.

I once reverse engineered an HF Transmitter Control System made with a dual chip 4040? and core store and replaced it with a BBC microcomputer using a 6502 ! Great fun ! .. your working at a much lower level .. which I had always wondered about .. again .. great read .. Thank you !
Dave Parsons
Prior life BBC Engineer

Anonymous said...

Just wanted to say thank you for your awesome blog! I’ve recently rekindled my interest in electronics after about 20 years of focusing on other things and already having a lot of the basics down I really wanted to learn and explore things at a deeper level. I stumbled across your 7805 article first and it was exactly at the level I was challenged by and engaged with. Thanks for taking the time to share with the world! Can’t wait to read the rest of your entries!

Anonymous said...

hey, i learn a lot with you work.
thanks so much for share your knowing with all of us.
still working and i love you blog.

Anonymous said...

This is fantastic work. Truly inspirational. Thank you for sharing

Anonymous said...

This is fantastic work. Truly inspirational. Thank you for sharing

Anonymous said...

I like the cut of your jib Ken.

Anonymous said...

Awesome work - Guy !
You do really a very deep research
I was amazed with Sinclair's "Scientific" and TI "Datamath" Emulators
I hate Javascript for a long time, reallu don't like it...
But you can **proved** that we can get wrong !

Best regards from Brazil,

(Prof) Samy
Ham: PP5VX
Location: Sao Francisco Island (SC - Brazil)
Usually I do: Math & TI things (with an EE degree...)
PhD: Yes ! In VCM ("Very Curious Man") - LOL

Ray said...

Ken, I am sure I have written you on this before.
"The D200 was followed shortly by another avionics computer that contained three CPUs and used in total 28 chips: the Central Air Data Computer, built by Garrett AiResearch (now part of Honeywell). The computer, a flight-control system designed for the F-14 fighter, used the MP944 MOS-LSI chipset, which Garrett AiResearch developed between 1968 and 1970. The 20-bit computer processed information from sensors and generated outputs for instrumentation and aircraft control"

For the F14 microprocessor you include the ROMs containing the programs but for the 4004 you don't. Don't you think the 4004 needs programmed. Both computer contain six chip types but you emphasize 26 chips for the F14 microprocessor and feature the 4004 as a single chip something. The uninformed is forced to believe you but I think you know better. Building a "mil-spec" 20-bit computer two years before the "commercial-spec" 4004 is a feat many have had a hard time to grasp. BOTH were made from the exact technology.

Around 1974 I programmed the first microprocessor pin ball game, Lucky Dice for Ramtek. I used a 4004 and the final design used way over 20 program ROMS.

I like your style and research details but PLEASE present accurate details so the uninformed are not fooled. I know you know the difference.

Ray Holt
F14 Microprocessor designer

Unknown said...

I need IRremoteESP8266 multiple receivers support.
To test a single receiver connected to 3 different gpio pins simultanously.
Here see Arduino-IRremote meets;

can you help me?
Big thanks

Serkan Urkmez
[email protected]

Giulio Paggi said...

Thank you for your IrRemote work!
I write from Italy
I offer you my most sincere congratulations for your incredible technical and programming skills.
Many who consonate to me consider me a genius, I feel nothing before you!
Nice to have been able to write you these few lines!

Grazie per il tuo lavoro IrRemote!
Scrivo dall'Italia
Ti faccio i miei più sinceri complimenti per le tue incredibili capacità tecniche e di programmazione.
Molti che mi consocono mi reputano un genio, mi io mi sento nulla al tuo cospetto!
Piacere di averti potuto scrivere queste poche righe!

Anonymous said...

Customs seizing counterfeits
"Apple & Customs STOLE my batteries, that they won't even provide to AASPs"

Apple has a definition of counterfeit that just makes things worse, calling refurbs and parts trademark violations

Real mess

michaeljhuman said...

The article on the 4 bit ALU, along with the interactive version was the most helpful explanation I have seen on an ALU.

The only really confusing part, is that some AND gates have only one input. Having not seen that before, and never having taking a class on logic circuits, I was not sure why such a thing would exist, unless it's a pass through buffer or something like that. Maybe the second gate input is always high.

Thanks a lot for your clear writing on this topic.

michaeljhuman said...

Thanks a lot for this article, very helpful.

I was mainly unclear about single input logic gates. Is it some kind of buffer?

Unknown said...

Hi Ken
Love your work, you are a god to me and inspire me to explore.
This brings me to my question, I have an Asko front loading washing machine that was going wrong for about 3 months so I thought I had time to learn how the control board worked but it totally failed before I could find out what signs are sent from the main board to the 3phase motor controller. It is a 1phase machine but with a type of VSD. I would love to copy the main board and some of the cycles using an Arduino but don’t know how or what they would use to control the VSD. Can you advise me on this please. Asko W6451 Quattro 1500rpm.
Thank you

Unknown said...

Hi Ken.
Congrats for your job.
I am making one aplication with my ARDUINO UNO ATMEGA328 that needs to read a PWM voltage. Does this ECU reads the a voltage straight on the pins?
Sorry the "primitive" question, I just looked answers on the net with no avail, my graduation is on AUTOMOTIVE ENGINEER (graduated 1981 - hehe).
Help is appreciated.
Keep safe

Anonymous said...

Love your work !

David S Maynard said...

Hello Ken:
Great work. Thank you. I worked at Xerox PARC on an Alto. I used to know BCPL pretty well. If you every come across a Breakout game for the Alto, that was mine. Also any "JDS" (Japanese Document System) files.
I also enjoyed your IBM 360 page. I was an operator on the 360/91 serial # 2 at Lockheed as a summer job in 1968.

David S Maynard

Mark Szlazak said...

Hello, just found your blog and from what I have seen so far it looks like you mostly reverse engineer digital IC’s. Have you tried analog chips. I am trying to on an older comparator the LM306 which came just before the Bob Widlar era and the LM311, etc. The LM306 has two datasheets from National but one seems more like the actual micro model of the circuit than the other. Open source info like spice bjt, jfet, etc parameters from books like Gray, et al. No photos of the actual IC layout and transistor sizes are available. The problem is of course the manufacturer does not give out information about the transistors used. So I just play around with Spice and any relevant information I can find to get the circuit to work and match the data sheets. Do you have any suggestions or blog posts on stuff like what I am trying to do?