MEMS (or stirling engines) don't help you there either -- as long as it's all in the fire, you have trouble extracting energy.
All heat engines run off of a temperature gradient, which is limited by Carnot's theorem to a maximum efficiency of (1 - Hot/Cold). If your heat source temperature is the same as your heat sink temperature, you get zero energy out of it.
The bigger the difference between the heat source and heat sink in your engine, the more energy you can extract.
Fully agree, the only small remark being that it's
η = 1 - Tcold/Thot
and to put in perspective: If your metal rod on one side of the peltier element (that's inside the device) is at 150°C = 302° = 423K and the cold side (water reservoir) is at 20°C = 68°F = 293K the maximum achievable efficiency is 30%.
In practice you'll waste a lot of energy (probably the flame outputs about a kilowatt of power, normally you'd comfortably use it to heat a kettle of water or canned spaghetty or...) for a meager 2W or 3W of power to your cellphone. That's because the energy transfer from a flame to a simple rod is very, very inefficient.
Ooops, I didn't mean to imply that MEMS/stirling engines would eliminate the gradient problem, it was something of a after-thought that they would be more efficient than the Seebeck junction.
All heat engines run off of a temperature gradient, which is limited by Carnot's theorem to a maximum efficiency of (1 - Hot/Cold). If your heat source temperature is the same as your heat sink temperature, you get zero energy out of it.
The bigger the difference between the heat source and heat sink in your engine, the more energy you can extract.