The altitude check can be a little more complicated than you might think. I use the Ravens and EasyMega's. For them, the easiest expression of the logic is "fire the igniter when the altitude exceeds X if the time is less than Y". A variation on the theme is "fire the igniter when the velocity drops below X if the time is less than Y". It would be easier if you could say fire at Time = X, but there is no Time = function on those altimeters - only T> and T<.
So, you do a simulation. At the point where you want the motor to light, you might be at 3000 feet and 7 seconds as an example. You allow a second for the motor, so you want the igniter to fire at 6 seconds, which might be 2500 feet. The logic statement, with one second of margin, is then fire at 2500 feet if time < 7 seconds. One trick is that you have to know when your altimeter knows it's at 2500 feet (i.e., how is it filtered). It pretty much takes a test flight to understand how a particular altimeter does the logic, so you just have to leave a little margin for those errors.
Jim