UPDATE: Jan Vinten has written a client/server based application for the PC Nummerviser hardware. Check it out here.
PC NummerViser (PC CallerID) is a CLIP-device for use with a PC, on the danish public switched telephone network (PSTN). As all other danish CLIP-devices, it requires a subscription to CLIP, from TeleDanmark.
PC NummerViser can only be used with the danish implementation of CLIP (doesn't support other DTMF or FSK CLIP-implementations).
Software-features:
Hardware-features:
The Windows software is written in Delphi 3, and is described on Harald Kronings homepage
The program consists of a main-window (address-book), a setup-window, another part of the address-book, a log-window and the popup-window (when someone is calling).
The hardware consists of a PIC12C508 (Microchip), which is an 8 pin, 12bit microcontroller, and a MT8870D, which is a DTMF-receiver/converter from Mitel. Furthermore the schematic has a handfull of passive components, some transistors, and a couple of optocouplers.
The PCB-layout is designed to make it possible to build either an isolated, or unisolated version. The schematic shows which components to mount, to get either the isolated or unisolated version.
The isolated version has the advantage that it's nearly immune to noise-problems (EMC-problems) from the PC (which might be transferred by the serial cable). It's also better protected from spikes on the phoneline. Unfortunately it has the disadvantage that it requires an external powersupply (7-25Vdc).
The unisolated version doesn't need an external powersupply, but isn't very immune to common-mode spikes (DM spikes are suppressed by the varistor). C1 og C2 must also be 1500Vac rated types, to make the unisolated safe to use.
It's ofcourse also possible to build the construction on a piece of veroboard, but make sure the connection between IC1-8 and IC2-5 is as short as possible. Also, keep good clearance (>3mm) between wires with high voltage-differences.
The PCB is about 5*7,5cm, which unfortunately is much bigger than first expected. The first version (unisolated) was designed with 90% of the components in SMD, and could fit inside a 25p DSub house (3*4cm). When the design was nearly finished, I thought about voltage-spikes, and after some 'thinking', I dropped the idea of making it fit the DSub house. Instead I chose to make a 'safe' construction.
The firmware was developed by first drawing a hierarchisch diagram (I didn't expect the program to be very big/complex, and therefore saw no reason to go into more details before writing the code):
![]() |
DTMF-numbers are transmitted at 2400bps, 8E1 (8 databits, even parity, 1 stopbit), as soon as it's detected. The firmware then waits for the tone to 'go away', and another one 'to arrive'.
Only CLIP-sequences are transmitted if CLIONLY is set=1. Transmission is in ASCII, if ASCII is set to 1.
Ringing is checked, 'at the same time', and if detected, an 'R' is transmitted.
A typical CLIP-sequence (seen from the PC's serialport) could be "A12345678#RRRRR".
Firmware-history:
| Version | Changed | Reason | Date |
| 1.04r | Minor changes/bugfixes: | 18.03.99 | |
| Changed TX-timing. | Transmitted at ~2325bps. | ||
| Changed format from 8E1 to 8E2 (2 stopbits). | Enables receiver to resyncronize between each byte, thereby suppressing framing-errors. | ||
| Minimized 'read-DTMF' timing. | Removes unwanted 10us glitch on TX just before transmitting a digit. | ||
| 1.03 | First 'public' release | - | 04.05.98 |
Download (PC Software):
| PCNumVis.zip | 1122 KB | PC NummerViser v1.0 for Windows 95/98. |
| BDE50.zip | 4386 KB | Borland Database Engine (must be installed before using the PC NummerViser software). |
Download (Hardware):
| Numsrc.zip | 13 KB | PC NummerViser firmware v1.03 sourcecode and hex-file. |
| Numhard.zip | 148 KB | All schematics, PCB-layout, hierarchisch diagram, sourcecode and hex-file. |
| Numeps.zip | 79 KB | Schematic and PCB-layout in EPS format (Encapsulated PostScript). |