Prusa Bear

Juni 2020 ben ik, op basis van alle ervaringen met de 3d printers en laser cutters, een eigen ontwerp gaan maken voor een klein model 3d-printer.  uiteindelijk heb ik gekozen voor de Prusa Bear uitvoering, waarin ik alle verbeteringen gelijk meeneem.

Dus wel de 8mm rods voor X, Y en Z bewegingen maar ook het rigid frame met 2040 extrusie aluminium profiel.

Een 24 Volts voeding, hotbed en extruder en een Duet wifi motherboard met touchscreen bediening.

En ik maak m gelijk lekker stil. Geen jankende fans en geen jankende stappenmotoren.

Eerst het frame aangeschaft, daarna alle printable delen in PetG geprint op de Ender 3:

Boven:  Frame in elkaar gezet en de eerste delen gemonteerd (1-7-2020)

Onder: Alles gemonteerd (midden juli 2020), glasbed erop en eerste testprints gemaakt. Ben nog niet tevreden over de (on)gelijkloop van beide Z motors.  De Duett kan ze apart aansturen en dan moet ik eerst nog even 2 endstops maken op de Z assen, en strak gelijk maken.  Het worden optical stops vanwege de goede repeatability.  Dan kan ik homen en aslevelen op de endstops en bedlevelen met de BLtouch probe.  Weet even niet hoe dat in het NL heet, -).

 

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.

Replaced the waterpump of my Citroën ID19 cabrio (1970)

July 2019: I noticed a small amount of coolant under the car from time to time, after parking.

So looking for the cause, and as a precaution, I immediately replaced the water pump housing, thermostat, lower hoses and water pump.

Also replaced all gaskets, cleaned the surfaces, checked all hoses optically and so on.

After fitting, first tested the cooling system with a pressure kit and left it pressurized overnight.  No leakage.  The action seems to have been successful.

Update 3-2021: After this action, it appears that there is still a little coolant under the car when I have driven a bit after which the car has been parked overnight.  While driving, the car does not seem to lose anything.

It seems that as the car cools down, it builds up so much pressure in the cooling system that there is leakage that does not occur while driving. Possibly the expansion and contraction of the engine parts has something to do with this and the contraction after driving could possible cause the extra pressure. Apparently the radiator cap is not the solution to this problem. This cap should open at a certain pressure and allow some of the compressed air at the top of the radiator to escape.  That this principle does work is clear because the catcher at the bottom of the overpressure hose which is mounted at the radiator cap does catch coolant when I have incidentally overfilled the radiator slightly.

In the meantime, I have ordered an overpressure vessel to mount in the cooling circuit to better compensate for the pressure, and a mechanical pressure regulator and valve to adjust this cooling system to a pleasant maximum pressure.  I hope this will stop the cooling system from leaking.

[Best_Wordpress_Gallery id=”57″ gal_title=”ID20 waterpump and -house repair”]

Onze 3d printers, bestuurd via OCTOPI of Duet’s Web-based app

Boven: Onze Dual Bear I3 dual color 3d printer met onafhankelijke carriages, op afstand gemanaged met DUET’s webinterface.

De Octopi oplossing werkt met een Raspberry PI, en daarop de Octopi firmware.  Het apparaat stel je in op je wifi en je sluit het aan op je 3d printer’s USB. Vervolgens heb je een webinterface op het IP adres van de Raspberry waarmee je alle zaken van je aangesloten printer kan managen.  Alle instellingen zoals temperatuur, mesh, en eigenlijk alles wat je ook via een lokaal LCD kan managen.  En- je kan je jobs naar de raspberry uploaden en starten/managen en bijstellen qua temperatuur  en dergelijke.  Wat ik erg fijn vind is dat je een raspberry camera kan aansluiten en zo je jobs kan volgen.

De Duet vind ik qua gebruik en mogelijkheden prettiger. omdat je naast alles dat de octopi kan, ook de systeemfiles online kan aanpassen.  En printerupdates kan doen, direct in de firmware.  Bovendien heb je geen aparte doos nodig omdat de Duet2wifi alles al aan boord heeft.

Nadeel is dat je aan de Duet geen camera kan hangen. Er is wel een mogelijkheid em een IP camera te integreren in de DWC, Duet’s web based remote app.  En zo’n wifi IP-camera is zelf makkelijk te maken met een goedkope esp unit.

Boven: De Voron 2.4, printmaat 300x300x220 mm.  De Voron werkt met een ingebouwde Raspberry PI, en een op Klipper gebaseerde firmware die OCTOPI als basis gebruikt voor de romote management mogelijkheden.

Prusa Bear I3plus with mods dual Z axis control with DUET2wifi

 

Kingroon Kp3S heavily modded with new firmware and tool fan, connected to an OCTOPI

 

Twotrees Sapphire PRO with new firmware, also connected to wifi via an OCTOPI

 

Voron 2.4 for Nylon and ABS printing, with external exhaust and 300+ degC printhead, bed up to 150 degC, with Klipper/ Octopi based Raspberry PI, and 2 pieces of SKR1.4turbo.

 

Prusa i3 mini original, the production monster for PETG.  This machine is also connected with an OCTOPI, this works very well!

 

En de VoreXY Twotrees Sapphire pro, onze perfecte printer voor snelle productie, aangesloten via OCTOPI

 

En de multicolour geheel aangepaste Geeetech A30M dual head printer met het nieuw geinstalleerde Duet2Wifi motherboard, dual Chimera heatblock en direct drive extruders

 

 

error: Content is protected !!