Interfacing experiments with a PC

I am a Chemistry teacher in the Highlands of Scotland. Since I started teaching I have been interested in capturing the data from experiments by computer . This project was started almost 30 years ago by building circuits that could be connected to a BBC computer to read data (analogue voltages) output by experiments. The BBC had an analogue input port used for games controllers but was brilliant for linking to the varying voltages that could be produced by experiments. The BBC heritage of this project shows in the connector used and the voltages used joining the different modules to the interface box.

Interfaces were built to read light intensity, temperature, pH, position, conductivity, etc. A graphing program was written in BBC BASIC. But this has moved on. I am no programmer or electronics expert but this works for me. For years I have worked on this off and on for my own and my pupils benefit. I thought I should publish this on the internet in case it could be of use to others. If you do use it, it is at your own risk.

Hardware – Interfacing to a PC parallel port

After BBC computers fell out of fashion in Scottish Highland schools (or technology moved on) they were replaced by MacIntoshes. I never did any of this work on them. I kept some BBCs in a cupboard for years and dragged them out from time to time when doing interfacing experiments.

We did have one or two IBM PCs with ISA slots and I built a card based on an ADC0804 8-bit analog-to-digital converter IC and a Maplins prototyping card. I wrote the programs to read this using PASCAL.

I have stuck with the ADC0804. I found a brilliant article on a website It shows how to link the ADC0804 to a PC parallel port. This is what the interface described here is based on. The actual package looks like this –

The first attempt (still in use) was built using a power supply to drive it. The power is now taken from a USB port. This is probably breaking electronic rules but it works. The circuit used is

And a photo

Connection to analogue 15 pin port

The trimming variable resistor on the circuit board is adjusted to give a reference voltage of about 0.6 V but that can be altered as desired


The software moved from BBC Basic to PASCAL, to Windows Delphi, to Linux Kylix and now to Linux Lazarus, so it is still really a PASCAL program. I tried Gambas for a while – it has a really nice interface but I couldn’t access the ports.

I have 10 old PCs in my lab all running Zenwalk Linux and linked to a Dell Poweredge server running Slackware Linux. Each computer can run 3 pieces of software –

1. Laz_interface – reads and graphs data from the homemade parallel port interface as described above ppdev must be enabled. In Slackware based system like Zenwalk just enable it in /etc/rd.d/rc.modules. Enable permisions to the port. and from two other projects

2. Laz_balance – reads and graphs data from the serial port linked to an Adam Equipment ACB series digital balance

3. Laz_datameter – reads and graphs data from the serial port linked to a LogIT Datameter 1000

All my programs are rough but the last one Laz_datameter is in its infancy. In fact if you don’t have a Datameter connected it stops!!

Checkout my pupils blog to see this in practice. Chemistry blog. There are examples in the Chemistry 3 course and the Higher course round about June.