One small step… (RFC)
First of all I would like to introduce myself.
My name is Gerald Ebberink and I am a first cousin of Erik.
During my last birthday Erik and I were talking, and the RepRap came up. He told me about the capabilities and the challenges which were there for both the RepRap and the Ultimaker.
Being an engineer by trade, these kind of problems stay in your mind.
A few days later I received some spam mail from ST Microelectronics promoting their L6470 dSpin  controller.
Some clicks were made in my head, some e-mails went up and down the interwebs to Erik and pronto I was designing a PCB (my first PCB in several years).
So why is this L6470 IC so interesting? Well, it is an fully integrated steppermotor driver / controller which talks a language known to most microcontrollers, called SPI (serial periphial interface).
Via this interface you can tell it, amongst other things, to go X (micro-)steps in direction Y with speed profile Z. As you can imagine, this makes controlling a steppermotor a lot easier than it is now and saves a lot of interrupt handling and context switching in the main microcontroller of your machine. Also, it does microstepping at a 1/128 step resolution, allowing for an even more silent operation than the 16th step of the Pololu drivers.
Also at less than 8 dollars a chip it is quite cheap for the functionality it provides.
One of these problems was that the speed of production was limited by the fact that the controller was not capable of controlling the steppermotors at the speeds that the mechanics allow for.
During the design process I ran into several problems. As Eagle CAD was the defacto standard in the RepRap community it met me with some nice challenges:
- I like to put different functionality on different sheets in the schematic, being limitied to only one I had to cram a lot into a single A4, which means that it does not look as tidy as I would have liked.
- The device, package and symbol of the L6470 did not exist. So I created them and updated the RepRap Eagle library .
- During this proces I found that Eagle cannot deal with Exposed-PADS. To circumvent this I drew a stop polygon in its place and then use a polygon during the PCB layout to fill it with the appropiate (GND) signal
- The autorouter isn’t capable of the complexities in the board. So I had to route all the signals by hand. A Design Rule Check (DRC) with the capabilities of The PCB Shop comes up with no errors.
Now that I’ve designed a first version of the PCB I would like to ask for your comments (it’s an RFC!).
As any engineer knows, nobody is perfect. So I will have some things I did not see, or have done some thinking which is not straight. This means that I would like to have as much feedback as I can possibly can have.
One source of this feedback is this blog.
Critisim and ideas I already have myself:
1. From the center the top-left part is pretty empty, the board could be more compact.
2. Get rid of the daisy chaining capabilities, this would get rid of a connector and the jumper array, make the other connector more compact and would get rid of the multiplexing electronics. probably shrinking the board size
3. Erik proposed to use a “PCI card style” board edge connector, this has not been implemented.