EMGO weather RX alternative firmware

This project has its own page here.

Webcluster script running on this server

This is a modified version of DL5DI's webcluster, to use cty.dat prefix data file based on dxcc by DJ1YFK.
Ia also colorizes DX spots based on local/dx and on own continent and gives some info on mouse over, like dx's timezone.
Has updated QRZ search links. Now also searches for special callsigns defined in cty.dat.
Needs a small addon in Dx Spider (/spider/local) so that announcements are logged separately for optimized speed.
Tnx. Tom, SP2L, for the review and corrections.
Download tarball here (version 9-Nov-2018).

dx-broadcast 1.1

Dx-broadcast is a small linux daemon intended for packet gateways. It logs in to a DX-cluster and broadcasts obtained dx spots via UI frames on an ax.25 interface.
Grab the source files here, compile and enjoy.

DxFlexServer 1.0 for Windows and Flexnet

The matching pair of the broadcast daemon. Acts as a monitor client to Flexnet and offers the spot as a telnet server, emulating a telnet session to a cluster (to a very small extent).
Needs PC/Flexnet32 and works on Windows Vista32 (probably on 98, XP and Windows 7 also) and supports multiple connections. You can download the executable file here.
Tested only with N1MM logger on Vista32 (and it works...). Please feel free to test drive and criticize.
If you want, get the source files here.

x-bot 0.3

X-bot is a small robot for the WW converse network. It logs in as a user to a specified channel, sets the channel topic and goes 'away'.
It surveys the channel topic and resets it if changed. Also answers to some basic commands (info, version and request to set topic).
Get the sources here, edit your parameters in the C file, compile and launch.

Git repository: https://git.ampr.org/yo2loj/converse-bot

Change Log:
 Version 0.2:
     - Initial release
 Version 0.3 (25.Nov.2018):
     - Small corrections

ampr-ripd 2.4.1

Routing daemon written in C similar to Hessu's rip44d including optional resending of RIPv2 broadcasts for router injection.
You need to compile it for your system. Download the latest source code here (tgz file), make and enjoy.
Tested and found working on Intel/AMD 32bit and 64bit systems, Raspberry Pi and Mikrotik mipsbe OpenWRT metarouter.

For OpenWRT makefiles, follow this link (Tnx. Bill, M1BKF).

EdgeRouter setup instructions: See AMPR Wiki
Find the EdgeRouter setup package here: Ampr_EdgeRouter.tgz (mips64)
For the EdgeRouterX setup use this one: Ampr_EdgeRouterX.tgz (mipsel)
For both EdgeRouters here is a status wizard: Ampr_Status_Wizard.tar

Git repository: https://git.ampr.org/yo2loj/ampr-ripd

