Monday, September 28, 2009

Quick progress update

Been a long time since I blogged here. I have been advising some school kids at a local high school on RepRap which has soaked up my free time and stopped progress on ExMrClean.

We are in the final stretch for getting their RepStrap operational and so it is finally time for me to also get operational so I can hopefully be a step ahead of them for a bit longer LOL!

Anyway one of the resources that they have available to them is a laser cutter and we have been building up an extruder mount out of acrylic to use a mill that they also have access too as the motion platform.



As you can see from the picture they have created a quite intricate structure that will mount up to three extruders and has an option for hanging wingman extruders off to each side.

Here’s a picture with the electronics and some bare PCB’s mounted on the mill.



So anyway back to ExMrClean I requested that they make me a extruder holder for my machine, which they designed and constructed in a couple of hours.







The construction of this design with the mounting screws on the side allowed me to correct for my Z axis not being totally true.

Tuesday, May 12, 2009

Burning AVR boot loader with USB TTL Serial Cable

I am working with some kids at local high school that ordered a Sanguino kit to put together just after Makerbot went online.

The kit was missing some components and others were the wrong size. How ever the big problem was that processor chip did not get the boot strap loader for the Arduino IDE development environment flashed into it.

Generally you use a programmer to burn your target program onto an AVR chip, for the Arduino IDE environment we burn a boot loader that lets us upload new programs into the flash memory via the Arduino IDE.

There are multiple ways to burn the loader that we need. Some of them are:



  • External ISP or JTAG programmer

  • Use the Arduino-IDE via a parallel port and adapter

  • Use another Sanguino or Arduino as a programmer

  • Use the USB Serial cable TTL-232R in bit banger mode

A good article on AVR family programming options is at:

http://www.ladyada.net/library/avrdevtut/programmers.html

I am blogging about the last approach of using the USB Serial cable as it doesn’t require any additional hardware other then what you would normally have to run a Sanguino or Arduino board.

Credit where credit is due I got the basic information and links to the required software from a blog by Kimio Kosaka.

http://www.geocities.jp/arduino_diecimila/bootloader/index_old_en.html

What is bit banger mode?

The USB-Serial chip that is molded into our serial cable and mounted on most Arduino boards that have USB connectors has a mode where software can control the state of the normal serial port signal lines.

The typical USB chip is a FTDI FT232 chip for serial operations. This is not to be confused with RS-232 which is a signal level standard with positive and negative voltages.

Since our USB cable length is short it uses standard TTL voltages between 0 and 5 or 0 and 3.3 depending on which cable you have.

We differ in approach from Kimio Kosaka examples in that we have to remap which software controlled pins are used for programming; as the USB-Serial cable only brings out to the connector four of the eight pins that are used for full serial port control.

If you want to know the terminology of these lines here’s a good link.

http://tldp.org/HOWTO/Serial-HOWTO-20.html

Our USB cable is lacking the following serial port control lines DTR, DSR, RI, DTR, so we have to make use of the ones that we do have available at the connector which are CTS, RTS, TXD and RXD.

It’s also handy to power the chip up via the voltage delivered by the USB cable. (Note the board that has the chip you are trying to program should not be powered up as it might interfer in the programming process.)

Here’s a link to the documentation for our USB serial port cable.

http://www.ftdichip.com/Documents/DataSheets/Modules/DS_TTL232R.pdf

Downloading the software

The next step is to download the software from the web page above. Here’s the link that I used to download software for windows. The orginal web page also has links for Linux and Mac.

http://www.geocities.jp/arduino_diecimila/bootloader/files/serjtag-0.3.zip


Adding definition to use USB cable as a programmer

After unzipping the content locate the following programmer configuration segment in the avrdude.conf file.

programmer
id = "ft232r";
desc = "FT232R Synchronous BitBang";
type = ft245r;
miso = 1; # RxD
sck = 0; # RTS
mosi = 2; # TxD
reset = 4; # DTR
;

This one is one that is closest to the definition that we need for our USB to serial cable. So we will use it as a template to add our required definitions. The pin assignments we get from the following document.

http://www.ftdichip.com/Documents/AppNotes/AN232B-01_BitBang.pdf

Our resulting programming cable definition is:

