Hacking a microwave

OK My grand-daughter has been (ab)using our microwave for some time and managed to get it into the state that you'd expect from any 17 year old. My wife hasn't been very happy about this for a while so decided we need a new one as it's now "disgusting". ( in the olden days women would clean things but... :-/ )

Anyhow, the final straw came when I attempted to use it's built in grill and filled the house with smoke. So I now find myself the owner of a nice bit of kit to play with and upon closer inspection I find that the interior is, in fact, metal and the (inner face at least) of the door is also made from glass. So obviously I'm planning on making this into an oven for all kinds of interesting stuff (reflow, molding plastic etc..).

I've already removed the magnetron and the high voltage stuff. (that may come in handy for my CO2 laser project I've been meaning to get around to building)

Inspecting the control board it seems like a very simple setup with a microcontroller at it's heart. After carefully removing the potting compound from the micro I find that it's a SH69P25K. Unfortunately a quick look through the datasheet reveals that this is a One Time Programmable device, so there's no chance of reprogramming the chip :frowning:

Anyhow, it turns out that most of the pinout is fairly close to an atmega328. Both are 5V, 28 pin DIL and the Power, GND and oscillator connections are all in about the right place. (although the existing crystal is just 400K!)

So anyhow, I have the thing mostly cleaned up now, my intention is to remove the existing micro and replace it with a socketed atmega328. It'll probably take a bit of experimentation to get the display working, but I'm quite hopeful this could be an interesting little project.

If anyone else is interested I may post updates.

Hi, i am very confused with the term of 'hacking with the arduino' how do i hack with the arduino? where do i start and where do i get and or create the code for arduino hacking. Also can i hack with the arduino uno?

Astrocode317:
Hi, i am very confused with the term of 'hacking with the arduino' how do i hack with the arduino? where do i start and where do i get and or create the code for arduino hacking. Also can i hack with the arduino uno?

The term "hacking" is pretty loose. Just how an arduino would be used depends on the situation.

A quick update.

Power Supply
Analysing the control board, it has mains voltage applied. On board there's a single transformer that has two secondaries. These are then rectified to provide an unregulated 12v supply along with 5v regulated.

Display
The display unit is mounted on top of the main board by means of 19 pins in a single line. With a bit of probing I've found that these are arranged as 6 cathodes and 9 anodes. Taking just the first four Anodes and the first 7 cathodes reveals that the four 7 segment displays are connected in the usual fashion.

Mapping all of the combinations of cathode/anode combinations I come up with the following

Just a quick warning to anyone planning to try this at home, the power supply capacitors in microwave ovens can hold their considerable charge for long periods of time and must be treated with caution.
Can't advise what to do about it. I think I was told they lose their charge over a matter of days, not when the plug is removed!!!

I hope some one else can add any other precautions or procedures. Otherwise a really nice and clever bit of hacking.
Cheers, Rob.

robwlakes:
Just a quick warning to anyone planning to try this at home, the power supply capacitors in microwave ovens can hold their considerable charge for long periods of time and must be treated with caution.
Can't advise what to do about it. I think I was told they lose their charge over a matter of days, not when the plug is removed!!!

I hope some one else can add any other precautions or procedures. Otherwise a really nice and clever bit of hacking.
Cheers, Rob.

Yes I'm aware of the dangers involved with those things. I should have perhaps given this warning right at the start. These things are seriously life threatening. Personally I used some pretty well insulated long nosed pliers to pull the leads off, then used the "noses" to short out the pins. There was no exciting "crack" in my case. So I then followed up with a plain piece of copper wire (just in case the resistance of the pliers was high enough to allow some residual current to remain). But this oven hadn't been used for about 3 months so it's hardly surprising that this one was pretty quiet.

Sorry to be a worry wort, and though I am not an expert, your capacitor discharging procedures sound practical.
Just for the record what brand of microwave and age?

Cheers, Rob

Anyhow I've been doing a bit more investigating. A lot of the ciruitry is hidden under that huge display but I don't much fancy removing it, so it's a case of fumbling around to find out what I can.

Since I'm not intending to connect directly to the display (too much faffing with pullups current limiting resistors etc..) I decided to take a punt that the cathodes are connected directly (through a pullup current limiting resistors) to the micro.

I've now removed the micro controller So attaching 5v directly to one of the anodes, I then just touched each of the port pins with a ground wire to find ones that made an leds light up. This quickly revealed that my hunch (for the cathodes was correct). The current drawn for each led is tiny (about 7ma).

I then semi permanently attached GND to one of the cathodes and tried the same procedure with 5v to find out where the Anodes connect to the micro controller. At first I had no luck. Obviously there's something in between that just won't respond to such a ham fisted approach.

