HOWTO: make a bell-ringing Arduino doorbell

John Montgomery hacked an Arduino board into a cheap wireless doorbell, and connected that to an servo attached to a brass bell. Now when his doorbell rings, the wireless doorbell makes the twee and adorable brass bell go ding-a-ling-a-ling. I've got a drumming tiki idol made of resin that I want to do this with, so he beats the drum when someone's at the door -- now I know how I'll do it!

Montgomery's hack built on Roo Reynolds's Twitter doorbell project, which is also delightful.

With the hardware finished I then set about actually getting it all up and running as our real doorbell. So imagine my horror when upon placing the doorbell on our kitchen window sill and connecting the power everything went haywire and the arm just constantly moved! After some tweaking of the code and kitchen-side debugging I realised that I really should make use of the Arduino's internal pullup resistors for the doorbell pin. Up until that point I had left it "floating". When powered by the USB this rarely drifted to zero, so I thought it was working fine. However on mains power it regularly dropped quite low, making the Arduino think the button had been pressed, triggering the servo. Configured the pullup resistor and tweaking the activation threshold (as it was now higher than zero) sorted out this problem perfectly:
"Ultimate" Arduino Doorbell - part 1 (Hardware)