Zelfbouw 3d CoreXY printer

Mijn wens is om naast de bestaande printers een 3Dprinter te maken met een extra groot werkoppervlak.  Daarmee wil ik onder andere een paar gootstukken en onderdelen voor de blower van de airco in een oude auto printen.

Ondertussen heb ik heel wat verschillende 3d-printers (na-) gebouwd, hier en daar met delen van andere printers of met aanpassingen naar eigen inzicht en ervaring.

De beschrijvingen daarvan zijn in het Engels gemaakt en kun je HIER op mijn website vinden.

Mijn ervaringen met CoreXY printers zijn uitstekend vanwege de grote nauwkeurigheid en hoge printsnelheid,  zodat ik dit type heb gekozen voor mijn gewenste printformaat van 500x500x500 mm.

Het wordt een stille printer met 3 extruders voor 3 soorten/kleuren filament (gelijktijdig of apart) en 1 nozzle.

Alle benodigde materialen zijn op voorraad, en het belangrijkste is de keuze voor de definitieve opzet van de printer.

Omdat ik een zo klein mogelijke printer wil hebben ondanks de grote printmaat zijn de keuzes qua bouw behoorlijk beperkt.  De volgende uitgangspunten zijn leidend bij de bouw:

  • Te gebruiken extrusie-materiaal is aluminium type 2040 van max 60cm lang, deze heb ik voldoende op voorraad;
  • Kast moet eenvoudig gesloten kunnen worden gemaakt, dus niet teveel delen die buiten de extrusie steken;
  • De X-Y Gantry is vast gemonteerd bovenin de printer en beweegt niet op de Z-as;
  • Voor de Y-as worden 2 lineaire rails MGN9H van 60cm lang gebruikt;
  • Voor de X-as wordt 1 lineaire rail MGN12H van 60 cm lang gebruikt;
  • Het bed is bewegend op de Z-as en gelagerd met LUU 8 mm bussen op  4 stuks  ‘rods’van 8mm;
  • De X- en Y motoren zijn buiten de framehoeken geplaatst voor maximale X- en Y uitslag (breedte en lengte van de beweging van het hotend);
  • Er is 1 Z-motor die via één closed loop belt beide schroefassen aandrijft voor de Z-beweging van het bed;
  • Er komt een triple hotend in, luchtgekoeld met 3 bowden extruders en 1 gezamenlijke nozzle;
  • Voor het besturingsdeel heb ik een  bestaand Duet wifi board gekozen. Daar moet nog wel een DUEX uitbreidingsboard bijkomen voor de extra extruders.

 

Voorbeeld voor de onderkant en Z-as aandrijving (van een Ender3-ombouw naar CoreXY):

Voorbeeld motorplaatsing bij een H-BOT gantry:

en bij een CoreXY met rods ipv linear rails:

En nog een voobeeld met linear rails maar dan aan de binnenkant van de Y-legs.

Mijn ontwerp:  Ik wil de Y-rails bovenop plaatsen zodat er meer schuifruimte komt voor de X-as en het hotend in zijwaartse richting.  De X-as komt aan de zijkant zodat er maximale ruimte komt tussen beide Y-extrusies.  Theoretisch krijg je dan een kastbreedte van 500 mm (gewenste bruikbare bedbreedte) plus 5cm (de breedte van het hotend) plus 4 cm (2 maal extrusiebreedte), samen 590 mm, afgerond 60 cm.  Omdat ik openbuild corners van 2x2cm gebruik is de breedte gelijk aan de diepte bij gebruik van 60cm extrusie 60+ (2x2cm)=64 cm.   De hoogte is dan 60cm+ (2×4) =68cm.

Ontwerp gantry:

Ronde klok WS2812 & Arduino nano

ABOVE: Circular clock, completed project, reading 05h:41m and crossing to 05h:42m.  Red=hours, Green=minutes

Above: Clock without case, with open components.

READ THIS ARTICLE IN ENGLISH

