old codger

noun

1.
used affectionately to refer to an eccentric but amusing old man