What is Kplex?
kplex is a multitransport software data multiplexer which runs on GNU/Linux, Mac OS X, FreeBSD, NetBSD and OpenWRT. It works with data which conform to the NMEA-0183 standard, but has been written without reference to any proprietary documentation not available in the public domain. Kplex multiplexes data inputs from sources such as serial lines, pseudo terminals and network interfaces and send to any (reasonable) number of outputs. kplex can perform filtering of inputs (so you only get the data you want, or don't get the data you don't want from a given source) and outputs (so you only send what you want where you want) and can perform fine-grained failover so that for any given type of data, you specify a priority order of the source you would like to take it from. For further details see the kplex overview.
kplex was last updated on 26th June 2016. See the CHANGELOG for details.
November 18th 2018
1.4rc2 is released today as source and debs for x84_64 and raspberry pi. This is mainly just a collection of accumulated bug fixes but for further details see the beta page. This version retains legacy init scripts for startup but an example systemd unit file is provided in /usr/share/kplex/kplex.service for those that wish to try it.
October 26th 2017
It's been a long time since the last version of kplex. Quite a few bugs have been fixed in the past year and 1.4 is on its way. Source for 1.4 beta is now available on the download page and in the 1.4 branch on github. Please try it out and send feedback.
deb packages are a little delayed while consideration is given as to how best to deal with legacy systems, i.e. separate packages for older pre-systemd versions of raspbian or attempting to support older and new systems with a single package. Suggestions welcome in the kplex google group.
June 26th 2016
1.3.4 is now available. This is a patch release fixing two bugs. One caused possible crashes or unpredictable behaviour when one of more "optional" interfaces failed on startup and the other could result in a "port" directve for a udp interface to be ignored.
May 7th 2016
1.3.3 is now available. This is a patch release fixing filtering which became broken with 1.3.1 and a potential crash when unusual interface types are configured on a system running kplex.
April 21st 2016
1.3.2 is now available. This release fixes bugs, especially in reconnection of persistent tcp connections, adds more debugging and makes connection to gpsd easier.
March 24th 2016
First release candidate for 1.3.2 is now available from the download page and github. This is a patch release but fixes some significant bugs in udp address selection and tcp reconnection code. It also adds gpsd support and additional debugging. Full details on the beta page.
October 23rd 2015
Want to replay data you've logged for testing purposes? There's an app for that.
But you'll have to compile it yourself:
September 29th 2015
1.3.1 is finally out. This is mainly a patch release and no changes have been made from the first beta.
August 25th 2015
Nuno Gonçalves has added kplex to the official OpenWRT package repository. In doing so he found a few bugs and suggested some build changes which have been bundled up into kplex 1.3.1. A beta version of the 1.3.1 source is available now from the download page. Alternatively it can be checked out from the "1.3.1" branch on github. A description of the changes in 1.3.1 can be found here.
In other news a new Quickstart page has been added to simplify getting kplex up and running with a basic configuraiton. The configuration page has become rather large and intimidating to take in at once. Feedback on the new page would be appreciated.
Lastly anyone interested in using Navionics "SonarChart Live" may be interested in a recent blog post on how to use kplex instead of one of Navionics's partner products to produce bathymetric maps from your sounder info.
April 15th 2015
Although little feedback has been received on the 1.3 beta, today it is being released as version 1.3. The most significant change is the introduction of the "udp" Interface type which subsumes the functionality of the existing "broadcast" and "multicast" interface types. The latter two are retained for the time being but will be removed at some point in the future. Releasing 1.3 facilitates moving to a "gitflow" workflow style with the github sources which has been suggested by users.
March 15th 2015
New 1.3 beta. Biggest news here is consolidation of "broadcast" and "multicast" udp interfaces into a new "udp" interface type which also implements unicast udp. Full details on the beta page. Any feedback on these changes greatly appreciated.
February 6th 2015
kplex 1.2 is released today and is available on the download page. Internal changes to file interfaces consolidate handling with other file types but should be invisible. As well as several bug fixes (see the CHANGELOG for details), this release allows specification of owner, group and permission on pseudo terminals and output files and supplements the existing ability to add a source TAG specifying the output interface from kplex with the ability (using "srctag=input") to add a src TAG denoting the interface on which a sentence was received by kplex.
In response to requests kplex is now available on github. I'm still working out how to use that, so suggestions, pointers and gentle criticism welcome.
January 29th 2015
New beta released today. There have been a few bug fixes and a couple of new features added since "beta2", as detailed on the beta page . If no more problems are discovered, this should form the basis for a new "1.2", to be released in early February.
December 10th 2014
1.2beta2 is released today fixing issues with the reconnection code asociated with the tcp "persist" option. If you are using the new "persist=fromstart" option, or if you are using bi-directional tcp client connections with "persist=yes", you should try this new beta.
December 2nd 2014
November 12th 2014
No problems reported with the beta release so today sees the release of 1.1.1. This is mostly a bug fix release but also sees the addition of the "persist=fromstart" option which will make a tcp interface re-try a connection even if it is not available when kplex starts. This should be of benefit to those whose Internet connection is not always available when kplex starts.
October 22nd 2014
Beta source code for kplex 1.1.1 is released today. This has no new features but fixes the known bugs in 1.1. Please try it out and let me know if it works. A new binary release should follow quickly if no problems are found with this.
September 9th 2014
A new google group has been created for discussing and asking questions on kplex. You can still email me questions but publicly posting them may help others with similar questions. You can find the new forum here.
June 4th 2014
kplex 1.1 is finally released. This is unchanged from the last beta which has been available for more than a month with no reported problems. Headline features are improved TAG block handline, much improved TCP persistence and experimental "GoFree" support for use with Navico's latest generation of "MultiFunctihere.
June 4th 2014
kplex 1.1 is finally released. This is unchanged from the last beta which has been available for more than a month with no reported problems. Headline features are improved TAG block handline, much improved TCP persistence and experimental "GoFree" support for use with Navico's latest generation of "MultiFunction Devices" (or chartplotters as some of us still call them). Please let me know of any bugs or of typos or ommissions in the documentation.
Thanks to everyone who contributed their suggestions and feedback.
Previous kplex news is archived here.