In de bovenstaande video zie je alle benodigde onderdelen voor de electronica.  Een arduino Nano, een tijdmodule LS3231 met batterij back-up en een 4-delige ring met elk 15 stuks WS2812 LED’s die zorgen voor een 160mm 60 LED units klok.  Je kunt hem bouwen als een open gebouwde unit zoals hierboven afgebeeld met draad of in een 3d printbare slanke behuizing die ik heb ontwikkeld.  Zie de foto’s hieronder.

Voor het bouwen van deze mooie nauwkeurige klok, kun je mijn ontwerp files voor de behuizing gebruiken op elke 3d printer met een horizontale bed maat van minimaal 165x165mm.

Download de beide print STL’s OF van de Prusa gedeelde site waar ik deze ontwerpen heb geupload (zoek op de prusa site naar ws2812 circulaire arduino klok).

OF haal het STL bestand voor de VOORKANT van de klok van mijn website HIER

EN haal het STL bestand voor de ACHTERKANT van de klok van mijn website HIER

Eén STL is voor de achterkant en bevat de Nano box, de andere is voor de voorkant van de klok.  Positioneer de achterste STL 180 graden (dus omhoog gaat omlaag) in uw slicer, zodat zowel de doos als de LED-behuizing op Z-0 niveau zijn, d.w.z. naar beneden gericht op hetzelfde horizontale niveau.   De voorkant kan het best geprint worden met de platte kant naar beneden.  ABS is niet aan te raden omdat het minder stijf is, maar zal waarschijnlijk ook werken.  Voor mij werkt PETG of PLA het beste.

Gebruik wit filament voor het voorste deel, de achterkant kan elke kleur zijn die je wilt.

In de cirkel worden de 4 WS2812 LED segmenten in 1 volledige cirkel van ongeveer 160mm geplaatst.

Als je de elektronica aan de achterkant hebt aangesloten, schuift de voorkant er zo overheen. Geen lijm nodig.  Maar de LED ring kan best op 4 plaatsen met een druppel hotglue aan de basis van de achterste behuizing gelijmd worden.  Dit kun je het beste doen als je zeker weet dat alles goed werkt.

De LED onderdelen zijn verkrijgbaar op o.a. banggood , aliexpress en zo, zoek naar 60LED circle WS2812 die de 160 mm buitendiameter heeft.

Elke LED vertegenwoordigt een punt voor seconden, minuten of als uur indicator.

De kleuren bepalen de functie.  Blauw wordt ook gebruikt als kwartier indicator met minder intensiteit, om een gevoel van positionering te hebben voor de andere LEDS als het donker is.

Kijk naar de video hierboven van het ‘open’ demonstratiemodel om te begrijpen hoe het werkt.

Hieronder vindt je de Arduino code voor de gebruikte Nano3, as-is. het werkt voor mij, en in de code vindt u ook alle benodigde elektrische aansluitingen en de specificaties van de gebruikte Time module.

Haal de Arduino code HIER

Wanneer aangesloten op je PC, kun je de Arduino programmeren en via de seriële interface kun je naderhand speciale instellingen van de klok wijzigen, zoals helderheid, speciale kwartierverlichtingsindicatoren, enzovoort. het staat allemaal in de code hieronder.

De aansturing kan via een seriële interface met de usb ingang van de Arduino, via een terminalprogramma zoals YAT of met de interface van het Arduino IDE programma.

De commando’s zijn:

f; fader UIT
F; fader AAN
m (getal); dim de 4 blauwe marker LED’s met waarde (getal)
S; synchroniseren met RTC tijd
s; synchroniseren met systeemtijd (computer)
t (tijd); systeemtijd veranderen in:
b; helderheid van alle niet-marker LED’s

Doneer a.j.b. $1 aan mijn paypal account als je (delen van) mijn ontwikkelde materialen gebruikt, zodat ik kan doorgaan met het delen van leuke dingen voor jou om te downloaden

Ik hoop dat alles goed gaat lukken!

Succes,

Jan

De Arduino code, te gebruiken voor het programmeren van de Arduino Nano3 is beschikbaar onderaan dit bericht als platte tekst om te importeren in een leeg arduino bestand (met kopiëren en plakken).

