Monthly Archives: November 2010

Running app_rpt on ASUS WL500

I’m running a project together with YO3KSR ham radio club in Bucharest. It aims at running app_rpt on an small WL500 router in order to make radio-VoIP-radio network. In the picture below one could see a router connected with a GM300 rig and the power supply for the rig. This article is just a short list of information on how to replicate the solution.

The router

It’s actually a WL500 Deluxe board together with a GPRS board (not used in this project) in a different box. It’s sold as Topex BYTTON GPRS.

The connections

Three USB connections are used:

– USB sound card – I’m using CM108 based card as of now but you may try a different card because I use chan_alsaradio driver.

– Mass storage flash card

– USB to RS232 converter for signaling (PTT and COR) – I’m not using the GPIO pins on the CM108 card because the requirement was to be able to use any kind of the USB sound cards that may not have GPIO pins.

The order of physical USB ports is important, it should be like in the picture. Otherwise you need to adjust configuration files.

Here is the connection board schematics for the PTT and COR:

The software:

The application is made to run on OpenWRT 10.03. You need to install it before attempting to install app_rpt.

Since the board has so less flash memory (4MB),  the USB flash drive is used to keep the new root filesystem.  In order to boot from flash drive you need to replace /sbin/init on your onboard flash filesystem with the following script: init. The script will switch from on-board flash root to the root mounted from USB flash drive.

Download the new root filesystem: from here

You need to make two partitions on the flash drive:

1. swap (~100M)

2. ext3 (the rest) – copy the content of the archive on this partition

Adjusting various bits:

Accessing the system after mounting USB root filesystem(user root, password admin): ssh root@

Changing the default IP address ( use your web browser and access the LuCI interface:

Adjusting audio levels: after you login with ssh use “alsamixer -V all”

Changing default node number (27237) and relation between node number and IP address: modify node number in /etc/asterisk/rpt.conf, and node number and IP in /usr/lib/asterisk/rpt_extnodes .

Inverting PTT signal: set invertptt=1 in /etc/asterisk/alsaradio.conf

Inverting COR signal: set carrierfrom=serialdsr or serialdsrinvert in /etc/asterisk/alsaradio.conf

Using the system:

Suppose you have two systems, first one with node number 27111 and the second with node number 27222. In order to dial from one node (27111) to the other:

*327222 from node 27111.

To disconnect: *127222.

You could configure and use any options app_rpt has.

Overclocking the router:

If the sound is chopped you may try to overclock the router . DO IT AT YOUR OWN RISKS!

For WL500 Deluxe:

nvram set clkfreq=264,132

nvram commit


I hope this is enough for someone to get started.

73, YO3IIU

Sending APRS message to Twitter

Just in a discussion with a fellow motorcyclist, I found out that people wants to send Twitter messages (to tweet – a new verb 🙂 ) from various kind of devices like PDA-s, phones, radios. Knowing that APRS could be used to send short messages that are even shorter than Twitter ones made me think why shouldn’t I make an application to allow ham radio enthusiasts  sending APRS messages to its own Twitter account? This seemed to be an easy task, just couple of days of work. For the impatients here is the link to what you need:

I’ve seen two sub tasks to accomplish the main task of sending the message from Twitter to APRS: Authentication and Message passing between the two networks.

There are some differences between Twitter and APRS when talking about authentication. APRS has no authentication, Twitter has a good authentication as of 2010, OAuth.

The message passing is easily accomplished once the authentication is done, the application needs just to listen to a connection to one of the main APRS-IS servers and when receiving a message, will send it to Twitter server.

How it works:

Authentication is done on a perl CGI that receives user’s callsign and then proceed to authentication with Twitter. You’ll be asked to accept access from APRS to Tweet application. Once the authentication is finished, the user callsign and its Twitter OAuth tokens are stored in a local database. Remember that OAuth does not know at any time your Twitter user and password, therefore no such info is stored on the server.

Sending the message to Twitter is simple: you send the message from APRS to callsign YO3IIU-11 and it is mandatory that the message have “tweet:” included at the beginning of the message. Otherwise the message will be rejected. It is designed like this just to filter broadcast messages that will come to YO3IIU-11.

That’s all folks,

73, YO3IIU