Thursday, March 8, 2012

Repairing a RapMan Controller

Has the extruder stepper driver circuit failed in your RapMan or BFB 3000 controller board?

Here is how I fixed mine in about 20 minutes using only a single piece of wire!
The BFB board Version 3.3 Part #30003 is used in both the RapMan 3.1 and the BFB 3000. These boards have 3 Extruder outputs.  That means your RapMan 3.1 has a built-in spare!  Or TWO spares if you are running a single head.  The trick is how to access those spares?  While in theory it could be done in the firmware, I don't have the ability.  So, I went for a hardware based solution. I began by tracing the circuits until I was able to identify the critical wires.   It turns out that BFB made things exceptionally easy by sending all 3 extruders the same signals in parallel, and only making the "Enable"  signals separate.  That means that only one jumper is needed from the Enable #1 trace to the Enable #3 trace.  The only other thing that is needed is to cut the traces leading TO stepper driver #1, and FROM the CPU to stepper driver #3.  After that, just move the wires on the 25 pin connector from Stepper #1 to Stepper #3. 

The driver chip is an Allegro A3979, and is available from various distributors.  Replacing them is challenging, for the bottom of the chip is soldered directly to the board, which acts as a heat sink.  This means that you can't simply heat the pins and remove the chip.  I removed mine by heating the opposite side of the board with a large soldering iron after cutting the pins free and removing them.  Unfortunately, I damaged the board in the process.  That is when I decided to abandon the repair attempt and go with the far easier jumper fix described above.

Update:  When I did this repair, extruder mapping was not in the firmware version available at that time.   Now it is, and that renders this fix obsolete.  However, you may have to replace a driver chip someday, like I just did when I fried another one. The Allegro chips do not tolerate having their outputs grounded. Having learned from the first disaster, this time I used my milling machine to cut the body of the chip away, leaving just the pins.  These were now easily removed one at a time with a small tip soldering iron.  Mouser's catalog listed the Texas Instruments DRV 8811 as a direct replacement, with a disclaimer, of course.  I looked at the pin arrangement, voltages, and everything looked good, so I bought some.   I soldered one in by first putting a small blob of solder on the circuit board heat sink pad and then heating the board from the back.  The chip nicely settled into place, and then I soldered the pins.  Sure enough, the chip ran the extruder drive nicely.  Interestingly, the motor is much quieter, for the TI chip runs at a lower PWM frequency. The motor also runs slightly cooler, but has the same torque as before.  However, when I tried printing, something was wrong.  Soon I realized that the stepper was running too fast.  Twice as fast as it should.  Then I remembered Mouser's disclaimer and went back over the data sheets for both the Allegro and TI chips.  The Allegro offers full step, 1/2 step, 1/4 step and 1/16 step.  The TI has full step, 1/2 step, 1/4 step and 1/8 step.  The BFB board was set for 1/16, and the TI chip was running at 1/8, or twice as fast.

Rats.  There was no way the fragile pads on the circuit board were going to survive another chip change, and the TI chip is otherwise a very good chip. I decided that instead of removing the chip, I would slow it down by slowing down the signal controlling the chip.  The speed of the stepper is determined by the frequency of the incoming pulses.  So, I decided to cut the frequency in half by making a divide by 2 circuit from a flip-flop. I mounted this chip on a separate board, and then cut the control line to the extruder on the back of the board. 

Wires from left to right:  Ground, Clock input to flip flop, "Q" output from flip flop, and +3.3 volts.
This works perfectly.  My two extruders now track perfectly in speed, with the only noticeable difference is that the motor being driven by the TI chip is quieter.

My divide by 2 trick does not turn the TI chip into a 1/16 microstepper.  Rather, it is more accurately a 1/8 microstepper running at half speed.  This is not a problem on an extruder drive which is running anywhere from 24 to 90 RPM.