Email Address:

Lost your password?

This is the legacy website; please use the new website.

Circuit Notebook

Interesting circuit ideas which we have checked but not built and tested. Contributions from readers are welcome and will be paid for at standard rates.

Low coolant alarm for Falcon EF & EL

Many vehicles have some sort of coolant high-temperature warning gauge or lamp. However, a water level switch is the best detector of sudden coolant loss, if catastrophic engine damage is to be avoided.

Ford Falcon GLi EF and EL models have provision for installation of a low-coolant sensor in the surge tank. The Fairmont and Fairlane, which have the sensor as standard, operate an instrument panel warning light via the instrumentation computer. However, to retrofit this to other models, a simple electronic interface is required.

Click for larger image

The proprietary Ford magnetic level switch (Fig.2) measures 180Ω at correct (high) water level and 1380Ω at low water. These resistances are too high to operate typical automobile 85Ω relay coils, which draw about 150mA at 13.8V DC.

To solve this problem, a simple transistor circuit can be used to buffer the output from the level switch, as shown in Fig.1.

D1 ensures that the circuit does not prematurely trigger with high battery voltages, while LED1 provides low water indication. The latter should be sufficiently bright under most daylight conditions. Q1 & Q2 can be any general-purpose small-signal switching transistors.

Modern vehicles perform a self-check of the warning lights when the ignition is first switched on. Ideally, a fail-safe test of the water level circuit should also occur but in this case, the magnetic switch is always closed. That’s the reason for pushbutton "test" switch S2 – it turns Q1, Q2 and LED 1 on when pressed to show that the circuit is working. It’s not fail-safe but satisfactory if you remember to occasionally press the switch.

All components except the LED and S2 can be built on a tag strip, which can then be mounted behind the clock panel. The panel facia is drilled to take a suitable rubber grommet or bezel to accommodate the LED. The circuit operates from 10-15V, which is taken from the fused side of the ignition circuit.

The Ford sensor kit includes an "O" ring seal and locking nut. Before removing the proprietary electrical connector, thoroughly test the sensor and circuit by moving the float up and down. This is important, as Ford will not refund a damaged or modified unit!

Obviously, the surge tank has to be drained below the threaded mounting point and a hole cut through this existing mount with a hole saw. Take care not to damage the threads. Retrieve all swarf to prevent pipe blockages. Refill with correct coolant and check for leaks under normal engine working conditions.

Warning: header and surge tanks operate at pressures in excess of 100kpa (15psi) and up to 125°C using 33% Glycol coolant!

Robert Gott,

Toowoomba, Qld. ($30)

One-second darkroom ticker

Click for larger image

An audible 1-second ticker is easier to use in the darkroom than a visible clock. It enables the photographer to watch what he or she is doing when making test strips or the final print, rather than watching the clock. This device provides those ticks and is easily constructed.

Begin by extracting the circuit board from a discarded quartz clock and disconnect the coil. The accompanying circuit shown at left can then be connected to the coil pads.

The coil outputs are normally "high", pulsing "low" for 30ms every two seconds in an alternate fashion. The two diodes (D1 & D2) perform an "OR" function, pulling the base of Q1 low briefly once every second. Each low pulse switches Q1 off and Q2 on, briefly sounding the piezo buzzer.

And there’s your 1-second tick-er!

A. J. Lowe,
Bardon, Qld. ($30)

Simpler PC power-up

Here is an even simpler alternative to the auto power-up of ATX PCs mentioned in the June 2004 issue; it requires no parts at all!
In ATX PCs, the motherboard controls the power supply by switching the "PS_ON" signal high (+5V) to enter standby mode or low (0V) for normal operation. The "PS_ON" signal appears on pin 14 of the motherboard’s power supply connector, as shown on the accompanying diagram.

Click for larger image

To prevent the power supply from entering standby mode, the "PS_ON" signal can be strapped permanently low. This can be achieved by cutting the track leading to pin 14 of the connector on the motherboard. A wire link can then be soldered between pin 14 and pin 15 ("COM") of the connector.

If you don’t want to modify your motherboard, you may be able to remove the respective pin from the rear of the power supply connector housing and splice it into one of the "COM" return wires.

Obviously, this will disable standby functionality completely, including front-panel power button control. This is great for auto power-up of servers on resumption of power after a UPS low-battery shutdown. I have my file server in the roof at home and this saves getting the ladder out after the all too frequent power failures.

Before getting the tools out, it pays to check that your motherboard does not already have provision for automatic power-up when mains power is applied. This might be in the form of a jumper or settings in the BIOS, as detailed in "Mailbag" on page 4 of the September 2004 issue.

