ThePhoneSystem


Page Created: 7/30/2014   Last Modified: 4/13/2017   Last Generated: 12/11/2017

In 1991, when I was 21, while going to college full time for a Bachelors in Communication, I decided to build an epic machine.

I had almost dropped out of college altogether the previous year after a horrible experience of trying to get my degree in Computer Engineering. Now I was on a mission to show the world what I was capable of, something that wouldn't just validate my knowledge of computers, but could have served as a Master's thesis, would I have been so fortunate... My disillusionment with academia was at an all-time high.

I did not have much money and could not afford an IBM PC or an Amiga. I still had my old 8-bit Commodore64 that people laughed at.

I don't build things like most people. I build one or two simple things until I understand the principle, then I build a mammoth version using all of my knowledge, gaining the skills, as needed, along the way. There are my projects, and my epic projects .

Most people build up in stages, learning and perfecting their craft, but I am a systemizer with an obsessive drive, and if I know the rules to a system, and calculate that such a project is feasible, nothing conceptually prevents me from extrapolating these rules to their logical end. I don't waste time with the intermediary stages.

Well.. it has its drawbacks. Like "Lost in La Mancha", the real world might not agree, and like "Ed Wood", if you don't watch it, you might just end up bending your own reality to make it agree. I lost a lot of my mirror neurons to my hypersystemizing side doing these sorts of projects.

Back in 1991, there were no affordable digital answering machines. There were no software-based answering systems that used your PC modem and sound card. Answering machines existed, but they were cassette (regular, mini, micro) tape based. There was no digital voicemail provided by the phone company. Most people did not have pagers or cell phones. The Internet was forming, but most people didn't know what it was, and the WWW had not yet arrived. Many communication technologists knew there would emerge a world-wide multimedia system of some sort soon, but it was not known how, just that it might arrive over ISDN. Phone service was deregulated only 8 years prior, and was still very expensive, especially long-distance. There was no Voice over IP. Wireless phones were available but were unencrypted and expensive.

At home, when our telephones would ring, a person in my family would answer one of them, and they would then have to walk to another room in our house to alert the recipient. I lived with 5 other people, and my retired grandparents would frequently answer the phone and then have to make the trek. For 6 adults and only one telephone, this was a lot of phone calls.

We added telephones to each room on the same line, but that didn't stop the problem of walking. My brother's room was on the other side of the house from my grandparents, which was a long walk. People would be reluctant to answer the phone, and our answering machine would catch the messages, which was considered rude at that time if people were actually home.

