Biete Programmierung von Kunden-Anwendungen, Automatisierung, Plugins für Honeywell Handheld

Sie benötigen ein kleines Programm für die Inventur oder ein spezielles Plugin für Honeywell Handheld Geräte. Da kann ich Ihnen vielleicht helfen.

Problemlösungen:

  • Ihr Telnet Client macht nicht, was er soll. Anpassungen von Client und/oder Server.
  • Sie möchten Tasten am Handheld umbelegen
  • Die Daten des Barcode Scanners entsprechen nicht der Erwartung?
  • Die Darstellung von SAP Web-Inhalten auf Mobil-Geräten gefällt Ihnen nicht?
  • Sie möchten vom Mobil-Gerät auf einem mobilen Label- oder Quittungsdrucker ausgeben.

Biete auch Windows- und Web-Programmierung, Linux Scripting und andere Software Leistungen. Bei Bedarf einfach Kommentar posten. Arduino, ESP und andere Microcontroller Erfahrung ist auch vorhanden.

Ich bin seit über 35 Jahren in der Computer Software- und Hardware Branche unterwegs. Habe sowohl PCs konfiguriert und repariert als auch professionells Desktop Publishing inklusive Bildbearbeitung, Text Layout und Satz. Zuletzt war ich als Senior Software Specialist tätig und habe Kunden, Partner und Kollegen bei kleinen und großen Projekten mit Lösungen geholfen. Dabei kamen die unterschiedlichsten Umgebungen und Programiersprachen zum Einsatz. Die notwendigen Grundlagen habe ich mir selbst erarbeitet und erfolgreich eingesetzt, oft mit verblüffenden Lösungen, weil ich über ein sehr breites Wissen verfüge. Manchmal wurde zur Lösung ein kleines Programm oder ein Dienst programmiert.

Mein größtes, privates Projekt war die Programmierung einer Faktura für eine Nutzfahrzeug-Werkstatt inkl. Merc*des Teile Übernahme aus der Fahrzeug Datenbank.

Ein anderes, großes, privates Projekt war die Erstellung eines technischen Katalogs vom Satz und Layout bis zum Belichten und Druck.

Einige Jahre habe ich das Novell Netware / Windows 2000 / MS SQL Server Netzwerk eines Seniorenheims betreut, inklusive automatischem Backup und Netware Server-Spiegelung.

Einen Teil meiner Programme können Sie unter github.com/hjgode begutachten.

FlightAware/SkyAware/dump1090-fa lighttp does not start after update to version 5

Today I updated my bananapi zero w running raspbian and the dump1090 flightaware software ADS-B monitor. Unfortunality the web server lighttp did not start any more after the update with an error about a line in 89-skyaware.conf. I did not accept the installer/update message to overwrite my custom files. But how can I get the maintainer versions of the conf files?

After some research I found them at https://github.com/flightaware/dump1090/tree/master/debian/lighttpd. So I used these files (89-skyaware.conf and 89-dump1090-fa.conf) instead and the web server started without error.

Finally I added my

server.use-ipv6 = "enable"

to the $SERVER[“socket”] of 89-skyaware.conf and my adsbox was reachable from internet again. I am at a FTTH network with global IPv6 only and use feste-ip.net to map ipv4 public IPs to my internal network.

3D Druck Erfahrungen mit dem AnyCubic i3 Mega S

Vor einigen Wochen habe ich einen gebrauchten AnyCubic Mega S gekauft. Dies ist mein erster 3D Drucker und ich möchte einige Erfahrungen festhalten.

Ein 3D Drucker schmelzt Kunststoff (Filament) und drückt ihn durch eine dünne Düse (Nozzle) auf die Druckunterlage oder bestehende Schichten und baut dann schichtweise ein Objekt auf.

