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.

Filename(s)Description
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
image.c image.h Simple image generation library - generates gif and indexed png files (with or without zlib). Used by iec16022 for PNG output.
reedsol.c reedsol.h Simple Reed/Solomon encoder, thanks to Cliff. Used by iec16022 for ECC200 generation.
iec16022ecc200.c iec16022ecc200.h Library to generate IEC 16022 barcodes using ECC200 (the even barcodes). info
iec16022.c IEC16022 codeGeneral purpose ISO IEC 16022 Data Matrix 2D barcode encoder. Currently only supports even sized (ECC200) codes, but offers auto sizing and encoding with output in text, binary, hex, eps, and png. Special mode for DumbStamp 32x32 postal marks which generates EPS with additional text/graphics.
cc -o iec16022 iec16022.c -DLIB image.c reedsol.c iec16022ecc200.c -lz -lpopt
barclays-pinsentry.c Simple application to work like a PINSentry using any smart card reader supported by pcsc-lite. We use cherry readers. Allows you to do the IDENTIFY, RESPOND, and SIGN functions as well as reading the card number. Ideal for scripting access to on-line banking.
voyager210V3.03cBT Voyager 210 V3.03c standard BT build. info
voyager210V3.03aa4BT Voyager 210 V3.03aa4 special A&A build with changes to better reconnect on loss of sync, and fix DNS relay when firewall off. May have to load 3.03c first.
voyager2110V3.03aa4BT Voyager 2110 V3.03aa4 special A&A build with changes to better reconnect on loss of sync, and fix DNS relay when firewall off.
voyager_toolchains.tgz [big file]Toolchains for Voyager, install in /opt/toolchains
voyager_aa.tgz [big file]Voyager source code, with A&A variations as detailed below

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.

Dumb Stamps

A major postage carrier, lets call them Loyal Mail, have a system, lets call DumbStamp*, and have DumbStamp software available for Windows only. This is a shame as it could so easily be integrated in to applications on windows, linux or mac if either the Loyal Mail would publish the specification or allow use of third party linux or command line tools. There is a linux application - we have written one. We will give it to Loyal Mail free! In addition to the program to buy the stamps (yes, you still pay for postage, this is not any sort of fraud), you need to print them. The IEC16022 application included here will print DumbStamps. Sorry, they asked us to remove the images from the site, but you get the idea.

*Yes, it is called something else, but we do not want to have any issue with trademarks being misused. Sadly, Loyal Mail feel that it would be costly to support other platforms, and seem to have no plans to publish the specification so as to allow 3rd party developers to make compatible integrated systems. Shame.

123ASP

Also, whilst DumbStamp on windows will happily claim to print some 13MB for a stamp on an envelope, this is an example of the postscript from iec16022 for a stamp, at less than 1.5K. Obviously much more efficient, especially when printing is done remotely.

%!PS-Adobe-3.0 EPSF-3.0%%Creator: IEC16022 barcode/stamp generator
%%BarcodeData: JGBA0PABCD1234 SAMPLE 00000003462450436004010000000000000000
%%BarcodeSize: 32x32
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Pages: 1
%%BoundingBox: 0 0 190 80
%%EndComments
%%Page: 1
110 dict begin/f{findfont exch scalefont setfont}bind def/rm/rmoveto load def
/m/moveto load def/rl/rlineto load def/l/lineto load def/cp/closepath load def
/c{dup stringwidth pop -2div 0 rmoveto show}bind defgsave 72 25.4 div dup scale
0 0 m 67 0 rl 0 28 rl -67 0 rl cp clip1 setgray fill 0 setgray 0.5 0 translate
0.3 setlinewidth32 32 1[2 0 0 2 0 -11]{<00000000 3A6B6B97 782A163A 174B47DD
643840FA 3EDD2DC1 626268FE 6C112EEF7D201444 1A7D71AB 4E4C4606 56E931BB 6FB46AEC
01AD0C5B 39FE4A0C 5555555500000000 58691ACD 017A0214 39DB603B 0ADE48F0 6DF72D29
683663F8 4B9D60CB5BAA3CD0 37E75361 67027FDA 637D14A1 51B0343A 5F87115F 3E764B56
55555555>}image3.25/Helvetica-Bold f 8 25.3 m(\2433.46)c2.6/Helvetica f 8
22.3 m(ABCD 1234)c1.5/Helvetica f 8 3.3 m(POST BY)c3.3/Helvetica f 8 0.25 m
(25.12.04)c21 0 m 41 0 rl 0 28 rl -41 0 rl cp fill37.7 0.3 m 24 0 rl 0 27.4 rl
-24 0 rl cp 1 setgray fill gsave21.3 0.3 16.4 27.4 rectclip newpath22.5
/Helvetica-Bold f 37.75 -1.25 m 90 rotate(SP)show grestore 0 setgray3.5
/Helvetica-Bold f 49.7 21.5 m(LOYAL MAIL)c2.3/Helvetica-Bold f 49.7 7 m
(POSTAGE PAID GB)c2.6/Helveica f 49.7 4.25 m(DumbStamp.co.uk)cend grestore

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.