I got an old analog Bang & Olufsen phone with a quite nice 80s design. I wanted to make the device compatible with the digital phone network of today. The website beoworld.org has more background information about the phone itself. A goal of this project is doing this without damaging the original hardware, so the phone can be restored to its original state without problems.
First I cleaned the whole phone with a Melamine foam sponge, which I can recommend those if you don’t have them yet. Alessandro on Hackaday had reverse engineered the 13-pin connector of the Bang & Olufsen Beocom 600. Sadly, I have the Beocom 1000 with a 9-pin connector, which means that I had to redo the reverse engineering work.
The pinout is as follows:
|1 = 1,6||2 = 2,6||3 = 3,6||Red🟥= 8,9|
|4 = 1,7||5 = 2,7||6 = 3,7||Enter = 7,9|
|7 = 1,8||8 = 2,8||9 = 3,8||Pause = 6,9|
|* = 2,5||0 = 1,5||# = 3,5||Memory = 5,9|
|- = 1,4||+ = 2,4||R = 3,4||Redial = 4,9|
The layout of this flex PCB does not match the typical keypad matrix, but the pins 1, 2, 3 and 9 can be used as the “vertical” ones and the pins 4, 5, 6, 7 and 8 can be used as the “horizontal” ones. The code that run should do the following: iterate over every horizontal pin, set one of those pins to HIGH and read the logical value of all of the vertical pins. If one reads HIGH, the button is pressed and saved (it should do debouncing and be able to read multiple presses of the same button). Continue the loop until enter is pressed. If the red button is pressed, remove the buffer.
The following pins on the ESP32-WROOM-32 from Espressif are used:
- Pin 1 until 9 as GPIO
- Microphone and speaker as analog peripherals. As far as I can see, the handset cannot be opened without destroying the case, so I have to use the original loutspeaker and microphone :(
- 2 pins for the switch that does on-hook detection
I did not had any zif sockets, so I reused a PCI socked from an old broken x86 PC motherboard. To make the socket fit on a protoboard, I have removed 50% of the pins from the PCI socked. Luckily, the spacing between the pins on the flex cable was pretty much exactly 50% of the socket, so that made a quite good fit! I have added some paper into the socket so the flex cable doesn’t fall off.