Erst einmal habe ich festgestellt, daß ich mit dem mitgekauften Extrudr PETG Anthrazit-Grau Filament überhaupt nicht zurechtkam. Die Drucke haben nicht auf der Ultrabase (dem Druckbrett) gehalten. Nach einigem Frust habe ich dann das Original AnyCubic PLA Filament in schwarz erworben. Als erstes habe ich einfach die mitgelieferte Druckdatei owl_pair.gcode von SD Karte gedruckt. Die wurde schon mal nicht schlecht und meine Begeisterung für 3D Druck begann.

Dann habe ich verschiedene Testdateien, z.B. einen Temptower, mit dem AnyCubic PLA gedruckt. Dabei störten mich die vielen, dünnen Druckfäden (Stringing).

Also habe ich versucht, mich im Internet schlau zu machen. Da gibt es Unmengen Tipps zur Verbesserung eines 3D Drucks. Düsen/Druck-Temperatur rauf oder runter, Retract (Filament-Rückzug) stärker oder/und schneller/langsamer. Mittlerweile verwende ich einen angepassten Retract von 1mm plus 3,5mm für das Bowdenspiel (Spiel des Filament im PTFE Schlauch/Bowden zum Druckkopf) und möglichst schnelle Bewegungen in den Druckpausen (Travel oder Move Einstellungen).

Druckaufbereitung

Wenn man eine 3D Objekt-Datei drucken möchte, muß diese erst in Druckbefehle (G-Code) umgewandelt werden. Dies erfolgt mit sogenannten Slicer Programmen. Ein gängiges 3D Format ist STL. Viele Objekte liegen nur als STL vor, was dann die Nachbearbeitung oder Reparatur erschwert (Stichwort Manifold). Manche Druckprogramme können auch STL reparieren, aber manchmal kommt dabei etwas heraus, das man nicht drucken möchte oder erst am Ende des Drucks feststellt. Eine Bitte an alle Thingiverse publizierenden wäre, daß sie die Original Objekt-Dateien mit zur Verfügung stellen. Übrigens sehe manche Sachen in Thingiverse super aus, kann man aber so gar nicht drucken. Die Darstellung der Objekte aus dem verwendeten 3D Programm ist toll, aber wenn es für 3D Drucker sein soll, sollte auch ein Beispielfoto dabei sein.

Vom Slice Programm und den Einstellungen hängt es ab, wie gedruckt wird. Je nach Einstellung gehen Details verloren (z.B. kleine Bohrungen) oder es werden in der Luft Filamentkringel gedruckt, weil kein Support angegeben wurde.

Schichtdicke / Layer Height

Eine wichtige Einstellung ist die Schichtdicke, in der Regel zwischen 0,1mm und 0,3mm bei einer 0.4mm Drückdüse.

Druck-Temperatur

Mit welcher Temperatur soll die Druckdüse drucken. Ich nehme 190-200°C für PLA und 240°C für das Extrudr PETG. Bei PLA drucke ich die erste Schicht meist 10°C höher. Das Anycubic PLA druckte sogar bei (angeblichen) 175°C am besten. Ich hatte die Temperatur mit einem UNI-T Digital Thermometer und einem sehr kleinen K-Sensor an der Düse und am Düsenblock mal nachgemessen. Dabei hatte ich bei der Einstellung 170°C schon 190°C an der Düse gemessen. Nachdem ich das Ersatz-Hotend (Druckdüse, Heizbloch, Heatbreak mit Heizung und Temperatur-Sensor) mit einer neuen original E3D Düse eingebaut hatte, war die 175°C Einstellung bei dem AnyCubic Filament aber zu wenig, es kam zu Filamentfluß-Unterbrechungen. Nach dem Extruder und Düsenwechsel habe ich auch PETG vernünftig drucken können. Düsen soll man wohl generell von Zeit zu Zeit wechseln. Aber bitte im heißen Zustand Aus- und Einschrauben (ich benutze dazu einen Heißluft Bläser). Mir war die alte Düse im alten Extruder-Heizblock beim Losschrauben abgerissen. Gott sei Dank stand noch genügend über, so daß ich den Rest im heißen Zustand nach Einsägen einer Kerbe ausdrehen konnte.

Druckbrett Temperatur

