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!
-
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.
-
The Mesh Potato: The Mesh Potato is a 802.11bg mesh
router with a single FXS port. Adjacent mesh potatoes automatically
form a peer-peer network, relaying telephone calls through a community
without land lines or cell phone towers. The Mesh Potato is designed
using open hardware and software and is part of the
Village Telco project. Lots of blog
posts and progress updates on the Village
Telco blog.
-
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.
-
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.
-
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.
-
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.
-
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.
Why port Asterisk to uClinux/Blackfin?
I have a history of developing Computer Telephony hardware and have
always wanted to build a small embedded box that combines a host
processor, DSP, line interface hardware, and software. It's an itch I
need to scratch!
From a technical perspective there are some very cool things about
this chip:
-
The problem with most embedded processors is that they are not very
powerful. The Blackfin is a powerful host processor AND a DSP,
i.e. it can run uClinux, Asterisk and G729 on the same processor at
the same time. A standard 500MHz Blackfin runs at around 1000
DSP-MIPs, which is plenty for codecs, echo cancellation etc.
-
A lot of effort and hardware cost is usually required to interface
telephony hardware to the host processor (typically a PC), e.g. PCI
bridge chips. The Blackfin makes it easy as it has a lot of nice
interfaces built in, like serial ports, SPI, DMA controllers, which
are all tightly integrated with the core processor.
-
The Blackfin chips are good value for money, ranging from $4.95 each
(BF531 in 10k volume) which makes low cost embedded telephony hardware a
real possibility. This makes it possible to build an IP PBX including
analog or E1/T1 line interfaces for less than $200 (parts cost).
-
Best of all there is an open source community that has developed
around GPL hardware (the family of STAMP boards). What is needed is
an application (Asterisk) and some line interface hardware (which is
under development). For more information on the Blackfin uClinux
community look here.
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).
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.
|
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
-
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.
-
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!
-
Command line gsch2pcb -v -d pkg/newlib/ project to forward annotate
sch to pcb.
-
perl -p -i.bak -e s/orginal/replacement/ *.sym is very useful for
changing text inside the schematic or symbol files automatically.
-
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.
Open FXS & SLIC Designs
Manoj Desai runs a SOHO PBX company in Mubai, India. He read about
the work of the Free Telephony Project and has kindly contributed a
low cost SLIC design. Here is the SLIC
schematic and the expired US patent
4281219 that explains it. He reports that the SLIC design works well
in practice. Thanks Manoj!
I have also been in contact with other companies (who wish to remain
anonymous) re low cost SLIC design. It is posible to build a SLIC for
around USD$1.50 using discretes, excluding A/D and D/A converters.
Such a design could be very useful for developing world telephony,
e.g. reducing the BOM cost of the Mesh Potato.
Download
here
Tar ball containing all schematic and PCB files: hardware-x.y.tar.gz
Schematics in PDF form: *.pdf