Forum: Mikrocontroller und Digitale Elektronik Thermoducker - Density einstellen


von Thomas R. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo alle,
ich habe mir einen Thermodrucker gegönnt, weil sowas zum Debuggen 
einfach praktisch ist.
https://www.berrybase.de/bauelemente/elektromagnetische-bauelemente/thermodrucker/adafruit-mini-thermobondrucker
Im Standard-Druck funktioniert das perfekt und wenn ich z.B. das 
Steuerzeichen (Decimal) 18 84 schicke, dann wird die Testseite 
ausgedruckt - passt also.
Der Thermo-Ausdruck ist per default ziemlich blass und kaum lesbar.
Die density (=Druckstärke) ist einstellbar - von 0 bis 4.
Das Steuerzeichen lautet:
(Decimal) 18 35 n
Wie gross ist nun n?
Im Manual (siehe Anlage) steht auf Seite 48:

DC2 # n
Set printing density
ASCII: DC2 # n
Decimal: 18 35 n
Hexadecimal: 12 23 n
D4..D0 of n is used to set the printing density
Density is 50% + 5% * n(D4-D0)
D7..D5 of n is used to set the printing break time
Break time is n(D7-D5)*250us

Welche Zahlen (Decimalzahl) für D0..D4 und D7..D5 muss ich nun schicken?
Bei meinen Versuchen mit n (0 bis 20) blieb der Ausdruck immer gleich 
blass.
Ich probierte für n auch 5 und 95, aber ohne Erfolg.
Wie gross ist nun das richtige n?

Beste Grüsse,
Thomas

von Stefan F. (Gast)


Lesenswert?

Probiere mal 255.

von Thomas R. (Gast)


Lesenswert?

Danke, aber 255 bringt auch nichts.
Wenn ich dann 0 schicke ändert sich nichts.

von Schlaumaier (Gast)


Lesenswert?

Woher hast du die Info.

Weil in der Anleitung zu den Teil steht nix drin.

Da steht nur das man die Texte auf BOLD setzen kann.

Was kosten eigentlich die Rollen für das Teil und wie viel Meter hat 
eine. ??

Ich habe ein Brother-QL-560 aber für gewisse Sachen wäre ein anderes 
Gerät sicher interessanter.

von Thomas R. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Weil in der Anleitung zu den Teil steht nix drin.
>
> Da steht nur das man die Texte auf BOLD setzen kann.
Doch, die Anlage ist 70 Seiten lang (ca 100 Funktioen) und auf Seite 48 
steht mein Problem.
Mein Drucker kann maximal 37mm Durchmesser Papier aufnehmen, das sind 
ca. 30m Papier.
Thermopapier gibts bei ebay.
Der Drucker stammt von adafruit:
https://www.adafruit.com/product/597
Dort steht mehr drüber.

von Hugo H. (hugo_hu)


Lesenswert?


von Schlaumaier (Gast)


Lesenswert?

Ja mag sein aber leider haben sie die nicht verlinkt oder ich bin zu 
blind die zu finden.

Thomas R. schrieb:
> D4..D0 of n is used to set the printing density
> Density is 50% + 5% * n(D4-D0)

Wenn ich das da aber richtig interpretiere bedeutet das folgendes.

Man hat eine MINDEST-Dichte von 50 %.

Setzt man nur D0 bis D4 mit Werten (bzw. liest die aus) ergibt das 
folgende Logik.

Dichte = 50 % + 5% * (D4=max - D0= min)

Da wir Punkt-vor-Strich gelernt haben ergibt das folgendes Ergebnis.

50 % + (5 x (d4-d0))

Einfach erklärt du must wissen was D4 + D0 für Werte haben und diese 
dann via Formel einsetzen.

Es ist immerhin Thermo-Druck. Was bedeutet du brauchst eine Grundhitze 
(50%) und eine Max-Hitze = D4 (-50% physikalisch gesehen)

Noch einfach gesagt. Finder Heraus welchen Wert D0 + D4 hat.

von Stefan F. (Gast)


Lesenswert?

Mit D7..D0 sind bestimmt die Bits eines Byte gemeint, nicht konkrete 
Werte (in hexadezimal).

Die unteren 5 Bits:
> D4..D0 of n is used to set the printing density
> Density is 50% + 5% * n

Die oberen 3 Bits:
> D7..D5 of n is used to set the printing break time
> Break time is n*250us

von Schlaumaier (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
>> D4..D0 of n is used to set the printing density
>> Density is 50% + 5% * n

Wäre auch möglich.  Das wären dann ein Max.Wert von 90%. Was Sinn macht.

= 50 % + (5 x "4 Bits auf High" = 8) Binär.

= 50 + 40 = 90

Weshalb ich ja die Anleitung selber lesen wollte. ;)

von Stefan F. (Gast)


Lesenswert?

Schlaumaier schrieb:
> = 50 % + (5 x "4 Bits auf High" = 8) Binär.

4 Bits auf High haben den Wert 0x1111 = 15 in Dezimal, nicht 8.

