Quozl's Open Source - Linux

Quozl works in outback Australia as a firmware and test engineer for a non-profit in Miami that makes laptops for children, and for a telescope as a night assistant and operations technician. When he's not doing that, he writes programs and makes electronic devices, and a few other things.

This site is where he publishes the stuff. Each item is given colour-coded categories of interest that may help you to find related items. It was never intended to be a blog, though it may look like one. It also has an RSS feed:

| top | all articles in one page | summary by date | summary by category |

Articles in Category Linux

Revalidating PIC 16F84 tools

PIC Microcontrollers Linux C Programming
Ye ol' doorbell was uncovered in a lab cleanup, and one wondered if it was still possible to program it after six years. Also, checking out the move from assembler to C.

(31 August 2013)

Desk Charger Timer

Linux Electronics
If you pay for the power at your desk, and your power is expensive, you learn the value of turning stuff off. Chargers for gadgets seem to multiply, and each adds a bit more to the bill.

Yet they don't actually need to be on all the time.

A quick hack is done to have a Python script turn on a bank of gadget chargers, and turn them off under automated control.

(5 February 2010)

IP over AX.25

Linux Electronics Radio
There's lots of stuff on the 'net for amateur radio operators who want to get into the transmission of internet packets (IP) over radio ... but it is widespread, occasionally conflicting, and often out of date.

Here's a quick attempt to bring things into the current century ... the task is to get a ping(8) between two computers using two handheld amateur radio transceivers.

(24 December 2009)

/dev/port to /dev/parport0

Linux C Programming Electronics
So you've got an old program using a parallel port on Linux, but it uses /dev/port or direct port access instead of /dev/parport0. Why worry? Because the old method doesn't let you use PCI or USB parallel ports.

Quozl had to fix it. Publishing it in case somebody needs it. Check out the change from k74.c to k74-ppdev.c in my repository.

(19 May 2009)

Kernel Patching to Fix Audio Socket Electrical Damage

Linux C Programming Electronics
Laptop speakers stopped working. Only the right channel of the headphones remains. But using a very old driver made the speakers work. Turns out electrical damage from an attached sound system broke the headphone detection. The operating system was faithfully turning off the amplifier. Software fix to the rescue ... Update: a remastered patch for alsa-driver-1.0.20.

(18 May 2009)

Telstra ZTE F165 HSDPA Mobile Phone on Linux

Quozl upgraded from a CDMA mobile phone to an HSDPA one, and plays with it on Linux. It has a USB interface, and bluetooth. Update: and now Ubuntu 9.04 recognises it.

(17 May 2009)

Copy In Place

Frustrated by not finding the right program to complete a partial copy of a file over NFS, Quozl writes something to do it.

(8 July 2008)

Xtank 1.3f for 800x600

Linux C Programming X-Windows Programming
Remember Xtank? Contributions are sought. Update 2017: see https://github.com/lidl/xtank

Quozl had packaged Xtank 1.3f for Debian GNU/Linux 3.0 (Woody) back in 2001, and for 3.1 (Sarge) in 2004, modified for 800x600 monitors. Now contributions are encouraged against the source repository ... there are a few opportunities to fix things ... the threading, the robot programs.

The 800x600 style 2004 binaries: add the following line to your /etc/apt/sources.list file:

deb http://quozl.linux.org.au/xtank ./

... and then

apt-get install xtank-north

(7 July 2008)

Human Interrupt Request Lines

Linux C Programming Electronics
As a software engineer, Quozl often sees himself as part of one great big system, in which he is a component subsystem, along with whatever computer he is using.

But in a reactive role, where most of the time is spent responding to one interrupt after another, one needs a way to service these human interrupts. Most people seem to do it with telephone ringers, text message alert tones, pagers, or popup windows. Focus stealing is annoying. Lose of concentration more so.

Hence the TCP/IP Distributed LED Mimic Panel, consisting of an array of eight LEDs driven from a parallel port that sits on the desk, and a set of spare computers around the house with displays that show a graphical version of the same panel.

(16 April 2008)

DVB-T on Linux in Australia

Social Linux
Quozl began watching television in the past few years, mainly because Doctor Who had returned ... the first "television" was a junk box VHS VCR attached to an LCD monitor via composite video, ... the second was a borrowed DVD+RW DVR to replace the VHS VCR, ... and the third just completed is a $AUD45 DVB-T PCI card in a Linux system acting as a video streaming server and digital recorder.

(27 December 2007)

One Laptop Per Child

Quozl has done some rural radio range and other testing for the One Laptop Per Child project.

(14 October 2007)

af-ping, an audio frequency ping

