Reverse engineering of a Minitel’s keyboard
Published on November 11th, 2023

Hello everyone,

Recentely, I was interested in turning an old Minitel into an 8 bit computer powered by a Z80. Of course, I want to use as many parts from the original Minitel as possible, but there was a catch. My minitel is a Minitel 9 manufactured by RTIC, which is NOT really documented, so I have to build my knowledge on this machine through reverse-engineering.

I’ve started to work on the keyboard because it seemed to be the simplest part to understand (and it is). Luckily for me, I wasn’t the first trying to understand the inner workings of Minitels, and Matthieu Benoit’s work and Éric Sérandour’s work gave me a solid idea on the internal of the keyboard. I won’t go into any details, since I’m not an expert, but it’s a membrane keyboard, so it works like a matrix keypad, just with more keys.

Knowing that, I just had to understand the pinout of the keybord’s membrane connector.

The connector

Looking at the PCB, I realized that the 9 pins on the left were connected to a a BCD-to-Decimal decoder(SN74LS145N), and 9 pins on the right were connected to an 8-bit shift register (HEF4014BP), which contributed to my understanding of the pinout. Therefore, all I had to do was to connect the different pins to my Raspberry Pi Pico, running MicroPython, turn some pins on, and hope the values were correct. And after a few hours, I was finally able to understand the connector’s pinout.

The connector, but understood. The blue pins corresponds to the input pins, and the red one acts as the output pins

As you can see, the cut in the middle doesn’t reveal much about the pinout of the connector. And now that I know how each pin interacts, I was able to build the following table which describe which pin to read and write to in order to check if a key is pressed :

Input pin \ Output pins 0 1 2 3 4 5 6 7 8
0 Left Yellow key W B N Right Yellow key V C X
1 D G J L 7 8 9 Q
2 S F H K M P O Control
3 Z E R T Y U I A
4 , . ; - : ? Esc
5 Connexion Guide Correction Suite Envoi 4 5 6
6 Fnct Sommaire Retour Répéteur 1 2 3
7 Up Down Left Right Return * 0 # Space

For comparaison, here is a picture of the keyboard :