Sanguinololu 0.6

From RepRapWiki
Jump to: navigation, search

This page describes something which is no longer the most recent version. For the replacement version see: Sanguinololu



Crystal Clear action run.png
Sanguinololu 0.6 (Archive)

Release status: working

Sanguinololu.0.6.jpg
Description Revision 0.6 Archive Instructions
License GPL 2.0
Author Joem
Based-on (nothing)
Categories Electronics, Development, Mendel Development
CAD Models Eagle
External Link none



Contents

Introduction

This page is for older versions of Sanguinololu. See the Sanguinololu page for the most recent version. If you are building a 0.5 or 0.6 board, follow these instructions.

EAGLE files, parts list

Schematics, board, images: https://github.com/mosfet/Sanguinololu/tree/master/rev0.6

Parts: https://github.com/mosfet/Sanguinololu/tree/master/rev0.6/parts.txt


You will also need Pololu or Pololu compatible stepper drivers such as StepStick

Mouser part projects

Everything you need except the PCB!

Project Name Project Description Price (as of 4-7-2011)
Sanguino Core (all versions) The base project. Does not include FTDI implementation or power connectors. Chose this and then chose add-ons from below. $21.95 (USD)
ATX power connector kit Vertical plugs for using the ATX power supply's ATX+4 12V connector and 4 pin HDD connector. If you install this, you can't install the Screw terminal & Voltage regulator kit... but why would you want to anyway. $1.86 (USD)
FTDI & USB plug kit This kit includes a USB type B connector and a SSOP FTDI FT232RL chip (and supporting parts) commonly used for serial communication over USB. $5.30 (USD)
Polarized Connector Kit Polarized right-angle connectors for the edge, and matching cable housings. Cable side is easy pinch type connectors, so no soldering or crimping is needed. $4.30 (USD)

Before purchasing parts, always export a part list from the EAGLE files to ensure the Mouser projects are at the latest revision.

Revision 0.5 / 0.6 Assembly Instructions

NOTE: There is an issue on the 0.5 and 0.6 boards that needs a fix. Do not install the resistors R17 and R18. Also solder a jumper wire between these pads on the back of the board:

Sanguino-rev06-top-usbfix.jpg


Purchase the kit for the Sanguinololu 0.7 and FTDI kit. Revision 0.5 does not have the footprints and holes for the voltage regulator, though you can use screw terminal for the power input. This photo shows the pieces for Sanguinololu 0.7 core, FTDI kit, and VREG and Screw Terminal kit. (We won't be using all of these parts on this installation - no footprint for it, but there are [ways to get around that]).

Sanguinololu.0.7.parts.jpg


I like to solder the SMT FTDI chip first as it ensures nothing else is in the way. Use your favorite SMT soldering method for this. After soldering, check with a multimeter to ensure no pins are touching, and that gnd is not shorted to 5v.

Sanguinololu.0.5.install.1.jpg


Solder the 5v endstop voltage selector solderpad (left bottom) and then the wire fix required for FTDI (right bottom).

Sanguinololu.0.5.install.2.jpg


Solder the passive components for the FTDI chip. C7, C8, C11, C13

Sanguinololu.0.5.install.3.jpg


Solder the USB port. After this is a good time to plug the board into your PC to ensure the FTDI chipset was installed correctly. You won't be able to do any communication over the usbcomport, but the device should be recognized by windows or show up in dmesg.

Sanguinololu.0.5.install.4.jpg


Solder the female sockets next. The holes will be very tight and it may take some wiggling and cursing to get the female pinstrips completely in the holes, but it ensures they are straight and vertical. Before soldering, test to ensure pololus will fit.

Sanguinololu.0.5.install.5.jpg


Solder the microstepping jumpers. It helps to put the shunt on the jumper before you solder, so it is lined up with the socket and doesn't waste any room. Install the 100k resistors for the pololus as well as the 1.5k resistor for the LED. R2, R3, R4, R5, R1

Sanguinololu.0.5.install.6.jpg


Solder the decoupling caps. Make sure you bend the leads first so that the capacitor lays down and doesn't interfere with pololu installation C1, C2, C3, C4

Sanguinololu.0.5.install.7.jpg


Solder the passives that sit between the pololus and the atmega. R6, R7, R8, C5, C6, R9

Sanguinololu.0.5.install.8.jpg


Solder the DIP socket and the resonator Y1. Ensure the DIP socket's notch lines up with the silkscreen. Also, solder R12(behind the usb port)

Sanguinololu.0.5.install.9.jpg


Solder the large 1000uF cap as well as the components needed for the thermistors. Solder the reset button. C9, C10, C12, R10, R11

Sanguinololu.0.5.install.10.jpg


Solder the mosfets and the Power LED.

Sanguinololu.0.5.jpg


Solder the ATX power connector and Molex 4 pin hard-drive connector.

Sanguinololu.0.5.install.12.jpg


Solder the edge connectors.

Sanguinololu.0.5.install.13.jpg

Optionally solder the ISP and/or extension port headers.

Sanguinololu.0.5.install.14.jpg

I soldered the ISP header here so that I could bootload the chip with AVR ISP MKII. It had no problems bootloading, though make sure the Pololus aren't installed. The AVR programmer required the board to be powered, so I used the 4 pin molex hdd connector to power it. I was able to boot load it, and now I can communicate with it via USB FTDI and upload sketches through the Arduino development environment.

Testing Revision 0.5 / 0.6

I have performed all of these tests on revision 0.5 board using the build instructions above and all have passed. I've also tested the microstepping jumpers on each of the stepper controllers with success as well. I'm confident the 0.5+ boards should be completely functional (0.5 and 0.6 boards follow the fix noted in the installation instructions).

Testing the stepper motors Here is a quick sketch that enables the driver, steps the motor, and changes direction, eventually stopping the driver.

This only tests one motor at a time, so set the pin constants as according to the pinout sheet.

 const int enablePin = 2;  //x=20 y=23 z=5 e=2
 const int dirPin = 0;     //x=22 y=6 z=3 e=0
 const int stepPin = 1;    //x=21 y=7 z=4 e=1
   
 int loopCount=0;
 
 void setup() {
   pinMode(enablePin, OUTPUT); 
   pinMode(stepPin, OUTPUT);  
   pinMode(dirPin, OUTPUT);      
   digitalWrite(enablePin, LOW); //enable the driver  
 }
 
 void loop()
 {
   if(loopCount >= 2000){
     if(!digitalRead(enablePin))
         digitalWrite(enablePin, HIGH); //disable the driver
   }
   else
   {
     loopCount++;
     digitalWrite(stepPin, HIGH);
     delay(1);
     digitalWrite(stepPin, LOW);
     delay(2);
 
     if(loopCount % 200 == 0)
       digitalWrite(dirPin, !digitalRead(dirPin));
   }
 }

Testing the MOSFETs This sketch enabled and disables the hotbed and hottip mosfets in a 10 second interval - 10 seconds on, 10 seconds off - five times. Run this sketch while using a multimeter connected to the hotbed connector, then to the hotend connector. You must have a 12v supply hooked to Sanguinololu to test this. I just used the 4 pin molex hdd connector, since it provides more than enough 12v current for this test. You should see the multimeter read go from 12v to 0v every 10 seconds, for 5 times.

 const int bedPin=13;
 const int endPin=14;
 int loopCount=0;
 
 void setup() {
   pinMode(bedPin, OUTPUT); 
   pinMode(endPin, OUTPUT);       
   digitalWrite(bedPin, LOW);
   digitalWrite(endPin, LOW);
 }
 
 void loop()
 {
   if(loopCount >= 5){
     //do nothing
   }
   else
   {
     loopCount++;
     digitalWrite(bedPin, HIGH);
     digitalWrite(endPin, HIGH);
     delay(10000);
     digitalWrite(bedPin, LOW);
     digitalWrite(endPin, LOW);
     delay(10000);
   }
 }

Testing the Thermistor Sensors Use any resistance controlling sensor for this test: a thermistor or a photoresistor will do nicely. I used a photoresistor since it responds to changes nice n quick. Monitor the response on the com port.

 void setup() {
   Serial.begin(9600);
 } 
 
 void loop() {
   Serial.print("e-therm: ");
   Serial.print(analogRead(7), DEC);
   Serial.print("\tb-therm: ");
   Serial.println(analogRead(6), DEC);
 }

Revision 0.5 / 0.6 Pin Assignment

NOTE: THIS IS FOR SANGUINOLOLU REVISIONS 0.5 AND 0.6 ONLY -- NEWER REVISIONS HAVE DIFFERENT PINOUT

 e-enable      (D 2) PB2
 e-dir         (D 0) PB0
 e-step        (D 1) PB1
 z-enable      (D 5) PB5
 z-dir         (D 3) PB3
 z-step        (D 4) PB4
 y-enable      (D 23) PC7
 y-dir         (D 6) PB6
 y-step        (D 7) PB7
 x-enable      (D 20) PC4
 x-dir         (D 22) PC6
 x-step        (D 21) PC5
 hotbed        (D 13) PD5
 hotend        (D 14) PD6
 b-therm (AI 6 / D25) PA6
 e-therm (AI 7 / D24) PA7
 x-stop        (D 17) PC1 
 y-stop        (D 18) PC2 
 z-stop        (D 19) PC3

Revision History

Rev 0.6 Made changes suggested regarding putting power pin in the middle of endstop sense connector.

Shrunk board to metric specifications for boardhouse - board size now 100mm x 50mm - just a tad smaller than 4"x2"

Increased spacing between connectors to facilitate polarized or locking connector types / wire headers

Changed orientation of MS1/2/3 jumpers to (hopefully) make it easier to remove / put on, and give more room to the pololu decoup caps

Sent design to boardhouse for prototypes


Rev 0.3 MS1/2/3 for each motor separated. Unfortunately the best place for this to go is under the pololus, needing you to remove the pololu to change it's microstepping settings. Oh well, I'm hoping this is a set-it-and-forget-it type of thing.

Added optional 4-pin atx 12v connector to support large hotbed or extruder loads, up to 20A. 3A if just using the hdd connector

Adjusted schematic to put MOSFETs gates on PWM pins for less software intense temp control.

Moved endstop connectors to other side of board.

Added 12V power connectors in their place, for always on fan, or whatever. Watch out for current rating. Maybe a couple of fuses is in order....


Rev 0.1 First prototype, first design, first PCB ordered, first assembled, etc.