2 sided PCB board layout with the big 25 pin parallel port interface in the middle
Schematic of the parallel port shield
The reason I wanted to make a parallel port interface is because we are hoping to use our machine for both CNC work and rapid prototyping. By using a common parallel port interface we can have a single electronics control box (ECB) that has all the stepper motor drivers, extruder controllers, spindle speed controllers, and everything of that nature inside. I'll have more information on our ECB over the next few weeks, but for now a screenshot of the setup is below. Note that most of the electronics have not been modeled in the CAD program yet, so they are not shown, but their placement should be obvious.
Electronics Control Box (ECB) with power supply, Arduino Mega, stepper motor outputs and endstop/encoder inputs
The ECB can than be connected by a parallel port cable to either a computer with a 25 pin printer port or to the Arduino Mega with the new parallel port shield. The Arduino Mega will be running the Hydra-MMM firmware, but any reprap firmware variation would work. The main concept is that once connected via the parallel port to the ECB, the Arduino would have access to all the stepper motor drivers and endstop sensors that it needs to print! The parallel port pinout is as follow:
1 Estop
2 Xstep
3 Xdir
4 Ystep
5 Ydir
6 Zstep
7 Zdir
8 Astep
9 Adir
10 Xlimit
11 Ylimit
12 Zlimit
13 Alimit
14 Spindle/extruder on
15 Aux Input
16 Spindle/extruder speed control (pwm)
17 Coolant/Fan on
18-25 Ground
Some readers out there may notice the fact that there are no temperature sensors on the parallel port pinout. There are 2 AD595 thermocouple IC circuits built into the shield for measuring the temperature of the nozzle heater and also an optional heated build table. The main reason I did this is that I noticed that the analog wires for temperature measurements pickup a lot of noise if you run them over long distances. By having them mounted directly on the shield that attaches to the Arduino, that noise is minimized. I have tested a prototype pcb using this technique and the improvement in noise suppression over the same breadboarded circuit is amazing! The shield also has an onboard LM7805 5V regulator so that it can be run off the same power supply you are using to power the stepper motors (in our case 30V). This may also help reduce noise as the regulated 5V output is filtered and likely suppresses some noise in the process.
Another reason people may want this shield is that diy CNC machines have been around for much longer than the Reprap project. Many people already have the electronics for a cnc machine that is based around a parallel port interface, however, they are now wanting to try out rapid prototyping using the Reprap Arduino firmware. This shield would let them do that pretty easily.
The eagle files for the shield can be downloaded here: https://sourceforge.net/projects/hydra-mmm/files/Electronics/Arduino-Mega-Parallel-Port-Shield/
As I said, I have only been using Eagle for about 2 months so I would love some feedback on the design. Let me know what you think!



This is great! I don't see the part numbers for the ICs, though. Also, where did you get the cb connectors (and their part numbers)?
ReplyDeleteI intend to etch one of these to try it out. I have a homemade cnc router that uses the hobbycnc pro 4 axis driver (parallel port).
Good point. I didn't realize the part number wasn't on the schematic. The thermocouple ICs are AD595s that you can get here: http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=AD595AQ-ND
ReplyDeleteI got the CB connectors here and the shipping was crazy fast with a great price too: http://www.thomasdistributing.com/micpart1.htm
Thanks for the part numbers.
ReplyDeleteYou asked for feedback on your design. While I am also new to Eagle, I have a couple of thoughts...
All the headers have plastic separators that make it hard to ensure the top traces get soldered well. I try to make sure these are fed with bottom traces. I am not sure I will need an 11 dollar chip to translate a thermocouple. I intend to use a thermistor, so I can omit most of the circuitry in your design.
I agree that having all the traces on the opposite side of the connectors would make it much easier to solder. Maybe I will change this for the next revision. The through hold vias can be soldered from both sides though, right? So it would still be possible how it is designed above, just easier if the larger traces were there as well?
ReplyDeleteAnd I think for my application I will be leaving the thermocouple ICs on there just because of how much it helped with noise attenuation, but do you have any ideas for other things that could go on this board? Maybe a few RJ45 jacks for attaching reprap type extruder controllers? Or maybe some pin headers for some of the leftover analog signal pins.. There are so many pins on the Arduino Mega I'm not even sure I can think up uses for all of them!
As a matter of fact I do. I was thinking I would use a right angle DB-25 and place it on the end of the board. This way, the parallel cable will come off the side and be out out the way for other shields to stack on top of this one, if you use stacking headers. Any additional connectors can be on the next higher shield. It just so happens the right angle connector will fit the board width perfectly.
ReplyDelete