Es sind aber 5 Bits, entsprechend 0 - 31 in Dezimal.

von WIRO (Gast)


Lesenswert?

Probier mal:
Das müsste 205% ergeben:
Decimal: 18 35 31
Hexadecimal: 12 23 1F

Das müsste 100% ergeben:
Decimal: 18 35 10
Hexadecimal: 12 23 A

Gruß
WIRO

von Schlaumaier (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Es sind aber 5 Bits, entsprechend 0 - 31 in Dezimal.

jo. hast völlig recht.  Ist nicht mein Tag heute.

Aber ne komische Prozentrechnung haben die schon. Den mit 5 Bits kommen 
die lt. Formel über 100 %.  Oder ich habe ein gewaltigen Denkfehler.

Wie schon gesagt. Nicht mein Tag. Mein eigenes Prg. komme ich auch nit 
weiter. ;((

von Stefan F. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Den mit 5 Bits kommen die lt. Formel über 100 %.

100% ist vielleicht der normale Wert, und man kann darüber hinaus gehen. 
Oder die Wert >100 werden als "ungültig" ignoriert. Das müsste man ja 
ausprobieren können wenn das Ding überhaupt mal reagieren würde.

von Schlaumaier (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das müsste man ja
> ausprobieren können wenn das Ding überhaupt mal reagieren würde.

Setzten allein macht nicht glücklich. ;)  Man muss sie ihm auch 
mitteilen.

Ich denke mal dazu steht in der Anleitung so was wie ein Functionsaufruf 
bzw. eine Speicherstelle die man mit den neuen Werten beglücken muss.

Ich benutze bei meinen Brother-QL-560 auch ein SDK damit das Teil macht 
was ich will ;)

Falls die Anleitung (mit den Infos) im Netz steht kann der TO ja mal ein 
Link posten.  Dann können wir das Problem besser eingrenzen.

von Thomas R. (Gast)


Lesenswert?

WIRO schrieb:
> Probier mal:
> Das müsste 205% ergeben:
> Decimal: 18 35 31
> Hexadecimal: 12 23 1F
>
> Das müsste 100% ergeben:
> Decimal: 18 35 10
> Hexadecimal: 12 23 A

Wenn ich Decimal 18 84 schicke kommt der Testdruck, das passt also.
Dann schickte ich Decimal 18 35 10  und dann hat sich der Drucker 
bewegte - also LF!
Für mich sieht das nach einem Bug in der Firmware aus, oder?

von Thomas R. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Falls die Anleitung (mit den Infos) im Netz steht kann der TO ja mal ein
> Link posten.  Dann können wir das Problem besser eingrenzen.

Ganz oben in diesem Thread ist das ganze Manual als komplettes PDF, 70 
Seiten.
Mehr gibt es nicht.

von WIRO (Gast)


Lesenswert?

Schicke mal
Decimal: 18 35 49 48

Gruß WIRO

von Thomas R. (Gast)


Lesenswert?

WIRO schrieb:
> Schicke mal
> Decimal: 18 35 49 48

Das habe ich probiert: Decimal: 18 35 49 48
Danach kam mein ASCII-Text: 123456789
Gedruckt wurde 10123456789

von WIRO (Gast)


Lesenswert?

Vielleicht verweigert er, wenn printing break time=0 ist.
Dann könnte man probieren:
printing break time=1 ms = 4 * 250 µs
mit density 100%
ergibt binär: 100 01010
entspricht insgesamt dezimal:
18 35 138

von Thomas R. (Gast)


Lesenswert?

Auch das habe ich probiert: Decimal: 18 35 138
Danach kam mein ASCII-Text: 123456789
Gedruckt wurde e123456789

von WIRO (Gast)


Lesenswert?

Bleibt die Frage, was die unter "Density" verstehen, ob wirklich der 
Schwärzungsgrad gemeint ist.

von WIRO (Gast)


Lesenswert?

Vielleicht muss die Heating Time ESC 7 n1 n2 n3 noch erhöht werde?:
 "If heating time is too short, blank page may occur."

von Thomas R. (Gast)


Lesenswert?

WIRO schrieb:
> Vielleicht muss die Heating Time ESC 7 n1 n2 n3 noch erhöht
> werde?:
>  "If heating time is too short, blank page may occur."

Ich probierte:
decimal 27 55 0 0 0
dann ASCII 123456789

decimal 27 55 255 255 255
dann ASCII 123456789

All das änderte nichts an der Schwärzung.

Der Herstelle schreibt:

// Datasheet recommends a 50 mS delay before issuing further commands,
// but in practice this alone isn't sufficient (e.g. text size/style
// commands may still be misinterpreted on wake).  A slightly longer
// delay, interspersed with NUL chars (no-ops) seems to help.

Das sagt viel aus, oder ist das chinesische Ingenieurkunst!

Ich werde erst morgen weitere Versuche machen.

Bis dann,Thomas

von Hermann Kokoschka (Gast)


Lesenswert?

Mal ein anderer Ansatz, ohne dass ich das Manual gelesen habe:

Ich nehme an, das Teil benötigt eine externe Versorgung.
Die Thermo-Dots benötigen (mSec) reichlich Strom, der sich durch die 
Dot-Anzahl impulsweise rasch auf ganze Amperes summieren kann.

Ist sichergestellt, dass die Versorgung das nicht nur kann, sondern auch 
ein loEsr Elko unmittelbar am Drucker auf der Versorgung liegt?

Ich habe schon komplette Boards und Firmware für "nackte" 
Thermo-Druckmodule entwickelt daher kenne ich das o.g. Problem.

von Schlaumaier (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> Ich nehme an, das Teil benötigt eine externe Versorgung.

Zitat der Quelle :
. Außerdem benötigen Sie eine geregelte 5 bis 9 VDC-Stromversorgung, die 
während des Hochstromdrucks 1,5 A oder mehr liefern kann.

Also ein Brauchbares Handy-Netzteil wäre nicht schlecht. ;)

von Schlaumaier (Gast)


Lesenswert?

Nachtrag:

Die alternative für den To wäre sich die Beispiel-Codes man zu 
installieren und diese zu nutzen. Libs für Arduino + Python habe ich 
z.b. gesehen.

Aber für ich ist das Ding als Alternative für mein Brother gestorben. 
Juckte mich eh nur falls es billige Rollen gegeben hätte als Alternative 
gegen "teure Rollen wechseln". ;)

von Thomas R. (Gast)


Lesenswert?

Zur Stromversorgung:
Das Ding ist für 5...9V spezifiziert.
Mit 5V ist der Druck völlig unlesbar.
Jetzt versorge ich mit einem DC/DC Wandler 12V/9V 3A.
Dazu habe ich noch 2*18650 LiIon-Zellen parallel geschaltet.
Es ändert sich nichts, bleibt also dabei:
Die Firmware ist faul und es sind wohl "Denkpausen" nach jedem Zeichen 
nötig - siehe oben (27.12.2021 20:18).
An meiner SW kann es nicht sein, da ich diese Experimente nur mit einem 
Terminal machte.
https://sourceforge.net/projects/realterm/

Nach jedem Steuerzeichen nachte ich einen Selftest.
Der zeigt immer: "Print Density: normal"

von Schlaumaier (Gast)


Lesenswert?

Thomas R. schrieb:
> Die Firmware ist faul und es sind wohl "Denkpausen" nach jedem Zeichen
> nötig

Es gibt ja eine Firmware auf der Seite von Adafruits. Hast du die mal 
probiert. ???

von Thomas R. (Gast)


Lesenswert?

Wo (Link) finde ich diese Firmware?
Und wie kriege ich die rein?

von Schlaumaier (Gast)


Lesenswert?

Thomas R. schrieb:
> Wo (Link) finde ich diese Firmware?
> Und wie kriege ich die rein?


Wenn du deinen eigenen Link aufmachst dann steht da. "Natürlich würden 
wir Sie nicht mit einem Datenblatt und einem "Viel Glück!" zurücklassen. 
- *Wir haben ein komplettes Tutorial und eine passende CircuitPython und 
Arduino*
 Bibliothek, die folgendes demonstriert: "

Das ist ein Link.

Links dann auf DOWNLOADS.  Alles weitere muss dir die HP sagen.

Zitat der Seite :
Firmware Changer

If you'd like to risk it, you can revert/change the firmware using this 
tool that is from the manufacturer. We haven't tried it. It's completely 
utterly unsupported and you may break your printer. We won't replace it 
if it stops working due to a firmware change!

von Schlaumaier (Gast)


Lesenswert?

Also lautet die Entscheidung.

Das Riskio mit der Firmware eingehen oder das Teil umzuschicken.

Ich finde du mußt schon zu viel Strom da rein pumpen. Aber ist logoweis 
deine Entscheidung.

von WIRO (Gast)


Lesenswert?

Vielleicht muss zwischen den gesendeten Steuerbytes immer eine kleine 
Pause gemacht werden, also die Bytes zunächst mal langsam einzeln senden 
und nicht als geschlossener String. (Entsprechend Text von 20:18 Uhr)

von Stefan F. (Gast)


Lesenswert?

Thomas R. schrieb:
> Jetzt versorge ich mit einem DC/DC Wandler 12V/9V 3A.
> Dazu habe ich noch 2*18650 LiIon-Zellen parallel geschaltet.

Und die explodieren dabei nicht? Ich frage, weil zwei Lithium Akkus 
maximal auf 8,6 Volt geladen werden dürfen.

von Thomas R. (Gast)


Angehängte Dateien:

Lesenswert?

nein - siehe Anlage
DC/DC-Wandler lassen sich auch auf 8.4V einstellen.

von WIRO (Gast)


Lesenswert?

Ich tippe hier weniger auf die Stromversorgung. Anhand der Reaktion auf 
das gesendete Steuerkommando scheint das Kommando nicht erkannt zu 
werden.
Man sieht beim Senden von
Decimal: 18 35 49 48
dass sofort nach 18 35 die Ziffer "1" (=49) ausgegeben und die 
Kommandoeröffnung ignoriert wird. Vielleicht ist nach 18 35 tatsächlich 
eine kleine Pause erforderlich.

von foobar (Gast)


Lesenswert?

> Man sieht beim Senden von Decimal: 18 35 49 48 dass sofort nach 18 35
> die Ziffer "1" (=49) ausgegeben und die Kommandoeröffnung ignoriert
> wird.

Genau, das Kommando 18 35 scheint keinen Parameter zu erwarten.  Dass es 
keine Pause benötigt, sieht man daran, dass die 49 erkannt wurde.  Evtl 
ist es garnicht implementiert.  Was unter "Density" verstanden wird, ist 
eh schwammig - an verschiedenen Stellen hat es unterschiedliche 
Bedeutung.

Ich würde eher mal unter ESC-7 (Seite 47/48) schauen.

von tastendrücker (Gast)


Lesenswert?

foobar schrieb:

> Ich würde eher mal unter ESC-7 (Seite 47/48) schauen.

Genau das würde ish auch sagen. Bei Thermodruckern wird die Schwärzung 
über "Hitze" (heat) und "Druckgeschwindigkeit" (speed). Da scheint mir 
der Befehl
ESC 7 n1 n2 n3  besser zu passen.

von Hugo H. (hugo_hu)


Lesenswert?

8.2.8 Miscellaneous Function Command

ESC 7 n1 n2 n3

[Name] Setting Control Parameter Command
[Format] ASCII: ESC 7 n1 n2 n3
Decimal: 27 55 n1 n2 n3
Hexadecimal: 1B 37 n1 n2 n3

[Description]  Set “max heating dots”,” heating time”, “heating 
interval”

n1=0-255 Max printing dots, Unit(8dots),Default:7(64 dots)
n2=3-255 Heating time, Unit(10us),Default:80(800us)
n3=0-255 Heating interval, Unit(10us),Default:2(20us)

The more max heating dots, the more peak current will cost when
printing, the faster printing speed. The max heating dots is 8*(n1+1)

*The more heating time, the more density*, but the slower printing
speed. If heating time is too short, blank page may occur.

The more heating interval, the clearer, but the slower printing speed.

von BlaBla (Gast)


Lesenswert?

Habe jetzt nicht alles durchgearbeitet, aber ich würde noch hexadezimal
12 23 FF probieren.

von Hermann Kokoschka (Gast)


Lesenswert?

Nochmal was anderes:
Wurde hier eigentlich schon die String-Terminierung diskutiert?
Also, ob am Ende mit CR oder LF oder CR/LF abgeschlossen werden muss?

Fehler dort könnten verschluckte Zeichen / Fehlfunktionen erklären.

von Stefan F. (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> Wurde hier eigentlich schon die String-Terminierung diskutiert?

Wer redet denn von Strings? Wir sind bei einzelnen Bytes.

von Hermann Kokoschka (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wer redet denn von Strings? Wir sind bei einzelnen Bytes.

Ist doch egal, aus der Sicht des Druckers macht das keinen Unterschied.
Letzlich ist es immer eine Befehlsfolge mit ggf. unterschiedlicher 
Länge, also sollte der Drucker schon erfahren, wann der Befehl endet.

Thomas R. schrieb:
> Auch das habe ich probiert: Decimal: 18 35 138
> Danach kam mein ASCII-Text: 123456789
> Gedruckt wurde e123456789

Sowas zum Beispiel wäre dann typisch.

von Stefan F. (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> Länge, also sollte der Drucker schon erfahren, wann der Befehl endet.

Jeder Befehl hat eine Spezifizierte Länge. Das war bei Druckern schon 
immer so. Beispiele: 
https://support.epson-europe.com/onlineguides/de/lq2190/html/apspe_3.htm

Wenn die Befehle eine bestimmte Sequenz als Ende-Markierung bräuchten, 
hätte der TO das längst bemerkt. Er hat ja schon andere Befehle 
erfolgreich ausgeführt.

von foobar (Gast)


Lesenswert?

> also sollte der Drucker schon erfahren, wann der Befehl endet.

Das weiß er von selbst - jedes Kommando hat eine feste Länge bzw (z.B. 
bei Font-/Image-Uploads) steht die Länge im Kommando selbst.

von Hermann Kokoschka (Gast)


Lesenswert?

> Auch das habe ich probiert: Decimal: 18 35 138
> Danach kam mein ASCII-Text: 123456789
> Gedruckt wurde e123456789

Dennoch halte ich DIES für einen relevanten Hinweis.
Das überschüssige "e" im Ausgabebuffer des Druckers kann doch nur 
bedeuten, daß der vorherige Befehl nicht korrekt interpretiert wurde.

von Schlaumaier (Gast)


Lesenswert?

Um das alles heraus zu finden würde ich den Code der Arduino-Libs (o.a.) 
analysieren.

Viele der Befehle da sind ja im Handbuch auch drin.  Also vergleichen 
und Schlussfolgerungen ziehen.

Ist vielleicht die einfachere Methode.

von MWS (Gast)


Lesenswert?

Der Code dazu, Funktion:
1
// Print density description from manual:
2
// DC2 # n Set printing density
3
// D4..D0 of n is used to set the printing density.  Density is
4
// 50% + 5% * n(D4-D0) printing density.
5
// D7..D5 of n is used to set the printing break time.  Break time
6
// is n(D7-D5)*250us.
7
// (Unsure of the default value for either -- not documented)
8
void Adafruit_Thermal::setPrintDensity(uint8_t density, uint8_t breakTime) {
9
  writeBytes(ASCII_DC2, '#', (density << 5) | breakTime);
10
}
und Aufruf:
1
setPrintDensity(uint8_t density=10, uint8_t breakTime=2)
Verwirrend:
density=10 --> 50% +(10 x 5%), soweit ok, aber dann schieben die einen 
uint8 mit Dezimalwert 10, b1010 um 5 Bits nach links = b1_01000000, also 
Überlauf.

breakTime wird an Bitposition 0..2 verodert, entsprechend der 
Beschreibung würde man Bitposition 7..5 erwarten.

writeBytes() ist überladen und nimmt 1 bis 4 uint8 entgegen und schiebt 
sie an den Drucker.

Obiges Ergebnis müsste sein:
ASCII_DC2, '#', b01000010
18 35 66

Außer aus dem Überlauf würde noch ein weiterer uint8 gezaubert, was ich 
mir aufgrund des Codes nicht vorstellen kann, dann wäre es:
18 35 01 66

von Schlaumaier (Gast)


Lesenswert?

Naja. Man müsste den Code testen am existierenden Objekt.

Immerhin ist die Anleitung die Version 2.* . Die erste ist eine 
China-Englis ch-Anleitung.

Und 3 Fach übersetzte Anleitungen, da ist der Fehlerquotient gigantisch 
;)

Aber wenn die Code funktioniert, ist man der Lösung in meinen Augen 
schon mal ein Schritt näher.  Nachmachen wie es andere machen, ist sehr 
oft eine gute Idee.

von Hermann Kokoschka (Gast)


Lesenswert?

MWS schrieb:
> Verwirrend:
> density=10 --> 50% +(10 x 5%), soweit ok, aber dann schieben die einen
> uint8 mit Dezimalwert 10, b1010 um 5 Bits nach links = b1_01000000, also
> Überlauf.

Allerdings, also soooo ganz ausgegoren scheint der Adafruit-Kram auch 
nicht zu sein, aber falls es funktioniert...?

Wieso ist ÜBERHAUPT dieser ganze Density-Zirkus nötig, ich würde mit 
Verlaub eigentlich erwarten dass der Drucker beim einschalten erstmal 
Default-Werte hat, um ÜBERHAUPT lesbar zu drucken...

Lt. TO sieht man ja praktisch nix. Bitte nicht hauen, aber nicht dass da 
noch eine Schutzfolie auf der HeatDot-Zeile klebt oder so was.
Oder das Papier ist scheisse?

von Schlaumaier (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> Lt. TO sieht man ja praktisch nix. Bitte nicht hauen, aber nicht dass da
> noch eine Schutzfolie auf der HeatDot-Zeile klebt oder so was.
> Oder das Papier ist scheisse?

Oder das Heizelement zu schwach.

Ich will ja keine Werbung machen. Aber mein Brother-QL-560 hat von Werk 
aus,schon alle richtigen Einstellungen. Nur bei China-Papier hat er 
Probleme mit den Transport weil das Papier 0.8 mm zu breit ist.

Allerdings ist mein Teil auch wenn ich die Fotos vergleiche 4-6 x so 
groß. ;)

Bei Thermo-Papier kommt es auf die Beschichtung an. Der schnellste Test 
ist, ein Papier WEIT !!! über eine Flamme zu halten. Dann es langsam 
über der Flamme zu senken. Je weiter weg, das Papier reagiert desto 
besser. Und es wird NICHT braun zuerst über der Flamme, im Gegensatz zu 
echten Papier.
Sobald die Hitze das Papier trifft ist da SOFORT ein großer schwarzer 
Fleck. !!!

Ich habe diesen Test bei uns in der Firma bei jeder Lieferung von Papier 
für unsere ZEBRA-Drucker gemacht. Das ist der Mercedes unter den 
Thermo-Druckern. ;) Und das vor allen Preislich. !!

von Stefan F. (Gast)


Lesenswert?

Eine richtig heiße Kaffeetasse müsste schon genügen, um einen großen 
schwarzen Kreis auf das Papier zu zaubern. So bin ich das jedenfalls 
gewohnt.

von Schlaumaier (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Eine richtig heiße Kaffeetasse müsste schon genügen, um einen großen
> schwarzen Kreis auf das Papier zu zaubern. So bin ich das jedenfalls
> gewohnt.

Stimmt. Aber ich trinke nur kalte Kohlensäurehaltige Getränke.

Wir reden hier von einer Reaktions-Temperatur von ´+/- 65°C .

Was auch der Grund ist, warum das Zeug + die Sonne sich nicht mögen. Die 
Sonne kann nämlich im Sommer locker ähnliche Temperaturen erzeugen auf 
einen Objekt. Besonders wenn kein Wind o.ä. da ist.

von Gerhard O. (gerhard_)


Lesenswert?

Ich habe auch so einen Drucker und konnte die Density auch nicht 
beeinflussen. Der Adafruit Drucker hält übrigens, was Druckqualität 
betrifft, keinen Vergleich mit professionellen Marken-Druckern wie z.B. 
der Brother CMP10 oder Epson POS Drucker aus. Bei diesen Druckern ist 
das Schriftbild und Graphiken einwandfrei schwarz auch bei den 
Defaulteinstellungen. Ich machte letztes Jahr Experimente mit 
Streifenschreiber SW und wollte auch so einen Adafruit Drucker 
verwenden. In Single Dot Graphik kann man die Pixel oft kaum sehen. Beim 
CMP10 sind sie dagegen einwandfrei.

Bei den CMP10 ist der Druckkopf ein breiter Keramikstreifen und druckt 
alle Pixel-Zeilen gleichzeitig. Beim Adafruit Drucker wird aber der 
Druckkopf beim Drucken zeilenweise hin und her bewegt. Sind also 
gänzlich verschiedene thermische Druckmethoden. Beim CMP wird eine ganze 
Pixelsequenz seriell in die Druckkopf Elektronik eingelesen und dann vom 
uC als Befehlsimpuls ausgegeben.

Wahrscheinlich ist das der Unterschied zwischen Low-Cost und 
industriellen Druckern die wie in POS Anwendungen jeden Tag hunderte m 
drucken müssen. Die Adafruit Dinger sind damit nicht vergleichbar und 
für viele Zwecke auch vollkommen ausreichend. Nach 50km ist Schluß mit 
den meisten Druckköpfen. Auch kann sich der Druckkopf je nach Daten 
überhitzen.

von Gerhard O. (gerhard_)


Lesenswert?

Schlaumaier schrieb:
> Stefan ⛄ F. schrieb:
>> Eine richtig heiße Kaffeetasse müsste schon genügen, um einen großen
>> schwarzen Kreis auf das Papier zu zaubern. So bin ich das jedenfalls
>> gewohnt.
>
> Stimmt. Aber ich trinke nur kalte Kohlensäurehaltige Getränke.
>
> Wir reden hier von einer Reaktions-Temperatur von ´+/- 65°C .
>
> Was auch der Grund ist, warum das Zeug + die Sonne sich nicht mögen. Die
> Sonne kann nämlich im Sommer locker ähnliche Temperaturen erzeugen auf
> einen Objekt. Besonders wenn kein Wind o.ä. da ist.

Mit einen fokussierten 50mW UV Laser kann man auf thermischen Papier 
schön drucken und sogar das Papier in Brand stecken:-)

von Schlaumaier (Gast)


Lesenswert?

Gerhard O. schrieb:
> Wahrscheinlich ist das der Unterschied zwischen Low-Cost und
> industriellen Druckern die wie in POS Anwendungen jeden Tag hunderte m
> drucken müssen.

HM. Mein Brother QL-560 hat mich ca. 50 Euro gekostet. 10 Euro extra im 
Vergleich zu den QL-550. Einziger Unterschied, meiner kann das Papier 
automatisch + auf Knopfdruck abschneiden. Ich habe nach ca. 6.000 
Etiketten mal das Messer wechseln müssen weil ein Billig-Papier was ich 
getestet habe das Messer stumpf gemacht hat und es anfing zu reißen.

Das Zauberteil da. kostet 53 Euro. Ich habe mal gegoogelt. Brother Teile 
im Vergleich kosten auch unter 60 Euro.

Und wie  schon erwähnt, die haben eine Super-SDK für Software-Steuerung. 
Include DLL, und schon stehen ein alle Befehle zu Verfügung. Und das 
klappt sehr gut. Gestestet unter meiner Schallplatten-Verwaltung.

von Gerhard O. (gerhard_)


Lesenswert?


: Bearbeitet durch User
von Content B. (Firma: Da) (contentblocker_da)


Lesenswert?

Läuft dein Thermoducker jetzt? :-D

von Schlaumaier (Gast)


Lesenswert?

Gerhard O. schrieb:
> Hier ist Info über den CMP10:

Bei knapp 400 Euro würde ich mich auch mit den Adafruit-Teil herum 
ärgern. ;)

von Gerhard O. (gerhard_)


Lesenswert?

Schlaumaier schrieb:
> Gerhard O. schrieb:
>> Hier ist Info über den CMP10:
>
> Bei knapp 400 Euro würde ich mich auch mit den Adafruit-Teil herum
> ärgern. ;)

