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
Danke, aber 255 bringt auch nichts. Wenn ich dann 0 schicke ändert sich nichts.
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.
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.
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.
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
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. ;)
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.
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
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. ;((
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.
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.
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?
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.
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
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
Auch das habe ich probiert: Decimal: 18 35 138 Danach kam mein ASCII-Text: 123456789 Gedruckt wurde e123456789
Bleibt die Frage, was die unter "Density" verstehen, ob wirklich der Schwärzungsgrad gemeint ist.
Vielleicht muss die Heating Time ESC 7 n1 n2 n3 noch erhöht werde?: "If heating time is too short, blank page may occur."
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
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.
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. ;)
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". ;)
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"
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. ???
Wo (Link) finde ich diese Firmware? Und wie kriege ich die rein?
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!
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.
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)
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.
nein - siehe Anlage DC/DC-Wandler lassen sich auch auf 8.4V einstellen.
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.
> 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.
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.
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.
Habe jetzt nicht alles durchgearbeitet, aber ich würde noch hexadezimal 12 23 FF probieren.
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.
Hermann Kokoschka schrieb: > Wurde hier eigentlich schon die String-Terminierung diskutiert? Wer redet denn von Strings? Wir sind bei einzelnen Bytes.
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.
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.
> 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.
> 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.
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.
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
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.
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?
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. !!
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.
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.
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.
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:-)
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.
Hier ist Info über den CMP10: https://www.l-trondirect.com/Citizen/CMP-10BT-U5MSC-HS https://www.l-trondirect.com/image/data/phoenix/datasheets/CMP-10BT-U5MSC-HS.pdf (Ich kaufte mir einen in der Bucht)
:
Bearbeitet durch User
Gerhard O. schrieb: > Hier ist Info über den CMP10: Bei knapp 400 Euro würde ich mich auch mit den Adafruit-Teil herum ärgern. ;)
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.
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!?
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.
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
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.
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.
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.
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.
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!
Hallo Hermann, Hattest Du Deine Drucker FW in C geschrieben oder ASM? Gruß, Gerhard
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.