Change Log:
 Version 1.0 (1.Aug.2013):
     - Initial release
 Version 1.1 (1.Aug.2013):
     - Added routing table selection
     - Added setting of TCP window to 840
 Version 1.2 (3.Aug.2013):
     - Added option to use a raw socket instead of multicast on incompatible systems
 Version 1.3 (7.Aug.2013):
     - Minor bug fix, removed compiler warnings
 Version 1.4 (8.Aug.2013):
     - Possible buffer overflow fixed
     - Delete of routes with metrics 15 fixed
 Version 1.5 (10.Aug.2013):
     - fixed a stupid netmask calculation error (introduced in 1.4)
 Version 1.6 (10.Oct.2013):
     - changed multicast setup algo to be interface specific (Tnx. Rob, PE1CHL)
 Version 1.7 (8.Feb.2014):
     - added support for dynamic hostnames and ampr subnets in the ignore list
 Version 1.8 (11.Feb.2014):
     - added option to set metric on routes
 Version 1.9 (13.Feb.2014):
     - added option to adjust TCP window size on routes
     - console is now detaching on daemon startup
 Version 1.10 (14.Feb.2014):
     - small fixes on option and signal processing (Tnx. Demetre, SV1UY)
     - use of daemon() instead of fork()
     - option -v without -d keeps console attached
 Version 1.11 (17.Feb.2014):
     - Change netlink route handling to overwrite/delete only routes written by ampr-ripd
 Version 1.12 (16.Nov.2014):
     - Added the option to run an external system command on route set/change (Tnx. Rob, PE1CHL for the idea)
 Version 1.13 (20.Nov.2014):
     - Ignore subnets for which the gateway is inside their own subnet
     - Reconstruct RIP messages to be forwarded and send them about every 30 sec
     - Forwarded RIP messages do not use authentication
 Version 1.14 (21.Sep.2016):
     - Password in included in the daemon. Only need to set it should it ever change (OK from Brian Kantor - Tnx.)
     - Added man page courtesy of Ana C. Custura and the DebianHams
 Version 1.15 (21.Sep.2016):
     - Removed multicast access mode. Only raw sockets are used. Parameter '-r' is ignored
 Version 1.16 (3.Feb.2017):
     - Added support for BGP announced 44net endpoints
 Version 1.16.1 (4.Feb.2017):
     - Added route cleanup on exit via CTRL-C in console mode.
     - No functional changes
 Version 1.16.2 (5.Feb.2017):
     - Reconnect RIP forwarding interface after interface down (Tnx. Gus, I0OJJ).
     - No functional changes
 Version 1.16.3 (19.Feb.2017):
     - Correction for host routes on big endian machines.
     - No functional changes
 Version 2.0 (20.May.2017):
     - Brought option -r back to life.
     - Added -F and -E options for raw AMPR-RIP forwarding.
     - Added setting of 44.0.0.1/32 route according to RIP data.
 Version 2.1 (28.May.2017):
     - Fixed a segfault if using the -F option
     - Added the possibility to use interface names for the -g option
     - Interface used for raw RIP forwarding restarts on interface error
 Version 2.1.1 (29.May.2017):
     - Fixed a tunnel interface detection error (cut instead of copy issue)
     - No functional changes
 Version 2.2 (30.May.2017):
     - Added an option to send a "call home" string to my home gateway via UDP on port 59001
      This string will be experimentally used to create a dynamic map of the ampr system.
      Currently the string has to be in callsign@locator format
 Version 2.3 (4.Jun.2017):
     - Force the use of the tunnel's IP address as source IP for "call home"
 Version 2.4 (15.Aug.2017):
     - Corrected a segfault in NL handling on some systems (Tnx. Steve, VK5ASF and Bent, OZ6BL)
     - Corrected a segfault on SIGHUP if call home is not set (Tnx. Steve, VK5ASF and Bent, OZ6BL)
     - Improved command line handling
 Version 2.4.1 (8.Dec.2021):
     - Corrected a bug in netlink debug code (Tnx. Daniele, IU5HKX)
     - It should not impact regular builds without NL_DEBUG
     If you do not wish to participate in the mapping experiment, just do not set the -L option

amprd 3.0.1

An user-space IPIP encapsulation daemon with automatic RIPv2 multicast processing and multiple tunnel support for the ampr network.
All RIPv2 processing, encapsulation, decapsulation and routing happens inside the daemon and it offers one or more virtual TUN interfaces to the system for your 44net traffic.
Configuration is done using a simple configuration file. It does NOT support dynamic IPs (yet).
You need to compile it for your system. Download the latest source code here (tgz file).

Git repository: https://git.ampr.org/yo2loj/amprd

For OpenWRT makefiles, follow this link (Tnx. Bill, M1BKF).

Due to changes in the 4.x kernels, there's a problem with the system replying with "icmp unreachable" to incoming IPIP traffic.
This will possible drop incoming traffic, including the RIP broadcasts (resulting in incomplete route tables).
Please switch to an ampr-ripd setup or filter outgoing icmp messages on your WAN interface, using a rule like the one below:

     iptables -A OUTPUT -o ethX -p icmp --icmp-type destination-unreachable -m state --state RELATED -j DROP

Optional, you can use version 3.0 and up, providing a netfilter kernel module to solve this problem.

