Free Telephony Project
Open Telephony Hardware

Introduction

This page describes open hardware telephony projects. Some of these are being developed and/or used for the Free Telephony Project, some of them by other groups and individuals.

There is also a blog post presenting the wide range of Free Telephony hardware projects in Family Tree format.

Several hardware development projects under way, covering the entire range of line interface hardware. The best part is that all of the designs are open - you are free to use them for your hardware project!

  1. Four Analog Port Embedded IP-PBX: The IP04 is a complete Asterisk powered IP-PBX with four FXS/FXO modules, 256 MByte of NAND flash, and a MMC-card to provide removable flash storage. Assembled and tested units are available from the Free Telephony Store for around $450.

  2. Four Port modular FXO/FXS: A four port daughter card for the STAMP with pluggable FXS/FXO modules and MMC-card to provide extra flash storage. This project was a stepping-stone to the IP04. Information on assembly and testing is here. The design is easily expandable to 8 or 12 ports. I have blogged on the bring up of this design in a multi-part blog post. More information on the 4fx. Note that starter kits for this hardware are no longer available, as they have been superseded by the IP04.

    4fx with 2 FXO and 2 FXS modules

  3. BlackfinOne: A BF532 Blackfin mother board designed by a community of developers. The Blackfin V2.0 has dual Ethernet ports and USB and supports telephony daughter boards such as the 4fx boards described above. More information on the BlackfinOne Project site. I have blogged on my experiences of building a BlackfinOne.

    BlackfinOne BF532 mother board
  4. E1/T1 Primary Rate: The Astfin team are developing an PRI Appliance based on the Blackfin. Please visit their site or contact Mark for more information.

  5. Four Port Basic Rate ISDN: The Fourfin project is a 4 port (8 channel) BRI card for the STAMP. A schematic and PCB has been designed by the fourfin team. Another developer (Diego Serafin) has developed a Blackfin port of the mISDN driver. The code is alpha, but is running on proprietary Blackfin hardware using a port of uCasterisk and the CologneChip XHFC chipset. Both kernel mode and user mode mISDN software is available. The Astfin team are working on BRI-Appliance hardware, see this post on the Astfin Blog for more details.

  6. Open USB FXS Project: An open hardware, inexpensive FXS board that connects to a PC via USB. Angelos is making great progress in developing an open hardware USB based ATA, building on the ideas of the $10 ATA and blogging as he goes.

Open Telephony Hardware

In December 2005 I expressed an interest in building a range of line interface hardware cards for the Blackfin. A key point was to make the designs GPL, like the Blackfin STAMP hardware. This means anyone is free to copy and build on the hardware designs.

Since then the project has advanced rapidly with several contributors from around the world developing a range of line interface an DSP hardware.

Why GPL hardware? Well Robin Getz from the STAMP team explains it better than I can.

I have also blogged on Open Source Hardware. A follow up blog post discusses Open Hardware 3 Year On.

We would welcome any help from anyone who is interested, for example drivers, hardware, testing, Asterisk configuration.

Digium X100M Hack

As a starting point back in late 2005 I connected a Digium X100M module to a BF533 STAMP card. This module is a single port FXO card (i.e. it connects to telephone lines) that usually sits on a 4 port Digium PCI card.

The X100M card uses the Silicon Labs 3050 chip. The chip reasonably priced at around US$5 each. Data is available from the Silicon Labs site.

I ported the GPL wcfxs.c driver (part of the Asterisk zaptel package) to the Blackfin, and can make phone calls over the FXO interface (e.g. FXO to SIP). This driver talks to the 3050 chip (and it's FXS equivalent).

Block diagram of X100M FXO Test

Some screen shots of the X100M connected to a Blackfin STAMP are here and here .

I soldered the cards together to avoid any high speed digital problems - the Blackfin edge rates are very fast and there are very few grounds on the SPORT and PF connectors so I wanted to keep lines as short as possible.

Here is a screen shot showing the modules loading on a BF533 STAMP board:


 _   _| |  | | _ ____  _   _ \ \/ /
| | | | |  | || |  _ \| | | | \  /
| |_| | |__| || | | | | |_| | /  \
|  ___\____|_||_|_| |_|\____|/_/\_\
|_|

For further information see:
http://www.uclinux.org/
http://blackfin.uclinux.org/



BusyBox v1.0e (2005.10.03-00:27+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

th0: link down
root:~> eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
cd /var/tmp
root:/var/tmp> insmod zaptel.ko
Zapata Telephony Interface Registered on major 196
root:/var/tmp> insmod wcfxs.ko
Module 0: Installed -- AUTO FXO (FCC mode)
Found a Wildcard TDM: Blackfin STAMP (1 modules)
root:/var/tmp>

gEDA Tools

The schematics for the Free Telephony Project have been drawn using the gschem program from the gEDA project. I must say the gschem is a really nice piece of software. Easy to use and works well. Well done gEDA team.

Printed Circuit Boards are designed using the PCB program, also part of the gEDA suite. I also use Perl and even Makefiles to help with the hardware designs.

gEDA is an open source EDA suite that also includes simulation and PCB design tools. Seeing that we are developing GPL hardware it is nice to be able to use open source tools.

Tip I downloaded the gEDA ISO and installed from CD. Install as a normal user (rather than root) as otherwise the installer breaks. You will be prompted for the root password several times as the installer proceeds. I found the tutorial a great way to learn gschem.

gEDA Hints

  1. Buried in the gEDA install (/usr/local/bin/geda-install/share/pcb on my machine) is a user guide for the PCB design package called pcb.pdf which is worth reading.

  2. Don't put a "-" in any of the footprint names when using gschem or pcb, as this freaks out the m4 macros used when gsch2pcb to PCB is run. This actually managed to lock up my PC, not sure how but it was impressive!

  3. Command line gsch2pcb -v -d pkg/newlib/ project to forward annotate sch to pcb.

  4. perl -p -i.bak -e s/orginal/replacement/ *.sym is very useful for changing text inside the schematic or symbol files automatically.

  5. Many of our designs use two layers PCBs to make them easy to fabricate. The solder side of the PCB is used for the VCC and GND nets. Make sure you type j over any VCC tracks - this stops the polygon used for the GND net from overlapping the VCC track.

Download

here

Tar ball containing all schematic and PCB files: hardware-x.y.tar.gz

Schematics in PDF form: *.pdf