programmer
id = "ft232u";
desc = "FT232U USB Cable Synch BitBang";
type = ft245r;
miso = 1; # RxD
sck = 2; # RTS
mosi = 0; # TxD
reset = 3; # CTS
;

Adding support for the ATmega644P chip

The AVRDUDE program that we downloaded with the link above is not the latest release of AVRDUDE. The USB serial chip programming seems to be a branch that has not made it back to the main code base.

Again since this is an older version there is no definition in the avrdude.conf file for the ATMEGA644P chip that we are using for the Sanguino.

So we need to clone the entire section for the ATmega644 and then change the id and the chip signature bytes in the header portion too look like the following fragment:

#------------------------------------------------------------
# ATmega644P
#------------------------------------------------------------
# similar to ATmega164p
part
id = "m644p";
desc = "ATMEGA644P";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x96 0x0a;

Building the programming cable


The final step is build an adapter cable to plug into the ISCP programming plug here is the pin out mapping for the cable:


















































Header pin



Name



Color



ISCP pin



ISCP Name



1



GND



Black



6



GND



2



CTS



Brown



5



reset



3



VCC



Red



2



VCC



4



TXD



Orange



4



mosi



5



RXD



Yellow



1



miso



6



RTS



Green



3



sck



Here's a picture of my adapter cable that I constructed:




Initial testing

After verifying that you have built the cable correctly, test that everything is running correctly by using the following command.

avrdude -c ft232u -P ft0 -p m644p -B 4800

It should result in output that looks like the following:

C:\serjtag-0.3\avrdude-serjtag\binary>avrdude -c ft232u -P ft0 -p m644p -B 4800
avrdude: BitBang OK
avrdude: pin assign miso 1 sck 2 mosi 0 reset 3
avrdude: drain OK

ft245r: bitclk 4800 -> ft baud 2400
avrdude: AVR device initialized and ready to accept instructions

Reading ################################################## 100% 0.00s

avrdude: Device signature = 0x1e960a

avrdude: safemode: Fuses OK

avrdude done. Thank you.


C:\serjtag-0.3\avrdude-serjtag\binary>


If you get the message "avrdude: ft245r_program_enable: failed" then there is probably something wrong with your cable or the changes you have made to your config file.

(Further edit: You might have previously set a fuse to use an external clock that is not working or is the wrong frequency for your target chip. If so you might be able to feed clock signal from a functioning chip or board to reset the fuses.)

Burning the Boot loader into the Sanguino ATmega644P chip

Only proceed to this step if the previous verification command works. Note the -p option selects a paticular chip so using another chip this value and others related to fuzes will change!

I found the necessary syntax for programming the chip on this blog entry, and translated from the Linux example for using it in the windows environment.

http://gorillarobotics.blogspot.com/2009/01/sanguino-burn-bootloader-script.html

From the Sanguino software distribution copy the ATmegaBOOT_644.hex file into your working directory and then issue the following commands.


avrdude -c ft232u -P ft0 -p m644p -U flash:w:ATmegaBOOT_644.hex:i

avrdude -c ft232u -P ft0 -p m644p -B 4800 -U lock:w:0x3F:m -U efuse:w:0xFD:m

avrdude -c ft232u -P ft0 -p m644p -B 4800 -U hfuse:w:0xDC:m

avrdude -c ft232u -P ft0 -p m644p -B 4800 -U lfuse:w:0xFF:m -U lock:w:0x0F:m

Note the first command did not have the "-B 4800" option so it automatically selected a faster data tranfer rate.

If the flash write operation will not verify or you get a RC=1 return code then you will need to select a lower data rate and add it to the command line.

Data rate values are:

-B 4800
-B 9600
-B 19200
-B 28800
-B 38400
-B 115200
-B 230400
-B 460800

Further edits:

Burning other chip types

The instructions in this post are only for the ATmega644P chip! The orginal link above from Kimio Kosaka delt with programming a Arduino Diecimila with a ATMEGA186 chip.

Fuzes vary between the processors, so you need to find an AVRdude example for your chip and usage environment (internal, external oscillator, etc) to get the correct fuze settings.

Also you need to have a bootstrap hex file that is compiled for your processor and oscillator configuration and speed!

The AVRdude program is used with lots of different AVR programmers so the parameter value “-c ft232u” references using USB TTL serial cable in bit banger mode and the “-B 4800” for the programming rate are the primary differences to consider when using other AVRdude examples as a baseline for your enviorment.

