Forum: Mikrocontroller und Digitale Elektronik USB Drucker Status möglicherweise besser mit Arduino/Raspberry/ATTiny


von Josef R. (joschko)


Lesenswert?

Habe den Beitrag jetzt hier auch gepostet, da er hier womöglich besser 
passt:

Ich würde gerne mit einer LED anzeigen wenn ein Druckjob am USB 2.0
Drucker gesendet wird. Diesen Status würde ich mit einem Arduino
abfragen und dann einen LED-Stripe für eine definierte Zeit Blinken
lassen.

Die Arduino Geschichte ist kein Problem, aber wie komme ich zur
Information dass ein Druckjob gesendet würde.

Wäre für jede Hilfe dankbar.

PS: Möchte das Ganze nicht von der PC Seite mittel Software lösen, da
diese Schaltung direkt ins Kabel vom PC-Drucker integriert werden soll.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Ich würde nen Raspberry (oder vergleichbar) davor schalten, und den 
Drucker damit zugleich netzwerkfähig machen! Über die GPIOs kannst du 
allerlei spielchen machen. Ist aber dann wieder Software.

So direkt am Kabel?
Du kannst einen Counter hochzählen lassen, den du immer wieder 
resettest.
Wenn nun viel Traffic durch das Drucken am USB-Port ist, erreicht der 
Counter einen "höheren Wert" als durchschnittlich. Das kannst du 
eigentlich direkt mit dem Arduino (Int-Eingang mit Vorwiderstand zum USB 
- murks) zählen lassen, und entsprechend reagieren.

Ansonnsten noch per Strom-Messung (230V oder Netzteil), da der Drucker 
beim drucken mehr Strom braucht als im Standby.

: Bearbeitet durch User
von Josef R. (joschko)


Lesenswert?

Tim S. schrieb:
> Ich würde nen Raspberry (oder vergleichbar) davor schalten, und den
> Drucker damit zugleich netzwerkfähig machen! Über die GPIOs kannst du
> allerlei spielchen machen. Ist aber dann wieder Software.
>
> So direkt am Kabel?
> Du kannst einen Counter hochzählen lassen, den du immer wieder
> resettest.
> Wenn nun viel Traffic durch das Drucken am USB-Port ist, erreicht der
> Counter einen "höheren Wert" als durchschnittlich. Das kannst du
> eigentlich direkt mit dem Arduino (Int-Eingang mit Vorwiderstand zum USB
> - murks) zählen lassen, und entsprechend reagieren.
>
> Ansonnsten noch per Strom-Messung (230V oder Netzteil), da der Drucker
> beim drucken mehr Strom braucht als im Standby.

CUPS Server ist nicht das was ich möchte, auch die Druckfunktionen bzw. 
Bedienung aus den verschiedenen Aplikationen ist nicht komplett 
unterstützt.

Counter hochzählen klingt spannend, wie kann ich das Signal am USB 
abgreifen ohne den Datenfluss zu stören?

Option 220V überwachen wäre meine 2. Wahl, da bräuchte ich aber auch 
einen Ansatz (Schaltungsvorschlag) wie ich den erhöhten Stromverbrauch 
messen kann.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Josef R. schrieb:
> Counter hochzählen klingt spannend, wie kann ich das Signal am USB
> abgreifen ohne den Datenfluss zu stören?

Versuch macht klug. Da habe ich keine Erfahrung! :-)
Pullups im Controller aus machen, und den Int-Eingang mit ca. 5-10k auf 
D+ oder D- legen. Ist eigentlich egal auf welchen USB-Draht: weiß oder 
grün. Vielleicht reicht das ja schon. Wenn D+ HIGH ist, dann ist D- LOW 
und anders herum. Eigentlich könnte das klappen.

von Jens M. (schuchkleisser)


Lesenswert?

Eine Masterslave-Steckdose die anzeigt wenn der Drucker was macht ist 
keine Option?
OK, wenn der wegen Papiermangel gar nicht erst anfängt, reagiert die 
evtl. nicht, aber das wäre ansonsten eine steckerfertige Lösung.

Oder: Irgendeine LED des Druckers anzapfen, evtl. auch mit einem 
draufgeklebten "Empfänger".
Daten kommen, Lampe geht an, Arduino weiß bescheid.
Da ginge dann auch "Error" zu beobachten ;)