Mein CMP10 kostete in der Bucht auch nicht mehr. Neu würde ich den CMP 
auch nicht kaufen wollen. Für Hobbygebrauch wäre der sonst Overkill. Ich 
betreibe ihn ja auch direkt mit uC.

von Dietrich L. (dietrichl)


Lesenswert?

Hermann Kokoschka schrieb:
>> Auch das habe ich probiert: Decimal: 18 35 138
>> Danach kam mein ASCII-Text: 123456789
>> Gedruckt wurde e123456789
>
> Dennoch halte ich DIES für einen relevanten Hinweis.
> Das überschüssige "e" im Ausgabebuffer des Druckers kann doch nur
> bedeuten, daß der vorherige Befehl nicht korrekt interpretiert wurde.

Vielleicht muss man nach dem Kommando zum Abschluss einfach <CR> 
und/oder <LF> schicken!?

von Stefan F. (Gast)


Lesenswert?

Gerhard O. schrieb:
> Mit einen fokussierten 50mW UV Laser kann man auf thermischen Papier
> schön drucken und sogar das Papier in Brand stecken:-)

Ich wollte mit der Kaffeetasse auf eine einfache Methode hinweisen, mit 
der man die Sensitivität des Papiers auf normale Verhältnisse 
kontrollieren kann.

