Grosser 3D Drucker

Der nimmt mittlerweile auch Formen an. Hab den Filamenthalter oben hingeschraubt. So sollte sich beim Drucken das Filament nicht verheddern.
Ausserdem stabilisiert das gleichzeitig den Rahmen.

Im Gegensatz zu meinen „kleinen“ Tronxy XY 100 ist dieser grosse Drucker mit ziemlich viel Basteln verbunden.

Als erstes musste ich feststellen, dass der beim Einschalten viel zu viel Strom zieht. Schalten via Relaisplatine geht somit nicht so einfach möglich. (Es bleibt das Relais picken…)

Behoben hab ich das dadurch, indem ich auf der 230V Seite via 39Ohm Leistungswiderstand das Netzteil vorlade. Am 12V Ausgang befindet sich dann ein 10A Relais, welches den Widerstand nach ein paar zig ms überbrückt..

Weiters sind die Z-Achsen viel zu leichtgängig. Bei jeder Arbeit am Extruder verstellt sich somit was und die X-Achse ist nicht mehr in Waage. (Somit stimmt natürlich dann das Leveling nicht mehr…) Hab das Problem ein wenig abgemildert, indem ich 2 Hülsen für die Z Achsen ausgedruckt hab. Sind eigentlich „anti Wobbling“ Hülsen, aber wenn die ein wenig strenger eingepasst sind, bremsen die auch die Z Achsen ein wenig…

Den Extruder hab ich mittlerweile so zusammengeschraubt, dass ich den Lüfter mitsamt mini Kühlkörper leicht abnehmen kann. Das erleichtert den Filamentwechsel ungemein..

Mini CNC aus DVD Brennern

Dürfte ein Arbeitsbereich von etwa 4×4 cm möglich sein :

Hab das Ding mit einem Ramps 1.4 Board angesteuert.
Damit die mini Schrittmotoren nicht abbrennen darf das Board aber nur mit etwa 7 Volt versorgt werden.
(PWM, Motorspulen in Sättigung ?!?)

Cronjob – kurz vor Sonnenaufgang starten

Da mein PI2 auf dem Solarakku hängt, und hauptsächlich Solardaten erfasst, wollte ich ihn so starten, dass er bei Sonnenschein sicher schon läuft, aber nicht unnötig früh schon eingeschaltet wird.
Dafür hab ich im Excel eine Sinuskurve via Formel gebastelt.

Jänner/Dezember = etwa 9:00 (Winterzeit)
Juli/August = etwa 6:00 (Sommerzeit)

Es ergab sich dann allerdings das Problem, dass unter Linux nicht so einfach ein Cronjob nach einer anderen Zeitzone (die keine Sommer/Winterzeitumstellung hat) einrichten kann.
Geht leider auch nicht als anderer User…
Darum hab ich das dann mit einer extra „if“ Anweisung gelöst.
D.h. um 9:00 und um 10:00 läuft der Job. Aber nur, wenn die UTC-Stunde 8 ist…
Liese sich natürlich noch vereinfachen, aber ich lass das mal so, damit es leichter zu verstehen ist :

0 9,10 * 1,12 * if test $(TZ="UTC" date +"\%H") -eq 8; then /bin/startpi2 ; fi
9 8,9 * 2,11 * if test $(TZ="UTC" date +"\%H") -eq 7; then /bin/startpi2 ; fi
22 7,8 * 3,10 * if test $(TZ="UTC" date +"\%H") -eq 6; then /bin/startpi2 ; fi
43 6,7 * 4,9 * if test $(TZ="UTC" date +"\%H") -eq 5; then /bin/startpi2 ; fi
16 6,7 * 5,8 * if test $(TZ="UTC" date +"\%H") -eq 5; then /bin/startpi2 ; fi
1 6,7 * 6,7 * if test $(TZ="UTC" date +"\%H") -eq 5; then /bin/startpi2 ; fi

– wird die Zeit zeigen, wie gut das funktioniert…

OctoPI und Ereignisse

Hat man an seinem 3D Drucker einen PI mit OctoPI Betriebssystem angeschlossen, kann man über diverse Ereignisse ganz einfacht informiert werden. Das geht zwar (teilweise) auch via Android-Apps am Händy, aber dafür muss die entsprechende App das können. (Und das klappt z.Zt. nur recht unzuverlässig…)

Ausserdem lassen sich so auch noch ganz andere Dinge veranlassen. (z.B. Drucker automatisch abschalten, wenn fertig…)

Datei : /home/pi/.octoprint/config.yaml

Nach den Zeilen mit „appearance : color: blak“ z.B. folgendes einfügen :

events:
  enabled: true
  subscriptions:
  - command: /home/pi/nachricht.sh NichtMehrVerbunden
    event: Disconnected
    type: system
  - command: /home/pi/nachricht.sh DruckFehlgeschlagen
    event: PrintFailed
    type: system
  - command: /home/pi/nachricht.sh Fertig
    event: PrintDone
    type: system

Damit das funktioniert, muss es natürlich die /home/pi/nachricht.sh geben. (Und sie muss ausführbar sein)
Relativ einfach geht das z.B. mit Telegram (hat eine API !) :

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

TEXT="$HOSTNAME
$1"
TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CHATID=yyyyyyyyy
TIMEOUT=10


URL=https://api.telegram.org/bot$TOKEN/sendMessage
CMDARGS="chat_id=$CHATID&disable_web_page_preview=1&text=$TEXT"
curl -s --max-time $TIMEOUT -d "$CMDARGS" $URL >/dev/null

PI Tunings

sw raid
bei komischem device namen nach reboot. z.b. md127

mdadm -scan --detail >> /etc/mdadm/mdadm.conf

nach reboot nur 1 device, 2. fehlt

bootwait=5

in die

/boot/cmdline.txt

einfügen

seltsame Abstürze, ping geht noch, aber sonst nix mehr
könnte der swap voll sein.
Ist vermutlich besser, einfach keinen Swap zu konfigurieren.
Dann geht halt dem einen oder anderen Prozess der Speicher aus.
Aber alle anderen Prozesse sollten ganz normal weiterlaufen…
grade beim pi 2 und 3 (die ja eh 1GB RAM haben)

systemctl disable dphys-swap

dann rebooten, und mit free nachschaun, ob swap 0

/tmp und /var/log in ramdisk – in die /etc/fstab folgendes eintragen :

tmpfs    /tmp    tmpfs    defaults,noatime,nosuid,size=100m    0 0
tmpfs    /var/log    tmpfs    defaults,noatime,nosuid,mode=0755,size=100m    0 0

Das führt aber leider dazu, dass einige Dienste (vorallem nginx und apache) nicht mehr starten können, weil es nach einem reboot die log Verzeichnisse nicht mehr gibt. Das behebt man am besten via /etc/rc.local. Da drin einfach das fehlende Verzeichnis anlegen, und service … restart rein.

merkwürdiges netzwerk verhalten, statische ip in /etc/network/interfaces
ip a zeigt eine 2. ip an ?
wurde vermutlich via dhcp zugewiesen

dpkg -l | grep dhcp

apt purge …pakete deinstallieren…

oder
/etc/dhcpcd.conf
ignore o.ö. das if rausnehmen
oder gleich da drin die static ip konfigurieren