Please read comments from other people below as they relate further corrections, sucesses and pitfalls.

Thursday, February 5, 2009

NoGo Extruder



Well I thought I would try a variation on Forests 5/32 tube extruder. My goal was to combine a variation of Forest’s approach along with Demented’s to come up with a hardware store extruder that didn’t require any machining or brazing.

I worked out a variation to Demented’s approach that is easy and I am happy with (more about that in a future post assuming it actually works).

Links to their posts where I got the idea’s from are:

Forest:

http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/310-Building-a-new-heated-extruder-barrel-for-the-Mk-1.html

Demented:

http://builders.reprap.org/search?q=Extruder+Madness+Part+Deux%21

Anyway on to passing on what didn’t work.

What I didn’t initially like is that Forest’s extruder was the same Nichrome Wire/JB Bond or other cement, and the fixed one shot nozzle size.

I had what seems to be winner to avoid with my experiment with four five watt resistors.

Here’s my attempt to resolve this:

My first idea was to simply retract the fiber about a centimeter and fill it in with solder as nophead did on his test of the de-soldering iron and then drilling the solder. Like nophead did with his de-soldering iron test.

http://hydraraptor.blogspot.com/2008/12/sticking-point.html

In hindsight I may revisit this once I figure out what high temperature solder really is.

While it was easy to fill the end of the tube with solder and drill out a 4.5MM hole. In my initial test it showed the temperature going up to 180C and then my solder came out as a big blob, so I must have been using the wrong conversion table or didn’t get enough heat transfer between the tube and sensor.

Anyway after that experience I figured I would go with solid brass for my heater area and this is what I came up with.



Previously I had surrounded the heater barrel with the power resistors that I had sanded the corner off.

Since this 5/32 tube was of a smaller size and with the mass of the brass fittings I assumed it would be better to heat the fittings and nozzle and let heat travel up the tube to pre-heat the filament as it enters the final stage.



To minimize the heat escape; I used fiberglass gasket material for doors on wood stoves.

Experiment results

Didn’t quite work out the way as when I heated everything up I got initial feed of the filament and then everything came to a stop no matter how hot I cranked the heat up too.

So what happened?



Here’s the view after taking the nozzle off.




First attempt to pull the road block out.




What it looks like after extracted out of the tube.



Everything pulled out.

Ok what have we seen?

First off no melting took place in the primary heat transfer area or the nozzle, all the heating of the fiber was from heat that transferred up the tube from the limited contact between the fittings that made up the nozzle assembly.

The initial filament movement was melted fiber from the tube being pushed into the gap or well between the fitting and nozzle plug, after that it solidified and prevented future movement and turning up the heat cooked it into a harder mass.

So what might have made this work?

If I had prefilled the chamber area behind the nozzle with plastic to be melted and form a reservoir to be refilled!

What did work?

Heat traveling up the tube to uniformly heat the ABS fiber from all sides.
Fiberglas gasket material as insulator.

What also didn’t work?



I had tried stove and gasket cement as an easy bonding agent, but it turned out to not bond too well between the fittings and the power resistors and was fragile to any mechanical pressure.

Might have been better if I used it liberally.

Sunday, January 18, 2009

Power Resistor Heater Experiment

I have been waiting for my order from the RepRap store to be filled with one of the key items on the order being the Nichrome wire.

So Buzz’s blog entry about using ceramic resistors and one of his replies to the comments resulted in this experiment.
http://builders.reprap.org/search?q=ceramic+resistors+as+a+low-tech+heater+element

His test rig was two 10watt resistors and he had suggested using four five watts resistors instead.

It seems that there is exactly one store left in the Seattle area that is selling components that is run by a number of retired guys; old hams, etc. Anyway after digging though their surplus bins and sorting lots and lots of resistors I managed to come up with two five ohm and two six ohm resistors; which I plan to put the like resistors in parallel and then the two groups in series.





The ideas occurred to me to sand off one corner of each resistor and have it surround the machined heater barrel that I got from reifsnyderb.

http://forums.reprap.org/read.php?94,18969



Which I managed to do and I have the following result.