Zorg ervoor dat je alleen de bibliotheken en tijdmodule gebruikt die in de code zijn aangegeven!  De gebruikte tijdmodule is van de betere generatie die de tijd zeer goed vasthoudt, ook in stand-by.

Gebruik voor het verbinden van de draden tussen de neopixel segmenten, de arduino en de tijdmodule een temperatuurgeregelde soldeerbout.  Gebruik een ventilator als je aan het solderen bent en adem geen giftige gassen in tijdens het solderen.

De Arduino code is hieronder weergegeven, te importeren in Arduino IDE in een .ino bestand.  Met de Arduino IDE moet je vervolgens de code compileren om de Arduino Nano geflasht te krijgen met het programma.


/**
* NeoClock
*
* Clock using 60 WS2812B/Neopixel LEDs and DS3231 RTC
* Small changes and updates made by jan Griffioen, Amsterdam Europe 2018-2021
* Libraries needed:
* * Adafruit NeoPixel (Library Manager) – Phil Burgess / Paint Your Dragon for Adafruit Industries – LGPL3
* *
* * Arduino Timezone Library (https://github.com/JChristensen/Timezone) – Jack Christensen – CC-BY-SA
* * Time Library (https://github.com/PaulStoffregen/Time) – Paul Stoffregen, Michael Margolis – LGPL2.1
*/

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif

#if defined(ESP8266)
#include <pgmspace.h>
#else
#include <avr/pgmspace.h>
#endif

/* for software wire use below
#include <SoftwareWire.h> // must be included here so that Arduino library object file references work
#include <RtcDS3231.h>

SoftwareWire myWire(SDA, SCL);
RtcDS3231<SoftwareWire> Rtc(myWire);
for software wire use above */

/* for normal hardware wire use below */
#include <Wire.h> // must be included here so that Arduino library object file references work
#include <RtcDS3231.h>
RtcDS3231<TwoWire> Rtc(Wire);
/* for normal hardware wire use above */

#include <TimeLib.h> //http://www.arduino.cc/playground/Code/Time
#include <Timezone.h> //https://github.com/JChristensen/Timezone

#include <EEPROM.h>

//Central European Time (Frankfurt, Paris)
TimeChangeRule CEST = {“CEST”, Last, Sun, Mar, 2, 120}; //Central European Summer Time
TimeChangeRule CET = {“CET “, Last, Sun, Oct, 3, 60}; //Central European Standard Time
Timezone CE(CEST, CET);

TimeChangeRule *tcr; //pointer to the time change rule, use to get the TZ abbrev
time_t utc;

#define PIN 5

unsigned long lastMillis = millis();
byte dimmer = 0x88;
byte hmark = 0;

byte ohour=0;
byte ominute=0;
byte osecond=0;

boolean fader=true;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

void setup() {

Serial.begin(57600);

strip.begin();
strip.setBrightness(50);

// Some example procedures showing how to display to the pixels:
// colorWipe(strip.Color(255, 0, 0), 50); // Red
//colorWipe(strip.Color(0, 255, 0), 50); // Green
//colorWipe(strip.Color(0, 0, 255), 50); // Blue
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
// Send a theater pixel chase in…
//theaterChase(strip.Color(127, 127, 127), 50); // White
theaterChase(strip.Color(127, 0, 0), 50); // Red
//theaterChase(strip.Color(0, 0, 127), 50); // Blue

//rainbow(20);
rainbowCycle(2);
//theaterChaseRainbow(50);

strip.clear();
strip.show(); // Initialize all pixels to ‘off’

Rtc.Begin();

Rtc.Enable32kHzPin(false);
Rtc.SetSquareWavePin(DS3231SquareWavePin_ModeNone);

if (!Rtc.GetIsRunning())
{
Serial.println(“Rtc was not actively running, starting now”);
Rtc.SetIsRunning(true);
}

if (!Rtc.IsDateTimeValid())
{
// Common Cuases:
// 1) the battery on the device is low or even missing and the power line was disconnected
Serial.println(“Rtc lost confidence in the DateTime!”);
}

byte eechk = EEPROM.read(0);
if(eechk == 0xAA) { //Assume this is our config and not a fresh chip
dimmer = EEPROM.read(1);
hmark = EEPROM.read(2);
fader = EEPROM.read(3);
}

timeSync();
}

