Converting Digital Watch into a Timer Stopwatch for Projects

Pictured below are the inner workings of a cheap digital watch which has been modified to enable remote operation of the buttons so it can be used for automatic stopwatch timing.

Modified digital watch used as stopwatch with remote buttons or relay control

This particular watch had a broken backlight and broken strap, but it had always kept very good time. Therefore it was a perfect candidate to be re-purposed.

The watch had rubber button tops integrated into the watch case. When the workings are removed from the case, the buttons themselves are exposed. They comprise a thin strip of metal separated from a metal pad on the watch PCB. When the rubber button top is pressed down, the metal strip makes contact with the metal pad making an electrical connection.

Inside look at a digital watch button

All of the metal strips are connected to the watch battery ground, so the watch detects button presses by waiting for 0V to appear on one of the metal pads (which are electrically connected to the microcontroller inside the watch).

We soldered wires to the three metal pads of the buttons we wanted to control, and a ground wire to one of the commonly connected metal strips. Shorting the end of this ground wire to the end of any of the other wires causes the relevant button operation to take place.

relay board to control a stopwatch for timing arduino projectsWe next made the above pictured board. We put three tactile switches on the board and wired them up so that when pressed, they would short a mode button input to ground. These tact switches make it much easier to interact with the wired-up watch manually.

Then we added a small 5V coil relay and connected its NO and COM pins to the Start/Stop button connection and to ground for the watch. When the relay is energised (closed) it will simulate the Start/Stop button of the watch being held down.

The final component is an Arduino Pro Mini in a socket. This board will be used to calibrate the internal clocks of Arduino Pro Mini clones as their crystals are not accurate enough for some of the projects we build.

(Note that we are powering this board with 12VDC for convenience as that is the voltage we use for all of our testing rigs with a bench power supply, but for a one off it would have been 5VDC powered – 4 AA cells for example.)

Controlling the Stopwatch via Arduino and Calibrating the Arduino’s Internal Clock

 digitalWrite(relay, HIGH);
 delay(50);
 digitalWrite(relay, LOW);

The Arduino code above is used to briefly energise the relay which starts and stops the stopwatch. We used a 50 millisecond delay so that the relay has time to energise (physically close its internal contacts) and button presses of under 20 milliseconds were ignored by this watch. When someone presses a button, they typically keep it held down for from 30-70 milliseconds, so we replicated that.

To roughly measure how long is 10 seconds for the Arduino, we used the following code:

digitalWrite(relay, HIGH);
delay(50);
digitalWrite(relay, LOW);

delay(10000);

digitalWrite(relay, HIGH);
delay(50);
digitalWrite(relay, LOW);

It starts the stopwatch, waits 10,000 milliseconds, and then stops the stopwatch. If the Arduino is accurate, the stopwatch will stop with 10.00 seconds displayed. In a few quick runs we got 10.03, 10.07, 10.06, 10.06, 10.03, 10.03, and 10.06 seconds. This seems to show that this particular Arduino Pro Mini was running a little slow (it could also be that it takes longer for the relay to energise than de-energise which could be significant when only timing 10 seconds).

The delay() function is not accurate in general since we do not know how long the loop execution time is. Instead for accurate time testing we use millis().
Replacing delay(10000); with the following:

unsigned long startTime = millis();
do{
  delay(1);
} while (startTime + 10000> millis());

we got 10.00, 10.00, 10.00, 10.00, 10.00, 10.00, and 10.00 seconds on the stopclock in initial testing.

For calibration we test for a minimum of 8 hours, but sometimes 12 or 24 hours. The longer the test, the greater the accuracy of the results and therefore the better we can calibrate the Arduino’s internal clock.

There are 28800000 milliseconds in 8 hours for example. So we’d modify the code above to have while(startTime + 28800000 > millis()); . After 8 hours, the stopwatch will show a time. We found that that this Arduino Pro Mini was running 4 seconds slow….so after 8 hours the clock showed 8h 00m 04s.
There are 28,000 seconds in 8 hours, so the error in the Arduino clock is
1 – 28,000/28004 = 0.0001428 = 0.01428%.
We can save this percentage error in memory on this Arduino Pro Mini and take it into account when using it in timing applications. If we want to use this Pro Mini to time 5 hours accurately, we’d run the timer for 5 hours minus 0.01428% of 5 hours.

Modified Spot Welder Timer from 555 Circuit

555 timer for weldingPictured above is a standard circuit design for controlling a spot welder for use in building battery packs and other applications. The welder is 12VDC powered from a large battery, and the 555 timer circuit controls the duration of the brief (sub one second) pulse of high current required to perform the spot welds.

