There are a handful of binaries in the system which are closed source (but have simple interfaces and/or are well documented).  However, the majority of IRLP is written in bash shell scripts, which the node owner can directly read and modify.  Example:

IRLP Repeater Controller Project - The IRLP Repeater Project is only limited by your imagination and programming skills.   

IRLP repeater relevant links:

The IRLP controller program is a simple controller that provides hangtime, DTMF muting, activity controller ID, and controllable courtesy tones. Intelligent CW repeater ID.  It uses the IRLP hardware interface, which can easily be built.

The IRLP controller requires a pair of courtesy tone files to be setup. The controller requires files to be made that are RAW (no header), 8 bit, with a sample rate of 8000hz. The names are ct1.raw and ct2.raw. ct1.raw is played for local traffic, and ct2.raw is played for remote (IRLP and controller generated traffic). These can be made to whatever you like, using a program like CoolEdit. You can then use a program like WinSCP to transfer the files from a windows machine onto the embedded node. After the files have been sent, the flash_sync script must be run to save the changes.

The controller has an environment file at


which can adjust many of the features of the controller. You can adjust:

The hangtime in milliseconds.

The shortkey timer in milliseconds (COS time required for hangtime activation).

The alligator timer in seconds (COS timeout).

Toggle DTMF mute on/off.

The DTMF mute duration in milliseconds.

The ID interval in seconds (time between IDs).

The courtesy tone frequency if ct1/2.raw files are not available (plays through through PC speaker).

After making any changes to the environment file, the controller must be restarted by running:


The DTMF mute is accomplished by setting the LINE volume slider to zero. This is done in software. This only affects the audio being passed from the Line INPUT to the Line OUTPUT, and not the volume of your IRLP output audio.

Explanation of some of the standard binaries


aux*  software-controlled switches using MOSFET's. The three outputs are active LOW. They can sink several amps of current, so beware. DO NOT sink more than about 500mA though.  The commands are: aux1off aux1on aux2off aux2on aux3off aux3on.  

cosstate  COSSTATE is FALSE (equals 1) when there is a local signal being detected by the IRLP board (COS is high)

dtmf  - 
responsible for interpreting DTMFs received by the (link) radio. You can kill this process if you're having trouble w/ unauthorized people sending DTMF commands and your node won't hear commands any more but will still respond to keyboard commands and can still make and receive connections.

forcekey / forceunkey - see key / unkey

key / unkey - cause your radio to key and unkey (ptt) -- invoked automatically by incoming signals from other nodes or reflectors, or can be executed from the console (keyboard). If you are running an ID script that plays and ID when your node is already keyed by IRLP activity, if the IRLP activity drops in the middle of your ID the ID will be interrupted. The forcekey command was created for use in these circumstances to keep your node keyed if activity drops (ptt is then brought down with the forceunkey command). From VE7LTD: " So, if you use forcekeys for anything, make DARN sure that there is a forceunkey to accompany it! Or else you will have smoldering plastic if your radio can not handle it."

pttstate  PTTSTATE is FALSE (equals 1) when there is a transmit signal being sent from the IRLP board to your radio.

readinput  Mean for troubleshooting, it will display everything that comes across; PTT ACTIVE, PTT INACTIVE, COS ACTIVE, COS INACTIVE, DTMF 1, etc

Imike takes your voice from the mic input on the sound card and digitizes it into UDP voice packets and sends them out over the internet to any IP address and port number that you choose whenever pin 11 on the parallel printer port is shorted to ground

imike - takes your voice from the mic input on the sound card and digitizes it into UDP voice packets and sends them out over the internet to any IP address and port number that you choose whenever pin 11 on the parallel printer port is shorted to ground.  (imike is the modified version of sfmike)

ispeaker - listens for UDP voice packets from the internet on any port you choose and turns them back into analog and puts that audio out the speaker jack on the sound card. When valid UDP packets are received pin 3 on the parallel printer port goes high.  (ispeaker is the modified version of sfspeaker)

Notes on taking a stock IRLP install off-network

In /home/irlp/custom/rc.irlp comment out:
killall -p mynetd >&/dev/null 2>&1
sleep 2
/bin/su - -c "$BIN/mynetd 15425 $BIN/irlpd" repeater >&dev/null 2>&1

echo -n "Updating StationID to IP address table... "

/bin/su - -c "$SCRIPT/update hosts" repeater >&/dev/null 2>&1 &
echo "(put in background) done!"

echo -n "Updating my IP address on the server... "
/bin/su - -c "$SCRIPT/ipupdate" repeater >&/dev/null 2>&1 &
echo "(put in background) done!"

echo -n "Updating IRLP filesystem... "
/bin/su - -c "$SCRIPT/update files" repeater >&/dev/null 2>&1 &
echo "(put in background) done!"
In /home/irlp/scripts/enable comment out:
$SCRIPT/statupdate &
Also check /home/irlp/scripts/irlp.crons 
Return to Main Page