void calcTime(void) {
utc = now();
CE.toLocal(utc, &tcr);
ohour = hour(utc);
ominute = minute(utc);
if(osecond != second(utc)) {
osecond = second(utc);
lastMillis = millis();

if(ominute == 0 && osecond == 0) {
//Every hour
timeSync();
}
}
}

void addPixelColor(byte pixel, byte color, byte brightness) {
color *= 8;
uint32_t acolor = brightness;
acolor <<= color;
uint32_t ocolor = strip.getPixelColor(pixel);
ocolor |= acolor;
strip.setPixelColor(pixel, ocolor);
}

void drawClock(byte h, byte m, byte s) {
strip.clear();

addPixelColor(m, 1, dimmer);

if(hmark > 0) {
for(byte i = 0; i<12; i++) {
addPixelColor((5*i), 2, hmark);
}
}

h %= 12;
h *= 5;
h += (m/12);
addPixelColor(h, 2, dimmer);
// 0x RR GG BB

if(fader) {
byte dim_s1 = dimmer;
byte dim_s2 = 0;
byte px_s2 = s+1;
if(px_s2 >= 60) px_s2 = 0;
unsigned long curMillis = millis()-lastMillis;
if(curMillis < 250) {
dim_s2 = 0;
dim_s1 = dimmer;
}else{
dim_s2 = map(curMillis, 250, 1000, 0, dimmer);
dim_s1 = dimmer – map(curMillis, 250, 1000, 0, dimmer);
}

// Add blue low intensity dots for 12(0),3, 6 and 9 O’çlock to verify where the clock is positioned..
addPixelColor(15, 128, 10);
addPixelColor(30, 128, 10);
addPixelColor(45, 128, 10);
addPixelColor(0, 128, 40);

addPixelColor(s, 0, dim_s1);
addPixelColor(px_s2, 0, dim_s2);
}else{
addPixelColor(s, 0, dimmer);
}

// add a background color
// setBrightness(Serial.parseInt());
// uint16_t j;
// for(j=0; j<60; j++) { // 1 cycles of colors on wheel
// strip.setPixelColor(j, Wheel(((j * 256 / strip.numPixels()) + j) & 255));
// }

strip.show();
}

byte rounds = 0;

void loop() {
calcTime();

if(rounds++ > 100) {
Serial.print(ohour);
Serial.print(“:”);
Serial.print(ominute);
Serial.print(“:”);
Serial.print(osecond);
Serial.println(“(C)JG-2020”);
rounds = 0;

}
//rainbow(21);
if (osecond == 59){theaterChase(strip.Color(0, 0, 127), 40); }// Blue; }
//if (ominute == 59 AND osecond == 59){theaterChase(strip.Color(0, 127, 0), 50); }// Green}
//if (ohour == 11 AND ominute == 59 AND osecond == 59){theaterChase(strip.Color(127, 127, 0), 50); }// Green}
else {drawClock(ohour,ominute,osecond);}

delay(10);

chkSer();
}

void timeSync(void) {
RtcDateTime dt = Rtc.GetDateTime();
setTime(dt.Hour(),dt.Minute(),dt.Second(),dt.Day(),dt.Month(),dt.Year());

Serial.print(“Synced to: “);
Serial.print(dt.Year());
Serial.print(“-“);
Serial.print(dt.Month());
Serial.print(“-“);
Serial.print(dt.Day());
Serial.print(“-“);
Serial.print(dt.Hour());
Serial.print(“-“);
Serial.print(dt.Minute());
Serial.print(“-“);
Serial.println(dt.Second());
}