Change Log:
 Version 1.0 (6.Aug.2013):
     - Initial release
 Version 1.1 (8.Aug.2013):
     - Fixed routes being set even if setting was disabled
     - Fixed deleting routes with metrics 15
     - Fixed possible buffer overflow
 Version 1.2 (9.Aug.2013):
     - Fixed buffer overflow on IPIP socket read (tnx. Don Fanning)
 Version 1.3 (10.Aug.2013):
     - Fixed a stupid netmask calculation error
 Version 1.4 (10.Aug.2013):
     - Fixed a netmask network/host translation error
 Version 1.5 (3.Apr.2017):
     - Added support for PID file
     - Added support for BGP announced 44net endpoints
 Version 1.6 (8.Apr.2017):
     - Fixed host routes not being set when rip_set_routes = no
     - Password hardcoded. Only needs to be set if it ever changes
     - Changed makefile not to overwrite an existing config file
 Version 2.0 (2.Jun.2017):
     - Set the default AMPR gateway to the new IP
     - Added call home functionality
 Version 2.1 (4.Jun.2017):
     - Forced call home to use the interface address as source IP
     - Added support for call home on multiple interfaces
 Version 3.0 (2.Apr.2019):
     - Added support for AMPR subnets in ignore list
     - Added disable/enable option for incoming multicast and broadcast traffic
     - Added support for selectable PID file
     - Added support for IPIP kernel redirector module
     - Added option to enable/disable use of kernel module
 Version 3.0.1 (1.Jul.2022):
     - Added IPIP redirector support for 4.13+ kernels
     If you do not wish to participate in the map experiment, there is no need to upgrade to this version.
     As long as the RIP data contains broadcasts for 44.0.0.1 via the old GW, amprd will use that GW anyway.
     This applies to the current and the previous versions. When the new GW will be broadcast as a GW for 44.0.0.1,
     the new GW will be used automatically, even by older versions.

Mikrotik RIPv2 AMPR Gateway Setup Script 3.2
(The script does not work on ROS 7)

