CNC Fräse

Ist eine mini Fräse, Arbeitesbereich 300x180x40mm. 2 Stk. V-Fräser sind dabei…

Funktioniert zwar mit der mitgelieferten GRBLControl Software, allerdings offenbar nur auf neueren Win* Versionen so richtig stabil.

Da ich das Ding aber unbedingt mit Ubuntu betreiben will, hab ich mir was anderes gesucht.

Am vielversprechendsten schaut im Moment diese Software aus :

bCNC – https://github.com/vlachoudis/bCNC

Soweit ich das bisher verstanden hab – ist die grbl Firmware auf dem Board relativ alt. (0.9x)
Und ein flashen auf was aktuelleres geht nur mit eigenem Programmer…

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