Löcher rein brennen kann jeder.

von Gerhard O. (gerhard_)


Lesenswert?

Stefan ⛄ F. schrieb:
> Löcher rein brennen kann jeder

Stefan,

darum geht es mir doch nicht. Ist mir beim Experimentieren nur 
aufgefallen. Damals ging es um einen HP7475A Plotter für direkte 
Belichtung von photoempfindlichen LP Material zu testen. (Was übrigens 
sehr erfolgreich war)

Man könnte vielleicht mit rotierenden Spiegeln und Timing einen 
thermalen Laser Vektorplotter oder Pixeldrucker bauen...

Gruß,
Gerhard

von Hermann Kokoschka (Gast)


Angehängte Dateien:

Lesenswert?

Nur mal aus Spass:

Dies Teil bei Pollin für 0,45Euro. (noch erhältlich)
Klasse Mechanik mit Sensoren und hochwertigem Open-Lever sogar mit 
brauchbarem Datenblatt. Druckt 384 Pixel auf 50mm ThermoRolle, gestochen 
scharf.

TTL-Pixel seriell in die 384er-HeatDot-Zeile schieben, "Brenn-Burst" 
schwärzt dann das Papier. Sensoren für PaperAvail, LeverPos und 
DotZeilen-Temperatur.

Daraus habe ich vor Jahren Mini-Drucker gebaut, eigenes Board+Firmware.
Druck-Kontrast per Brenndauer, was natürlich den Pixelzeilen Vorschub 
tangiert, druckt aber "lesbar" fast so schnell wie Supermarkt-Kassen.

