Batocera ist die Linux Distribution für Spiele mit diversen Emulatoren, die momentan so ziemlich am besten läuft. Das System läuft als root, daher ist es eine gute Idee, als erstes das Passwort zu ändern und gleich anschließend den SecureSHell Zugriff ermöglichen, natürlich ohne Passworteingabe, nur mit vorherigem Schlüsselaustausch.
Entries tagged as raspberry pi
Raspberry PI 4 mit SSD betreiben
Vor einiger Zeit hatte ich bei thingiverse ein Teil veröffentlicht, mit dem es möglich ist, in Verbindung mit dem empfehlenswerten "AmoredPI" Gehäuse 2,5" SSD Festplatten mit dem Einplatinenrechner Raspberry PI 3 bzw. 4 zu verbinden und so das übliche Gedrösel mit dem Kabelwirrwar etwas abzumildern.
Indessen war bis vor kurzem der Start des Raspberrys von der SSD auf die 3er Modelle beschränkt. Nun ist seit September dieses Manko Geschichte und es steht dem Betrieb des Rechners via Festplatte nichts entgegen. Fast nichts. Denn leider gibt es keine Garantie, daß jeder SSD / USB3 Festplattenadapter für den Betrieb geeignet ist, zumindest, was das Booten betrifft. Michael Kofler hat in seinem Blog unterschiedliche Adapter getestet, er hatte mit dem von GHB vertriebenen 6GB Adapter die wenigsten Probleme, weshalb ich auch meine Empfehlung auf ebendiese abgebe. Der bisher von mir auf den PIs der 3er Reihe ohne Probleme verwendete Adapter führte bei mir in keinem Fall zu einem fehlerfreien Systemstart oder dauerhaft störungsfreien Betrieb. Wenngleich der Raspberry PI 4 damit verbundene SSDs erkennt und auch problemlos liest bzw. schreibt, ist der Bootvorgang fehlerhaft. Inzwischen läuft hier ein Raspberry PI 4 mit 8 Gigabyte Speicher und einer Silicon Power SSD 256GB 3D NAND A55 SLC Cache Performance Boost seit mehreren Tagen ohne Probleme, wenngleich Lesevorgänge beinahe doppelt so schnell wie Schreibvorgänge sind, was ich allerdings noch mit anderen SSDs wie der SanDisk SSD PLUS 240GB Sata III gegentesten muss.
Die Installation auf die Platte verläuft problemlos, ich habe zuerst den üblichen Weg mittels einer MicroSD Karte und NOOBS beschritten um sofort die aktuellste Raspbian Version auf der Platte zu haben, es funktioniert natürlich auch der über ein via etcher auf die MicroSD Karte geschriebenes Image. Nach der Aktualisierung des Systems aktiviert man via 'sudo raspi-config' die Boot Option über USB, formatiert die SSD, entpackt darauf NOOBS und bootet dann (hoffentlich) erfolgreich von der SSD. Natürlich muss dazu die MicroSD Karte abgezogen sein. ;-)
Update 14. November 2020: Dieser Adapter von ugreen ist ebenfalls kompatibel und sogar noch etwas günstiger als der oben verlinkte.
Raspberry PI mit SSD und S.M.A.R.T.
Für verschiedene Zwecke haben wir diverse Raspberry PIs im Einsatz. Zum Beispiel als 3D Druckserver mit OctoPrint. Normalerweise wird ein Raspberry mit microSDHC Speicherkarten betrieben. Diese kommen jedoch früher oder später meist an Grenzen, die einem nicht so in die Lebensplanung passen. Höchste Zeit also, auf eine SSD zu setzen, entweder gleich von Anfang an, oder eben wenn es klemmt:
Seit einiger Zeit kann der Raspberry ja auch direkt von der SSD booten, so daß die microSDHC Karten eigentlich nur dafür benötigt werden, das dafür notwendige Bit mittels program_usb_boot_mode=1 in der /boot/config.txt zu setzten.
Danach kann man gleich die z.B. durch etcher mit dem Betriebssystem der Wahl geflashten SSD anschließen und den Rechenzwerg starten. Oder man migriert sein existierendes System via dd von der microSDHC Karte auf die neue SSD. Ich habe beim ersten Versuch mit einer Kombination aus beidem gearbeitet, d.h. zuerst die SSD geflasht, dann die einzelnen dadurch entstandenen Partitionen mittels sudo dd if/dev/sdX of=/dev/sdX status=progress von der SDHC auf die SSD kopiert. Bei der Gelegenheit habe ich, um jeglichen Kalamitäten beim Bootvorgang aus dem Weg zu gehen, die /etc/fstab auf die Verwendung von UUIDs umgestellt, was nicht nur eine einfache Übung sondern wegen der Änderung der Laufwerksbezeichnungen durch den Austausch in jedem Fall notwendig ist.
Gute Erfahrungen habe ich mit den SSDs von SanDisk gemacht, die mit günstigen SATA2USB Adaptern an den Raspberry angeschlossen werden können. Sicherlich gibt es auch schnellere SSDs, das Geld ist jedoch angesichts diverser Beschränkungen des Raspberrys besser anderswo angelegt. Wichtig ist für mich hier vor allem, daß die Platte ohne aktiven USB Hub, d.h. nur mit der vom Raspberry zur Verfügung gestellten maximalen Spannung von 1,2A läuft.
Der SATA2USB Adapter meldet sich nach der Eingabe von sudo smartctl /dev/sdX mit der Id "Unknown USB bridge [0x152d:0x0578 (0x3202)]" und ist dementsprechend ein JMicron JMS567, der auf alle weiteren Aufrufe mittels sudo smartctl -a -d sat /dev/sdX korrekt angesprochen werden kann.
smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.19.60-v7+] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Device Model: SanDisk SSD PLUS 240GB Serial Number: 19172C804389 LU WWN Device Id: 5 001b44 8b814e836 Firmware Version: UF5000RL User Capacity: 240.065.183.744 bytes [240 GB] Sector Size: 512 bytes logical/physical Rotation Rate: Solid State Device Form Factor: 2.5 inches Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ACS-2 T13/2015-D revision 3 SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Mon Jul 29 11:26:28 2019 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART Status not supported: Incomplete response, ATA output registers missing SMART overall-health self-assessment test result: PASSED Warning: This result is based on an Attribute check. General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Self-test execution status: ( 32) The self-test routine was interrupted by the host with a hard or soft reset. Total time to complete Offline data collection: ( 120) seconds. Offline data collection capabilities: (0x15) SMART execute Offline immediate. No Auto Offline data collection support. Abort Offline collection upon new command. No Offline surface scan supported. Self-test supported. No Conveyance Self-test supported. No Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 42) minutes. SMART Attributes Data Structure revision number: 1 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 5 Reallocated_Sector_Ct 0x0032 100 100 000 Old_age Always - 0 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 47 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 52 165 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 107 166 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 2 167 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0 168 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 4 169 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 296 170 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0 171 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0 172 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0 173 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 2 174 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 47 184 End-to-End_Error 0x0032 100 100 --- Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 100 --- Old_age Always - 0 194 Temperature_Celsius 0x0022 057 047 000 Old_age Always - 43 (Min/Max 18/47) 199 UDMA_CRC_Error_Count 0x0032 100 100 --- Old_age Always - 0 230 Unknown_SSD_Attribute 0x0032 100 100 000 Old_age Always - 128851640350 232 Available_Reservd_Space 0x0033 100 100 005 Pre-fail Always - 100 233 Media_Wearout_Indicator 0x0032 100 100 --- Old_age Always - 391 234 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 817 241 Total_LBAs_Written 0x0030 100 100 000 Old_age Offline - 383 242 Total_LBAs_Read 0x0030 100 100 000 Old_age Offline - 418 244 Unknown_Attribute 0x0032 000 100 --- Old_age Always - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] Selective Self-tests/Logging not supportedAuch wenn nicht alle S.M.A.R.T. Tests durchgeführt werden können, ist es doch möglich, die wichtigsten Test durchzuführen, die einem Auskunft über ein eventuell baldiges Ableben des Datenträgers geben können, hier mal ein 2 minütiger Kurztest mittels sudo smartctl -t short -d sat /dev/sdX nach 47 Stunden Laufzeit der Platte, den man sich mittels sudo smartctl -a -d sat /dev/sdX ansehen kann:
(...) SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 47 - Selective Self-tests/Logging not supportedWeitere Tests werden dann entsprechend in der Ausgabe ergänzt, die aktuellen Ergebnisse stehen dann immer an erster Stelle der Ausgabe.
HINWEIS:
Alle gemachten Angaben sind ohne Gewähr auf Funktion und Richtigkeit. Für eventuell entstehende Schäden übernehmen wir keinerlei Haftung. Sämtliche Veränderungen geschehen auf Eure Verantwortung und Gefahr.
Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.: Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts.
NotepadQQ unter Raspbian / Debian Stretch kompilieren
Ab und an ist ein grafischer Texteditor einfach praktischer als vi, emacs oder nano. Die Wahl fällt heute oft auf NotepadQQ, ein Linux Clon des Windows Editors Notepad++. Leider ist NotepadQQ nicht in den aktuellen Paketquellen für Stretch enthalten, eine Snap Installation wie von den NotepadQQ EntwicklerInnen empfohlen, kommt nicht in Frage. Also: Selbst ist der User und mit einiger Frickelei läuft der Editor auch via
ssh -x username@rechnername notepadqq
auf einem headless RaspberryPI B R2. Zumindest in der Version 1.48 und nach einem ordentlichen Weilchen...
sudo apt install -y qt5-qmake libqt5webkit5 libqt5svg5 coreutils libqt5webkit5-dev libqt5svg5-dev qttools5-dev-tools qt5-default qttools5-dev-tools qtwebengine5-dev libqt5websockets5-dev libqt5svg5 libqt5svg5-dev libuchardet-dev libqt5webengine-data qt5-default qttools5-dev-tools qtwebengine5-dev libqt5websockets5-dev libqt5svg5 libqt5svg5-dev libuchardet-dev libqt5webkit5-dev libqt5svg5-dev qttools5-dev-tools git clone https://github.com/notepadqq/notepadqq.git cd notepadqq git checkout -f v1.4.8 ./configure --prefix /usr --qmake /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake make sudo make install
Mikro-Howto: OctoPrint mit RaspberryPI und TouchUI über Elcrow 5" Display steuern
Ausgangslage: Ich möchte meinen 3D Drucker, den ich über den OctoPrint Server, der unter OctoPI auf einem Raspberry PI 3B+ läuft, und somit über jeden vom Server zugelassenen Rechner aus zu steuern ist, notfalls auch mal vor Ort in der Druckerei steuern können, ohne mir dort gleich einen Computer hinstellen zu müssen, der dann die meiste Zeit doch nur als Terminal vor sich hin verstaubt. Was liegt also näher, als die Himbeere mit einem halbwegs bedien- und erkennbaren berührungsempfindlichen Display auszustatten und damit die TouchUI zu bedienen?
Nach diversen Versuchen und Überlegungen bei der Suche nach einer angemessenen Unterbringung für den Rapsberry habe ich mich dann für Thing:2837163 entschieden, für das ein halbwegs finanzierbares Display über Alieexpress zu bekommen ist. Einige Wochen später klingelte denn auch der Bote aus dem fernen Osten und überreichte mir ein gut verpacktes Behältnis mit dem Display, welches bei genauerer Betrachtung einem Waveshare recht ähnlich sieht, jedoch - Chinas kapitalistischer Enklave Shenzen sei Dank - nur einen Teil dessen kostet, was für das nebenan gefertigte Waveshare fällig gewesen wäre und das bei Aliexpress auch deutlich günstiger als beim großen Fluß zu bekommen ist. Allerdings mit 3 Wochen Lieferzeit. Das Boardlayout ebenso wie der Chipsatz sieht dem hochpreisigerem Pendant jedenfalls zum Verwechseln ähnlich.
Was folgte, waren jedoch ein gutes Dutzend Versuche, das Display so zum Laufen zu bekommen, wie ich bzw. das von mir auserkorene Gehäuse das gerne hätte: Nämlich um 180° gedreht, damit der HDMI Connector in der dafür im Gehäusedesign eigens vorgesehenen Aussparung verschwinden kann. Die Anzeige des Displays ist dabei weniger das Problem, diese findet via HDMI statt, vielmehr ist ja Bildausgabe und Toucheingaben zweierlei. Das Display kann leicht um 180° gedreht werden, indem man sich per ssh auf dem Raspberry anmeldet:
ssh pi@octopi.lan
gefolgt von
sudo nano /boot/config.txt
und dann diesen Text am Ende um die Zeile
display_rotate=0
ergänzt. Klappt ganz gut, wenn man dann mit ctrl+x die so manipulierte Datei speichert und mit
sudo reboot -n
einen Neustart einleitet.
Treib(er)jagd
Die oben erwähnten erfolglosen Versuche, auf dem so gedrehten Display nun auch die Touch Eingabe einrichten zu können, hatten mich dann dazu veranlasst, doch mal nebenan, bei Waveshare zu schauen, wie das dort gelöst wurde. Denn die Elcrow KollegInnen wußten zwar von einer veralteten Treiber CD zu berichten und wie man das Display ihrer Ansicht nach zum Kooperieren bewegt, in der Praxis hatte dann trotzdem der Mauszeiger (heißt das auch so, wenn man den Finger dazu benutzt, um Eingaben zu tätigen??) das Gegenteil von den Bewegungen veranstaltet: Nach unten wischen - Zeiger wandert nach oben, nach Rechts wischen - Zeiger begibt sich schnurstracks nach links. Wenn das nur im richtigen Leben auch so wäre...
Wie auch immer: Bei Elcrow ist die Zeit offenbar vor dem Update des Eingabetreibers für den X-Server stehen geblieben, weshalb der entscheidende Hinweis auf die Verwendung des entsprechenden Treibers dort fehlt. Wenn wir schon mal auf der ssh Konsole sind, installieren wir diesen mit
sudo apt install xserver-xorg-input-evdev
Anschließend kopieren wir die Konfigurationsdatei dergestalt, daß sie eine höhere vorangestellte Zahl im Dateinamen hat wie die anderen im Zielverzeichnis. Dies, um zu verhindern, daß ein möglicher anderer Eingabetreiber die Bemühungen, das Touchdisplay einzurichten, verhindert:
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf sudo reboot
Neuausrichtung
Nun lässt sich auch die Feinabstimmung mittels Eingabekalibration vornehmen. Dazu installieren wir das entsprechende Tool, wir nehmen dabei das der aktuellen Raspbian Version, somit gibt das bei späteren Updates auch weniger Treiberfolklore...:
sudo dpkg -i -B xinput-calibrator
Wir starten jetzt das System dazu nochmals neu, damit die Kalibrierung gestützt auf diese Treiber stattfindet. Nach dem erfolgreichen Login gehen wir dazu in der grafischen Benutzeroberfläche mit der Maus / Touchpen / Zeige- oder sonst einem Finger auf die Himbeere oben links und rufen unter "Einstellungen" das Kalibriertool auf. Mit dem entsprechenden Zeigegerät tippen wir auf die darin gezeigten 4 Punkte und Kopieren den anschließend ausgegebenen Text in die Datei
/ect/X11/xorg.conf.d/99-calibration.conf
Bei mir steht folgendes darin (Die diversen Optionen für die Einträge gibt es z.B. hier zur Auswahl. Auch ein Hersteller von 5" Displays ;-):
Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "3905 208 3910 288" Option "SwapAxes" "0" EndSection
Abspeichern wie gehabt, neu booten. Nun sollte das System zügig starten und auf Benutzereingaben entsprechend reagieren.
Das erfreut uns, weshalb wir derartig motiviert sogleich zur Installation der Touch Oberfläche von OctoPrint schreiten. Hier hat der User jdufresne1 alles wichtige in seinem Beitrag ausgeführt, weshalb ich nur noch kurz darauf eingehe. Wieder per ssh auf dem Druckserver einloggen. Dann mit:
sudo apt install chromium-browser -y
den Browser für die Touch Oberfläche installieren. In dessen Fenster läuft zukünftig dann alles rund um die Bedienung des Druckservers ab. Anschließend daran laden wir die Autostart Prozedur von TouchUI herunter und machen in einem Abwasch die lokale Installation auf dem Raspberry startklar:
git clone https://github.com/BillyBlaze/OctoPrint-TouchUI-autostart.git ~/TouchUI-autostart/
Noch kurz diverse Einstellungen und Hilfstools installieren:
sudo ~/TouchUI-autostart/helpers/install
Nach einem Neustart sollte nun die TouchUI Oberfläche den 5" Bildschirm des Raspberry verzieren. Wer möchte, kann den Raspberry auch so einrichten, daß er ohne Benutzername und Passwort durchstartet. Mehr dazu im Wiki von TouchUI.
Der Vorteil des eingangs erwähnten Gehäuses ist, daß es genügend Platz bietet, zum Beispiel für ein Stepdown Modul, um die Energieversorgung des Rechners zukünftig vom nicht ausgelasteten Netzteil des Druckers sicherzustellen sowie für einen entsprechenden Lüfter. Falls es doch mal heißer her geht.
Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.:Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts. Für die Inspirationen geht ein herzliches Dankeschön an die genannten Personen, insbesondere an die OctoPrint Community!
Keep on
Einen Blick auf Klipper riskieren
Grob gesagt unterscheidet Klipper sich von Marlin darin, daß nur ein kleiner Bootloader auf dem Drucker selber verbleibt, der dann mit dem Hostrechner - zum Beispiel einem RaspBerry PI kommuniziert und diesem die ganze Rechenarbeit überlässt. Diese Arbeit stellt die Himbeere vor keine besonders großen Herausforderungen, trotzdem sollte man möglichst zum RaspBerry Pi 3B+ greifen. Zur Installation verweise ich mal auf das Tutorial bei selbstgedruckt.de, die Menschen dort beteiligen sich auch rege in einem deutschsprachigen Fratzenbuch Forum.
Für den AnyCubic i3 Mega habe ich als Einstieg zwar die entsprechende Beispielkonfigurationsdatei auf github verwendet, da unser Drucker jedoch wegen ungebührlichen Lärmens zu einem Austausch der Lüfter (Noctua NF-A4x10 FLX 40mm zur Kühlung von Hotend und der Treiber über den Lüftungskanal hier auf thingiverse und Noctua NF-A9x14 Lüfter für das Netzteil sowie Sunon MF50151VX-A99 Radiallüfter zur Bauteilkühlung) und der Steppertreiber auf TMC2208 V1.2 verdonnert wurde, mussten die Achsen der Steppermotoren invertiert werden. Es gibt u.a. auch in der FAQ zu Klipper den Hinweis, daß die TMCs mitten im Druck aussteigen können. Das ist wohl vor allem dann der Fall, wenn die Geschwindigkeit der Achsen zu sehr hoch gesetzt wurden. (Es soll ja Leute geben, die unter Klipper mit 100mm/sec statt mit 60mm/sec drucken, tstststss...)
Bislang konnte ich derartiges Verhalten bei uns nicht beobachten. Mit der in diesen Tagen erscheinenden neuen Klipper Version sollen jedoch wohl auch diese Problem gelöst sein.
Wie auch immer: Erwähnenswert ist, daß diverse G-Code Variablen zu seltsamem Verhalten führen können. Das betrifft jedoch meistens Start- oder Endcodes sowie diverse Plugins von OctoPrint, die z.B. mit G117 eine Bildschirmausgabe erzeugen wollen.
Ein Switchen zwischen Marlin und Klipper ist problemlos möglich und in 5 Minuten bewerkstelligt, falls mal etwas nicht so klappt, wie es soll. Ich schließe zur Installation von Marlin über die Arduino IDE den ausgeschalteten Drucker via USB an meinen Rechner an, starte die Arduino IDE und wähle kompilieren / hochladen, nachdem ich den Drucker eingeschaltet habe. Das bügelt alles von Klipper weg.
Umgekehrt installiere ich Klipper, indem ich mich als pi per ssh auf dem OctoPI/OctoPrint Server anmelde, mit
cd ~/Klipper
ins Klipper Verzeichnis wechsle und dann erst mal herausfinde, auf welchem USB Port denn der jetzt am OctoPI angeschlossene Drucker lauscht. Dazu
ls -l /dev/serial/by-id/
eingeben, den ausgegebenen Port merken und dann beherzt den Klipper Bootloader mit
make flash FLASH_DEVICE=/dev/gemerkterPort
auf den Drucker kopieren. Dazu sollte man beachten, daß der Drucker nicht mit OctoPrint verbunden ist. Am besten danach rebooten, dann klappt das mit dem Drucken. ;-)
Hier noch mein config File für den AnyCubic i3 MEGA mit TNC2208 V1.2, und 8 Bit Board sowie Ultrabase. Die Achsen sind in der Firmware bereits invertiert, dazu ist das "!" vor den jeweiligen dir_pin gesetzt bzw. entfernt. Die Angaben für das PID Tuning beziehen sich auf meinen Drucker, bei anderen sollte das PID über das OctoKlipper Plugin gemacht werden. In Ergänzung zur Standard Config befindet sich ein Teil zur Regelung der Temperaturtoleranzen, ohne die mein Drucker nach wenigen Layern gleich ausgestiegen ist, die ich 1:1 aus der examples-extras.cfg Datei von Klipper entnommen habe. Noch nicht gekümmert habe ich mich um die anderen Gründe, warum ich mal einen Blick auf Klipper riskiere wie schnelleres und noch schöneres Drucken, schnellere Filamentförderung - Stichwort "pressure advance", Kaffee kochen und die Wäsche waschen...
# Anpassung der Pin Mappings für den AnyCubic i3 MEGA, TMC2208 und Ultrabase # # Verwendung auf eigene Gefahr! Code kopieren und in octopi.url#conf einfügen # 12 / 12 / 2018 thomas@trueten.de still under developement # # https://www.trueten.de/permalink/Einen-Blick-auf-Klipper-riskieren.html # # # This file contains pin mappings for the Anycubic i3 Mega with # Ultrabase from 2017. (This config may work on an Anycubic i3 Mega v1 # prior to the Ultrabase if you comment out the definition of the # endstop_pin in the stepper_z1 section.) To use this config, the # firmware should be compiled for the AVR atmega2560. # See the example.cfg file for a description of available parameters. [stepper_x] step_pin: ar54 dir_pin: ar55 enable_pin: !ar38 step_distance: .0125 endstop_pin: ^!ar3 position_min: -5 position_endstop: -5 position_max: 210 homing_speed: 30.0 [stepper_y] step_pin: ar60 dir_pin: !ar61 enable_pin: !ar56 step_distance: .0125 endstop_pin: ^!ar42 position_endstop: 0 position_max: 210 homing_speed: 30.0 [stepper_z] step_pin: ar46 dir_pin: !ar48 enable_pin: !ar62 step_distance: .0025 endstop_pin: ^!ar18 position_endstop: 0.0 position_max: 205 homing_speed: 5.0 [stepper_z1] step_pin: ar36 dir_pin: !ar34 enable_pin: !ar30 step_distance: .0025 endstop_pin: ^!ar43 [extruder] step_pin: ar26 dir_pin: !ar28 enable_pin: !ar24 step_distance: .010799 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: ar10 sensor_type: ATC Semitec 104GT-2 sensor_pin: analog13 control: pid min_temp: 0 max_temp: 260 min_extrude_temp: 170 [heater_fan extruder_fan] pin: ar44 [heater_bed] heater_pin: ar8 sensor_type: EPCOS 100K B57560G104F sensor_pin: analog14 control: pid pid_Kp: 74.883 pid_Ki: 1.809 pid_Kd: 775.038 min_temp: 0 max_temp: 110 [verify_heater extruder] heating_gain: 2 check_gain_time: 20 hysteresis: 5 max_error: 120 [fan] pin: ar9 [mcu] serial: /dev/ttyUSB0 pin_map: arduino [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 10 max_z_accel: 60 [heater_fan stepstick_fan] pin: ar7 # Define the BLTouch servo [servo bltouch] pin: ar11 maximum_servo_angle: 180 minimum_pulse_width: 0.0006 maximum_pulse_width: 0.0024 # Define a probe using the BLTouch [probe] pin: ar2 x_offset: 26.0 y_offset: 0.0 z_offset: -1.7 activate_gcode: SET_SERVO SERVO=bltouch ANGLE=10 SET_SERVO SERVO=bltouch ANGLE=60 G4 P200 deactivate_gcode: SET_SERVO SERVO=bltouch ANGLE=90 G4 P100 # Mesh Bed Leveling. One may define a [bed_mesh] config section # to enable move transformations that offset the z axis based # on a mesh generated from probed points. Note that bed_mesh # and bed_tilt are incompatible, both cannot be defined. [bed_mesh] speed: 50 # The speed (in mm/s) of non-probing moves during the # calibration. The default is 50. horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. samples: 1 # The number of times to probe each point. The probed z-values # will be averaged. The default is to probe 1 time. sample_retract_dist: 2.0 # The distance (in mm) to retract between each sample if # sampling more than once. Default is 2mm. min_point: 19,32 #min_point: 0,32 # An X,Y point defining the minimum coordinate to probe on # the bed. Note that this refers to the nozzle position, # and take care that you do not define a point that will move # the probe off of the bed. This parameter must be provided. max_point: 199,212 #max_point: 175,198 # An X,Y point defining the maximum coordinate to probe on # the bed. Follow the same precautions as listed in min_point. # Also note that this does not necessarily define the last point # probed, only the maximum coordinate. This parameter must be provided. probe_count: 5,5 # A comma separated pair of integer values (X,Y) defining the number # of points to probe along each axis. A single value is also valid, # in which case that value will be for both axes. Default is 3,3 # which probes a 3x3 grid. #fade_start: 1.0 # The z-axis position in which to start phasing z-adjustment out. # Default is 1.0. #fade_end: 0.0 # The gcode z position in which phasing out completes. When set # to a value below fade_start, fade is disabled. It should be # noted that fade may add unwanted scaling along the z-axis of a # print. If a user wishes to enable fade, a value of 10.0 is # recommended. Default is 0.0, which disables fade. #fade_target: # The z position in which fade should converge. When this value is set # to a non-zero value it must be within the range of z-values in the mesh. # Users that wish to converge to the z homing position should set this to 0. # Default is the average z value of the mesh. #split_delta_z: .025 # The amount of Z difference (in mm) along a move that will # trigger a split. Default is .025. #move_check_distance: 5.0 # The distance (in mm) along a move to check for split_delta_z. # This is also the minimum length that a move can be split. Default # is 5.0. #mesh_pps: 2,2 # A comma separated pair of integers (X,Y) defining the number of # points per segment to interpolate in the mesh along each axis. A # "segment" can be defined as the space between each probed # point. The user may enter a single value which will be applied # to both axes. Default is 2,2. #algorithm: lagrange # The interpolation algorthm to use. May be either "langrange" # or "bicubic". This option will not affect 3x3 grids, which # are forced to use lagrange sampling. Default is lagrange. #bicubic_tension: .2 # When using the bicubic algoritm the tension parameter above # may be applied to change the amount of slope interpolated. # Larger numbers will increase the amount of slope, which # results in more curvature in the mesh. Default is .2. #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [extruder] #*# pid_kp = 18.387 #*# pid_ki = 0.936 #*# pid_kd = 90.325
HINWEIS:
Alle gemachten Angaben sind ohne Gewähr auf Funktion und Richtigkeit. Für eventuell entstehende Schäden übernehmen wir keinerlei Haftung. Sämtliche Veränderungen geschehen auf Eure Verantwortung und Gefahr.
Das Tutorial ist für das AnyCubic i3 MEGA Board verfasst worden. Bei anderen Boards und Herstellern bitte auf die aktuelle Beschreibung / Installationsanweisung auf https://github.com/KevinOConnor/klipper achten!
Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.: Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts. Für die Inspirationen geht ein herzliches Dankeschön an die genannten Personen, insbesondere an die OctoPrint Community!
Keep on Coding Printing!
Was mir heute wichtig erscheint #430
Umsturz: Exaktes Ganz schlechtes Timing hatte ein Biber in Mecklenburg-Vorpommern. Der Nager brachte einen Baum zu Fall – welcher dann ausgerechnet auf eine vorbeifahrende Motorjacht stürzte. (Stuttgarter Zeitung)
Preisfrage: "Es sind ja nicht nur die rechten bis rechtsradikalen Kreise, die gerne darauf verweisen, wie viel Geld der deutsche Staat ausgibt, um Flüchtlinge zu unterstützen. Damit einher geht stets die Frage: Können wir uns das überhaupt leisten? Und: Warum wird so viel Geld für Ausländer ausgegeben? Man kennt den Sermon. Nur: Es sind Fragen und Bedenken, die auch aus großen Teilen der bürgerlichen Mitte zu hören sind, auch aus SPD und CDU, mitunter auch von der FDP beziehungsweise von deren Wählern. Dabei sollte es sich von selbst verbieten, Menschen als reine Kostenfaktoren zu betrachten und sie auf ihre wirtschaftliche Verwertbarkeit zu reduzieren, denn das ist eine nicht bloß neoliberale Haltung, sondern auch eine, die ein höchst problematisches Menschenbild ausdrückt, um es mal vorsichtig zu formulieren." heise
Geblockt: "Werbung bzw. Mailvertising ist ein immer größer werdendes Problem im Internet und der Anteil von schadhafter Online-Werbung wird zu einem stetig wachsenden Risiko für den Nutzer. Das ist einer der vielen Gründe, warum immer mehr Nutzer auf AdBlocker zurückgreifen und diese im Browser integrieren. Diese AdBlocker – wie zum Beispiel uBlock Origin – sind gut und filtern zuverlässig Werbung und Tracker im Browser heraus. Aber hier ist auch eine Schwäche dieser AdBlocker: Sie arbeiten natürlich nur innerhalb eines Browsers. Tracker und Werbung begegnen uns heute aber nicht nur beim Surfen im Internet, sondern auf immer mehr Geräten wie dem Smartphone und dem Smart-TV. Die meisten dieser Geräte bieten aber nicht die Möglichkeit, zusätzliche Programm zu installieren, die dann wiederum Werbung und Tracker aus dem Datenstrom herausfiltern. Diesem Problem hat sich das Projekt Pi-hole: Ein schwarzes Loch für internet-Werbung angenommen." Beitrag des Datenschutzbeauftragten der Evangelischen Kirche Deutschlands. Zusätzlich zur dort verlinkten Sammelliste empfehle ich, die Big Blocklist Collection einzusetzen und dazu das gepflegte Whitelisting Script von anudeepND als cron Job. So werden über 3 Millionen Werbeseiten, Tracker und Malwareseiten gefiltert. Leider gibt es ja noch viel mehr. Aber das ist ein Anfang ;-)
Geschrei: "Was wäre, wenn auf deutschen Autobahnen ein generelles Tempolimit von 120 km/h gälte? Ein Szenario." BrandEins
Präsidentenbeleidigung: "Wer in die Türkei reisen möchten, sollte in den sozialen Medien vorsichtig mit türkeikritischen Post und Beiträgen umgehen. Das Auswärtige Amt warnt vor möglichen Strafverfahren und Einreiseverboten." Stuttgarter Zeitung
Gedenken: "Mit Gedenkveranstaltungen und einer Demonstration wird in diesen Tagen an die vor 20 Jahren in den kurdischen Bergen von der türkischen Armee ermordete Internationalistin Andrea Wolf erinnert. Wolf, die in der Arbeiterpartei Kurdistans (PKK) den Kampfnamen Ronahi (Licht) trug, war am 23. Oktober 1998 nach einem Gefecht im Bergland von Catak in der Provinz Van mit weiteren Guerillakämpfern von den Militärs gefangen genommen worden. Die Gefangenen wurden – wie Zeugen dieses Kriegsverbrechens berichteten – gefoltert und extralegal hingerichtet." junge Welt
Kennzeichnung: "Die „Cop Map“ soll Polizeigewalt sichtbar machen. Die Kollektive „Peng!“ und „Polizeiklasse“ protestieren so gegen das PAG und Polizeiwillkür." Jetzt
Scheiße: "Bei einer Pilotstudie haben Forscher aus Österreich nach eigenen Angaben erstmals Mikroplastik in Stuhlproben von Menschen nachgewiesen. Die Kunststoffpartikel wurden in den Proben von allen acht Studienteilnehmern gefunden, wie die Medizinische Universität Wien und das österreichische Umweltbundesamt am Dienstag mitteilten." taz
Landraub: "Seit Jahrhunderten liefert der arme Süden, was den Norden reich macht: Rohstoffe und billige Arbeitskräfte. Daran hat auch das Ende des Kolonialzeitalters nichts geändert." Zeit Online
Ausrichtung: "Von verschonten Autokonzernen und Sammelklagen, von rabiaten RWE-Mitarbeitern und vom Strompreis." telepolis
Klammheimlich: "Die nächste (heimliche) Volkszählung vor dem „Zensus 2021“ wurde unter dem Radar der öffentlichen Wahrnehmung – kurzfristig entschieden und vom Bundestag eiligst für den 13.01.2019 beschlossen". freiheitsfoo
Ökobilanz: "Sind E-Autos ein großer ökologischer Fortschritt? Oder verschärfen sie das Klimaproblem nur? Unser Autor hat sich auf eine ausführliche Spurensuche begeben - und erklärt, wieso das Thema zu komplex ist für einfache Antworten." Spektrum der Wissenschaft