While I am happy with my end result this was a bit more work then I had anticipated.

  1. First up I used a belt sander with a fairly course grit belt and it still took a long time to sand the edges off. This ceramic is really tough stuff! At you can see I did it by hand so things are not too even. I could have made a jig to hold the resistors as I sanded them.
  2. You have to hold the leads; if you let them vibrate they soon break the cement and start rotating at which point the heat transfer/magic dust inside starts leaking out.
  3. The cross section on the resistors are not square; so you really have to keep track of which edge is which, especially when you start twisting the leads together!

I had an opps where one of the resistors that the magic dust leaked out of. It then fell apart after twisting and un-twisting the wires after making mistakes with the orientation.



As you can see from picture there is a wire wound resistor in the center of the shell, letting the air in might cause it to burn out. We will see as I have one resistor that some of the magic dust has escaped from in my quad pack.

Ok back to putting everything together. Rather then use JB Weld like Buzz did I decide to try heat sink compound so that I could salvage my barrel if it didn't work out.









As you can see from the last picture it almost seems that the heater barrel was designed for this!

To mount the 100K Thermistor on the nozzle I once again visited the sander to file the back side with a flat area and then a notch on the face for the hold down wire that I wrapped around the nozzle. I then used more of the heat sink compound to fill in the gaps.


The power resistors and thermistor are simply secured with twisted copper wire. So it’s easy to take back apart again if necessary.




Getting ready for extrusion tests; after coding up the test routine I discovered my PWM driver board isn’t working correctly so I got to figure that out.

So in the meantime I clamped it to ExMrCleans temporary Z axis arm.





Fixed my PWM driver board this morning, it turns out I got one of the kits with the 100K resistor instead of the 1K’s and didn’t pay attention to the third color band. I must be really getting old as I sure remember resistors being easier to change!

Anyway fired it up and it seemed to climb at a fairly rapid rate, it reached a maximum temperature of 227C with no insulation.

My very first Fiber!




Another item I have been wait from the store is the ABS reel. So in the meantime I decided to live dangerous and experiment with weed wacker cord. They had lots of various white and green cords but I decided to go for Red.




This is what I picked up from the Garden department at the local Fred Meyer, have no idea of what kind of plastic that it is, it measures out to 2.7mm.

After the temperature passed 200C I got a bit impatient and inserted the weed cord and heard some crackling sounds; when I pull it out it sort of looked charred.

So I figure opp’s wrong type of plastic to use and then tried melting it and some white cord (2mm) on the soldering iron shank with the iron turned down to 250C on it’s dial.

The white appeared to melt better so I then inserted that and then started getting red fiber out of the nozzle from my first insertion.

The fiber measured between 0.5mm and 0.6mm out of what I think is a 0.4mm hole that reifsnyderb has in his machined tips.

Further thoughts

  • While it did take a bit to do the sanding I am fairly happy with my results.
  • My initial thoughts were that the barrel should be a square so that you can simply butt the resistors to the sides. It looks like nophead has come up with a better approch (naturally).

http://hydraraptor.blogspot.com/2009/01/yet-another-quick-heater-hack.html

It does take a bit of fource to hand extrude and it started slipping out of my temporary clamp so going to hard mount it after I come up with a better mount.

Wednesday, January 7, 2009

Major construction is done!

After discovering that the Sanguino wiring pinout’s is different then my adaptation of the Arduino wiring; it was time to rewire my setup and see if I could true out the alignment of the Z stage more. (Note: The RepRap web site now shows the correct documentation, I was doing my construction during the transition phase.)

When the new Sanguino motherboard becomes available I will switch over to it, though I think at that point in time I will populate my breakout board and motherboard with components so I have a unit for my nieces and nephews to play with.

Here are the pictures of the main wiring on the Sanguino breakout board/shield.

From ExMrClean


Stepper Motor boards on the other side and bottom.

From ExMrClean


The current plan is to try and mill the Darwin mount base and extruder feeder parts like nophead did for HydraRaptor.

http://hydraraptor.blogspot.com/2007/06/bob-on.html
http://hydraraptor.blogspot.com/2007/10/extruder-dimensions.html

Mounting the Z Stage

I got the metal for mounting my Z stage at a surplus/recycle metals place not too far away.

Wandering around the yard I found a piece of aluminum that was 1/3 inch thick, eight inches wide and about 15ft long which had one end a lot splattered welds and had been drilled for mounting in it’s previous life.