Linux Network Programming
For the radio range testing on the One Laptop Per Child project, Quozl added sound to Lars Strand's Python ping program

Now it makes a sound where the pitch is related to the time it takes for an ICMP Echo Request packet (ping) to be returned as an Echo Reply. By default, the pings are at about 20 times per second, set by the length of the sound samples. Such rapid feedback makes it easier to learn where wireless coverage is good, or bad.

It can also be used for reporting the health of an internet connection, using the --noflood option, but the output may be irregular because the PCM device is not being fed at the speed it desires.

(26 July 2007)

Maxon BP3-USB 3G Wireless Modem on Linux

Quozl is lent a 3G wireless modem by a manufacturer to check it out on Linux.

(9 January 2007)


Linux Network Programming
Update: new version released.

Quozl has written a graphical user interface for the PPTP Client project for which he is release engineer. Built using Glade and PHP-GTK, the program allows the configuration and management of PPTP tunnels.

(22 February 2006)

tcpxd - Another TCP/IP Generic Relay

Linux C Programming Network Programming
Update: now available as a darcs repository

Security update for tcpxd, version 1.4 fixes a vulnerability to crafted reverse DNS names.

Quozl had checked out netcat and numerous other TCP/IP relays, but none had all the features he needed, so he rolled his own. This one is optimised for minimal process count and maximum performance for X connections.

(20 February 2006)

apt-walkabout, a take-away APT cache

Update: now available as a darcs repository

Have you ever felt that no .deb should ever have to be downloaded more than once? apt-walkabout is an APT package cache on a pen drive, or any other removable media. apt-walkabout helps you to upgrade non-connected or low-speed linked Debian systems; be they yours or someone elses that you visit.

It's just a few shell scripts; but it's the idea that counts.

(25 October 2005)

LK450-AA and LK46W-A2 Keyboard Maps

Linux X-Windows Programming
In December 2000 Quozl wrote up how to use Digital Equipment Corporation LK450 or LK46W keyboards with Linux. The kernel has changed since then, but the keyboards still work.

for use with kernel 2.6.9 and later, with setkeycodes, which enables the keys otherwise not known by the kernel, for Intel Linux, for Alpha Linux. To use an xmodmap file, give it to the xmodmap program as the first argument. For example, add xmodmap lk450.xmodmap to your .xsession file.

Why bother? It lets Quozl run emacs in EDT emulation mode, allowing his source editing to follow hindbrain original programming, without having to learn new keystrokes just to get going.

(14 September 2005)

Outback Two-way Satellite on Linux

Quozl bravely tries a two-way satellite service on Linux.

(3 August 2005)

Alarm Clock

Electronics PIC Microcontrollers Linux
Quozl was sick of his old alarm clock and made a new one, easier to use, much more intelligent, but above all heaps of fun.

Update: a schematic diagram for the project.

(12 June 2005)

Music Compositions

Linux Social
Quozl's been having fun with qsynth, qjackctl, and rosegarden4, so he dusted off his musical composition skills and had a go at writing some atmospheric music.
(9 June 2005)

CDMA 1x RTT on Linux

Quozl bravely tries a CDMA modem on Linux.

(2 November 2004)

Distributed Compressloop

Linux C Programming
Quozl had some fun reworking Rusty's compressloop code to distribute the compression of Knoppix ISO images across a number of antique computers, since there wasn't anything faster available.

(17 July 2004)

Prepaid Accounting

Version 1.4 released 21st June 2004.

Quozl wrote a prepaid accounting system for the Gilgandra Community Technology Centre, which is used by the staff and the customers of the centre to track time spent. It uses the Linux system accounting files to generate usage transactions, stored in a plain text database. Based on PHP, the system also provides up to the minute account balances and accepts payments and charges.

(21 June 2004)

Netscape Communicator to Evolution Mail Conversion

Quozl recently had to convert someone's e-mail from Netscape Communicator to Evolution, but without losing anything. There were hundreds of folders. Evolution 1.4.5's import wizard did not recognise the nsmail directory, so rather than hundreds of file imports, a bash script was written.

(7 May 2004)


Electronics Linux
Quozl bought a couple of 100m USB BlueTooth dongles and tried them out, making a coverage map.
(8 February 2004)

Script-Friendly TCP/IP Server Tester

Linux C Programming Network Programming
Quozl wrote a tiny program that tests a TCP/IP service by attempting a connection and then reporting to standard output. No data transfer is done. It is intended for use in scripts for testing availability of critical services, as it generates an easily parsable output along with meaningful status codes.

(12 October 2003)

Netrek Vanilla Server 2.9pl8 Released

Linux C Programming Network Programming
Quozl released version 2.9pl8 of the Netrek Vanilla Server. This release pulls together changes made by the team during the previous league seasons, and is the first release since April 2001. Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek.

