Attiny84 with external crystal still not accurate

So I finally got my attiny84 and a 16MHz crystal with the pins hooked to XTAL1 and XTAL2 with a 22Pf capacitor tied in between each leg of the crystal to ground, I have set arduino to "attiny84 external 20 MHz clock", loaded ArduinoISP, and burned bootloader to my attiny, than loaded the blink example and instead of getting a blink every second (set to 1000ms) I am still getting around 2 second blinks. If I set it to 4 second blinks it blinks over 5 seconds.

What am I missing, because this is more inaccurate than the internal clock and I know thats not how it is supposed to be.

I appreciate all your help in advance :slight_smile:
Thanks

Most likely something wrong in your boards.txt with the F_CPU setting.

Does anyone have any ideas?

Uh, you have FCPU set to think it's 20 mhz, so things like delay() are scaled to that - but you're using a 16mhz crystal. What did you think would happen?!

You report it takes 5 seconds for a 4 second blink. 4 seconds * (20/16) = 5, so you're seeing exactly the expected behavior!

You need to use a board definition with the correct speed defined. If you don't have one already with 16mhz crystal defined, you can copy that one and just change the cpu frequency (FCPU) from 20000000 to 16000000.