We sell a selection of programmable timers with displays which are much simpler to use and set up than a 555 timer circuit with just a potentiometer used to set the current pulse duration. One of these user programmable options is our dual pulse welder timer controllerhttp://www.reuk.co.uk/wordpress/dual-pulse-spot-welder-timer-controller/ . A dual pulse when spot welding gives much better results, but requires a complicated circuit and many components to achieve using a 555 timer.

Therefore we put together the following controller which can work with the output side of a standard 555 spot welding circuit to give much better control and dual pulse capability for customers who already have an array of power MOSFETS set up to supply current to their 12V welding apparatus.

modified welder timer circuit based around old 555 timer circuitry, but giving dual pulse capability

The duration of the first pulse, pause, and second pulse can each be set by the user from 0.01 to 1.99 seconds duration with 0.01 second resolution facilitating consistent welds which can be reproduced again and again.

If you need any kind of spot welding timer controller, please email neil@reuk.co.uk with details of your requirements.

PPC 1500 Target Shooting Timer

PPC 1500 target shooting timer controller relay

Pictured above is a timer we recently built to control the start and finish horn for PPC 1500 shooting competitions.

In competition a button is pressed followed by a 3 second delay. Then the timer begins counting down from 8 secs,12 secs, 20 secs, 35 secs, 90 secs, or 165 secs with a horn sounding for 0.75 seconds as the timer starts, and again for 0.5 seconds after the timer has finished.

The user can select the timing option using the on board button, an external button, or using a remote control switch.

The on board display shows the current setting while the timer is not running, and then shows the countdown ticking down while it is running. The start button can also be used to stop the timer when it is running to reset the system.

A second button enables the user to sound the horn at any time while the button is being pressed.

If you need any time of timer controller, please email neil@reuk.co.uk with details of your specific requirements.

Formula 1 Race Starting Lighting Timer

formula 1 racing timerPictured above is a timer we recently built for a customer which will be used in a Formula 1 style race start lighting gantry. This gantry will be fitted at the top of a slope with toy cars held by a small gate latched up by a small solenoid with a spring loaded core. When the race is to start, the solenoid is energised which drops the gate allowing the cars to roll down the slope in their race.

In the photograph, five red LEDs are temporarily attached to the timer board for testing, but these will be mounted into the gantry across the track when it is finished.

When the user presses the button, the LEDs follow the standard F1 race start sequence – each red LED turns on in sequence with a one second interval. As each LED turns on, an on board piezo buzzer briefly pips. Then, when all five LEDs are illuminated, there is a random time interval of between 1 and 3 seconds before all the LEDs are turned off.

formula 1 race starting gantryThe lights turning off indicates that the race is to start. The buzzer sounds for 1 second, while the on board relay energises for 1 second to energise the solenoid and start the race.

If you need any kind of bespoke timer or controller, please email neil@reuk.co.uk with details of your requirements.

Dual Pulse Spot Welder Timer Controller

Pictured below is our popular 12VDC dual pulse spot welder timer controller which we designed, build, and sell.dual pulse spot welder controller

Spot welding (resistance spot welding – RSW) is used to join metal surfaces by passing a large electric current through them. Because of the heat generated by the resistance to the electric current, the contacting metals melt together forming a weld at the spot through which the current is passing.

In order to get good clean reliable welds and not to burn holes through the metal, it is essential that the pulse of electric current is of a suitable duration which depends on the types and thicknesses of the metals to be welded as well as many other factors. Therefore an accurate timer controller is required for consistent welds.

For the best spot welds, a dual pulse controller is used in which the electric current flows for a time (pre-weld), then there is a brief pause, and then electric current flows again (welding). The first pulse clears away any plating or surface oxidation, and then the second pulse welds the now clean base materials together. Using a dual pulse welder also reduces spitting.

REUK Dual Pulse Spot Welder Controller

Our controller offers two modes of operation: single pulse mode and dual/double pulse mode. Pictured below is a view of the built in OLED display when in dual pulse mode.

dual pulse spot welder display

The user can set the durations of Pulse 1, the pause time, and Pulse 2 in 0.01 second steps between 0.01 and 1.99 seconds.

single pulse operation of spot welder

In single pulse mode, the duration of just one pulse has to be set by the user. (A future update of this device will probably include up to 10 user-programmable presets for increased convenience.)

setting spot welder pulse duration

On board buttons are provided for toggling between the single and double pulse modes, entering programming mode to set the timings, and making a spot weld with the displayed settings. Screw in terminals are provided so that external buttons can be connected – for example a foot pedal to make a weld with your hands free.

This version of the welder controller is fitted with a 10A relay which can be used to power a < 5A rated solenoid which in turn switches the welder.

