I use eding usbcnc and now that I'm getting used to it its a good bit of software and hardware.
Just for info I have ran your code through NCPlot and it runs fine to the end.