That's cool, thank for the info and help, much appreciated.

I've been promising myself to learn C perhaps now is the time to start, assuming I'm right that it is written in C.

I currently use Repetier firmware, I like it, amongst other things it has a lovely soft double touch when homing, it halves the speed on the second try and makes a really smooth finish, Marlin appears to use the same speed for the second try. I think you said somewhere in this thread that you weren't sure how popular Repetier is, it has quite a following, the forum is busy to.

I can understand the coding and am able to follow what it is doing some of the time, though it does go a bit deep for me a lot of the time.

Now you explained why the the board is selected in the Arduino front end it all makes sense, I would imagine it needs to know the individual board to allow for addresses of devices added to the different boards, USB, A to D etc, the machine code would stay the same wouldn't it? assuming they all use the same processor.