Buy a Welder Timer Controller for Your Relay

For any type of welder timer controller, please email neil@reuk.co.uk with details of any special requirements. Our controller as described above is available at £21.95 plus postage.

If you require a timer which will be switching more than 10 Amps of current for your welding setup, then we also make the alternative devices pictured below which have a 1 Amp 12V output for connection to your own solid state relay (SSR) or mechanical relay. These are available for £19.95 plus postage – no relay included. Click here for a source of solid state relays.

reuk dual pulse welder timer controller for solid state relay

dual pulse welder timer with solid state relay (ssr)

If you require a bespoke device which pulses the welder with very brief times and higher time resolution – e.g. 0.001s – 1.999s instead of 0.01-1.99s – we can modify the above photographed timer controller…but only for use with a solid state relay (since SSRs can switch in 1ms (0.001s) rather than the 10’s of milliseconds it can potentially take a mechanical relay to switch). Contact us with details of your specific requirements for a quotation.

Dual Pulse Spot Welder Timer Instructions

There are two buttons on the controller. If you press the ‘down’ button, you can toggle between single pulse and dual/double pulse operation. The display will change to show which mode you are in: SINGLE or DBL (double) as well as showing the durations currently programmed into the device.

If you press and hold the down button for more than one second, the display will show SET TIMERS. If you are in single pulse mode, you can now set the single pulse duration. If you are in double pulse mode you can now set the durations of pulse 1, the pause time, and pulse 2. The top line of the display will show what is currently being programmed (Time 1, Pause Time, or Time 2), and the bottom line will show the current value. Use the up and down buttons to increase or decrease the displayed value (within the range 0.01s to 0.99s). Five seconds after you last touched a button, the top line of the display will show -SAVED- and the value will be saved in long term memory (still available the next time you power on the controller). If you are in double pulse mode, you will now be asked to set the pause time and the duration of the second pulse in exactly the same way that Time 1 was set. (When using the up and down buttons to increase or decrease a time value, you can press and hold the button to move faster through the numbers.)

If you press the up button, the controller will run. The relay will close for the duration of Time 1 and then open again. If you are in double pulse mode, it will then remain open for the duration of Pause Time and then close for the duration of Time 2.

In addition to the buttons on the controller board itself, screw in terminals are provided to which you can connect external buttons of your choosing – e.g. a foot pedal operated button, or a larger hand operated button etc for your own convenience.

Multi-sensor datalogger and timer relay

Pictured below is a device we were recently commissioned to design and build.

multi-sensor 3 channel datalogger with relay timerThis device, built around an Arduino Pro Mini, is one of the most complex projects we have completed recently. It is primarily a timer (utilising a ds3231 real time clock (RTC)) to energise a relay for a user programmed number of minutes once every day, week, fortnight, or month. However it must also monitor and process data from three sensors and log these readings to a micro SD card for later analysis at intervals which depend on the status of the system at any one time.

display for three channel datalogger

This device has a display to show the user the status of the system with readings from a pressure and a flow rate sensor as well as a valve and a relay which the device controls.

Detailed datalogging is only required when the valve is open (with logs appended at a rate of once per second), but the pressure sensor status must be logged every hour and changes to the status of the valve and other significant system changes must also be logged as and when they occur.

When logging data every second, it does not take long to generate a file which is unwieldy to process in Excel or other programmes. Therefore, our device creates a new file each time the valve opens, and logs to it until the valve closes again. In this way, there is one reasonably sized datalog file for each valve opening event together with one master log file which is appended hourly and also when there is a significant change detected in the system.

setting the time and date for a real time clock datalogger

Having mulitple datalog files not always recording data at regular intervals, it was essential that the timestamp for each line record in the logs showed the actual time and date rather than just an index value.

datalogger file from 3 channel arduino dataloggerThis will make future analysis of the collected data much easier.

The user is able to set the number of minutes that the relay is ‘on’ and also the precise time of day at which they would like the relay to turn ‘on’. The interval between relay ‘on’ events for this particular device was set to daily, weekly (7 days), fortnightly (14 days), or monthly (28 days).

setting up the arduino 3 channel dataloggerAn added feature is that the user can manually change the number of days until the relay will next turn ‘on’ which is particularly useful for testing the system or forcing the relay to turn ‘on’ at a previously unscheduled time and date if required.

The last piece of complexity was the flow rate sensor. This sensor outputs high pulses at a per second rate which when multiplied by 0.2 gives the litres per minute rate of flow through the sensor. The results generated then had to be converted into the desired cubic metres of flow per hour to be displayed and logged. As we did not have access to this flow rate sensor, we had to use a second Arduino to simulate the square wave the sensor generates to fully test the device we built. With a maximum of 1000 pulses per second to detect (for the maximum expected 12m3 per hour flow rate), the 16MHz clock of the Arduino Pro Mini was more than up to the job of simulating the sensor.