Bei PLA heizt das Druckbett (oder Brett oder Platte?) bei mir während des Druckens auf 60°C. Bisher hält der PLA.Druck auf der Ultrabase Glasplatte sehr gut. Ich reinige immer mit Isopropanol (70%) und ab und zu mit Glasreiniger. Habe auch schon mal 1200er Nass-Schleifpapier verwendet, nachdem der PETG Skirt (umlaufende Linie außerhalb des Drucks, um einen gleichmäßigen Fluß des Filaments am Anfang des Druckvorgangs sicherzustellen) gar nicht abgehen wollte. Bei PLA und PETG löse ich den Druck nach dem Abkühlen der Platte.

Kühlung

Bei PLA läuft der Lüfter mit 100%, außer bei der ersten Schicht. Bei PETG verwende ich gar keine Kühlung.

Bisher habe ich noch kein optimales Programm zum Drucken gefunden. Die Slicer von Cura, Prusa und deren Derivate überfordern mit einer Unmenge an Einstellungen (obwohl sie meist auch global einen Anfänger, Fortgeschrittenen und Experten Modus mit reduzierten Optionen anbieten). Nicht schlecht finde ich Simplify3D, insbesondere der gedruckte Support ist leicht zu entfernen. Bei den anderen Tools wird teilweise Support generiert, den man kaum vom Objekt abtrennen kann. Leider finden sich viele Einstellungen der Slic3r Programme (Cura, Prusa etc) nicht in Simplify3D wieder, haben eine total andere Bezeichnung oder verwenden andere Maßeinheiten (z.B. mm/min statt mm/sec). Ich erwähne das, weil es schwieriger ist empfohlene Sli3r Einstellungen in Simplify3D zu übertragen.

An SuperSlicer, auch ein Slic3r Abkömmling, gefällt mir besonders die automatische Generierung von Testobjekten für Bedleveling, Materialfluß, Temperatur Tower und andere. Da muß man nicht langen an Scripten und Plugins rumschrauben.

Einige Kalibrierungs Ausdrucke aus SuperSlicr

Druckgeschwindigkeit

PLA drucke ich meist mit 60mm/sec. Die erste Schicht und Außen- und Innenwände langsamer. PETG drucke ich langsamer, bei 40mm/sec und 25mm/sec. Den Travel oder Move Speed setze ich auf 250mm/sec (15000mm/min). Das verringert das Stringing zusammen mit einem Retract.

Rückzug / Retract

Das Bowdenspiel meines AnyCubic Mega S habe ich mit 3,5mm gemessen. Also Bowden aus dem Extruder (dem Filament Vorschub Motorblock) gezogen, Filament unter Spannung in den Bowden geschoben und Ende am Bowden markiert. Dann am Filament gezogen und dabei den Bowden (PTFE Schlauch) am Ende festgehalten und den Abstand der Markierung zum Bowdenende gemessen. Bei mir sind dies 3,5mm. Dies bedeutet, wenn das Filament unter Spannung zum Heatend geführt wird und dann zurückgezogen wird, muß der Extruder erst mal ca. 3,5mm ziehen bevor das Filament am Heatend gezogen wird. Nun wird ein Unterschiede zwischen Direct-Extruder und Bowden Extruder klar. Beim Direct-Extruder hat man nicht so viel Spiel zwischen Druck und Zug des Filament.

Extruder Kalibrierung

Ach ja, was man auch unbedingt an seinem Drucker machen sollte ist die Extruder Kalibrierung. Dabei misst man ab, wieviel Filament gefördert wird, wenn z.B. 100mm gefördert werden sollen. Der Korrekturwert wird dann in der Druckerfirmware hinterlegt.

Ergebnis

Anhand der Einstellungen wird das 3D Objekt in zu druckende Schichtlinien umgerechnet. Dabei versuchen die Programme die Umrechnung der vielen tausende Dreiecke zu optimieren. Die meisten Programme schreiben ihre Einstellungen oder einen Teil davon mit in die G-Code Druckdatei. Manchmal sind diese Daten in der G-Code Datei aber komprimiert und nicht direkt lesbar.

