on the BeagleBone Black
and The Raspberry Pi 2/3
Latest News - March 26, 2016
We are releasing THREE new BBB and RPi2 versions which include minor fixes and the new simpleusb channel driver which eliminates the audio delay (echo) often found on repeaters. Versions BBB V1.2.2 and RPi2 V1.01 represent the last in the version 1 series releases. These are stable releases and will remain on this site and be available for download into the future. Many users have reported success using the RPi2 in two radio node systems and we have had many compliments on the ease of setup. If you are currently using the BBB V1.2.1 or RPi2 V1.0 releases and not using your node with a repeater and experiencing the echo problem there is NO need to upgrade to these new versions. The RPi2-3_V1.02beta release is using the latest 4.1.19-5 kernel. This is a quick release for those wanting to try their new RPi3 boards. All platforms BBB, RPi2, RPi3 will be supported in our forthcoming V2.0 release. The updates in these releases are:
BBB V1.2.2 - simpleusb Channel Driver update to eliminate echo on repeaters, added pre-emphasis and audio delay squelch tail elimination, fixed phone and web transceiver codec problem
RPi2 V1.01 - simpleusb Channel Driver update to eliminate echo on repeaters
RPi2-3 V1.02beta - simpleusb Channel Driver update to eliminate echo on repeaters, Kernel update to support RPi3
See the Download link below for more detailed information on the releases.
The exciting news is that our version 2 code is about to be released and I don't think you will be disappointed. It will have many new features and support the BBB and Both RPi2/3 platforms. We are about to go into beta testing and should have code out sometime in April.
We highly recommend the RPi2 (or RPi2/3 for 2.x code) for any future purchases as it is less expensive than the BBB and much more capable but there is no reason to upgrade an existing and working BBB to a RPi2/3 unless you need a feature that it provides. We feel the RPi2 will run two radio nodes in simpleusb without problems so in some cases that might be a reason to upgrade. Given the low cost of these boards, the extremely low power requirements, no moving parts, low heat, and many other advantages it makes little sense to use a PC to run Allstar. The RPi2 would run a non-radio hub easily. Think of it, you could save enough in a year retiring a power guzzling PC to buy several RPi2's and have some leftover cash.
Have fun with the new code and thanks for your patience. This is a volunteer effort and sometimes things get delayed. Join the arm-allstar forum for the latest news and information and discussion about the BBB and RPi2/3 releases.
We are often asked why Allstar with all of the new RF digital repeaters and their VOIP connection schemes out there. The best answer is open source, quality audio, and freedom to do what you want. Dstar, Fusion, DMR, etc are all at least partially if not completely proprietary systems. In most cases the VOIP connection system that makes them somewhat like Allstar is proprietary. Code plugs, Rooms, etc. all make for a confusing and hard to maintain system. It also makes a system which is managed much like IRLP. The individual users has little control other than to connect somewhere. Then there is the lousy audio that goes along with the current Amateur Radio digital RF schemes.
Allstar connects RF systems with full duplex quality audio. It also gives the user a choice in how and where they connect. Private or public group or individual connections can be setup quite easily. If you are in a restricted living environment like a retirement home or HOA that does not allow antennas Allstar gives you the radio feel without an obtrusive antenna or big expense. You could setup a simplex node in your apartment or dwelling and have local coverage with in a few blocks to several miles between your handheld and you own personal node. Couple that with the ability to setup connections to all your buddies that also have nodes and you have your own talk group with everyone using real radios to access. You also have the ability to access via computer, phone, Echolink, and many other methods.
The advent of the inexpensive small board computers and very easy scripted setup make getting on Allstar easier than ever. A savvy user who has the ability to make some modifications and build some simple circuity could get on Allstar for well under $75. A totally plug and play system minus the node radio would be no more than $150.
For repeater operators Allstar is a complete repeater controller that probably has more flexibility and capability than any repeater controller on the market. It is certainly cheaper. Because it runs in Linux and is open source the user has full flexibility to use scripts, timers, multiple ports, etc. to do just about anything they would want.
So if you like to call your own shots come join the friendly world of Allstar. You will be surprised how easy it is to get started and a world of adventure awaits you.
Ever since the Raspbery Pi was introduced over two years ago it has been the goal of many to make Asterisk Allstar work on that platform. Over the years there have been several attempts which fell short. In January, 2014 I decided to give it another try. I thought I had it but unfortunately it did not provide the kind of performance you would expect for Allstar. It worked fairly well audio wise in USB 1.1 mode but suffers from extreme audio delays that would be unacceptable in a production environment. I was using the stock Raspbien (Debian on the RPi) kernel with Dahdi and the latest Asterisk Allstar SVN.
Thinking that it might be a Debian issue I went on to compile the Allstar package in both Debian Wheezy and in Ubuntu Saucy on a PC. Both versions worked fine but Saucy required a kernel recompile to include the OSS sound code. This, I thought, proved that Debian should work on the ARM processors assuming the IO and CPU could handle it.
So I moved to the BeagleBone Black. The Black is a competitor to the RPi with a faster processor, a better IO structure, and a version 7 arm processor verses Version 6 in the RPi. It is the same physical size as the RPi and costs about $10 more.
My first attempt used Debian and the results were better than on the RPi but the DAC (the side that converts what you hear on your end) audio was not good. I finally decided to try Archlinux. Archlinux is a leading edge barebones linux that comes with very little add-on stuff. No graphics or packages that would not ordinarily be needed are part of the virgin installation. While it is not a "hold your hand" linux it was surprisingly easy to compile and get Allstar running. Maybe it was all the experience I had working at this for months before that made it seem easier but in any event I was tremendously surprised that it worked. I had almost given up on ARM Allstar working and I could hardly believe my ears that it was working so well. It is hard to explain why as the basic kernel is the same. It has to be in the ARM interface or in the less bloated Archlinux OS somewhere. CPU utilization was at least half what it had been on the Debian releases.
During the initial tests of the BBB I hooked up with Dave, KB4FXC and we worked together to produce the first release in June 2014. Shortly thereafter Chris, W0AMN also joined the team. The first release was a success although still early in the Linux kernel development for the ARM processor. This lead to some minor USB issues but overall the project was widely accepted.
Throughout the summer of 2014 we worked on improvements and with a later kernel release and many scripts to simplify installation a second release came in October 2014. We are very proud of this release and its impact on Asterisk Allstar in the amateur radio community.
In early 2015 the release of several new ARM processor boards sparked our interest. We did research and testing on the Odroid C1 and the Raspberry Pi 2. Both boards have four core processors and much improved performance over the older Raspberry Pi and Beagle Bone boards. Although the Odroid C1 is technically a better board than the RPi2 we decided that the RPi2 was a better choice from an availability and support standpoint.
The BBB arrives in a box with a microUSB to USB cable. This allows you to power it from your PC and also in some cases use the USB as a console connection. Archlinux is not setup to do that but you can initially power your BBB from the microUSB if you desire. The BBB has only one standard USB port which connects directly to a DMK URI or modified USB sound FOB for interface to your radio. Eventually you will also need a power supply preferably supplying 1-2A @ 5V inserted at the barrel power connector on the BBB board. I used a USB charger type supply and I modified a USB cable cutting off one end and wiring it to a compatible male barrel connector. Red (+) to the center conductor and Black (-)- to the shell. Only use ONE power source - the microUSB or the barrel connector - NOT both!
Acquiring a Black
When I started this project the BBB hardware was at rev B and cost $45. As of the first week in May 2014 rev C is out and the cost has gone up $10. Update - in January 2015 the rev C board can be purchased at Microcenter for
$39.99 - now $49.99 in March. Both boards work equally well. Sources for the boards are:
The BBB only has one USB port so a USB hub is necessary if you want to use more than the sound FOB. I used a Belkin F4U040 four port hub with a single DMK URI and a wireless keyboard FOB without problems. This is a powered hub but I did not connect the power as these two devices draw far less than the maximum 500ma. I have also used a WIFI adapter without power and it worked well. There are so many hubs out there it is impossible to predict how any particular one will perform. The F4U040 has worked flawlessly but beware there are hubs out there that don't work well. If you are having problems and you are using a hub suspect it first.
The RPi wiki has an extensive list of hubs tested on the RPi. I suspect the same would hold true for the BBB. It would be good to reference it before buying a hub. A powered hub would not always be necessary but it would not hurt to have one.
I have done limited testing of two ports using DMK URI's and the Belkin USB hub. It seems to work fairly well. I ran it for several days on two busy nodes. At times both were operational and I noticed no problems. Further testing is necessary. I think two is the limit though.
Acquiring a RPi 2
Note that the RPi2 uses a micro USB connector for 5V power. You will need a 5V 1-2A wall wart with a micro USB connector on the cable end or equivalent. This does not come with the board. It is a good idea to also order a case for your board.
Image File and SD cards
The image file is sized to go on a 4GB microSD card as a minimum. The compressed image (zip file) is just over 500M. It is strongly suggested to use an 8 or 16G card. I suggest a Sandisk Ultra or Ultra+ class 10 8G or 16G card. The larger the usable area on the card the more space there is for wear levelling. This will reduce the number of writes to any one location on the card and greatly extend its life. I have instituted as much write to RAM in this package as possible so there are very few writes to the SD card. After several years of experience with these cards we find them to be very reliable. However they can eventually fail so a backup is always very important. Backing up an SD card image once you have it configured the way you want it is as easy as reading the image into your computer using Linux 'dd' or Windows 'win32diskimager'. You MUST use an image copy method. You cannot just copy files to make an image backup of the SD card. Keep a second SD card burned with the image near your BBB or RPi2 and in the event of a failure it could be swapped in seconds. This is not something that would happen very often but it is always good to be prepared. Starting at BBB version 1.2.1 and RPi2 version 1.0 a complete image backup can be done on the fly to a USB stick, see the backup how-to for details.
We also do not recommend expanding the partition size to the full SD card size unless you have a real reason to do that. It does nothing for reliability and makes it difficult to do image backups as the entire card must be backed up and restored.
The image uses Archlinux. Archlinux uses systemd for loading modules, maintaining logs, and lots of other things. It is totally different than the initscrpt you have used in many other Linux distros. I just want you to be aware of this when you are looking for things that are not there like /etc/init.d! I am including some links that will help you with that but for the most part after you get your image configured it is plug and play. You do not have to be a Linux guru but a little knowledge of Linux and systemd would be helpful in maintaining your BBB or RPi2 Allstar system.
Downloading the Image
The image file must be downloaded and written to a microSD card. This can be done on a Windows or Linux PC. If you are using Windows and win32diskimager the procedure is to first unzip the downloaded file. You should then have the image (.img) file in your directory. Then insert the card in your reader, start the win32diskimager program, select the file you downloaded and then select write.
Download win32diskimager - http://sourceforge.net/projects/win32diskimager
Note that after installing win32diskimager and starting for the first time you may get an error about elevating permission levels or something like that. If you do, exit out and left click once to select the win32diskimager icon, then right click and select "run as administrator" It should then run properly.
One of the sites gives an example using the Raspberry Pi. The procedure would be the same for the BBB just substitute the BBB Allstar image. It takes anywhere from 5-15 minutes to write the card depending on the image size and your systems speed. Once the card is successfully written you can remove it from the PC reader/writer and install it in the BBB with the power disconnected. Note that this one image written to your SD card contains the complete Archlinux/Allstar package.
If you are using Linux to write the image, insert the card in your card reader/writer. Then do a 'df' to determine the device name. On my system it was /dev/sdb but yours may be different. It is important to identify the device properly. You do not want to write to your hard drive!! Once you have identified the device use 'dd' to write the image.
dd if=BBB_Allstar_v1.1.img of=/dev/sdb << Change the filename and device for your system
Remember dd is not going to ask if it is OK or check if you entered something wrong so be very careful to enter the proper output device!!!
The latest images are available here -
BBB Image - http://hamvoip.org/BBB/BBB_Allstar_V1.2.2.img.zip
RPi2 Image - http://hamvoip.org/RPi2/RPi2_V1.01_Allstar.img.zip
RPi2-3 Image - http://hamvoip.org/RPi2/RPi2-3_V1.02beta_Allstar.img.zip
IMPORTANT - Download this README for information on the V1.02beta release and WIFI on the Pi3!
Note that the RPi2 V1.0, V1.01 images do NOT support the older Pi's or the RPi3. Use the RPI2-3 beta image for the RPi3. This image can also be used on the RPi2.
Here are the checksums for the RPi and BBB zipped and unzipped images -
Make sure that you use the right image for your hardware. They are not interchangeable!
Booting the Image
Now that you have the microSD card with image inserted in your BBB or RPi2 apply power and it should boot to a login prompt. The next section will give options on how to initially login.
First communications with the BBB or RPi2
Starting with BBB version 1.2.1 and RPi2 version 1.0 the IP address is sent out the radio port as voice on initial start. If you have a radio properly connected this might work for you. Not all cases will work as initially the system may not be configured properly for your radio. If not you can use one of the other methods listed below.
Initially you have to communicate with the BBB or RPi2 to determine its local IP address. One way to do that is to use a terminal connected to the HDMI port and a keyboard connected to the USB port. However there are alternative methods listed below if you don't want to bother with a keyboard and monitor. If you do use the keyboard and monitor you do not need a mouse. There is no graphics mode, you login in standard Linux text mode with the keyboard. The RPi2 has a standard HDMI connector. The BBB has a micro HDMI connector so you would need to acquire a micro HDMI to standard HDMI cable or adapter. This does not come with the BBB but could be purchased locally at a Walmart, Best Buy, etc. or on the Internet. Most newer monitors now have HDMI inputs. If not there is an HDMI to DVI adapter available if your monitor has a DVI input. If you do not have an HDMI or DVI input on a computer monitor you can use any digital broadcast television receiver as they all have HDMI inputs. This connection will only be needed for initial setup.
I have a wireless keyboard and it works fine with its wireless FOB plugged into the BBB or RPi2 USB port directly or into a hub along with the DMK URI on the BBB.
A script is included in the image that uses the blue LED furthest from the Ethernet connector on the BBB and the green LED on the RPi2 to send the assigned local Ethernet IP address in Morse code at boot-up. At boot it starts the heartbeat blink and then sends a Morse "HI" twice followed by the IP address. The address is in four groups. The groups separated by periods. So 192.168.0.132 would be sent as - HI HI 192 168 0 123 This sequence is repeated three times. If you miss it you can always reboot. It comes up approximately 15-20 seconds after power is applied. Sometimes it is easier to read the LED if you mask the others which might confuse you. If you don't want to use a terminal and you can't read morse code then you can read the initial IP address from your router.
An Ethernet connection can be established with the either board via ssh from Putty, WINscp, or any ssh terminal program. The image is setup to acquire an IP address via DHCP from your local network and the ssh port is set to 222 (changeable later in the setup). You will need to determine what address the BBB has acquired. If you have not determined the IP address from the methods described so far you can use your router. Login to your Internet router and look at the status for DHCP connections. Most routers have a start address for DHCP connections and if you cannot determine the correct address from the list you can always just try each address starting from the first dhcp IP address your router assigns. Only one will respond to port 222 and you should then first get a message warning about the authenticity of the connection. Answer yes to connect and you should get the login prompt. Here is what my Buffalo DD-WRT routers dhcp list looks like -
Active Clients Hostname IP Address MAC Address Conn. Count Ratio  * 192.168.0.204 cc:6d:a0:b1:a3:26 1 0% * 192.168.0.120 b8:27:eb:1a:d3:bc 3 0% BBB-Allstar 192.168.0.212 1c:ba:8c:a0:c3:5f 16 0% ---------- This is what will appear for the BBB * 192.168.0.8 00:14:bf:43:91:1a 2 0% * 192.168.0.57 70:71:bc:4b:ae:f4 95 2% * 192.168.0.124 00:03:2d:05:fc:b0 83 2% * 192.168.0.2 00:19:d1:02:17:8f 5 0% * 192.168.0.132 1c:ba:8c:a0:c3:5f 19 0% Chromecast 192.168.0.203 6c:ad:f8:14:bd:d5 3 0%
The hostname you are looking for is BBB-Allstar or ALARM for the RPi2. My dhcp starts at 188.8.131.52 and it shows that 192.168.0.212 was assigned to the BBB. So I would tell the terminal program to connect to that address at port 222. Your address will most likely be different.
The login username is root and the PW is root All operations are as the root user so be careful when you do things in the system you don't have the protection of being a common user but you do have the flexibility of being able to do anything. This is no different then the Acid release on a PC that you are probably already using.
Setting up your Password, Hostname, and IP address
A "First Time" script has been added that runs only on the first boot of the system. It asks you to change your password and host name then asks if you want an address assigned by dhcp (the default) or if you want to assign your own static IP. Although not recommended you also have the option of aborting the script and doing this manually by following the manual directions below.
Starting in BBB version 1.2.1 and RPi2 version 1.0 you will be asked at the end of the "first time" script if you want to configure your node. If this is your first time setup you would answer 'yes' to this question. The BBB will then reboot, you will need to login again, and then proceed with the rest of the node configuration. Once your node is configured if you are not in the Eastern US time zone and you have not previously set your timezone see time zone configuration to set your time zone.
The firsttime script will not run again on subsequent boots unless you specifically run it. If you have a need to run it again type:
Starting in RPi2 version 1.0 the setup script also includes the setup of the simpleusb parameters. See the setup howto for more information on using the setup script.
If at ant time you need to change you network parameters - ip address change, static to DHCP, DHCP to static, etc simply run the netsetup.sh script.
Setting the time and timezone
The image file has nttpd installed and running so your system should show the correct time assuming you are in the US eastern time zone. Setting the timezone in Archlinux with systemd is a breeze and it is also easy to check the current timezone status. Here is the configuration information.
To check the current zone:
$ timedatectl status
My system gave the following output which is very informative -
[root@BBBdoug asterisk]# timedatectl status Local time: Thu 2014-05-01 22:55:57 EDT Universal time: Fri 2014-05-02 02:55:57 UTC RTC time: Fri 2014-05-02 02:56:00 Time zone: America/New_York (EDT, -0400) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2014-03-09 01:59:59 EST Sun 2014-03-09 03:00:00 EDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2014-11-02 01:59:59 EDT Sun 2014-11-02 01:00:00 EST
To list available zones:
$ timedatectl list-timezones
To change your time zone:
# timedatectl set-timezone Zone/SubZone
# timedatectl set-timezone Canada/Eastern
This will create an /etc/localtime symlink that points to a zoneinfo file under /usr/share/zoneinfo/
In my system for US EST it looks like this -
[root@BBBdoug asterisk]# ls -als /etc/localtime
0 lrwxrwxrwx 1 root root 38 Apr 12 02:28 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
Configuring Asterisk Allstar
Starting in version 1.2.1 and RPi2 V1.0 configuration scripts take you through the entire process of setting up your node in minutes. It is recommended that you use this automated method of configuration.
For step by step instructions on how to configure the BBB for the first time with your node information download this document:
Backing up your BBB Image and files
Once you have the image the way you want it or at least reasonably complete you should make a backup. Remove the SD card insert it in your PC's card reader and save the image. Give it a unique name so you can find it like 'BBB_Allstar_27225.img' inserting YOUR node number. Every time you make any significant changes to the configuration or code you should make a backup. You can keep as many backups as you want to allow going back to prior versions. The backup howto below has more information on this.
For versions 1.2 or greater there is an in-place image backup script and many options for backing up in general. See the backup howto below for more details.
A firewall has been added but NOT enabled by default. In most all cases where you have a router and the BBB or RPi2 is nat'ed behind it a firewall will not be required. If you do initiate the firewall it has the following default rules:
The firewall default when enabled is to allow ports 4560-4590 which can be used for iax if needed and ports for echolink. SIP, HTTP, and SSH other than port 222 are not allowed outside of the local network by default. Simply uncomment those rules in the firewall file if you want to allow Internet traffic to those ports. The local LAN is not limited by these rules and can access any port. The firewall definitions are in /etc/openvpn/firewall If you change the settings in this file or comment/uncomment a rule rerun the firewall file. To rerun type:
To view the current firewall settings type:
iptables -L -v -n
By default the firewall is disabled. You can enable it by setting its parameter to 'enabled' in /usr/local/etc/allstar.env. In most cases if you are using a good gateway router to the Internet the firewall is redundant. You would forward ports in your router to your BBB as needed and only the ports that were needed. If you don't currently have any firewall protection ahead of your BBB system it is recommended that the firewall be enabled. This would be the case if you were DMZ'ing to the BBB or using it in a situation with unknown external firewall protection.
The openvpn package is now installed for your convenience. Most will probably not use it but it can be a valuable asset in connecting your distant nodes securely. By default it is not enabled. You must setup the configuration files. There are example files in /etc/openvpn and further information on its use can be found at openvpn howto and documentation. See the howto's for information on enabling.
This release uses dahdi which is the replacement for zaptel. There should be NO zaptel.conf file or any other zaptel related files brought over to the BBB system. The file chan_dahdi.conf should remain in the /etc/asterisk directory.
There are some additional sound files provided on the image to facilitate the 'The time is' message script running outside of app_rpt. I created a script to do that so the volume could be changed on the fly. Scripts are located in /usr/local/sbin. The saytime.pl script is called by a cron job every hour on the hour and sent to the local node on the BBB server. The file uses sox to alter the volume transmitted over the local radio. The volume can be changed in the file. Delete or change the cron file to turn this off or change the time(s) that it plays. More information is available in the scripts howto.
My script lsnodes to display and control a node locally or remotely from a web page is included. Instructions on how to use it are located at lsnodes Allstar Display and Control There is no page authentication (.htaccess) installed so if you are running lsnodes public on the web and want security you would have to create .htacess in the /srv/http/lsnodes directory and assign a password. This is described in the documentation.
To connect to your node from your local LAN enter the following address in your browser. Note that this does not work well with MS Explorer! Use Firefox, waterfox, or Chrome which all should work.
http://your BBB local IP address/lsnodes/lsnodes_form.html
This connects at the standard port 80. See the lsnodes docs for info on how to change the port if you desire. You can access the BBB from anywhere on the internet if you forward port 80 to the BBB's local IP address in your Internet router. Note that if you are using the BBB's firewall you would have to allow port 80 or whatever port you are using in /etc/openvpn/firewall.
Disregard the lsnodes installation procedure since it is already installed on the BBB image. I did not implement echolink on the BBB image but you could certainly add it by setting up the echolink.conf file and forwarding the correct ports from your router. The file is currently named echolink.xxx
There are also example scripts for connection and disconnection at specific times. Again these are just examples and must be tailored to use on your system. Scripts are generally called from a cron job at a specific time or times. The scripts are not limited to connect and disconnect. They can execute any command you would do manually.
The following cron entries are installed in the BBB image. The first line calls the saytime script every hour on the hour. Edit this script to the node number you want this announced on. The second line updates the node information data daily. This is used by lsnodes or allmon.
00 0-23 * * * (source /usr/local/etc/allstar.env ; /usr/bin/nice -19 /usr/bin/perl /usr/local/sbin/saytime.pl -w KNJNORTH13 $NODE1 > /dev/null)
03 03 * * * cd /usr/local/sbin; ./astdb.php
Note that USB reliability was greatly increased in version 1.2.1 resulting in very few USB problems. The following text is left for reference in case you might have a problem
USB Woes. If you have used the USB interface much you are most certainly aware that it sometimes can be the cause of all kinds of problems. The BBB is especially susceptible because unlike a PC it is not directly grounded. Sneak paths of especially AC current on the ground leads can totally confuse the USB interface. One example of how this actually happened was a wall wart type supply used to power the BBB had a high level - 45 volts of AC - floating on the ground and +5 output. Since this was equal on both polarities (common mode) it did not effect the performance of the BBB but when a device such as the DMK URI was connected this AC was grounded through the USB interface to the URI and then to the radio to ground inducing AC onto the USB power and data lines. This is just one example of how this can happen so beware if you have USB issues. Check your Power supply and grounds!!! The small switching wall-wart type supplies do not have a AC ground lug. I checked a Powergen supply here and sure enough it had a fairly high level of AC riding on the DC ground measured to the line AC ground. I have been using them on a number of boards without any noticeable problems but my thought is that these things are just plain trouble waiting to happen. A conventional transformer coupled three terminal regulator supply or higher quality switching supply might be a better idea. Another thing to be especially careful of is the ground on your radio. On TX a 50 watt radio could draw 10 amps or more. If the radio ground came loose it would try to seek a ground back through the URI and USB and the high current flow could destroy the URI and/or the BBB. The USB interface and the DMK URI in particular are also very susceptible to RF interference especially in the HF range. Ferrites on the USB and radio leads usually solves this problem. For really tough problems a USB isolator might be the answer. The ADUM4160 USB isolator is available from a number of sources and is in the $30 range.
Power woes. As mentioned in the previous paragraph power supply issues are often the cause of problems with the BBB, One area that is particularly weak on the BBB is the 5V power connector. I don't like barrel connectors as I often find them to be intermittent and a poor choice to run a computer. An intermittent power connector can cause reboots and all sorts of problems. Check your connector by wiggling it after applying power without the SD card in place and see if the power light blinks. I have one board that has a bad connector and reboots sporadically. For best reliability I would either replace or better yet hard wire the power to the connector. It is also probably acceptable to use the mini USB as the power source as long as you are not running more than the BBB and a USB sound FOB.
While technically it is possible to use a usb hub and an additional sound FOB for a second node it is not recommended. A far better choice would be to use a second BBB setup as another server. You would need to select a different iax upd port like, 4568, configure it at allstarlink.org in your sever setup, in your local iax.conf, and add an entry in your router port forwarding. In this case you would have two entries in your port forwarding for iax, one to the IP address and port 4569 of the first server and one to the IP address and port 4568 of the second server. To be able to connect between local servers you most likely would need to add the local addresses in each servers rpt.conf. See the multi-server howto for details on configuring multiple servers.
Good audio quality is a pet peeve of mine. In particular usbradio even on PC systems often suffers from audio distortion. I hear it all the time on the air. Often it is on transmit so the node owner has no knowledge of it happening unless someone says something. Please consider this when using your node. We are looking into ways to improve this but for now whether you are using a BBB or PC this distortion can and does happen. Consider using simpleusb especially with the BBB. Also the BBB image has "radio relax" turned off. The acid release has this turned on by default. When it is on voice signals can false the DTMF decoder and each time this happens there is a hole in the audio when it mutes thinking there is a real DTMF signal. You can see this in the client when it logs the false DTMF character. Leaving it off has no significant impact on real DTMF detection and eliminates the falsing.
The iLBC codec has been added to the BBB image. iLBC was developed by Global IP solutions and was included in Asterisk for many years until it was removed due to possible licensing issues. Google bought GIPS in 2011 and made the codec open source. It uses a 20ms frame rate and a fixed 15.2kbit/s bitrate in Allstar. The use of this is optional and would require another system with this codec installed for its use. It has very good quality at low data rates, about one third of the standard g726aal2 that is typically used. It is particularly useful in limited bandwidth situations and degrades much more gracefully than g726aal2 on poor circuits. Note however that the transcoding of iLBC to and from other formats takes considerably more CPU. It does work well on the BBB with several nodes connected but you need to be aware of possible issues when larger numbers of nodes are connected of differing formats. For more information on iLBC see http://en.wikipedia.org/wiki/Internet_Low_Bitrate_Codec
iLBC is enabled by default as a codec option in iax.conf If you want to disable it you can comment the:
line in the general stanza (for outgoing connections) and radio stanza (for incoming connections) of iax.conf You can also change the preference order of the codecs by changing its position relative to the other allow entries.
You can check the format of connected channels in the Asterisk client with the command:
iax2 show channels
One of the biggest complaints Allstar users have besides the lack of coherent documentation is the fact that if you are connected to a large number of nodes you get constant and annoying connect and disconnect messages. There is an easy way around this with a couple of configuration lines in rpt.conf. To disable the message except your own put the following lines in rpt.conf
These lines already exist in the default example rpt.conf in the image. If you copy over another rpt.conf you will have to recreate them.
The entire asterisk allstar and dahdi source code is located in the /usr/src/utils directory and the kernel header files are located in /usr/src. So if necessary you can do a recompile of dahdi or asterisk. This should only be necessary if you are making changes to the code. I would NOT recommend updating the Archlinux system (pacman -Syu) unless absolutely necessary. Always make a image backup before doing any major changes so you can return to where you were if something goes wrong. Archlinux is a bleeding edge Linux OS and has continual updates. If you do an entire system update you will most likely get a new kernel and need to recompile and install the dahdi and asterisk code. I have also had mixed results with other kernel versions. The 3.8.13-24-ARCH which is what the image is based on works. There is no guarantee for anything else. If you need a package that won't load unless there is an upgrade either use the Archlinux rollback machine and get the package for the installed kernel or get the source and compile under the current kernel version. See Archlinux Downgrading Packages
The linux locate which is handy to locate files on the system is installed but the daily update is turned off. This is to avoid unnecessary writes to the SD card. If you have a need to find a file that was added after the last update run updatedb first.
If you plan on doing any serious code work on the BBB you should consider buying a serial adapter cable. This plugs onto J1 on the BBB board and a USB port on the host computer. It works very well with putty in serial mode in Windows7 but could be used with any computer that offers a serial connection. Windows should load the FTDI driver automatically. Then use device manager to determine or change the comm port settings. The baud rate is 115200. You will see all boot messages and get a login prompt. The adapter is available from Adafruit - Standard FTDI Cable
For those of you who are tinkerers and like to write and modify code be sure the package(s) you load or write is utilizing RAM rather than the SD card for writing data on the BBB. It is OK to write occasional information that must be retained to the SD card but something that does continuous updates that can be volatile (not survive a boot) should be written to one of the tmpfs areas. Both /tmp and /var/log/ are tmpfs on this BBB image and anything written to those directories or any directory below use RAM.
We love contributions! Not money but rather things you have done to improve your BBB that we may either include in the distribution or as links to optional add-ons. This is a community effort and input is always welcome.
Talking about code work and the value of having a serial connection, one of the things that held up distribution an extra week was work on the boot process for Archlinux on the BBB. The BBB has a complex boot process using Uboot which involves the on-board eMMC and the MicroSD card. With the stock Archlinux the BBB wants to boot from the eMMC unless you hold down the boot switch at power up. If you wholesale wipe out the on-board eMMC it will boot fine but we did not want to force users to do that. Dave, KB4FXC came up with a method that appears to work fine and involves no modification to the stock eMMC. Your Allstar image should boot without any user intervention. The rev C BBB board is also booting correctly as of v1.04.
Version information can be found in the file /etc/bbb_allstar_version
To Do List
Finally let me say this is a work in progress and I will be continually updating both the image and these notes over time. I would be glad to answer any questions or try to resolve any problems you may have but please understand that at this point you need to have or gain a little knowledge about using Linux and at least be able to follow the above directions in order to get this running. I would also like to hear about your experience with Allstar and the BBB and this code. If you have ideas on how the code can be improved or you have expertise and would like to be a part of the project please contact me at my QRZ email address (WA3DSP)
Please also forward any comments you may have on this web page. I am interested in how well the instructions worked for you and any thoughts you may have on how they can be improved.
I hope you have as much fun using the BBB with Allstar as I have had implementing it. We have started a mailing list for the ARM processor Allstar and specifically, at least for now, the BBB. To subscribe to the arm-allstar mail list visit this link:
ARM-ALLSTAR Email List Subscription:
Try to keep discussion specific to the BBB/Allstar project on the arm-allstar list and use this list rather than apt_rpt for BBB and RPi2 related topics.
How To Notes
Setup and Software
Scripts and Other Information
User Tech Notes and interesting sites
Download this web page in PDF - Asterisk Allstar on the BeagleBone Black and the Raspberry Pi 2.pdf
If you would like to translate this page content, please use the Google Translate feature below:
© 2014,2015 - WA3DSP