Table of Contents

XRouter (XrPi, XrLin, XrWin) Downloads

Back to Main XRouter Page

This page is a “work in progress”. The plan is to put more stuff on here, but the wiki only accepts files up to 2 megabytes. The very latest files can always be obtained from the XRouter group files area at:

https://groups.io/g/xrouter/files

These are the XRouter executables, as of 20th January 2026.

If you already have a working XRouter system, simply replace the old executable with the new one as follows:

  1. Download the variant that suits your OS (see below).
  2. Unzip the archive to extract the executable file.
  3. Rename the executable to “xrlin”, “xrpi” or “xrwin” as appropriate.
  4. Backup or rename your existing executable, just in case.
  5. Copy or move the new executable into your working XRouter directory.
  6. For Linux, remember to use “chmod -x {progname}” to allow it to run.
  7. Run with “./xrpi” or “sudo ./xrpi” as appropriate.

The “static” variants are standalone programs with no dependencies, so they should run on any Linux OS version. The non-static versions require a suitable version of GLIBC, which change with every OS. XRouter variants for older OS versions will generally run on later OS versions, but not necessarily the other way around. For example, the “stretch” variant will run on Bullseye, but the Bullseye version won't run on Stretch.

If you don't have an existing XRouter setup, you will need a full release package. This is too big for the wiki, so you will need to download the “support files” and executable separately.

(more on this to follow….)

v504j Support Files

Executables for 32-bit Raspberry Pi and Other ARM devices:

The wiki doesn't allow uploads greater than 2Mb, so the executables are zipped…

xrpi32v504v-stretch.zip

xrpi32v504v-static.zip

Executables for 64-bit Raspberry Pi and Other ARM devices:

xrpi64v504v-bullseye.zip

xrpi64v504v-static.zip

Executables for X86 Linux:

v504v-static for any O/S

v504v-stretch for Debian 9 (Stretch) and later O/S

Executables for X86-64 Linux:

v504v for Linux Mint 21 (Vanessa)

v504v for any flavour of Linux

The “vanessa” version should work on most recent flavours of Linux, especially if they are Debian or Ubuntu-based.

The “static” version is completely self-contained, with no dependencies, hence it SHOULD work on any flavour of linux. The downside of this version is that you MUST specify a Domain Name Server in XROUTER.CFG (e.g. DNS=8.8.8.8). This is because statically-linked programs are not able to use the Linux resolver.

Executables for MS Windows:

These are 32-bit, but work OK on 64-bit Windows

This one requires WINPCAP or NPCAP if you want to directly access the Ethernet via XRouter's IP stack:

xrwin32v504v.zip

This one doesn't require PCAP, but doesn't allow direct access to Ethernet:

xrwin32v504v-no-pcap.zip

XRouter Changelog

                    Version 504v - 20th Jan 2026
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Fixed:  When used via NetRom, the HTTP "routes" page sometimes
        displayed the wrong callsgns for neighbours.

Fixed:  SMTP client was completely broken by v504j.

Fixed:  From v504s onwards, XRouter could send DM frames in response
        to overheard packets, if neither callsign was one of
        XRouter's callsigns.

Fixed:  On low bandwith summary HTML page, the wind speeds were
        incorrectly displayed at 10 times their value!

Fixed:  PMS events weren't being distributed by MQTT broker unless the
        MQTT publisher client was enabled.

Change: Resolver process names are no longer re-used on subsequent
        resolutions, so it should now be easier to follow their
        progress in the log (trivial).

Change: SMTP timer now defaults to zero, i.e. disabled. No point in
        wasting time checking for mail if the sysop hasn't configured
        the node for SMTP, e.g. the majority of cases..

Change: When entering an email into the BBS, the confirmation text now
        displays the destination address in email format instead of
        "BBS" format

Change: Process logging is less cryptic (trivial).

Change: PMS, BLOG and WALL events now include the event type in the
        topic, allowing finer-grained subscription.

Added:  "CMD LIST", to list the sysop-defined commands.

