Beschimpfungsdrucker nachbauen?
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
Re: Beschimpfungsdrucker nachbauen?
hmmm, kann man dafür irgendwie einen (USB...)-Dymo Labelwriter 400 benutzen?
dann könnt man sogar Beschimpfungsaufkleber drucken (und ich hab hier so ein Teil stehen,
das ist der Hauptgrund... ähem. )
jemand ne Idee?
dann könnt man sogar Beschimpfungsaufkleber drucken (und ich hab hier so ein Teil stehen,
das ist der Hauptgrund... ähem. )
jemand ne Idee?
-
- Beiträge: 1063
- Registriert: Di 22. Aug 2017, 05:19
- Wohnort: Berlin
Re: Beschimpfungsdrucker nachbauen?
Das wird unverhältnismäßig sportlich, USB-host aufm Mikrocontroller. Am ehesten würde sich da wohl ein olles smartphone eignen, aber es gibt natürlich auch muskulösere Mikro-Controller, die das können.
Ich würd' das Ding aufmachen und gucken, wo aus dem USB2serial-chip das serielle Signal rausfällt und da einen Arduino anflanschen.
Als nächstes musst Du dann noch die Geschwindigkeit rausfinden (9600-19200 sind gute Kandidaten, entweder mit XON/XOFF oder hardware handshake), das Protokoll herausfinden (ausprobieren (einfach mal ASCII draufschmeißen), Doku auftreiben oder logic-Analyser während Du vom Computer drauf druckst).
Ich würd' das Ding aufmachen und gucken, wo aus dem USB2serial-chip das serielle Signal rausfällt und da einen Arduino anflanschen.
Als nächstes musst Du dann noch die Geschwindigkeit rausfinden (9600-19200 sind gute Kandidaten, entweder mit XON/XOFF oder hardware handshake), das Protokoll herausfinden (ausprobieren (einfach mal ASCII draufschmeißen), Doku auftreiben oder logic-Analyser während Du vom Computer drauf druckst).
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Beschimpfungsdrucker nachbauen?
Nö, STM32 haben das eingebaut.berlinerbaer hat geschrieben: ↑So 7. Jun 2020, 01:13 Das wird unverhältnismäßig sportlich, USB-host aufm Mikrocontroller.
Nur der ST Cube HAL Treiber ist maximal besch*ssen.
Meine E-Last kann daher aufn USB Stick loggen
Re: Beschimpfungsdrucker nachbauen?
Hallo zusammen,
mittlerweile habe ich es (mit Hilfe, vielen Dank nochmals!) hinbekommen,
dass der Drucker einen Text (steht alleine und fest im Code) druckt und den Zettel abschneidet.
Das Problem mit den vielen Leerzeichen beim ausdrucken, kann ich mir nicht erklären,
als ich die Verkabelung nochmals nachgesteckt habe, sahen die Ausdrucke gut aus:
(vermutlich hat das Breadboard eine Macke )
aktueller Code:
Wegen der SD-karte habe ich nun das hier bestellt, auf China mag ich jetzt nicht warten:
https://www.amazon.de/gp/product/B06XHJTGGC/
Nächste Schritte:
- versuchen mehr Texte einzubinden und einen davon zufällig auszudrucken, wenn der Taster gedrückt wird
Schritte danach:
- SD-Karten Modul verdrahten und Karte einbinden (geht das überhaupt noch, digitale Pins belegt D2-D12?)
-- Texte darauf ablegen und im Code verarbeiten
- Layout für Bons erzeugen (Überschrift, Formatierung)
- ggf. Statistik (Anzahl, Uhrzeit, Datum, etc.)
Wenn das alles klappt, bin ich schon dermaßen zufrieden, dass der Benzinkanister und die Streichhölzer wohl nicht mehr zum Einsatz kommen .
Gruß Pascal
mittlerweile habe ich es (mit Hilfe, vielen Dank nochmals!) hinbekommen,
dass der Drucker einen Text (steht alleine und fest im Code) druckt und den Zettel abschneidet.
Das Problem mit den vielen Leerzeichen beim ausdrucken, kann ich mir nicht erklären,
als ich die Verkabelung nochmals nachgesteckt habe, sahen die Ausdrucke gut aus:
(vermutlich hat das Breadboard eine Macke )
aktueller Code:
Code: Alles auswählen
const int charsPerLine = 800; // this is the max # of chars per line
const int num_lines = 1;
byte message[num_lines][charsPerLine] = {
"Wenn mein Hund Dein Gesicht haette wuerde ich ihm den Arsch rasieren und ihm beibringen rueckwaerts zu laufen !!!!"
};
// parallel port pin# = arduino pin#
const int nStrobe = 2;
const int data_0 = 3;
const int data_1 = 4;
const int data_2 = 5;
const int data_3 = 6;
const int data_4 = 7;
const int data_5 = 8;
const int data_6 = 9;
const int data_7 = 10;
const int nAck = 11;
const int busy = 12;
const int strobeWait = 2; // microseconds to strobe for
void setup() {
Serial.begin(9600);
pinMode(nStrobe, OUTPUT); // is active LOW
digitalWrite(nStrobe, HIGH); // set HIGH
pinMode(data_0, OUTPUT);
pinMode(data_1, OUTPUT);
pinMode(data_2, OUTPUT);
pinMode(data_3, OUTPUT);
pinMode(data_4, OUTPUT);
pinMode(data_5, OUTPUT);
pinMode(data_6, OUTPUT);
pinMode(data_7, OUTPUT);
pinMode(nAck, INPUT); // is active LOW
pinMode(busy, INPUT);
pinMode(13, OUTPUT);
pinMode(14, INPUT); // analog pin 0 on duemilanove and uno
digitalWrite(14, HIGH); // enable pull-up
delay(1000);
}
void loop() {
while(digitalRead(14) == HIGH) {}
printMessage(); // Druckausgabe aktiv
abschneiden(); // aktiviert cutter
delay(500);
}
void printByte(byte inByte) {
while(digitalRead(busy) == HIGH) {
// wait for busy to go low
}
int b0 = bitRead(inByte, 0);
int b1 = bitRead(inByte, 1);
int b2 = bitRead(inByte, 2);
int b3 = bitRead(inByte, 3);
int b4 = bitRead(inByte, 4);
int b5 = bitRead(inByte, 5);
int b6 = bitRead(inByte, 6);
int b7 = bitRead(inByte, 7);
digitalWrite(data_0, b0); // set data bit pins
digitalWrite(data_1, b1);
digitalWrite(data_2, b2);
digitalWrite(data_3, b3);
digitalWrite(data_4, b4);
digitalWrite(data_5, b5);
digitalWrite(data_6, b6);
digitalWrite(data_7, b7);
digitalWrite(nStrobe, LOW); // strobe nStrobe to input data bits
delayMicroseconds(strobeWait);
digitalWrite(nStrobe, HIGH);
while(digitalRead(busy) == HIGH) {
// wait for busy line to go low
}
}
void printMessage() {
digitalWrite(13, HIGH);
for(int line = 0; line < num_lines; line++) {
for(int cursorPosition = 0; cursorPosition < charsPerLine; cursorPosition++) {
byte character = message[line][cursorPosition];
printByte(character);
delay(1);
}
}
digitalWrite(13,LOW);
}
void abschneiden()
{
// const char schnipp = "\n\r\x1dVB" ;
// printByte(schnipp);
printByte(10); // new line
printByte(13); // carriage return
printByte(10); // new line
printByte(0x1D); // cut befehl = 29 als Zahl
printByte('V'); // cut befehl
printByte(66); // cut befehl
printByte(27); // reset printer
}
https://www.amazon.de/gp/product/B06XHJTGGC/
Nächste Schritte:
- versuchen mehr Texte einzubinden und einen davon zufällig auszudrucken, wenn der Taster gedrückt wird
Schritte danach:
- SD-Karten Modul verdrahten und Karte einbinden (geht das überhaupt noch, digitale Pins belegt D2-D12?)
-- Texte darauf ablegen und im Code verarbeiten
- Layout für Bons erzeugen (Überschrift, Formatierung)
- ggf. Statistik (Anzahl, Uhrzeit, Datum, etc.)
Wenn das alles klappt, bin ich schon dermaßen zufrieden, dass der Benzinkanister und die Streichhölzer wohl nicht mehr zum Einsatz kommen .
Gruß Pascal
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Beschimpfungsdrucker nachbauen?
War glaube son USB Host IC von FTDI.
Aber diese Firma sollte man nach deren Treibergebahren eh nicht mehr verbauen.
Re: Beschimpfungsdrucker nachbauen?
Fast.
CH376S
Und wer bei Amazon bestellt kann auch FTDI verbauen (gehört aber nicht hier her...).
CH376S
Und wer bei Amazon bestellt kann auch FTDI verbauen (gehört aber nicht hier her...).
Re: Beschimpfungsdrucker nachbauen?
Howdy!
Hansele hat geschrieben: ↑So 7. Jun 2020, 21:06 - SD-Karten Modul verdrahten und Karte einbinden (geht das überhaupt noch, digitale Pins belegt D2-D12?)
[/quote
A0 .. A5 sind noch frei?
SD-Karten werden imho per SPI angeschlossen. Das belegt:
MOSI - pin 11 on Arduino Uno
MISO - pin 12
CLK - pin 13
CS - da tuts glaub irgendwas
Mach halt mal eine Aufstellung was womit belegt ist.
Im Notfall: Ein etwas größerer Arduino kostet nich die Welt
Grüße
-J
Zuletzt geändert von j.o.e am Di 9. Jun 2020, 20:00, insgesamt 1-mal geändert.
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Beschimpfungsdrucker nachbauen?
Durchaus interessant was die Chinesen da wieder fabrizieren.
Hatte ich ja eigentlich auch nicht nicht vor
Oder wo bekomme ich noch nen raaco 8x4 und die Einlagen extra?