aa.net.uk Broadband - Broadband you can work with

Skip to Navigation / Skip to Content

Knowledge base Free software

Giving something back!

Andrews & Arnold Ltd make extensive use of open source software, including linux, asterisk and many others. We contribute in various ways (such as landline SMS app for asterisk). This page contains some free software. The software is free, you can assume a GNU licence. It is provided entirely as is and no liability is accepted at all. Any bug reports, ideas, etc, email support, but no promises. Basically, credit me/A&A and please don't sell it...

dataformat Simple functions to provide some basic data formatting including UK postcodes and phone numbers
image Simple gif/png generation library
datamatrix IEC16022 (Datamatrix) 2D Bar code generation library and command line
QR IEC18004 (QR) 2D Bar code generation library and command line
AXL Adrian's XML library - simple XML object manipulation library, includes loading/saving JSON versions.
sqllib Wrapper / library for mysql, including sql query formatting, functions for safe operation that exit if unexpected failure, and functions to access results of queries by named field rather than row[n].
OSTN02_OSGM02_GB.c OSTN02_OSGM02_GB.h OSTN02_OSGM02_GB reference data as C code from Ordnance Survey
ostn02.c ostn02.c Library to convert OSGB grid reference (easting/northing) to/from WGS84 lat/long (GPS co-ordinates). Link with above reference data and maths library.
cups-epilog.c CUPS backend for Epilog laser engraving machines (see below). info
evolis-raw.c Standalone command that takes images (ps or bmp) and generates a print file for an Evolis pebble, allowing colour, black and overlay images for each side to be defines separately. See --help for details.
matica.c Standalone command tool to talk to Matica XID9300 and similar printers, can load cards (including contact station), read and write mag stripe, and print. Expects raw image file for YMCKUYMCKU for two side, so needs an app to compose the card image data first.
zebra-print.c Standalone command line that images (ps or bmp) and sends to a Zebra ZXP printer. Allows colour, black, inhibit and UV images for each side to be defined separately. See --help for details.
tr069.cTR069 server, runs as a cgi from apache, uses AXL and SQLLIB.
galaxy.cReceives Galaxy alarm panel logs.
rmapi.cRoyal Mail Shipping API. rmapi.sql You may need to ask me on irc for details on building this.


Adrian's XML library (AXL) and SQLLIB are two libraries I use a lot in my code. AXL allows parsing and generating XML easily. SQLLIB is a wrapper for SQL (typically mysql) which provides some key wrappers (including generating correctly quoted SQL statements).

Epilog laser engraver

The Epilog laser engraver comes with a windows printer driver. This works well with Corel Draw, and that is about it. There are other windows applications, like inkscape, but these rasterise the image before sending to the windows printer driver, so there is no way to use them to vector cut!

The cups-epilog app is a cups backend, so build and link/copy to /usr/lib/cups/backend/epilog. It allows you to print postscript to the laser and both raster and cut. It works well with inkscape.

With this linux driver, vector cutting is recognised by any line or curve in 100% red (1.0 0.0 0.0 setrgbcolor).

Create printers using epilog://host/Legend/options where host is the hostname or IP of the epilog engraver. The options are as follows. This allows you to make a printer for each different type of material.

afAuto focus (0=no, 1=yes)
afoptimise vectors (0=no, 1=yes)
rResolution 75-1200
rsRaster speed 1-100
rpRaster power 0-100
vsVector speed 1-100
vpVector power 1-100
ovRe-order vectors to reduce time
vfVector frequency 10-5000
scPhotograph screen size in pizels, 0=threshold, +ve=line, -ve=spot, used in mono mode, default 8.
rmRaster mode mono/grey/colour

The mono raster mode uses a line or dot screen on any grey levels or colours. This can be controlled with the sc parameter. The default is 8, which makes a nice fine line screen on 600dpi engraving. At 600/1200 dpi, the image is also lightened to allow for the size of the laser point.

The grey raster mode maps the grey level to power level. The power level is scaled to the raster power setting (unlike the windows driver which is always 100% in 3D mode).

In colour mode, the primary and secondary colours are processed as separate passes, using the grey level of the colour as a power level. The power level is scaled to the raster power setting. Note that red is 100% red, and non 100% green and blue, etc, so 50% red, 0% green/blue is not counted as red, but counts as "grey". 100% red, and 50% green/blue counts as red, half power. This means you can make distinct raster areas of the page so that you do not waste time moving the head over blank space between them.

Voyager code

Using the source code provided under GPL by BT for the Voyager series routers, based on 3.03gpl, we have made a number of customisations. We have custom builds for both VOYAGER210_AA (single port ethernet ADSL router) and VOYAGER2110_AA (four port ethernet and wifi ADSl router). The latest issue includes the following changes from the based gpl code:-

  • Several slight changes to ensure reconnect after loss of sync or LCP termination.
  • Removal of 30 minute hold off on reconnect after authentication failure (BT special)
  • Simple AAISP branding
  • Automatic adding input filter to allow DNS servers to talk to router - to work around bug where DNS relay (used by DHCP client) did not work when firewall off
  • Addition of extra debug.html web page giving summary stats and line details and BER results. Used for test routers.