The jet engine used in this project is a Swiwin SW300B purchased from CRX Turbines - the jet's top speed is 98,000 RPM and it produces 30 kilograms (66 pounds) of thrust at that speed. The jet is controlled by a small computer called an ECU with a servo signal input (such as the throttle signal coming from an RC receiver) and controls the jet (with its glow plug, electric starter motor, and fuel solenoid) as well as the brushless fuel pump (which controls the speed of the jet once its started).
I fed the ECU's servo input with a PWM signal generated from an Arduino - specifically, AdaFruit's RadioFruit which has a built-in radio transceiver (more on that later). I also plugged in an AdaFruit OLED screen and Terminal Block.
In the video you'll see I'm holding two cheap hand drills as the controls. I've removed the motors and batteries and I'm really just using them as a convenient hand-held potentiometer (the trigger is a potentiometer). There's a three-wire cable (Ground, 5V, Signal) going from these potentiometers to two of the Arduino's analog inputs. One of these controls is a "deadman switch" and must be held down in order for the Arduino to start outputting any PWM signal. The other control is the throttle, and the Arduino will output a PWM servo signal between 1000us and 2000us pulse width in proportion to the throttle signal.
I have many failsafes built into the system. First, the deadman switch means that if I fall or need to turn of the jet quickly, I release the switch and the fuel pump shuts off the jet instantly ( < 100ms ). For the same reason there is also a remote deadman switch that a safety spotter is holding - that device also contains a RadioFruit set to transmit - and if the safety spotter releases their switch or goes out of range of the receiver, again the jet shuts off instantly. I also thought - what happens if my controls fall off or the cables become severed somehow? Luckily the Terminal Block has a prototyping area, where I've added some 500k pull-up resistors to the control signals which will turn off the jet instantly if the wires become disconnected.
One improvement I would make next time around is that there is still a potential single point of failure - the microcontroller. What happens if it freezes? I am using a hardware timer to generate the PWM signal, so if there was a problem in my code it could potentially ignore the deadman switch and continue to produce PWM even when I want it to stop. A solution might be that the operator's deadman switch could be in series with the Arduino's power supply (a lithium battery) so that if the operator releases the deadman switch it actually cuts power to the Arduino which is guaranteed to stop the PWM signal.
What other questions do you have? If you watch the video you'll see the entire build process. Let me know what you are curious about and I'll answer your questions or write more.