In 2005 I started messing around with Asterisk on the Blackfin. This led to the Free Telephony Project, and the idea of using open hardware techniques for telephony. Much has happened since then. Many people and companies are now working on Blackfin Asterisk projects. New projects, and even new businesses have spun out of the project.
This post is my attempt to document the various hardware and software developments in family tree form. My role is fast diminishing as more and more people get involved – this is how it should be. None of this would have been possible without a bunch of good people from around the world working together as a community.
If I missed anything (or anyone) I humbly apologize – please let me know so I can update this post. I have left out a few top secret projects that are being performed behind closed doors in traditional “closed” development form. Plus I imagine there are many other people using this technology that I am not aware of.
There are also a bunch of other hardware products (such as the Digium Asterisk Appliance) that were developed independently using similar technology. This post only includes those projects that have some sort of direct relationship with the Free Telephony Project and open hardware.
Below is a map of all the open hardware projects and how they relate to one another. I count 14 separate hardware designs that have been built – amazing!
Wow – that’s a lot of obscure acronyms! Lets see if I can explain what all those line-noise names mean:
- The Blackfin STAMP from Analog Devices was the first open hardware uClinux board design. I started playing with the STAMP in August 2005. Analog Devices took the unique step of releasing the schematic and PCB files. A post by Robin Getz opened my eyes to the possibility of open hardware. Got me thinking!
- X100M hack: I modified the Zaptel drivers and soldered a Digium X100M FXO module to a Blackfin STAMP board. First Blackfin FXO phone call in Dec 2005. Asterisk on the Blackfin lives!
- Fourfin: Some excellent early work (2006) on a 4 port BRI-ISDN daughter board for the STAMP by Philippe, Tom, and Thomas.
- 4fx: Four analog port daughter board for the Blackfin STAMP, which was available in kit form (October 2006). Some work I did with Jerry Zeng from Analog Devices really helped this design along. The 4fx really got the ball rolling, as people could buy this card and a STAMP and start experimenting with Blackfin Asterisk.
- The initial BlackfinOne V1.0 design (by Ivan and Dimitar) first appeared in mid 2006. This was an amazing project – a fully open uClinux Blackfin board designed with open source tools. I was interested in using it as a DSP motherboard for my telephony work so a group of us worked together to add dual Ethernet ports and a USB port to create the BlackfinOne V2.0.
- The BlackfinOne V2.0 design and the 4fx were combined to create the first real product – the IP04 IP-PBX in April 2007. Atcom came on board to manufacture the IP04 which is now in volume production. Many have been sold and are in every day use around the world. Atcom are following up with the 8 port IP08 and single port IP01.
- The PRI and BRI Appliance products are being developed by the Astfin team. The PR1 was a BlackfinOne V2.0 daughter board used for testing the PRI line interface.
- Li at Edge PBX has been very busy developing a range of products (FX02, FX08, FX08D) with novel combinations of analog and PRI ports.
- The Telesto TL-2XS is a 2 FXS port IP-PBX using the BF536 processor.
I should mention a couple of projects that are not Blackfin based, but still related to Free Telephony:
The $10 ATA was an idea I had for adding low cost FXS port capability to a wireless router. Although this project is currently inactive, there are two related active projects. One is the mega Mesh Potato, and the other a cool little project to build an Open USB FXS ATA being developed by Angelos.
In August 2005 I had the idea of running Asterisk on the Blackfin. I had some leave for the birth of my 3rd child but in typical hacker fashion spent most of the time hacking Asterisk to run on uClinux! First phone call (SIP phone to Asterisk on a Blackfin) was in September 2005.
Here is a breakdown of the various software projects:
- uClinux-dist: Analog Devices do an incredible amount of work maintaining and supporting uClinux for the Blackfin.
- uCasterisk: First build system (released Dec 2005) – OpenWRT hacked to build Asterisk for the Blackfin. Back then uClinux didn’t support shared libraries so some interesting but now obsolete hacks were required to run Asterisk.
- Astfin 1 was a re-write of uCasterisk, based on the buildroot type approach (e.g. like OpenWRT). Lots of work went into this by Mark, Pawel, Alex and Li (plus many others) and it was very useful over the course of 2007.
- As 2007 wore on several ideas for improved build systems appeared. The outcome was a package based build system called BAPS and Astfin 2.
- To make the various line interface hardware (FXS/FXO analog, BRI-ISDN, T1/E1 PRI) work various drivers were ported to the Blackfin platform. Driver work is often harder, takes longer and is less fun than building the actual hardware. Lots of good driver work by Diego/Mark/Pawel (BRI) and Mathieu & Mark (PRI).
- Voiptel have done a great job at porting the AsteriskNow GUI written by Digium to the IP04.
- Steve Underwood’s Spandsp library was integrated with the IP04 by Jeff, and was used as the baseline for Oslec – the open source line echo canceller. Steve, along with Jean-Marc Valin of Speex fame are some of the few guys doing open source DSP work for telephony.