Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - gaston

Pages: [1]
1
Troubleshooting / résolution des problèmes / Règles de la section
« le: 28 septembre, 2016, 08:35:16 pm »
Bonjour

Afin de faciliter la recherche dans cette section, je vous demande, lors de la création d'un nouveau Post, de mettre un [tag] dans le sujet en fonction de la machine concernée.

Exemples:
- un sujet pour un problème sur l'axe Z se présentera sous ce genre: [XL300] Axe Z ne monte pas. Ou bien [Core bois] Axe ... (En effet, la différence entre les deux machines est "flagrante" au niveau du Z, on attaque la lecture du sujet en sachant de quoi ça parle).

- un sujet sur la chauffe de la hotend sera: [ALL] Pas de chauffe de la hotend. (all=tout) Car cela concerne tout type de machines.

Gaston


Ce post est, pour le moment, ouvert aux commentaires (et sujet à modifications) afin de m'aider à connaitre vos besoins et de cibler "quoi faire" ;)

3
Accessories/Accessoires / un oscilloscope "pas chère" ?
« le: 02 septembre, 2016, 12:36:46 am »
Coucou,

si vous avez besoin de mesurer un signal (en courant continu et <5V) et que vous avez un combo "RAMPS Arduino et grand ecran LCD"
Vous avez ce qu'il faut ;)

Vous devez retirer les pololus, les cavaliers, les différentes sonde et les endstop  (le plus simple est d'avoir une Ramps + Arduino d'avance :p )
Ensuite, on ouvre un nouveau projet Arduino, et on colle le code suivant:

#include "U8glib.h"
#include <EEPROM.h>

// Variables you might want to play with
byte useThreshold = 1;                  // 0 = Off, 1 = Rising, 2 = Falling
byte theThreshold = 128;                // 0-255, Multiplied by voltageConst
unsigned int timePeriod = 200;          // 0-65535, us or ms per measurement (max 0.065s or 65.535s)
byte voltageRange = 1;                  // 1 = 0-3.3V, 2 = 0-1.65V, 3 = 0-0.825V
byte ledBacklight = 100;

boolean autoHScale = true;             // Automatic horizontal (time) scaling
boolean linesNotDots = true;            // Draw lines between data points

// Variables that can probably be left alone
const byte vTextShift = 3;              // Vertical text shift (to vertically align info)
const byte numOfSamples = 100;          // Leave at 100 for 128x64 pixel display
unsigned int HQadcReadings[numOfSamples];
byte adcReadings[numOfSamples];
byte thresLocation = 0;                 // Threshold bar location
float voltageConst = 0.052381;          // Scaling factor for converting 0-63 to V
float avgV = 0.0;   
float maxV = 0.0;
float minV = 0.0;
float ptopV = 0.0;
float theFreq = 0;

const byte theAnalogPin = A0;             // Data read pin

const byte lcdLED = 6;                   // LED Backlight
const byte lcdA0 = A0;                    // pin "X Stepper" on RAMPS for A0 (probe)
const byte lcdRESET = 8;                 // Low reset /
const byte lcdCS = 9;                    // SPI Chip Select (internally pulled up), active low /overide for RAMPS
const byte lcdMOSI = 11;                 // SPI Data transmission /overide for RAMPS
const byte lcdSCK = 13;                  // SPI Serial Clock /overide for RAMPS

// SW SPI:
//U8GLIB_MINI12864_2X u8g(lcdSCK, lcdMOSI, lcdCS, lcdA0, lcdRESET);
// HW SPI:
U8GLIB_ST7920_128X64_4X u8g(23, 17, 16); // Replace for RAMPS, original values:  SCK =13, MOSI = 11, CS =  11

// High speed ADC code
// From: http://forum.arduino.cc/index.php?PHPSESSID=e21f9a71b887039092c91a516f9b0f36&topic=6549.15
#define FASTADC 1
// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

void collectData(void) {
  unsigned int tempThres = 0;
  unsigned int i = 0;

  if (autoHScale == true) {
    // With automatic horizontal (time) scaling enabled,
    // scale quickly if the threshold location is far, then slow down
    if (thresLocation > 5*numOfSamples/8) {
      timePeriod = timePeriod + 10;
    } else if (thresLocation < 3*numOfSamples/8) {
      timePeriod = timePeriod - 10;
    } else if (thresLocation > numOfSamples/2) {
      timePeriod = timePeriod + 2;
    } else if (thresLocation < numOfSamples/2) {
      timePeriod = timePeriod - 2;
    }
  }
  // Enforce minimum time periods
  if (timePeriod < 35) {
    timePeriod = 35;
  }
 
  // Adjust voltage constant to fit the voltage range
  if (voltageRange == 1) {
//    voltageConst = 0.0523810; // 0-3.30V
      voltageConst = 0.1024; // 0-5V
  } else if (voltageRange == 2) {
    voltageConst = 0.0261905; // 0-1.65V
  } else if (voltageRange == 3) {
    voltageConst = 0.0130952; //0-0.825V
  }
 
  // If using threshold, wait until it has been reached
  if (voltageRange == 1) tempThres = theThreshold << 2;
  else if (voltageRange == 2) tempThres = theThreshold << 1;
  else if (voltageRange == 3) tempThres = theThreshold;
  if (useThreshold == 1) {
     i = 0; while ((analogRead(theAnalogPin)>tempThres) && (i<32768)) i++;
     i = 0; while ((analogRead(theAnalogPin)<tempThres) && (i<32768)) i++;
  }
  else if (useThreshold == 2) {
     i = 0; while ((analogRead(theAnalogPin)<tempThres) && (i<32768)) i++;
     i = 0; while ((analogRead(theAnalogPin)>tempThres) && (i<32768)) i++;
  }

  // Collect ADC readings
  for (i=0; i<numOfSamples; i++) {
    // Takes 35 us with high speed ADC setting
    HQadcReadings[i] = analogRead(theAnalogPin);
    if (timePeriod > 35)
      delayMicroseconds(timePeriod-35);
  }
  for (i=0; i<numOfSamples; i++) {
    // Scale the readings to 0-63 and clip to 63 if they are out of range.
    if (voltageRange == 1) {
      if (HQadcReadings[i]>>4 < 0b111111) adcReadings[i] = HQadcReadings[i]>>4 & 0b111111;
      else adcReadings[i] = 0b111111;
    } else if (voltageRange == 2) {
      if (HQadcReadings[i]>>3 < 0b111111) adcReadings[i] = HQadcReadings[i]>>3 & 0b111111;
      else adcReadings[i] = 0b111111;
    } else if (voltageRange == 3) {
      if (HQadcReadings[i]>>2 < 0b111111) adcReadings[i] = HQadcReadings[i]>>2 & 0b111111;
      else adcReadings[i] = 0b111111;
    }
    // Invert for display
    adcReadings[i] = 63-adcReadings[i];
  }
 
  // Calculate and display frequency of signal using zero crossing
  if (useThreshold != 0) {
     if (useThreshold == 1) {
        thresLocation = 1;
        while ((adcReadings[thresLocation]<(63-(theThreshold>>2))) && (thresLocation<numOfSamples-1)) (thresLocation++);
        thresLocation++;
        while ((adcReadings[thresLocation]>(63-(theThreshold>>2))) && (thresLocation<numOfSamples-1)) (thresLocation++);
     }
     else if (useThreshold == 2) {
        thresLocation = 1;
        while ((adcReadings[thresLocation]>(63-(theThreshold>>2))) && (thresLocation<numOfSamples-1)) (thresLocation++);
        thresLocation++;
        while ((adcReadings[thresLocation]<(63-(theThreshold>>2))) && (thresLocation<numOfSamples-1)) (thresLocation++);
     }

     theFreq = (float) 1000/(thresLocation * timePeriod) * 1000;
  }
 
  // Average Voltage
  avgV = 0;
  for (i=0; i<numOfSamples; i++)
     avgV = avgV + adcReadings[i];
  avgV = (63-(avgV / numOfSamples)) * voltageConst;

  // Maximum Voltage
  maxV = 63;
  for (i=0; i<numOfSamples; i++)
     if (adcReadings[i]<maxV) maxV = adcReadings[i];
  maxV = (63-maxV) * voltageConst;

  // Minimum Voltage
  minV = 0;
  for (i=0; i<numOfSamples; i++)
     if (adcReadings[i]>minV) minV = adcReadings[i];
  minV = (63-minV) * voltageConst;

  // Peak-to-Peak Voltage
  ptopV = maxV - minV;
}

void handleSerial(void) {
  char inByte;
  char dataByte;
  boolean exitLoop = false;
  do {
    // Clear out buffer
    do {
      inByte = Serial.read();
    } while (Serial.available() > 0);
 
    Serial.print("\nArduino LCD Oscilloscope\n");
    Serial.print(" 1 - Change threshold usage (currently: ");
      if (useThreshold == 0) Serial.print("Off)\n");
      else if (useThreshold == 1) Serial.print("Rise)\n");
      else if (useThreshold == 2) Serial.print("Fall)\n");
    Serial.print(" 2 - Change threshold value (currently: ");
      Serial.print(theThreshold, DEC); Serial.print(")\n");
    Serial.print(" 3 - Change sampling period (currently: ");
      Serial.print(timePeriod, DEC); Serial.print(")\n");
    Serial.print(" 4 - Change voltage range (currently: ");
      if (voltageRange == 1) Serial.print("0-3.3V)\n");
      else if (voltageRange == 2) Serial.print("0-1.65V)\n");
      else if (voltageRange == 3) Serial.print("0-0.825V)\n");
    Serial.print(" 5 - Toggle auto horizontal (time) scaling (currently: ");
      if (autoHScale == true) Serial.print("On)\n");
      else if (autoHScale == false) Serial.print("Off)\n");
    Serial.print(" 6 - Toggle line/dot display (currently: ");
      if (linesNotDots == true) Serial.print("Lines)\n");
      else if (linesNotDots == false) Serial.print("Dots)\n");
    Serial.print(" 8 - Exit\n");
   
    // Wait for input/response, refresh display while in menu
    do {
      collectData();
      // Picture Display Loop
      u8g.firstPage(); 
      do { draw(); } while( u8g.nextPage() );
    } while (Serial.available() == 0);
    inByte = Serial.read();
   
    if (inByte == '1') {
      Serial.print("Change threshold usage\n");
      Serial.print(" 0 - Off\n");
      Serial.print(" 1 - Rise\n");
      Serial.print(" 2 - Fall\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '0') useThreshold = 0;
      else if (dataByte == '1') useThreshold = 1;
      else if (dataByte == '2') useThreshold = 2;
    } else if (inByte == '2') {
      Serial.print("Change threshold value (thresholds for 0-3.3V,0-1.65V,0-0.825V ranges)\n");
      Serial.print(" 0 - 32 (0.41V, 0.21V, 0.10V)\n");
      Serial.print(" 1 - 80 (1.04V, 0.52V, 0.26V)\n");
      Serial.print(" 2 - 128 (1.66V, 0.83V, 0.41V)\n");
      Serial.print(" 3 - 176 (2.28V, 1.14V, 0.57V)\n");
      Serial.print(" 4 - 224 (2.90V, 1.45V, 0.72V)\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '0') theThreshold = 32;
      else if (dataByte == '1') theThreshold = 80;
      else if (dataByte == '2') theThreshold = 128;
      else if (dataByte == '3') theThreshold = 176;
      else if (dataByte == '4') theThreshold = 224;
    } else if (inByte == '3') {
      Serial.print("Change sampling frequency\n");
      Serial.print(" 0 - 28 kHz (35 us/sample)\n");
      Serial.print(" 1 - 20 kHz (50 us/sample)\n");
      Serial.print(" 2 - 10 kHz (100 us/sample)\n");
      Serial.print(" 3 - 5 kHz (200 us/sample)\n");
      Serial.print(" 4 - 2.5 kHz (400 us/sample)\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '0') timePeriod = 35;
      else if (dataByte == '1') timePeriod = 50;
      else if (dataByte == '2') timePeriod = 100;
      else if (dataByte == '3') timePeriod = 200;
      else if (dataByte == '4') timePeriod = 400;
    } else if (inByte == '4') {
      Serial.print("Change voltage range\n");
      Serial.print(" 1 - 0-3.3V\n");
      Serial.print(" 2 - 0-1.65V\n");
      Serial.print(" 3 - 0-0.825V\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '1') voltageRange = 1;
      else if (dataByte == '2') voltageRange = 2;
      else if (dataByte == '3') voltageRange = 3;
    } else if (inByte == '5') {
      Serial.print("Toggle auto horizontal (time) scaling\n");
      Serial.print(" 0 - Off\n");
      Serial.print(" 1 - On\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '0') autoHScale = false;
      else if (dataByte == '1') autoHScale = true;
    } else if (inByte == '6') {
      Serial.print("Toggle line/dot display\n");
      Serial.print(" 0 - Lines\n");
      Serial.print(" 1 - Dots\n");
      do { } while (Serial.available() == 0);
      dataByte = Serial.read();
      if (dataByte == '0') linesNotDots = true;
      else if (dataByte == '1') linesNotDots = false;
    } else if (inByte == '8') {
      Serial.print("Bye!\n");
      exitLoop = true;
    }
  } while (exitLoop == false);
}

void draw(void) {
  int i;
  char buffer[16];
 
  u8g.setFont(u8g_font_micro);
 
  // Draw static text
  u8g.drawStr(0, 5+vTextShift, "Av");
  u8g.drawStr(0, 11+vTextShift, "Mx");
  u8g.drawStr(0, 17+vTextShift, "Mn");
  u8g.drawStr(0, 23+vTextShift, "PP");
  u8g.drawStr(0, 29+vTextShift, "Th");
  u8g.drawStr(24, 35+vTextShift, "V");
  u8g.drawStr(0, 41+vTextShift, "Tm");
  u8g.drawStr(4, 47+vTextShift, "ms/div");
  u8g.drawStr(20, 53+vTextShift, "Hz");
  u8g.drawStr(0, 59+vTextShift, "R");
 
  // Draw dynamic text
  if (autoHScale == true) u8g.drawStr(124, 5, "A");
  dtostrf(avgV, 3, 2, buffer);
  u8g.drawStr(12, 5+vTextShift, buffer);
  dtostrf(maxV, 3, 2, buffer);
  u8g.drawStr(12, 11+vTextShift, buffer);
  dtostrf(minV, 3, 2, buffer);
  u8g.drawStr(12, 17+vTextShift, buffer);
  dtostrf(ptopV, 3, 2, buffer);
  u8g.drawStr(12, 23+vTextShift, buffer);
  dtostrf(theFreq, 5, 0, buffer);
  u8g.drawStr(0, 53+vTextShift, buffer);
  if (useThreshold == 0) {
    u8g.drawStr(12, 29+vTextShift, "Off");
  } else if (useThreshold == 1) {
    u8g.drawStr(12, 29+vTextShift, "Rise");
    dtostrf((float) (theThreshold>>2) * voltageConst, 3, 2, buffer);
  } else if (useThreshold == 2) {
    u8g.drawStr(12, 29+vTextShift, "Fall");
    dtostrf((float) (theThreshold>>2) * voltageConst, 3, 2, buffer);
  }
  u8g.drawStr(8, 35+vTextShift, buffer);
  // Correctly format the text so that there are always 4 characters
  if (timePeriod < 400) {
    dtostrf((float) timePeriod/1000 * 25, 3, 2, buffer);
  } else if (timePeriod < 4000) {
    dtostrf((float) timePeriod/1000 * 25, 3, 1, buffer);
  } else if (timePeriod < 40000) {
    dtostrf((float) timePeriod/1000 * 25, 3, 0, buffer);
  } else { // Out of range
    dtostrf((float) 0.00, 3, 2, buffer);
  }
  u8g.drawStr(12, 41+vTextShift, buffer);
  if (voltageRange == 1) {
    u8g.drawStr(4, 59+vTextShift, "0-3.30");
  } else if (voltageRange == 2) {
    u8g.drawStr(4, 59+vTextShift, "0-1.65");
  } else if (voltageRange == 3) {
    u8g.drawStr(4, 59+vTextShift, "0-0.83");
  }
 
  // Display graph lines
  u8g.drawLine((128-numOfSamples),0,(128-numOfSamples),63);
  if (useThreshold != 0)
     for (i=29; i<127; i+=3)
        u8g.drawPixel(i,63-(theThreshold>>2));
  for (i=0; i<63; i+=5) {
     u8g.drawPixel(53,i);
     u8g.drawPixel(78,i);
     u8g.drawPixel(103,i);
     u8g.drawPixel(127,i);
  }
  // Threshold bar
  for (i=0; i<63; i+=3)
     u8g.drawPixel(thresLocation+(128-numOfSamples),i);
  // Draw ADC readings
  if (linesNotDots == true) {
    for (i=1; i<numOfSamples; i++) // Draw using lines
      u8g.drawLine(i+(128-numOfSamples)-1,adcReadings[i-1],i+(128-numOfSamples),adcReadings[i]);
  } else {
    for (i=2; i<numOfSamples; i++) // Draw using points
      u8g.drawPixel(i+(128-numOfSamples),adcReadings[i]);
  }
}

void setup() {
  u8g.begin();
  Serial.begin(9600);
 
  // Turn on LED backlight
  analogWrite(lcdLED, ledBacklight);
 
  #if FASTADC
    // set prescale to 16
    sbi(ADCSRA,ADPS2) ;
    cbi(ADCSRA,ADPS1) ;
    cbi(ADCSRA,ADPS0) ;
  #endif
  delay(100);
}

void loop() {
  collectData();
  // Picture Display Loop
  u8g.firstPage(); 
  do { draw(); } while( u8g.nextPage() );

  // If user sends any serial data, show menu
  if (Serial.available() > 0) {
    handleSerial();
  }

  // rebuild the picture after some delay
  delay(100);
}


On importe la bibliothèque "U8glib.h"
On compile et on téléverse.
Et hop: :)



Et pour le branchement des sondes:



Je n'ai rien inventé / codé, j'ai juste adapté ce code trouvé sur le net: http://www.semifluid.com/2013/05/28/arduino-fio-lcd-oscilloscope/

ATTENTION: Ne pas inverser le GND et le + (destruction possible de l'Arduino)
ATTENTION: Ne pas dépasser 5V sur la borne A0 ( le +) (destruction possible de l'Arduino)
voir PONT DIVISEUR DE TENSION pour des tensions supérieurs

Have fun ;)

4
Prints / Impressions / un autre type "d'impressions"
« le: 07 septembre, 2014, 11:11:22 pm »
Elo

J'ai passé l'après midi à "imprimer" sans fondre un centimètre de PLA :)

https://www.youtube.com/watch?v=qjFYvePLGzg

Tout est venu du bruit des moteurs et il me semblais bien que j'avais vu ça sur des CNC, j'ai donc cherché s'il existait ça pour les Reprap, et bien oui, ça a déjà été fait
De fil en aiguille (comprendre de liens en liens) je suis tombé sur un site qui permet de convertir un fichier .mid (midi) en .gcode
J'ai donc pas mal joué et j'ai fait quelques .gcode pour tester
La syntaxe se présente comme:nom_de_la_musique.La_position_ou_doit_se_trouver_la_tête_avant_de_lancer.gcode
En gros, vous placez la tête sur home ou bien au centre du plateau, vous levez le Z à 10mm et Play :)

Bien sur, ce n'est pas une fonction normal d'une Reprap, gardez bien la main sur l’arrêt d'urgence ou tout autre moyen de coupure.
J'ai fait tourné tout les codes sur ma machine donc je ne les propose pas comme ça, mais bien sur, si quoi que ce soit devait arriver à votre imprimante ou pire, votre maison ou vous, bin j'y suis pour rien ;)


Have fun

Gaston

5
Prints / Impressions / Un accouchement sans probleme
« le: 02 septembre, 2014, 07:43:33 pm »
Bonjour,

Après environ 10 jours (plutôt nuits, j’attends mes vacances avec impatience...) de conception, dessin, impression, ma petite Smartrap a accouchée d'un beau bébé de 45 cm pour 4,5 Kg:

La GaStRaP:


D'autres photos ICI

Elle est un peu "oversize" mais j'ai fais avec ce que j'avais sous le coude, à savoir pour le principal, les moteurs + extrudeur, hotend et la RAMPS de la Smartrap, de la barre inox de diamètre 10 et de la visserie divers.
C'est en gros un mélange de la Smartrap de Serge, de la version de Regpye sur la section anglaise de reprap.org et un peu de ma "sauce" :P
J'ai surtout voulu voir ce que ça donnerais de faire marcher tout ça uniquement avec des roulements imprimés (sauf les 608 de l'extrudeur)
Bin le résultat est plutôt pas mal, je me suis rendu compte de mes erreurs mais la Gastrap me permet d'imprimer quand même ses "correctifs" :)

Tout ça pour dire que c'est top l'impression 3D, on a une idée et hop, 3 coups de Sketchup plus tard (oui, un truc pas vraiment fait pour mais je le connais pas trop mal ;) ) on imprime ce à quoi on a pensé :)
Merci Serge d'avoir ouvert cette nouvelle porte chez moi (qui par contre est très chronophage :P)

Bien sur ce "truc" est offert à la communauté, les sources sont là pour le moment, je ferais un truc "plus propre" après.

Gaston

6
Prints / Impressions / Les impressions de Gaston
« le: 05 août, 2014, 07:45:09 pm »
Bonjour,

Comme j'ai été assez étonné des impressions que j'ai faite ce WE avec le green nuclear "noname" de RRW, je me suis décidé à faire une petite galerie photo de celle qui valent le coup.
J'ajouterais donc les photos à ce post pour ne pas faire un sujet par print (je suis devenu imprimeur compulsif :P )
Dans la mesure du possible, je mettrais les liens des .stl
C'est parti:




http://www.thingiverse.com/thing:33804




http://www.makershop.co/shop/fantasygraph/item/guardian-of-the-temple


https://www.thingiverse.com/thing:157866


http://www.makershop.co/shop/fantasygraph/item/donor-s-edition--raven

Gaston

7
User mods / Mods utilisateurs / Fan duct
« le: 31 juillet, 2014, 07:58:24 pm »
Bonsoir

Comme vous l'avez remarqué, l'impression de petites pièces en PLA est un exercice fastidieux (ça chauffe, ça fond, ça colle...)
La ventilation de la pièce en cours devient rapidement "obligatoire".
Beaucoup (dont moi) ont utilisé le cache ventilo qui dirige le flux vers la pièce, ça marche plutôt bien mais a pour inconvénient de ne pas refroidir l’arrière de la pièce.
J'ai longtemps cherché un bon fan duct qui puisse se monter sur la tête de la Smartrap et enfin, j'ai trouvé :)



Bon OK, ça tiens avec un trombone tordu et un élastique (je dois dessiner une pièce pour fixer tout ça) et il faut un peu limer le dessous du fan duct pour ne pas  qu'il touche le lit avant la tête :P.
4 ou 5 impressions et ça ne bouge pas, pas de pla fondu :)



Par contre, j'ai une tête fixe, mais ça devrais passer pour les autres ;)

Bon print,
Gaston

8
Prints / Impressions / Time lapse
« le: 29 juillet, 2014, 02:18:53 am »
Elo

Un print assez réussi mais le montage était trop fragile...
Je vous présente donc ici un petit montage vidéo d'un time lapse réalisé grâce à Octopi et une camera de PS3 (et une Smartrap bien sur ;) )

https://www.youtube.com/watch?v=7OQlrK5-VIg

Qui reconnais le thème musicale (attention, plusieurs réponses possibles ;) )
Pour la casse, je l'explique par une impression à l’échelle 0,5 ... je le retenterais à l’échelle 1 sur 2 plateaux ;)

J'attend vos critiques (voir au kazoo des compliments :P ) sur ce montage

Gaston

9
User mods / Mods utilisateurs / Branchement du ventilateur de la tête
« le: 24 juillet, 2014, 07:01:46 pm »
Bonjour