Oder: Wenn der Drucker noch einen anderen Port hat, bevorzugt 
Centronics, dann sollte er da Busy und Error absetzen. Stecker rein, 
Lampe dran, done.

Alles andere setzt Kooperation des Hosts voraus.

Am USB liegen Datensignale mit afaik 3,3V an, und das beobachten zu 
wollen ist sportlich.
Da würde man auf jeden Fall öfter mal Licht sehen obwohl nix ist, weil 
mal einfach so kurz Hallo gesagt wird.

von Mein name ist Hase (Gast)


Lesenswert?

Lass das USB Kabel mal USB Kabel sein, Da dran rumfingern wird sehr 
warscheinlich nicht von erflog gekrönt sein. (meine Meinung)

ggf im/am Drucker irgend einen Sensor/LED/Motor/ ... abgreifen?

ggf reiht ja auch ein Lichtschranke / microschalter an der Papierablage, 
Wenn da was drauf liegt Signalisieren das der ausdruck fertig ist.

von Josef R. (joschko)


Angehängte Dateien:

Lesenswert?

Habe mir einen Stromsensor bestellt, werde diese Lösung testen.

Abfrage der LED's von extern ist für mich nicht so ideal, da der Drucker 
immer bewegt wird und deshalb die Opto-Einheit jedesmal einjustiert 
werden müsste.

Anderen Port hat er nicht.

...und USB Überwachung geht halt laut vielen Antworten nicht, obwohl mir 
so eine Differental Messung auf D+ und D- am Besten gefallen hätte, aber 
da fehlt mir das Spezialwissen.

Habe auch schon an eine AHK Lösung mit"winmgmts:" gedacht, aber da fehlt 
es bei mir halt auch an Spezialwissen.

Auch habe ich einen "RS232 Data Bus Status Indicator" gefunden, siehe 
Bild und frage mich ob das auch an den D+ bzw- D- funktionieren könnte. 
Ich würde natürlich den LED Status mit einem Arduino abfragen.

Prinzipiell brauch ich eigentlich nur ein Signal das der Druck beginnt, 
dann starte ich die Beleuchtung des Papierausgabe-Schachtes für eine 
gewisse Zeit.

von Adam P. (adamap)


Lesenswert?

Josef R. schrieb:
> ...und USB Überwachung geht halt laut vielen Antworten nicht, obwohl mir
> so eine Differental Messung auf D+ und D- am Besten gefallen hätte, aber
> da fehlt mir das Spezialwissen.

Nunja, also ich würde mich nicht auf den Datenverkehr verlassen.
Was ist, wenn man mit der PC Software vom Drucker, Einstellungen 
vornimmt, diese werden doch wohl auch an den Drucker gesendet.

Würde im schlimsmten Fall so aussehen als würde man ein paar Zeilen Text 
drucken wollen (falls der Config-Block recht klein gehalten ist).

Was ist mit der LED im Drucker, die die Aktivität anzeigt?
Wenn du das Signal abgreifen würdest, wärst du auf der sicheren Seite.
Falls der Drucker noch so eine LED hat.

Selbst wenn du das USB Protokoll mithören würdest, wäre es nicht ideal.
Die Datenübertragung dauert evtl nur ein paar ms...
dann fängt der Drucker an zu drucken...
aber du weißt dann immer noch nicht wann er wirklich fertig ist.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Überwache die Stromaufnahme des Druckers, wenn ein Druckauftrag kommt, 
geht die hoch, besonders bei Laserdruckern.

von Robert B. (crolexx)


Lesenswert?

Ich würde entweder den Papiereinzug überwachen oder noch besser prüfen 
ob ein Blatt im Ausgabefach liegt.

von Adam P. (adamap)


Lesenswert?

Josef R. schrieb:
> Auch habe ich einen "RS232 Data Bus Status Indicator" gefunden, siehe
> Bild und frage mich ob das auch an den D+ bzw- D- funktionieren könnte.

Weiß nicht ob das wikrlich so funktioniert, da:

http://www.netzmafia.de/skripten/hardware/PC-Schnittstellen/usb.html