void timeSave(void) {
utc = now();

RtcDateTime store = RtcDateTime(year(utc), month(utc), day(utc), hour(utc), minute(utc), second(utc));
Rtc.SetDateTime(store);

Serial.print(“Synced to: “);
Serial.print(year(utc));
Serial.print(“-“);
Serial.print(month(utc));
Serial.print(“-“);
Serial.print(day(utc));
Serial.print(“-“);
Serial.print(hour(utc));
Serial.print(“-“);
Serial.print(minute(utc));
Serial.print(“-“);
Serial.println(second(utc));

}

void setBrightness(byte brightness) {
dimmer = brightness;
}

void chkSer(void) {
unsigned int iy;
byte im,id,iH,iM,iS;

if(!Serial.available()) return;

switch(Serial.read()) {
case ‘b’:
setBrightness(Serial.parseInt());
Serial.print(F(“Brightness changed to: “));
Serial.println(dimmer);
EEPROM.put(0, 0xAA);
EEPROM.put(1, dimmer);
break;
case ’t’:
iy = Serial.parseInt();
im = Serial.parseInt();
id = Serial.parseInt();
iH = Serial.parseInt();
iM = Serial.parseInt();
iS = Serial.parseInt();
setTime(iH,iM,iS,id,im,iy);
Serial.println(F(“System time changed”));
break;
case ‘f’:
fader = false;
EEPROM.put(0, 0xAA);
EEPROM.put(3, 0);
Serial.println(F(“Fader off”));
break;
case ‘F’:
fader = true;
EEPROM.put(0, 0xAA);
EEPROM.put(3, 1);
Serial.println(F(“Fader on”));
break;
case ‘m’:
hmark = Serial.parseInt();
EEPROM.put(0, 0xAA);
EEPROM.put(2, hmark);
Serial.println(F(“HMark changed”));
break;
case ‘s’:
timeSync();
Serial.println(F(“Synced RTC to System”));
break;
case ‘S’:
timeSave();
Serial.println(F(“Synced System to RTC”));
break;
default:
Serial.println(‘?’);
}
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}

void rainbow(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i+j) & 25));//255
}
strip.show();
delay(wait);
}
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
for (int j=0; j<4; j++) { //do 4 cycles of chasing
for (int q=0; q < 3; q++) {
for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, c); //turn every third pixel on
}
strip.show();

delay(wait);

for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //turn every third pixel off
}
}
}
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
for (int j=0; j < 256; j++) { // cycle all 256 colors in the wheel
for (int q=0; q < 3; q++) {
for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, Wheel( (i+j) % 255)); //turn every third pixel on
}
strip.show();

delay(wait);

for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //turn every third pixel off
}
}
}
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r – g – b – back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 – WheelPos;
if(WheelPos < 85) {
return strip.Color(255 – WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 – WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 – WheelPos * 3, 0);
}

K40 CO2 lasersnijder

Mijn Chinese lasercutter die ik al in 2014 kocht, heeft in de loop der jaren een upgrade gekregen.  Zoals vele anderen heb ik het koelsysteem voor de laserbuis in de behuizing gekregen, een aantal LED lampjes binnenin toegevoegd en ook een luchtpomp voor de laserkop toegevoegd.

Al met al werkt de machine nu goed, maar het relatief kleine werkgebied blijft de bottleneck om deze machine voor echt interessante projecten te gebruiken.

Midden 2020 heb ik de lasersnijder gebruikt voor een paar projecten waarbij ik reeksen gesneden acrylaat nodig had.  De machine deed dit vlekkeloos, maar ik heb hem wel buiten gezet om te voorkomen dat er rook in ons huis zou komen.

Ik heb wel wat ideeën om de machine te upgraden met een grotere werkruimte en de elektronica en waterkoeling in een aparte behuizing te plaatsen.  Daar zijn geen materialen voor nodig, behalve 3 lineaire rails en wat aluminium profielen.  Maar- (status mei-2021) ik zal alleen aan dit project beginnen als er werk aan de machine is, aangezien hij al goed werkt zoals hij nu is, hoewel de werkruimte beperkt is.

