Universal Controller Board v1.2

From RepRap
Revision as of 17:36, 28 May 2007 by ZachSmith (talk) (version migrated from twiki)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Universal Controller Board v1.2

<div class="thumb tright"></div>

RepRap uses the same printed circuit design for both the stepper controllers and the extruder controllers, but different components (and some common ones) are needed for each. This page describes how to put the common components together on the PCB and test them.

In fact, there is very little extra that needs to be added to the PCB that you will assemble from the instructions on this page and the complete stepper controller so, as you will see below, you can use a stepper motor to test the board at this stage, even if the board is actually going to end up as an extruder controller.


Build It

Printed Circuit Board

<div class="thumb tright"></div>

You can either buy this PCB from the RepRap Research Foundation, or you can make your own. The image shows the professionally manufactured Universal Controller v1.2 PCB ready for soldering. Its also cheap, only $8.00 USD.

If you'd like to make your own board, follow the v1.1 directions, as it uses an older design (but identical/compatible) that is more suited to home manufacture.

File Locations
You can download the electronics files from Sourceforge. This zip file contains the Kicad files, as well as the GERBER files you can use to build it yourself (or have it manufactured).


Common Components

Component Value Quantity Description Mouser Part#
U1 78L05 1 a 5V voltage regulator 512-LM78L05ACZX
U2 L298N 1 a motor driver chip 511-E-L298N
U3 PIC16F628 1 the microcontroller 579-PIC16F628A-E/P
n/a 18-pin DIL 1 a socket for the PIC16F628 575-199318
D1 - D8 1N4005 8 a Diode 512-1N4005
C1 1000uF 25v 1 an Electrolytic Capacitor UVR1E102MPD
C2 100uF 12v 1 an Electrolytic Capacitor UVR1E101MED
C4 0.1uF 1 a Ceramic Capacitor 647-UVR2A0R1MDD
R4 220R 1 a Resistor 291-220-RC
R2 10K 1 a Resistor 291-10K-RC
D9 LED 1 a LightEmittingDiode 859-LTL-4234
P1 power connector 1 2.54mm screw PCB connector 651-1725656
K1, K2, P5, P8, P9, P10 12 pins 1 PCB transition connector 571-41032390


Soldering - first stage: power, PIC holder, communications and LED

<div class="thumb tright"></div>

Soldering Order

  1. DIP socket - if your holder has a dimple, match it up with the half circle on the silkscreen
  2. 78L05 - match up flat side with silkscreen
  3. C1 (1000uF) - polarity on silkscreen
  4. C2 (100uF) - polarity on silkscreen
  5. D9 - the LED anode (+) is the longer of the two leads. match it to the silkscreen.
  6. R2, R4, C4 - the orientation doesn't matter.
  7. P1 - make sure to put the openings for the wire facing the outside
  8. P5, P8 - put the tab towards the inside of the board
  9. R7 and R8 - these are not needed on a standard RepRap machine and should be replaced by shorting wire links.

R7 and R8 allow the use of non-standard opto-switches and are usually not needed; replace them with wire jumpers.

The PIC will eventually be mounted in the 18-pin DIL socket, as it will need to be removed and re-inserted for programming. Leave it in its anti-static packaging for the moment.

Use a couple of jumpers to short the left-hand pairs of pins of K1 and K2, as in the picture. In a stepper controller these connect the end-stop sensors, and shorting the middle pins to ground is the signal the the carriage is not at the endstop. In an extruder they are used to log the extrude speed and to check for the exhaustion of the material being extruded.

Testing Rounds

First test - power

This picture shows the finished board with more components on, but it is testable at the stage shown in the previous picture above.

Wire the Communications and Power Distribution Board to your new circuit like this, but leave the PIC out of its socket, leave the transmit and receive wires disconnected, and do not connect the RS232 cable to the computer.

Take Great Care to get the polarity of the power leads (red and green on the picture, and with + and - labels) correct.

Connect 12v power to the Comms board and check that there is 5v between sockets 14 and 5 of the PIC holder (- to pin 5, + to pin 14). This 5v comes from the regulator U1 (78L05).

Take the + probe of the voltmeter and check all the pin-sockets of the PIC connector relative to its socket 5. Most should be at 0v; one or two should be at about 3v. None should be more than 5v.

Switch off the power.

Second test - program chip

Now program up a PIC 16F628 (U3) with the file ~your-id/workspace/firmware/build/16f628/stepmotor/stepmotor.hex. This is the X-axis PIC control program for your RepRap machine that was created when you downloaded and built the RepRap software. Observe the usual CMOS anti-static precautions when handling the PIC. Plug in the programmed PIC, notch to the right in the orientation shown in the picture.

Switch on the power. The LED on your new board should light; it is instructed to do so by the PIC program. Switch the power off again.

Third test - exercise command

Connect an RS232 cable between your computer and the Comms board. Connect transmit (T) on the Comms board to receive (R) on your new board, and recieve (R) on the Comms board to transmit (T) on your new board. The R and T connections to the board are not very clear on this picture - see the one below from a different angle for a better view. R is the left-hand pin of its pair, T is the right of its pair. The two in between are both ground and are not normally used (they are intended for twisted-pair communications if that is ever needed; more wires, but better noise immunity...)

Open the Eclipse Java development program. Open the Reprap project, and walk down the tree: src -> org.reprap. Right-mouse click on main.java and go down to Run as... -> Java Application.

Select Preferences from the File menu and set the port to the one your RS232 cable is connected to.

Click on the Axes tab and select Cartesian as the geometry. (The default is Null Cartesian, which is a dummy RepRap machine inside the software for testing purposes.) Cartesian is an honest-to-goodness real RepRap, such as the one taking shape on the end of your RS232 cable...

Click on OK in the Preferences box.