If you need any kind of timer or multi-channel datalogger, please email neil@reuk.co.uk with details of your requirements.

FRM01 Multifunction PLC Relay Timer Module

Pictured below is an FRM01 multi-function relay cycle timer PLC (programmable logic controller) module. FRM01 12V multifunction PLC relay timer

This small (65 x 40 mm) module offers 18 different timer functions programmable from 0.1 seconds to approximately 275 hours and used to control the on-board 10A rated relay. Some functions start automatically with power-on, others can be triggered to start (and/or repeat) with a high level pulse signal; there are delay functions, limited cycles (1-9999 repeats), and unlimited cycles.

One of the functions effectively turns this module into a latching relay board too – high pulse signal to close the relay, then another high pulse signal to open the relay.

Overall these modules are very powerful and useful in a vast range of applications requiring timer control.

Click here to buy FRM01 Timer for approximately £5 including delivery.

eBay sellers tend to offer no documentation and minimal information about these timer modules, but we have the comprehensive 8 page FRM01 User Manual (PDF 225Kb) available for download here.

Here is a video systematically demonstrating all 18 of the functions of this cycle timer

Triple Independent Repeating Timer for Lighting Control

Pictured below is a bespoke timer we recently made for a customer which includes three user programmable independent repeating on/off timers for controlling LED lighting.

three independent timers with a single master controller

This device built around an Arduino Pro Mini has three 12V outputs each of which can be set to turn on for from 0.5 to 15 seconds (in 0.5 second steps) and then turn off for from 0.5 to 15 seconds (in 0.5 second steps). This is a repeating timer, so each of the independent on/off cycles continues for as long as the timer is powered.

The user’s programmed settings are stored in non-volatile memory, so whenever the device is disconnected and then reconnected to the 12V power source, the timers continue as previously set.

If you need any kind of timer, please email neil@reuk.co.uk with details of your requirements.

28 Day Timer

Pictured below is a device we recently made to turn any typical 24 hour 7 day timer into a 24 Hour 28 Day Timer.

28 Day Timer

This particular unit was designed to run a pump for 20 minutes once every 28 days to supply an unattended irrigation system header tank with water. The user simply has to programme their existing programmable 7 day timer to turn on for the desired duration once per week. Our add-on board detects when that timer’s internal relay closes, and every fourth time (i.e. fourth week), it closes its own relay which turns on the pump.

Red LEDs on the board are used to show which week it currently is out of the four weeks that make up 28 days, and those LEDs also flash whenever the timer is on to give visual confirmation of the status of the system.

Programmable digital timers have a back up battery which ensures that time is kept accurately during a power cut. Our board stores the current week in memory, so that in the event of a power cut, it will remember which week it was in when power is restored.

If you need any kind of special timer, please email neil@reuk.co.uk with details of your requirements.

Rainwater Toilet Pump Controller with Display and Timer

Pictured below is another of our rainwater toilet pump controllers  which we recently built and supplied.rainwater toilet pump controller with display and timer

This particular unit will be used in a system configured as follows:
There is a large water butt with 2000 litre capacity (to which a further 1000 litre capacity will soon be added). There is a 210 litre header tank which gravity feeds the toilets in the property. The header tank has a float switch near the top to detect when it is full, and a float switch near the bottom to detect when it is nearly empty. The pump chosen can fill the header tank from empty in around 6 minutes, and the pump has its own float switch protection (so that it will not run dry if the water butt is empty). Finally there is a solenoid valve fitted to a mains water supply which when turned on, will fill the header tank.

header tank not full display rainwater toilet pump controllerThe controller has a display which is used to show the status of the header tank – full, not full, or empty – and also the status of the pump and solenoid valve.

solenoid valve on water butt empty display

Once an hour, the controller will turn on the pump if the upper float switch indicates that the header tank is not full. The pump will run until the upper float switch floats on a full tank OR for 8 minutes since if the pump runs that long, the water butt must be empty or there is a problem with the pump.

If at any time (except while the pump is running) the lower float switch indicates that the header tank is empty, the solenoid valve will open sending mains water into the header tank until the upper float switch indicates the tank is now full.
After another hour has passed, the controller will attempt to top up the tank with rainwater as normal, and will only top it up with mains water if the tank is empty.

If you need a rainwater toilet pump controller, email neil@reuk.co.uk with details of your requirements. Take a look at some of our previous controllers here: rainwater.