(a bit of background - I started s/h at around 9, did it for a couple of years, and then it came back when I was around 16)
Firstly, it must be a difficult position to find yourself in. I can't imagine how hard it is to have someone you love so much as you would a son harm.
I think it's important not to make him feel like harming is a bad thing. I know it's not brilliant, but it is a coping mechanism. He also, from your description of how he has said he will come to you, seems to realise that it's not the best method, and seems to have shown an interest in not harming.
Also, like you said, not letting him go camping would seem to punish him for harming. I think it's probably a good idea to let him go, and then if he feels like he's not in a safe place that weekend, let him tell you that. You can always change the plans, or encourage him to stay home if that happens.
Being there for him is also a very important thing. It's something that I've only really realised recently, but being able to talk to your parents about stuff really helps. Don't push him to talk about it, but let him know that if ever he wants to all he has to do is ask. One thing I would say is that, from my experience (and I would imagine this is more likely to happen in boys than girls) the hardest bit of asking for help is actually asking for it. For this reason, perhaps have a system where there's something completely unrelated that triggers you starting a conversation with him? For example, I have a plushy snow lepoard, and I know that if I put it on my sister's bed, then she knows that I want to talk about something, and will come and find me and start a conversation. I find that a lot easier than going to her actually having to ask her to talk. (that might just be me though - I'm a bit loopy sometimes!)
Sorry, I think this has turned into a bit of an essay. I can't imagine how hard it is to be a parent and to know your child harms, but well done on keeping strong, and joining the forum. There are a lot of interesting people with different backgrounds on here, and hopefully you will find lots of support!