Got them to cut me a few pieces in various lengths of which I used the longer length as a base and split one of the pieces vertically with my small band saw to hold the Z stage vertically.

Needless to say the small band saw wasn’t really up to the task even with a new cutting band on it. The cut wandered all over the place so it you look closely at ExMrClean you will see that the back side edges are uneven for the Z axis mount.


From ExMrClean



The metal was also fairly groady from being out in the elements and sort of had this northwest Seattle climate slime on it. Hmmm, how to clean it up? A couple of passes through the dishwasher on heavy pot scrub cycle did the trick!

In the first mounting it was substantially out of true, it was almost ¼ inch out of true between the top and bottom of it’s travel. Since this spread out over almost 14 inches of travel in the vertical axis I initially left it at that.

With having to rewire I figured time to take it apart again and see if I could get it more accurate. About the only tool that I had that I could use to do this is my bench belt sander and needless to say it was a real adventure to try and sand the Z axis supports true by hand.

After chasing it for quite awhile I finally used a level to make sure the sander surface was level and then clamped the level to the top of the Z stage and watched it while I sanded the supports on the bottom. Still not perfect but a heck of lot closer!

As I mentioned in another post this design that I came up with is not really ridged enough as nophead suggested if you are going to be doing milling you shouldn’t be able to move things by grapping on to them. ExMrClear fails that stiffness test in its current form.

In hindsight the base should have been thicker and like the McWire design the Z movement should have been over the center of the moving table. I have this long arm to reach the center of the XY table from the Z axis so any pivoting permitted by the stage is magnified at the end of the arm.

Given that I can barely pick ExMrClear up now to move him; I will hold off beefing him up more!
Of course part of it might be that the center arm is made of wood. I haven’t been back to the metal place as our area has been fairly much snowed in with a once a decade (or more) snow storm and every time I have been by they have been closed.

Tuesday, January 6, 2009

More on End Stops

I previously blogged on my X & Y end stop’s being Hall Effect Limit sensors, so I thought I would write more on using the standard RepRap optical sensors on ExMrClean for my Z axis.

In a bit of reading at the CNC zone about the Hall Effect sensors the author mentioned that they are real easy to position to set limits since they in them selves are magnetic.

This got me to thinking as how I would implement a similar functionality on my Z stage since I am planning a lot of dirty activities for ExMrClean.

Since my Z stage is most aluminum I hit on using flexible magnetic strips that I picked up for a buck at the hobby store.


From ExMrClean

Since the strips have magnetic poles you should see how they best join together to not reduce have them fight each other and reduce the attraction power before you peel off the paper over the adhesive. In my case I have two strips on top of each other at maximum travel and two sets of two at minumum travel.

I then took a nylon screw and attached it to a metal strip to dock on to the magnetic strips. I used a nylon screw since it was easy to sand down to a flat surface.


From ExMrClean



Then by moving the status LED to the other side of the board it cleared up the mounting hole on the optical sensor to attach the metal plate too. A little bit of injected hot glue to make the assembly more ridged so it wouldn’t pivot on the screw and I was done.


From ExMrClean



Here’s a picture of the minimum/home sensor magnetically attached. It's simple to slide the sensor up and down to adjust the home position.

The optical interrupter plate/vane is a plastic tool tag from a punch that I brought that I simply mounted on the side of the movement stage.


From ExMrClean



Further thoughts

When I finally getting to extruding I should make a guide to align the metal strip laterally, right now if I do not test after a repositioning the moving stage can knock the sensor loose.

The RJ-45 cables are a bit too stiff to use in this mode, even though they are ok once they aquire a set in the approximate location. I should really use more a flexible cable or wires that will not try to drag the sensor around.

SMC mod for single cable end stop sensors

Here's a picture of my modification to use a single RJ-45 cable for the minimum and maximum end stop sensors.

It allows the use of the unused orange wire(pin 2) to carry the opposite signal sense. As you can see from the picture I made use of the signal pad for maximum and soldered it to pin two of the RJ-45 jack.

From ExMrClean


While you are at it might make since to do the same going the other way so if you want to reverse your axis direction you would simply move the plug from the minimum jack to the maximum jack and turn around the motor plug on the other side of the board.

Also a quick picture of the 7404 inverter chip that I inserted/hacked inline to reverse the logic level from my hall effect sensors so that it matched the optical end stop polarity.