Tarek Heiland,
via e-mail. ($20)

Micro timer with LED readout

This circuit measures short duration events ranging from 10µs to 655ms, in 10µs increments. It has two logic-level (TTL) inputs that can be used to measure the high or low time of a pulse, or the time difference between two pulses.

Applications include measuring the execution time of a microcontroller program, the time difference between output signals in a circuit, or the changeover time in switches & relays. It is particularly useful for measuring one-off events that can be difficult to catch on a scope.

The circuit uses three 7-segment common-cathode LED displays for the readout. Two individual LEDs indicate whether the reading is in microseconds or milliseconds, with the software automatically selecting the correct range.

The circuit requires +5V at approx. 25mA in standby and 100mA with all 18 segments turned on. In many cases, this can be sourced from the circuit under test.

A PICAXE microcontroller measures the length of high-going pulses applied to pin 11. This pin is driven by the output of a 74LS86 XOR gate (IC2a). Two 74LS04 inverters (IC1a & IC1f) feed the XOR gate and act as buffers for the two inputs. Additionally, one of the inputs had a second inverter that can be switched in or out of the circuit with S2.

Click for larger image

Timing starts as soon as the signals applied to the two inputs differ, generating a high-going pulse on pin 11 of the micro. When both inputs again match, timing stops and the pulse length is displayed. Timing is also terminated if the pulse width exceeds the maximum measurement period (0.65s).

When only one input is required, the signal should be applied to input 2 and input 1 grounded. LED3 indicates the state of the signal on the PICAXE input. Prior to the measurement, it should be off. If not, toggle switch S2 to invert the signal. The switch therefore allows the measurement of both high and low-going pulses.

Referring now to the program listing, the PICAXE pulsin command is used to measure the pulse high time, which is stored in the variable word w5. This part of the program loops until a value greater than zero is detected.

Measurement is in 10µs steps, so when the number 1 is returned, it corresponds to a time of 10µs. Be aware that a 43µs pulse will be read as a 4 and displayed as 40µs. This loss of precision only occurs in measurements under 1ms. Measurements over 1ms are correct.

When a pulse is detected, w5 is tested to see if it is greater than 99 (990µs). If not, simple division splits the first 2 digits into b1 and b2. The "µs" indicator (LED2) is then turned on by setting pin 13 (portc 2) low.

If the value is greater than 99, the software jumps to the "ms:" section. First, the "ms" indicator (LED1) is turned on by setting pin 13 (portc 2) high. Next, a check is made to see if w5 is less than 99ms. If so, there must be a decimal place, so the decimal point is turned on (portc 3). Division of the returned value occurs, with the results in b1, b2 and b3.

If w5 is greater that 99ms, then the "high_ms:" routine is executed. The value in w5 is divided by 1000, placed in b0, and the first two digits divided into b1 and b2. To get the third digit, b0 is multiplied by 1000 and placed in w4. Again, the results are returned in variables b1-b3.

Finally, the results from the "decode:", "ms:" or "high_ms:" sections are displayed on the readout by the "display:" routine. This part of the program loops back on itself, so that the last measurement is held on the display until the reset switch (S1) is pressed.

Seven of the PICAXE-18X’s dedicated output pins (out1 - out7) are used to drive the segments in each of the displays via 150Ω current-limiting resistors. The value for each digit is stored in the variables b1, b2 & b3, as described above. Using the lookup command, the program converts these values into a binary pattern needed to illuminate the correct segments. The result is then written to the output port using the pins command.

As the anode pins of all three displays share the same seven output lines, a multiplexing technique is used to sequentially enable each display for 3-5ms at a time. This is achieved in the circuit by turning on transistors Q1, Q2 & Q3 in turn, grounding the common-cathode pins of the displays. Three portc output pins drive the transistors via 1.8kΩ biasing resistors.

A secondary use for this circuit and software is as the basis for any project where 7-segment readouts need to be driven by a PICAXE. This is achieved simply by omitting the input circuit and indicator LEDs. Also, delete the program lines prior to the "display:" routine.

In its present form, the "display:" routine will drive three 7-segment displays, though a fourth is easily added.

Brett Cupitt
Ashfield, NSW. ($60)

'Pulse length measurement and display for PICAXE-28X

'Registers,b10,b11 (w5) = pulse length

'b5 = 7 segment display, segment config data

'b0 = temporary/working register

'b1-b4 = digits to be displayed; b1=MSB, b3=LSB


let w5=0 'clear w5 value

