One of the ten inventors on a new Searete LLC-filed patent for a new type of engine combining attributes of traditional internal combustion and power generators? None other than Microsoft's Bill Gates.
The patent filing, number 20090091138, describes several different designs which do away with the traditional generator design with a standalone power source driving a separate electromagnetic generator. In a traditional generator, an oscillating or rotating permanent magnet is driven externally and moves inside a tightly wound and carefully designed bundle of wires, creating a magnetic field which induces electrical current. This patent describes two different types of motors which utilize the normal oscillations of a piston engine as the permanent magnet to induce current in the windings wrapped around the cylinder or the connecting rod.
The first engine uses a simplified piston assembly with a generating coil engaged below the combustion chamber by way of something like a connecting rod with an embedded magnet. The second, and more interesting engine uses a single floating piston between two opposed combustion chambers and the entire system is wrapped in wire. The motion of the piston itself has embedded magnets and is utilized as the oscillating magnet in the system.
Furthermore, the patent describes a plasma injector, which isn't as science-fictioney as it sounds. Plasma injectors would replace spark plugs as an ignition source and provides an utterly reliable and predictable ignition which is necessary for fine control of a flame front. The kind of thing which would be important if the failure to fire results in an unrestrained piston crashing into the end of the combustion chamber. Currently the design is awaiting patent and as far as we know there aren't plans to produce it right now, but presumably there are prototypes being developed. Assuming this kind of technology goes into a car somewhere down the road the jokes about Microsoft cars crashing into a blue screen of death will inevitably follow. (Hat tip goes out to the_garynator)