Steve,
Fortunately I'm also in the midst of an Arduino based project and had the wherewithal to build and test your circuit all ready to go on my dining table this morning.
My set-up is a Duemilanove, a Siglent DSO, and a breadboard containing the NE555 circuitry.
I used a modern NE555. The original NE555 tends to crowbar the power supply when it switches and this can cause odd results. If you happen to have one of these you will also need to heavily decouple the power rail. Better to buy a modern 555.
I can confirm that the circuit works for me with the component values given. It reliably resets the Duemilanove.
The NE555 is set up as an ocsillator with a long period and high duty rate. Fo me the output of the NE555 is high for 14 seconds and then goes low for 12mS. The waveform is repeated unless the Arduino breaks the cycle with a heartbeat pulse. Therefore the Arduino needs to send a heartbeat at least once every 14 seconds.
Zooming in on the short pulse:
I tested the heartbeat function by manually shorting the capacitor because I'm too lazy to write the code needed to produce the ticks! As it works with a manual heartbeat I don't see why the Arduino shouldn't do the job just as well, assuming that the low pulse is long enough to discharge 22uF through 560 ohms.
Like Simon Williams I'm suspicious of the component values used. This is because they are outside the normal range recommended for an NE555. Consequently the circuit might not work for everyone. It doesn't help that the maths that comes with the original circuit appears to be wonky, though that might be me! There's some ambiguity about whether the capacitor should be 220uF or 22uF.
If it's 220uF that's a bad idea because it's well outside the recommended range! Even if the circuit works with 220uF there's a two minute wait between reset pulses and it would be easy to miss them on an oscilloscope (unless you deliberately set it up to catch them.)
The diode is needed to stop the NE555 squirting volts into Arduino through the reset pin which is an output. I used a silicon small signal type rather than a 1N4001, mainly because I don't have any 4001s. I don't think the type of diode is a problem with the circuit values given but note the 4001 is a power rectifier that switches relatively slowly. Unlikely, but the type of diode might be part of the problem.
You had to reduce the value of the 1M resistor to 47k to get the circuit to work at all. I suspect this is because the 22 microfarad capacitor is leaking or is the wrong way round. All electrolytics leak and some are worse than others. I would try replacing it.
With 47k rather than 1M and a good 22uF, the 555 issues a 12mS reset pulse every 660mS.
You said you might have done something simple. When I first looked at the diagram I "saw" the reset and Vcc wiring the wrong way round. Shorting the power line rather than the reset would create the symptoms described. I also get confused by the cross-connections needed to wire 555's correctly and usually make at least one mistake whenever I breadboard one. Well worth triple checking.
A number of people have criticised the external circuit as being unnecessary. The technique was new to me but reading more widely about the quirks of resetting Arduinos revealed there are several valid use cases for it. I would ignore their advice.
You mentioned trying an Op Amp and the awkward need to provide these beasts with a negative rail. I don't think an Op Amp would help in this particular application but an easy way to provide an op amp with a negative supply is to use a voltage conversion chip like an ICL7660.
And of course "Failsafe systems fail by failing to fail safely", ho ho.
Good luck,
Dave
PS Sorry to hear about your mum. I lost my father to Dementia recently and it was Hell.
Edited By SillyOldDuffer on 22/04/2016 11:11:44
Edited By SillyOldDuffer on 22/04/2016 11:15:09
Edited By SillyOldDuffer on 22/04/2016 11:30:18