Thanks for the prod PK.
I have been busy working on the design though for the last 2 weeks, so I'll post progress of where I am up to:
- The design is mostly finalized
- about 2/3 of the documentation is written
- The all new firmware is done, and am just going through final testing. Happy to send you the source for perusal. It's even documented
- Had been struggling whether to add a separate ICSP connector or not, but re-arranged the circuit so that for firmware updates you disconnect the servo motor and any external trigger, and then you can use the same connector for ICSP.
- Have the design working on the breadboard
- Found all the components I need at digikey, and gone through their data sheets.
- Learned to create components in Eagle for ones that aren't in the libraries. needed to create 4 for the digikey parts.
- Now I'm working on the PCB layout.
Here is the circuit diagram so far. (Not pretty yet).
(I'm using the internal pull-ups for a lot of the inputs)
The upper connector in the diagram are just pads, whereas the bottom connector is a right angle header so you can plug in the servo or an external trigger (or the ICSP cable)
I'm always happy to hear suggestions for improvement.
To explain what it does, here is a bit of an extract from the draft user manual:Introduction
The ServoTimer II was primarily designed for parachute deployment on water rockets. The timer controls a single RC servo motor that can open a latch on the parachute door. The timer has a number of configurable parameters along with several trigger options. The timer may also be used in other applications such as staging rockets or controlling the direction of a camera. The timer is also designed to work with other flight computers or apogee detectors such as the uMAD.Features
- 6-9V operation
- Single RC servo output
- External timer output
- Built in 2G acceleration switch
- External Wire make or break to trigger
- External 3V - 12V hi/low trigger
- configurable servo start and end positions
- 0-12 second delay selectable in 1 second increments
- Timers can be cascaded
- ICSP connector for firmware updatesTriggering the timer
The timer can be triggered in a variety of ways depending on the application.
Built in G-switch: The built in G-switch will detect a launch when the timer experiences acceleration of over 2G. Depending on the application, such as in a high vibration environment, where more than 2G detection is required or where the board cannot be oriented vertically, the built in g-switch option may not be appropriate.
Break wire: A set of contacts is available on the input connector to connect a loop of wire. Depending on the configuration, either a break in the loop will trigger the timer, or connecting the loop will trigger it. This allows the timer to be triggered by simple mechanical contacts or switches whose contacts are normally open or closed. External higher G acceleration switches can also be directly connected to this input.
External 3-12V input signal. This input is routed through an opto coupler isolating the trigger from the triggering circuitry. This allows other circuits and flight computers operating on different power supplies to trigger the timer.Configuration:
Before using the timer in an application for the first time it needs to have the trigger condition and servo motor start and end positions configured.Configuring the Trigger condition
To change the timer's trigger condition, with the power OFF set the rotary switch to "D" and power ON the unit. The LED should flash 3 times. Now rotate the switch to one of the following settings:
0 = Internal G-switch
1 = External trigger on Make wire
2 = External trigger on Break wire
3 = Opto input trigger on High
4 = Opto input trigger on Low
Turn the timer OFF. The value is automatically saved in the internal EEPROM. The next time the timer is turned on it will be configured with the new trigger condition.Configuring Servo Positions
In normal operation When the timer is first turned on the servo motor moves to the start position. When the timer expires, the servo motor moves to the end position.
Due to the large variety of RC servo motors available, and because there are numerous situations in which they can be used
it is possible to set the start and end position of the servo. Up to 16 positions are possible over the range of movement of the servo motor. The timer produces timing from 0.9ms to 2.1ms which should cover most RC servo motors.
A servo that has 180 degrees of travel can be positioned in ~11 degree increments, while a servo with 90 degrees of travel can be positioned in ~5 degree increments. Configuring Motor start Position
With the power OFF, turn the switch to the "F" position.
Turn the power on and the LED will flash once.
The servo motor will be positioned to the currently set position. If you want to retain this position, turn the timer OFF.
If you wish to change the position, turn the switch slowly until the motor reaches the desired positon.
The setting will be automatically stored in the EEPROM.
Switch the timer OFF. The new setting will be ready when the timer is turned back on.
NOTE: You should turn the switch to one of the 0-C positions after setting the motor position so that you don't accidentally enter the configuration change when the unit is powered on next time.Configuring Motor End Position
To configure the motor end position, follow the same procedure as above but initially set the rotary switch to the "E" setting. The LED will flash 2 times.
When the motor is in the end position, turnthe power off.Normal Operation
1. With the power OFF, set the timer to the desired delay time on the rotary switch: 0-C (0-12seconds). Note that when the switch is set in the D-F range when powering on the timer will enter configuration mode.
Setting the timer to 0 delay, allows the timer to be used with other apogee detecting sensors such as the uMAD or a barometric altimeter, so that the servo is activated as soon as apogee is detected.
0 delay is also useful when the timer is used with burn out detection sensors for activating a staging mechanism in multi stage rockets.
2. The servo motor will move to the start position.
NOTE: You can then turn the timer off again at this point. This is useful for getting the motor set in the correct position when setting up the deployment mechanism in the stowed position.
3. After 5 seconds the timer enters the ARMED state and the LED will light. In this state the timer starts monitoring the configured trigger condition.
4. When the trigger condition is met, the timer starts the delay.
5. At the end of the delay, the servo motor is moved to the end position activating the deployment mechanism.
6. The timer then enters sleep mode to conserve power.