Having managed to create my own version of an Arduino this year, I used that for the final board. For each of the drivers/axis of my robot I only need 2 pins to send the information for the number of steps and the direction of the stepper motors, so with an Arduino, I can in theory drive up to 10 motors, which would be more than enough for every axis I require. Of course I need other pins for different functions.
My board can achieve mircrostepping with the Pololu drivers (the top step and direction pins are for the larger tb6600 stepper driver required for the NEMA 23 – this can be interchanged with a Satstep board) using the 3 switches on the board indicating MS1, MS2 and MS3.
I am using I2C communication for the stop switches. In this way I could have up to 128 stop switches using just two pins (a little over the top), but the pin saving is tremendous for the 6 I will eventually need. For this I connected the SDA and SCL pins of the AT-Mega 328-P to the same on an AT Tiny85. The 85s are in turn connected to a button which changes the boolean being sent to the main board when pressed.
This project is made by Paul Nichols