(6 December 2002)

Temperature Sensor

PIC Microcontrollers Electronics Linux
Quozl has developed a temperature sensor circuit for computers to monitor temperatures, but with sufficient intelligence on the circuit so that it can be used with any computer that had a serial port.

Update: released source code for the microcontroller program under the GNU Public License.

(13 January 2002)

Kitsrus Telephone Call Logger

Linux C Programming Electronics
Two Linux or UNIX programs for the Telephone Call Logger kit 164 sold by Kitsrus. Includes a logging daemon (k164d) for unattended use, and a GTK+ based GUI (k164).

(16 December 2001)

GTK+ Focus Watch

Linux C Programming X-Windows Programming
Asks your X server which window you are using and uses the information to charge your labour to different time tracking tasks. Useful for people who want to figure out which windows they are spending their time in, or those who need to fill out a timesheet to get paid.

Stable release 1.0, two years after initial development release.

(26 November 2001)

Linux Speedometer, Odometer, and Trip Computer

PIC Microcontrollers Electronics Linux C Programming
Implemented on a 386/25 8Mb DECpc laptop, this Linux application attaches to a PIC 16F84 microcontroller which is then attached to a vehicle speed sensor. The program displays current speed, distance travelled, and allows the marking of waypoints and the calculation of distance to the next town.

Update: adjustments for higher sampling rates, and a schematic contributed by a reader.

(19 October 2001)

Issues List

Version 1.0 released 4th September 2001.

Quozl wrote an issue tracking system for the Gilgandra Community Technology Centre, which is used by the staff and the technical volunteers to track technical issues. Uses PHP and a plain text database.

(4 September 2001)

Netrek Vanilla Server 2.9pl7 Released

Linux C Programming Network Programming
Quozl released version 2.9pl7 of the Netrek Vanilla Server. This release pulls together changes made by the team during the previous league seasons, and is the first release since June 2000. Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek.

(23 April 2001)

Avoiding Microsoft Systems

Linux Network Programming
Quozl went to the DECUS Symposium in Sydney during March 2001. Dan Shearer was on the schedule to present a provocatively titled paper "Avoiding Microsoft Systems with Enterprise-Scale Free Software". However, Dan was unwell and could not attend. There were a few people who turned up anyway, so Quozl decided to write and present a paper of the same title for the next day of the conference.

(3 April 2001)

Emu Fat Monitor

PIC Microcontrollers Electronics Linux Social
The outback emu farm up the road had a dodgy freezer. Quozl used his temperature sensor for remote monitoring, using a pair of decrepid modems as lightning protection. Read all about it.

(3 March 2001)

Linux PIC Programming

PIC Microcontrollers Linux
Modifications to the Prog84 package to support 24C65 serial EEPROMs, and the various David Tait style programming boards.

(11 December 2000)


Quozl is looking for a few things. Maybe you can help? Have a read through the list of outstanding requests.

(10 December 2000)

Linux Halt Beep

Linux C Programming
Quozl had an old 486/100 that was shutdown daily, but it normally had no monitor attached. He needed a way to tell that it was ready to be powered down. This patch against 2.2.12 adds a small fragment of code to generate a descending tone sequence just after the "Power down" message.

(The function kd_mksound() from drivers/char/vt.c was used. This function starts the tone generation and normally schedules a timer to turn it off. Since the timers do not run at this point, the duration of the tones had to be set using msleep() macro calls.)

Since writing this, Quozl has been told that it could have been done in a process executed after the disks are unmounted. Oh well. Not half as much fun! Here's how, on Debian ...

  1. create a file /etc/init.d/beep containing the sound effect, for example:

    echo -n "\007" > /dev/console
    sleep 1
    echo -n "\007" > /dev/console
    sleep 1
    echo -n "\007" > /dev/console

  2. link it to the run level 0 so that it executes on shutdown

    # cd /etc/rc0.d
    # ln -s ../init.d/beep S85beep
Got too many machines shutting down? Consider the Debian package morse, which will let you emit a morse code signal identifying the machine.

(14 November 2000)

Videopad Base Station Protocol Daemon

Electronics Linux C Programming Network Programming
Quozl is releasing under the GNU Public License code that he wrote to interface a Linux system to a Granite Communications Base Station BS5, an exotic device that talks over radio to a Videopad VP5 hand-held LCD keypad terminal.

(11 July 1999)

Netrek Vanilla Server Administration GUI

Linux C Programming X-Windows Programming Network Programming
Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek. One of his contributions to this project is gum, a GUI front end to the server configuration files. It was implemented using GLADE on GTK.

(1 February 1999)