IMO the fact that we took 20 posts to figure out what the problem was from the picture makes me not blame the buyer at all. If I'd seen that picture I wouldn't think twice, but I presume it is obvious in person that something was broken. I also note that you didn't notice enough to put it in the listing, so expecting him to notice from just pictures is unfair.
I suspect his behavior is mostly just him blaming himself("buyer beware", this seller is the kind to not inspect his products). So between that and getting it cheap, he doesn't feel too put out.
$15 is, IMO incredibly generous of the guy. If I was the seller, I'd probably want to give him a bigger refund than that to clear my concience. Id be tempted to give him the purchase price minus the shipping (or whatever), but the $30 is probably at least close to "fair".