Friday, February 23, 2007
These modules are similar to the standard ones on the site, but differ in several important ways.
1) Packet format -- Far simpler than the SNAP the standard firmware uses, and actually human readable/writable. A serial console is enough to do testing.
2) Hardware Flow control -- Without hardware buffers, SOME way of slowing down transmission from the computer is needed. Simple CTS hardware flow control is enough -- deassert the CTS line and the computer stops transmitting.
3) Software -- SDCC now has proper support for some things it didn't back when the original RepRap firmware was written, like defining EEPROM values. Several lookup tables, and things like the chip ID, have been shoved into EEPROM to conserve code space.
3) Pin Assignment -- To use more of the pic16f628a's internal hardware, some pin assignments have been shifted around. RA4, for instance, is uniquely suited to be the SYNC input -- it can act as a direct clock source for the timer instead of watching a pin with busyloops.
ps. how did you make those boards? do you have any pix?
I'm not sure it CAN be integrated, there's considerable differences and people are already making 'universal' control boards. I resigned myself to writing my own firmware when the reprap build scripts:
a) Tried to download and build sdcc, something I already had
b) Tried to write to root, a major no-no
...and figured, if I'm writing it from scratch, I might as well design it how I like it.
I also use modules. In the board on the left in the main photo, you'll see two upright boards in sockets; I plug these in when I need debugging I/O, and pull them out when debugging is done. I've got a DIP switch module, a debounced pushbutton module, and a LED display module. The connectors are just right-angle double pin headers; single pin headers would do, the "upper" pins are connected to the "lower" ones, but double pins stay in the sockets nicely.
These boards aren't perfect; the polarity of their power connector is precisely the opposite of a "standard" wall wart, some extra wiring is needed to use the unused MAX232 channel to drive the CTS line, etc. With a little work and some cutting of traces, they do what I want. Once I've got more than 2 motors working in concert I'll start thinking about designing my own board.
Links to this post: