Many of these phones are available in surplus, but can't be used as intended without these cumbersome control boxes. At the time miniaturization started becoming popular, the phone industry took a sharp turn in a radically different direction: after the Bell System was broken up, "digital" phones quickly became popular, so these old phone systems became yesterday's technology quickly.
So my project kinda picks up where the industry left off, had it given those old phones a few more generations; it "miniaturizes" the functions of the KSU into a single circuit board making it much easier to quickly connect up to 4 of these phones, such as for use in small office environment, or to demo the old phones easily.
I've actually switched my own business phone system over to one of these boards with 2 lines and 3 extensions, adding a Viking AR-1 to act as the autoattendant (blocks robocalls) and an answering machine to take calls when no one answers.
This 1A2 "single board KSU" project has evolved over time, resulting in a series of board revisions that accumulated improvements and features as it went. The project started with REV-B, and is now up to REV-G1.
REV-E replaces about 50 discrete components that were in REV-B with a single chip CPU ("PIC" chip). And this time I used Sprint Layout 6.0 to construct the board (instead of ExpressPCB), which let me save out the project's Gerber files that could be shopped around to different board printing services, bring the cost of 3 boards down from $380 to $60 or so, greatly reducing the board printing costs. These boards were printed in blue by PCBWay.
One of my beta testers requested I resurrect a bridging feature I'd described I had designed but not yet implemented, allowing one to easily combine two boards to double the lines and extensions. They also asked if rotary phones could be supported for intercom dialing. So I came up with REV-F..
REV-F adds an optional ribbon cable "interlink connector" that allows two boards to be combined with a single 30 pin ribbon cable to manage 4 lines and 8 extensions. There are two 32 pin jumpers to let the user select which board is which. To enable rotary phone support, another PIC chip and optocoupler was added, allowing me to remove the components IC10, RN3, and Q12 through Q15 that were in REV-E. This left room for the connectors and jumpers needed for the new Interlink feature. These boards were printed in purple by PCBWay.
REV-G has a small fix for an issue in Rev-F: when two boards were interlinked, the lamp flashing for hold and ringing wasn't synchronized between the two board's lines. The upper left pin on the interlink connector was changed from an extra ground to carrying the sync signal. Also added: a 10K pullup (R28) for Q6's input, solder pads for JP3 and JP4 were enlarged slightly, surface mount resistors R9/10/11 were given more clearance around Q2, and various traces were moved to simplify routing, but made no electrical change. The cpu1/cpu2 signal tables on the silk screen had their columns aligned better. The first run of these Rev-G boards were printed in Matte black, using WellPCB.
REV-G1 has an electrical fix adding 4 flyback diodes to suppress inductor backcurrents from the buzzers to protect the TIP125 power transistors. Otherwise, changes were made to facilitate easier board assembly: replaced the 4 surface mount resistors with through-hole equivalents (SMD components are annoying to solder), pad sizes increased for CN9/JP3/JP4, extra resistor pads added for different length options, spacing of resistors R25/26/28 increased for easier lead trimming during assembly. See this animation comparing changes between REV-G and REV-G1 boards.
REV-H Is the next newer version.
What's new in REV-G is when boards are interlinked, the lamp flashing for all lines is synchronized. This was not true with the REV-F and REV-F1 boards, where the flashing rate for ringing and hold for lines 1+2 could drift out of sync with the flashing rate for lines 3+4, since the cpus managing the two sets of lines weren't synchronized. A single wiring change was added in Rev-G to synchronize flashing along with a small software modification.
Otherwise, this revision offers the same features as Revision F and F1:
When combining two boards to provide a total of 4 CO lines / 8 extensions, each extension can be
uniquely dialed on the intercom line via Touch-Tone or Rotary. This page
shows how to interlink two boards.
|User's Manual||User's Manual
Covers Installation, Use, Troubleshooting..
|'Text-Only' User's Manual||The old "text-only" version of the user's manual|
|README-pic-chip-info.txt||README notes for the PIC chip (a single-chip CPU and I/O device)|
|Parts List||BOM / Digikey parts list and board assembly with prices + total cost|
|PCB Layout File||The editable Sprint 6.0 PCB layout file (used to create Gerbers for printing PCB boards)|
|ExpressSCH Schematic File||The editable ExpressSCH schematic|
|1a2-REV-G1.zip||Gerber + Drill files as a zip file|
|README-project-management-notes.txt||How to load the PCB layout, save Gerbers, and order a run of boards printed up|
Note: There is no difference in the firmware for REV-G and REV-G1; both boards can support the same firmware.
In the MPLAB X IDE, you can create two projects for the PIC16F1709 chip; one project for CPU1, and one for CPU2. In the new CPU1 project, create a new .c file called "cpu1-main.c" and a new include file "Debounce.h", and copy/paste the above 1a2-pic-cpu1-REV-G-firmware.c and Debounce.h files respectively into them. Ditto for the CPU2 project; create a new .c file called "cpu2-main.c" and a new include file "Debounce.h", and copy/paste the above 1a2-pic-cpu2-REV-G-firmware.c and Debounce.h files respectively into them.
The software has no dependence on external libraries; the software is entirely self-contained; all functions provided are in the source code above.
The board logic functions are managed by CPU1 (IC8) include detecting incoming calls, flashing the lamps, powering up and directing the external ring generator, detecting line pickups and hold conditions, and handles some intercom dialing detection and supplies the 60Hz extension buzzing signal. This software uses only 5% of the 1K of data memory, and 17% of the 8K program memory.
The other PIC chip, CPU2 (IC10), handles rotary dialing, and emulates a 7445 for 1-of-8 decoding of the DTMF MT8870 chip. The firmware for CPU2 is a relatively small program.
The "PIC PROGRAM" connectors (JP1 and JP2) let one re-program the PIC chips firmware on-board, without having to remove the chips to program them. Just plug Microchip's PICKit 4 USB programmer (a $50 device) into the appropriate PIC PROGRAM connector to directly program each chip; use JP1 to program CPU1 (IC8), and JP2 to program CPU2 (IC10).
I think the software cost me about $60 USD for a license, but I think you can use the eval to open and do everything but save. $60 is cheap, compared to what most PCB layout software costs. So with this program you can load up the board's PCB Layout File to edit it, generate Gerber + Drill files, and send for printing. I used these instructions for saving out the Gerbers and having the boards printed.
Phone Extension Connector Pinout
Pinout for extensions on a single board.
Pinout for extensions on interlinked boards.