From ExMrClean

Thursday, January 1, 2009

Hall Effect Sensors

Since my X & Y stages already have endstop sensors that are already mounted and take in account the space needed for the folding shields I most definately want to reuse them. Also since the opto sensors are the wrong physical layout to insert in their place, it makes even more sense to reuse them.

After my shopping trip to get more Allen wrench sizes I start taking off the old end stop sensors and what the heck they are magnetic, not optical!

Hmmm at least they have part numbers on them, time to Google them to figure out what the heck they are. The only hit is for a store for obsolete parts and they want $80.00US apiece for them.

No Matches for technical data so I keep shorting the part number until I finally get some hits as a family of parts.

Turns out they are Honeywell Hall Effect limit sensors, that takes another half a day goggling before I find a circuit to wire them up, which turns out to be simplicity in it self.


From ExMrClean



After a bit of experimenting it is determined that the devices I have are active low. Until the metal vane on the movement stage moves into the sensor zone it is conducting current and illuminating the LED. When it kicks over it stops conducting, which in this case if you monitor signal of the output lead from the sensor it goes from a low to high value.

In examining the standard RJ-45 color code/pin out and how it is mapped into Opto Endstop RJ-45 connector I determined that one of the four pairs of wires is unused.

Since one of my stages has a DB-9 connector for the end stops. I decide to use a single RJ-45 cable for both signals back to the stepper motor board.

In the color code the blue, white-blue is the positive connection. Brown, white-brown is ground. The Green wire is used for the end stop signal and the Orange wire is un-used.

I make a quick mod to the stepper boards to add a jumper from the max optical input pad to pin 2 of the minimum RJ-45 jack. Then at the end of my single Ethernet cable that I have hacked the end off of I wire the minimum output pin of the DB-9 to green and the maximum output pin to the orange wire.

The other stage (Y) used to have a connector but it had obviously failed at some point and to repair it they had fished out the wires and solder new ones directly to it. So for that stage I put the parts onto a small chuck of prototype board and hot glued it in place.

I now had all my end stops working and created a quick exerciser program that cycled all three axis’s between the end stops, counting the steps it took to go from end stop to end stop and let it run for 24 hours.

After looking at the G-code program sketch it has support for active or active low signals from the end stops, but not having mixed values on the same machine!

Since my hall effect sensors are backwards from the normal signal from an end stop, I add an inverter section out of a 7404 chip so it gives the same output as the standard Optical end sensors that we use.

Where to put the need inverter chip? I could have dead bug glued it next to the Sanguino, but elected to install them inline with the cables using plenty of hot glue to encapsulate them and to electrically insulate them.

Rethinking the solution:

I should have simply used the end stop kit from the store and had the LED side of the optical sensor powered via the hall effect sensor.

Initial flurry of activity

DAY 1

Was spend unpacking everything and mounting the first two stepper motors to the X & Y stages. Put aside the electronics control box that came with my stages as I am going to use RepRap electronics.


From ExMrClean




Day 2

Build of the electronics, Sanguino goes very rapidly! Next board is the PWM driver which goes ok. Time to tackle the driver boards, RRRP store link directs me to V1.1 rather then V1.2 drivers, all three driver boards are missing the same components by the V1.1 info.

I follow the v1.1 instructions and am highly unsatisfied with the build progress as it wasn’t like the Sanguino where the installation and soldering was lowest profile component to highest component which make it easy to insert, flip and solder!

Day 3

Was missing components from my driver boards so visited the rat shack for resistors and capacitors to finish my drivers. Researched on how the steppers would be wired up and solder necessary wires together to get down to the four needed to attach to the driver board. Then wired up the remaining stepper for the Z axis to a plug for testing.

Realized that my Antiono breakout board was useless for the Sanguino board! Read that Sanguino was designed to plug into a bread board.

Finish all three boards and then I finally notice the URL reference on the static wrap that lists a link to the instructions for my V1.2 boards!

In the meantime I had fired off a QA report to Zack suggesting better build procedure of lowest to highest that was fairly much reflected in the actual build instructions once I found them, missing components are actually optional opps! Sorry Zack!

Day 4

Purchased breadboard for Sanguino on way home, scavenged a couple of AT style power supplies from the IS department at work along with old Ethernet cables. During the day printed out diagrams for recommended Arduino wiring and Sanguino pin outs on works color printer.

