ESP32 brings old phones back to life
Posted: Tue Jul 11, 2023 3:08 am
Introducing my latest gadget - weeBell (https://hackaday.io/project/191002-weeb ... ots-phones) - a telephone provider for one. weeBell provides a traditional 600 ohm 2-wire telephone port via a AG1171 ringing SLIC and ES8388 codec chip. It allows code on the ESP32 to ring the telephone's bell, receive and send audio, and decode rotary and DTMF dialing.
The first firmware (https://github.com/danjulio/weeBell_bluetooth) uses the IDF Classic Bluetooth Handsfree Profile to connect the telephone to a cellphone (like a car handsfree). Incoming calls cause the phone to ring. The user can pick up the phone's handset, get a dial tone and dial a number which is processed through the cellphone. You can even dial 0 for an "operator" (the phone's voice assistant). The open source code supports several different country's ring patterns and dial tones and I'm trying to collect the authentic info for more countries.
weeBell has a local 320x480 pixel touchscreen for configuration and dialing (for example to enter DTMF tones when talking on a rotary telephone).
It's based around my gCore board and a new POTS shield circuit board. I think with the appropriate impedance matching circuitry it could even work with telephones more than 100 years old!
What was fun about this project was making the ESP32 handle the real-time audio processing including tone generation, DTMF generation and decoding, and the necessary line echo cancellation to prevent the person on the other end of the line from hearing their voice echoed back by the SLIC's hybrid circuitry.
I want to explore using Espressif's SIP support in the ADF to also let weeBell be a VOIP telephone interface in the future.
The first firmware (https://github.com/danjulio/weeBell_bluetooth) uses the IDF Classic Bluetooth Handsfree Profile to connect the telephone to a cellphone (like a car handsfree). Incoming calls cause the phone to ring. The user can pick up the phone's handset, get a dial tone and dial a number which is processed through the cellphone. You can even dial 0 for an "operator" (the phone's voice assistant). The open source code supports several different country's ring patterns and dial tones and I'm trying to collect the authentic info for more countries.
weeBell has a local 320x480 pixel touchscreen for configuration and dialing (for example to enter DTMF tones when talking on a rotary telephone).
It's based around my gCore board and a new POTS shield circuit board. I think with the appropriate impedance matching circuitry it could even work with telephones more than 100 years old!
What was fun about this project was making the ESP32 handle the real-time audio processing including tone generation, DTMF generation and decoding, and the necessary line echo cancellation to prevent the person on the other end of the line from hearing their voice echoed back by the SLIC's hybrid circuitry.
I want to explore using Espressif's SIP support in the ADF to also let weeBell be a VOIP telephone interface in the future.