measure: 'pulse length measure routine

pulsin 0,1,w5 'read pulse length on input 0 into w5

if w5>0 then decode: 'if we have a reading, process it

goto measure: 'loop if no value

decode: 'are we measuring us or ms

if w5>99 then ms: 'if its a value in ms, go to ms section

low portc 2 'OK, its a value in us, turn us LED on

let b1=w5/10 'MSB

let b2=w5//10 '2nd digit

let b3=0 'LSB

goto display: 'now display it


high portc 2 'turn ms LED on

if w5>9999 then high_ms 'is it a big or little number?

high portc 3 'decimal point on

let b0=w5/100 'get the 1st 2 digits

let b1=b0/10 'MSB

let b2=b0//10 '2nd

let b3=w5//100/10 'LSB

goto display: 'now display it


let b0=w5/1000 'get 1st 2 digits

let b1=b0/10 'get MSB

let b2=b0//10 'get 2nd digit

let w4=b0*1000 'calculate the 1000’s

let w4=w5-w4 'take these away from the total

let b3=w4/100 'the hundreds are left, get the MSB

display: 'start of data display routine

lookup b3,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5

low portc 6 'turn off MSB

let pins=b5 'output 7 segment display sequence

high portc 4 'turn on LSB

pause 6 'hold for 6ms

lookup b2,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5

low portc 4 'clear LSB

let pins=b5 'output 7 segment display sequence

high portc 5 'turn on 2nd digit

pause 4 'hold for 4ms

lookup b1,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5

low portc 5 'turn off 2nd digit

if b1=0 then display: 'blank leading zeroes

let pins=b5 'output 7 segment display sequence

high portc 6 'turn on MSB

pause 4 'hold for 4ms

goto display: 'cycle

(Also available as a zip file at the bottom of the article)

Water pump monitor

This circuit is designed to stop a fresh water pump from running too long. When you live on the land, your water supply is stored in tanks and you tend to be more vigilant about water use. If, for example, a pipe ruptures or a tap is left open, loss of pressure in the line will cause the pump to start. If the owner does not know this or is away, then the pump could empty a full tank within a short time.

The project was conceived when a water pipe burst while I was away for the weekend. Luckily, a neighbour noticed the water spout and shut the pump off. If the tank had emptied that would have been bad enough but the cost of a burnt-out pump would have been much worse.

Another use is as a timer for watering the garden. Pick a time and turn on the tap. This unit will shut off the pump and sound an alarm at the end of the selected time. Perhaps you have teenagers that like to take long showers. Set the time to 10 minutes and watch them complain!

Five different times are available and these can be altered to suit your needs by editing the microcontroller program. To reset the pump after a time out, simply press the reset button for two seconds.

Click for larger image

The circuit works by detecting the vibrations from the pump while it is running. When the pump starts, a timer is started and after the set time has elapsed the pump will be shut off and an alarm sounded.

If the pump you have is quite powerful, pressure in the line can build up high enough to stop the pump. If a tap is still open, the pump will start again when the pressure drops. The software takes all this into consideration and is not fooled by the pump switching on and off. The pump must be off for more than 20 seconds for the program to reset the timer and think that the tap has been closed.

A PICAXE-08 microcontroller runs the whole show. It knows the pump is running because a piezo sensor is physically mounted on the pump. Motor vibrations excite the piezo sensor, generating a small AC voltage across its terminals. This signal is amplified by op amp IC2a, which is set for a gain of about 85. From here, the signal is rectified by a diode pump circuit and then compared with the voltage on the wiper of VR1 by op amp IC2b. When the voltage on pin 5 exceeds that on pin 6, the output of the op amp swings high, turning on Q3. This turns on the LED and pulls pin 3 of the micro (IC1) to a logic low level via D4.

Next, the micro reads the voltage on pin 6 as selected by S1. As this pin is an ADC (analog-to-digital converter) input, the voltage read will vary according to the position of the switch.

The result is used by the program to select one of five times from a look-up table stored in memory.

The pump "run" timer now starts and if the signal on pin 3 remains low (pump on) for longer than the selected time period, the micro drives pin 7 high to switch on Q2, sounding the alarm. More importantly, it also drives pin 5 high, switching on Q1 and energising the relay, which in turn opens the normally-closed contacts to disconnect the pump motor.

To reset the pump, just press the reset button (S2). The pump will now start again because there will be no pressure in the line. Once pressure has built up again the pump will stop, assuming you have turned off the offending tap or fixed the fault with the lines.