Sogar pixel-individuelle "4 Graustufen" möglich, dazu 4 Durchläufe der 
jeweils betroffenen Pixel mit unterschiedlicher Brenndauer, ERST dann 
der PixelZeilen-Vorschub, natürlich langsamer, lohnt aber:
Klasse Bitmaps, mit 384 Pixel geht schon was...

PCB nicht grösser als das Druckmodul, darunter montiert, Schlitze für 3
Flexlayer unten durchzustecken und "steckerfrei" zu löten.
Ich wollte kompakten Aufbau UND 5V Versorgung.
Problem war da die Stepper-Steuerung @Platzproblem, mit winzigen 
TI-FET-Brücken klappte es dann. 1-seitige PCB mit kaum mehr als 5 
Brücken, Toner-Transfer...

ATMEGA328 steuert, brennt, überwacht, meldet, hat Fonts, kann 
Fett/kursiv/underline generieren und kommuniziert @RS232 mit dem Host.

Zum "Papier-Abriss" hatte ich gekürzte "PUK-Sägeblätter" montiert, 
klappt wundervoll, mal als "Maker-Tipp".

Eines Tages möchte ich das Projekt gerne nochmal aufgreifen, vielleicht 
-soweit möglich- den "EPSON RX/SX-Standart" einbauen,
"stefanus" brachte mich darauf, Dank dafür.