Assembled the breadboard and find that Sanguino doesn’t fit the rat shack version! Sanguino design assumes standard IC width between the rows, not rows that are butted together.

Figuring out what wires of the ribbon cable are for what for getting the Z axis stepper motor to spin, ten wires are present but only five of them are in use counting the ground wire.

Wiring on the ribbon cable from left to right with red strip on the left is:

1. No Connection
2. Ground
3. Step
4. Direction
5. Enable (tied high to VCC via a resistor so not used, so effectively no connection)
6. Minimum sensor line
7. Maximum sensor line
8. No Connection
9. No Connection
10. No Connection

Solder wires to some header pins to plug into breadboard, decide to reinforce with hot glue to turn into mini plug.

Discover hot glue gun must have been left on for months at low heat, filled with dry brown gunk; after poking various gauges of wire up nozzle finally get it to flow. It takes quite a while to flow and most of a long white glue stick as it flushes out the old stuff before it turns white again.

Make handle with painters tape and hot glue and burned fingers; I guess I will have to predict a lot of this with this project?

Test power supplies; second power supply I grabbed just in case is the one that works.

Hook up stepper boards one by one and observe that the LED’s work. Followed by hooking up the Z axis stepper which gives a little scratchy noise on power up as it jumps into phase/step.

Use screw driver to momentarily ground step line and watch the motor step and the step LEDS change colors as it moves from phase to phase.

Day 5

Figured out how to compile a sketch and upload it to the Sanguino, did the blinking led test.

Then I ran my first stepper test with the motor waving the tape flag! Opp’s half of one of the drivers board is not working, must be a bad L298N. Though interesting enough it will step at some speeds but not others!

Experimented if we could drive the motor faster than the lower 600 value in the stepper motor test, no luck.

Day 6

Started wiring up the steppers for the X & Y axis’s and laying out the wiring on the breadboard for my repstrap!

Assembled the X&Y stages by stacking the Y stage on top of the X; quite a chore to get them to snug up together over the registration / alignment pins.

Given how tight the tolerances are I have a very high confidence that it is square.

Started figuring out how the desk is going to look and how I want to route the wires.


From ExMrClean



Day 7

Need to figure out what the wiring is for the limit switches that are on the stages, do not have a Allen wrench that will fit to take off the old sensors so off to the tool store (Harbor Freight ) to buy more tools, end up spending most of the morning wandering around shopping!

Finished wiring up the breadboard and the stepper motor to driver cables. Time for some movement!

I am kind of worried that since these stages are fairly massive that it will just sit there and groan.

X stage starts right up, takes a while for me to realize that it is actually working right off the bat, no complaints!

It goes though the speed tests and doesn’t like 750 or 600 values of the stepper motor tests.

Now since the X stage is carrying the Y stage around with it I assume that the Y stage will move better, wrong guess. Y stage for some reason 900 and below it moves one direction but not the other; might a resonance thing?

Manually centering the stages before running the tests and it is getting closer to a limit with each failed movement and I have no limit switches wired up or software that is testing for them since I am using the stepper motor test program.


Day 10

Time to tackle the Z stage which has a Pittman motor on it which is not a NEAM mount. Pulled up the engineering diagrams for our stepper motors and make multiple attempts to figure drilling dimensions for the center of the Pittman motor which has an offset center for the shaft; to the NEAM 23 mount.

Doesn’t work out until I actually measure my stepper motors! Lots of tiny drill marks that are thankfully hidden by the stepper motor once I get it mounted.

Work kicks into high gear with massive overtime so I have been stalled for a while!

Things learned:


  1. Sanguino is still the new kid on the block so not to order the Arduino bundle. (Store now has a Sanguino Breakout Shield Kit, so will place another order.)
  2. The stepper motors selected for our projects actually have some fairly good strength.
  3. Electronics are fairly advanced; almost turn key, great work everyone!
Work still to do:


  1. Get Hall Effect end stops wired up and tested.
  2. Test Z axis now that the stepper motor is mounted.
  3. Mount the Z axis.
  4. Figure out how to calibrate everything!
  5. Start thinking about the extruder!

EBay Purchase

After waiting a bit for my xy table/slides to be motor freighted to me, it finally arrived on a Monday.