This script, installed on a Mikrotik router, enables a complete AMPR gateway setup using RIPv2 broadcasts from amprgw.
Schedule the script to run after the RIPv2 update (Every 5 minutes, starting at let's say 00:06).
Make sure you receive RIP data BEFORE running the script, or nothing will happen.
Also, don't forget to set up your RIP filters so that the route to 44.0.0.1 will be ignored, otherwise it will not work.
Setup details are in this README file.
For RouterOS 6.41 and newer, use this version (text file - use 'save link to'...).
For older RouterOS (pre-6.41) versions) download version 3.1 here (text file - use 'save link to)...
Import and enjoy!
The script does not work on RouterOS 7 due to changes in the RIP handling.

Change Log:
 Version 1.0 (24.Feb.2016):
     - Initial release
 Version 1.1 (24.Feb.2016):
     - Delete obsolete elements only if RIP data is available
 Version 1.2 (25.Feb.2016):
     - Added time stamp comments for routes and tunnels
     - Refined setup description
 Version 1.3 (26.Feb.2016):
     - Added delays to the loops to ease the processor load
 Version 1.4 (12.Mar.2016):
     - Tuneable step delay, improved comments (Tnx. Marc, LX1DUC)
 Version 1.4-FP (12.Mar.2016):
     - Version with fast path enabled (Tnx. Marc, LX1DUC)
     USE ONLY ON ROS VERSIONS 6.33 AND LATER!
 Version 1.5 (9.Apr.2016):
     - Created parent script to allow error recovery and prevent run overlap
     - No data is processed if there are less than 100 RIP entries
     - Converted to Mikrotik export format:
       Just copy to the router and issue an "import" and load the rsc file
       Or copy/paste the content into the console.
       Edit your configuration in the script and enable the scheduler entry.
 Version 1.6 (12.Apr.2016):
     - Run only from wrapper, checks removed from main script
     - Optimized - reduced run time by some 50%
     - Added global state variable for checking
     - Scheduler set to run every 30 min after minute 00:21
     - Main script available here as text file.
 Version 2.0 (12.Apr.2016):
     - Completely rewritten script
     - reduced run time and processor load:
       Without delays, an update on a RB1100AHx2 takes some 5 seconds to update.
       A full creation of all routes and tunnels less than 1 minute.
       On an MIPSBE single core, an update takes around 10 seconds.
       To reduce the processor load, a delay is used (10ms) which makes the script run
       a little longer (less than 1 minute).
     - Main script available here as text file.
 Version 2.1 (15.Apr.2016):
     - Added configuration script so updates can happen only for the main script
       System consists of 3 scripts: wrapper, config and actual update script
       so further updates can be done for a single script only (Tnx. Marc, LX1DUC).
     - Only static routes will be processed, so dynamic ones can co-exist without issues
       (Tnx. Adrian, YO8RXT).
     - Individual script files available here as zip archive.
 Version 2.2 (26.Apr.2016):
     - Removed an useless loop which could crash the script by removing an obsolete tunnel multiple times
     - Added a local variable in update_amprgw to set maximum script overrun admits (was 3, now defaults to 1)
     - Individual script files available here as zip archive.
     - If you already use v.2.1, only update ampr_gw and update_amprgw from the archive file.
 Version 3.0 (21.Jan.2017):
     - Added support for tunnels with BGP announced 44net endpoints
     - Individual script files available here as zip archive.
     - If you already use v.2.x, only update ampr_gw and from the archive file and add manually the new parameter
       "AmprDefaultGw" to your config file (see the example file in the archive).
       "AmprDefaultGw" can be set to your gateway WAN interface name or to your gateway IP.
 Version 3.1 (15.Apr.2017):
     - Individual script files available here as zip archive.
       You only need to update the 'ampr_gw' script. Startup and config scripts are unchanged.
     - The script maintains an interface list named 'ampr-interfaces' with all ampr tunnel interfaces
       The list is persistent, and will be created on first script run. Afterwards it will be
       maintained by each interface add or remove. Useful for firewall rules.
     - Corrected an error when tunnel endpoint host routes where not deleted
     - Added step by step instructions using winbox GUI
 Version 3.2 (21.Dec.2017):
     - Individual script files available here as zip archive.
     - Updated script to ROS 6.41 scripting changes regarding neighbor discovery
     - DO NOT USE on earlier firmwares than 6.41

The script does not work on RouterOS 7 due to changes in the RIP handling.

svxpty 1.0

A small daemon allowing the crosslinking of Tx PTT/Rx Squelch PTY pairs as provided by svxlink/remotetrx.
This allows simple interlinking of 'virtual' radio interfaces by means of alsa loopback devices and PTYs.
You need to compile it for your system. Download the latest source code here (tgz file).

Change Log:
 Version 1.0 (18.Jan.2016):
     - Initial release

LZHUF_1.EXE for D-RATS supporting 32 and 64bit Windows

The LZHUF_1.EXE in the D-RATS distribution 0.3.3 is a 16-bit text mode executable and is not able to run under 64bit Windows.
This is a PE drop-in replacement able to run on 32 and 64-bit machines. Based on the WL2K-Go LZHUF code with minimal changes.
Compiled with Open Watcom and tested on Windows 7 64bit.
Download here (zip file). Source code is included.

Change Log:
 Release version (18.Feb.2016):
     - Initial (and only) release - it just works

UDP port beacon injector script for APRSD

Perl script allowing the simple addition of beacon/object publishing to a running APRS daemon using its UDP port.
Tested on APRSD 2.2.5-13. Should work with any APRS system accepting UDP messages without login.
Run in the background by starting via systemd or startup scripts. Download here.

Change Log:
 Version 1.0 (12.Mar.2016):
     - Initial release

Makefile for independently building the ax25 kernel module

Just the make file to build your ax25.ko module for 3/4 kernels.
Copy your module source files into the same folder and do a make...
You need to have the kernel headers installed
 The file

Here are also some packages of the ax.25 module for specific kernel editions, patched and prepared for compiling on your system.
To find out your kernel version, try 'uname -r'
You need to have linux-kbuild-* and linux-headers (raspberrypi-kernel-headers on Raspberry Pi OS) installed.
You can always use these packages as a starting point for other kernel version.
The specific patch is the 'else' branch at the end ot the last function in the ax25_subr.c file and the source files come from the original kernel source of your specific version.
 4.9.0-8 (Debian 9.6)
 4.9.0-12 (Debian 9.9)
 4.19.0-9 (Debian 10.4)
 4.19.0-16..18 (Debian 10.9..11)
 5.10.63 (Raspberry Pi OS & Debian 11.1) - The make script has changed for this version and DAMA slave is enabled by default

Spid RAK Rotator Interface to microHAM StationMaster

Open schematic as pdf: Spid_SM_IF.pdf


Any feedback is welcomed. If not otherwise specified, all software on this page is released under the GNU General Public License version 2.

(c) 2012-2017 by Marius Petrescu,