My cousin inherited a vintage Danish telephone (meets USA signal spec apparently) from our grandmother but lamented that she had no land-line to actually use it. Still, it would make a wicked cool addition to her nightstand.
So I was all like “I can Bluetooth that ish” then she be like
What it does
Makes and receives phone calls via Bluetooth and a paired mobile phone. Basically a big, heavy Bluetooth headset.
What it’s made of
- Any US or UK (and probably all regions) standard telephone
- Silvertel AG1170-S5 SLIC
- RN-52 Bluetooth Audio Module (tested using a breakout board)
- Custom PCB designed in EAGLE and fabricated at PCBExpress
- Firmware written in C using MPLABX, compiled by XC32 and loaded using an ICD3
Theory of operation
TL;DR: Works like a typical telephone.
Plug it in and pair it with your mobile phone using the standard method – press and hold the pairing button.
When a call is received, the phone rings. When you pick up the receiver the call is connected, when you put it down the call is ended. You speak and listen through the original handset. Furthermore, the MCU samples the rotary dial so you can initiate calls from the phone.
The MCU provides:
- Regionally-appropriate dialtone when you pick up the handset
- Regionally-appropriate busy tone
Trials and Tribulations
- How do I bypass the microphone gain stage to use the RN-52 with a pre-biased (1/2 of 3.3v), line-level audio input signal? This is referenced in the usage guide and datasheet but there is no command documented to use this. Does my application require a CODEC? I sure hope not.>>> The microphone gain can be changed from -3dB to 42dB in linear steps. If the gain is set to less than 24dB using the ‘SM’ command the line in mode is automatically entered.
- Is the audio output intrinsically a line-level signal?>>> The audio output is a speaker level signal and not line level signal.
- Which input channel (left or right) is used when in HFP mode? I’m making a device to turn a standard telephone into a bluetooth handset by way of a SLIC.>>> MIC_L+/- is used for HFP mode.
- Is this a typo? Do they mean the “microphone gain level” can be set from 00 to 1F?>>>>Yes that is correct. It is a typo. Should be ‘microphone gain level’. I will save this as an update to be captured for document revision.
- If the -3 to +42dB gain (45dB range) is entered from 0x00 to 0x1F, that means each increment equals a +1.4dB change. This means the default setting of 0x09 = +9.6dB gain. Is this correct? >>>>Yes it is a linear increment and should be an increment of 1.4dB per step. Did SM command work for your design line level input needs?