Ik gebruik Inkscape (freeware) voor het maken van ontwerpen in SVG en importeer deze .SVG bestanden in K40whisperer (ook freeware) die dan de benodigde Gcode naar de K40 lasercutter kan sturen. Dit werkt allemaal erg goed en snel, je hebt hier geen snelle computer voor nodig.  Ik gebruik hiervoor een 10 jaar oude dedicated HP laptop.

In de toekomst wil ik deze lasercutter hetzelfde bord laten gebruiken als mijn grote LED lasersnijder, zodat ik GRBL op beide kan gebruiken.

Zoals je waarschijnlijk weet, kan een K40 of een andere CO2 lasersnijder een bepaald soort materiaal snijden terwijl een gewone LED lasersnijder andere soorten materialen beter kan snijden, als gevolg van het gebruikte soort licht op beide die verschillen in golflengte.

De CO2 snijder kan gemakkelijk acryl snijden en de LED lasersnijder kan dat niet.

De LED snijder heeft een soort stof in het te snijden materiaal nodig om goed te werken.

Wees ervan bewust dat de veiligheidsbril die je nodig hebt ook specifiek is voor één van beide machines.

The original driver board of the K40 CO2 lasercutter
First cut on a piece of tripledeck 4mm multiplex for my clock pieces
The clock’s interior and stand pieces, wood and acrylic. Both cut on the K40
The inside of the K40’s work space with the debree on the bottom. The air hose is green silicon. Also added an emergency cutoff switch for the laser tube. open the hood and the power stops.
The electronics and water cooling on the Right hand side of the K40’s housing. The air cooled radiators are just out of sight to the most right hand side of the housing, 3 pieces of 40x40mm
The acrylic cut for the clock, done in 1 time. This is 3 mm thick.
The thermostatic control of the coolant pump, taken out of its case to set the working temperatures
My solution for the cutting bed was to use an old footboard maze and I welded 4 nuts in it with long bolts that act as feet. This makes it possible to adjust the height 1x for optimum focussing the laser in the center of the to be cut material.

Volvo V70 III 2.0F bifuel koelvloeistof aansluitblok vervangen

’s Morgens loop ik naar de auto en blijkt de auto behoorlijk wat koelvloeistof te hebben gelekt.  Bijgevuld, maar het loopt er even snel weer uit.

De oorzaak was een gescheurde rubberen pakking van het aansluitblok van de koelvloeistof aan de cilinderkop.  Zie de foto’s.

Zoals je op de foto’s kan zien is het een naar binnen gezogen pakking die daarmee ook een stuk van de binnenwand heeft meegenomen.. -)

Het is een GM motor (bifuel) zoals in de periode rond 2010 ook gemonteerd was op de Ford mondeo bifuel, en op de  Mazda3, enzovoorts maar er was geen vervangend onderdeel dat ik snel kon ophalen.

Besteld bij Autodoc, en na 2 weken ontvangen! (14-10-2020)

Het monteren is zo gebeurd, alle slangen aan de binnenkant even heel licht met niet-klevende montagepasta ingesmeerd, afgevuld en alles weer OK!

 

Dit moet er allemaal uit om bij het defecte onderdeel te komen…
Links zie je de EGR klep, aluminium tussen de slangen

Gelijk de EGR klep helemaal gereinigd en goed gangbaar gemaakt.

Ook nog even het gasklephuis vervangen, daar had ik nog steeds een nieuwe voor liggen.

Volvo V70 III 2.0F bifuel gasklephuis vervangen

Bij de aanschaf van de auto ben ik op zoek gegaan naar de onderdelen die je naar mijn mening bij een auto boven 300.000 km op de teller uit voorzorg moet vervangen.  Daaronder was ook een nieuw gasklephuis dat ik in Engeland op de kop heb getikt.  Hagelnieuw via eBay.uk voor voldoende laag bedrag.

Toen de wagen toch aan de beurt was voor een reparatie vanwege een koelvloeistof lekkage was er lekker wat ruimte rondom het gasklephuis gemaakt.  Van de gelegenheid gebruikmakend heb ik het oude gasklephuis verwijderd en de nieuwe geplaatst.  Inclusief pasvlak reinigen een klusje van nog geen 20 minuten.

