I have finished the firmware for the stepper controller. This is a separate microcontroller which receives commands from the main microcontroller over UART. Each command consist of which axis to move, which direction and how many microsteps to move. The stepper controller calculates ramp up timing etc. Step generation is the only part of the firmware where timing is critical, so keeping it separate simplifies the rest of the firmware.
Change of main MCU
I have switched to a LPC1768 based Arch-Pro board for the main microcontroller. Ethernet is now working reliably. Since this board doesn't have a socket for SD-cards I made a small board with a micro SD-card socket.
I have made a box with individual power switches for each power supply and an emergency stop switch. I'v (somewhat) sound proofed a box for the vacuum pump.
I'm still waiting for the ball screws to arrive. I would like to have the ball screws before I start machining the parts so that I can verify that the dimensions I have based my plans on are correct. I'm also waiting for some ER20 collets for the mill. Once I have these I can do all the machining in a day or two.