Turn on the power.

Now, from the Tools menu select Stepper exerciser. This should open a window that looks like this:

As you can imagine, this window allows you to move your RepRap machine around just by draging those pointers with the mouse. Drag the X-axis pointer to the right. The LED on your new board (which was on continuously) should begin to flash. Whenever one of the stepper controllers is moving its motor it flashes its LED, and this is what's happening. Of course you don't actually have a motor connected, or even the motor driver, U2 (L298N). But the PIC doesn't know that.

Close the program and all the windows, and turn off the 12v power.

Soldering - second stage

Remove the PIC and place it in its anti-static package.

Components for this stage

Component Value
D1 - D8 1N4005
P9 4 pin header
U2 L298N

Soldering Order

  1. The header/connector
  2. U2 -- do this before diodes... otherwise it will be hard to reach
  3. then the diodes. Note the polarity of the diodes: the stripe / bar to the right in the picture.

The picture shows the second stage of soldering complete.

Testing Rounds

Fourth test - voltage reading

Reconnect the power connection to the Comms board, put a voltmeter on sockets 5 and 14 of the PIC holder (- to pin 5, + to pin 14), and turn on the power. The voltmeter should read 5v.

Take the + probe of the voltmeter and check all the pin-sockets of the PIC connector relative to its socket 5. Most should be at 0v; one or two should be at about 3v. None should be more than 5v.

Turn off the power.

Fifth test - led flashy

Plug the PIC back in.

Reconnect the transmit and recieve lines. and re-run the Third Test above. The LED should still flash.

Turn off the power.

Sixth test - action!

Connect a 4-wire RepRap bipolar stepper motor (follow that link for details, suppliers, and wiring) to the connector at the top of the picture (P9). (In fact any bipolar stepper with a coil resistance of more than 10 ohms and less than about 50 ohms should work for testing if you don't have your RepRap steppers yet. Connect one coil between pins 1 and 2 of P9, and the other between pins 3 and 4. If you have no stepper motors at all, see LED Stepper Diagnostic below)

Plug the stepper motor socket onto the connector at the top of the picture (P9), red wire towards the centre of the PCB. Open the Eclipse Java development program. Open the Reprap project, and walk down the tree: src -> org.reprap. Right-mouse click on main.java and go down to Run as... -> Java Application. From the File menu select Preferences, and from that select Axes. Set the X axis power to 100%, and click OK.

For all the following tests, don't run the motor for more than a few seconds because the L298N chip doesn't have a heat sink on it yet - it'll get hot. Between each test, uncheck the Torque box for the motor to turn the current to it off when it isn't doing anything.

Repeat the third test, but first drag the motor speed bars on the left of the window down to about two-thirds of the way. The LED should flash and the motor should rotate (stick a short piece of wire to the spindle so you can see what's happening; see the picture).

Finally, select the X-Axis "Home" button in the window. The motor should rotate continuously in the opposite direction.

Pull off the jumper on K2 (the one further away in the photograph). The motor should stop as this is the signal to the PIC that the endstop has been reached.

Congratulations!

You have finished the common circuitry for the Universal PCB!

Continue on to making:

Technical

LED Stepper Diagnostic

Here is a useful diagnostic device that you can plug in in place of a stepper motor to test your RepRap controller boards. It is very simple to solder up on an old offcut of stripboard.

It consists of two green and two red LEDs wired back to back with current limiting resistors. As the L298N (U2) steps the motor the polarity sent to its two coils changes in sequence. If you plug this device in to the stepper connector and use the Step + and Step - buttons on the control window you can see this hapenning.

  • Both LEDs off: all L298N outputs at ground.
  • Red: this output goes + -.
  • Green: this output goes - +.

PIC 16F628 Pinout:

One obvious common component is the PIC - a 16F628. But some pins do different things in the two devices:

[i] = input, [o] = output, [b] = bidirectional

Pin Stepper controller Extruder controller
RA0 L298 [o] L298 (Fan) [o]
1 Sync [b] Thermistor [i]
2 L298 [o] L298 (Fan ) [o]
3 Sync [b] Heater [o]
4 LED [o] LED [o]
5 Max [i] Material out (input only) [i]
6 - Thermistor [i]
7 - Thermistor [i]
RB0 Min [i] Slotted-wheel for extrude speed [i]
1 Rx [i] Rx [i]
2 Tx [o] Tx[o]
3 L298 Enable [o] L298 Enable [o]
4 L298 [o] L298 (Extrude) [o]
5 L298 [o] L298 (Extrude) [o]
6 - -
7 - -

Board Modifications

R7 and R8 are only needed if you use an alternate design for end-stop, material-out, and extrude-speed sensors. Normally they are replaced by wire jumpers.

Without L298N

Components marked (A) are for an alternate extruder design without an L298N, and so can normally be left out. (This extruder is cheaper to make, but can't reverse the extrude motor - to make it just leave out U2, D1...D8, and P9, then add in these components.)

R6 220R
R7 220R
R8 220R
R9 220R
Q3 TIP110
Q2 TIP110
P6 CONN_2
P7 CONN_2

Slave Motor

It's also possible to drive a slave stepper from this board using another L298N chip. There is a connector (P10) for the slave stepper driver should you want to drive more than one stepper. P10 brings out all the signals from the PIC to the stepper driver, so just connect another L298N on a separate board up like the first one to those five signals (also don't forget the diodes) and plug in another stepper, which will run in synchronisation with the first.

Add your own electronics

The connector P11 has several of the PIC lines running to it and power (see the circuit diagram in KiCad). It is intended to allow users to experiment by adding extra electronics. If you want to do this, put a 7-pin connector in for P11, make up your circuit (stripboard is probably easiest), and put a 7-way socket on the board that will plug into P11.