The five selectable times are determined by the number stored in the "time" variable. Each unit equals one second. For example, to set a time of 30 minutes, the number 1800 would be used. As it stands, the program has been set for 90, 45, 30, 20 and 15 minutes.

When mounting the piezo sensor, make sure that it is physically touching the pump. Most pumps have removable end plates. The disc can be inserted between the end plate and the pump body.

Any single-plate piezo transducer can be used for the job. Many piezo transducers come with a plastic surround. Remove the disc by prising it out of the surround before mounting. Oatley Electronics sells discs that are ideal for this application.

Jeff Monegal,
North Maclean, Qld.

' Water Pump Controller v1.00



symbol cntr = b2

symbol time = w0

symbol pump = 2

symbol bell = 0

symbol reset = pin3


low pump 'make sure pump is enabled

cntr = 0 'clear the "pump off time" counter


if pin4 = 0 then run 'if pin 4 goes low the pump is running

goto main_lp


pause 2000 'debounce the pump for 2 seconds

if pin4 = 1 then main_lp 'if pin4 = 1 then false start

gosub read_time 'read the "time set switch"


time = time - 1

if time = 0 then alarm

if pin4 = 1 then is_pump_stopped 'pump off for > 20 secs?

cntr = 0

goto all_ok


pause 100 'pump debounce delay

if pin4 = 0 then all_ok 'if pump still on the continue

cntr = cntr + 1 'count seconds pump is off

if cntr = 20 then begin 'if > 20 secs put system in standby


pause 1000

goto time_loop


high pump 'disable the pump


pulsout bell,50 'sound the buzzer

pause 300

pulsout bell,50 'sound the buzzer again

if reset = 0 then begin 'if reset switch pressed, reset system

pause 3000

goto loop

'This routine looks at the select time switch (S1)

'and loads required value into "time" variable


readadc 1,b0

if b0 > 30 then four

time = 5400



if b0 > 55 then three

time = 2700



if b0 > 83 then two

time = 1800



if b0 > 110 then one

time = 1200



time = 900


(Also available as a zip file at the bottom of the article)

Reducing the effective mains voltage

Would you like to use a particular power transformer in an amplifier or some other project you’re building but its secondary voltage is just a little too high? Or perhaps you have an imported piece of equipment with a power transformer rated for a mains voltage of 220V, so it gets too hot and bothered running from 240V? It’s easy to solve these and similar problems by using a standard off-the-shelf low voltage transformer as a DIY autotransformer, to reduce the effective mains voltage fed to your equipment.

The idea is to connect some or all of the secondary winding of the extra transformer in series with the mains voltage fed to your equipment, with its polarity chosen so that its voltage subtracts from the 240V input (see circuit A). Here a standard transformer with a 12V-0-12V secondary winding is connected with the full secondary in series with the active output lead, so the effective output voltage becomes 240V - 24V, or 216V. This exact arrangement would be fine for any application where you need to reduce the mains voltage for equipment by about 10%, to make its power transformer run cooler or to bring its secondary voltage down so your power supply electros can be run within their ratings.

Click for larger image

Of course, if you don’t need to reduce the mains voltage by a full 10%, you could use only half the secondary winding connected in series with the active output lead. This will give an output voltage of 240V - 12V, or 228V (a reduction of 5%). Or you could use a transformer with a multi-tapped secondary voltage, which would allow you to reduce the output voltage in steps of 1.5V or 3V.

When you’re choosing the transformer for this kind of use, make sure that its secondary winding is rated to handle the full-load primary current of the main power transformer in the equipment it’s to be used with. So if your amplifier has a 300VA power transformer, for example, its full-load primary current will be around 1.25A (300/240V). In this case, you’d pick a mains-reduction transformer with a secondary winding rated to handle 1.5A or 2A and with a voltage equal (or close) to the mains voltage reduction you want.

Can you use the same kind of transformer to step up the effective mains voltage by 10% or so? Yes, simply by connecting its secondary winding (or a part of it) in series with the active mains lead with its polarity reversed, so the secondary voltage adds to the output instead of subtracting. This is illustrated in circuit B, where the same transformer is connected with half its secondary in series, to add 12V to the mains input and deliver an output of 252V.

Note that because both of these circuit configurations use the additional transformer as an autotransformer, they do not provide any isolation. For safety reasons, fit the transformer in a sturdy metal box, and connect both the box and the transformer frame to mains earth.


The following downloads are available for this article:

Share this Article: 

Privacy Policy  |  Advertise  |  Contact Us

Copyright © 1996-2021 Silicon Chip Publications Pty Ltd All Rights Reserved