Turn an old phone into a robotic personal assistant | HackSpace #73

In the brand new issue of HackSpace magazine, out now, we show you how to bring an old phone into the 21st century by adding a Raspberry Pi to turn it into a networked assistant.

Figure 1
The phone still looks good nearly 50 years after it was made
Figure 1 The phone still looks good nearly 50 years after it was made

Rotary dial phones are fashionable again. You can even buy brand new ‘old’ ones based on the original design shown in Figure 1 above. These have dials, but not the weight or the authentic bell sound. The author was completely unaware of this trend when he picked up his red phone. The idea was to retain the external appearance and behaviours but bring the device up to date with all-new internals and some fun behaviours. It seemed to him that there should be room inside for a reasonable amount of computing power, and he was keen to hear the old telephone bell sound again. He wanted to create a web-controlled device that could be used to receive messages and alerts. The telephone that was built contains a Raspberry Pi Zero 2 W running JavaScript code inside the node environment, using Express to host a telephone website. You can find all the code, 3D files for the mounting plate, and a setup sequence for a Raspberry Pi in the GitHub repository for the project.

Delving into history

The first task was to open the telephone and check the amount of space available for the new innards. Figure 2 shows the printed circuit board (PCB) inside the phone. This design was one of the first times a PCB had been used in a UK telephone. 

Figure 2
The circuit sends audio signals through the resistor bulbs if it detects the phone has a connection which is close to the telephone exchange. This reduces the sound volume and makes the bulbs light up in time with your speech
Figure 2 The circuit sends audio signals through the resistor bulbs if it detects the phone has a connection which is close to the telephone exchange. This reduces the sound volume and makes the bulbs light up in time with your speech

The author would have liked to have kept the internal components in place so that the phone could be returned to its original state if required. Unfortunately, this turned out to be impossible. 

Wiping the slate clean

The circuit board was cleared of components, and a 3D-printed holder for the Raspberry Pi Zero with prototyping board was inserted into the space, as shown in Figure 3, below. The phone will use a 12-volt power supply, and it was found that a power supply socket fits into the cord holder for the exchange connection with an appropriate washer. 

Figure 3
The remaining two connections (orange wire and pink wire) are for the switch that the Raspberry Pi will use to detect when the handset is lifted. The switch that detects the handset remains on the circuit board
Figure 3 The remaining two connections (orange wire and pink wire) are for the switch that the Raspberry Pi will use to detect when the handset is lifted. The switch that detects the handset remains on the circuit board

Figure 4, below, shows the circuit for the telephone. The two devices in the centre are two ‘buck converters’. The one on the left converts the 12-volt power input into 35 volts to power the bell. The second converts 12 volts into 5 volts to power the Raspberry Pi. The handset switch is connected to the handset cradle and indicates whether the handset is on the phone. The dial pulse and dial active switches are in the telephone dial, of which more later. 

Figure 4
There is also USB audio device plugged into the Raspberry Pi to provide the sound output from the phone
Figure 4 There is also USB audio device plugged into the Raspberry Pi to provide the sound output from the phone

Ring the bell

The bell in the telephone was originally driven by two coils powered by a 75-volt alternating current signal with a frequency of around 18Hz. The coils move a bell-clapper left and right between two metal bells tuned to different musical notes. The author was very keen to retain the distinctive ring, but less keen on getting 75 volts up his armpits when assembling the phone. So, rather than using 75 volts AC, he opted to use a much less tingly 35-volt supply, using software to drive each coil in turn. Two MOSFET controllers were used, one for each bell. These are connected to general-purpose input/output (GPIO) pins on the Raspberry Pi which are controlled by JavaScript running the phone.

Turn an old phone into a robotic personal assistant | HackSpace #73

HackSpace magazine issue 73 out NOW!

Read the full tutorial when the free PDF version of the latest issue becomes available on December 14th.

Each month, HackSpace magazine brings you the best projects, tips, tricks and tutorials from the makersphere. You can get HackSpace from the Raspberry Pi Press online store or your local newsagents.

Turn an old phone into a robotic personal assistant | HackSpace #73

Server Status

Aradippou Chat 1 Chat 2 Larnaca Limassol Nicosia

Chat Links

Official Links.

1. Chat 1.
2. Chat 2.

Alternative Mirror Links.

1. KiwiIRC 1.
2. KiwiIRC 2.

Other Web Clients.

1. IrcCloud.

Recent Posts

Related Posts:

Archives

Super Club Radio

Mighty Deals

CyIRC

CyIRC Tweets

Scroll Up
Fatal error: Uncaught WMAC\JSMin_UnterminatedStringException: WMAC\JSMin: Unterminated String at byte 1180: "+o.accessToken}}).then(e=>{if(!e.ok)throw e;return e});return a.catch(e=>{console.error(`Failed to logout chatrix session. deviceId: ${o.deviceId}`)}),a}})(); in /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php:215 Stack trace: #0 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php(157): WMAC\JSMin->action(2) #1 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php(96): WMAC\JSMin->min() #2 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/class-main.php(375): WMAC\JSMin::minify('(function(){"us...') #3 /home/bszucbfe/public_html/wp-includes/class-wp-hook.php(324): WMAC_PluginMain->jsSnippetcacher('(function(){"us...', '/home/bszucbfe/...') #4 /home/bszucbfe/public_h in /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php on line 215