Senior spring, one of my design classes focused on building a power system for a UUV: the Remus 600. Our system generates hydrogen from an aluminum-gallium reaction in saltwater, and oxygen by dissociating sodium-chlorate. Most of my work was on the oxygen generator, a mix of mechanical and electrical work. This included plenty of design, machining, soldering, and choosing components to order versus make custom.
A bead chain that pulls reactants into a tube. Heat from a resistive coil starts the reaction. A geared stepper motor pulls the bead chain through the tube. PWM drive controls the speed of the chain. A thermocouple monitors the heater/tube interface, a tiny solenoid valve regulates the gas output pressure, and a MEMS pressure sensor monitors the relative gas pressure. All this is controlled with an Arduino.
The mechanical design was more difficult than the electronics. To avoid chemical damage, most of the parts had to be made of stainless steel. I designed a part using Delrin and an o-ring to seal against the driveshaft, to protect the motor/gearbox bearings. The reactant, though liquid after heating, is like concrete after it cools off, which caused major jamming problems on the original 2x4 prototype. In the end, we managed to get our parts made and got the system running just hours before the final presentation.