von Thomas R. (Gast)


Angehängte Dateien:

Lesenswert?

Zunächst mal besten Dank für eure Kommentare
Ich habe alle Steuerzeichen für Density probiert und die funktionieren 
nicht.
Inzwischen habe ich diverse andere Steuerzeichen getestet. Alle anderen, 
die probierte (bold, character, etc), funktionieren.
Bei der Density funktioniert überhaupt nichts - da ist wohl ein 
Firmwarefehler reingebaut.
Ich probierte auch den Emphasized-Mode ("betonen"), das funktioniert, 
aber die Druckqualität ist und bleibt miserabel - siehe Anlagen (3mal 
ohne Emphasized-Mode und 3mal mit Emphasized-Mode) .
Mein EPSON TM-T88V, der ist in fast jedem Supermarkt verwendet wird, hat 
ein klares Druckbild und der hält ewig.
Offenbar sind die Druckmethoden (EPSON/Adafruit) sehr unterschiedlich.

von Gerhard O. (gerhard_)


Lesenswert?

Thomas R. schrieb:
> Zunächst mal besten Dank für eure Kommentare
> Ich habe alle Steuerzeichen für Density probiert und die funktionieren
> nicht.
> Inzwischen habe ich diverse andere Steuerzeichen getestet. Alle anderen,
> die probierte (bold, character, etc), funktionieren.
> Bei der Density funktioniert überhaupt nichts - da ist wohl ein
> Firmwarefehler reingebaut.
> Ich probierte auch den Emphasized-Mode ("betonen"), das funktioniert,
> aber die Druckqualität ist und bleibt miserabel - siehe Anlagen (3mal
> ohne Emphasized-Mode und 3mal mit Emphasized-Mode) .
> Mein EPSON TM-T88V, der ist in fast jedem Supermarkt verwendet wird, hat
> ein klares Druckbild und der hält ewig.
> Offenbar sind die Druckmethoden (EPSON/Adafruit) sehr unterschiedlich.