So to get some more of the board alive, I attached 5v and GND to the appropriate pads for the microcontroller. With a bit more fumbling I've finally worked out that one pin acts as an "Output enable" (for want of a better description). This has to be connected to GND before any of the anodes will come alive. Furthermore, the anodes themselves are then brought to life by sending the appropriate pin to GND. (so even the anodes are "active low". Obviously there's some kind of driver circuitry being hidden from view somewhere.

With the 5v supply still attached it was pretty simple to find out where the input buttons connected. Just holding a multimeter cable on each pad and pressing a button to see if the voltage changed. An interesting feature that came to light is that the inputs are read using the same pins as those that control the display (when outputting). So now the reason for that "Output enable" becomes clear.

There's also a rotary encoder on the board (to allow the user to dial in times). To find this I simply hooked up an LED to a resistor going to ground. Connecting the other leg to each pad while dialing. I was looking for a twinkling, but it never happened. So changing tactics, I hooked the LED to 5v instead (still through a resistor) and repeating the process I found my twinkles :slight_smile: So I now have a complete map of where all of the inputs come in and all of the display controls.

Oh and there's also an input to read whether the door is open or closed. (note to self, check whether the door switch is active closed or open).

The only thing left to do before I get on with programming my replacement controller is to find out which pins control the relays. ( Currently there's one for the grill, one for the microwave and one for the motor ). The reason I've been putting this off is that the active pins for the relays are hidden under that display. They have 12v coils so just sending the signal to turn them on isn't going to show unless I power up the 12v.

I'm even contemplating putting the microwave equipment back in place. I'm not sure I'll ever use it though.

MicroPinUsage.JPG

robwlakes:
Sorry to be a worry wort, and though I am not an expert, your capacitor discharging procedures sound practical.
Just for the record what brand of microwave and age?

Cheers, Rob

This is the kiddie :slight_smile:

That controller looks like a PIC 28pin chip as used by Picaxe X28 Picaxe manual (See X28). Maybe you could take over the whole thing by swapping in a new processor?? (Picaxe predated Arduino, but has a simple BASIC to program with, unlike Arduino that has a better processor (ie no memory paging!!!) and of course uses the far more elegant C++, but a great little workhorse if you wanted to drive it with something quickly. Very easy to program and learn).

That looks like a modern microwave oven, pity about that.

Cheers, Rob

robwlakes:
That looks like a modern microwave oven, pity about that.

Yes it is. The grill section is a PIA though. I've managed to get the elements out and clean them up, but the box they go into only has the tiniest of holes for access. It's a box kind of arrangment that's all spot welded together and then spot welded into the top of the oven enclosure. I'm going to have to drill out some of those spot welds to gain access for cleaning. (I can still see plenty of crud in there through the holes).

I've had a bit of a set back with the control signals for the relays. I can't get them to respond to anything but upon close scrutiny I've discovered that a tiny surface mount resistor has just dropped off. The pads showed no sign of damage so I can only assume this wasn't soldered on properly in the first place. Despite much searching there's no sign of the blighter anywhere so it's anyones guess what kind of value this was.

It's also exceedingly difficult to work out the logic of the circuit in this area as the control signals from the micro pass through a network of anonymous tiny transistors, resistors and capacitors. I really can't understand why they've made this section is so complicated. I'd have thought just one or two transistors should be adequate to turn on a 12v relay from a ttl signal. It doesn't help that the entire board is covered with some kind of conformal coating, so trying to read voltages is a nightmare.

KenF:
The term "hacking" is pretty loose. Just how an arduino would be used depends on the situation.

What i mean is how can i use the arduino do get access to something like an keyboard, or like my mouse and how do i get the code to do this stuff or make it up?

Quote from: KenF on 01-02-2015, 20:32:42
The term "hacking" is pretty loose. Just how an arduino would be used depends on the situation.

What i mean is how can i use the arduino do get access to something like an keyboard, or like my mouse and how do i get the code to do this stuff or make it up?

Hacking can take many paths, sometimes it is an inspiring post like KenF's above where the system is investigated and this may stimulate someone else to use it in a project, or attempt a similar explanatory strip down. Nearly all hacking is some sort of team work where hackers build on what they find out themselves, and what they can add to their knowledge from others. (The whole Arduino Community is an example of this) Good electronics skills help a lot, but are not essential to start. Armed with little more than wire cutters, screwdrivers and a multi-meter many systems can be investigated at a level that would be very instructional for a beginner.

Adding keyboard interactivity to a program is not so difficult. Use the libraries built into the Arduino IDE and you will get great assistance with handy library calls. Mice are not so easy, and given that most Arduino systems do not have a "screen" let alone a GUI on them, you really need to have a specific project in mind that demands a mouse style input to justify it (especially if at the beginner stage).

Not having the pressure of working with microprocessors for employment, my own experience is very haphazard, though this is definitely not a complaint. Lurching from one interest to another when I get an insight that takes off in one project, rather than another where I am bogged down. I tend to gradually expand my knowledge from project to project, and tend to think if I can now do A&B easily I might start looking at how to do C. Sometimes when trying to do step 0 to 1, I find I have to go back to -2, then -1 then 0, to get there.

I am apologise if this is sounding like a lecture, but initially finding simple projects that others have done (that you find interesting and motivating)and replicating those is the best way to build your experience base. I have been programming for nearly 45 years, but taking up C++ 3 years ago to get into the Arduino scene was very daunting, but hey I have gradually clawed my way to many half decent efforts. However that experience reminded me of how truly frustrating the early stages are. So have a go and when you get stuck share it with others on a forum somewhere (This forum has helped me numerous times) you will be amazed at how quickly things can develop. Find a project you would like to focus your efforts on, and then give it your best, and backtrack and ask questions when necessary.

Cheers, Rob

OK I'm starting the think that trying to sort out the over complicated relay driver circuitry of this board is just not worth the mileage. So I've come up with a plan to implement something more straight forward. Looking through my box of bits I've found a motor driver with a socketed IC. Checking out the datasheet (That I found here) I find it's an array of darlington pairs. So seems ideal for my application.

Knocking up a simple circuit on the breadboard with this IC (and one of the relays I removed from my oven) I've tested the following circuit and it works really well. The relay draws about 42ma and the current drawn from the ttl input is just 1.2 ma Seems safe enough :slight_smile:

relayDriver.JPG

robwlakes:
What i mean is how can i use the arduino do get access to something like an keyboard, or like my mouse and how do i get the code to do this stuff or make it up?

Hacking can take many paths, sometimes it is an inspiring post like KenF's above where the system is investigated and this may stimulate someone else to use it in a project, or attempt a similar explanatory strip down. Nearly all hacking is some sort of team work where hackers build on what they find out themselves, and what they can add to their knowledge from others. (The whole Arduino Community is an example of this) Good electronics skills help a lot, but are not essential to start. Armed with little more than wire cutters, screwdrivers and a multi-meter many systems can be investigated at a level that would be very instructional for a beginner.

Adding keyboard interactivity to a program is not so difficult. Use the libraries built into the Arduino IDE and you will get great assistance with handy library calls. Mice are not so easy, and given that most Arduino systems do not have a "screen" let alone a GUI on them, you really need to have a specific project in mind that demands a mouse style input to justify it (especially if at the beginner stage).

Not having the pressure of working with microprocessors for employment, my own experience is very haphazard, though this is definitely not a complaint. Lurching from one interest to another when I get an insight that takes off in one project, rather than another where I am bogged down. I tend to gradually expand my knowledge from project to project, and tend to think if I can now do A&B easily I might start looking at how to do C. Sometimes when trying to do step 0 to 1, I find I have to go back to -2, then -1 then 0, to get there.

I am apologise if this is sounding like a lecture, but initially finding simple projects that others have done (that you find interesting and motivating)and replicating those is the best way to build your experience base. I have been programming for nearly 45 years, but taking up C++ 3 years ago to get into the Arduino scene was very daunting, but hey I have gradually clawed my way to many half decent efforts. However that experience reminded me of how truly frustrating the early stages are. So have a go and when you get stuck share it with others on a forum somewhere (This forum has helped me numerous times) you will be amazed at how quickly things can develop. Find a project you would like to focus your efforts on, and then give it your best, and backtrack and ask questions when necessary.

Cheers, Rob

Thanks for the explanation, but i just would like to know if i need a shield to hack a usb keyboard

and can i use the arduino uno

Astrocode317:
and can i use the arduino uno

You should post it as a new topic. Something along the lines of "Can I use an arduino uno to hack a keyboard?"

I'll be a lot quicker this time. Sorry I missed your question. The Arduino can be programmed to act as a USB client and mimic things such as USB keyboards and mice. However to my knowledge (and we are out at the fringes here) it can't act as a host to such devices. Consequently I suspect you will need to add a shield that will have a USB that works in Host mode (ie can supply 5V etc).

USB Hub Shield is the first one I saw on ebay, so no particular recommendation, but I think it is close to what you might be after?

Official Arduino + Libraries etc would be my first port of call. Some nice person might have already done a lot of the work for you :wink:

Sorry about the 'lecture' it's a bad habit retired teachers find hard to give up :-X

Cheers, Rob

Thanks KenF for writing down your notes (back in 2015). I found it helpful since I had a similar case with a broken microwave. I disassembled it (taking precautions with the capacitor charges), and salvaged the SH69P25 microcontroller chip to maybe repurpose it. Thanks for the heads up about that MCU being an OTP (one time programmable – might be obvious to most, but I didn’t know what it meant when I read the specs sheet) chips. I plan to reuse the 7-segment display in another project. As an beginner with electronics, but an enthusiast one, I also appreciate robwlakes post (the longer one :wink: ) Cheers!

I am hacking a dead LG microwave oven using atmega 328p. I am still developing the code. I will update when I am done.