Many of these phones are available in surplus, but can't be used as intended without these big control boxes. So this project of mine uses a simple single circuit board to control up to 4 of these phones, in place of the big KSU boxes, making it easy for someone to quickly connect up the phones for use in small retro office environment, or for demo purposes. I've actually switched my own business phone system over to one of these boards with 2 lines and 3 extensions, and added a Viking AR-1 to act as an autoattendant (blocks robocalls) and an answering machine to take calls if 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-G.
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 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.
Otherwise, this revision offers the same features as Revision F and F1: 2 lines / 4 Extensions with intercom on Line 5, expandable to 4 lines / 8 extensions if two boards are interlinked with a ribbon cable. Both DTMF and Rotary dialing are supported for buzzing extensions via the intercom line. And all the standard 1A2 features for lamp flashing, hold, call transfer, CPC, and programmable multiline ringing.
When combining two boards to provide a total of 4 CO lines and 8 extensions, extensions can be uniquely dialed on the intercom line via Touch-Tone or Rotary. This page shows how to interlink two boards.
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 the Gerber and drill files, and send for printing. I used these instructions for saving out the Gerbers and having the boards printed.