Comme j'ai répondu dans un autre post, j'avais déjà expliqué sur Reprap.org comment j'ai branché mes différents ventilos. Je remet ça ici ;)

Je me suis toujours demandé comment mettre le ventilo de la tête à fond pendant l'impression (car repetier ou cura jouent au yoyo avec la vitesse, ce qui fait surchauffer la tête entrainant bouchage et / ou torsion du support de tête.)
La solution est encore une fois dans Marlin. Comme nous n'utilisons pas de lit chauffant, la borne D8 de la ramps ne sert pas à grand chose. Il nous suffit donc de passer dans configuration.h au mode 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
Mais une fois fait, le chauffage passe en d8, le ventilo de tête sur D10 et celui de pièce reste sur D9, en gros, c'est le bronx...
Je vous ai donc modifié le fichier pin.h pour que les branchements ne changent pas: chauffe en D10, ventilo tête + ramps en D9 et ventilo de pièce en D8 (attention, j'ai cherché longtemps pourquoi D8 ne marchais pas, un petit tour sur le pcb pour se rendre compte qu'il faut brancher la 2eme prise d'alim... comme tout le monde n'utilise pas de ventilo de pièce, je l'ai déplacé sur D8)
Pour démarrer le ventilo de la tête et de la ramp, il faut bouger un des moteur.
fichier en pièce jointe

Voila, j’espère que ça aidera :)
Bon print
Gaston

