I've made a few small changes to the specification from before:
* By means of dip switches 1 to 5 you can set a motor run time of up to 155 seconds in increments of 5 seconds (longer run times are possible by reprogramming using a different increment value) - dip1 = 5; dip2 = 10; dip3 = 20; dip4 = 40; dip5 = 80 - to set 60 seconds set dip3 and dip4 ON
* By means of dip switches 6 to 8 you can set motor power as a percentage in units of 10s (there is a minimum setting of 30%) - dip6 = 10; dip7 = 20; dip8 = 40 - to set 80% set dip6 and dip8 ON
* Upon switch-on the esc is initialized with min/max throttle range - the esc will give the usual confirmation beeps
* After esc initialization there is a period of 10 seconds before the motor starts (a longer time can be set in the code)
* From 5 seconds to go before the motor starts there are 5 audible beeps - 5, 4, 3, 2 are short beeps and at 1 second to go a long beep (number of beeps can be customized in the code)
* It's advisable to have a switch on the model to switch on/off the power setup - this would allow for an easy abort at any time before launch
* At the end of the timed motor run the motor simply cuts - 12/11/2018 - 15 seconds before the motor cuts, there are 5 momentary cuts to the motor to indicate the motor run is soon to end (this time period can be customized in the code)
At the heart of the code is something Phil had written to control a servo in the background which in this project I've used to control an esc: http://mode-zero.uk/viewtopic.php?f=41&t=57&p=751#p90 - thanks Phil for this as it works very well

15/05/2018 - Below is the circuit for the timer - the 6 pins circled yellow are for the USB-ASP programmer.
To build the timer, start by preparing the 8-way dip switch - look closely and you should see I have linked all the pins that go to ground. So simply bend these pins (1 to 7 only) outwards and link all 8 pins with a length of thin tinned copper wire - I did a loop round pin 1 then moved on to loop round pin 2, then pin 3, and so on to pin 8. Solder each joint and snip the excess pins off. So now the dip switch can be soldered in place as shown in the image. I doubt it's necessary, but I inserted a small piece of clear plastic to avoid a short with the board. For programming solder the two 3 pin connectors - but this is optional as some do program without them.
Next up is the buzzer (pinched from Phil's Arduino Encoder):
Orient the buzzer face down with the positive (long) pin to the top and bend the long pin to the left. Then bend a kink in the short (negative) pin. With the transistor flat side facing you and pins pointing downwards bend the outer pins as shown - left pin left - middle pin towards you - right pin right.
The buzzer can now be soldered to the board - buzzer negative (with the kink) to ground - the transistor middle pin (base) to TX0 and the right pin (collector) to VCC - bend this pin at an appropriate point to go through the VCC point on the board (I used a little piece of heat shrink to avoid shorts - see image).
Finally the connector for the esc/servo can be soldered to the board. I just found it easier to cut from a pre-made extension to get a socket with a short length of the three wires. Solder black to a ground, red to a VCC (I shared the VCC with the buzzer) and the signal wire to D10.
The code is available at the end for download. I have only bench tested at present. Anyone is free to use it for personal use at own risk. So please ensure that you fully check functionality with your setup before actual flights.
Any improvements welcome. Any problems or questions - just ask.
Carl