So I began piecing together my knowledge of computers, electronics and telephony and designed a PBX system. A PBX (private branch exchange↗ is a mini telephone network that is independent of the phone company.

I had always wanted to take my intercom project to the next level, create intercoms using real, full-duplex telephones. I essentially created a self-powered telephone network with a central computer that listened for DTMF (Dual Tone Multi Frequency) tones, also known as "touch tones" and spoke in a synthesized voice on speakers in various rooms. At the time, I knew of no system like this, at least nothing under $10,000 that you might find in an office building.

At that time, microcomputers were becoming a big threat to PBX companies, like how VoIP is today a threat to the phone companies. It was a "disruptive technology", but it was still very early, before the WWW, so I couldn't just surf the net for information on how to build the circuits. So I spent a lot of time in the library, looking up old magazines, piecing together and photocopying circuits from Radio-Electronics, Electronics Now, Modern Electronics, ComputerDigest, and various Telecommunication business periodicals. I purchased and studied Radio Shack's "Understanding Telephone Electronics" in great detail. I was already skilled in interfacing the Commodore 64 to various devices, such as my robot arm , so I decided it was a perfect device to use.

I managed to amass 3 Commodore 64s, purchasing used ones from friends, even if they were broken, I could fix them by replacing the chips and power supplies. People were paying thousands of dollars for IBM PC compatible computers with surprisingly poor sound and color, and thought of their old Commodores as useless toy computers. So I had a spare one that could be the brain of the new system.

The power supplies on those computers were designed to be non-repairable, covered in a block of solid epoxy, and they accumulated heat and failed fairly often. I tried hacking my way through the epoxy, but only managed to retrieve the transformer. The circuit board could not be retrieved without destroying it.

I was lucky to have an independent Commodore 64 repair store a few miles away, my source of replacement Commodore 64 integrated circuits. Whenever I went to the "chip store", I felt I was Matthew Broderick in War Games. I bought a more expensive 3rd party power supply from them that was not covered in epoxy, then dismantled and reverse-engineered it, constructing a schematic from the circuit board, and then I built my own replacement from cheaper parts utilizing the old transformer. Now, not only did I have the new power supply for my C64, I had one that I created that I could also use for either the C64 or my new phone system:

I decided to make it the power source for my new system but all I had was cardboard and black paint to make the case:

I also cannibalized several components from my robot and took its voice, an SPO256-AL2 speech processor:

I have always been interested in giving speech to computers. The computers in the movies that controlled spaceships or other systems always spoke. Speaking computers such as the Texas Instruments TI-99/4A speech synthesis module or their Speak and Spell were big deals at the time.

This chip was the most feasible way for me to do this. The C64 had a wonderful sound synthesizer chip called the MOS 6581 which can be programmed to speak, but the only software that I could find to utilize it for speech put too much of a burden on the computer's memory and CPU which I needed for other things, so I offloaded this to hardware. I had to construct the words from "allophones", which was fascinating to me as I took a linguistics class two years earlier. I later purchased 3 more speech chips when they went on sale at Radio Shack including an CTS256A-AL2 Text-to-Speech chip, which would have simplified the programming, but I never used it.

To power the telephones, I built an 18 volt DC power supply which was sufficient to allow people to talk to each other. It passes 12 volt AC into a full-wave bridge rectifier with smoothing capacitor for unregulated 18V DC.

Telephone electronics are analog masterpieces, devices that allow 2-way voice communication over just 2 wires, compensating for feedback, and also allow dialing and ringing, with no separate power supply.

So I had a network of phones, but I had to have a way to connect and reconnect my internal network to the public phone network. This was so that when there wasn't a phone call, people could use the phones as intercoms, and when there was a call, you could reconnect back to talk to the person. I used a dual pole relay to switch in/out the network, and an appropriate resistor to place the public phone line on hold when the internal network was being used. You can't just disconnect the phones during a call or the line will hang up, but if the phone company detects a certain load, it will keep the line open.

And I had to add circuitry to each phone extension so I could determine if that individual phone was off hook. That way, when a person tried contacting the central computer by pushing the keypad, the system spoke on their speaker only. I used a bridge rectifier on each line, but this was tricky, since I didn't want any electricity from the phone line itself to pass through by system. So I isolated each line using using two ILQ-74 quad channel optoisolators. This was exciting for me, as I knew nobody using light as a part of their circuitry. Using light was and still is fascinating to me, a motivation for my later OswaldLaser .

I also used bridge rectifiers in its ring detection circuitry to automatically connect a call if it happened to be using the intercom, a really cool feature. It would using timing routines to deduce that the phone was ringing.

Now, when a phone call comes in, and someone answers, how do you get that person in another room to pick up the phone? They don't know the call is for them.

Well first you need a way to tell the computer who the call is for. Voice recognition as I learned on my robot, was not reliable at that time, but DTMF tones are. So I integrated the Silicon Systems SSI 202-P chip.

But how does the computer notify the other person? At first, I thought I would just ring the other phone. I would create switching circuitry to ring only that phone. The problem is that a telephone ring is a high voltage AC signal, not like the lower voltage DC power the phones normally use. Telephones are designed to detect this and prevent their circuity from burning up, that wasn't the problem. It was that the components needed to construct a high voltage AC power source of the right frequency were too expensive for me. I also didn't like interfacing such voltages with my logic board.

So instead, I built little speakers in each room, and connected them to a central audio amplifier. This was cheap, and it also had the benefit of allowing it to speak to the person, not just a ring, like a PA system, so it could deliver more information.

For reliability, I decided I would not use relays for this but would switch the analog wave using STMicroelectronics HCF4053BE and the RCA CD4051BE analog multiplexer ICs. My robot used relays, but I wanted this thing to be more reliable, solid-state, and used the multiplexers. But one multiplexer could not handle the current my amplifier was producing, so I added two 4053s in parallel. I wasn't sure if this would work. I asked my electrical engineering friend what if they don't switch at exactly the same time, and one multiplexer turned on and encountered the the load a microsecond before the other. He said that they would probably burn out eventually, maybe not right away. Like my Subaru head gasket project, I made a calculated decision that they wouldn't burn out anytime soon, that a microsecond past the rated current wouldn't kill it.

The multiplexers were my version of today's modern sound server↗ but I built mine in hardware. The SoundBlaster was only recently invented and I didn't know much about it. I was able to run both the line level audio from the C64's SID chip and the audio from the SP0256-AL2 speech chip to various speakers, and also to the phone line itself, by using the multiplexers, an LM324N op-amp, and and a transformer to match the audio to the phone line.

This was new territory for me. My skills in building analog circuits, especially RF, were abysmal. I had the basic analog knowledge, much of it gained from electricity class in high school, but even after getting my amateur radio license in 2013, there is nothing simple about it. My early transmitters failed, I never got them working. They are hunks of dead parts to this day.

Analog electronics is the language of James Clerk Maxwell, Nicola Tesla, and Edwin Howard Armstrong, the language of calculus, but digital electronics and switching is the language of Claude Shannon and Alan Turing, the language of discrete math, the language of my head.

Connecting all of this to a Commodore 64 was an engineering feat in itself. The C64 has a wonderful user port, kind of like the GPIO port on a Raspberry Pi, except that it uses TTL 5V logic. It even contains a software UART, a clever and efficient approach, but to get true RS-232 you have to change the logic levels using additional circuitry, which I did on several other projects .

However, my speech synthesizer chip was hogging this port, so I thought I would do something tricky. I would use the cartridge expansion slot, an "addressable" port, and convert it to give me controllable I/O lines. I bought a used game cartridge for $1.99 at a used computer store and took it apart and connected up Motorola and AMI 6821 PIA chips to give me these lines.

It took me a several months to design and about a month of work to build, working on it every day until I went to sleep, but it worked. The multiplexers held.

I then tried to interface our GE 2-9862 dual-microcassette answering machine into the system so any of us could pick up the phone and check messages from it. It had its own remote play feature where you could call in and play your messages. But the only way to get that machine to go into "answer" mode where it would respond to DTMF tones was to receive a ring. But that ring, like I said earlier, requires that costly high voltage signal that I didn't want to produce.

So I did something which I thought was ingenious. I programmed a 5V pulse generator in assembly language on the C64 to mimic the frequency of the US ring signal. I had to use assembly, since the BASIC interpreter running on a 1 Mhz C64 is fast enough to crudely detect a ring, but not fast enough to perfectly mimic a ring frequency needed by the answering machine.

I figured that the answering machine probably converted the voltage down and had lower voltage chips that interpreted the signal as a ring like my system did. So I probed around on the machine's circuit board until I found what looked like the ring detection circuitry, and when I applied the 5V pulse generator to those solder points, the machine thought it was ringing and went into answer mode.

I was then able to control the answering machine from any phone in the house. It was not reliable, though. Sometimes the machine wouldn't hear the pulses. I couldn't afford an oscilloscope so I had to rely on logic and deduction. I later intercepted the blinking message LED of the answering machine, sending the signal back to my system, so it could count and report how many messages were waiting.

While in the middle of designing and building this system, I was taking an Information Technology class, and used this system as the subject of my class paper (personal names other than mine have been removed for privacy reasons). You can see some of my frustration as I was "fighting the system" (and also my peculiar overuse of cliches...). I had to stand up and give a verbal presentation. The class was about various information technologies, a simple class where all you had to do was memorize the textbook and regurgitate it back, but I was actually "building" one of these technologies, so people didn't know how to handle it. It was like I was taking a class on scuba diving and was showing everyone a new type of regulator I was working on. There was much silence when I was done, and I think the professor and students just wanted me to go away.

By 1993, I had finished it and written up my final instructions on how to use it. I used an old tape drive to store the program, instead of the 1541 disk drive, since it used less power.

What shocked me was that even my family was not receptive. My dad and grandfather refused to use the it, and my brother eventually ripped it out of his room.

This incident made me realize that the ideal practical system may not be accepted by people, that some things are too far ahead of their time, that you can't build any system and expect people to react in a certain way. Inventors throughout history have encountered this.

Since the wires were still in the wall to my brother's room, I later created simple buzzers to contact him, since his room was farthest and he got most of the calls. He liked them, but those buzzers were nothing like the phone system. It was ironic that we were regressing back to the old buzzer days. Amateur radio people would call a buzzer signal a "continuous wave" or CW, like Morse Code, and there is still something magical about it. Pictures here and here.

The rejection of my phone system depressed me greatly. There was nobody I knew that understood or appreciated the level of ingenuity I put into this project. There was no WWW where I could see that there were other people like me working on their own projects, like you now see today with the open-source and maker movements. There was no Ben Heck show or Adafruit store.

I made serious plans to build a version I could mass-produce, to bring to market, using perhaps a smaller microcontroller, but the more I read about FCC Part-68 rules, the more I realized it would be time consuming and expensive to obtain the certification. Technically, you weren't allowed to connect anything you built to the public telephone lines, even though magazines were full of plans on how to do this, until it was FCC Part-68 certified. In May of 1993, Electronics Now magazine offered a pre-approved, pre-assembled Part-68 coupler, but I begin thinking that I was losing the race, that some big company was going to mass-produce small, cheap versions. The electronics magazines were full of pieces of such projects, they weren't computer-controlled or as "smart" as mine, but used simple logic chips. And sure enough, even Radio Shack released a version around 1995, called the Phone Paging Module and so I knew I had to work on other designs and began reading more about microcontrollers such as the 68HC11 and starting my own business. The era of this kind of telephony was short lived. The soundcard, the modem, the PC, VoIP, and the smartphone have eliminated the need for these devices.

I did however bring my device into a couple of job interviews in the mid '90s, which ultimately opened the door for me to a career in systems and network administration, and I incorporated most of these concepts 20 years later into my OswaldCluster .

I had to downplay the fact that I built the system around a Commodore 64, as people kept laughing about it throughout that decade. It didn't even matter that I had 6510 assembly skills, as they were too ignorant to realize that there was no difference in what I was doing from others that were programming microcontoller electronics. I was a computing minimalist when it was out of style. The C64 is now seen as one of the most important computers in computing history, just like the tiny Raspberry Pi. I especially like the fame that Jeri Ellsworth↗ has brought to it. Her work on the C-One/C64DTV FPGA and ASIC blows me away.

Today, there is a wonderful renaissance in minimalistic computing. After the Raspberry Pi, I have focused on the ATtiny, a computer more powerful than the Commodore 64, the size of a dime, that can operate on a watch battery. But most importantly, some of them cost less than the change in your pocket, which means that there are a lot of people working on them, educating themselves, changing the future.

I am again investigating creating a device to market. However, I am running into the same FCC barrier I ran into with telephony. Microcontrollers are subject to Part 15b, since they can be unintentional radiators.

In my opinion, this is why you don't see a lot of small business electronics manufacturing in the US, it gets too expensive. Even if I got the certification, there are numerous other regulations that have to be followed. Element14 has some good information on this↗.



Circuit board close up - The PIAs are up top and the connectors to the various rooms are on bottom, for phone and speaker lines. To the right above the transformer, you can see the LM324N op-amp.
Circuit board top - Here you can see the 2 PIAs and the DTMF decoder on the right.
Circuit board left - Here are two more multiplexers from a different circuit, including the 4051. To the far right near the capacitor is a 7905 voltage regulator which you can't see.
Circuit board middle - You can see the audio transformer up top.
Circuit board right - There is the primary dual-pole relay that switches the entire system over to the phone line and back. The other relay is for the on hold resistor. I can't remember what the middle relay was for.
Circuit board bottom - From bottom to top, you can see the room connectors, the bridge rectifiers to detect phones off hook, the two rectangular optoisolators, and the battery of analog multiplexers above.
Circuit board backside - A soldering nightmare.


Phone power supply - The transformer is +-6V AC which goes through the rectifier and capacitors to make 18V DC. I used one side of the transformer at the end as an inductor.
Board power supply - Here you see the old transformer I broke out of the epoxy on the left, and my new board on the right. I used a 2N3055 power transistor↗ and an MC1723CP voltage regulator. I didn't have money to buy cases, so I built it inside a cardboard box. It luckily never caught fire.


Speech syntheziser - The SPO256-AL2 speech chip that I cannibalized from my earlier robot project.


Block diagram - This was an chart I made that I hung on my wall.
Simple diagram - This was one of my old sketches on the multiplexers. Not sure how accurate it is.
Full diagram - This is one of my old sketches of the full system. I made it while I was building it, and it doesn't include the optoisolators, and contains other inaccuracies. I had plans to integrate on-hold LEDs at each phone and add a doorbell, but this never materialized.


Instructions - This was what I placed on the family refrigerator (names removed).
Quick instructions - This was what I placed near each phone (names removed).
Boot instructions - This was what I placed on the closet door where I kept the system. If the system went down, this was how to reboot it.


BASIC source code. - This is the main program, running on the C64 (names removed).
Assembly source code. - This is my assembly subroutine that was called by the BASIC program to send the ringing signal to the GE answering machine.

Comments