Added:  "Z" option in FWD.SYS to force the use of Ctrl-Z instead of
        /EX for line endings when forwarding mail (required by BayCom
        mailboxes).

Added:  "Use Ctrl-Z" checkbox on BBS forwarding admin page.

Added:  Detection of BayCom and OpenBCM mailboxes, causing XRouter to
        use Ctrl-Z for line endings.


************************************************************************

                    Version 504u - 10th Jan 2026
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixed:  L2 connections to CHAT and PMS callsigns have been broken
        since 4/1/2005! It took 20 years for anyone to notice!

Fixed:  Case normalisation of user names in BBS was causing hyphenated
        first names such as Jean-Paul to have the wrong case.

Fixed:  Since v502w (2nd August 2023), running in Daemon mode with log
        level set to WARNING or above, caused the log to fill with
        "4 SYST: sendto() err 22: 'Invalid argument'" warnings.

Added:  Sysop Chat window now accepts the shifted versions of function
        keys, for cases where the host operating system intercepts the
        unshifted function keys.

Added:  Extra flags (bits 4 and 5) to CFLAGS as follows:

           Bit Dec  Function
           ---------------------------------------------------------
            5  32   Prevent connections to PMS/BBS on this port
            6  64   Prevent connections to CHAT on this port

Added:  MQTT request option "xrouter/get/{nodecall}/mheard/ports", to
        obtain a list of MH enabled ports.

Added:  MQTT topic "xrouter/event/{nodecall}/mhlast/{portnum}".

        Clients subscribed to this topic receive a single MHeard item
        for each frame XRouter receives on an MH-enabled port. This
        allows client applications to build their own global or port
        MH lists which may be larger than the XRouter ones. Or simply
        display the callsign of the last packet received on one or all
        ports. For example, one possible application may be a
        standalone ESP32 device with an LCD display which shows
        details of the last packet heard.

Added:  Console windows can now be scrolled using mouse wheel, in
        addition to the up/down arrow keys..

Added:  Text may now be copied and pasted within XRouter, and to/from
        the operating system's clipboard. This is a proof of concept
        only, and may be refined in future versions.

        To Copy Text From XRouter to Clipboard:
        Press and hold the left mouse button at the top left of an
        imaginary rectangle containing the text.  While holding the
        button down, drag the mouse to the bottom right of the
        rectangle. There will be no visual indication of the selection
        until the mouse button is released, at which point the text is
        briefly highlighted and copied to the clipboard.

        To Paste Text Into XRouter From the Clipboard:
        On a window which has an "input" line, e.g. "consoles" or
        "sysop chat", the key sequence Ctrl-V *appends* the clipboard
        text to the command line. In this version, you cannot "insert"
        text at a specific point, only append.

Added:  Graceful shutdown upon receipt of SIGTERM.

************************************************************************

                Version 504t - 2nd Jan 2026
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Change: Command history is bigger and is preserved across reboots.

Added:  New directive CONSOLEFLAGS for use in XROUTER.CFG. If bit 0
        is set, the action of up/down-arrow keys and their shifted
        counterparts is swapped, meaning that the unshifted up/down
        arrow keys control the command history instead of scrollback,
        and the shifted up/down arrows control scrollback. This makes
        the console behave more like a Linux/Windows terminal, at the
        expense of confusing the seasoned XRouter users.

Added:  Pressing <SHIFT> plus <F1> through <F6> on a CONSOLE allows
        those function keys to behave as in the DOS version, i.e.
        without being intercepted by the operating system.

Added:  On console windows, Ctrl-C can now be used to terminate a PING,
        NPING, Traceroute etc. in addition to the usual method of
        entering a blank command line.

(Only xrwin32v504t-no-pcap.exe and xrwin32v504t.exe were published.)

************************************************************************

                    Version 504s - 30th Dec 2025
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixed:  WXPRESS was setting the value of WXPOLL and vice versa,
        potentially causing manic polling of the weather server.

Fixed:  Since v501b, when a frame was received while LAPB was in
        disconnected state, it was being ignored instead of being
        rejected with a DM.

Fixed:  Response to an MQTT "get" request had missing topic.

