Has anyone else noticed that the Tone() function doesn't work properly on pins 2, 3 and 4? If you code Tone(4, 800) you'll get an 800Hz tone, but on pin D1! Calling Tone() for pins 2 and 3 causes the tone to be generated on D0.
Looking at the core source, D0 thru D4 are all coded as being capable of hardware tone generation on Timer 1, so I thought it would just be a matter of setting the correct bits in TCCR1D based on the port #. However, I tried that and it does not work as expected - I think something else is messing with TCCR1D.
Changing entries 2, 3 and 4 of digital_pin_to_timer_PGM[] to NOT_ON_TIMER makes Tone() work properly (those pins then get "software" tone generation), but looks like it will break the PWM stuff.
Does anyone have a "clean" fix for this issue?