"Die Signale auf den beiden Leitungen, D+ und D-, sind Differenzsignale 
mit Spannungspegeln von 0 und 3,3 Volt."

0-3,3V ist jetzt nicht grade RS232.

Edit:
Weiterhin hast du auf den USB Leitungen immer Datentransfer,
bei FullSpeed wird z.B. jede 1ms das SOF Paket gesendet.

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Und zum Vorgehen:

https://www.mikrocontroller.net/articles/Stromwandler#Passiver_Stromwandler

Allerdings das Ganze so dimensionieren, dass der Ringkern beim 
überschreiten der üblichen maximal Stromaufnahme in Sättigung geht, 
damit die Ausgangsspannung der Messleitung nicht zu hoch wird.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Josef R. schrieb:
> so eine Differental Messung auf D+ und D- [...]
> RS232 Data Bus Status Indicator" [...] auch an den D+ bzw- D- funktionieren

Adam P. schrieb:
> 0-3,3V ist jetzt nicht grade RS232.

Dann noch eher 'Highspeed RS485 Reciver' auf Dauer-RX. (über 
Vorwiderstände am D+/-). Und natürlich auf USB 1 runter-forcen wie im 
Link von Adam P. Auch wenn es immer noch Mega-Murks ist.

Adam P. schrieb:
> Nunja, also ich würde mich nicht auf den Datenverkehr verlassen.
[...]
> Würde im schlimsmten Fall so aussehen als würde man ein paar Zeilen Text
> drucken wollen (falls der Config-Block recht klein gehalten ist).

Das ist dann ein "Feature". Aber bestimmt lässt sich das per Counter im 
Durchschnitt feststellen. Man kann ja auch (In der Anfangsphase) eine 
"Fail"-Taste einbauen, um mittzuteilen, dass es nun zu früh geleuchtet 
hat. ;-) Bestimmt geht es beim Booten auch an. - Feature.

Adam P. schrieb:
> aber du weißt dann immer noch nicht wann er wirklich fertig ist.

Wirklich fertig geht dann nur noch über Driver, OS und Software. Wäre 
bestimmt schön, wenn es dann 'fertig grün' leuchtet :-)

: Bearbeitet durch User
von Josef R. (joschko)


Lesenswert?

Tim S. schrieb:
> Josef R. schrieb:
>> so eine Differental Messung auf D+ und D- [...]
>> RS232 Data Bus Status Indicator" [...] auch an den D+ bzw- D- funktionieren
>
> Adam P. schrieb:
>> 0-3,3V ist jetzt nicht grade RS232.
>
> Dann noch eher 'Highspeed RS485 Reciver' auf Dauer-RX. (über
> Vorwiderstände am D+/-). Und natürlich auf USB 1 runter-forcen wie im
> Link von Adam P. Auch wenn es immer noch Mega-Murks ist.
>
> Adam P. schrieb:
>> Nunja, also ich würde mich nicht auf den Datenverkehr verlassen.
> [...]
>> Würde im schlimsmten Fall so aussehen als würde man ein paar Zeilen Text
>> drucken wollen (falls der Config-Block recht klein gehalten ist).
>
> Das ist dann ein "Feature". Aber bestimmt lässt sich das per Counter im
> Durchschnitt feststellen. Man kann ja auch (In der Anfangsphase) eine
> "Fail"-Taste einbauen, um mittzuteilen, dass es nun zu früh geleuchtet
> hat. ;-) Bestimmt geht es beim Booten auch an. - Feature.
>
> Adam P. schrieb:
>> aber du weißt dann immer noch nicht wann er wirklich fertig ist.
>
> Wirklich fertig geht dann nur noch über Driver, OS und Software. Wäre
> bestimmt schön, wenn es dann 'fertig grün' leuchtet :-)

Hi,

im Prinzip brauche ich nur den Startimpuls, der eine oder andere 
Fehlstart wäre auch kein Problem, da dann halt auch nur der 
Druckerschacht beleuchtet wird.
Die Dauer der Beleuchtung mache ich immer mit einem Timer, also ich 
brauche keinen Druck-Fertig Impuls. Sollte halt nach Start-Druck und 
laufendem Timer ein weiterer Start-Druck kommen, wird der Timer neu 
gestartet, thats it.