Change: Minimum interval for WXPOLL is now 10 seconds. Setting it any
        lower will disable polling altogether. Be aware that polling a
        public weather server any more frequently than every 600
        seconds will most likely result in your account being banned!

Change: When viewing an XRouter MAN(ual) page via the HTTP interface,
        clicking on the section number in the header or footer will
        open the index page for that section. The header caption
        "XROUTER REFERENCE MANUAL" is now a hyperlink that opens the
        root page, i.e. the list of manual sections.

************************************************************************

                    Version 504r - 28th Dec 2025
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Added:  Support for the new XrTrace application.

************************************************************************

                    Version 504q - 26th Dec 2025
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixed:  FBB unproto broadcasts sent upon reception of a new message
        had the destination "MAIL" instead of "FBB".

Fixed:  On some operating systems only, XRouter would connect to the
        VARA TNC, then immediately disconnect with the error message
        "TNC has gone away".

Fixed:  XRouter was IP-banning AXUDP from (X)net because the latter
        sends nodes broadcasts with missing AX25 destination.

Fixed:  On some systems, viewing the PMS listing with a browser via
        the Linux IP stack occasionally caused XRouter to segfault (It
        did not segfault if XRouter's own IP stack was used).

Change: Connections to APPLTYPE=TCP normally default to "binary" mode,
        and use "carriage return" (ASCII 13) as the line ending, as
        per standard Packet Radio practice.  But some applications may
        require "telnet" standard line endings (carriage return plus
        line feed) instead.  If this is the case, appending 'T' to the
        APPLTYPE=TCP directive causes the connection to use Telnet mode
        instead of pure binary. e.g. "APPLTYPE=TCP,192.168.1.1:8015 T".

Added:  "SMACK" to KISSOPTIONS, for TNC's that support/require it.

Added:  New subcommand: "IP B[an] I[gnore] <ipaddr> [netmask]", which
        can be used to exempt an ip address or range of IP addresses
        from automatic banning in the event of suspicious activity.
        LAN and "localhost" addresses are now automatically exempt.

************************************************************************

                    Version 504p - 13th Dec 2025
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixed:  ROUTE commands, which had been broken by v504j.

Fixed:  WP "Is_BBS" entries were not updated from routing headers

Fixed:  On very fast connections, CHARGEN was using most of the
        resources. Slowed it down to a more manageable pace, still
        plenty fast enough for AXUDP or RF connections.
 
Fixed:  L4 RX Flow Control. L4 circuits would sometimes choke on very
        large buletins sent on fast links, and would take a long time
        to unchoke.

Fixed:  XRouter would silently exit if OARC map server sent a TCP
        reset.

Fixed:  When a non-XRouter neighbour enabled INP3, any conventional
        "qualities" it sent in NODES broadcasts were being heavily
        de-rated by XRouter, often causing them to fall below the
        high MINQUALs that are used nowadays. This was was caused by
        code from long ago, when the only non-XRouter neighbours
        capable of INP3 were (X)Net. ((X)net manufactured
        artificially high "qualities" from RTT and hops, distorting
        the routing).  With BPQ now having INP3, the forgotten code
        came back into play, so it has now been disabled for anything
        other than (X)net.  But note that the last time I looked,
        Linux's INP3 implementation was also wrong, so please report
        any instances of silly qualities from such neighbours.

Fixed:  Chatserver would sometimes lose sysop's settings (name etc)

Fixed:  Excessive DNS requests in cases where non-authoritative name
        server couldn't resolve a name.

Fixed:  "Private" IP route indication was potentially unreliable,
        although this had never actually been observed in practice.

Fixed:  BBS Mail import from "mail.in" file, broken by v504j.

Fixed:  If BBS forwarding script was edited via the HTTP interface,
        it was saved in upper case, upsetting "Waitfor" lines which
        are case sensitive.

Fixed:  The C[onnect] command was passing garbage to the ARDOP and
        VARA TNC's.

Fixed:  ARDOP, VARA and TCP interfaces were rejecting RADIONUM, so
        they were prevented from using rig control.

Fixed:  UIFLOOD and UITRACE digipeating were not working.

Fixed:  APRS digipeating was disabled unless the "DIGI_UI" flag was
        set in DIGIFLAGS, meaning that it was not possible to enable
        APRS digipeating independently of "normal" digipeating.

Fixed:  DISTRIB.SYS "don't forward" entries were distributing
        everything to BBS callsign "*".

Fixed:  Storage for COM device name is now explicitly deallocated at
        closedown, to prevent orphaned memory upon "hot" restarts.

Change: Prevented attempts to make AX25 connections on ports that
        don't support AX25.

Change: Following a complaint that it was slowing workflow, removed the
        HTML dialog confirming message deletion.

Change: AXRoutes command was always sysop-only, but why? As is useful
        for network debugging, it is now open to all except guests.

Change: Connections to BBS now always use "Connected to" instead of
        replying in the caller's language, otherwise it confuses
        simple machines.

Change: Added more fields to the BBS "J" response.

Added:  BBS "JK" command, to list the recent connections separately
        in chronological order.

Added:  "ilen=" to L4 trace, so that the payload length can be known
         even when there's no AX25 layer on the trace to display the
         packet length.

Added:  "CONFIG={ipaddr}" in INTERFACE type TCP, to prevent
        connections from unauthorised client IPs.

Added:  S[tats] PORT <n> [reset]

Added:  R[oute] S[tats] <call> <Port> [R[eset]].

Added:  Route connection / disconnection history

Added:  BBSBEACONS flag (8) to TXOK. Setting this flag on a PORT's
        TXOK enables FBB "Resync" requests, mail header broadcasts,
        and "Mail for:" beacons on that PORT.

Added:  FBB unproto headers and resync capability. To enable this on
        a PORT, you must add 8 to the TXOK flags for that port, e.g.
        normally TXOK=9, or TXOK=13 if weather beacons are also
        enabled.

Added:  BBS "Mail for" beacons. Enabled as above.

Added:  New directive "FbbUnprotos" to PMS.CFG. Setting FbbUnprotos=1
        enables FBB unproto (UI) mail header broadcasts on any
        PORT that has the BBSBEACONS flag (8) set in TXOK. If the
        FbbUnprotos directive is not included, it defaults to 0 (no
        unprotos)

Added:  New directive "MaxUnprotos" to PMS.CFG. This specifies the
        maximum number of message headers that will be returned in
        response to an FBB "resync" request. The default is 100.
        Setting this to 0 disables the resync capability. Note that
        resync requests are ignored unless the TXOK flags for the PORT
        include the BBSBEACONS flag (8).

Added:  Controls for setting FbbUnprotos and MaxUnprotos via the BBS
        Admin HTTP interface.

Added   Logging to syslog.

Added   Live BBS activity logging to a console, allowing scrollback
        and capture, to remote sysop sesions, and to HTTP interface

Added   Live logging to console, remote sysop sessions, and HTTP
        interface.

Added:  Sysop command "LOG L[ive] [n]", where [n] specifies the
        subsystem(s) to display: 0=off, 1=BBS, 2=All. (unfinished)

Added:  At console, F6 key enables "Live Log" mode on that console.
        Normal console operation is suspended while in Live Log mode.
        Options are displayed on the menubar. Use Q[uit] to exit. 

Added:  L[og] [ A[ll] | B[bs] | O[ff] ] subcommand to MON[itor] cmd.

Added:  BBS "OLR" command to enable "Off Line Reader" mode. This is
        for automated mail programs such as Sally and Winpack. If the
        client sends the command "OLR" soon after connection, the
        session will switch to OLR mode, turning off colour and
        pagination, and ensuring a consistent machine-friendly mail
        header format. 

Added:  New or updated MAN files, to be placed in the XRouter's MAN
        subdirectory, overwriting any existing files of the same name.

Added:  New or updated BBS help files, to be placed in the HELP/PMS
        subdirectory, overwriting any existing files of the same name.

************************************************************************

        "XRouter - The Superior Solution"


Back to Main XRouter Page