Dein Druckbild sieht nicht so gut aus. Vielleicht stimmt da etwas doch 
nicht mit der HW.

Hier ist aber ein Beispiel von meinen Experimenten:
Beitrag "Re: Zeigt her eure Kunstwerke (2020)"

Ich habe auch einen TM-88V und das sind definitiv andere Liga.

von Schlaumaier (Gast)


Lesenswert?

So wie ich das an den Bildern erkenne ist die Stromversorgung einzelner 
"Thermozellen" (k.a. wie die heißen) nicht sauber gegeben. Das kann man 
daran erkennen das immer die selben Stellen unsauber sind.

Ohne zu frech zu werden, das Thermoelement ist entweder sehr großzügig 
in den Toleranzen oder schlicht billige Ausschussware kurz vor der 
E-Schrott-Tonne.

von Hermann Kokoschka (Gast)


Lesenswert?

Das Bild ist Lichtjahre, also leider-wirklich-Lichtjahre entfernt von 
dem was JEDER Supermarkt an Schärfe und Kontrast per +15cm/sec 
hinkriegt.

"Homemade"-Ergebnisse sind besser, auch jeder Flaschenpfand-Automat!
Irgendwas stimmt hier-im-Kern nicht!

Vielleicht wirklich ein Schrott-Produkt, ärgerlich überteuert?
So erscheint es, dürftige Aussschussware (wie zuvor erwähnt)

