I'm tired of the buzzer in the microwave oven that is beeping constant u p to a minute.
So I opened it up like any normal hacker would, found the buzzer and snapped it off.
Sure, the buzzer was irritating, but so would be not to hear when my food is cooked. So i quickly had a look at the PCB and find a very interesting pinout.
So I soldered on some pins and started to measure the voltage level.
VCC of 5V looked promising for a microcontroller.
I had a look at the buzzer signal, it was a 2kHz signal with an amplitude of 5VDC.
I had a rough idea in mind about having a small tune play instead of the 2kHz tone, and it should only play once.
So I shuffled some code together to code to play a small tune from the flash of an Arduino Nano. The flash could only hold about 18k of samples and was played at 8kHz.
(improvised from http://playground.arduino.cc/Code/PCMAudio)
In lack of a better choice i choose Windows XP's startup sound.
I shuffled some more code around to sample the original buzzer signal from a GPIO. If the sound is playing at more than 2kHz for a certain time I would trigger the sound.
I applied some time based software filters to filter out some noice.
I build a small amplifier out of an MOSFET (IRLML6344) and a small 0.5W speaker element I found at my local hackerspace.
I throw it all into the chassis of the microwave oven. There was plenty of space, but i took some precautions to electrically isolate the PCB and speaker.
Unfortunately the sound from the small 0.5W element was too low. It barely was distinguishable against the sound of the microwave ovens fan.
So I upgraded the element for a 3W element that I found in an old PC speaker, and took some precautions and upgraded my amplifier as well for the more stable Class-D amplifier PAM8403.
The sound was much louder and you can clearly hear the Done-sound from the microwave oven.