Foto’s oude gasklephuis:

Nieuw:

De auto start prima, stottert niet meer rond 2000-2500 RPM en inleren lijkt helemaal overbodig… De auto gaat eind oktober naar Volvo voor een jaarbeurt en software updates dus dan komt het inleren er ook gelijk bij!

Volvo V70 III 2.0F bifuel vacuümslangen en vacuümsensors vervangen

Bij aanschaf was mijn V70III (LPG,Ethanol en Benzine) uit 2010 een beetje de kluts kwijt.  Stotteren met optrekken en stationair bij ca. 2000 RPM op de snelweg ook een beetje stotteren.  Op basis van een diagnose bij een Duitse dealer ben ik aan het vervangen gegaan van resp:

Lambda sensoren, alle rubberen vacuümslangen, vacuumsensoren, alle druksensoren, reinigen LPG en benzine injectoren, warmtesensoren, alle filters van LPG, benzine, lucht en uit voorzorg alle andere filters vervangen.

Daarna de radiator van de koelvloeistof nog vervangen omdat de motor steeds te heet werd.

Het gasklephuis en de LPG verdamper had ik nog op voorraad liggen om een keer wanneer nodig te vervangen.

Al met al is de auto na de vervangingen van de slijtage onderdelen steeds prettiger gaan rijden, maar nooit helemaal O.K.. Snelweg is prima, in de stad ook maar op 80 km/hr binnenwegen ervaar ik nog steeds wat gepruttel rond 2000 RPM. (status eind september-2020).

De wagen gaat eind oktober (2020) naar de Volvo specialist voor diagnose en ze gaan uit voorzorg de klepspeling meten en indien nodig stellen….

Maar soms heb je geluk bij pech… Begin oktober stond ik ineens ’s morgens met een plas koelvloeistof onder de auto, en bij het herstel heb ik gelijk het gasklephuis vervangen, dat had ik nog steeds liggen.. Alle problemen opgelost!

VORON 2.4 20″x20″x20″ en DUET2WIFI

Krijg de documentatie,  specs, config.g, macros en bouw docs

Na mijn succesvolle bouwproject van een Voron 2.4 3d printer in de herfst van 2020, wilde ik nog steeds een echt grote 3d printer met een printoppervlak van meer dan 20x20x20 inch.

Mijn 30x30x30cm bouwvolume Voron 2.4 printer

Tijdens het bouwen en het gebruiken van de Voron 2.4 printer, vond ik de documentatie over de hardware echt uitstekend. Maar, het elektronica gedeelte was verspreid over verschillende plaatsen, en hoewel de Klipper implementatie erg goed is heb ik ervaren dat de combinatie van 2 SKR 1.4 turbo moederborden met een Octopi controller mij niet genoeg operationele stabiliteit geeft. En- ik heb de behoefte om meer instellingen te controleren dan ik kan doen met de Klipper oplossing. Ik denk dat ik waarschijnlijk gewoon meer voor de Duet en de reprap oplossing kies dan voor de Klipper oplossing, vanwege eerdere positieve Duet – en MKS reprap ervaringen.

 

In 5 eerdere builds heb ik een reprap motherboard gebruikt, en ik heb ook de add-ons voor Duet2 ervaren zoals driver boards, PT100 boards en meer hardware en extension boards welke ook goed werken in de nieuwe RRF3+ firmware.

Redenen genoeg voor mij om te kiezen voor de Duet2 en het 5-poorts uitbreidingsboard, of eventueel een extra Duex board voor mijn nieuw te bouwen Voron 2.4 ‘grote 3d printer’.

Op deze pagina zal ik mijn vorderingen met betrekking tot deze bouw delen.

DIE VORDERINGEN ZIJN ER VOORLOPIG NIET.  Ik ben voorlopig nog even bezig met alle spullen die ik nog heb liggen bezig met een grote Indymill- achtige CNC machine, ook leuk!