Picked up the XYZ stuff from the shipper at lunchtime so I could draft an employee to carry it into my place once we had broke it down on the shipping pallet it had arrived on.

Gloated over my massive hardware! (Ok someone with a CNC mill would not think it massive.)

Electronics and stepper motors also arrive from the store; box is almost totaled on one corner but everything appears to be ok.

That evening I started unwrapping everything to figure out what I had, found out the XY stage had servo’s rather then steppers motors.

My question about how many wires coming out of the motor was answered by the number of the pins on the connector; which was four and turned out to be two for the motor, ground and an unused pin!

Dumb luck aside the old servos were NEMA 23 mounts, the same as the stepper motors from the store! Good thing I decided to order the steppers motors from the reprap store!

But hey the old servo's are NEAM 23 mounts, so I rapidly mount two of the steppers!

Needed to slightly drill the coupling plastic in the center to make the motors fit as the shaft is a bit longer on the stepper motors. Fifteen minutes of work and my X&Y stepper motors are mounted!

In looking over the electronics portion that I had brought from Ebay it was very interesting and told me a bit about its history.

From ExMrClean


Look at that locking emergency stop button!

First off it wasn't recent hardware as the PC portion of the main control unit did not have a PS/2 style keyboard connector and most of the boards plugged into it are ISA style. (Still haven't fired it up to see what was on it, suspect DOS).

From ExMrClean


Another big clue is as clean as the electronics are it had to have spent it's working life in a clean room, (not a speck of dust on any of the four fans) so the dust shields on the mechanics where more and likely to protect what was being handled verses the mechanics them selves.

So I suspect given that the control box also had pneumatic valves and that only the X&Y connectors are wired and the Z electronics were unused that this was a part of a semiconductor manufacturing line.

From ExMrClean


Ah the easy clean life of your first career is over, your new name is ExMrClean!

Given what I know now, should have told the vendor to keep the electronics and just shipped me the mechanical components. That way they could have been shipped UPS, rather then on a crate via motor freight.

From ExMrClean


From ExMrClean


From ExMrClean


EBay Lessions Learned:

  1. Pure dumb luck that my stages arrived in NEAM 23 format, should have queried as to the actual model number of the motor. My Z axis had a Pittman GM9000 series motor so was enough real estate on its mount to overlay a drill pattern for the NEAM 23 format.
  2. E-Bay XY stuff is more in likely for fine positioning rather then motion control (CNC) for handling semiconductor masks in IC manufacturing. Very precise stuff; but analog which doesn’t fit our model. I could have avoided truck shipment of the package as the electronics module is what put it over UPS standards.
  3. Might have been able to re-use the servo motors by buying Gecko G320 drivers for them, but then would have also needed a higher voltage power supply. Motor’s are brush driven, might have needed new brushes, etc.

E-Bay Adventure

Hi Everyone

First off I would like to thank everyone who has gone before and contributed to this project!

I now have my repstrap moving in all three axis’s and figured it was time to start blogging about. Sort of the job is not done until the paperwork is!

I bit the bullet and ordered the electronic kits and stepper motors from the online store. My initial order was for the “Complete Arduino Electronics kit” and the Sanguino processor.

The original plan was to build the electronics first and then work on the mechanical. However the store was back logged on deliveries; so after reading a lot of blogs and forum entries I decided to follow NopHead’s example and start with a XY table.

So off to Evil-Bay I went!

Given the cost of a gold reprap kit I knew I could spend a fair amount of money and still have something that would give me a good quick start.

Since I am thinking of subtraction processes like milling a bit more robustness would be a great plus. (Great to see NopHead now has a mini mill, how long before he drives our solutions to be more universal? I personally can not wait.)

E-Bay search terms that I evolved to look for something usable are: xy stage, xy table, linear stage, linear slide and linear actuator.

Anyway after loosing a number of bids in the ball park of a Gold kit I managed to get an XY table and another slide to use for the Z axis for about $400.00 plus shipping.

Here’s the picture that enticed me as it already had the dust shields for milling.

From ExMrClean


After questions to the vendor the question that I posed was how many pins on the motor cable? The answer was four which I assumed was a stepper motor (opps more on this later)!

So I placed my order, contingent on the vendor throwing in the Z axis stage, which he accepted.