10
Prints / Impressions / Never forget ...
« le: 18 juillet, 2014, 03:34:02 am »
Et oui, on a bien tous commencés par un premier "print en mode crash test" ...
Voila le mien :



N'ayez pas peur, postez donc :P

11
User mods / Mods utilisateurs / MK7 Geared Extruder
« le: 16 juillet, 2014, 10:45:12 pm »
Bonsoir,

J'ai déjà présenté ce mod sur Reprap.org mais il arrive avec une GROSSE nouveauté :)
Fabrice m'a redessiné le corps qui obligeais à massacrer le tout à la Dremel (c'est la photo que vous avez vu dans la section "prints" ;) ) Un GRAND MERCI à lui :)

Maintenant, tout tiens bien, les roulements ne se "baladent" plus, c'est "propre" PHOTO

Et en plus, ça marche plutôt bien :)



Le dossier ou tous les .stl nécessaires sont rangés

En plus de ces pièces imprimées, il vous faudra:
3 roulements 608 (Z minimum, il faut une "flasque" sur les billes)
1 vis M5 tête hexagonale de longueur 50mm
1 écrou M5 type "nylstop" (ou bien 2 écrous M5 "classiques)
2 rondelles M5
1 MK7 ;)
1 raccord pneumatique diamètre 4 fileté en M5 (optionnel, à défaut, 2 écrous M4)

Si c'est votre premier "geared", imprimer la plate complète, si comme moi vous avez déjà les pignons (surtout le gros, mais prévu à la base pour une vis M8), il faudra imprimer l'adaptateur M8 to M5 et une bague supplémentaire.
Petit conseil pour le slice, j'ai utilisé Cura (14.07) et sa superbe option de support (le premier: touching buildplate), il devrais générer les supports sous le corps de l'extrudeur, sinon, pour le reste, layer 0,3; infill 30% et 3 périmetres (soit 1,5mm)

Pour l'assemblage, rien de bien compliqué, vous faites comme sur la photo :P
Petit trucs quand même, j'ai repercé les passages du filament car c'est un poil serré.
Pour fixer le "bowden", 3 possibilités:
-visser un raccord pneumatique M5 (Fabrice m'a modifié ça en passant la sortie de 5 à 4mm :) )
-percer à un diamètre 5 pour passer l'embout laiton d'origine (nécessite le "tong" d'origine mais il faut le caler)
-"fileter" le tube teflon avec un écrou M4 et le fixer avec 2 écrous M4

Je conseil de faire un méplat sur la vis M5 au niveau du serrage du MK7 afin qu'il ne tourne pas

Dernier point, rentrer le nouveau step moteur qui est de 422 step/mm. Pour se faire, soit dans la gestion eeprom de Repetier Host, soit en rentrant la commande "M92 E422" puis "M500".
Vérifier la calibration en extrudant au moins 100 mm.

Voila, encore un grand MERCI à Fabrice qui m'a redessiné les pièces au bonnes cote :) (une pensée pour lui qui est en attente d'un pololu... et qui du coup n'imprime pas, courage ;) )

Smartrapez bien et bon print ;)

Gaston

EDIT: J'ai oublié de dire que c'étais à la base une création de PLAU ... pardon, allez y, jetez moi des pierres ...

12
Bonsoir,

Pour la première impression que je vous propose, c'est une pièce "utile" pour la Smartrap.
Je trouve qu'elle est particulièrement réussie :)
 

(Pardon pour la taille il doit manquer à Serge une correction de la taille des images ;) C'est la 1ere image non ?)

Découpée avec Cura : Layer 0,3 ; infill 30%; 1,5mm de périmètre (soit 3 couches)
Imprimée avec Repetier Host

Certains ont reconnu de quelle pièce il s'agit ;) pour en savoir plus, rendez vous dans la section "mod" :)

Gaston

Pages: [1]