Es gibt keine optimale Einstellung für alle Druckobjekte und sie sind stark vom jeweiligen Drucker abhängig. Viele Einstellungen und Tipps funktionieren bei einem Drucker und bei einem anderen nicht. Die Streuung und die Genauigkeit der Drucker ist selbst in der gleichen Modellreihe unterschiedlich. Alleine das Setzen einer Soll-Temperatur und die tatsächliche Druckdüsen-Temperatur kann schon unterschiedlich sein.

Verwendete Filamente

  • Extrudr PETG Anthrazit Grau

Tourist Duck in PETG

  • AnyCubic PLA Schwarz 🙁

owl pair in Anycubic PLA black

  • Proca PLA Anthrazit Grau

 

owls Proca PLA

cat moon Proca PLA

  • OWL Filamentwerk Blau

benchy OWL Filamentwerk PLA Blau

Get Profile Setting from AnyCubic gcode 3D print file

I wanted to see the settings and profile used to print the sample Owl_pair.gcode. The file has the settings included at the end starting with

;CURA_PROFILE_STRING:

After that there is the base64 encoded zlib inflated profile data. You can extract it by removing everything before the following start code similar to ‘eNrtWk’ (6 bytes or chars) and after the == at the end of this line.

Here is a single line to do this within a Linux system with zlib-flate fro qpdf installed:

awk -F ';CURA_PROFILE_STRING:' '{print $2}' <Owl_pair.gcode |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' >Owl_pair.gcode.settings

Or here the bash script I used:

#!/bin/sh
# awk -F ';CURA_PROFILE_STRING:' '{print $2}' <Owl_pair.gcode |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' >Owl_pair.gcode.settings
infile=$1
[ $# -eq 0 ] && { echo "Usage: $0 gcode-file"; exit 999; }
echo "$0\ntool to extract cura settings from gcode file\n"
if [ -f ${infile} ];
then
awk -F ';CURA_PROFILE_STRING:' '{print $2}' < ${infile} |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' > ${infile}.settings
# less ${infile}.settings
else
echo "\n${infile} not found!\n"
fi
if [ -s ${infile}.settings ];
then
echo "\nSettings written to ${infile}.settings"
else
echo "\nNO Settings found. Either missing ';CURA_PROFILE_STRING:' in gcode file or base64 decode or zlib deflate failed\n"
if [ -f ${infile}.settings ];
then
#delete empty file
rm ${infile}.settings
fi
fi

The output looks similar to this:

layer_height=0.2
wall_thickness=1.2
retraction_enable=True
solid_layer_thickness=1.2
fill_density=25
print_speed=50
print_temperature=200
print_temperature2=0
print_temperature3=0
print_temperature4=0
print_temperature5=0
print_bed_temperature=60
support=None
platform_adhesion=None
support_dual_extrusion=Both
wipe_tower=False
wipe_tower_volume=15
ooze_shield=False
filament_diameter=1.75
filament_diameter2=0
filament_diameter3=0
filament_diameter4=0
filament_diameter5=0
filament_flow=100.0
nozzle_size=0.4
retraction_speed=60.0
retraction_amount=5
retraction_dual_amount=16.5
retraction_min_travel=1.5
retraction_combing=All
retraction_minimal_extrusion=0.02
retraction_hop=0.0
bottom_thickness=0
layer0_width_factor=140
object_sink=0
overlap_dual=0.15
travel_speed=60
bottom_layer_speed=20
infill_speed=0.0
solidarea_speed=30
inset0_speed=30
insetx_speed=40.0
cool_min_layer_time=5
...

 

Settings location for Ultimaker Cura Linux AppImage

Where does Ultimaker Cura AppImage store plugins and settings?

There are two locations. One is the $HOME/.config/cura/ directory and the other is %HOME/.local/share/cura/ folder.
For example: The material folder of Ultimaker Cura 4.9 with your custom changes is at $HOME/4.9/materials/.