Ik heb alle benodigde hardware liggen en aangezien ik al een Voron 2.4 heb gebouwd, zal ik me eerst richten op de elektronica. Voor de hardware, heb ik nog steeds de plexiglas zijkanten, bovenkant en voordeuren nodig. Ik heb wel alle extrusie, bed, bedverwarming 230V, lineaire rails, alle geprinte onderdelen enzovoorts, netjes thuis opgeborgen.

Ik ben dus de elektronica aan het instellen om vooraf te weten dat alles goed werkt. Ik wil niet beginnen met het bouwen van de hardware en er achteraf achter komen dat mijn Duet2wifi niet doet wat ik wil dat hij doet.

Gisteren (4 oktober 2020) heb ik de elektronica en config.g in elkaar gezet. Ik heb gebruikt:

Duet2wifi bord met 24V PSU en 4,3 inch TFT/LCD
5-poorts uitbreidingsbord met 4 plug-in 2209 drivers V3.0
Z-schakelaar mechanisch
X- en Y-eindschakelaars (hall-effect)
Hotend 24V met NTC aangesloten inclusief ventilator (ik mis de PT100 interfacekaart, heb er een besteld maar dit heb ik al eerder gedaan dus moet geen probleem zijn)
Hotbed gesimuleerd met een ander hotend inclusief NTC
Stappenmotoren aangesloten op X(0),Y(1) en 1 x stappenmotor op het uitbreidingsbord Z(5) (Driver5)
Het Duet2wifi bord is een Chinese MKS kloon met elektronica versie 1.02 die prima werkt. Het uitbreidingsbord is ook een Chinese, maar dit is een kale uitvoering van het 5-poorts driver add-on bord dat zonder drivers wordt geleverd. Het mooie van dit add-on bord is dat drivers direct kunnen worden ingeplugd.

De Duet2 werd geleverd met firmware 2.1 geïnstalleerd. Om naar FFR3.1 te gaan, moet je eerst 3.0 installeren en daarna kun je naar 3.1 gaan… let op!

Na het updaten van het paneldue en het Duet2wifi board, heb ik de wifi geactiveerd en de ssid en PW erin gezet. (Deze procedure gaat via USB tussen PC en Duet, met behulp van een terminal emulator zoals YAT) Dit is een beetje vermoeiend, maar gezien de veiligheid die je ervan krijgt, vind ik het OK.

De instellingen die nodig zijn om het Chinese expension board te laten werken zijn niet al te moeilijk. Voeg de Z-drives toe, en verander wat andere instellingen. Bovenaan deze pagina kan je de laatste doc downloaden met alle info die ik heb, en een directe download naar de aangepaste config en macro’s is beschikbaar in de documentatie.

Update 3-2021: Ik heb onlangs 2 andere 3d printers gebouwd met Duet2wifi boards: een cartesian I3 met onafhankelijke extruders en sensorless homing en een Delta 2GS. Niet veel tijd om aan de grote Voron te werken. Ik heb ook net mijn Geetech A30M (330x330x400mm build size) omgebouwd van het smartto board naar Duet2wifi, Check het op deze site!

Ik ga waarschijnlijk toch niet de grote Voron 3d printer bouwen, en als ik dat niet doe, dan ga ik mijn bestaande Voron 2.4 300×300 ombouwen van Klipper, octopi en 2x SKR1.4 naar Duet2wifi+Duex. Dat zal interessant en haalbaar zijn.

Aangezien ik momenteel 10 verschillende 3d printers draai, wordt mijn ruimte in huis krap. Ik wil niet uitbreiden naar nog een kamer. Eén moet genoeg zijn. Door meer printers te hebben, kan ik het beste een bepaald type filament per printer gebruiken.

De Voron wordt vanwege zijn perfecte prints met ABS eigenlijk alleen gebruikt voor/met ABS of nylon.

De I3Bear dual carriage werkt het beste met dual PLA of PLA&PVA.

De Prusa mini werkt perfect met PETG

De I3Bear solo gaat perfect met PETG of PLA.

De A30M & zijn mengextruder gaat perfect met PLA en/of PETG

En zo verder….

 

error: Content is protected !!