Hast du eventuell einen Schaltungsvorschlag wie so ein
"'Highspeed RS485 Reciver' auf Dauer-RX" aussehen könnte?

Danke

von Maxi (Gast)


Lesenswert?

Maximal sinnbefreit.....

von Hennes (Gast)


Lesenswert?

Wenn einer der Forengrinche seine schlechte Laune ablässt.
Nein sehr gut - der TO hat Spaß daran - sonst würde er nicht nachfragen 
und  vor allem dran bleiben.
Was muss eigentlich noch alles passieren (zwei Pandemien mehr, 
Meteroiteneinschlag, Krebs im Endstadium Diagnnose, letzte Person die zu 
Lebensumfeld der Kindheit gehörte ist tot...  das eine bestimmte Art von 
Zeitgenossen endlich versteht das das Leben endlich ist und jeder Tag, 
jeder Spaß  (und eben nicht die Pflichten und selten das "Sinnvolle") 
zählt?
Selbst wenn es zur Jahreszeit passen die grelle Lichtshow am Haus ist 
oder der Autoliebhaber seinen 6,3l Motor betriebenen 80er Jahre 
Geländewagen durch die Gegend fährt.
Eine unglaubliche frechheit sich zu erdreisten und über den Sinn eines 
Hobbys bzw. eine Anwendung eines anderen lächlich zu machen.

Mach doch du "Maxi" (und nein nicht dein Nachbar, der TO, oder ich - wir 
versuchen unser Leben mit schönen und für uns sinnvollen Dingen - das 
für uns reicht vollkommen aus- zu bereichern) maximal sinnvolles - die 
Impfzentren brauchen bald jeden Mann, so mancher in Quarantäne gesetzter 
nimmt gerne einen kostenlosen (!) bringservice in anspruch, Foren suchen 
oft Moderatoren.

Hennes

von Josef R. (joschko)


Lesenswert?

Maxi schrieb:
> Maximal sinnbefreit.....

Hi , verstehe nicht was du meinst, ist das ein ernst gemeinter Komentar 
?

von Josef R. (joschko)


Lesenswert?

Hennes schrieb:
> Wenn einer der Forengrinche seine schlechte Laune ablässt.
> Nein sehr gut - der TO hat Spaß daran - sonst würde er nicht nachfragen
> und  vor allem dran bleiben.
> Was muss eigentlich noch alles passieren (zwei Pandemien mehr,
> Meteroiteneinschlag, Krebs im Endstadium Diagnnose, letzte Person die zu
> Lebensumfeld der Kindheit gehörte ist tot...  das eine bestimmte Art von
> Zeitgenossen endlich versteht das das Leben endlich ist und jeder Tag,
> jeder Spaß  (und eben nicht die Pflichten und selten das "Sinnvolle")
> zählt?
> Selbst wenn es zur Jahreszeit passen die grelle Lichtshow am Haus ist
> oder der Autoliebhaber seinen 6,3l Motor betriebenen 80er Jahre
> Geländewagen durch die Gegend fährt.
> Eine unglaubliche frechheit sich zu erdreisten und über den Sinn eines
> Hobbys bzw. eine Anwendung eines anderen lächlich zu machen.
>
> Mach doch du "Maxi" (und nein nicht dein Nachbar, der TO, oder ich - wir
> versuchen unser Leben mit schönen und für uns sinnvollen Dingen - das
> für uns reicht vollkommen aus- zu bereichern) maximal sinnvolles - die
> Impfzentren brauchen bald jeden Mann, so mancher in Quarantäne gesetzter
> nimmt gerne einen kostenlosen (!) bringservice in anspruch, Foren suchen
> oft Moderatoren.
>
> Hennes

Hallo Hennes,

verstehe deinen Forenbeitrag nicht? Was hat das mit meiner Anforderung 
zu tun ?

von Mein name ist Hase (Gast)


Lesenswert?

Um was für einen Drucker handelt es sich? Laser / Tinte

Da du ja sowieso am Papierausgabe schacht was anbringen willst 
(Beleuchtung)
Wiso da nicht mit einem Sensor erkennen ob ein paier abelegt worden ist.
Lichtschranke  Microschalter  ... das kann ggf ja so gestaltet werden, 
das man den Drucker nicht beschädigen muss.

ggf über akustik messen ob der drucker anfängt zu rappeln (Lüfter / 
Motoren / ...)

ggf über eine schwingungs erkennung (Laufende Motoren erzeugen 
vibrationen)

Nachteil es funktioniert ggf nur mit einem bestimmten typ von Drucker
Vorteil es würde ggf auch druckaufträge über WLAN  LAN  BT erkennen.

von Josef R. (joschko)


Lesenswert?

Mein name ist Hase schrieb:
> Um was für einen Drucker handelt es sich? Laser / Tinte
>
> Da du ja sowieso am Papierausgabe schacht was anbringen willst
> (Beleuchtung)
> Wiso da nicht mit einem Sensor erkennen ob ein paier abelegt worden ist.
> Lichtschranke  Microschalter  ... das kann ggf ja so gestaltet werden,
> das man den Drucker nicht beschädigen muss.
>
> ggf über akustik messen ob der drucker anfängt zu rappeln (Lüfter /
> Motoren / ...)
>
> ggf über eine schwingungs erkennung (Laufende Motoren erzeugen
> vibrationen)
>
> Nachteil es funktioniert ggf nur mit einem bestimmten typ von Drucker
> Vorteil es würde ggf auch druckaufträge über WLAN  LAN  BT erkennen.

Es ist ein Thermsublimations-Drucker (DNP-DS620) mit USB Anschluss.
Konstruktionsbedingt geht leider keine Lichtschranke, bzw. 
Mikroschalter,
da der Auffangschacht komplett vom User beim Papiertausch entfernt wird 
und deshalb zu diesem Teile keine elektrische Verbindung besteht, möchte 
da auch keinen Stecker machen, den der User dann vergisst anzustecken.
Am Drucker selbst ist etwas anzubringen ist auch etwas ungeschickt, da 
der Drucker beim Setup extra transportiert und dan eingeschoben wird, 
was dadurch jedesmal eine Jusatge des Sensors erfordern würde.

Ist halt alles etwas tricky, werde vermutlich um eine SW Lösung oder 
halt die Strommesslösung am Netzkabel nicht herum kommen.

von MeierKurt (Gast)


Lesenswert?

Hennes schrieb:

> oder ich - wir
> versuchen unser Leben mit schönen und für uns sinnvollen Dingen

Und warum schreibst du dann hier? Ansonsten: Versuch mißlungen.
Andererseits: Bist du Oberlehrer? Der hätte Spaß daran...

von Mein name ist Hase (Gast)


Lesenswert?

Ok nettes teil und nicht ganz preiswert, ... da will man natürlich 
nichts drann verbasteln, bei ca 1kE strassenpreis ...

Jetzt wird langsam auch ein schuh draus, ... wir waren vermutlich alle 
auf dem trip von nem office drucker, ...

ggf helligkeits sensor unter dem einbauort des druckers? je nach bild 
grösse und umgebungsbeläuchtung könnte die verschattung vieleicht 
ausreichen.

ggf funktioniert das auch mit nicht sichtabrem IR. weiss nur nicht ob 
das dann durch Plexi durch kommt. und eine IR Quelle oberhalb des 
Druckers im einbauort?

Ich gehe davon aus das der auffangschacht so ein plexiglass teil ist das 
man unter den drucker schiebt? So was wie das?
https://www.photoboothproshop.de/dnp-drucker-zubehoer/design-papier-auffangbehaelter-paper-tray-acryl-fuer-dnp-drucker-ds620-ds40.html

ggf den sensor mit akku und über funk anbinden?

Wenn man ggf den steckverbinder an dem halter mit als Führung / 
verrastung designt, ...

Das ganze soll sicher auch nicht alzu auffällig sein, ...

über den PC das zu erfragen ist natürlich auch ein weg, ... wenn man 
sich mit PC Programmierung etwas auskennt und sich in die SpoolerAPI 
einarbeitet . Darüber den Status des Druckers abzufragen sollte 
funktionieren. Der Spooler (Druckerwarteschlange) kann es ja auch, ... 
Den Drucker über einen im Aufbau verbauten USB hub anschliesen, an den 
USB Hub noch ein RS232 USB adapter, daran dann dein ardoino zur LED 
steuerung.

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.