Es steht dem TO ja doch frei, per Tankstelle, Supermarkt, 
Flaschenautomat Kontrast, Schärfe/Sauberkeit und Tempo zu vergleichen.

Gemessen an dem Bild sind die ALLE BESSER.
Daher nochmal: Irgendwas stimmt hier-im-Kern nicht!

von Gerhard O. (gerhard_)


Lesenswert?

Hallo Hermann,

Hattest Du Deine Drucker FW in C geschrieben oder ASM?

Gruß,
Gerhard

von Hermann Kokoschka (Gast)


Lesenswert?

Gerhard O. schrieb:
> Hattest Du Deine Drucker FW in C geschrieben oder ASM?

Die FW ist komplett in Assembler.
Die eigentliche Druckausgabe + Motorsteuerung liegen in einem schnellen 
TimerInt.

von Gerhard O. (gerhard_)


Lesenswert?

Hermann Kokoschka schrieb:
> Gerhard O. schrieb:
>> Hattest Du Deine Drucker FW in C geschrieben oder ASM?
>
> Die FW ist komplett in Assembler.
> Die eigentliche Druckausgabe + Motorsteuerung liegen in einem schnellen
> TimerInt.

Hallo Hermann,

danke. Machtest Du das Design am Anfang mit State-Diagrams/Flowcharts um 
keine Details zu übersehen? War das ein privates Hobbyprojekt oder warst 
Du da beruflich schon mit dem embedded Design von thermischen Druckern 
vorbelastet? Hattest Du das Design vorher simuliert?

Es würde mich interessieren ob man das auch in C mit etwas inline ASM 
hinkriegen würde. Schnell ist er ja, der 328er. Früher wurden die 
meisten Drucker mit viel langsameren Mikros verwirklicht.

Ich kaufte mir vor Jahren von EPSON einen vorprogrammierten uC mit dem 
man ziemlich einfach einen thermischen Drucker mit bewegten Kopf 
verwirklichen konnte. Allerdings habe ich mich danach doch nicht mehr 
beschäftigt weil es relativ preisgünstige Drucker gebraucht gibt. Mit 
dem TM88 und dem CMP10 bin ich sehr zufrieden. Die sind auch 
superschnell.

Gerhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.